ó
8a^c           @   su   d  d l  m Z m Z d d d „  ƒ  YZ d e f d „  ƒ  YZ d e e f d „  ƒ  YZ d e e f d	 „  ƒ  YZ d
 S(   iÿÿÿÿ(   t   PyTestt   CTestt   JSONTestObjectc           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    s*   lib/python2.7/json/tests/test_recursion.pyR      s   t   TestRecursionc           B   s>   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s¶   g  } | j  | ƒ y |  j | ƒ Wn t k
 r7 n X|  j d ƒ g  } | g } | j  | ƒ y |  j | ƒ Wn t k
 r… n X|  j d ƒ g  } | | g } |  j | ƒ d  S(   Ns)   didn't raise ValueError on list recursions5   didn't raise ValueError on alternating list recursion(   t   appendt   dumpst
   ValueErrort   fail(   t   selft   xt   y(    (    s*   lib/python2.7/json/tests/test_recursion.pyt   test_listrecursion	   s$    	c         C   sm   i  } | | d <y |  j  | ƒ Wn t k
 r4 n X|  j d ƒ i  } i | d 6| d 6} |  j  | ƒ d  S(   Nt   tests)   didn't raise ValueError on dict recursiont   at   b(   R   R   R	   (   R
   R   R   (    (    s*   lib/python2.7/json/tests/test_recursion.pyt   test_dictrecursion    s    
c         C   s}   d |  j  j f d „  ƒ  Y} | ƒ  } |  j | j t ƒ d ƒ t | _ y | j t ƒ Wn t k
 rk n X|  j d ƒ d  S(   Nt   RecursiveJSONEncoderc           B   s   e  Z e Z d  „  Z RS(   c         S   s3   | t  k r# |  j r t  g Sd Sn  t j j | ƒ S(   NR   (   R   t   recurset   pyjsont   JSONEncodert   default(   R
   t   o(    (    s*   lib/python2.7/json/tests/test_recursion.pyR   1   s
    	(   R   R   t   FalseR   R   (    (    (    s*   lib/python2.7/json/tests/test_recursion.pyR   /   s   s   "JSONTestObject"s,   didn't raise ValueError on default recursion(	   t   jsonR   t   assertEqualt   encodeR   t   TrueR   R   R	   (   R
   R   t   enc(    (    s*   lib/python2.7/json/tests/test_recursion.pyt   test_defaultrecursion.   s    
		c         C   s6  |  j  t ƒ " |  j d d d d d ƒ Wd  QX|  j  t ƒ " |  j d d d d d ƒ Wd  QX|  j  t ƒ " |  j d d d d d ƒ Wd  QX|  j  t ƒ " |  j d d d	 d
 d ƒ Wd  QX|  j  t ƒ " |  j d d d d
 d ƒ Wd  QX|  j  t ƒ " |  j d d d	 d d ƒ Wd  QXd  S(   Ns   {"a":i † t   1t   }s   [1]t   [t   ]u   {"a":u   1u   }u   [1]u   [u   ](   t   assertRaisest   RuntimeErrort   loads(   R
   (    (    s*   lib/python2.7/json/tests/test_recursion.pyt#   test_highly_nested_objects_decodingD   s    #####c         C   s…   g  i  } } x+ t  d ƒ D] } | g i | d 6} } q W|  j t ƒ  |  j | ƒ Wd  QX|  j t ƒ  |  j | ƒ Wd  QXd  S(   Ni † t   k(   t   xrangeR#   R$   R   (   R
   t   lt   dR   (    (    s*   lib/python2.7/json/tests/test_recursion.pyt#   test_highly_nested_objects_encodingV   s    c         C   sL   d |  j  j f d „  ƒ  Y} |  j t ƒ  | d t ƒ j d ƒ Wd  QXd  S(   Nt   EndlessJSONEncoderc           B   s   e  Z d  „  Z RS(   c         S   s   | g S(   s?   If check_circular is False, this will keep adding another list.(    (   R
   R   (    (    s*   lib/python2.7/json/tests/test_recursion.pyR   c   s    (   R   R   R   (    (    (    s*   lib/python2.7/json/tests/test_recursion.pyR,   b   s   t   check_circulary              @(   R   R   R#   R$   R   R   (   R
   R,   (    (    s*   lib/python2.7/json/tests/test_recursion.pyt   test_endless_recursion`   s    (   R   R   R   R   R   R&   R+   R.   (    (    (    s*   lib/python2.7/json/tests/test_recursion.pyR      s   					
t   TestPyRecursionc           B   s   e  Z RS(    (   R   R   (    (    (    s*   lib/python2.7/json/tests/test_recursion.pyR/   k   s    t   TestCRecursionc           B   s   e  Z RS(    (   R   R   (    (    (    s*   lib/python2.7/json/tests/test_recursion.pyR0   l   s    N(    (   t
   json.testsR    R   R   t   objectR   R/   R0   (    (    (    s*   lib/python2.7/json/tests/test_recursion.pyt   <module>   s   c