
    Pi                     @   d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z
d dlZd dlmc mZ d dlmZ d dlmZmZmZmZmZmZmZmZmZ d dlmZ d Z ej        g d          d             Z  G d d	          Z! G d
 d          Z" G d d          Z#dS )    N)IS64)		DataFrameDatetimeIndexIndexNaTPeriodIndexSeries	Timedelta	Timestamp
date_rangec                 >    d |                                  D             S )z
    Sanitize dictionary for JSON by converting all keys to strings.

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

    Returns
    -------
    cleaned_dict : dict
    c                 4    i | ]\  }}t          |          |S  )str).0kvs      s/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/io/json/test_ujson.py
<dictcomp>z_clean_dict.<locals>.<dictcomp>,   s$    ,,,$!QCFFA,,,    )itemsds    r   _clean_dictr      s      -,!'')),,,,r   )Nsplitrecordsvaluesindex)paramsc                     | j         S N)param)requests    r   orientr$   /   s     =r   c                      e Zd Zej                            e d          ej                            dg d          d                         Zej                            dddg          d	             Z	ej                            d
g d          d             Z
d Zd Zd Zej                            dddg          d             Zej                            dej        ej         g          d             Zd Zd Zd Zd Zej                            dg d          d             Zd Zej                            ddd g          d!             Zd" Zd# Zd$ Zd% Zd& Zd' Zej                            d(g d)          d*             Zd+ Z d, Z!ej                            d-g d.          d/             Z"d0 Z#d1 Z$ej                            d2 e%j&                     e%j&        d3d4d5           e%j&        d6d7d8d9          g          d:             Z'd; Z(d< Z)ej                            d=e* e+j,        d>          e+j-        e+j.        e+j.         g          d?             Z/d@ Z0dA Z1dB Z2dC Z3dD Z4ej                            dEg dF          dG             Z5ej                            dHdIdJg          dK             Z6ej                            dLg dM          dN             Z7ej                            dOg dP          dQ             Z8ej                            dRg dS          dT             Z9ej                            dUdVdWg          dX             Z:dY Z;dZ Z<d[ Z=ej                            d\d]d^g          d_             Z>ej                            d`dadbg          dc             Z?ej                            ddg de          df             Z@dg ZAej                            dhg di          dj             ZBdk ZCdl ZDdm ZEdn ZFdo ZGdp ZHdqS )rTestUltraJSONTestsz$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                     t          j        |          }t          j        ||          }t          j        |          }||k    sJ d S )Ndouble_precision)decimalDecimalujsonujson_dumpsujson_loads)selfvaluer.   sutencodeddecodeds         r   test_encode_decimalz&TestUltraJSONTests.test_encode_decimal7   sP     oe$$#C:JKKK#G,,%r   ensure_asciiTFc                 l    dd}d}fd} ||            ||d            ||d           d S )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                     t          j        fdi|}|| k    sJ t          j        |          k    sJ t          j        |          k    sJ d S )Nr:   r1   r2   jsonloadsr3   )expected_outputencode_kwargsoutputr:   string_inputs      r   helperz@TestUltraJSONTests.test_encode_string_conversion.<locals>.helperS   s}    & +7;H F _,,,,4:f#5#555555#4V#<#<<<<<<<r   F)encode_html_charsTr   )r4   r:   not_html_encodedhtml_encodedrD   rC   s    `   @r   test_encode_string_conversionz0TestUltraJSONTests.test_encode_string_conversionK   s}    ARU 		= 	= 	= 	= 	= 	= 	    	59999 	|t444444r   long_number)lZ:`7{ g#_tgԟpAc                 r    d|i}t          j        |d          }t          j        |          }||k    sJ d S )Nar(   r-   r1   r2   r3   )r4   rI   r6   r7   r8   s        r   test_double_long_numbersz+TestUltraJSONTests.test_double_long_numberse   sD     K #C"===#G,,g~~~~~~r   c                 D   t           j        }dD ]}t          j        ||          ryt          j        ||          5  t          j        t          j        d                    dk    sJ t          j        dd          dk    sJ 	 d d d            n# 1 swxY w Y    d S d S )N)zit_IT.UTF-8Italian_ItalygˇLz4.78Tprecise_floatgQ@)locale
LC_NUMERICtmcan_set_locale
set_localer1   r3   r2   )r4   lc_category
new_locales      r   test_encode_non_c_localez+TestUltraJSONTests.test_encode_non_c_localeo   s   ' ; 	 	J [99 ]:{;; Q Q ,U->w-G-GHHGSSSS ,V4HHHDPPPPPQ Q Q Q Q Q Q Q Q Q Q Q Q Q Q 		 	s   A	BB	B	c                 r    ddi}t          j        |          }t          j        |d          }||k    sJ d S )NrK   g=
ףp=@TrP   rL   )r4   r6   r7   r8   s       r    test_decimal_decode_test_precisez3TestUltraJSONTests.test_decimal_decode_test_precisez   sA    Dk#C((#G4@@@g~~~~~~r   c                    d}|t          j        t          j        |                    k    sJ d}|t          j        t          j        |                    k    sJ d}|t          j        t          j        |                    k    sJ d}t          j        |t          j        t          j        |                              sJ d S )NgWw'&l7g0.++gj7֖g?>ӡ)r1   r3   r2   npallclose)r4   nums     r   #test_encode_double_tiny_exponentialz6TestUltraJSONTests.test_encode_double_tiny_exponential   s    e'(9#(>(>??????e'(9#(>(>??????e'(9#(>(>??????{3 1%2CC2H2H I IJJJJJJJr   unicode_keykey1u   بنc                 f    |di}|t          j        t          j        |                    k    sJ d S )Nvalue1r1   r3   r2   )r4   ra   unicode_dicts      r   "test_encode_dict_with_unicode_keysz5TestUltraJSONTests.test_encode_dict_with_unicode_keys   s9    #X.u01B<1P1PQQQQQQQQr   double_inputc                    t          j        |          }t          |d          t          t          j        |          d          k    sJ t          |d          t          t          j        |          d          k    sJ d S N   )r1   r2   roundr>   r?   r3   )r4   rh   rB   s      r   test_encode_double_conversionz0TestUltraJSONTests.test_encode_double_conversion   sw    "<00\1%%tz&/A/A1)E)EEEEE\1%%u/@/H/H!)L)LLLLLLLr   c                 B    d}t          j        |          }|dk    sJ d S )Ng      ?z1.0r1   r2   )r4   decimal_inputrB   s      r   test_encode_with_decimalz+TestUltraJSONTests.test_encode_with_decimal   s(    "=11r   c                     g gggdz  }t          j        |          }|t          j        |          k    sJ |t          j        |          k    sJ d S )N   r=   )r4   nested_inputrB   s      r   "test_encode_array_of_nested_arraysz5TestUltraJSONTests.test_encode_array_of_nested_arrays   s^    x"}"<00tz&111111u088888888r   c                     g ddz  }t          j        |          }|t          j        |          k    sJ |t          j        |          k    sJ d S )N)cAT@rw   rw   rw   
   r=   )r4   doubles_inputrB   s      r   test_encode_array_of_doublesz/TestUltraJSONTests.test_encode_array_of_doubles   s_    LLLrQ"=11
6 2 22222 1& 9 9999999r   c                 \   d}t          j        |d          }|t          j        |          k    sJ |t          j        |          k    sJ dD ]\}t          j        ||          }t          ||          }|t          j        |          k    sJ |t          j        |          k    sJ ]d S )Ng )>@r(   r-   )r+   	   )r1   r2   r>   r?   r3   rl   )r4   rh   rB   r.   rounded_inputs        r   test_double_precisionz(TestUltraJSONTests.test_double_precision   s    )"<"EEEtz&111111u0888888 & 	> 	>&|FVWWWF!,0@AAM DJv$6$66666 E$5f$=$======	> 	>r   invalid_val)rs   9Nc                     d}t          |t                    rt          nt          }d}t	          j        ||          5  t          j        ||           d d d            d S # 1 swxY w Y   d S )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raisesr1   r2   )r4   r   rh   expected_exceptionmsgs        r   test_invalid_double_precisionz0TestUltraJSONTests.test_invalid_double_precision   s     /+5k3+G+GVZZY: 	
 ]-S999 	J 	Jl[IIII	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	Js   A""A&)A&c                     d}t          j        |          }|t          j        |          k    sJ |t          j        |          k    sJ |dk    sJ d S )NzA string \ /   
  	z"A string \\ \/ \b \f \n \r \t"r=   )r4   rC   rB   s      r   test_encode_string_conversion2z1TestUltraJSONTests.test_encode_string_conversion2   sf    5"<00tz&111111u0888888BBBBBBBr   unicode_inputu@   Räksmörgås اسامة بن محمد بن عوض بن لادن
   æ¥Ñc                     t          j        |          }t          j        |          }|t          j        |          k    sJ |t          j        |          k    sJ d S r!   r1   r2   r3   r>   dumpsr?   )r4   r   encdecs       r   test_encode_unicode_conversionz1TestUltraJSONTests.test_encode_unicode_conversion   s^    
 ..$$dj//////djoo%%%%%%r   c                     d}t          j        |          }t          j        |          }||k    sJ |t          j        |          k    sJ d S )N)r1   r2   r3   r>   r   )r4   escaped_inputr   r   s       r   test_encode_control_escapingz/TestUltraJSONTests.test_encode_control_escaping   sY    ..$$####dj////////r   c                     d}t          j        |          }t          j        |          }|t          j        |          k    sJ |t          j        |          k    sJ d S )Nu   ðr   )r4   surrogate_inputr   r   s       r   "test_encode_unicode_surrogate_pairz5TestUltraJSONTests.test_encode_unicode_surrogate_pair   sa    ,00$$dj111111djoo%%%%%%r   c                     d}t          j        |          }t          j        |          }|t          j        |          k    sJ |t          j        |          k    sJ d S )Nu   ð°TRAILINGNORMALr   r4   four_bytes_inputr   r   s       r   test_encode_unicode_4bytes_utf8z2TestUltraJSONTests.test_encode_unicode_4bytes_utf8   sd    ; 011$$dj!1222222djoo%%%%%%r   c                     d}t          j        |          }t          j        |          }|t          j        |          k    sJ |t          j        |          k    sJ d S )Nu   ó¿¿¿TRAILINGNORMALr   r   s       r   &test_encode_unicode_4bytes_utf8highestz9TestUltraJSONTests.test_encode_unicode_4bytes_utf8highest   sd    ; 011$$dj!1222222djoo%%%%%%r   c                     d}d}t          j        t          |          5  t          j        |g           d d d            d S # 1 swxY w Y   d S )Nu   ''zT'utf-8' codec can't encode character '\\udac0' in position 1: surrogates not allowedr   )r   r   UnicodeEncodeErrorr1   r2   )r4   stringr   s      r   test_encode_unicode_errorz,TestUltraJSONTests.test_encode_unicode_error   s    5 	 ]-S999 	( 	(vh'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   AA
Ac                     g ggg}t          j        |          }|t          j        |          k    sJ |t          j        |          k    sJ |t          j        |          k    sJ d S r!   r1   r2   r>   r?   r   r3   )r4   arr_in_arr_inputrB   s      r   test_encode_array_in_arrayz-TestUltraJSONTests.test_encode_array_in_array  sx     TF8"#3444:f#5#55555$45555555#4V#<#<<<<<<<r   	num_input)iz  i         c                     t          j        |          }|t          j        |          k    sJ |t          j        |          k    sJ |t          j        |          k    sJ d S r!   r   )r4   r   rB   s      r   test_encode_num_conversionz-TestUltraJSONTests.test_encode_num_conversion  sl     "9--DJv......I......E-f55555555r   c                     g d}t          j        |          }|t          j        |          k    sJ |t          j        |          k    sJ d S )N)r)   r*   r+      r=   )r4   
list_inputrB   s      r   test_encode_list_conversionz.TestUltraJSONTests.test_encode_list_conversion  sX    !\\
":..TZ//////U.v66666666r   c                     ddddd}t          j        |          }|t          j        |          k    sJ |t          j        |          k    sJ d S )Nr)   r*   r+   r   )k1k2k3k4r=   )r4   
dict_inputrB   s      r   test_encode_dict_conversionz.TestUltraJSONTests.test_encode_dict_conversion%  s`    Qaq99
":..TZ//////U.v66666666r   builtin_value)NTFc                     t          j        |          }|t          j        |          k    sJ |t          j        |          k    sJ |t          j        |          k    sJ d S r!   r   )r4   r   rB   s      r   %test_encode_builtin_values_conversionz8TestUltraJSONTests.test_encode_builtin_values_conversion,  sj    "=11
6 2 22222M222222 1& 9 9999999r   c                 z   t           j                             t          j                              }t          j        |d          }t          j        |                                          }t          |          t          j
        |          k    sJ t          |          t          j        |          k    sJ d S )Ns	date_unit)datetimefromtimestamptimer1   r2   calendartimegmutctimetupler   r>   r?   r3   )r4   datetime_inputrB   expecteds       r   test_encode_datetime_conversionz2TestUltraJSONTests.test_encode_datetime_conversion3  s    !*88EE">SAAA?>#>#>#@#@AA8}}
6 2 222228}} 1& 9 9999999r   c                    t           j                            t          j                              }t	          j        |d          }|j        |j        |j        dddf}t          j
        |          }t          |          t          j        |          k    sJ t          |          t	          j        |          k    sJ d S )Nr   r   r   )r   dater   r   r1   r2   yearmonthdayr   r   r   r>   r?   r3   )r4   
date_inputrB   tupr   s        r   test_encode_date_conversionz.TestUltraJSONTests.test_encode_date_conversion;  s    ]00==
":===
 0*.!QJ?3''8}}
6 2 222228}} 1& 9 9999999r   testr)   r*   r+   rx      r(   < c                 n    t          j        |          }d|                                 d}||k    sJ d S )N"r1   r2   	isoformatr4   r   rB   r   s       r   !test_encode_time_conversion_basicz4TestUltraJSONTests.test_encode_time_conversion_basicE  sE    
 "4((*t~~''***6!!!!!!r   c                     t          j        d          }t          j        dddd|j                  }t          j        |          }d|                                 d}||k    sJ d S )Npytzrx   r   r(   r   r   )r   importorskipr   r   utcr1   r2   r   )r4   r   r   rB   r   s        r    test_encode_time_conversion_pytzz3TestUltraJSONTests.test_encode_time_conversion_pytzN  sl    "6**}RR::"4((*t~~''***6!!!!!!r   c                     t          j        ddddt          j                                                  }t          j        |          }d|                                 d}||k    sJ d S )Nrx   r   r(   r   r   )r   r   dateutiltztzutcr1   r2   r   r   s       r   $test_encode_time_conversion_dateutilz7TestUltraJSONTests.test_encode_time_conversion_dateutilV  sh    }RR1B1B1D1DEE"4((*t~~''***6!!!!!!r   decoded_inputr   c                 J    t          j        |          dk    s
J d            d S )NnullzExpected nullro   )r4   r   s     r   test_encode_as_nullz&TestUltraJSONTests.test_encode_as_null]  s.      //6999?99999r   c           	         t          j         ddddddd          }t          |                              d          }t          j        t          j        |d	                    }||j        d
z  k    sJ t          j        t          j        |d	                    }||j        dz  k    sJ t          j        t          j        |d	                    }||j        dz  k    sJ t          j        t          j        |d	                    }||j        k    sJ d}t          j        t          |          5  t          j        |d	           d d d            d S # 1 swxY w Y   d S )N           r   iI nsr   r   i ʚ;msi@B us  z*Invalid value 'foo' for option 'date_unit'r   foo)
r   r   as_unitr1   r3   r2   _valuer   r   r   )r4   valstamp	roundtripr   s        r   test_datetime_unitsz&TestUltraJSONTests.test_datetime_unitsc  s   aRR@@#&&t,,%e&7s&K&K&KLL	ELE11111%e&7t&L&L&LMM	ELE11111%e&7t&L&L&LMM	ELE11111%e&7t&L&L&LMM	EL((((:]:S111 	4 	4cU3333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   7EE"Ec                     d}t          j        |d          }t          j        |          }|t          j        |d          k    sJ |t          j        |          k    sJ d S )Nr   F)r:   r   )r4   	unencodedr   r   s       r   test_encode_to_utf8z&TestUltraJSONTests.test_encode_to_utf8w  sk    *		>>>$$dj???????djoo%%%%%%r   c                     d}t          j        |          }t          j        t          |                    }||k    sJ d S )Nz{"obj": 31337}r1   r3   r   )r4   r   dec1dec2s       r   test_decode_from_unicodez+TestUltraJSONTests.test_decode_from_unicode  s@    ( // ]!3!344t||||||r   c                     G d d          } G d d          } |            } |            |_         ||j         _         t          j        t          d          5  t	          j        |           d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdZdS )8TestUltraJSONTests.test_encode_recursion_max.<locals>.O2r   N__name__
__module____qualname__memberr   r   r   O2r            FFFr   r  c                       e Zd ZdZdS )8TestUltraJSONTests.test_encode_recursion_max.<locals>.O1r   Nr  r   r   r   O1r    r  r   r  Maximum recursion level reachedr   )r  r   r   OverflowErrorr1   r2   )r4   r  r  r   s       r   test_encode_recursion_maxz,TestUltraJSONTests.test_encode_recursion_max  s   	 	 	 	 	 	 	 		 	 	 	 	 	 	 	 !rtt&3#]=0QRRR 	- 	-m,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   A==BBc                     d}d}t          j        t          |          5  t          j        |           d d d            d S # 1 swxY w Y   d S )Nzfdsa sda v9sa fdsaz0Unexpected character found when decoding 'false'r   r   r   r   r1   r3   )r4   	jibberishr   s      r   test_decode_jibberishz(TestUltraJSONTests.test_decode_jibberish  s    (	@]:S111 	) 	)i(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   AA	Abroken_json)[{]}c                     d}t          j        t          |          5  t          j        |           d d d            d S # 1 swxY w Y   d S )NzExpected object or valuer   r  )r4   r  r   s      r   test_decode_broken_jsonz*TestUltraJSONTests.test_decode_broken_json  s     )]:S111 	+ 	+k***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+   A  AAtoo_big_charr  r  c                     t          j        t          d          5  t          j        |dz             d d d            d S # 1 swxY w Y   d S )Nz#Reached object decoding depth limitr   i   r  )r4   r   s     r   test_decode_depth_too_bigz,TestUltraJSONTests.test_decode_depth_too_big  s    ]:-RSSS 	< 	<lk:;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   AAA
bad_string)z"TESTINGz
"TESTING\"trufanc                     d}t          j        t          |          5  t          j        |           d d d            d S # 1 swxY w Y   d S )NzSUnexpected character found when decoding|Unmatched ''"' when when decoding 'string'r   r  )r4   r#  r   s      r   test_decode_bad_stringz)TestUltraJSONTests.test_decode_bad_string  s    : 	 ]:S111 	* 	*j)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*r  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                     t          d          D ][}t          j        t          t	          j        |                    5  t          j        |           d d d            n# 1 swxY w Y   \d S )Nr   r   )ranger   r   r   reescaper1   r3   )r4   r  err_msg_s       r   test_decode_broken_json_leakz/TestUltraJSONTests.test_decode_broken_json_leak  s     t 	/ 	/Az71C1CDDD / /!+.../ / / / / / / / / / / / / / /	/ 	/s   A  A$	'A$	invalid_dict)z{{{{31337}}}}z{{{{"key":}}}}z{{{{"key"}}}}c                     d}t          j        t          |          5  t          j        |           d d d            d S # 1 swxY w Y   d S )Nz{Key name of object must be 'string' when decoding 'object'|No ':' found when decoding object value|Expected object or valuer   r  )r4   r0  r   s      r   test_decode_invalid_dictz+TestUltraJSONTests.test_decode_invalid_dict  s    ' 	
 ]:S111 	, 	,l+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,r  numeric_int_as_str31337z-31337c                 T    t          |          t          j        |          k    sJ d S r!   )r   r1   r3   )r4   r3  s     r   test_decode_numeric_intz*TestUltraJSONTests.test_decode_numeric_int  s.    %&&%*;<N*O*OOOOOOOr   c                    d}t          j        |          }|t          j        |          k    sJ |t          j        |          k    sJ |t          j        |          k    sJ d}t          j        |          }|t          j        |          k    sJ |t          j        |          k    sJ |t          j        |          k    sJ dt          j        d          k    sJ d S )Nz31337   1337 z"  \u0000\r\n "z   
 r   )r4   wrapped_inputrB   alone_inputs       r   test_encode_null_characterz-TestUltraJSONTests.test_encode_null_character  s    )"=11
6 2 22222M222222 1& 9 99999";//dj000000K000000e/777777#u'8'I'IIIIIIIr   c                 b    d}t          j        |          t          j        |          k    sJ d S )Nz"31337 \u0000 31337"r1   r3   r>   r?   )r4   r9  s     r   test_decode_null_characterz-TestUltraJSONTests.test_decode_null_character  s3    / //4:m3L3LLLLLLLr   c                     g d}t          j        |          }|t          j        |          k    sJ |t          j        |          k    sJ d S )N)    r@  r@  r@  r@  r@  r=   r4   
long_inputrB   s      r    test_encode_list_long_conversionz3TestUltraJSONTests.test_encode_list_long_conversion  sb    
 
 

 ":..TZ//////U.v66666666r   rB  r@  l    c                     t          j        |          }|t          j        |          k    sJ |t          j        |          k    sJ |t          j        |          k    sJ d S r!   r   rA  s      r   test_encode_long_conversionz.TestUltraJSONTests.test_encode_long_conversion
  sj    ":..TZ//////J//////U.v66666666r   bigNum                    c                     t          j        |          }t          |          |k    sJ t          j        t
          d          5  t          j        |          |k    sJ 	 d d d            d S # 1 swxY w Y   d S Nz#Value is too big|Value is too smallr   )r1   r2   r   r   r   r   r3   )r4   rF  encodings      r   #test_dumps_ints_larger_than_maxsizez6TestUltraJSONTests.test_dumps_ints_larger_than_maxsize  s    $V,,6{{h&&&&]7
 
 
 	9 	9 $X..&88888		9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9s   A..A25A2int_exp)1337E40z1.337E40z1337E+9z	1.337e+40z1.337E-4c                 ^    t          j        |          t          j        |          k    sJ d S r!   r=  )r4   rM  s     r   test_decode_numeric_int_expz.TestUltraJSONTests.test_decode_numeric_int_exp  s0      ))TZ-@-@@@@@@@r   c                     d}t          j        t          |          5  t          j        d            d d d            d S # 1 swxY w Y   d S )Nz/a bytes-like object is required, not 'NoneType'r   )r   r   r   r1   r3   r4   r   s     r   test_loads_non_str_bytes_raisesz2TestUltraJSONTests.test_loads_non_str_bytes_raises#  s    ?]9C000 	$ 	$d###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$r  r   )l   M+ l        l        l    c                 R    d| d}t          j        |          d         |k    sJ d S )Nz{"id": r  idr1   r3   )r4   r   docs      r   &test_decode_number_with_32bit_sign_bitz9TestUltraJSONTests.test_decode_number_with_32bit_sign_bit(  s;     !    %%d+s222222r   c                     t          d          D ]5}d                                }|dz  dz  dz  }t          j        |           6d S )Nrx      å   r*   )r*  encoder1   r2   )r4   r.  baseescape_inputs       r   test_encode_big_escapez)TestUltraJSONTests.test_encode_big_escape/  sW    r 	, 	,A??$$D$;-1Ll++++	, 	,r   c                     t          d          D ]=}d                                }d}||dz  dz  dz  z   |z   }t          j        |           >d S )Nrx   rZ     "r[  r*   )r*  r\  r1   r3   )r4   r.  r]  quoter^  s        r   test_decode_big_escapez)TestUltraJSONTests.test_decode_big_escape6  sf    r 	, 	,A??$$DE D4K$$6$:;eCLl++++	, 	,r   c                     ddi G fdd          } |            }t          j        |          }t          j        |          }|k    sJ d S )Nkeyr   c                       e Zd Z fdZdS )1TestUltraJSONTests.test_to_dict.<locals>.DictTestc                     S r!   r   )r4   r   s    r   toDictz8TestUltraJSONTests.test_to_dict.<locals>.DictTest.toDictC  s    r   N)r  r	  r
  ri  r   s   r   DictTestrg  B  s.              r   rj  rL   )r4   rj  orB   r   r   s        @r   test_to_dictzTestUltraJSONTests.test_to_dict?  s|    EN	 	 	 	 	 	 	 	 	 	 HJJ"1%%''axxxxxxr   c           	      X    G fdd          d}t          j        t          |          5  t          j         d                     d d d            n# 1 swxY w Y   dt          j         d          t
                    k    sJ d }d	t          j         d          |          k    sJ d
 }t          j        t          d          5  t          j         d          |           d d d            n# 1 swxY w Y   d }t          j        t          j         d          |                    dk    sJ d }t          j        t          j        t          j        ddd                              t          j        t          j         d          |                    k    sJ  d           d          g}t          j
        t          j        |t
                              t          j        t          j        |t
                              k    sJ d S )Nc                   >    e Zd ZddZe fd            ZdefdZdS )<TestUltraJSONTests.test_default_handler.<locals>._TestObjectreturnNc                     || _         d S r!   )r   )r4   r   s     r   __init__zETestUltraJSONTests.test_default_handler.<locals>._TestObject.__init__N  s    r   c                      d          S )Nrecursive_attrr   )r4   _TestObjects    r   rt  zKTestUltraJSONTests.test_default_handler.<locals>._TestObject.recursive_attrQ  s    "{#3444r   c                 *    t          | j                  S r!   )r   r   r4   s    r   __str__zDTestUltraJSONTests.test_default_handler.<locals>._TestObject.__str__U  s    48}}$r   rp  N)r  r	  r
  rr  propertyrt  r   rx  )ru  s   r   ru  ro  M  si            5 5 5 5 X5% % % % % % %r   ru  r  r   r   z"foo")default_handlerc                     dS )Nfoobarr   r.  s    r   
my_handlerz;TestUltraJSONTests.test_default_handler.<locals>.my_handler]  s    8r   z"foobar"c                      t          d          )NI raise for anything)r   r~  s    r   my_handler_raiseszBTestUltraJSONTests.test_default_handler.<locals>.my_handler_raisesd  s    2333r   r  c                     dS )N*   r   r~  s    r   my_int_handlerz?TestUltraJSONTests.test_default_handler.<locals>.my_int_handlerj  s    2r   r  c                 .    t          j         ddd          S )Nr   r*   r+   )r   r~  s    r   my_obj_handlerz?TestUltraJSONTests.test_default_handler.<locals>.my_obj_handlert  s    $T1a000r   r   r*   r+   bar)default)r   r   r  r1   r2   r   r   r3   r   r>   r?   r   )r4   r   r  r  r  r  obj_listru  s          @r   test_default_handlerz'TestUltraJSONTests.test_default_handlerL  s:   		% 		% 		% 		% 		% 		% 		% 		% 		% 		% 0]=444 	2 	2kk%00111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2%+KK,>,>PSTTTTTTT	 	 	 U.K

 
 
 
 
 
 
	4 	4 	4 ]9,BCCC 	U 	Ukk%00BSTTTT	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U	 	 	 !++e"4"4nUUU     	1 	1 	1  h/a;;<<
 
kk%00.QQQ
 

 
 
 
  K&&E(:(:;z$*Xs;;;<<@Qh<<<A
 A
 
 
 
 
 
 
s#   AAA C??DDc                      G d d          } |dddd          }t          j        t          j        |                    ddddk    sJ d S )	Nc                       e Zd ZddZd ZdS ):TestUltraJSONTests.test_encode_object.<locals>._TestObjectrp  Nc                 >    || _         || _        || _        || _        d S r!   rK   b_cr   )r4   rK   r  r  r   s        r   rr  zCTestUltraJSONTests.test_encode_object.<locals>._TestObject.__init__  s"    r   c                     dS rj   r   rw  s    r   ez<TestUltraJSONTests.test_encode_object.<locals>._TestObject.e  s    qr   ry  )r  r	  r
  rr  r  r   r   r   ru  r    s7               r   ru  r)   r*   r+   r   r  )rK   r  r   re   )r4   ru  test_objects      r   test_encode_objectz%TestUltraJSONTests.test_encode_object  s    	 	 	 	 	 	 	 	 "kAqA666 !2;!?!?@@E
 E
 
 
 
 
 
 
r   c                 *    t           j        dk    sJ d S )Nzpandas._libs.json)r1   r  rw  s    r   test_ujson__name__z%TestUltraJSONTests.test_ujson__name__  s    ~!4444444r   N)Ir  r	  r
  r   markskipifr   parametrizer9   rH   rM   rY   r[   r`   rg   mathpirm   rq   ru   rz   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  r  r  r  r"  r(  r/  r2  r6  r;  r>  rC  rE  rL  rP  rS  rX  r_  rc  rl  r  r  r  r   r   r   r&   r&   6   sz       [D)OPP[!		
 		
 		
      QP  [^dE];;5 5 <;52 [XXX   	 	 	  K K K []VV,<==R R >=R [^dgx-@AAM M BAM
  9 9 9: : :> > > [	
 	
 	
 	J 	J 	JC C C [	KMcd & &	 &0 0 0& & && & && & &( ( (= = = [	
 	
 	
 6 6 67 7 77 7 7 [_.A.A.ABB: : CB:: : :: : : [	-(-1a00-(-BF2S2ST " "	 "
" " "" " " [#}r}U33RVRVbfWM K K K4 4 4(& & &  - - - ) ) ) [	
 	
 	
 + + +
 [^c3Z88< < 98< [	
 	
 	
	 	* *	 	* [	
 	
 	

 
/ /
 
/
 [	
 	
 	
 , , , [1GX3FGGP P HGPJ J J M M M7 7 7 [\,?AU+VWW7 7 XW7 [X|'<==9 9 >=9 [NNN A A A$ $ $
 [U$K$K$KLL3 3 ML3, , ,, , ,  4
 4
 4
l
 
 
&5 5 5 5 5r   r&   c                       e Zd Zej                            dddg          d             Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zej                            dg d          d             Zd Zd Zd Zd ZdS )TestNumpyJSONTests
bool_inputTFc                 |    t          |          }t          j        t          j        |                    |k    sJ d S r!   )boolr1   r3   r2   )r4   r  r  s      r   	test_boolzTestNumpyJSONTests.test_bool  s<     !21!5!566!;;;;;;r   c                     t          j        g dt                    }t          j        t          j        t          j        |                    t                    }t          j        ||           d S )N)TFTTFTFFdtype)r]   arrayr  r1   r3   r2   rT   assert_numpy_array_equal)r4   
bool_arrayrB   s      r   test_bool_arrayz"TestNumpyJSONTests.test_bool_array  si    X@@@
 
 

 %+E,=j,I,IJJRVWWW
#J77777r   c                     t          j        |          j        } |d          } |t          j        t          j        |                              |k    sJ d S )Nr)   r]   r  typer1   r3   r2   r4   any_int_numpy_dtypeklassr_   s       r   test_intzTestNumpyJSONTests.test_int  sY    ,--2eAhhuU&u'8'='=>>??3FFFFFFr   c                    t          j        dt                    }|                    |          }t          j        t          j        t          j        |                    |          }t          j	        ||           d S )Nd   r  )
r]   aranger   astyper  r1   r3   r2   rT   r  )r4   r  arr	arr_input
arr_outputs        r   test_int_arrayz!TestNumpyJSONTests.test_int_array  su    i3'''JJ233	Xe/	::;;CV
 
 

 	#Iz:::::r   c                 R   |dv rt           st          j        d           t          j        |          j        }|dk    rt          j        d          j        }nt          j        |          j        } |t          j	        t          j
        |                              |k    sJ d S )N)int64uint64z-Cannot test 64-bit integer on 32-bit platformr  r  )r   r   skipr]   r  r  iinfomaxr1   r3   r2   r  s       r   test_int_maxzTestNumpyJSONTests.test_int_max  s    "555d5KGHHH,--2 (**(7##'CC(.//3CuU&u'8'='=>>??3FFFFFFr   c                     t          j        |          j        } |d          } |t          j        t          j        |                              |k    sJ d S )NgJY8p@r  r4   float_numpy_dtyper  r_   s       r   
test_floatzTestNumpyJSONTests.test_float  sY    *++0eHoouU&u'8'='=>>??3FFFFFFr   c                    t          j        dddt                    }|                    |          }t          j        t          j        t          j        |d                    |          }t          j	        ||           d S )Ng      )@gףp=
7g@geX?r  r(   r-   )
r]   r  floatr  r  r1   r3   r2   rT   assert_almost_equal)r4   r  r  float_inputfloat_outputs        r   test_float_arrayz#TestNumpyJSONTests.test_float_array  s~    iffE:::jj!233xe/bQQQRR#
 
 
 	{L99999r   c           
      
   t          j        |          j        } |t          j        |          j        dz            }t          j         |t          j        t          j	        |d                              |           d S )Nrx   r(   r-   )
r]   r  r  finfor  rT   r  r1   r3   r2   r  s       r   test_float_maxz!TestNumpyJSONTests.test_float_max  s    *++0eBH.//3b899
E%#E$5cB$O$O$OPPQQSV	
 	
 	
 	
 	
r   c           	          t          j        d          }|                    d          }t          j        t          j        t          j        t          j        |                              |           d S )N`   )r*   r*   r*   r*   r+   r*   	r]   r  reshaperT   r  r  r1   r3   r2   r4   r  s     r   test_array_basicz#TestNumpyJSONTests.test_array_basic  se    immkk,--
#HU&u'8'='=>>??	
 	
 	
 	
 	
r   shape))rx   rx   rk   rk   r   )r  r)   c           	          t          j        d          }|                    |          }t          j        t          j        t          j        t          j        |                              |           d S )Nr  r  )r4   r  r  s      r   test_array_reshapedz&TestNumpyJSONTests.test_array_reshaped  sd    innkk%  
#HU&u'8'='=>>??	
 	
 	
 	
 	
r   c           
         dg i i g ddddgddig	}t          j        |t                    }t          j        t          j        t          j        |                    t                    }t          j        ||           d S )NrK   r  g33333sX@r  re  r   r  )r]   r  objectr1   r3   r2   rT   r  )r4   arr_listr  results       r   test_array_listz"TestNumpyJSONTests.test_array_list  s    #JEN

 hxv...%+E,=c,B,BCC6RRR
#FC00000r   c                    t           j        }t          j        ddd|          }|                    d          }t          j        t          j        t          j        |                    |          }t          j	        ||           d S )NgrhY@gX9vi@r)   r  r  )
r]   float32r  r  r  r1   r3   r2   rT   r  )r4   r  r  arr_outs       r   test_array_floatz#TestNumpyJSONTests.test_array_float  su    
i!5999kk)$$(5,U->s-C-CDDERRR
sG,,,,,r   c                     t          j        d          }t          j        t          |          5  t          j        t          j        d                     d d d            d S # 1 swxY w Y   d S )Nz>array(1) (numpy-scalar) is not JSON serializable at the momentr   r)   )	r+  r,  r   r   r   r1   r2   r]   r  rR  s     r   test_0d_arrayz TestNumpyJSONTests.test_0d_array  s    iL
 
 ]9C000 	+ 	+bhqkk***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+   'A$$A(+A(c                     t          j        d          }t          j        t          |          5  t          j        t          j        d                     d d d            d S # 1 swxY w Y   d S )Nz@1234.5.* \(numpy-scalar\) is not JSON serializable at the momentr   g     J@)	r+  compiler   r   r   r1   r2   r]   
longdoublerR  s     r   test_array_long_doublez)TestNumpyJSONTests.test_array_long_double  s    jP
 
 ]9C000 	5 	5bmF33444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5r  N)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    s7       [\D%=99< < :9<8 8 8G G G; ; ;G G GG G G: : :
 
 

 
 
 [W&E&E&EFF
 
 GF
1 1 1 - - -+ + +5 5 5 5 5r   r  c                      e Zd Zd Zd Zd Zd Zd Zd Ze	j
                            dg d          d	             Ze	j
                            d
g dgg          d             Ze	j
                            dddg          d             Ze	j
                            dd d g          d             Zd Zd Ze	j
                            dd d g          d             Ze	j
                            dg d          e	j
                            dddg          d                         Zd Zd  Zd! Ze	j
                            d" ed#$           ed$           ed%d&d&'           ed%d(d)'           edd&*           ed+           edd,           eddd-           ed.d.d.-          g	          d/             Zd0 Zd1S )2TestPandasJSONTestsc                 |   t           j        }t          g dg dgddgg d|          }|i nd|i}|j        |k                                    sJ t          j        t          j        |fi |          }|j        |k                                    sJ |dk    rt          |          }t          di |}nt          |          }|d	k    rg d
|_	        ddg|_
        n*|dk    r
ddg|_
        n|dk    r|                                }|j        |k                                    sJ t          j        ||           d S )Nr)   r*   r+   r   rk      rK   r  xyz)r   columnsr  r$   r   r   )r   r)   r*   r   r)   r   r   r   )r]   r  r   dtypesallr1   r3   r2   r   r  r   	transposerT   assert_frame_equal)r4   r$   r  dfrA   rB   r   s          r   test_dataframez"TestPandasJSONTests.test_dataframe  s|   YY			"*#OO	
 
 
 %n8V2D	U"'')))))"5#4R#I#I=#I#IJJ	U"''))))) Wf%%C%%%%FFv&&F X"BJ1vBHHy  1vBHHwB	U"'')))))
fb)))))r   c                 b   t          g dg dgddgg d          }||                                d}|i nd|i}t          j        t          j        |fi |          t          j        t          j        |fi |          d}t          j        t          j        |fi |          |k    sJ d S )	Nr  r  rK   r  r  )r   r  )df1df2r$   )r   copyr1   r3   r2   )r4   r$   r  nestedkwargsexps         r   test_dataframe_nestedz)TestPandasJSONTests.test_dataframe_nested:  s    YY			"3*ooo
 
 
 BGGII..~Hf+= $U%6r%D%DV%D%DEE$U%6r%D%DV%D%DEE
 
  !26!D!DV!D!DEELLLLLLr   c                    t           j        }t          g ddg d|                                          }|j        |k    sJ |i nd|i}t          j        t          j        |fi |          }|j        |k    sJ |dk    rt          |          }t          di |}nt          |          }|dv r%d |_	        |                                }g d|_
        n|d	v rd |_	        g d
|_
        |j        |k    sJ t          j        ||           d S )Nrx   rs      (   2   <   seriesr     r   r|   rx   r(   )namer   r  r$   r   )Nr   )678r   1015)r   r   )r   r)   r*   r+   r   rk   r   )r]   r  r	   sort_valuesr  r1   r3   r2   r   r  r   rT   assert_series_equal)r4   r$   r  r   rA   rB   r   s          r   test_serieszTestPandasJSONTests.test_seriesH  sR   $$$&&&	
 
 

 +-- 	
 w%$n8V2D"5#4Q#H#H-#H#HIIw%Wf%%C]]c]]FFF^^F_$$AF''))F666AGG,,,AF(((AGw%
vq)))))r   c                 z   t          g ddg d                                          }||                                d}|i nd|i}t          j        t          j        |fi |          t          j        t          j        |fi |          d}t          j        t          j        |fi |          |k    sJ d S )Nr  r
  r  )r  r   )s1s2r$   )r	   r  r  r1   r3   r2   )r4   r$   r   r   r  r  s         r   test_series_nestedz&TestPandasJSONTests.test_series_nestedh  s    $$$8;O;O;O
 
 

+-- 	
 **~Hf+= #E$5a$B$B6$B$BCC#E$5a$B$B6$B$BCC
 
  !26!D!DV!D!DEELLLLLLr   c                    t          g dd          }t          t          j        t          j        |                    d          }t	          j        ||           t          t          j        t          j        |d                              }t          di |}t	          j        ||           |j        |j        k    sJ t	          j        ||           |j        |j        k    sJ t          t          j        t          j        |d                    d          }t	          j        ||           t          t          j        t          j        |d                    d          }t	          j        ||           t          t          j        t          j        |d                    d          }t	          j        ||           d S )	N)   -      b   +      r   )r  r   )r$   r   r   r   )r   r1   r3   r2   rT   assert_index_equalr   r  )r4   irB   r   s       r   
test_indexzTestPandasJSONTests.test_indexu  s   ***999 u():1)=)=>>WMMM
a(((%+E,=a,P,P,PQQRR
a(((v$$$$
a(((v$$$$e/(CCCDD7
 
 
 	a(((e/)DDDEEG
 
 
 	a(((e/'BBBCC'
 
 
 	a(((((r   c           	         d}t          t          t          ddd                    d           }t          j        ||          }t          t          j        t          j        |                              }t          j	        ||           t          t
          j                            d                              t          |                    |          }t          t          j        t          j        ||                              }|j        j                            t
          j                  }t          |          |_        t          j        ||           d S )	Nr   z1/1/2000rs   )periodsunitfreqr   r*   r   )r   listr   r1   r2   r]   r  r3   rT   r!  r	   randomdefault_rngstandard_normallenr   r   r  r  r  )r4   r   rngr7   r8   ts
idx_valuess          r   test_datetime_indexz'TestPandasJSONTests.test_datetime_index  s%   	 J>>>??d
 
 
 #C9===):7)C)C D DEE
c7+++BI))!,,<<SXXFFcRRR*5+<R9+U+U+UVVWW])00::
%j11
r7+++++r   invalid_arr)z[31337,]z[,31337]z[]]z[,]c                     d}t          j        t          |          5  t          j        |           d d d            d S # 1 swxY w Y   d S )Nz[Expected object or value|Trailing data|Unexpected character found when decoding array valuer   r  )r4   r3  r   s      r   test_decode_invalid_arrayz-TestPandasJSONTests.test_decode_invalid_array  s    C 	 ]:S111 	+ 	+k***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+r  r  r   c                 T    |t          j        t          |                    k    sJ d S r!   r   r  s     r   test_decode_arrayz%TestPandasJSONTests.test_decode_array  s*    e'C11111111r   extreme_numr@  r   c                 T    |t          j        t          |                    k    sJ d S r!   r   )r4   r8  s     r   test_decode_extreme_numbersz/TestPandasJSONTests.test_decode_extreme_numbers  s,    e/K0@0@AAAAAAAAr   too_extreme_numrG  rH  c                     t          j        t          d          5  t          j        |           d d d            d S # 1 swxY w Y   d S rJ  r  )r4   r;  s     r   test_decode_too_extreme_numbersz3TestPandasJSONTests.test_decode_too_extreme_numbers  s    ]7
 
 
 	/ 	/ o...		/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/   >AAc                 :    i t          j        d          k    sJ d S )Nz{}
	 rV  rw  s    r   %test_decode_with_trailing_whitespacesz9TestPandasJSONTests.test_decode_with_trailing_whitespaces  s$    U&y11111111r   c                     t          j        t          d          5  t          j        d           d d d            d S # 1 swxY w Y   d S )NzTrailing datar   z{}
	 ar  rw  s    r   )test_decode_with_trailing_non_whitespacesz=TestPandasJSONTests.test_decode_with_trailing_non_whitespaces  s    ]:_=== 	* 	*j)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*r>  r5   c                     t          j        t          d          5  t          j        |           d d d            d S # 1 swxY w Y   d S rJ  r  )r4   r5   s     r   test_decode_array_with_big_intz2TestPandasJSONTests.test_decode_array_with_big_int  s    ]7
 
 
 	% 	% e$$$		% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%r>  float_number)	g3ӭ?gRC?gB4?g
LO?g	j?g[_$?gk	?g}?5^I?g?signr   r)   c                 |    ||z  }t          j        |t          j        t	          |                    d           d S )NgV瞯<)rtol)rT   r  r1   r3   r   )r4   rF  rE  s      r   test_decode_floating_pointz.TestPandasJSONTests.test_decode_floating_point  sL      	
%+C,=,=>>U	
 	
 	
 	
 	
 	
r   c                 f    t          t          d                    }t          j        |           d S )Ni )setr*  r1   r2   )r4   r   s     r   test_encode_big_setz'TestPandasJSONTests.test_encode_big_set  s,    f!r   c                 R    dt          j        t                                k    sJ d S )Nz[])r1   r2   rK  rw  s    r   test_encode_empty_setz)TestPandasJSONTests.test_encode_empty_set  s(    u(////////r   c                 t    h d}t          j        |          }t          j        |          }|D ]}||v sJ 	d S )N>	   r)   r*   r+   r   rk   r  r  r   r|   rL   )r4   r   r   r   r   s        r   test_encode_setz#TestPandasJSONTests.test_encode_set  sU    '''""$$ 	 	A66666	 	r   tdin  )days   rk   )hoursminutessecondsrs   r  )rR  nanoseconds)rW  )microsecondsrW  )millisecondsrX  rW  i  c                 r    t          j        |d          }d|                                 d}||k    sJ d S )NT)	iso_datesr   r   )r4   rQ  r  r   s       r   test_encode_timedelta_isoz-TestPandasJSONTests.test_encode_timedelta_iso  sH      "2666(r||~~(((!!!!!!r   c                     t          ddgd          }t          |          }|                                dk    sJ d S )Nz
2022-04-06z
2022-04-07Dr'  r)  z{})r   r   to_json)r4   pr  s      r   test_encode_periodindexz+TestPandasJSONTests.test_encode_periodindex  sH    |43???Qzz||t######r   N)r  r	  r
  r  r  r  r  r#  r2  r   r  r  r5  r7  r:  r=  r@  rB  rD  rI  rL  rN  rP  r
   r\  ra  r   r   r   r  r    s3        *  *  *DM M M* * *@M M M) ) )>, , ,& [	
 	
 	
 + + + [UR%M222 2 322 []-@BV,WXXB B YXB [.E=N0OPP/ / QP/2 2 2* * * [W%zl3D&EFF% % GF% [
	
 
	
 
	
  [Vb!W--
 
 .- 
  
0 0 0   [I3I2IB1555IBB777I21---I!$$$I1!444I11!DDDI3ScJJJ
	
 " " "$ $ $ $ $r   r  )$r   r   r/   r>   rR   r  r+  r   r   numpyr]   r   pandas._libs.json_libsr1   pandas.compatr   pandasr   r   r   r   r   r	   r
   r   r   pandas._testing_testingrT   r   fixturer$   r&   r  r  r   r   r   <module>rj     s         				        ! ! ! ! ! ! ! ! !      
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
      - - -  888    a	5 a	5 a	5 a	5 a	5 a	5 a	5 a	5Hz5 z5 z5 z5 z5 z5 z5 z5z~$ ~$ ~$ ~$ ~$ ~$ ~$ ~$ ~$ ~$r   