
    <i=                         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     V/home/james-whalen/.local/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5      (       d  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   assertIsc                 8    U R                  XL U< SU< 35        g )Nz is )
assertTrue)r   ar   s      r   r$   TestDecode.assertIs   s    OOAF!Q$78r   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Decimalr&   
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/   r0   r1   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,   r0   r1   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{}z[]"")r0   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>5   s    1r   object_pairs_hookc                     U $ r   r   rY   s    r   r[   r\   7   s    qr   c                     g r   r   rY   s    r   r[   r\   >   s    $r   )r^   object_hook)r0   r+   r,   rD   loadr   r   type)r   rF   pods       r   test_object_pairs_hook!TestDecode.test_object_pairs_hook0   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   rK   )sortedr$   )r   sourcer,   r2   r'   r   cds           r   check_keys_reuseTestDecode.check_keys_reuseA   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)encoderm   r+   r,   rE   s     r   test_keys_reuse_strTestDecode.test_keys_reuse_strG   s&    ELLVTa,r   c                 H    SnU R                  U[        R                  5        g )Nrp   )rm   r+   r,   rE   s     r   test_keys_reuse_unicode"TestDecode.test_keys_reuse_unicodeK   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 )NrC    z[""])r0   r+   r,   r   s    r   test_empty_stringsTestDecode.test_empty_stringsO   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 )Nr'   	   z	{"a": {}}r]      z 
{"a": {}})r+   decoderJSONDecoderr0   
raw_decodedict)r   clss     r   test_raw_decodeTestDecode.test_raw_decodeU   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   r0   r   r
   )r   r   datas      r   test_bytes_decodeTestDecode.test_bytes_decodec   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)	rQ   rS   rU   i1234	128931233	472389423)r>   )	r+   r   r   assertRaises
ValueError	scan_oncer   ri   id)r   jirZ   ydiffs         r   test_bounds_checkingTestDecode.test_bounds_checkingo   s    LL$$&2Aj!++vqAj!,,B 3 {K0b9!ur!u}*akk1;*allAq9r   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   r[   -TestDecode.test_bounded_int.<locals>.<lambda>|   s    r   r6   0rK   )getattrsysr0   r+   r,   intr   r   )r   max_str_digitsrF   s      r   test_bounded_intTestDecode.test_bounded_intz   s^     &>MO#!+,,AA/*djj!c':r   r   N)r   r   r   r   hasattrr   r$   r3   r9   r@   rG   rf   rm   rs   rv   rz   r   r   r   r   r    r   r   r   r"   r"      sV    8Z((	97
$
91)"--50
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 "m; m;r   