+
    Bi                     z    ^ RI Ht ^ RIHtHt  ! R R4      t ! R R4      t ! R R]]4      t ! R	 R
]]4      tR# )    )support)PyTestCTestc                       ] tR t^tRtR# )JSONTestObject N__name__
__module____qualname____firstlineno____static_attributes__r       4/usr/lib/python3.14/test/test_json/test_recursion.pyr   r      s    r   r   c                   ^  a  ] tR t^	t o R tR tR t]P                  ! 4       ]P                  ! 4       R 4       4       t
]P                  ! 4       ]P                  ! 4       ]P                  ! R4      R 4       4       4       t]P                  ! 4       ]P                  ! 4       R 4       4       tRtV tR	# )
TestRecursionc                   . pVP                  V4        V P                  V4       V P                  R 4       . pV.pVP                  V4        V P                  V4       V P                  R4       . pW3.pV P                  V4       R#   \         d(   pT P	                  TP
                  R.4        Rp?L~Rp?ii ; i  \         d/   pT P	                  TP
                  R.^,          4        Rp?LRp?ii ; i)z)didn't raise ValueError on list recursionwhen serializing list item 0Nz5didn't raise ValueError on alternating list recursion)appenddumpsfail
ValueErrorassertEqual	__notes__selfxexcys   &   r   test_listrecursion TestRecursion.test_listrecursion
   s    		CJJqM IIABC		OJJqM IIMNF

1!  	NS]]-K,LMM	N  	PS]]-K,LQ,NOO	Ps/   B B= B:B55B:=C6$C11C6c                    / pWR &    V P                  V4       V P                  R4       / pRVRV/pV P                  V4       R#   \         d(   pT P                  TP                  R.4        Rp?LHRp?ii ; i)testz)didn't raise ValueError on dict recursionz!when serializing dict item 'test'Nab)r   r   r   r   r   r   s   &   r   test_dictrecursion TestRecursion.test_dictrecursion!   s{    &		CJJqM IIAB!S!

1  	SS]]-P,QRR	Ss   A A7A22A7c                f    ! R  RV P                   P                  4      pV! 4       pV P                  VP                  \        4      R4       RVn         VP                  \        4       V P                  R4       R#   \         d*   pT P                  TP                  RR.4        Rp?R# Rp?ii ; i)c                   *   a  ] tR t^0t o RtR tRtV tR# )ATestRecursion.test_defaultrecursion.<locals>.RecursiveJSONEncoderFc                    V\         J d   V P                  '       d   \         .# R # V P                  P                  P	                  V4      # )r   )r   recursejsonJSONEncoderdefaultr   os   &&r   r/   ITestRecursion.test_defaultrecursion.<locals>.RecursiveJSONEncoder.default2   s:    &||| .///yy,,44Q77r   r   N)r
   r   r   r   r,   r/   r   __classdictcell____classdict__s   @r   RecursiveJSONEncoderr*   0   s     G8 8r   r6   z"JSONTestObject"Tz,didn't raise ValueError on default recursionr   zwhen serializing type objectN)	r-   r.   r   encoder   r,   r   r   r   )r   r6   encr   s   &   r   test_defaultrecursion#TestRecursion.test_defaultrecursion/   s    	8499#8#8 	8 #$N35GH	FJJ~& IIDE  	?S]]<<>? ?	?s   A< <B0B++B0c           	        R pV P                  \        4      ;_uu_ 4        \        P                  ! 4       ;_uu_ 4        V P	                  RV,          R,           RV,          ,           4       RRR4       RRR4       V P                  \        4      ;_uu_ 4        \        P                  ! 4       ;_uu_ 4        V P	                  RV,          R,           RV,          ,           4       RRR4       RRR4       V P                  \        4      ;_uu_ 4        \        P                  ! 4       ;_uu_ 4        V P	                  RV,          R,           RV,          ,           4       RRR4       RRR4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     Lh; i  + '       g   i     R# ; i)@ z{"a":1}Nz[1][])assertRaisesRecursionErrorr   infinite_recursionloads)r   	very_deeps   & r   #test_highly_nested_objects_decoding1TestRecursion.test_highly_nested_objects_decodingG   s+    	 ~..++--

7Y.4sYFG . / ~..++--

7Y.6yHI . / ~..++--

3?S03?BC . /. .-- /.. .- /. .- /..sj   F.E0	,FF+7.F	%F+G0.F>	G0F;	FF	F(#F++F;	>G	GG"	cpuc           	     N   . / r!\        R 4       F	  pV.RV/r!K  	  V P                  \        4      ;_uu_ 4        \        P                  ! R4      ;_uu_ 4        V P                  V4       RRR4       RRR4       V P                  \        4      ;_uu_ 4        \        P                  ! R4      ;_uu_ 4        V P                  V4       RRR4       RRR4       R#   + '       g   i     Lx; i  + '       g   i     L; i  + '       g   i     L@; i  + '       g   i     R# ; i)r<   ki  N)rangerA   rB   r   rC   r   )r   ldr   s   &   r   #test_highly_nested_objects_encoding1TestRecursion.test_highly_nested_objects_encodingW   s    
 21wA3Qq  ~..++D11

1 2 / ~..++D11

1 2 /. 21 /. 21 /..sG   C-C	*C-D6D 	DC*%C--C=	 DDD$	c           	     \    ! R  RV P                   P                  4      pV P                  \        4      ;_uu_ 4        \        P
                  ! R4      ;_uu_ 4        V! RR7      P                  R4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)c                   &   a  ] tR t^jt o R tRtV tR# )@TestRecursion.test_endless_recursion.<locals>.EndlessJSONEncoderc                    V.# )Nr   r0   s   &&r   r/   HTestRecursion.test_endless_recursion.<locals>.EndlessJSONEncoder.defaultk   s	    s
r   r   N)r
   r   r   r   r/   r   r3   r4   s   @r   EndlessJSONEncoderrR   j   s      r   rU   i  F)check_circulary              @N)r-   r.   rA   rB   r   rC   r7   )r   rU   s   & r   test_endless_recursion$TestRecursion.test_endless_recursionf   so    	!6!6 	
 ~..++D11"%8??C 2 /.11 /..s#   BB	5BBBB+	r   N)r
   r   r   r   r    r&   r9   r   skip_emscripten_stack_overflowskip_wasi_stack_overflowrF   requires_resourcerN   rW   r   r3   r4   s   @r   r   r   	   s     .F0 ++-%%'D ( .D %%'++-u%
 & . (
 ++-%%'	D ( .	Dr   r   c                       ] tR t^ttRtR# )TestPyRecursionr   Nr	   r   r   r   r]   r]   t   s    dr   r]   c                       ] tR t^utRtR# )TestCRecursionr   Nr	   r   r   r   r_   r_   u   s    Dr   r_   N)	r#   r   test.test_jsonr   r   r   r   r]   r_   r   r   r   <module>ra      s:     (	 	hD hDV 3mV 2 0]E 0r   