
    <i                     l    S SK Jr  S SKr " S S5      r " S S\R
                  5      r " S S\5      rg)	    )TestCaseNc                       \ rS rSrSrg)JSONTestObject    N)__name__
__module____qualname____firstlineno____static_attributes__r       Y/home/james-whalen/.local/lib/python3.13/site-packages/simplejson/tests/test_recursion.pyr   r      s    r   r   c                       \ rS rSrSrS rSrg)RecursiveJSONEncoder	   Fc                     U[         L a  U R                  (       a  [         /$ g[        R                  R	                  U5      $ )Nr   )r   recursejsonJSONEncoderdefault)selfos     r   r   RecursiveJSONEncoder.default   s4    ||&'''''**r   r   N)r   r	   r
   r   r   r   r   r   r   r   r   r   	   s    G+r   r   c                   &    \ rS rSrS rS rS rSrg)TestRecursion   c                 l   / nUR                  U5         [        R                  " U5        U R                  S5        / nU/nUR                  U5         [        R                  " U5        U R                  S5        / nX"/n[        R                  " U5        g ! [         a     Nff = f! [         a     N8f = f)Nz)didn't raise ValueError on list recursionz5didn't raise ValueError on alternating list recursion)appendr   dumpsfail
ValueErrorr   xys      r   test_listrecursion TestRecursion.test_listrecursion   s    		CJJqM IIABC		OJJqM IIMNF

1!  		  		s#   B B& 
B#"B#&
B32B3c                     0 nXS'    [         R                  " U5        U R                  S5        0 nXS.n[         R                  " U5        g ! [         a     N)f = f)Ntestz)didn't raise ValueError on dict recursion)ab)r   r   r    r!   r"   s      r   test_dictrecursion TestRecursion.test_dictrecursion,   sZ    &		CJJqM IIAB

1  		s   A 
AAc                     [        5       nU R                  UR                  [        5      S5        SUl         UR                  [        5        U R                  S5        g ! [         a     g f = f)Nz"JSONTestObject"Tz,didn't raise ValueError on default recursion)r   assertEqualencoder   r   r    r!   )r   encs     r   test_defaultrecursion#TestRecursion.test_defaultrecursion:   s`    "$N35GH	FJJ~& IIDE  		s   A 
A,+A,r   N)r   r	   r
   r   r%   r+   r1   r   r   r   r   r   r      s    .	Fr   r   )unittestr   
simplejsonr   r   r   r   r   r   r   r   <module>r5      s5     	 	+4++ +/FH /Fr   