
    bMhH                     H   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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      _/var/www/html/test/jupyter/venv/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$   0   s     =r   c                      e Zd Zej                            e 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"d. Z#d/ Z$ej                            d0 e%j&                     e%j&        d1d2d3           e%j&        d4d5d6d7          g          d8             Z'd9 Z(d: Z)ej                            d;e* e+j,        d<          e+j-        e+j.        e+j.         g          d=             Z/d> Z0d? Z1d@ Z2dA Z3dB Z4ej                            dCg dD          dE             Z5ej                            dFdGdHg          dI             Z6ej                            dJg dK          dL             Z7ej                            dMg dN          dO             Z8ej                            dPg dQ          dR             Z9ej                            dSdTdUg          dV             Z:dW Z;dX Z<dY Z=ej                            dZd[d\g          d]             Z>ej                            d^d_d`g          da             Z?ej                            dbg dc          dd             Z@de ZAej                            dfg dg          dh             ZBdi ZCdj ZDdk ZEdl ZFdm ZGdn ZHdoS )pTestUltraJSONTestsz$not compliant on 32-bit, xref #15865)reasonc                    t          j        d          }t          j        |d          }t          j        |          }|dk    sJ t          j        d          }t          j        |d          }|dk    sJ t          j        |          }|dk    sJ t          j        d	          }t          j        |d          }|d
k    sJ t          j        |          }|dk    sJ t          j        d          }t          j        |d          }|dk    sJ t          j        |          }|dk    sJ t          j        d          }t          j        |d          }|dk    sJ t          j        |          }|dk    sJ t          j        d          }t          j        |d          }|dk    sJ t          j        |          }|dk    sJ t          j        d          }t          j        |d          }|dk    sJ t          j        |          }|dk    sJ t          j        d          }t          j        |d          }|dk    sJ t          j        |          }|dk    sJ d S )Nz	1337.1337   double_precisiong@z0.95   1.0      ?z0.94z0.9g?z1.95z2.0g       @z-1.95z-2.0g       z0.995   z0.9995   z0.99999999999999944)decimalDecimalujsonujson_dumpsujson_loadsselfsutencodeddecodeds       r   test_encode_decimalz&TestUltraJSONTests.test_encode_decimal8   s   ok**#C"===#G,,)####of%%#C!<<<%#G,,#~~~~of%%#C!<<<%#G,,#~~~~of%%#C!<<<%#G,,#~~~~og&&#C!<<<&    #G,,$og&&#C!<<<%#G,,#~~~~oh''#C!<<<%#G,,#~~~~o344#C"===%#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<   r3   r4   jsonloadsr5   )expected_outputencode_kwargsoutputr<   string_inputs      r   helperz@TestUltraJSONTests.test_encode_string_conversion.<locals>.helperx   s}    & +7;H F _,,,,4:f#5#555555#4V#<#<<<<<<<r   F)encode_html_charsTr   )r7   r<   not_html_encodedhtml_encodedrF   rE   s    `   @r   test_encode_string_conversionz0TestUltraJSONTests.test_encode_string_conversionp   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*   r3   r4   r5   )r7   rK   r8   r9   r:   s        r   test_double_long_numbersz+TestUltraJSONTests.test_double_long_numbers   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_localer3   r5   r4   )r7   lc_category
new_locales      r   test_encode_non_c_localez+TestUltraJSONTests.test_encode_non_c_locale   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 )NrM   g=
ףp=@TrR   rN   r6   s       r    test_decimal_decode_test_precisez3TestUltraJSONTests.test_decimal_decode_test_precise   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?>ӡ)r3   r5   r4   npallclose)r7   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r3   r5   r4   )r7   rc   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   )r3   r4   roundr@   rA   r5   )r7   rj   rD   s      r   test_encode_double_conversionz0TestUltraJSONTests.test_encode_double_conversion   sy     "<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 )Nr.   r-   r3   r4   )r7   decimal_inputrD   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?   )r7   nested_inputrD   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@ry   ry   ry   
   r?   )r7   doubles_inputrD   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*   )r0   	   )r3   r4   r@   rA   r5   rn   )r7   rj   rD   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)ru   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raisesr3   r4   )r7   r   rj   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?   )r7   rE   rD   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!   r3   r4   r5   r@   dumpsrA   )r7   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)r3   r4   r5   r@   r   )r7   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   )r7   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   r7   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   UnicodeEncodeErrorr3   r4   )r7   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!   r3   r4   r@   rA   r   r5   )r7   arr_in_arr_inputrD   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   )r7   r   rD   s      r   test_encode_num_conversionz-TestUltraJSONTests.test_encode_num_conversion7  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/   r0      r?   )r7   
list_inputrD   s      r   test_encode_list_conversionz.TestUltraJSONTests.test_encode_list_conversionE  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/   r0   r   )k1k2k3k4r?   )r7   
dict_inputrD   s      r   test_encode_dict_conversionz.TestUltraJSONTests.test_encode_dict_conversionL  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   )r7   r   rD   s      r   %test_encode_builtin_values_conversionz8TestUltraJSONTests.test_encode_builtin_values_conversionS  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timer3   r4   calendartimegmutctimetupler   r@   rA   r5   )r7   datetime_inputrD   expecteds       r   test_encode_datetime_conversionz2TestUltraJSONTests.test_encode_datetime_conversionZ  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   r3   r4   yearmonthdayr   r   r   r@   rA   r5   )r7   
date_inputrD   tupr   s        r   test_encode_date_conversionz.TestUltraJSONTests.test_encode_date_conversionb  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/   r0   rz      r)   < c                 n    t          j        |          }d|                                 d}||k    sJ d S )N"r3   r4   	isoformatr7   r   rD   r   s       r   !test_encode_time_conversion_basicz4TestUltraJSONTests.test_encode_time_conversion_basicl  sE    
 "4((*t~~''***6!!!!!!r   c                     t          j        ddddt          j                  }t	          j        |          }d|                                 d}||k    sJ d S Nrz   r   r)   r   r   )r   r   pytzutcr3   r4   r   r   s       r    test_encode_time_conversion_pytzz3TestUltraJSONTests.test_encode_time_conversion_pytzu  s\    }RR::"4((*t~~''***6!!!!!!r   c                     t          j        ddddt          j                                                  }t          j        |          }d|                                 d}||k    sJ d S r   )r   r   dateutiltztzutcr3   r4   r   r   s       r   $test_encode_time_conversion_dateutilz7TestUltraJSONTests.test_encode_time_conversion_dateutil|  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 nullrq   )r7   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_unitr3   r5   r4   _valuer   r   r   )r7   valstamp	roundtripr   s        r   test_datetime_unitsz&TestUltraJSONTests.test_datetime_units  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   )r7   	unencodedr   r   s       r   test_encode_to_utf8z&TestUltraJSONTests.test_encode_to_utf8  sk    *		>>>$$dj???????djoo%%%%%%r   c                     d}t          j        |          }t          j        t          |                    }||k    sJ d S )Nz{"obj": 31337}r3   r5   r   )r7   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   OverflowErrorr3   r4   )r7   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   r3   r5   )r7   	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  )r7   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  )r7   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  )r7   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escaper3   r5   )r7   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  )r7   r2  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   r3   r5   )r7   r5  s     r   test_decode_numeric_intz*TestUltraJSONTests.test_decode_numeric_int
  s0     %&&%*;<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   )r7   wrapped_inputrD   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"r3   r5   r@   rA   )r7   r;  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)    rB  rB  rB  rB  rB  r?   r7   
long_inputrD   s      r    test_encode_list_long_conversionz3TestUltraJSONTests.test_encode_list_long_conversion$  sb    
 
 

 ":..TZ//////U.v66666666r   rD  rB  l    c                     t          j        |          }|t          j        |          k    sJ |t          j        |          k    sJ |t          j        |          k    sJ d S r!   r   rC  s      r   test_encode_long_conversionz.TestUltraJSONTests.test_encode_long_conversion2  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   )r3   r4   r   r   r   r   r5   )r7   rH  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?  )r7   rO  s     r   test_decode_numeric_int_expz.TestUltraJSONTests.test_decode_numeric_int_expE  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   r3   r5   r7   r   s     r   test_loads_non_str_bytes_raisesz2TestUltraJSONTests.test_loads_non_str_bytes_raisesK  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r3   r5   )r7   r   docs      r   &test_decode_number_with_32bit_sign_bitz9TestUltraJSONTests.test_decode_number_with_32bit_sign_bitP  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 )Nrz      å   r/   )r,  encoder3   r4   )r7   r0  baseescape_inputs       r   test_encode_big_escapez)TestUltraJSONTests.test_encode_big_escapeW  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 )Nrz   r\     "r]  r/   )r,  r^  r3   r5   )r7   r0  r_  quoter`  s        r   test_decode_big_escapez)TestUltraJSONTests.test_decode_big_escape^  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   )r7   r   s    r   toDictz8TestUltraJSONTests.test_to_dict.<locals>.DictTest.toDictk  s    r   N)r
  r  r  rk  r   s   r   DictTestri  j  s.              r   rl  rN   )r7   rl  orD   r   r   s        @r   test_to_dictzTestUltraJSONTests.test_to_dictg  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   )r7   r   s     r   __init__zETestUltraJSONTests.test_default_handler.<locals>._TestObject.__init__v  s    r   c                      d          S )Nrecursive_attrr   )r7   _TestObjects    r   rv  zKTestUltraJSONTests.test_default_handler.<locals>._TestObject.recursive_attry  s    "{#3444r   c                 *    t          | j                  S r!   )r   r   r7   s    r   __str__zDTestUltraJSONTests.test_default_handler.<locals>._TestObject.__str__}  s    48}}$r   rr  N)r
  r  r  rt  propertyrv  r   rz  )rw  s   r   rw  rq  u  si            5 5 5 5 X5% % % % % % %r   rw  r  r   r   z"foo")default_handlerc                     dS )Nfoobarr   r0  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_raises  s    2333r   r  c                     dS )N*   r   r  s    r   my_int_handlerz?TestUltraJSONTests.test_default_handler.<locals>.my_int_handler  s    2r   r  c                 .    t          j         ddd          S )Nr   r/   r0   )r   r  s    r   my_obj_handlerz?TestUltraJSONTests.test_default_handler.<locals>.my_obj_handler  s    $T1a000r   r   r/   r0   bar)default)r   r   r  r3   r4   r   r   r5   r   r@   rA   r   )r7   r   r  r  r  r  obj_listrw  s          @r   test_default_handlerz'TestUltraJSONTests.test_default_handlert  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>._TestObjectrr  Nc                 >    || _         || _        || _        || _        d S r!   rM   b_cr   )r7   rM   r  r  r   s        r   rt  zCTestUltraJSONTests.test_encode_object.<locals>._TestObject.__init__  s"    r   c                     dS rl   r   ry  s    r   ez<TestUltraJSONTests.test_encode_object.<locals>._TestObject.e  s    qr   r{  )r
  r  r  rt  r  r   r   r   rw  r    s7               r   rw  r,   r/   r0   r   r  )rM   r  r   rg   )r7   rw  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)r3   r
  ry  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   r;   parametrizerJ   rO   r[   r]   rb   ri   mathpiro   rs   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_   
datetime64naninfr   r   r   r  r  r  r   r$  r*  r1  r4  r8  r=  r@  rE  rG  rN  rR  rU  rZ  ra  re  rn  r  r  r  r   r   r   r&   r&   7   sU       [D)OPP5 5 QP5n [^dE];;5 5 <;52 [XXX   	 	 	  K K K []VV,<==R R >=R [47(+ M M 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< [	
 	
 	
	 	* *	 	* [	
 	
 	

 
/ /
 
/
 [	
 	
 	
 , , , [w1 P P 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!   )boolr3   r5   r4   )r7   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  r3   r5   r4   rV   assert_numpy_array_equal)r7   
bool_arrayrD   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  typer3   r5   r4   r7   any_int_numpy_dtypeklassra   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  r3   r5   r4   rV   r  )r7   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maxr3   r5   r4   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  r7   float_numpy_dtyper  ra   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  r3   r5   r4   rV   assert_almost_equal)r7   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 )Nrz   r)   r*   )
r_   r  r  finfor  rV   r  r3   r5   r4   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/   r0   r/   	r_   r  reshaperV   r  r  r3   r5   r4   r7   r  s     r   test_array_basicz#TestNumpyJSONTests.test_array_basic  se    immkk,--
#HU&u'8'='=>>??	
 	
 	
 	
 	
r   shape))rz   rz   rm   rm   r   )r  r,   c           	          t          j        d          }|                    |          }t          j        t          j        t          j        t          j        |                              |           d S )Nr  r  )r7   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 )NrM   r  g33333sX@r  rg  r   r  )r_   r  objectr3   r5   r4   rV   r  )r7   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  r3   r5   r4   rV   r  )r7   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   r3   r4   r_   r  rT  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   r3   r4   r_   
longdoublerT  s     r   test_array_long_doublez)TestNumpyJSONTests.test_array_long_double7  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/   r0   r   rm      rM   r  xyz)r   columnsr  r$   r   r   )r   r,   r/   r   r,   r   r   r   )r_   r  r   dtypesallr3   r5   r4   r   r  r   	transposerV   assert_frame_equal)r7   r$   r  dfrC   rD   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  rM   r  r  )r   r  )df1df2r$   )r   copyr3   r5   r4   )r7   r$   r  nestedkwargsexps         r   test_dataframe_nestedz)TestPandasJSONTests.test_dataframe_nestedb  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rz   ru      (   2   <   seriesr     r   r~   rz   r)   )namer   r  r$   r   )Nr   )678r   1015)r   r   )r   r,   r/   r0   r   rm   r   )r_   r  r	   sort_valuesr  r3   r5   r4   r   r  r   rV   assert_series_equal)r7   r$   r  r   rC   rD   r   s          r   test_serieszTestPandasJSONTests.test_seriesp  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  r3   r5   r4   )r7   r$   r   r  r  r  s         r   test_series_nestedz&TestPandasJSONTests.test_series_nested  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   r3   r5   r4   rV   assert_index_equalr   r  )r7   irD   r   s       r   
test_indexzTestPandasJSONTests.test_index  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           }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/2000ru   )periodsfreqr   r/   r   )r   listr   r3   r4   r_   r  r5   rV   r#  r	   randomdefault_rngstandard_normallenr   r   r  r  r  )r7   r   rngr9   r:   ts
idx_valuess          r   test_datetime_indexz'TestPandasJSONTests.test_datetime_index  s   	 DJ!C!C!CDD4PPP#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  )r7   r4  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_numrB  r   c                 T    |t          j        t          |                    k    sJ d S r!   r  )r7   r9  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_numrI  rJ  c                     t          j        t          d          5  t          j        |           d d d            d S # 1 swxY w Y   d S rL  r  )r7   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{}
	 rX  ry  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  ry  s    r   )test_decode_with_trailing_non_whitespacesz=TestPandasJSONTests.test_decode_with_trailing_non_whitespaces  s    ]:_=== 	* 	*j)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*r?  valuec                     t          j        t          d          5  t          j        |           d d d            d S # 1 swxY w Y   d S rL  r  )r7   rD  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)rV   r  r3   r5   r   )r7   rH  rG  s      r   test_decode_floating_pointz.TestPandasJSONTests.test_decode_floating_point  sL      	
%+C,=,=>>U	
 	
 	
 	
 	
 	
r   c                     t                      }t          d          D ]}|                    |           t          j        |           d S )Ni )setr,  addr3   r4   )r7   r   r  s      r   test_encode_big_setz'TestPandasJSONTests.test_encode_big_set  sJ    EEv 	 	AEE!HHHH 	!r   c                 R    dt          j        t                                k    sJ d S )Nz[])r3   r4   rM  ry  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/   r0   r   rm   r  r  r   r~   rN   )r7   r   r   r   r   s        r   test_encode_setz#TestPandasJSONTests.test_encode_set  sU    '''""$$ 	 	A66666	 	r   tdin  )days   rm   )hoursminutessecondsru   r  )rU  nanoseconds)rZ  )microsecondsrZ  )millisecondsr[  rZ  i  c                 r    t          j        |d          }d|                                 d}||k    sJ d S )NT)	iso_datesr   r   )r7   rT  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)r7   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%  r3  r   r  r  r6  r8  r;  r>  rA  rC  rF  rK  rO  rQ  rS  r
   r_  rd  r   r   r   r  r  ?  s1        *  *  *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]0KLL/ / ML/2 2 2* * * [W%zh=&ABB% % CB% [
	
 
	
 
	
  [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   r1   r@   rT   r  r-  r   r   numpyr_   r   r   pandas._libs.json_libsr3   pandas.compatr   pandasr   r   r   r   r   r	   r
   r   r   pandas._testing_testingrV   r   fixturer$   r&   r  r  r   r   r   <module>rm     s
         				         ! ! ! ! ! ! ! ! !      
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
      - - -  888    H
5 H
5 H
5 H
5 H
5 H
5 H
5 H
5Vz5 z5 z5 z5 z5 z5 z5 z5z@$ @$ @$ @$ @$ @$ @$ @$ @$ @$r   