
    4j.                         S SK Jr  S SKrS SKJr  S SKrS SKrS SKJ	r	J
r
Jr  S SKJr   " S S\5      r " S S	\5      rg)
    )absolute_importN)TestCase)StringIObbinary_type)OrderedDictc                   *    \ rS rSrSS jrS rS rSrg)MisbehavingBytesSubtype
   Nc                     g)Nz
bad decode )selfencodings     [/root/lseg-credit/backend/venv/lib/python3.13/site-packages/simplejson/tests/test_decode.pydecodeMisbehavingBytesSubtype.decode   s        c                     g)Nzbad __str__r   r   s    r   __str__MisbehavingBytesSubtype.__str__   s    r   c                     [        S5      $ )Nzbad __bytes__)r   r   s    r   	__bytes__!MisbehavingBytesSubtype.__bytes__   s    !!r   r   N)__name__
__module____qualname____firstlineno__r   r   r   __static_attributes__r   r   r   r
   r
   
   s    "r   r
   c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rSrg)
TestDecode   c                     [         R                  " S[        R                  S9nU R	                  [        U[        R                  5      5        U R                  U[        R                  " S5      5        g )Nz1.1)parse_float)jsonloadsdecimalDecimal
assertTrue
isinstanceassertEqualr   rvals     r   test_decimalTestDecode.test_decimal   sF    zz%W__=
49:wu56r   c                     [         R                  " S[        S9nU R                  [	        U[        5      5        U R                  US5        g )N1)	parse_intg      ?)r&   r'   floatr*   r+   r,   r-   s     r   
test_floatTestDecode.test_float   s5    zz#/
4/0s#r   c                 Z    [         R                  " S5      nU R                  USSS.5        g )Nz,{   "key"    :    "value"    ,  "k":"v"    }valuev)keyk)r&   r'   r,   r-   s     r   test_decoder_optimizations%TestDecode.test_decoder_optimizations   s(     zzHIg378r   c                 *   SnU R                  [        R                  " U5      [        U5      5        SnU R                  [        R                  " U5      [        U5      5        SnU R                  [        R                  " U5      [        U5      5        g )Nz{}[]"")r,   r&   r'   evalr   ss     r   test_empty_objectsTestDecode.test_empty_objects$   se    AQ0AQ0AQ0r   c                 &   Sn/ SQnU R                  [        R                  " U5      [        U5      5        U R                  [        R                  " US S9U5        U R                  [        R                  " [        U5      S S9U5        [        R                  " U[        S9nU R                  U[        U5      5        U R                  [        U5      [        5        U R                  [        R                  " U[        S S9[        U5      5        g )Nz?{"xkd":1, "kcw":2, "art":3, "hxm":4, "qrt":5, "pad":6, "hoy":7}))xkd   )kcw   )art   )hxm   )qrt   )pad   )hoy   c                     U $ r   r   xs    r   <lambda>3TestDecode.test_object_pairs_hook.<locals>.<lambda>1   s    1r   object_pairs_hookc                     U $ r   r   rV   s    r   rX   rY   3   s    qr   c                     g r   r   rV   s    r   rX   rY   :   s    $r   )r[   object_hook)r,   r&   r'   rA   loadr   r   type)r   rC   pods       r   test_object_pairs_hook!TestDecode.test_object_pairs_hook,   s    M1AQ0AEqI8A;5@BCD	FZZ[9[^,b;/A6A0>@ %Q	)r   c                     U" U5      n[        US   5      [        US   5      su  pEu  pgU R                  XF5        U R                  XW5        g )Nr   rH   )sortedassertIs)r   sourcer'   r.   ar   cds           r   check_keys_reuseTestDecode.check_keys_reuse=   sB    V}Q&a/aar   c                 f    SR                  S5      nU R                  U[        R                  5        g )N2   [{"a_key": 1, "b_é": 2}, {"a_key": 3, "b_é": 4}]utf8)encoderl   r&   r'   rB   s     r   test_keys_reuse_strTestDecode.test_keys_reuse_strC   s&    ELLVTa,r   c                 H    SnU R                  U[        R                  5        g )Nro   )rl   r&   r'   rB   s     r   test_keys_reuse_unicode"TestDecode.test_keys_reuse_unicodeG   s    Ea,r   c                 8   U R                  [        R                  " S5      S5        U R                  [        R                  " S5      S5        U R                  [        R                  " S5      S/5        U R                  [        R                  " S5      S/5        g )Nr@    z[""])r,   r&   r'   r   s    r   test_empty_stringsTestDecode.test_empty_stringsK   sj    D)2.E*C0F+bT2G,se4r   c                 :   [         R                  R                  nU R                  S0 0S4U" 5       R	                  S5      5        U R                  S0 0S4U" [
        S9R	                  S5      5        U R                  S0 0S4U" 5       R	                  S5      5        g )Nri   	   z	{"a": {}}rZ      z 
{"a": {}})r&   decoderJSONDecoderr,   
raw_decodedict)r   clss     r   test_raw_decodeTestDecode.test_raw_decodeQ   s    ll&&2YNE]+	- 	2YN$'22=A	C 	2YOE-.	0r   c                 6   [         R                  R                  n[        S5      nU R	                  U" 5       R                  U5      S5        U R	                  U" SS9R                  U5      S5        U R	                  U" S S9R                  U5      S5        [        [        S5      5      nU R	                  U" 5       R                  U5      S5        U R	                  U" SS9R                  U5      S5        U R	                  U" S S9R                  U5      S5        g )Nu   "â¬"u   €latin1)r   u   â¬)r&   r~   r   r   r,   r   r
   )r   r   datas      r   test_bytes_decodeTestDecode.test_bytes_decode_   s    ll&&!"d+Y7h/66t<oNd+2248)D&q)9':;d+Y7h/66t<oNd+2248)Dr   c                    [         R                  R                  5       nS HG  nU R                  [        UR
                  SU5        U R                  [        UR                  SU5        MI     [        SS/[        S9u  p4[        U5      [        U5      -
  nU R                  [        UR
                  XE5        U R                  [        UR                  UW5        g )N)	rN   rP   rR   i1234	128931233	472389423)r:   )	r&   r~   r   assertRaises
ValueError	scan_oncer   rf   id)r   jirW   ydiffs         r   test_bounds_checkingTestDecode.test_bounds_checkingk   s    LL$$&2Aj!++vqAj!,,B 3 {K0b9!ur!u}*akk1;*allAq9r   c                     [         R                  " S[        S9nU R                  US5        U R	                  U[        5        g )Nz[1, [2, 3], 4]
array_hook)rH   )rJ   rL   rN   r&   r'   tupler,   assertIsInstancer   results     r   test_array_hookTestDecode.test_array_hookv   s3    ,?0fe,r   c                     [         R                  " S[        S9nU R                  US5        U R	                  U[        5        g )Nr?   r   r   r   r   s     r   test_array_hook_empty TestDecode.test_array_hook_empty{   s2    DU3$fe,r   c                 ^    [         R                  " S[        S9nU R                  USS05        g )Nz{"a": [1, 2]}r   ri   )rH   rJ   )r&   r'   r   r,   r   s     r    test_array_hook_nested_in_object+TestDecode.test_array_hook_nested_in_object   s&    O>#v/r   c                     S nSn[         R                  " X![        S9nU R                  U[        5        [	        U5      S   nU R                  U[        5        U H  nU R                  U[        5        M     g )Nc                 F    [        [        U R                  5       5      5      $ r   )r   rf   items)rk   s    r   freeze_dict@TestDecode.test_array_hook_with_object_hook.<locals>.freeze_dict   s    	*++r   z{"xkd": [[1], [2], [3]]})r^   r   rG   )r&   r'   r   r   r   )r   r   rC   r   	xkd_valueitems         r    test_array_hook_with_object_hook+TestDecode.test_array_hook_with_object_hook   sd    	,&A5Ife,L'	i/D!!$. r   c                     [         R                  " SS S9nU R                  USS/5        U R                  U[        5        g )Nz[1, 2]r   rH   rJ   )r&   r'   r,   r   listr   s     r   test_array_hook_noneTestDecode.test_array_hook_none   s6    H6!Q(fd+r   c           
         / SQnU H1  u  p# [         R                  " U5        U R                  SU< 35        M3     g ! [         R                   a/  nU R	                  U[        U5      SU< SU< 35         S nAMt  S nAff = f)N))z[42,]*Illegal trailing comma before end of array)z{"spam":42,}+Illegal trailing comma before end of object)z{"spam":42 , }r   )z	[123  , ]r   zExpected JSONDecodeError for zWrong error for z: )r&   r'   failJSONDecodeErrorassertInstr)r   
test_casesdocexpected_msges        r   #test_trailing_comma_unexpected_data.TestDecode.test_trailing_comma_unexpected_data   sp    

 ",C9

3		sDE ", '' 9lCF03Q79 99s   +=B $A;;B c                 t    S H2  nU R                  [        R                  [        R                  U5        M4     g )N)u   1０u   0.０u   0e０)r   r&   r   r'   )r   nums     r   test_nonascii_digits_rejected(TestDecode.test_nonascii_digits_rejected   s*     :Cd22DJJD :r   c                     [        [        SS 5      " 5       nSSUS-
  -  -   nU R                  [        R                  " U5      [        U5      5        U R                  [        [        R                  US-   5        g )Nget_int_max_str_digitsc                      g)Ni  r   r   r   r   rX   -TestDecode.test_bounded_int.<locals>.<lambda>   s    r   r2   0rH   )getattrsysr,   r&   r'   intr   r   )r   max_str_digitsrC   s      r   test_bounded_intTestDecode.test_bounded_int   s^     &>MO#!+,,AA/*djj!c':r   r   N)r   r   r   r   r/   r5   r<   rD   rc   rl   rr   ru   ry   r   r   r   r   r   r   r   r   r   r   r   r    r   r   r   r"   r"      sh    7
$
91)"--50
E	:-
-
0/,9 E;r   r"   )
__future__r   r(   unittestr   r   
simplejsonr&   simplejson.compatr   r   r   r   r
   r"   r   r   r   <module>r      s7    &   
  6 6 ""k "a; a;r   