
    A>i                     $   S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r
S SKrS SKJs  Jr  S SKJr  S SKJrJrJrJrJrJrJrJrJr  S SKJr  S r\R>                  " / SQS9S 5       r  " S S	5      r! " S
 S5      r" " S S5      r#g)    N)IS64)		DataFrameDatetimeIndexIndexNaTPeriodIndexSeries	Timedelta	Timestamp
date_rangec                 l    U R                  5        VVs0 s H  u  p[        U5      U_M     snn$ s  snnf )z
Sanitize dictionary for JSON by converting all keys to strings.

Parameters
----------
d : dict
    The dictionary to convert.

Returns
-------
cleaned_dict : dict
)itemsstr)dkvs      ^/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/io/json/test_ujson.py_clean_dictr      s,     #$''),)$!CFAI),,,s   0)Nsplitrecordsvaluesindex)paramsc                     U R                   $ N)param)requests    r   orientr   /   s     ==    c                   
   \ rS rSr\R
                  R                  \(       + SS9\R
                  R                  S/ SQ5      S 5       5       r	\R
                  R                  SSS	/5      S
 5       r
\R
                  R                  S/ SQ5      S 5       rS rS rS r\R
                  R                  SSS/5      S 5       r\R
                  R                  S\R"                  \R"                  * /5      S 5       rS rS rS rS r\R
                  R                  S/ SQ5      S 5       rS r\R
                  R                  SS S!/5      S" 5       rS# rS$ rS% rS& rS' rS( r\R
                  R                  S)/ S*Q5      S+ 5       r S, r!S- r"\R
                  R                  S./ S/Q5      S0 5       r#S1 r$S2 r%\R
                  R                  S3\&RN                  " 5       \&RN                  " S4S5S65      \&RN                  " S7S8S9S:5      /5      S; 5       r(S< r)S= r*\R
                  R                  S>\+\,RZ                  " S?5      \,R\                  \,R^                  \,R^                  * /5      S@ 5       r0SA r1SB r2SC r3SD r4SE r5\R
                  R                  SF/ SGQ5      SH 5       r6\R
                  R                  SISJSK/5      SL 5       r7\R
                  R                  SM/ SNQ5      SO 5       r8\R
                  R                  SP/ SQQ5      SR 5       r9\R
                  R                  SS/ STQ5      SU 5       r:\R
                  R                  SVSWSX/5      SY 5       r;SZ r<S[ r=S\ r>\R
                  R                  S]S^S_/5      S` 5       r?\R
                  R                  SaSbSc/5      Sd 5       r@\R
                  R                  Se/ SfQ5      Sg 5       rASh rB\R
                  R                  Si/ SjQ5      Sk 5       rCSl rDSm rESn rFSo rGSp rHSq rISrrJgs)tTestUltraJSONTests6   z$not compliant on 32-bit, xref #15865)reasonzvalue, double_precision))z	1337.1337   )z0.95   )z0.94r%   )z1.95r%   )z-1.95r%   )z0.995   )z0.9995   )z0.99999999999999944r$   c                     [         R                  " U5      n[        R                  " X2S9n[        R                  " U5      nXQ:X  d   eg )Ndouble_precision)decimalDecimalujsonujson_dumpsujson_loads)selfvaluer*   sutencodeddecodeds         r   test_encode_decimal&TestUltraJSONTests.test_encode_decimal7   s>     ooe$##CK##G,r   ensure_asciiTFc                 N   ^^ SmSnSnUU4S jnU" U5        U" USS9  U" USS9  g )Nz"A string \ /   
  	 </script> &z,"A string \\ \/ \b \f \n \r \t <\/script> &"z;"A string \\ \/ \b \f \n \r \t \u003c\/script\u003e \u0026"c                    > [         R                  " T4ST0UD6nX :X  d   eT[        R                  " U5      :X  d   eT[         R                  " U5      :X  d   eg )Nr7   r-   r.   jsonloadsr/   )expected_outputencode_kwargsoutputr7   string_inputs      r   helper@TestUltraJSONTests.test_encode_string_conversion.<locals>.helperS   sd    &&+7;HF ,,,4::f#55555#4#4V#<<<<r   F)encode_html_charsT )r0   r7   not_html_encodedhtml_encodedrA   r@   s    `   @r   test_encode_string_conversion0TestUltraJSONTests.test_encode_string_conversionK   s?    ARU 		= 	  	59 	|t4r   long_number)lZ:`7{ g#_tgԟpAc                 p    SU0n[         R                  " USS9n[         R                  " U5      nX$:X  d   eg )Nar$   r)   r-   r.   r/   )r0   rI   r2   r3   r4   s        r   test_double_long_numbers+TestUltraJSONTests.test_double_long_numberse   s:     K ##C"=##G,~~r   c                 h   [         R                  nS H  n[        R                  " X!5      (       d  M   [        R                  " X!5         [
        R                  " [
        R                  " S5      5      S:X  d   e[
        R                  " SSS9S:X  d   e S S S 5          g    g ! , (       d  f       N= f)N)zit_IT.UTF-8Italian_ItalygˇLz4.78Tprecise_floatgQ@)locale
LC_NUMERICtmcan_set_locale
set_localer-   r/   r.   )r0   lc_category
new_locales      r   test_encode_non_c_locale+TestUltraJSONTests.test_encode_non_c_localeo   s    '' ;J  99]]:; ,,U->->w-GHGSSS ,,V4HDPPP <  ;;;s   	AB##
B1	c                 p    SS0n[         R                  " U5      n[         R                  " USS9nX:X  d   eg )NrK   g=
ףp=@TrQ   rL   )r0   r2   r3   r4   s       r    test_decimal_decode_test_precise3TestUltraJSONTests.test_decimal_decode_test_precisez   s7    Dk##C(##G4@~~r   c                    SnU[         R                  " [         R                  " U5      5      :X  d   eSnU[         R                  " [         R                  " U5      5      :X  d   eSnU[         R                  " [         R                  " U5      5      :X  d   eSn[        R                  " U[         R                  " [         R                  " U5      5      5      (       d   eg )NgWw'&l7g0.++gj7֖g?>ӡ)r-   r/   r.   npallclose)r0   nums     r   #test_encode_double_tiny_exponential6TestUltraJSONTests.test_encode_double_tiny_exponential   s    e''(9(9#(>????e''(9(9#(>????e''(9(9#(>????{{3 1 1%2C2CC2H IJJJJr   unicode_keykey1u   بنc                 l    US0nU[         R                  " [         R                  " U5      5      :X  d   eg )Nvalue1r-   r/   r.   )r0   re   unicode_dicts      r   "test_encode_dict_with_unicode_keys5TestUltraJSONTests.test_encode_dict_with_unicode_keys   s0    #X.u001B1B<1PQQQQr   double_inputc                     [         R                  " U5      n[        US5      [        [        R                  " U5      S5      :X  d   e[        US5      [        [         R
                  " U5      S5      :X  d   eg N   )r-   r.   roundr;   r<   r/   )r0   rm   r?   s      r   test_encode_double_conversion0TestUltraJSONTests.test_encode_double_conversion   s^    ""<0\1%tzz&/A1)EEEE\1%u/@/@/H!)LLLLr   c                 D    Sn[         R                  " U5      nUS:X  d   eg )Ng      ?z1.0r-   r.   )r0   decimal_inputr?   s      r   test_encode_with_decimal+TestUltraJSONTests.test_encode_with_decimal   s#    ""=1r   c                     / ///S-  n[         R                  " U5      nU[        R                  " U5      :X  d   eU[         R                  " U5      :X  d   eg )N   r:   )r0   nested_inputr?   s      r   "test_encode_array_of_nested_arrays5TestUltraJSONTests.test_encode_array_of_nested_arrays   sQ    x"}""<0tzz&1111u008888r   c                     / SQS-  n[         R                  " U5      nU[        R                  " U5      :X  d   eU[         R                  " U5      :X  d   eg )N)cAT@r   r   r   
   r:   )r0   doubles_inputr?   s      r   test_encode_array_of_doubles/TestUltraJSONTests.test_encode_array_of_doubles   sL    LrQ""=1

6 2222 1 1& 9999r   c                 b   Sn[         R                  " USS9nU[        R                  " U5      :X  d   eU[         R                  " U5      :X  d   eS HZ  n[         R                  " XS9n[        X5      nU[        R                  " U5      :X  d   eU[         R                  " U5      :X  a  MZ   e   g )Ng )>@r$   r)   )r'   	   )r-   r.   r;   r<   r/   rq   )r0   rm   r?   r*   rounded_inputs        r   test_double_precision(TestUltraJSONTests.test_double_precision   s    )""<"Etzz&1111u008888 &&&|WF!,AM DJJv$6666 E$5$5f$==== !'r   invalid_val)rz   9Nc                     Sn[        U[        5      (       a  [        O[        nSn[        R
                  " X4S9   [        R                  " X!S9  S S S 5        g ! , (       d  f       g = f)NgF7ݚ>@zInvalid value '.*' for option 'double_precision', max is '15'|an integer is required \(got type |object cannot be interpreted as an integermatchr)   )
isinstanceint
ValueError	TypeErrorpytestraisesr-   r.   )r0   r   rm   expected_exceptionmsgs        r   test_invalid_double_precision0TestUltraJSONTests.test_invalid_double_precision   sP     /+5k3+G+GZY: 	
 ]]-9lI :99s   A
A&c                     Sn[         R                  " U5      nU[        R                  " U5      :X  d   eU[         R                  " U5      :X  d   eUS:X  d   eg )NzA string \ /   
  	z"A string \\ \/ \b \f \n \r \t"r:   )r0   r@   r?   s      r   test_encode_string_conversion21TestUltraJSONTests.test_encode_string_conversion2   sV    5""<0tzz&1111u008888BBBBr   unicode_inputu@   Räksmörgås اسامة بن محمد بن عوض بن لادن
   æ¥Ñc                     [         R                  " U5      n[         R                  " U5      nU[        R                  " U5      :X  d   eU[        R
                  " U5      :X  d   eg r   r-   r.   r/   r;   dumpsr<   )r0   r   encdecs       r   test_encode_unicode_conversion1TestUltraJSONTests.test_encode_unicode_conversion   sQ    
 .$djj////djjo%%%r   c                     Sn[         R                  " U5      n[         R                  " U5      nX:X  d   eU[        R                  " U5      :X  d   eg )N)r-   r.   r/   r;   r   )r0   escaped_inputr   r   s       r   test_encode_control_escaping/TestUltraJSONTests.test_encode_control_escaping   sJ    .$###djj////r   c                     Sn[         R                  " U5      n[         R                  " U5      nU[        R                  " U5      :X  d   eU[        R
                  " U5      :X  d   eg )Nu   ðr   )r0   surrogate_inputr   r   s       r   "test_encode_unicode_surrogate_pair5TestUltraJSONTests.test_encode_unicode_surrogate_pair   sT    ,0$djj1111djjo%%%r   c                     Sn[         R                  " U5      n[         R                  " U5      nU[        R                  " U5      :X  d   eU[        R
                  " U5      :X  d   eg )Nu   ð°TRAILINGNORMALr   r0   four_bytes_inputr   r   s       r   test_encode_unicode_4bytes_utf82TestUltraJSONTests.test_encode_unicode_4bytes_utf8   sW    ; 01$djj!12222djjo%%%r   c                     Sn[         R                  " U5      n[         R                  " U5      nU[        R                  " U5      :X  d   eU[        R
                  " U5      :X  d   eg )Nu   ó¿¿¿TRAILINGNORMALr   r   s       r   &test_encode_unicode_4bytes_utf8highest9TestUltraJSONTests.test_encode_unicode_4bytes_utf8highest   sW    ; 01$djj!12222djjo%%%r   c                     SnSn[         R                  " [        US9   [        R                  " U/5        S S S 5        g ! , (       d  f       g = f)Nu   ''zT'utf-8' codec can't encode character '\\udac0' in position 1: surrogates not allowedr   )r   r   UnicodeEncodeErrorr-   r.   )r0   stringr   s      r   test_encode_unicode_error,TestUltraJSONTests.test_encode_unicode_error   s>    5 	 ]]-S9vh' :99s	   ?
Ac                     / ///n[         R                  " U5      nU[        R                  " U5      :X  d   eU[        R                  " U5      :X  d   eU[         R
                  " U5      :X  d   eg r   r-   r.   r;   r<   r   r/   )r0   arr_in_arr_inputr?   s      r   test_encode_array_in_array-TestUltraJSONTests.test_encode_array_in_array  sg     TF8""#344::f#5555$455555#4#4V#<<<<r   	num_input)iz  i         c                     [         R                  " U5      nU[        R                  " U5      :X  d   eU[        R                  " U5      :X  d   eU[         R
                  " U5      :X  d   eg r   r   )r0   r   r?   s      r   test_encode_num_conversion-TestUltraJSONTests.test_encode_num_conversion  s[     ""9-DJJv....I....E--f5555r   c                     / SQn[         R                  " U5      nU[        R                  " U5      :X  d   eU[         R                  " U5      :X  d   eg )N)r%   r&   r'      r:   )r0   
list_inputr?   s      r   test_encode_list_conversion.TestUltraJSONTests.test_encode_list_conversion  sG    !
"":.TZZ////U..v6666r   c                     SSSSS.n[         R                  " U5      nU[        R                  " U5      :X  d   eU[         R                  " U5      :X  d   eg )Nr%   r&   r'   r   )k1k2k3k4r:   )r0   
dict_inputr?   s      r   test_encode_dict_conversion.TestUltraJSONTests.test_encode_dict_conversion%  sP    Qaq9
"":.TZZ////U..v6666r   builtin_value)NTFc                     [         R                  " U5      nU[        R                  " U5      :X  d   eU[        R                  " U5      :X  d   eU[         R
                  " U5      :X  d   eg r   r   )r0   r   r?   s      r   %test_encode_builtin_values_conversion8TestUltraJSONTests.test_encode_builtin_values_conversion,  sY    ""=1

6 2222M2222 1 1& 9999r   c                 n   [         R                   R                  [        R                  " 5       5      n[        R                  " USS9n[
        R                  " UR                  5       5      n[        U5      [        R                  " U5      :X  d   e[        U5      [        R                  " U5      :X  d   eg )Ns	date_unit)datetimefromtimestamptimer-   r.   calendartimegmutctimetupler   r;   r<   r/   )r0   datetime_inputr?   expecteds       r   test_encode_datetime_conversion2TestUltraJSONTests.test_encode_datetime_conversion3  s    !**88E"">SA??>#>#>#@A8}

6 22228} 1 1& 9999r   c                    [         R                  R                  [        R                  " 5       5      n[        R
                  " USS9nUR                  UR                  UR                  SSS4n[        R                  " U5      n[        U5      [        R                  " U5      :X  d   e[        U5      [        R                  " U5      :X  d   eg )Nr   r   r   )r   dater   r   r-   r.   yearmonthdayr   r   r   r;   r<   r/   )r0   
date_inputr?   tupr   s        r   test_encode_date_conversion.TestUltraJSONTests.test_encode_date_conversion;  s    ]]00=
"":=
 0 0*..!QJ??3'8}

6 22228} 1 1& 9999r   testr%   r&   r'   r      r$   < c                 f    [         R                  " U5      nSUR                  5        S3nX2:X  d   eg )N"r-   r.   	isoformatr0   r   r?   r   s       r   !test_encode_time_conversion_basic4TestUltraJSONTests.test_encode_time_conversion_basicE  s6    
 ""4(t~~'(*!!!r   c                     [         R                  " S5      n[        R                  " SSSSUR                  5      n[
        R                  " U5      nSUR                  5        S3nXC:X  d   eg )Npytzr   r   r$   r   r   )r   importorskipr   r   utcr-   r.   r   )r0   r   r   r?   r   s        r    test_encode_time_conversion_pytz3TestUltraJSONTests.test_encode_time_conversion_pytzN  s^    ""6*}}RR:""4(t~~'(*!!!r   c                     [         R                  " SSSS[        R                  R	                  5       5      n[
        R                  " U5      nSUR                  5        S3nX2:X  d   eg )Nr   r   r$   r   r   )r   r   dateutiltztzutcr-   r.   r   r   s       r   $test_encode_time_conversion_dateutil7TestUltraJSONTests.test_encode_time_conversion_dateutilV  sW    }}RR1B1B1DE""4(t~~'(*!!!r   decoded_inputr   c                 F    [         R                  " U5      S:X  d   S5       eg )NnullzExpected nullru   )r0   r  s     r   test_encode_as_null&TestUltraJSONTests.test_encode_as_null]  s"       /69J?J9r   c           	         [         R                   " SSSSSSS5      n[        U5      R                  S5      n[        R                  " [        R
                  " USS	95      nX2R                  S
-  :X  d   e[        R                  " [        R
                  " USS	95      nX2R                  S-  :X  d   e[        R                  " [        R
                  " USS	95      nX2R                  S-  :X  d   e[        R                  " [        R
                  " USS	95      nX2R                  :X  d   eSn[        R                  " [        US9   [        R
                  " USS	9  S S S 5        g ! , (       d  f       g = f)N           r   iI nsr   r   i ʚ;msi@B us  z*Invalid value 'foo' for option 'date_unit'r   foo)
r   r   as_unitr-   r/   r.   _valuer   r   r   )r0   valstamp	roundtripr   s        r   test_datetime_units&TestUltraJSONTests.test_datetime_unitsc  s$   aRR@#&&t,%%e&7&7s&KL	LLE1111%%e&7&7t&LM	LLE1111%%e&7&7t&LM	LLE1111%%e&7&7t&LM	LL(((:]]:S1cU3 211s   E""
E0c                     Sn[         R                  " USS9n[         R                  " U5      nU[        R                  " USS9:X  d   eU[        R
                  " U5      :X  d   eg )Nr   F)r7   r   )r0   	unencodedr   r   s       r   test_encode_to_utf8&TestUltraJSONTests.test_encode_to_utf8w  sX    *		>$djj????djjo%%%r   c                     Sn[         R                  " U5      n[         R                  " [        U5      5      nX#:X  d   eg )Nz{"obj": 31337}r-   r/   r   )r0   r   dec1dec2s       r   test_decode_from_unicode+TestUltraJSONTests.test_decode_from_unicode  s6    (  /  ]!34||r   c                     " S S5      n " S S5      nU" 5       nU" 5       Ul         X3R                   l         [        R                  " [        SS9   [        R
                  " U5        S S S 5        g ! , (       d  f       g = f)Nc                       \ rS rSrSrSrg)8TestUltraJSONTests.test_encode_recursion_max.<locals>.O2i  r   rD   N__name__
__module____qualname____firstlineno__member__static_attributes__rD   r   r   O2r&        Fr   r.  c                       \ rS rSrSrSrg)8TestUltraJSONTests.test_encode_recursion_max.<locals>.O1i  r   rD   Nr'  rD   r   r   O1r1    r/  r   r2  Maximum recursion level reachedr   )r,  r   r   OverflowErrorr-   r.   )r0   r.  r2  r  s       r   test_encode_recursion_max,TestUltraJSONTests.test_encode_recursion_max  s_    	 		 	 !t&3#]]=0QRm, SRRs   A11
A?c                     SnSn[         R                  " [        US9   [        R                  " U5        S S S 5        g ! , (       d  f       g = f)Nzfdsa sda v9sa fdsaz0Unexpected character found when decoding 'false'r   r   r   r   r-   r/   )r0   	jibberishr   s      r   test_decode_jibberish(TestUltraJSONTests.test_decode_jibberish  s4    (	@]]:S1i( 211s	   >
Abroken_json)[{]}c                     Sn[         R                  " [        US9   [        R                  " U5        S S S 5        g ! , (       d  f       g = f)NzExpected object or valuer   r8  )r0   r<  r   s      r   test_decode_broken_json*TestUltraJSONTests.test_decode_broken_json  s1     )]]:S1k* 211	   <
A
too_big_charr=  r>  c                     [         R                  " [        SS9   [        R                  " US-  5        S S S 5        g ! , (       d  f       g = f)Nz#Reached object decoding depth limitr   i   r8  )r0   rE  s     r   test_decode_depth_too_big,TestUltraJSONTests.test_decode_depth_too_big  s1    ]]:-RSlk:; TSSs	   =
A
bad_string)z"TESTINGz
"TESTING\"trufanc                     Sn[         R                  " [        US9   [        R                  " U5        S S S 5        g ! , (       d  f       g = f)NzSUnexpected character found when decoding|Unmatched ''"' when when decoding 'string'r   r8  )r0   rI  r   s      r   test_decode_bad_string)TestUltraJSONTests.test_decode_bad_string  s6    : 	 ]]:S1j) 211rD  zbroken_json, err_msg))z{{1337:""}}z:Key name of object must be 'string' when decoding 'object')z
{{"key":"}z*Unmatched ''"' when when decoding 'string')z[[[truez8Unexpected character found when decoding array value (2)c                     [        S5       HO  n[        R                  " [        [        R
                  " U5      S9   [        R                  " U5        S S S 5        MQ     g ! , (       d  f       Mc  = f)Nr  r   )ranger   r   r   reescaper-   r/   )r0   r<  err_msg_s       r   test_decode_broken_json_leak/TestUltraJSONTests.test_decode_broken_json_leak  sG     tAz71CD!!+. ED DDs   A  
A/	invalid_dict)z{{{{31337}}}}z{{{{"key":}}}}z{{{{"key"}}}}c                     Sn[         R                  " [        US9   [        R                  " U5        S S S 5        g ! , (       d  f       g = f)Nz{Key name of object must be 'string' when decoding 'object'|No ':' found when decoding object value|Expected object or valuer   r8  )r0   rX  r   s      r   test_decode_invalid_dict+TestUltraJSONTests.test_decode_invalid_dict  s6    ' 	
 ]]:S1l+ 211rD  numeric_int_as_str31337z-31337c                 N    [        U5      [        R                  " U5      :X  d   eg r   )r   r-   r/   )r0   r\  s     r   test_decode_numeric_int*TestUltraJSONTests.test_decode_numeric_int  s"    %&%*;*;<N*OOOOr   c                    Sn[         R                  " U5      nU[        R                  " U5      :X  d   eU[        R                  " U5      :X  d   eU[         R
                  " U5      :X  d   eSn[         R                  " U5      nU[        R                  " U5      :X  d   eU[        R                  " U5      :X  d   eU[         R
                  " U5      :X  d   eS[         R                  " S5      :X  d   eg )Nz31337   1337 z"  \u0000\r\n "z   
 r   )r0   wrapped_inputr?   alone_inputs       r   test_encode_null_character-TestUltraJSONTests.test_encode_null_character  s    )""=1

6 2222M2222 1 1& 9999"";/djj0000K0000e//7777#u'8'8'IIIIr   c                 h    Sn[         R                  " U5      [        R                  " U5      :X  d   eg )Nz"31337 \u0000 31337"r-   r/   r;   r<   )r0   rc  s     r   test_decode_null_character-TestUltraJSONTests.test_decode_null_character  s)    /  /4::m3LLLLr   c                     / SQn[         R                  " U5      nU[        R                  " U5      :X  d   eU[         R                  " U5      :X  d   eg )N)    rl  rl  rl  rl  rl  r:   r0   
long_inputr?   s      r    test_encode_list_long_conversion3TestUltraJSONTests.test_encode_list_long_conversion  sK    

 "":.TZZ////U..v6666r   rn  rl  l    c                     [         R                  " U5      nU[        R                  " U5      :X  d   eU[        R                  " U5      :X  d   eU[         R
                  " U5      :X  d   eg r   r   rm  s      r   test_encode_long_conversion.TestUltraJSONTests.test_encode_long_conversion
  sY    "":.TZZ////J////U..v6666r   bigNum                    c                     [         R                  " U5      n[        U5      U:X  d   e[        R                  " [
        SS9   [         R                  " U5      U:X  d   e S S S 5        g ! , (       d  f       g = fNz#Value is too big|Value is too smallr   )r-   r.   r   r   r   r   r/   )r0   rt  encodings      r   #test_dumps_ints_larger_than_maxsize6TestUltraJSONTests.test_dumps_ints_larger_than_maxsize  sa    $$V,6{h&&&]]7
 $$X.&888	
 
 
s   A((
A6int_exp)1337E40z1.337E40z1337E+9z	1.337e+40z1.337E-4c                 d    [         R                  " U5      [        R                  " U5      :X  d   eg r   rh  )r0   r|  s     r   test_decode_numeric_int_exp.TestUltraJSONTests.test_decode_numeric_int_exp  s&       )TZZ-@@@@r   c                     Sn[         R                  " [        US9   [        R                  " S 5        S S S 5        g ! , (       d  f       g = f)Nz/a bytes-like object is required, not 'NoneType'r   )r   r   r   r-   r/   r0   r   s     r   test_loads_non_str_bytes_raises2TestUltraJSONTests.test_loads_non_str_bytes_raises#  s/    ?]]9C0d# 100rD  r  )l   M+ l        l        l    c                 N    SU S3n[         R                  " U5      S   U:X  d   eg )Nz{"id": r@  idr-   r/   )r0   r  docs      r   &test_decode_number_with_32bit_sign_bit9TestUltraJSONTests.test_decode_number_with_32bit_sign_bit(  s0     R   %d+s222r   c                     [        S5       H4  nSR                  5       nUS-  S-  S-  n[        R                  " U5        M6     g )Nr      å   r&   )rQ  encoder-   r.   )r0   rU  baseescape_inputs       r   test_encode_big_escape)TestUltraJSONTests.test_encode_big_escape/  s=    rA??$D$;-1Ll+ r   c                     [        S5       H;  nSR                  5       nSnX2S-  S-  S-  -   U-   n[        R                  " U5        M=     g )Nr   r     "r  r&   )rQ  r  r-   r/   )r0   rU  r  quoter  s        r   test_decode_big_escape)TestUltraJSONTests.test_decode_big_escape6  sJ    rA??$DE 4K$$6$:;eCLl+ r   c                    ^ SS0m " U4S jS5      nU" 5       n[         R                  " U5      n[         R                  " U5      nUT:X  d   eg )Nkeyr   c                   "   > \ rS rSrU 4S jrSrg)1TestUltraJSONTests.test_to_dict.<locals>.DictTestiB  c                    > T$ r   rD   )r0   r   s    r   toDict8TestUltraJSONTests.test_to_dict.<locals>.DictTest.toDictC  s    r   rD   N)r(  r)  r*  r+  r  r-  )r   s   r   DictTestr  B  s     r   r  rL   )r0   r  or?   r   r   s        @r   test_to_dictTestUltraJSONTests.test_to_dict?  sJ    EN	 	 J""1%'axxr   c           	      2  ^  " U4S jS5      mSn[         R                  " [        US9   [        R                  " T" S5      5        S S S 5        S[        R                  " T" S5      [
        S9:X  d   eS nS	[        R                  " T" S5      US9:X  d   eS
 n[         R                  " [        SS9   [        R                  " T" S5      US9  S S S 5        S n[        R                  " [        R                  " T" S5      US95      S:X  d   eS n[        R                  " [        R                  " [        R                  " SSS5      5      5      [        R                  " [        R                  " T" S5      US95      :X  d   eT" S5      T" S5      /n[        R                  " [        R                  " U[
        S95      [        R                  " [        R                  " U[
        S95      :X  d   eg ! , (       d  f       GN= f! , (       d  f       GN>= f)Nc                   D   > \ rS rSrSS jr\U 4S j5       rS\4S jrSr	g)	<TestUltraJSONTests.test_default_handler.<locals>._TestObjectiM  returnNc                     Xl         g r   r  )r0   r  s     r   __init__ETestUltraJSONTests.test_default_handler.<locals>._TestObject.__init__N  s    r   c                    > T" S5      $ )Nrecursive_attrrD   )r0   _TestObjects    r   r  KTestUltraJSONTests.test_default_handler.<locals>._TestObject.recursive_attrQ  s    "#344r   c                 ,    [        U R                  5      $ r   )r   r  r0   s    r   __str__DTestUltraJSONTests.test_default_handler.<locals>._TestObject.__str__U  s    488}$r   r  r  N)
r(  r)  r*  r+  r  propertyr  r   r  r-  )r  s   r   r  r  M  s(     5 5% %r   r  r3  r   r  z"foo")default_handlerc                     g)NfoobarrD   rU  s    r   
my_handler;TestUltraJSONTests.test_default_handler.<locals>.my_handler]  s    r   z"foobar"c                     [        S5      e)NI raise for anything)r   r  s    r   my_handler_raisesBTestUltraJSONTests.test_default_handler.<locals>.my_handler_raisesd  s    233r   r  c                     g)N*   rD   r  s    r   my_int_handler?TestUltraJSONTests.test_default_handler.<locals>.my_int_handlerj  s    r   r  c                 2    [         R                   " SSS5      $ )Nr
  r&   r'   )r   r  s    r   my_obj_handler?TestUltraJSONTests.test_default_handler.<locals>.my_obj_handlert  s    $$T1a00r   r
  r&   r'   bar)default)r   r   r4  r-   r.   r   r   r/   r   r;   r<   r   )r0   r   r  r  r  r  obj_listr  s          @r   test_default_handler'TestUltraJSONTests.test_default_handlerL  s   		% 		% 0]]=4k%01 5%++K,>PSTTTT	 U..

 
 	
 
	4 ]]9,BCk%0BST D	 !!+e"4nU 	
	1   h//a;<
k%0.Q

 	
 
  &E(:;zz$**Xs;<@Q@Qh<A
 
 	
 
K 54 DCs   G54H5
H
Hc                      " S S5      nU" SSSSS9n[         R                  " [         R                  " U5      5      SSSS.:X  d   eg )	Nc                   $    \ rS rSrSS jrS rSrg):TestUltraJSONTests.test_encode_object.<locals>._TestObjecti  Nc                 4    Xl         X l        X0l        X@l        g r   rK   b_cr   )r0   rK   r  r  r   s        r   r  CTestUltraJSONTests.test_encode_object.<locals>._TestObject.__init__  s    r   c                     gro   rD   r  s    r   e<TestUltraJSONTests.test_encode_object.<locals>._TestObject.e  s    r   )r  rK   r  r   r  )r(  r)  r*  r+  r  r  r-  rD   r   r   r  r    s    r   r  r%   r&   r'   r   r  )rK   r  r   ri   )r0   r  test_objects      r   test_encode_object%TestUltraJSONTests.test_encode_object  sU    	 	 "AqA6  !2!2;!?@E
 
 	
 
r   c                 0    [         R                  S:X  d   eg )Nzpandas._libs.json)r-   r(  r  s    r   test_ujson__name__%TestUltraJSONTests.test_ujson__name__  s    ~~!4444r   rD   N)Kr(  r)  r*  r+  r   markskipifr   parametrizer5   rG   rM   rZ   r]   rc   rk   mathpirr   rw   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r`   
datetime64naninfr  r  r  r"  r5  r:  rB  rG  rN  rV  rZ  r_  re  ri  ro  rr  rz  r  r  r  r  r  r  r  r  r  r-  rD   r   r   r!   r!   6   s   [[D)OP[[!		
  Q  [[^dE];5 <52 [[X	K [[]VV,<=R >R [[^dggx-@AM BM
9:> [[	
	J	JC [[	KMcd&	&0&&&(= [[	
6677 [[_.AB: C::: [[	(--1a0(--BF2ST"	"
"" [[#r}}U3RVVRVVbffWMKK4(&- ) [[	
++
 [[^c3Z8< 9< [[	
	*	* [[	

/
/
 [[	
,, [[1GX3FGP HPJ M7 [[\,?AU+VW7 X7 [[X|'<=9 >9 [[NAA$
 [[U$KL3 M3,,4
l
&5r   r!   c                       \ rS rSr\R
                  R                  SSS/5      S 5       rS rS r	S r
S	 rS
 rS rS rS r\R
                  R                  S/ SQ5      S 5       rS rS rS rS rSrg)TestNumpyJSONTestsi  
bool_inputTFc                 z    [        U5      n[        R                  " [        R                  " U5      5      U:X  d   eg r   )boolr-   r/   r.   )r0   r  r  s      r   	test_boolTestNumpyJSONTests.test_bool  s0      !2!21!56!;;;r   c                     [         R                  " / SQ[        S9n[         R                  " [        R                  " [        R
                  " U5      5      [        S9n[        R                  " X5        g )N)TFTTFTFFdtype)r`   arrayr  r-   r/   r.   rU   assert_numpy_array_equal)r0   
bool_arrayr?   s      r   test_bool_array"TestNumpyJSONTests.test_bool_array  sL    XX@

 %++E,=,=j,IJRVW
##J7r   c                     [         R                  " U5      R                  nU" S5      nU" [        R                  " [        R
                  " U5      5      5      U:X  d   eg )Nr%   r`   r  typer-   r/   r.   r0   any_int_numpy_dtypeklassrb   s       r   test_intTestNumpyJSONTests.test_int  sI    ,-22AhU&&u'8'8'=>?3FFFr   c                     [         R                  " S[        S9nUR                  U5      n[         R                  " [
        R                  " [
        R                  " U5      5      US9n[        R                  " X45        g )Nd   r  )
r`   aranger   astyper  r-   r/   r.   rU   r  )r0   r  arr	arr_input
arr_outputs        r   test_int_array!TestNumpyJSONTests.test_int_array  s[    ii3'JJ23	XXe//	:;CV

 	##I:r   c                    US;   a!  [         (       d  [        R                  " S5        [        R                  " U5      R
                  nUS:X  a!  [        R                  " S5      R                  nO [        R                  " U5      R                  nU" [        R                  " [        R                  " U5      5      5      U:X  d   eg )N)int64uint64z-Cannot test 64-bit integer on 32-bit platformr  r  )r   r   skipr`   r  r  iinfomaxr-   r/   r.   r  s       r   test_int_maxTestNumpyJSONTests.test_int_max  s    "55ddKKGH,-22 (*((7#''C((./33CU&&u'8'8'=>?3FFFr   c                     [         R                  " U5      R                  nU" S5      nU" [        R                  " [        R
                  " U5      5      5      U:X  d   eg )NgJY8p@r  r0   float_numpy_dtyper  rb   s       r   
test_floatTestNumpyJSONTests.test_float  sI    *+00HoU&&u'8'8'=>?3FFFr   c           	          [         R                  " SSS[        S9nUR                  U5      n[         R                  " [
        R                  " [
        R                  " USS95      US9n[        R                  " X45        g )Ng      )@gףp=
7g@geX?r  r$   r)   )
r`   r  floatr  r  r-   r/   r.   rU   assert_almost_equal)r0   r  r  float_inputfloat_outputs        r   test_float_array#TestNumpyJSONTests.test_float_array  sa    iiffE:jj!23xxe//bQR#
 	{9r   c                    [         R                  " U5      R                  nU" [         R                  " U5      R                  S-  5      n[
        R                  " U" [        R                  " [        R                  " USS95      5      U5        g )Nr   r$   r)   )
r`   r  r  finfor	  rU   r  r-   r/   r.   r  s       r   test_float_max!TestNumpyJSONTests.test_float_max  sg    *+00BHH./33b89
%##E$5$5cB$OPQSV	
r   c           	          [         R                  " S5      nUR                  S5      n[        R                  " [         R
                  " [        R                  " [        R                  " U5      5      5      U5        g )N`   )r&   r&   r&   r&   r'   r&   	r`   r  reshaperU   r  r  r-   r/   r.   r0   r  s     r   test_array_basic#TestNumpyJSONTests.test_array_basic  sP    iimkk,-
##HHU&&u'8'8'=>?	
r   shape))r   r   rp   rp   r   )r  r%   c           	          [         R                  " S5      nUR                  U5      n[        R                  " [         R
                  " [        R                  " [        R                  " U5      5      5      U5        g )Nr  r  )r0   r#  r  s      r   test_array_reshaped&TestNumpyJSONTests.test_array_reshaped  sO    iinkk% 
##HHU&&u'8'8'=>?	
r   c           
         S/ 0 0 / SSSS/SS0/	n[         R                  " U[        S9n[         R                  " [        R                  " [        R
                  " U5      5      [        S9n[        R                  " X25        g )NrK   r  g33333sX@r  r  r  r  )r`   r  objectr-   r/   r.   rU   r  )r0   arr_listr  results       r   test_array_list"TestNumpyJSONTests.test_array_list  sr    #JEN

 hhxv.%++E,=,=c,BC6R
##F0r   c                    [         R                  n[         R                  " SSSUS9nUR                  S5      n[         R                  " [
        R                  " [
        R                  " U5      5      US9n[        R                  " X#5        g )NgrhY@gX9vi@r%   r  r$  )
r`   float32r  r  r  r-   r/   r.   rU   r  )r0   r  r  arr_outs       r   test_array_float#TestNumpyJSONTests.test_array_float  sa    

ii!59kk)$((5,,U->->s-CDER
s,r   c                     [         R                  " S5      n[        R                  " [        US9   [
        R                  " [        R                  " S5      5        S S S 5        g ! , (       d  f       g = f)Nz>array(1) (numpy-scalar) is not JSON serializable at the momentr   r%   )	rR  rS  r   r   r   r-   r.   r`   r  r  s     r   test_0d_array TestNumpyJSONTests.test_0d_array  sE    iiL
 ]]9C0bhhqk* 100   +A$$
A2c                     [         R                  " S5      n[        R                  " [        US9   [
        R                  " [        R                  " S5      5        S S S 5        g ! , (       d  f       g = f)Nz@1234.5.* \(numpy-scalar\) is not JSON serializable at the momentr   g     J@)	rR  compiler   r   r   r-   r.   r`   
longdoubler  s     r   test_array_long_double)TestNumpyJSONTests.test_array_long_double  sF    jjP
 ]]9C0bmmF34 100r6  rD   N)r(  r)  r*  r+  r   r  r  r  r  r  r  r
  r  r  r  r!  r&  r,  r1  r4  r:  r-  rD   r   r   r  r    s    [[\D%=9< :<8G;GG:

 [[W&EF
 G
1 -+5r   r  c                   
   \ rS rSrS rS rS rS rS rS r	\
R                  R                  S/ S	Q5      S
 5       r\
R                  R                  S/ S//5      S 5       r\
R                  R                  SSS/5      S 5       r\
R                  R                  SS S /5      S 5       rS rS r\
R                  R                  SS S /5      S 5       r\
R                  R                  S/ SQ5      \
R                  R                  SSS/5      S 5       5       rS  rS! rS" r\
R                  R                  S#\" S$S%9\" SS%9\" S&S'S'S(9\" S&S)S*S(9\" SS'S+9\" SS,9\" SSS-9\" SSSS.9\" S/S/S/S.9/	5      S0 5       rS1 rS2rg3)4TestPandasJSONTestsi  c                    [         R                  n[        / SQ/ SQ/SS// SQUS9nUc  0 OSU0nUR                  U:H  R	                  5       (       d   e[
        R                  " [
        R                  " U40 UD65      nUR                  U:H  R	                  5       (       d   eUS:X  a  [        U5      n[        S0 UD6nO[        U5      nUS	:X  a  / S
QUl	        SS/Ul
        O&US:X  a
  SS/Ul
        OUS:X  a  UR                  5       nUR                  U:H  R	                  5       (       d   e[        R                  " XS5        g )Nr%   r&   r'   r   rp      rK   r  xyz)r   columnsr  r   r   r   )r   r%   r&   r   r%   r   r   rD   )r`   r  r   dtypesallr-   r/   r.   r   rF  r   	transposerU   assert_frame_equal)r0   r   r  dfr>   r?   r   s          r   test_dataframe"TestPandasJSONTests.test_dataframe  s1   	"*#	
 %n8V2D		U"''))))""5#4#4R#I=#IJ		U"'')))) Wf%C%%Fv&F X"BJ1vBHy 1vBHwB		U"''))))
f)r   c                 t   [        / SQ/ SQ/SS// SQS9nX"R                  5       S.nUc  0 OSU0n[        R                  " [        R                  " U40 UD65      [        R                  " [        R                  " U40 UD65      S.n[        R                  " [        R                  " U40 UD65      U:X  d   eg )	Nr?  r@  rK   r  rB  )r   rF  )df1df2r   )r   copyr-   r/   r.   )r0   r   rK  nestedkwargsexps         r   test_dataframe_nested)TestPandasJSONTests.test_dataframe_nested:  s    	"3*o
 GGI.~Hf+= $$U%6%6r%DV%DE$$U%6%6r%DV%DE
   !2!26!DV!DELLLr   c                 *   [         R                  n[        / SQS/ SQUS9R                  5       nUR                  U:X  d   eUc  0 OSU0n[
        R                  " [
        R                  " U40 UD65      nUR                  U:X  d   eUS:X  a  [        U5      n[        S0 UD6nO[        U5      nUS;   a!  S Ul	        UR                  5       n/ SQUl
        OUS	;   a  S Ul	        / S
QUl
        UR                  U:X  d   e[        R                  " XS5        g )Nr   rz      (   2   <   seriesrA     r  r   r   r$   )namer   r  r   r   )Nr   )678r   1015)r   r   )r   r%   r&   r'   r   rp   rD   )r`   r  r	   sort_valuesr  r-   r/   r.   r   r`  r   rU   assert_series_equal)r0   r   r  r   r>   r?   r   s          r   test_seriesTestPandasJSONTests.test_seriesH  s   $&	

 +- 	
 ww%$n8V2D""5#4#4Q#H-#HIww%Wf%C]c]FF^F_$AF'')F6AG,,AF(AGww%
v)r   c                    [        / SQS/ SQS9R                  5       nX"R                  5       S.nUc  0 OSU0n[        R                  " [        R
                  " U40 UD65      [        R                  " [        R
                  " U40 UD65      S.n[        R                  " [        R
                  " U40 UD65      U:X  d   eg )NrX  r]  r^  )r`  r   )s1s2r   )r	   rf  rQ  r-   r/   r.   )r0   r   r   rR  rS  rT  s         r   test_series_nested&TestPandasJSONTests.test_series_nestedh  s    $8;O

+- 	
 *~Hf+= ##E$5$5a$B6$BC##E$5$5a$B6$BC
   !2!26!DV!DELLLr   c           	         [        / SQSS9n[        [        R                  " [        R                  " U5      5      SS9n[        R
                  " X5        [        [        R                  " [        R                  " USS95      5      n[        S0 UD6n[        R
                  " X5        UR                  UR                  :X  d   e[        R
                  " X5        UR                  UR                  :X  d   e[        [        R                  " [        R                  " USS95      SS9n[        R
                  " X5        [        [        R                  " [        R                  " USS95      SS9n[        R
                  " X5        [        [        R                  " [        R                  " USS95      SS9n[        R
                  " X5        g )	N)   -      b   +      r   )r`  r   )r   r   r   rD   )r   r-   r/   r.   rU   assert_index_equalr   r`  )r0   ir?   r   s       r   
test_indexTestPandasJSONTests.test_indexu  s[   *9 u(():):1)=>WM
a(%++E,=,=a,PQR
a(vv$$$
a(vv$$$e//(CD7
 	a(e//)DEG
 	a(e//'BC'
 	a(r   c           
         Sn[        [        [        SSSS95      S S9n[        R                  " X!S9n[        [
        R                  " [        R                  " U5      5      5      n[        R                  " X$5        [        [
        R                  R                  S5      R                  [        U5      5      US9n[        [        R                  " [        R                  " XQS95      5      nUR                  R                   R#                  [
        R$                  5      n[        U5      Ul        [        R&                  " XT5        g )	Nr  z1/1/2000rz   )periodsunitfreqr   r&   r   )r   listr   r-   r.   r`   r  r/   rU   rv  r	   randomdefault_rngstandard_normallenr   r   r  r  rg  )r0   r   rngr3   r4   ts
idx_valuess          r   test_datetime_index'TestPandasJSONTests.test_datetime_index  s    	 J>?d
 ##C=):):7)C DE
c+BII))!,<<SXFcR**5+<+<R+UVW]]))00:
%j1
r+r   invalid_arr)z[31337,]z[,31337]z[]]z[,]c                     Sn[         R                  " [        US9   [        R                  " U5        S S S 5        g ! , (       d  f       g = f)Nz[Expected object or value|Trailing data|Unexpected character found when decoding array valuer   r8  )r0   r  r   s      r   test_decode_invalid_array-TestPandasJSONTests.test_decode_invalid_array  s7    C 	 ]]:S1k* 211rD  r  r   c                 N    U[         R                  " [        U5      5      :X  d   eg r   r  r   s     r   test_decode_array%TestPandasJSONTests.test_decode_array  s    e''C1111r   extreme_numrl  r   c                 N    U[         R                  " [        U5      5      :X  d   eg r   r  )r0   r  s     r   test_decode_extreme_numbers/TestPandasJSONTests.test_decode_extreme_numbers  s     e//K0@AAAAr   too_extreme_numru  rv  c                     [         R                  " [        SS9   [        R                  " U5        S S S 5        g ! , (       d  f       g = frx  r8  )r0   r  s     r   test_decode_too_extreme_numbers3TestPandasJSONTests.test_decode_too_extreme_numbers  s4    ]]7
 o.	
 
 
	   :
Ac                 <    0 [         R                  " S5      :X  d   eg )Nz{}
	 r  r  s    r   %test_decode_with_trailing_whitespaces9TestPandasJSONTests.test_decode_with_trailing_whitespaces  s    U&&y1111r   c                     [         R                  " [        SS9   [        R                  " S5        S S S 5        g ! , (       d  f       g = f)NzTrailing datar   z{}
	 ar8  r  s    r   )test_decode_with_trailing_non_whitespaces=TestPandasJSONTests.test_decode_with_trailing_non_whitespaces  s*    ]]:_=j) >==r  r1   c                     [         R                  " [        SS9   [        R                  " U5        S S S 5        g ! , (       d  f       g = frx  r8  )r0   r1   s     r   test_decode_array_with_big_int2TestPandasJSONTests.test_decode_array_with_big_int  s4    ]]7
 e$	
 
 
r  float_number)	g3ӭ?gRC?gB4?g
LO?g	j?g[_$?gk	?g}?5^I?g?signr   r%   c                 r    X!-  n[         R                  " U[        R                  " [	        U5      5      SS9  g )NgV瞯<)rtol)rU   r  r-   r/   r   )r0   r  r  s      r   test_decode_floating_point.TestPandasJSONTests.test_decode_floating_point  s1      	
%++C,=>U	
r   c                 X    [        [        S5      5      n[        R                  " U5        g )Ni )setrQ  r-   r.   )r0   r   s     r   test_encode_big_set'TestPandasJSONTests.test_encode_big_set  s    f!r   c                 L    S[         R                  " [        5       5      :X  d   eg )Nz[])r-   r.   r  r  s    r   test_encode_empty_set)TestPandasJSONTests.test_encode_empty_set  s    u((////r   c                     1 Skn[         R                  " U5      n[         R                  " U5      nU H
  nXA;   a  M
   e   g )N>	   r%   r&   r'   r   rp   rA  r_  r  r   rL   )r0   r   r   r   r   s        r   test_encode_set#TestPandasJSONTests.test_encode_set  s:    '"$A6M6 r   tdin  )days   rp   )hoursminutessecondsrz   rY  )r  nanoseconds)r  )microsecondsr  )millisecondsr  r  i  c                 d    [         R                  " USS9nSUR                  5        S3nX#:X  d   eg )NT)	iso_datesr   r   )r0   r  r+  r   s       r   test_encode_timedelta_iso-TestPandasJSONTests.test_encode_timedelta_iso  s7      ""26r||~&a(!!!r   c                 Z    [        SS/SS9n[        US9nUR                  5       S:X  d   eg )Nz
2022-04-06z
2022-04-07Dr}  r  z{})r   r   to_json)r0   prK  s      r   test_encode_periodindex+TestPandasJSONTests.test_encode_periodindex  s1    |43?Qzz|t###r   rD   N)r(  r)  r*  r+  rL  rU  rh  rm  rx  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r
   r  r  r-  rD   r   r   r=  r=    s    *DM*@M)>,& [[	
++ [[UR%M22 32 [[]-@BV,WXB YB [[.E7~0OP/ Q/2* [[W%l^&EF% G% [[
	
 [[Vb!W-
 .

0 [[32B15BB721-!$1!411!D3ScJ
	
""$r   r=  )$r   r   r+   r;   rS   r  rR  r   r   numpyr`   r   pandas._libs.json_libsr-   pandas.compatr   pandasr   r   r   r   r   r	   r
   r   r   pandas._testing_testingrU   r   fixturer   r!   r  r=  rD   r   r   <module>r     s          	     ! ! 
 
 
 -  8a	5 a	5Hz5 z5z~$ ~$r   