+
    Bi                         ^ RI t ^ RIHt ^ RIHt ^ RIHtHt ^ RIH	t	  ! R R4      t
 ! R R	]
]4      t ! R
 R]
]4      tR# )    N)StringIO)OrderedDict)PyTestCTest)supportc                      a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tRtV tR# )
TestDecodec                    V P                  R \        P                  R7      pV P                  V\        P                  4       V P	                  V\        P                  ! R 4      4       R# )z1.1)parse_floatN)loadsdecimalDecimalassertIsInstanceassertEqualselfrvals   & 1/usr/lib/python3.14/test/test_json/test_decode.pytest_decimalTestDecode.test_decimal	   sE    zz%W__z=dGOO4wu56    c                    V P                  R \        R7      pV P                  V\        4       V P                  VR4       R# )1)	parse_intg      ?N)r   floatr   r   r   s   & r   
test_floatTestDecode.test_float   s4    zz#z/dE*s#r   c                    R F@  pV P                  V P                  4      ;_uu_ 4        V P                  V4       RRR4       KB  	  R#   + '       g   i     KW  ; i)   1０N)r   u   0.０u   0e０assertRaisesJSONDecodeErrorr   )r   nums   & r   test_nonascii_digits_rejected(TestDecode.test_nonascii_digits_rejected   s@    6C""4#7#788

3 98 7888   A		Ac                H    V P                  V P                  R 4      ^4       R# )   1Nr   r   r   s   &r   
test_bytesTestDecode.test_bytes   s    D)1-r   c                ~    R F6  w  rV P                  V P                  V\        P                  R7      V4       K8  	  R# )Infinity)parse_constantN))r.   INFINITY)z	-Infinityz	-INFINITY)NaNNAN)r   r   strupper)r   constantexpecteds   &  r   test_parse_constantTestDecode.test_parse_constant   s7    #
H
 

8CII
>#
r   c                    R F@  pV P                  V P                  4      ;_uu_ 4        V P                  V4       RRR4       KB  	  R#   + '       g   i     KW  ; i)nanN)r:   r2   naNinfinityr0   inFiniTyr    )r   r5   s   & r   test_constant_invalid_case%TestDecode.test_constant_invalid_case&   sG    
H ""4#7#788

8$ 98
 988r&   c                    V P                  V P                  R 4      / 4       V P                  V P                  R4      . 4       V P                  V P                  R4      R4       R# ){}z[]z"" Nr)   r*   s   &r   test_empty_objectsTestDecode.test_empty_objects-   sM    D)2.D)2.D)2.r   c                   R p. R
OpV P                  V P                  V4      \        V4      4       V P                  V P                  VR R7      V4       V P                  V P                  P	                  \        V4      R R7      V4       V P                  V\        R7      pV P                  V\        V4      4       V P                  \        V4      \        4       V P                  V P                  V\        R R7      \        V4      4       V P                  V P                  R\        R7      \        4       4       V P                  V P                  R\        R7      \        R\        4       3.4      4       R	# )z?{"xkd":1, "kcw":2, "art":3, "hxm":4, "qrt":5, "pad":6, "hoy":7}c                     V # N xs   &r   <lambda>3TestDecode.test_object_pairs_hook.<locals>.<lambda>7   s    1r   )object_pairs_hookc                     V # rG   rH   rI   s   &r   rK   rL   9   s    Ar   c                     R # rG   rH   rI   s   &r   rK   rL   ?   s    $r   )rM   object_hookrA   z{"empty": {}}emptyN))xkd   )kcw   )art   )hxm   )qrt   )pad   )hoy   )r   r   evaljsonloadr   r   type)r   spods   &   r   test_object_pairs_hook!TestDecode.test_object_pairs_hook2   s9   M1AQ0AEqI:E ( GHI	KZZ[Z9[^,b;/A0> $ @$Q	) 	DKH$	(O6A $ C$w&>%?@	Br   c                T    V P                  R 4      pV P                  VRRRR/4       R# )z,{   "key"    :    "value"    ,  "k":"v"    }keyvaluekvN)r   r   r   s   & r   test_decoder_optimizations%TestDecode.test_decoder_optimizationsH   s,     zzHIgs378r   c                    V! V4      p\        V^ ,          4      \        V^,          4      uw  rEw  rgV P                  WF4       V P                  WW4       R# )r   N)sortedassertIs)r   sourcer   r   abcds   &&&     r   check_keys_reuseTestDecode.check_keys_reuseO   sB    V}Q&a/aar   c                    R pV P                  WP                  4       V P                  P                  P	                  4       pV P                  WP
                  4       V P                  VP                  4       R# )u2   [{"a_key": 1, "b_é": 2}, {"a_key": 3, "b_é": 4}]N)rx   r   ra   decoderJSONDecoderdecodeassertFalsememo)r   rd   r{   s   &  r   test_keys_reuseTestDecode.test_keys_reuseU   sU    Da,))##//1a0&r   c                \    R pRpV P                  V P                  W P                  V4       R# )z
[1, 2, 3]5z
Extra dataNassertRaisesRegexr"   r   r   rd   msgs   &  r   test_extra_dataTestDecode.test_extra_data\   s(    t33S**aHr   c                \    R pRpV P                  V P                  W P                  V4       R# )z	["abc\y"]escapeNr   r   s   &  r   test_invalid_escapeTestDecode.test_invalid_escapea   s(    t33S**aHr   c                h    R p^R. / R3 F$  pV P                  \        WP                  V4       K&  	  R# )zthe JSON object must be strgQ	@N)r   	TypeErrorr   )r   r   rk   s   &  r   test_invalid_input_type"TestDecode.test_invalid_input_typef   s2    +r2t,E""9c::uE -r   c                8   R P                  R4      P                  R4      pV P                  V P                  4      ;_uu_ 4       pV P	                  V4       RRR4       V P                  R\        XP                  4      4       V P                  V P                  4      ;_uu_ 4       pV P                  P                  \        V4      4       RRR4       V P                  R\        VP                  4      4       RP                  R4      P                  R4      pRV R2pV P                  V P	                  V4      R4       V P                  V P                  P                  \        V4      4      R4       R#   + '       g   i     EL(; i  + '       g   i     L; i)z[1,2,3]z	utf-8-sigzutf-8NBOMrB   "u   ﻿)encoder}   r!   r"   r   assertInr3   	exceptionra   rb   r   r   )r   bom_jsoncmbom
bom_in_strs   &    r   test_string_with_utf8_bom$TestDecode.test_string_with_utf8_bomk   s   ##K077@t3344JJx  5eS./t3344IINN8H-. 5eS./ii$++G4QZ
J/:(<=xH 544 54s   E5&%F	5F		F	c                ~    V P                   P                  4       pV P                  \        VP                  RR4       R# )rt   N*aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai<)ra   r|   r!   
ValueError
raw_decode)r   rw   s   & r   test_negative_indexTestDecode.test_negative_indexz   s,    II!!#*allFFCr   c           	     `   R p\         P                  ! V4      ;_uu_ 4        V P                  RV,          4       V P                  \        4      ;_uu_ 4        V P                  RV^,           ,          4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)i  r   N)r   adjust_int_max_str_digitsr   r!   r   )r   	maxdigitss   & r   test_limit_intTestDecode.test_limit_int~   sn    	..y99JJsY'"":..

3)a-01 / :9.. :99s#   6B B		7B	BBB-	rH   N)__name__
__module____qualname____firstlineno__r   r   r$   r+   r7   r>   rC   rg   rn   rx   r   r   r   r   r   r   r   __static_attributes____classdictcell__)__classdict__s   @r   r	   r	      se     7
$
 .%/
B,9'I
I
F
ID2 2r   r	   c                       ] tR t^tRtR# )TestPyDecoderH   Nr   r   r   r   r   rH   r   r   r   r      s    r   r   c                       ] tR t^tRtR# )TestCDecoderH   Nr   rH   r   r   r   r      s    dr   r   )r   ior   collectionsr   test.test_jsonr   r   testr   r	   r   r   rH   r   r   <module>r      s7      # ( {2 {2| -:v , **e *r   