
    d                        d dl Z d dl mZ d dlmZ d dlm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Z d dlmc mZ d dlZd dlmZmZmZmZmZmZ d dlmZ d dlmZm Z  d Z! G d	 d
          Z"d Z#d Z$dS )    N)	timedelta)Decimal)StringIO)IS64)NA	DataFrameDatetimeIndexSeries	Timestamp	read_json)ArrowStringArrayStringArrayc                     |dv r|                     d          }|dk    r&t          t          |j                            |_        t	          j        | |           d S )N)recordsvaluesTdropr   )reset_indexrangelencolumnstmassert_frame_equal)resultexpectedorients      \/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/io/json/test_pandas.pyassert_json_roundtrip_equalr       sc    &&&''T'22 X%5!6!677&(+++++    c                      e Zd Zej        d             Zej        d             Zej        d             Zd Zej	        
                    dg d          d             Zej	        
                    ddd	g          d
             Zej	        
                    dddg          ej	        
                    dddgddggddgddggddgddgg ed          dg ed          dggg          d                         Zej	        
                    dg d          d             Zd Zej	        
                    ddeg          ej	        
                    d d!dg          d"                         Zej	        
                    ddej        g          ej	        
                    d d!dg          d#                         Zej	        
                    dd$ej        ed%g          ej	        
                    d d!dg          d&                         Zej	        
                    d d!dg          d'             Zej	        
                    d d!dg          d(             Zej	        
                    d d!dg          d)             Zej	        
                    d d!dg          d*             Zej	                            d+e,          ej	        
                    d	d-d-gd.d/ggd-d0gd.d.ggd-d-gd.d.ggg          d1                         Zej	        
                    d2d3d4d5                     d6g          dfd7d8g          d9             Z!ej	        
                    dd!dg          ej	        
                    d d!dg          d:                         Z"ej	        
                    dd!dg          d;             Z#ej	        
                    d<ej$        ej%        g          ej	        
                    dd!dg          d=                         Z&ej	        '                    e( d>?          ej	        
                    d@g dA          dB                         Z)dC Z*dD Z+dE Z,dF Z-dG Z.dH Z/dI Z0dJ Z1dK Z2dL Z3dM Z4ej	        
                    ddd$g          dN             Z5dO Z6dP Z7ej	        
                    dej        eg          dQ             Z8dR Z9dS Z:dT Z;ej	        
                    dUd! e<dVgdWX          fd e<dYg          fg          dZ             Z=d[ Z>d\ Z?d] Z@d^ ZAd_ ZBd` ZCej	        
                    dadbdcg          ej	        
                    ddd!dg          ej	        
                    deeDjE        eDjD        eg          df                                     ZFej	        
                    dgg dh          di             ZGej	        
                    djg dk          dl             ZHdm ZIej	        
                    djg dk          dn             ZJdo ZKej	        
                    dpg dq          dr             ZLds ZMdt ZNdu ZOej	        jP         eQjP        dvd!w          ej	        
                    dxdy eRjS        dz{          gd|dWgd} eRjS        dz{          gg          d~                                     ZTd ZUd ZVd ZWej	        
                    ddd!dg          ej	        
                    dadcdbg          ej	        
                    deRjX        eYg          d                                     ZZd Z[d Z\d Z]d Z^d Z_d Z`d Zaej	        
                    d ed           edd{           ed          g          d             Zbd Zcej	        
                    d eRjd        dd           eRjd        ddd           eRjd        dd          g          d             Zed Zfd Zgej	        jh        eijj        d                         Zkd Zld Zmej	        
                    denjo        dz   enjo        dz    g          d             Zpej	        
                    dddg          d             Zqd Zrd Zsej	                            det,          d             Zud Zvej	        
                    dd$ddgddgddgddgddgg          ej	        
                    d	ddgddgddgg          d                         Zwd Zxej	        
                    dg d          d             Zyej	        
                    dd!eedg          d             Zzd Z{ej	        
                    d e|ddgddggddg          ddgddgddggdf e|ddgddggddg          }                    d          ddgddgddggdf e|ddgddggddgddgddgg          ddgddgddggdf e<g dd          dg ddf e<g dd          }                    d          dg ddf e<ddgdddgddgg          dddgdfg          d             Z~ej	        
                    d e|ddgddggddg           e|ddgddggddg          }                    d           e|ddgddggddgddgddgg           e<g dd           e<g dd          }                    d           e<ddgdddgddgg          g          dÄ             Zej	        
                    dg dĢ          dń             Zej	        
                    dddg          ej	        
                    dd!dg          dǄ                         ZdȄ Zej	        
                    dg dʢ          d˄             Zej	        
                    dg d͢          d΄             Zej	        
                    dddg          d҄             Zej	        
                    ddd ej        ddej	                            d׬?          ئ           ej        ddej	                            d׬?          ئ          g          dل             Zej	        
                    dg dۢ          d܄             Zej	        
                    dg dݢ          dބ             Zd߄ Zd Zd Zej	        
                    d e|g dg dd          dfg          d             Zej	        jh        d             Zd Zd Zd Zd Zej	        
                    d e<dddd          df e<dddd          df e|ddgddgg          df e|ddgddgg          dfg          d              Zd Zej	        
                    dg d          d             Zej	        
                    dg d          d             Zd Zd$S (  TestPandasContainerc                 `   t          j                    }t          |          }dgdz  dgdz  z   dgdz  z   dgt          |          dz
  z  z   }t	          j        |d          |_        t          t          |                    |d<   t          j
        t          |          d	
          |d<   |S )Nbah   barbazfoo   Enameint64dtypesort)r   getSeriesDatar   r   pdCategoricalIndexindexlistreversednparange)self_seriesd
_cat_framecats       r   categorical_framez%TestPandasContainer.categorical_frame)   s    #%%x((
gkUGaK'5'A+53z??UWCW8XX.s===
x}}--
3Ys:gFFF
6r   c                 x    t          j                    }d|_        |j                            d           |_        |S )Nts)r   makeTimeSeriesr+   r3   
_with_freq)r8   sers     r   datetime_seriesz#TestPandasContainer.datetime_series5   s5     !!I((..	
r   c                     t          t          j                              }|j                            d           |_        |S N)r   r   getTimeSeriesDatar3   r@   r8   dfs     r   datetime_framez"TestPandasContainer.datetime_frame>   s6     r+--..8&&t,,	r   c                     t          ddgddggddgddg	          }t          |                    |
          |
          }|                                }t	          |||           d S )Nabcdz	index " 1z	index / 2za \ bzy / zr3   r   r   r   r   to_jsoncopyr   r8   r   rG   r   r   s        r    test_frame_double_encoded_labelsz4TestPandasContainer.test_frame_double_encoded_labelsF   s}    3Z#s$,w'
 
 
 2::V:44VDDD7799#FHf=====r   r   )splitr   r   c                     t          ddgddggddgddg          }t          |                    |	          |	          }|                                }t	          |||           d S )
NrJ   rK   rL   rM      xyrN   rO   rP   rS   s        r   test_frame_non_unique_indexz/TestPandasContainer.test_frame_non_unique_indexR   sp    c
S#J/1vSzRRR2::V:44VDDD7799#FHf=====r   r3   r   c                     t          ddgddggddgddg          }d	| d
}t          j        t          |          5  |                    |           d d d            d S # 1 swxY w Y   d S )NrJ   rK   rL   rM   rW   rX   rY   rN   z+DataFrame index must be unique for orient=''matchrO   r   pytestraises
ValueErrorrQ   r8   r   rG   msgs       r   "test_frame_non_unique_index_raisesz6TestPandasContainer.test_frame_non_unique_index_raisesZ   s    c
S#J/1vSzRRREFEEE]:S111 	& 	&JJfJ%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&   A""A&)A&rU   r   datarJ   rK   rL   rM         ?      @g      @g      @rW      2013010120130102c                    t          |ddgddg          }t          |                    |          |dg          }|dk    rgt          |          }|j        d d df         j        d	k    r=|j        d d df                             t          j                  d
z  |j        d d df<   n|dk    r|}ddg|_        t          j
        ||           d S )NrW      rX   rN   rO   )r   convert_datesr   r   datetime64[ns]@B rU   zx.1)r   r   rQ   ilocr.   viewr6   r,   r   r   r   )r8   r   rg   rG   r   r   s         r   test_frame_non_unique_columnsz1TestPandasContainer.test_frame_non_unique_columnsa   s     tAq6C:>>>JJfJ%%fSE
 
 
 X H}QQQT"(,<<<
 '/mAAAqD&9&>&>rx&H&HG&Saaad#wH #U|H
fh/////r   )r3   r   r   c                     t          ddgddggddgddg          }d	| d
}t          j        t          |          5  |                    |           d d d            d S # 1 swxY w Y   d S )NrJ   rK   rL   rM   rW   rn   rX   rN   z-DataFrame columns must be unique for orient='r\   r]   rO   r_   rc   s       r   $test_frame_non_unique_columns_raisesz8TestPandasContainer.test_frame_non_unique_columns_raises   s    c
S#J/1vSzRRRGfGGG]:S111 	& 	&JJfJ%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&rf   c                 b    |                                 |                     d          k    sJ d S )Nr   rO   rQ   )r8   float_frames     r   test_frame_default_orientz-TestPandasContainer.test_frame_default_orient   s6    ""$$(;(;9(;(M(MMMMMMMr   r.   Fconvert_axesTc                 ~    |                     |          }t          ||||          }|}t          |||           d S NrO   r   r{   r.   rQ   r   r   )r8   r   r{   r.   ry   rg   r   r   s           r   test_roundtrip_simplez)TestPandasContainer.test_roundtrip_simple   sN     ""&"114\QVWWW#FHf=====r   c                 ~    |                     |          }t          ||||          }|}t          |||           d S r}   r   )r8   r   r{   r.   	int_framerg   r   r   s           r   test_roundtrip_intframez+TestPandasContainer.test_roundtrip_intframe   sN        //4\QVWWW#FHf=====r   NU3c                    t          t          j        d          d t          d          D             d t          d          D             |          }|                    |          }t          ||||          }|                                }|s|                    t          j                  }|rW|d	v rS|j	                            t          j                  |_	        |j
                            t          j                  |_
        nc|d
k    r,|r*|j	                            t          j                  |_	        n1|r/|dk    r)|j	                            t          j                  |_	        t          |||           d S )N)      c                 ,    g | ]}t          |          S  str.0is     r   
<listcomp>z?TestPandasContainer.test_roundtrip_str_axes.<locals>.<listcomp>   s    ...SVV...r   r   c                 ,    g | ]}t          |          S r   r   r   s     r   r   z?TestPandasContainer.test_roundtrip_str_axes.<locals>.<listcomp>   s    ...a3q66...r   r   )r   r3   r.   rO   r~   rN   r   rU   )r   r6   zerosr   rQ   r   rR   astyper,   r   r3   r   )r8   r   r{   r.   rG   rg   r   r   s           r   test_roundtrip_str_axesz+TestPandasContainer.test_roundtrip_str_axes   sj    HX..U1XX.....5::...	
 
 
 zzz((4\QVWWW7799 	1rx00H  	AV';;;'/66rx@@H%^2228<<HNNy  \ '/66rx@@H 	Af//'/66rx@@H#FHf=====r   c                    |dv r<|j                             t          j                            d| d                     |                    |          }t          |||          }|                                }|j        	                    t                    |_        d |j        _        t          |||           d S )NrN   z.Can't have duplicate index values for orient 'z')reasonrO   r   r{   )node
add_markerr`   markxfailrQ   r   rR   r3   r   r   r+   r   )r8   requestr   r<   r{   rg   r   r   s           r   test_roundtrip_categoricalz.TestPandasContainer.test_roundtrip_categorical   s    
 )))L##!!VFVVV "     !(((774\JJJ$))++!..s33"#FHf=====r   c                 b   t                      }|                    |          }t          |||          }|dk    r6t          j        g |rt
          nt                    }t          ||          }n'|dv rt                      }n|                                }t          j	        ||           d S )NrO   r   rU   r-   rN   )
r   rQ   r   r1   IndexfloatobjectrR   r   r   )r8   r   r{   empty_framerg   r   idxr   s           r   test_roundtrip_emptyz(TestPandasContainer.test_roundtrip_empty   s    kk""&"114\JJJW(2|&GeeIIIC sC888HH+++ {{HH"''))H
fh/////r   c                 @   |                     |          }t          |||          }|                                }|sN|j                            t
          j                  dz  }|dk    r|                    t                    }||_        t          |||           d S )NrO   r   rq   rU   )
rQ   r   rR   r3   rs   r6   r,   r   r   r   )r8   r   r{   rH   rg   r   r   r   s           r   test_roundtrip_timestampz,TestPandasContainer.test_roundtrip_timestamp   s     %%V%444\JJJ!&&(( 	!.%%bh//7:C  jjoo HN#FHf=====r   c                    t          j        g d          }g dg dg dg dd}t          ||          }|                    |          }t	          |||	          }|                                } |j        di |                    d
                              t          j
                  }t          |||           d S )N)rJ   rK   rL   rM   e)              ?       @      @      @)r   r   r   r   r   )foo1foo2foo3foo4foo5)TFTFTABCD)rg   r3   rO   r   numberr   )r1   r   r   rQ   r   rR   assignselect_dtypesr   r6   r,   r   )	r8   r   r{   r3   r   rG   rg   r   r   s	            r   test_roundtrip_mixedz(TestPandasContainer.test_roundtrip_mixed   s    22233******999111	
 
 F%000zzz((4\JJJ7799"8?WWX%;%;H%E%E%L%LRX%V%VWW#FHf=====r   z9#50456 Column multiindex is stored and loaded differently)r   ra   2022JANFEB2023c                     t          ddgddggt          j                            |                    }t	          |                    d          d          }t          j        ||           d S )NrW   rn   rj   r   r   rU   rO   )r   r1   
MultiIndexfrom_arraysr   rQ   r   r   )r8   r   rG   r   s       r   test_roundtrip_multiindexz-TestPandasContainer.test_roundtrip_multiindex  sv     VaVM--g66
 
 

 2::W:55gFFF
fb)))))r   zdata,msg,orient)z{"key":b:a:d}zExpected object or valuer   zO{"columns":["A","B"],"index":["2","3"],"data":[[1.0,"1"],[2.0,"2"],[null,"3"]]}|z;Length of values \(3\) does not match length of index \(2\))zW{"columns":["A","B","C"],"index":["1","2","3"],"data":[[1.0,"1"],[2.0,"2"],[null,"3"]]}z+3 columns passed, passed data had 2 columnsrU   )zN{"badkey":["A","B"],"index":["2","3"],"data":[[1.0,"1"],[2.0,"2"],[null,"3"]]}zunexpected key\(s\): badkeyrU   c                     t          j        t          |          5  t          t	          |          |           d d d            d S # 1 swxY w Y   d S )Nr]   rO   )r`   ra   rb   r   r   )r8   rg   rd   r   s       r   $test_frame_from_json_bad_data_raisesz8TestPandasContainer.test_frame_from_json_bad_data_raises  s    F ]:S111 	5 	5htnnV4444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s   AAAc                 z   t          ddgg dg          }t          |                    |          |||          }t          j        |j        d                   sJ t          ddgg d	g          }t          |                    |          |||          }t          j        |j        d                   sJ d S )
NrW   rn   r   r$      rO   r~   r   rn   12)456)r   r   rQ   r6   isnanrr   )r8   r   r{   r.   num_dfr   obj_dfs          r   !test_frame_from_json_missing_dataz5TestPandasContainer.test_frame_from_json_missing_dataA  s     QFIII.//NN&N))%	
 
 
 xD)*****S#J899NN&N))%	
 
 
 xD)*******r   c                     t          d|          }t          t          j        g          }t	          j        ||           d S )Nz[null]r-   )r   r   r6   nanr   r   )r8   r.   r   r   s       r   (test_frame_read_json_dtype_missing_valuez<TestPandasContainer.test_frame_read_json_dtype_missing_valueV  s@     85111bfX&&
fh/////r   infc                     t          ddgg dg          }||j        d<   t          |                                |          }t	          j        |j        d                   sJ d S )NrW   rn   r   r   r-   )r   locr   rQ   r6   r   rr   )r8   r   r.   rG   r   s        r   test_frame_infinityz'TestPandasContainer.test_frame_infinity_  sf    
 A			*++t2::<<u555xD)*******r   z$not compliant on 32-bit, xref #15865r   zvalue,precision,expected_val))gffffff?rW   r   )g333333?rW   r   )g333333rW   g       )gףp=
?rn   r   )gCl?rj   r   )g?r(   r   c                 n    t          d|ig          }|                    |          }|d| dk    sJ d S )Na_float)double_precisionz{"a_float":{"0":}}r   rQ   )r8   value	precisionexpected_valrG   encodeds         r   "test_frame_to_json_float_precisionz6TestPandasContainer.test_frame_to_json_float_precisioni  sO     E*+,,**i*88A|AAAAAAAAAr   c                     t          g d          }d}t          j        t          |          5  |                    d           d d d            d S # 1 swxY w Y   d S NrW   rn   rj   z+Invalid value 'garbage' for option 'orient'r]   garbagerO   r_   )r8   rG   rd   s      r   test_frame_to_json_exceptz-TestPandasContainer.test_frame_to_json_exceptz  s    yyy!!;]:S111 	) 	)JJiJ(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)   AAAc                 2   t          ddg          }|j        rJ t          j        t	          |                                t          |j                            |d           t          dg ig                               d	
          }d}||k    sJ d S )Njimjoer   r-   Fcheck_index_typetestr3   r   rO   z{"test":{}})r   _is_mixed_typer   r   r   rQ   dictdtypesr8   rG   r   r   s       r   test_frame_emptyz$TestPandasContainer.test_frame_empty  s    u~...$$$$
bjjll$ry//:::BQV	
 	
 	
 	
 FB<r222::):LL !!!!!!r   c                    t          ddg          }|d                             d          |d<   |j        sJ t          j        t          |                                t          |j                            |d           d S )Nr   r   r   i8r-   Fr   )	r   r   r   r   r   r   rQ   r   r   rF   s     r   test_frame_empty_mixedtypez.TestPandasContainer.test_frame_empty_mixedtype  s    u~...uI$$T**5	    
bjjll$ry//:::BQV	
 	
 	
 	
 	
 	
r   c                    g dg dg dg dg}t          |t          d          g d          }|j        sJ |                                }dD ]?}|                    |	          }t          ||d
          }t          j        ||           @t          j	        t          |                    |_        |                    d	          }t          |dd
          }t          j        ||           t          j	        |j        d                   |_        |                    d	          }t          |dd
          }t          j        ||           d S )N)
   rW   r'   皙?g{Gz?)   rn   r%   g?g{Gz?)   rj   r&   g333333?gQ?)(   r   quxg?g{Gz?abcd)1st2nd3rd4th5thrN   )rU   r3   r   rO   Fr   r   rW   r   )r   r4   r   rR   rQ   r   r   r   r1   
RangeIndexr   r3   shaper   )r8   valsrG   rightr   inplefts          r   test_frame_mixedtype_orientz/TestPandasContainer.test_frame_mixedtype_orient  si   %%%%%%%%%%%%	
 V.Q.Q.Q
 
 
     		3 	/ 	/F**F*++CSeDDDD!$....mCGG,,jj	j**YUCCC
dE***bhqk22jjj))XEBBB
dE*****r   c                    t          j        dd          }t          t          j        |          d           }t          g dg dg dg dg dgg d	|
          }t          d          |d<   t          d          |j        d|j        	                    d          f<   |d         |d<   t           j
        |j        d|j        	                    d          f<    |ddd          }t          j                            |d          }t          |          }t          j        ||           |                    dgd          }t          j                            |d          }t          |          }	t          j        ||	           d S )Nz
2000-01-03z
2000-01-07freq)gÉ?gz~Kc?gX7?gH/ƿ)g|RпgXgsBfg(ƿ)g<1=?g9?gg??gLł
)gJQg[r?T?gj<DH>?g-ѿ)gIEx?gW!i`ygP04?g+]5?r   r   r3   z19920106 18:21:32.12daterk   rj   modifiedrW   iojsonrg   ztsframe_v012.json)axisztsframe_iso_v012.json)r1   
date_ranger	   r6   asarrayr   r   rr   r   get_locNaTospathjoinr   r   r   r   )
r8   datapathdtirG   dirpathv12_jsondf_unserdf_isov12_iso_jsondf_unser_isos
             r   test_v12_compatz#TestPandasContainer.test_v12_compat  s   mL,77BJsOO$777AAACCC???BBBAAA )((

 

 

 5666
1::1F1F2:%%f---.F:57V2:%%j1112(4007<<)<==X&&
b(+++*A..w||G-DEE ..
fl33333r   c           	      t   t          j        ddd          }t          t          |          d           }t	          g dg dg dg d	g d
g dd|          }|j                            d          |_        t          |                    d          d          }t          j
        ||dddd           d S )N20000101r   H)periodsr  r  )
g}S? wgbm?gz(~J	?g1?gk*MgvTj?g7j	" Y?gp+KS(g񒬁?gZtSy)
iL,i_}i4ziKeiL&i%giDiY)L i;eiD )
78c608f164a9974313d2ff52ca7f4af297236474bde7e2141a6bde47b1190be57a6691448d64d068)
gD!gIxJ g%
@gP\<g޿gPl?gFzn?g5mH/?gpH%gI?)
14f04af9d085da904bcfac8381504caf2ffef4a908e2f5c407e1af03addbd4a71f6a09ba4bfc4d87)
i/iiYi6iI i;>i	i( i0q{iѪ)float_1int_1str_1float_2str_2int_2r   unicoderU   rO   T)r   check_column_type	by_blockscheck_exact)r1   r  r	   r4   r   r   r   r   rQ   r   r   )r8   r3   df_mixeddf_roundtrips       r   test_blocks_compat_GH9037z-TestPandasContainer.test_blocks_compat_GH9037  s*   j"3???d5kk555            {I IT WL
 L
 L
^ $+229== !1!1!1!A!A'RRR
!"	
 	
 	
 	
 	
 	
r   c                     G d d          }d} ||          }t          d|j        gi          }|                                d| dk    sJ t          d|gi          }d}t          j        t
          |          5  |                                 d d d            n# 1 swxY w Y   t          |gd	gd
ddg          }t          j        t
          |          5  |                                 d d d            n# 1 swxY w Y   |                    t                    }d| d}	||	k    sJ |                    t                    d| dk    sJ d S )Nc                   "    e Zd ZddZdefdZdS )FTestPandasContainer.test_frame_nonprintable_bytes.<locals>.BinaryThingreturnNc                 R    || _         t                              |          | _        d S rD   )hexedbytesfromhexbinary)r8   rR  s     r   __init__zOTestPandasContainer.test_frame_nonprintable_bytes.<locals>.BinaryThing.__init__4  s     "
#mmE22r   c                     | j         S rD   )rR  r8   s    r   __str__zNTestPandasContainer.test_frame_nonprintable_bytes.<locals>.BinaryThing.__str__8  s
    z!r   rP  N)__name__
__module____qualname__rV  r   rY  r   r   r   BinaryThingrO  3  sC        3 3 3 3" " " " " " "r   r^  574b4454ba8c5eb4f98a8f45r   z{"A":{"0":""}}z6Unsupported UTF-8 sequence length when encoding stringr]   rW   r   r   r   r   default_handlerz"},"B":{"0":1}})r   rR  rQ   r`   ra   OverflowErrorr   )
r8   r^  rR  binthingdf_printabledf_nonprintablerd   rJ  r   r   s
             r   test_frame_nonprintable_bytesz1TestPandasContainer.test_frame_nonprintable_bytes0  s2   	" 	" 	" 	" 	" 	" 	" 	" +;u%% !#'7!899##%%)E)E)E)EEEEE $S8*$566F]=444 	& 	&##%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& H:QC883*MMM]=444 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 !(((==/5///!!!!S119u999: : : : : :s$   ?B  B$'B$C??DDc                 |    t          ddz  dgddgi                                          }dddz   d}||k    sJ d S )Nr%   i rW   r'   i9  {"z":{"0":1},"foo":{"0":1337}}r   r8   r   r   s      r   test_label_overflowz'TestPandasContainer.test_label_overflowV  sW    EFNQC?@@HHJJIIII!!!!!!r   c                    t          ddgddg          }d}t          j        t          |          5  |                    d           d d d            n# 1 swxY w Y   t          j        |t          |                    d	          d	d
                     t          |                    d          dd
          }t          j        |j	        |j	                   d S )NrJ   rK   rW   r   z.Series index must be unique for orient='index'r]   r3   rO   rU   series)r   typr   )
r
   r`   ra   rb   rQ   r   assert_series_equalr   assert_numpy_array_equalr   )r8   srd   unserializeds       r   test_series_non_unique_indexz0TestPandasContainer.test_series_non_unique_index\  s#   C:aV,,,>]:S111 	& 	&IIWI%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	y'227QQQ	
 	
 	
 !IIYI''	x
 
 
 	#AHl.ABBBBBs   AAAc                 b    |                                 |                     d          k    sJ d S Nr3   rO   rx   )r8   string_seriess     r   test_series_default_orientz.TestPandasContainer.test_series_default_orientk  s6    $$&&-*?*?w*?*O*OOOOOOOr   c                     |                     |          }t          |d|          }|}|dv r|                    d          }|dk    rd |_        t	          j        ||           d S NrO   rn  ro  r   r   r   Tr   rU   rQ   r   r   r+   r   rp  )r8   r   rw  rg   r   r   s         r   test_series_roundtrip_simplez0TestPandasContainer.test_series_roundtrip_simplen  s~    $$F$334Xf=== ***+++66HW HM
vx00000r   c                     |                     |          }t          |d||          }|}|dv r|                    d          }|dk    rd |_        t	          j        ||           d S )NrO   rn  )ro  r   r.   r|  Tr   rU   r}  )r8   r   r.   object_seriesrg   r   r   s          r   test_series_roundtrip_objectz0TestPandasContainer.test_series_roundtrip_objectz  s    $$F$334XfEJJJ ***+++66HW HM
vx00000r   c                 >   t          g g t          j                  }|                    |          }t	          |d|          }|                    d          }|dv r)|j                            t          j                  |_        t          j	        ||           d S )Nr3   r.   rO   rn  r{  Tr   rU   )
r
   r6   float64rQ   r   r   r3   r   r   rp  )r8   r   empty_seriesrg   r   r   s         r   test_series_roundtrip_emptyz/TestPandasContainer.test_series_roundtrip_empty  s    b"*===##6#224Xf===+++66g%^222:>>HN
vx00000r   c                     |                     |          }t          |d|          }|}|dv r|                    d          }|dk    rd |_        t	          j        ||           d S rz  r}  )r8   r   rB   rg   r   r   s         r    test_series_roundtrip_timeseriesz4TestPandasContainer.test_series_roundtrip_timeseries  s~    &&f&554Xf==="***+++66HW HM
vx00000r   c                    t          t          d          g d          }|                    |          }t          |d|          }|                                }|dv r|                    d	          }t          j        ||           d S )
Nr   rJ   rK   rL   rM   r   fr   rO   rn  r{  r|  Tr   )r
   r   rQ   r   rR   r   r   rp  )r8   r   r.   rr  rg   r   r   s          r   test_series_roundtrip_numericz1TestPandasContainer.test_series_roundtrip_numeric  s    588#A#A#ABBByyy''4Xf===6688***+++66H
vx00000r   c                     t          g d          }d}t          j        t          |          5  |                    d           d d d            d S # 1 swxY w Y   d S r   )r
   r`   ra   rb   rQ   )r8   rr  rd   s      r   test_series_to_json_exceptz.TestPandasContainer.test_series_to_json_except  s    999;]:S111 	( 	(IIYI'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(r   c                     t          g d          }t          |                                dd          }t          j        ||d           d S )N=
ףp=@r  r  rn  T)ro  precise_floatFr   )r
   r   rQ   r   rp  r8   rr  r   s      r   #test_series_from_json_precise_floatz7TestPandasContainer.test_series_from_json_precise_float  sP    %%%&&199;;HDIII
vq5AAAAAAr   c                     t          g d          }t          |                                dt          j                  }t          dgdz            }t          j        ||           d S )Nr  rn  ro  r.   r   rj   )r
   r   rQ   r6   r,   r   rp  )r8   rr  r   r   s       r   test_series_with_dtypez*TestPandasContainer.test_series_with_dtype  s^    %%%&&199;;HBHEEE1#'??
vx00000r   zdtype,expected
2000-01-01rp   r-   l    ,Uqc                     t          dgd          }|                                }t          |d|          }t          j        ||           d S )Nr  rp   r-   rn  r  )r
   rQ   r   r   rp  )r8   r.   r   rr  rg   r   s         r   test_series_with_dtype_datetimez3TestPandasContainer.test_series_with_dtype_datetime  sS     L>)9:::yy{{4XU;;;
vx00000r   c                     t          g dg dg          }t          |                                d          }t          j        ||           d S )Nr  T)r  r   r   rQ   r   r   r8   rG   r   s      r   "test_frame_from_json_precise_floatz6TestPandasContainer.test_frame_from_json_precise_float  sU    ***,>,>,>?@@2::<<t<<<
fb)))))r   c                     t          t          d          g dd          }t          |                                d           }t	          j        ||           d S )Nr   r  r,   r  ro  )r
   r   r   rQ   r   rp  r  s      r   test_typzTestPandasContainer.test_typ  sV    588#A#A#AQQQ199;;D111
vq)))))r   c                 <   t          g dg dg          }t          |                                          }t          j        ||           t          g dg ddg d          }t          |                                          }t          j        ||           d S )Nr   r   rJ   rK   )r   r   r   r   r  r  s      r   test_reconstruction_indexz-TestPandasContainer.test_reconstruction_index  s    			999-..2::<<((
fb)))YYYYYY77OOO2::<<((
fb)))))r   c                     t          j        d          5 }|||fD ]&}|                    |           t          |           '	 d d d            d S # 1 swxY w Y   d S )N	test.json)r   ensure_cleanrQ   r   )r8   ry   r   rH   r  rG   s         r   	test_pathzTestPandasContainer.test_path  s    _[)) 	 T"I~>    

4   $ 	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   -AAAc                     |                                 }t          |          }t          j        ||           |                                 }t          |d          }t          j        ||d           |j        J d S )Nrn  r  F)check_names)rQ   r   r   r   rp  r+   )r8   rB   rH   r  r   s        r   test_axis_datesz#TestPandasContainer.test_axis_dates  s    %%''4
fn555 &&((4X...
vEJJJJ{"""""r   c                    |}t          d          |d<   |                                }t          |          }t          j        ||           d|d<   |                    d          }t          |d          }|                                }|d         j                            d	          |d<   |d                             d
          |d<   t          j        ||           t          t          d          |j
                  }|                                }t          |d          }t          j        ||           d S )Nrk   r  r   r'   ns	date_unitFro   r   r,   r   rn  r  )r   rQ   r   r   r   rR   r   rs   r   r
   r3   rp  )r8   rB   rH   rG   r  r   r   r>   s           r   test_convert_datesz&TestPandasContainer.test_convert_dates  s#   z**6
zz||4
fb)))5	zzDz))4u5557799#F+277=="5/0099
fh/// Ij))1FGGGzz||4X...
vr*****r   date_formatepochiso	as_objectdate_typc                     |ddd          t           j        g}|r|                    d           t          ||          }|                    |          }|dk    rd}nd	}|r|                    d
d          }||k    sJ d S )Ni  rW   )yearmonthdayrJ   r   r  r  z+{"1577836800000":1577836800000,"null":null}zA{"2020-01-01T00:00:00.000":"2020-01-01T00:00:00.000","null":null}}	,"a":"a"})r1   r  appendr
   rQ   replace)r8   r  r  r  rg   rA   r   r   s           r   test_date_index_and_valuesz.TestPandasContainer.test_date_index_and_values  s     d!333RV< 	KKT&&&55'!!DHH T   	:''[99H!!!!!!r   
infer_word)
trade_timer  datetimesold_atr  	timestamp
timestampsc                     ddl m} dd|diddig}t          dt          d          gdt          j        ggd|g          }t           ||                    d|g         }t          j        ||           d S )	Nr   dumpsidrW   l    $Arn   z
2002-11-08r   )	pandas.io.jsonr  r   r   r1   r  r   r   r   )r8   r  r  rg   r   r   s         r   test_convert_dates_inferz,TestPandasContainer.test_convert_dates_infer  s     	)(((((q*m4tQi@<(()Arv;7$
AS
 
 
 55;;''z(:;
fh/////r   zdate,date_unit))20130101 20:43:42.123N)20130101 20:43:42rr  )r  ms)z20130101 20:43:42.123456us)z20130101 20:43:42.123456789r  c                    |}t          |          |d<   t          j        |j        d|j                            d          f<   t          j        |j        d|j                            d          f<   |r|                    d|          }n|                    d          }t          |          }|                                }t          j
        ||           d S )Nr  rW   r$   r  r  r  r  )r   r1   r  rr   r   r  rQ   r   rR   r   r   )r8   r  r  rH   rG   r  r   r   s           r   test_date_format_framez*TestPandasContainer.test_date_format_frame5  s     t__6
132:%%f---.132:%%f---. 	1::%9:EEDD::%:00D47799
fh/////r   c                     |}d}t          j        t          |          5  |                    dd           d d d            d S # 1 swxY w Y   d S )N*Invalid value 'foo' for option 'date_unit'r]   r  r'   r  )r`   ra   rb   rQ   )r8   rH   rG   rd   s       r   test_date_format_frame_raisesz1TestPandasContainer.test_date_format_frame_raisesM  s    :]:S111 	; 	;JJ5EJ:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;s   AA	A	c                 p   t          t          |          |j                  }t          j        |j        d<   t          j        |j        d<   |r|                    d|          }n|                    d          }t          |d          }|                                }t          j
        ||           d S )	Nr   rW   r$   r  r  r  rn  r  )r
   r   r3   r1   r  rr   rQ   r   rR   r   rp  )r8   r  r  rB   r>   r  r   r   s           r   test_date_format_seriesz+TestPandasContainer.test_date_format_seriesS  s     IdOO?+@AAAV
V
 	1::%9:EEDD::%:00D4X...7799
vx00000r   c                     t          t          d          |j                  }d}t          j        t
          |          5  |                    dd           d d d            d S # 1 swxY w Y   d S )Nr  r   r  r]   r  r'   r  )r
   r   r3   r`   ra   rb   rQ   )r8   rB   r>   rd   s       r   test_date_format_series_raisesz2TestPandasContainer.test_date_format_series_raisesi  s    I566o>STTT:]:S111 	; 	;JJ5EJ:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;s   A&&A*-A*unit)rr  r  r  r  c                    |}t          d          |d<   |j                            d          }t          d          |j        d|f<   t          d          |j        d|f<   t          j        |j        d|f<   |                    d|	          }t          ||
          }t          j	        ||           t          |d 
          }t          j	        ||           d S )Nr  r  z19710101 20:43:42rW   z21460101 20:43:42rn   r   r  r  r  )
r   r   r  rr   r1   r  rQ   r   r   r   )r8   r  rH   rG   dlr  r   s          r   test_date_unitz"TestPandasContainer.test_date_unito  s    2336
Z''"#6772"#67722zzgz>> 44000
fb))) 44000
fb)))))r   c                 (    d}t          |           d S )Nad  {
        "status": "success",
        "data": {
        "posts": [
            {
            "id": 1,
            "title": "A blog post",
            "body": "Some useful content"
            },
            {
            "id": 2,
            "title": "Another blog post",
            "body": "More content"
            }
           ]
          }
        })r   )r8   rr  s     r   test_weird_nested_jsonz*TestPandasContainer.test_weird_nested_json  s    $ 	!r   c                    t          t          j                            dd          t	          d                    }t          d          |d<   t          d          |d<   d|d	<   t          j        dd
          |_	        |
                                }t          |t          j        t          j        d          }t          j        ||           d S )Nr$   rn   ABr   rk   r  intsTboolsr+  )r  r  r-   )r   r6   randomrandnr4   r   r   r1   r  r3   rQ   r   r,   bool_r   r   )r8   dfj2r  r   s       r   test_doc_examplez$TestPandasContainer.test_doc_example  s    A..T

CCC ,,VQxxVW]:q999
||~~428'L'LMMM
ff-----r   c                      |dddd          }t          j        |          }|                                }t          |          }t	          j        |                    |j        |j                  |           d S )Nr  r  rg   z	teams.csvrN   )	r1   read_csvrQ   r   r   r   reindexr3   r   )r8   r  r  rG   rr  r   s         r   test_round_trip_exception_z.TestPandasContainer.test_round_trip_exception_  sl    xffk::[JJLL1
fnn28RZnPPRTUUUUUr   @https://api.github.com/repos/pandas-dev/pandas/issues?per_page=5)urlcheck_before_testzfield,dtype
created_atUTCtz	closed_at
updated_atc                 R    d}t          |d          }||         j        |k    sJ d S )Nr  Tr  )r   r.   )r8   fieldr.   r  r   s        r   test_urlzTestPandasContainer.test_url  s:     Q3d333e}"e++++++r   c                 T   d }t          t          d          t          d          g          }|j        dk    sJ t          |                                d                              |          }t          j        ||           t          t          d          t          d          gt          j	        dd	g          
          }|j        dk    sJ t          |                                d                              |          }t          j        ||           t          t          d          t          d          g          }|d         j        dk    sJ t          j        |t          |                                                              |                     d S )Nc                 .    t          j        | d          S )Nr  r  )r1   to_timedelta)rX   s    r   <lambda>z4TestPandasContainer.test_timedelta.<locals>.<lambda>  s    boad;;; r      r$   secondsztimedelta64[ns]rn  r  r   rW   r   )r
   r   r.   r   rQ   applyr   rp  r1   r   r   r   )r8   	converterrA   r   frames        r   test_timedeltaz"TestPandasContainer.test_timedelta  ss   ;;	immYq%9%9%9:;;y-----3;;==h777==iHH
vs+++immYq%9%9%9:"(Aq6BRBRSSSy-----3;;==h777==iHH
vs+++9R==)A*>*>*>?@@Qx~!22222
eYu}}%?%?%E%Ei%P%PQQQQQr   c                 x   t          t          d          t          d          gddgt          j        dd          d	          }t	          |                    d
                    }t          j        |j        d
          |d<   t          j        |j	                  |d<   t          j        ||           d S )Nr   daysr$   r  rW   rn   rk   )startr+  rJ   rK   rL   r  r  r  rJ   rL   )r   r   r1   r  r   rQ   r  rJ   to_datetimerL   r   r   )r8   r  r   s      r   test_timedelta2z#TestPandasContainer.test_timedelta2  s    R((()A*>*>*>?V]Q??? 
 
 5==4=8899ofhT:::snVX..s
eV,,,,,r   c                    t          d          }t          d          }t          d||git                    }t          dt	          j        |                              d          j        |                    d          j        gi          }t          |	                    d          ddi          }t          j        ||d	           d S )
Nr   rk   rJ   r-   r  r  r,   Fr   )r   r   r   r   r1   	Timedeltaas_unit_valuer   rQ   r   r   )r8   tdr>   r  r   r   s         r   test_mixed_timedelta_datetimez1TestPandasContainer.test_mixed_timedelta_datetime  s    r]]z""3R/8882<##++D118"**T:J:J:QRS
 
 5==4=88gOOO
fhGGGGGGr   timedelta_typc                     |d           |d          t           j        g}|r|                    d           t          ||          }|dk    rd}nd}|r|                    d	d
          }|                    |          }||k    sJ d S )NrW   r  rn   rJ   r   r  zA{"P1DT0H0M0S":"P1DT0H0M0S","P2DT0H0M0S":"P2DT0H0M0S","null":null}z7{"86400000":86400000,"172800000":172800000,"null":null}r  r  r  )r1   r  r  r
   r  rQ   )r8   r  r  r  rg   rA   r   r   s           r   test_timedelta_to_jsonz*TestPandasContainer.test_timedelta_to_json  s    
 1%%%}}!'<'<'<bfE 	KKT&&&%S H QH 	:''[99H55!!!!!!r   c                    t                      }t          dd|gi          }t          ddt          |          gi          }t          |                    t                              }t          j        ||d           d S )NrJ      rb  Fr   )r   r   r   r   rQ   r   r   )r8   r   r  r   r   s        r   test_default_handlerz(TestPandasContainer.test_default_handler  sv    3E
+,,cAs5zz?3445=====>>
hGGGGGGr   c           	          ddl m} d }dt          ddt          dd          gt	          d	          d d
gdddg          g}d} |||d          |k    sJ d S )Nr   r  c                 p    t          | t                    rdd| j        fd| j        fgS t	          |           S )N)mathjsComplexreim)
isinstancecomplexrealimagr   )objs    r   defaultzBTestPandasContainer.test_default_handler_indirect.<locals>.default	  s;    #w'' S-ch/?$AQRRs88Or   	   rW   STRr   r   zN/Ar  rJ   rK   r   zR[9,[[1,null],["STR",null],[[["mathjs","Complex"],["re",4.0],["im",-5.0]],"N\/A"]]]r   rc  r   )r  r  r   r!  r   )r8   r  r%  df_listr   s        r   test_default_handler_indirectz1TestPandasContainer.test_default_handler_indirect  s    ((((((	 	 	 %B0edE7RSSc
  
1 	 uWghGGG8SSSSSSr   c           	          t          ddt          dd          gt          d          d t          dd          gdd	d
g          }d}|                    t          d          |k    sJ d S )NrW   gffffff@r   r(  r   g333333?r   r  rJ   rK   r   zE[["(1+0j)","(nan+0j)"],["(2.3+0j)","(nan+0j)"],["(4-5j)","(1.2+0j)"]]r   r)  )r   r!  r   rQ   r   )r8   rG   r   s      r   ,test_default_handler_numpy_unsupported_dtypez@TestPandasContainer.test_default_handler_numpy_unsupported_dtype  s    c71b>>*%,,gcSToo1VWW#J
 
 

% 	
 zz#hz??8KKKKKKr   c           
         dfd}t          j        t                    5  t          dddt	                      gi                              |           d d d            n# 1 swxY w Y   t          j        t                    5  t          dddt          dd	          gi                              |           d d d            d S # 1 swxY w Y   d S )
Nraisinc                 "    t                    rD   )	TypeError)r$  rd   s    r   my_handler_raiseszJTestPandasContainer.test_default_handler_raises.<locals>.my_handler_raises+  s    C.. r   r]   rJ   rW   rn   rb  r   r(  )r`   ra   r1  r   r   rQ   r!  )r8   r2  rd   s     @r   test_default_handler_raisesz/TestPandasContainer.test_default_handler_raises(  s|   	! 	! 	! 	! 	! ]9C000 	 	sQ688,-..66 1 7   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]9C000 	 	sQ71b>>2344<< 1 =   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s#   5A%%A),A)7CCCc                 R   t          dg di          }|d         |d<   |                                }|d                             d          |d<   ||                                k    sJ |d         }|d         }|                                |                                k    sJ d S )Nr   )rJ   rK   rL   rJ   rK   rK   rJ   r   category)r   rQ   r   )r8   rG   r   rr  scs        r   test_categoricalz$TestPandasContainer.test_categorical7  s    @@@ABBS'3::<<S'..,,32::<<''''sGWyy{{bjjll******r   c                    t          j        ddd          }|                    d                              d           }t	          |t          j        dd          d          }|                                }||d<   |                                }||                                k    sJ t          |          }t          |          }|                                |                                k    sJ d S )	Nrk   rj   
US/Easternr+  r  utcr  ra  r   )r1   r  
tz_converttz_localizer   rR   rQ   r
   )r8   tz_rangetz_naiverG   df_naiver   stzs_naives           r   test_datetime_tzz$TestPandasContainer.test_datetime_tzD  s    =Q<HHH&&u--99$??XBM*a,P,P,PQQRR7799 ##%%2::<<''''X""{{}} 1 1111111r   c                    t          t          j                            dd                    }t          j        |j        d d<   |                    d          }|                                }||                                k    sJ t          t          j                            d                    }t          j        |j        d d<   |                    d          }|                                }||                                k    sJ d S )Nr   r      Sparse)	r   r6   r  r  r   r   r   rQ   r
   )r8   rG   sdfr   rr  sss         r   test_sparsezTestPandasContainer.test_sparseT  s    ryr1--..Vrr
ii!!::<<3;;==((((29??2&&''Fbqb	XXh99;;2::<<''''''r   r>   z2013-01-10 05:00:00Zz2013-01-10 00:00:00r9  z2013-01-10 00:00:00-0500c                     ddl m} d} ||d          |k    sJ |                                } ||d          |k    sJ d S )Nr   r  z"2013-01-10T05:00:00.000Z"T	iso_dates)r  r  to_pydatetime)r8   r>   r  expdts        r   test_tz_is_utcz"TestPandasContainer.test_tz_is_utcd  sr     	)(((((*uR4(((C////uR4(((C//////r   c                     ddl m} t          d          }d} ||d          |k    sJ |                                } ||d          |k    sJ d S )Nr   r  z2013-01-10 05:00:00z"2013-01-10T05:00:00.000"TrK  )r  r  r   rM  )r8   r  r>   rN  rO  s        r   test_tz_is_naivez$TestPandasContainer.test_tz_is_naiveu  s~    ((((((,--)uR4(((C////uR4(((C//////r   r>  z2013-01-01 05:00:00Zrn   r  z2013-01-01 00:00:00r:  z2013-01-01 00:00:00-0500c                 x   ddl m} d}d} ||d          |k    sJ t          |          } ||d          |k    sJ  ||                    t                    d          |k    sJ t          d|i          } ||d          }||k    sJ  ||                    dt          i          d          sJ d S )Nr   r  z7["2013-01-01T05:00:00.000Z","2013-01-02T05:00:00.000Z"]zF{"DT":{"0":"2013-01-01T05:00:00.000Z","1":"2013-01-02T05:00:00.000Z"}}TrK  DT)r  r  r	   r   r   r   )r8   r>  r  rN  dfexpr   rG   r   s           r   test_tz_range_is_utcz(TestPandasContainer.test_tz_range_is_utc  s    	)(((((G/ 	 uX...#5555H%% uSD)))S0000uSZZ''4888C????c{##rT***uRYYf~..$????????r   c                 `   ddl m} t          j        dd          }d}d} ||d	          |k    sJ  ||                    t
                    d	          |k    sJ t          d
|i          } ||d	          }||k    sJ  ||                    d
t
          i          d	          sJ d S )Nr   r  z2013-01-01 05:00:00rn   r  z5["2013-01-01T05:00:00.000","2013-01-02T05:00:00.000"]zD{"DT":{"0":"2013-01-01T05:00:00.000","1":"2013-01-02T05:00:00.000"}}TrK  rT  )r  r  r1   r  r   r   r   )r8   r  r   rN  rU  rG   r   s          r   test_tz_range_is_naivez*TestPandasContainer.test_tz_range_is_naive  s    ((((((m11===EV uSD)))S0000uSZZ''4888C????c{##rT***uRYYf~..$????????r   c                     t          dd          }t          ddgddggddg          }t          j        ||           d S )	N!{"a": 1, "b": 2}
{"b":2, "a" :1}
TlinesrW   rn   rJ   rK   r   r   r   r   r   rk  s      r   test_read_inline_jsonlz*TestPandasContainer.test_read_inline_jsonl  sQ    @MMMq!fq!f-SzBBB
fh/////r   c                     t          dd|          }t          ddgddggddg          }t          j        ||           d S )	Nzs3n://pandas-test/items.jsonlT)r\  storage_optionsrW   rn   rJ   rK   r   r]  )r8   s3_resources3sor   r   s        r   test_read_s3_jsonlz&TestPandasContainer.test_read_s3_jsonl  s]    
 +4
 
 
 q!fq!f-SzBBB
fh/////r   c                 X   t          j        d          5 }t          |d          5 }|                    d           d d d            n# 1 swxY w Y   t	          |d          }t          ddgddggdd	g
          }t          j        ||           d d d            d S # 1 swxY w Y   d S )Nztmp_items.jsonwrZ  Tr[  rW   rn   rJ   rK   r   )r   r  openwriter   r   r   )r8   r  infiler   r   s        r   test_read_local_jsonlz)TestPandasContainer.test_read_local_jsonl  s?   _-.. 	4$dC DFBCCCD D D D D D D D D D D D D D Dt4000F 1a&1a&!1C:FFFH!&(333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s4   BABA	BA	ABB#&B#c                 (   d}t          |          }t          |d          }t          ddgddggddg	          }t          j        ||           d}t          |d          }t          ddgddggddg	          }t          j        ||           d S )
Nu5   {"a": "foo”", "b": "bar"}
{"a": "foo", "b": "bar"}
Tr[  u   foo”r%   r'   rJ   rK   r   )r   r   r   r   r   r8   r  r   r   s       r   test_read_jsonl_unicode_charsz1TestPandasContainer.test_read_jsonl_unicode_chars  s    
 I~~4t,,,{E2UENCcSVZXXX
fh/// I4t,,,{E2UENCcSVZXXX
fh/////r   bigNumc                 .   t          |t          dg          }|                                }dt          |          z   dz   }||k    sJ t	          |t          dgdg          }|                                }dt          |          z   dz   }||k    sJ d S )	N	articleId)r.   r3   {"articleId":r  r   )r.   r3   r   {"0":{"articleId":r   )r
   r   rQ   r   r   )r8   rm  rn  r  r   rG   s         r   test_to_json_large_numbersz.TestPandasContainer.test_to_json_large_numbers  s     f[MBBB~~"S[[036xvVK=1#NNNzz||'#f++5<xr   l        l            c                    t          dt          |          z   dz             }d}t          j        t          |          5  t          |           d d d            n# 1 swxY w Y   t          dt          |          z   dz             }t          j        t          |          5  t          |           d d d            d S # 1 swxY w Y   d S )Nrp  r  z#Value is too small|Value is too bigr]   rq  r   )r   r   r`   ra   rb   r   )r8   rm  r  rd   s       r   test_read_json_large_numbersz0TestPandasContainer.test_read_json_large_numbers  s?    #f++5;<<4]:S111 	 	dOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ,s6{{:TABB]:S111 	 	dOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$    AA #A $CCCc                 *   d}t          |          }t          |d          }t          ddg          }t          j        ||           d}t          |          }t          |          }t          ddgdg	          }t          j        ||           d S )
Nz'{"articleId": "1404366058080022500245"}rn  r  gg_SDro  r   z.{"0": {"articleId": "1404366058080022500245"}}r   rN   )r   r   r
   r   rp  r   r   rk  s       r   test_read_json_large_numbers2z1TestPandasContainer.test_read_json_large_numbers2  s    8~~4X...+k];;;
vx000?~~4[sKKK
fh/////r   c                    t          ddgddggddg          }|                    dd          }d	}||k    sJ t          d
dgddggddg          }|                    dd          }d}||k    sJ t          j        t	          |d          |           t          ddgddggddg          }|                    dd          }d}||k    sJ t          j        t	          |d          |           d S )NrW   rn   rJ   rK   r   r   T)r   r\  z{"a":1,"b":2}
{"a":1,"b":2}
zfoo}r%   zfoo"z/{"a":"foo}","b":"bar"}
{"a":"foo\"","b":"bar"}
r[  zfoo\za\z4{"a\\":"foo\\","b":"bar"}
{"a\\":"foo\"","b":"bar"}
)r   rQ   r   r   r   r   s       r   test_to_jsonlz!TestPandasContainer.test_to_jsonl  s5   AA'#s<<<9D993!!!!&%9C:NNN9D99G!!!!
id;;;R@@@ %(65/:UCLQQQ9D99R!!!!
id;;;R@@@@@r   z%GH#13774 encoding kwarg not supportedc                     g dg dg dg dg dg dg dt           j        dd	d
gdt           j        dd	d
gg	}d |D             }g }dt          fD ]+}|D ]&}|                    t	          ||                     ',dd}|D ]} ||           d S )N)   E, 17r      a   b   c)rz  r{  r|  r}  )s   EE, 17r   r{  r|  r}  )rz     r{  r|  r}  )r   r{  r|  r}  )r~  r{  r|  r}  )   Ar   r{  r|  r}  r   r|  r}  r  c                 &    g | ]}d  |D             S )c                 f    g | ].}t          |t                    r|                    d           n|/S latin-1)r   rS  decode)r   rX   s     r   r   zFTestPandasContainer.test_latin_encoding.<locals>.<listcomp>.<listcomp>$  s8    KKKAJq%$8$8?QXXi   aKKKr   r   )r   rY   s     r   r   z;TestPandasContainer.test_latin_encoding.<locals>.<listcomp>#  s7     
 
 
 LKKKK
 
 
r   r5  r-   r  c                     t          j        d          5 }|                     ||           t          ||          }t          j        | |d           d d d            d S # 1 swxY w Y   d S )Nr  )encodingF)check_categorical)r   r  rQ   r   rp  )rr  r  r  retrs       r   	roundtripz:TestPandasContainer.test_latin_encoding.<locals>.roundtrip-  s    -- I		$	222 999&q$%HHHHI I I I I I I I I I I I I I I I I Is   A A""A&)A&r  )r6   r   r   r  r
   )r8   r   examplesr.   valr  rr  s          r   test_latin_encodingz'TestPandasContainer.test_latin_encoding  s    211,,,...999###+++111VS$%263d3


 

 
 

  &) 	: 	:E : :s% 8 8 89999:	I 	I 	I 	I  	 	AIaLLLL	 	r   c                     t          dt          d          gi          }|                    dd                                          }|                                 |                    dd                                          }||k    sJ d S )NrJ   rW   T)r3   deep)r   r   memory_usagesumrQ   )r8   rG   size_before
size_afters       r   "test_data_frame_size_after_to_jsonz6TestPandasContainer.test_data_frame_size_after_to_json6  s    c!ffX''ooDto<<@@BB


__4d_;;??AA
j((((((r   r   r   r   r   1.2.c                     t          ddgddgg||          }|                    d          }t          |d          }t          j        ||           d S )NrW   rn   rj   r   rN   tablerO   r   rQ   r   r   r   )r8   r3   r   r   dfjsonr   s         r   .test_from_json_to_json_table_index_and_columnszBTestPandasContainer.test_from_json_to_json_table_index_and_columns@  sf     q!fq!f-UGLLL!!!116'222
fh/////r   c                     t          ddgddgddgd          }|                    d	          }t          |d	          }t          j        ||           d S )
NrW   rn   r   r   r   r   r  r  rO   r  )r8   r   r  r   s       r   #test_from_json_to_json_table_dtypesz7TestPandasContainer.test_from_json_to_json_table_dtypesK  sf    Aq6c
#sLLMM!!!116'222
fh/////r   )rU   r   r3   r   c                    t          j        t          g dd          t          g dd          t          g dd          t          g dd	          t          g d
d          t          g dd          d          }|                    |          }t	          ||dddd	ddd          }t          j        ||           d S )Nr   r,   r-   )Nr   r   r  )N rL   r   TFTboolrJ   rK   Nr5  )z
2020-01-01Nz
2020-01-03rp   )IntegerFloatObjectBoolCategoryDatetimerO   r   r.   )r   	from_dictr
   rQ   r   r   r   )r8   r   r   r  r   s        r   %test_to_json_from_json_columns_dtypesz9TestPandasContainer.test_to_json_from_json_columns_dtypesR  s    &!)))7;;; 0 0 0	BBB AAA222&AAA"#3#3#3:FFF"666>N  	 	
 
 !!!00"""&, 
 
 
 	fh/////r   )rK   rL   c                     t          ddgddgddgd          }|                    d	          }d
}t          j        t          |          5  t          |d|           d d d            d S # 1 swxY w Y   d S )NrW   rn   r   r   r   r   r  r  rO   z)cannot pass both dtype and orient='table'r]   r  r   rQ   r`   ra   rb   r   )r8   r.   rG   r  rd   s        r   !test_read_json_table_dtype_raisesz5TestPandasContainer.test_read_json_table_dtype_raisesp  s     aV3*C:FFGG7++9]:S111 	; 	;fWE::::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;s   A--A14A1c                     t          ddgddggddgddg	          }|                    d
          }d}t          j        t          |          5  t          |d
d           d d d            d S # 1 swxY w Y   d S )NrW   rn   rj   r   r   r   r  r  rN   r  rO   z0cannot pass both convert_axes and orient='table'r]   Tr   r  )r8   rG   r  rd   s       r   (test_read_json_table_convert_axes_raisesz<TestPandasContainer.test_read_json_table_convert_axes_raisesy  s    AA'SzD$<PPP7++@]:S111 	A 	AfW4@@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	As   A00A47A4zdata, expectedr   r$   r   )r   rg   r'   r  r   r   r*   )r+   rg   )r+   r3   c                 l    |                     dd          }t          j        |          }||k    sJ d S )NrU   Fr   r3   )rQ   r  loadsr8   rg   r   r   s       r   test_index_false_to_json_splitz2TestPandasContainer.test_index_false_to_json_split  s@    @ WE::F##!!!!!!r   c                     |                     dd          }t          j        |          }t          j        j                            |d          t          |                              d          d}||k    sJ d S )Nr  Fr  r   r   rO   )schemarg   )rQ   r  r  r1   r  build_table_schemar   to_dictr8   rg   r   r   s       r   test_index_false_to_json_tablez2TestPandasContainer.test_index_false_to_json_table  s    & WE::F## ej33D3FFdOO++9+==
 

 !!!!!!r   )r   r3   r   r   c                     t          ddgddggddg          }d}t          j        t          |	          5  |                    |d
           d d d            d S # 1 swxY w Y   d S )NrW   rn   r   r$   rJ   rK   r   z?'index=False' is only valid when 'orient' is 'split' or 'table'r]   Fr  r_   rc   s       r   test_index_false_error_to_jsonz2TestPandasContainer.test_index_false_error_to_json  s    
 AA'#s<<<O]:S111 	3 	3JJfEJ222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   AA #A r  c                     t          ddgddgd          }|                    ||          }t          ||          }t          j        ||           d S )NrW   rn   rj   r   r  r  rO   r  )r8   r   r3   r   r  r   s         r   "test_index_false_from_json_to_jsonz6TestPandasContainer.test_index_false_from_json_to_json  sd    
 Aq6A7788!!u!==6&111
fh/////r   c                     t          ddd          }t          dgt          dgd          	          }t          j        ||           d S )
Nz{"2019-01-01T11:00:00.000Z":88}rn  r3   r{  X   z2019-01-01 11:00:00r  r  r   )r   r
   r	   r   rp  rk  s      r   test_read_timezone_informationz2TestPandasContainer.test_read_timezone_information  s^    -8G
 
 
 2$m5J4KPU&V&V&VWWW
vx00000r   r  )zs3://example-fsspec/zgcs://another-fsspec/file.jsonzhttps://example-site.com/datazsome-protocol://data.txtc                 z    t          d| d          }t          d|gi          }t          j        ||           d S )Nz{"url":{"0":"r`  r  r]  )r8   r  r   r   s       r   test_read_json_with_url_valuez1TestPandasContainer.test_read_json_with_url_value  sI     7S77788ecU^,,
fh/////r   compression)r  z.gzz.bz2z.tarc                     d d| }t          j        t          d| d          5  t          |           d d d            d S # 1 swxY w Y   d S )N  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz.jsonzFile z does not existr]   )r`   ra   FileNotFoundErrorr   )r8   r  long_json_paths      r   'test_read_json_with_very_long_file_pathz;TestPandasContainer.test_read_json_with_very_long_file_path  s     '::[::]%L^%L%L%L
 
 
 	& 	&
 n%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s   AAAzdate_format,key)r  i \&)r  
P1DT0H0M0Sc                     t          dggt          j        d          g          }d| d}|                    |          }||k    sJ d S )NrW   1Dr   rj  z
":{"0":1}}r  )r   r1   r  rQ   )r8   r  keyrG   r   r   s         r   test_timedelta_as_labelz+TestPandasContainer.test_timedelta_as_label  sa     ur|D'9'9&:;;;++++44!!!!!!r   zorient,expected)r3   z{"('a', 'b')":{"('c', 'd')":1}})r   z{"('c', 'd')":{"('a', 'b')":1}}r  z,Produces JSON but not in a consistent manner)marksc                 n    t          dggdgdg          }|                    |          }||k    sJ d S )NrW   r  )rL   rM   rN   rO   r   r8   r   r   rG   r   s        r   test_tuple_labelsz%TestPandasContainer.test_tuple_labels  sJ    0 uZL:,GGG6**!!!!!!r   indent)rW   rn   r   c                     t          ddgddggddg          }|                    |          }d	|z  }d
| d| | d| | d| d| d| | d| | d| d}||k    sJ d S )Nr'   r%   r&   r  rJ   rK   r   r   z{
z"a":{
z"0":"foo",
z
"1":"baz"
z},
z"b":{
z"0":"bar",
z
"1":"qux"
z}
}r   )r8   r  rG   r   spacesr   s         r   test_to_json_indentz'TestPandasContainer.test_to_json_indent#  s    7#sLLL6**v		 				 	 	 
	 	 		 	
 	 	 	 
	 	 	 
	 	 	 	 	 !!!!!!r   ))rU   z{
    "columns":[
        "a",
        "b"
    ],
    "index":[
        0,
        1
    ],
    "data":[
        [
            "foo",
            "bar"
        ],
        [
            "baz",
            "qux"
        ]
    ]
})r   zf[
    {
        "a":"foo",
        "b":"bar"
    },
    {
        "a":"baz",
        "b":"qux"
    }
])r3   zn{
    "0":{
        "a":"foo",
        "b":"bar"
    },
    "1":{
        "a":"baz",
        "b":"qux"
    }
})r   zn{
    "a":{
        "0":"foo",
        "1":"baz"
    },
    "b":{
        "0":"bar",
        "1":"qux"
    }
})r   zV[
    [
        "foo",
        "bar"
    ],
    [
        "baz",
        "qux"
    ]
])r  aa  {
    "schema":{
        "fields":[
            {
                "name":"index",
                "type":"integer"
            },
            {
                "name":"a",
                "type":"string"
            },
            {
                "name":"b",
                "type":"string"
            }
        ],
        "primaryKey":[
            "index"
        ],
        "pandas_version":"1.4.0"
    },
    "data":[
        {
            "index":0,
            "a":"foo",
            "b":"bar"
        },
        {
            "index":1,
            "a":"baz",
            "b":"qux"
        }
    ]
}c                 v    t          ddgddggddg          }|                    |d	          }||k    sJ d S )
Nr'   r%   r&   r  rJ   rK   r   r   )r   r  r   r  s        r   test_json_indent_all_orientsz0TestPandasContainer.test_json_indent_all_orients7  sT    n 7#sLLL6!44!!!!!!r   c                     t          j        t          d          5  t                                          d           d d d            d S # 1 swxY w Y   d S )Nzmust be a nonnegative integerr]   r  )r`   ra   rb   r   rQ   rX  s    r    test_json_negative_indent_raisesz4TestPandasContainer.test_json_negative_indent_raises  s    ]:-LMMM 	+ 	+KKr***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   #AAAc           	          d}t          |          }t          dt          j        dt          j        dt          j         dg          }t          j        ||           d S )Nz?["a", NaN, "NaN", Infinity, "Infinity", -Infinity, "-Infinity"]rJ   NaNInfinityz	-Infinity)r   r   r6   r   r   r   r   r  s       r   test_emca_262_nan_inf_supportz1TestPandasContainer.test_emca_262_nan_inf_support  sV    P4"&%bfWkJ
 
 	fh/////r   c                     t          j        ddiddig          }t          dddgi          }t          |          }t	          j        ||           d S )Ncol31900441201190696999Text)r  r  r   r   r   r   )r8   encoded_jsonr   r   s       r   test_frame_int_overflowz+TestPandasContainer.test_frame_int_overflow  s^    zE+A#BUFO"TUUe&<f%EFGG<((
fh/////r   zdataframe,expectedr  rX   rY   zU{"(0, 'x')":1,"(0, 'y')":"a","(1, 'x')":2,"(1, 'y')":"b","(2, 'x')":3,"(2, 'y')":"c"}c                 j    |                                 }|                    d          }||k    sJ d S rv  )stackrQ   )r8   	dataframer   rn  r   s        r   test_json_multiindexz(TestPandasContainer.test_json_multiindex  s=     ""w//!!!!!!r   c                 @   d\  }}t          g dg dd          }|                    d| d| |           d}	 |d
 |                    d          j                                        D             v rd S t          j        d           |dz  }|dk    s
J d            d)N)pandas-testr  r   )rn   r   r   r  zs3:///)r`  r$   Tc              3   $   K   | ]}|j         V  d S rD   )r  )r   r$  s     r   	<genexpr>z1TestPandasContainer.test_to_s3.<locals>.<genexpr>  s5             r   r  r   r   z,Timed out waiting for file to appear on moto)r   rQ   Bucketobjectsalltimesleep)r8   ra  rb  mock_bucket_nametarget_filerG   timeouts          r   
test_to_s3zTestPandasContainer.test_to_s3  s     )C%+YYYYYY7788


;+;;k;;T
RRR	O  #.#5#5m#D#D#L#P#P#R#R     JsOOOsNGQ;;; N;;;	Or   c                     t          |t                    r:t          j                            d          }|j                            |           t          |gg                                          }|dk    sJ d S )Nznot implementedr   z{"0":{"0":null}})	r   r   r`   r   r   r   r   r   rQ   )r8   nulls_fixturer   r   r   s        r   test_json_pandas_nullsz*TestPandasContainer.test_json_pandas_nulls  sy    mW-- 	*;$$,=$>>DL##D)))]O,--5577+++++++r   c                 t    t          dd          }t          g d          }t          j        ||           d S )Nz[true, true, false]rn  r  )TTF)r   r
   r   rp  rk  s      r   test_readjson_bool_seriesz-TestPandasContainer.test_readjson_bool_series  sB    0h???---..
vx00000r   c                     t          dt          j        dd          ddg                                          }|                                }d}||k    sJ d S )NTz
2017-01-20z
2017-01-23r'   r%   rN   a  {"(Timestamp('2017-01-20 00:00:00'), 'foo')":true,"(Timestamp('2017-01-20 00:00:00'), 'bar')":true,"(Timestamp('2017-01-21 00:00:00'), 'foo')":true,"(Timestamp('2017-01-21 00:00:00'), 'bar')":true,"(Timestamp('2017-01-22 00:00:00'), 'foo')":true,"(Timestamp('2017-01-22 00:00:00'), 'bar')":true,"(Timestamp('2017-01-23 00:00:00'), 'foo')":true,"(Timestamp('2017-01-23 00:00:00'), 'bar')":true})r   r1   r  r  rQ   r   s       r   test_to_json_multiindex_escapez2TestPandasContainer.test_to_json_multiindex_escape  sp    -l;;EN
 
 
 %''	 	
 B 	 !!!!!!r   c                      G d d          }t           |dddd          g          }t          j        |                                          ddddd	ik    sJ d S )
Nc                       e Zd ZddZd ZdS )GTestPandasContainer.test_to_json_series_of_objects.<locals>._TestObjectrP  Nc                 >    || _         || _        || _        || _        d S rD   rJ   rK   _crM   )r8   rJ   rK   r  rM   s        r   rV  zPTestPandasContainer.test_to_json_series_of_objects.<locals>._TestObject.__init__
  s"    r   c                     dS )Nr$   r   rX  s    r   r   zITestPandasContainer.test_to_json_series_of_objects.<locals>._TestObject.e  s    qr   rZ  )r[  r\  r]  rV  r   r   r   r   _TestObjectr  	  s7               r   r	  rW   rn   rj   r   r  0)rJ   rK   rM   )r
   r  r  rQ   )r8   r	  rn  s      r   test_to_json_series_of_objectsz2TestPandasContainer.test_to_json_series_of_objects  s    	 	 	 	 	 	 	 	 qA!q999:;;z&..**++1115M5M/NNNNNNNr   zdata,expectedy             @y              ?y      "@      )r   rW   rn   zW{"0":{"imag":8.0,"real":-6.0},"1":{"imag":1.0,"real":0.0},"2":{"imag":-5.0,"real":9.0}}yHz"Q?y@p=
ף"@yQ@(\ſz]{"0":{"imag":0.66,"real":-9.39},"1":{"imag":9.32,"real":3.95},"2":{"imag":-0.17,"real":4.03}}y             @y              y      @      y              $z{"0":{"0":{"imag":3.0,"real":-2.0},"1":{"imag":-3.0,"real":4.0}},"1":{"0":{"imag":0.0,"real":-1.0},"1":{"imag":-10.0,"real":0.0}}}yQѿ(\?yHzG(\ؿy=
ףp=?(\տy(\迚z{"0":{"0":{"imag":0.34,"real":-0.28},"1":{"imag":-0.34,"real":0.41}},"1":{"0":{"imag":-0.39,"real":-1.08},"1":{"imag":-1.35,"real":-0.78}}}c                 >    |                                 }||k    sJ d S rD   rx   r  s       r   test_complex_data_tojsonz,TestPandasContainer.test_complex_data_tojson  s)    F !!!!!!r   c                 n    d}t          dddgi          }|                    d          }||k    sJ d S )NzY{"columns":["col1"],"index":[0,1],"data":[[13342205958987758245],[12388075603347835679]]}col1l   :!c&HI l   v8$Z_
 )rg   rU   rO   r   )r8   r   rG   r   s       r   test_json_uint64z$TestPandasContainer.test_json_uint64=  sU    F 	 V&:<P%QRSSS7++!!!!!!r   )rU   r   r   r3   r   c                 B  	
 t          j        d          t          t          dt          j        dgd          t          g dd          t          dt          j        dgd	          t          g d
d	          g dg dg dg dd          }|dk    ret          t	          j        g dt          j                            }t          t	          j        ddt          gt          j                            }nHt                              g d                    }t                              g d                    }|                    |          }t          j        d|          5  t          |||          }d d d            n# 1 swxY w Y   t          t          dt          j        dgd          t          g dd          t          dt          j        dgd	          t          g d
d	          t          ddt          gd          t          g dd          ||d          
|dk    r(ddlm	 t          	
fd
j        D                       
|dk    r"t%          t'          dd                    
_        t)          j        |
           d S )NpyarrowrW   rj   Int64r-   r   rh   ri   Float64)rh   r   ri   )TFNr  r  r  )rJ   rK   rL   rM   r   r  ghpythonrJ   rK   rO   mode.string_storage)dtype_backendr   TFbooleanr   ArrowExtensionArrayc           	      ^    i | ])}|                      |         d                     *S )Tfrom_pandas)array)r   r  r  r   pas     r   
<dictcomp>zDTestPandasContainer.test_read_json_dtype_backend.<locals>.<dictcomp>w  sL        ,,RXXhsmQUX-V-VWW  r   r   rE  )r`   importorskipr   r
   r6   r   r   r   object_r   r   rQ   r1   option_contextr   pandas.arraysr  r   r4   r   r   r   )r8   string_storager  r   rG   string_arraystring_array_naoutr   r  r   r!  s            @@@r   test_read_json_dtype_backendz0TestPandasContainer.test_read_json_dtype_backendG  s'   
  ++QN':::IIIW555S"&#.i@@@OOO9===(((((($__%%%	 	
 
 X%%&rxrz'R'R'RSSL)"(Cb>*T*T*TUUOO ,BHH___,E,EFFL.rxx8H8H8H/I/IJJOjjj''4nEE 	P 	Ps-OOOF	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P QN':::IIIW555S"&#.i@@@OOO9===T5"-Y???///yAAA!$	 	
 
 I%%999999      '/   H X#E!QKK00H
fh/////s   0FFF)rU   r   r3   c                    t          j        d          }t          dt          j        dgd          }|                    |          }t          j        d|          5  t          |||d	          }d d d            n# 1 swxY w Y   t          dt          j        dgd          }|dk    r3d
dl	m
}	 t           |	|                    |d                              }t          j        ||           d S )Nr  rW   rj   r  r-   rO   r  rn  )r  r   ro  r   r  Tr  )r`   r#  r
   r6   r   rQ   r1   r%  r   r&  r  r   r   rp  )
r8   r'  r  r   r!  rA   r*  r   r   r  s
             r   test_read_json_nullable_seriesz2TestPandasContainer.test_read_json_nullable_series  sC     ++a^7333kkk((4nEE 	 	=X  F	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 1bfa.888I%%99999911"((8QU(2V2VWWXXH
vx00000s   A>>BBc                     d}t          j        t          |          5  t          dd           d d d            d S # 1 swxY w Y   d S )NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.r]   r   numpy)r  )r`   ra   rb   r   )r8   rd   s     r   test_invalid_dtype_backendz.TestPandasContainer.test_invalid_dtype_backend  s    % 	 ]:S111 	5 	5fG4444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s   =AA)r[  r\  r]  r`   fixturer<   rB   rH   rT   r   parametrizerZ   re   r   rt   rv   rz   r   r   r6   r,   r   r  intr   r   r   r   r   r   AssertionErrorr   r  r   r   r   r   NINFr   skipifr   r   r   r   r   r  r'  rL  rh  rl  rt  rx  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  r  r  r  networkr   r1   DatetimeTZDtyper  r  r  r  r  r   r  r  r+  r-  r3  r7  rC  rI  rP  rR  r  rV  rX  r^  
single_cpur  skip_if_not_us_localerc  ri  rl  sysmaxsizerr  rt  rv  rx  r1  r  r  r  r  r  r  r  r   rename_axisr  r  r  r  r  r  r  r  paramr  r  r  r  r  r  r  r  r  r  r  r  r  r  r+  r-  r0  r   r   r   r!   r!   (   s       ^	 	 ^	 ^  ^ ^  ^
> 
> 
> [X'E'E'EFF> > GF> [X';<<& & =<& [X':;;[3Z#s$3Z#s$X3x i
##S)IIj,A,A3+GH		
 0 0  <;0( [X'F'F'FGG& & HG&N N N [Wuen55[^dE];;> > <; 65> [Wubh&788[^dE];;> > <; 98> [WtRZd&CDD[^dE];;> > <; ED>< [^dE];;> > <;>( [^dE];;0 0 <;0 [^dE];;> > <;>  [^dE];;> > <;>& [J    [fu~.fu~.fu~.	
 * * 	 * [D; V 
 
/	
! !D5 5E! !D5 [WtUm44[^dE];;+ + <; 54+& [WtUm440 0 540 [URVRW$566[WtUm44+ + 54 76+ [D)OPP[&	
 	
 	

 
B B
 
 QPB
) ) )	" 	" 	"
 
 
+ + +<4 4 4<^
 ^
 ^
@$
 $
 $
L" " "C C CP P P
1 
1 
1 [Wudm44
1 
1 54
1	1 	1 	1
1 
1 
1 [Wrz3&788	1 	1 98	1( ( (B B B
1 1 1 [66<.0@AAABFFL>**+	
 1 1 1* * *
* * *
* * *     
# 
# 
#+ + +0 []We,<==[[4-88[Z(-9JI)VWW" " XW 98 >="( [	
 	
 	
 	0 	0 	0 [	
 	
 	
	 	0 0	 	0; ; ; [	
 	
 	
	 	
1 
1	 	
1; ; ; [V%<%<%<==* * >=*$  ,	. 	. 	.V V V [RZN   [-2-7778*+-2-7778	
 , , 	  ,
R R R$- - -	H 	H 	H [[4-88[]UG,<==[_r|Y.GHH" " IH >= 98"(H H HT T T*L L L  + + +2 2 2 ( ( (  [I,--I+===I011	
 0 0 00 0 0 [BM0!<<<BM/|LLLBM4a@@@	
 @ @ @*@ @ @"0 0 0 [0 0  04 4 40 0 0" [Xa3;?9K'LMM
  
  NM
  [Xe'<==	 	 >=	0 0 0A A A* [EiXX  YXB) ) ) [$Ac
S#Jc
T4LQ  [Y#sc3Z$(NOO0 0 PO 00 0 0 [X'O'O'OPP0 0 QP0: [Wt3S-A-A&BCC; ; DC;A A A [ 	Aq6Aq6*S#J??? #J!Q!Q0@AA
 	Aq6Aq6*S#J???KKERR #J!Q!Q0@AA
 	VaV$sCj#scSVZ@X   !#J!Q!Q0@AA	 VIIIC(((3			*J*JKyyys+++77>>iii00
 1vCc
S#J/GHHHq!f--)	
 8" "9 8" [YAA'#s<<<YAA'#s<<<HHOO	VaV$sCj#scSVZ@X   VIIIC(((VIIIC(((44U;;VQFc3Z#s,DEEE	
 " " " [X'P'P'PQQ3 3 RQ3 [X'9::[WtUm440 0 54 ;:01 1 1 [	
 	
 	
 0 0 0 [### & &	 & [/1FG " " " [<>FLk''I (     FLk''I (    	
 ," "- ," [Xyyy11" " 21"& [q	
 q	
 q	
t tj" "kt tj"+ + +0 0 00 0 0 [ 				@@AAD	
	 	" "	 	"
 [O O O, , ,1 1 1" " "(O O O [ 7v&99::0 =\lKKLL2 	GW-/ABCC2 	#]3lM5RS 4	)	
   B" "C   B"
" " " [DDD 60 60 60p [X'D'D'DEE1 1 FE1(5 5 5 5 5r   r!   c                      t          t          d                    } |                                 }t          j        t
          d          5  t          |d           d d d            d S # 1 swxY w Y   d S )NrW   zThe engine type foor]   r'   )enginer
   r   rQ   r`   ra   rb   r   rA   r*  s     r   test_invalid_enginerC    s    
q

C
++--C	z)>	?	?	? % %#e$$$$% % % % % % % % % % % % % % % % % %s   A++A/2A/c                      t          t          d                    } |                                 }t          j        t
          d          5  t          |dd           d d d            d S # 1 swxY w Y   d S )NrW   z&currently pyarrow engine only supportsr]   r  F)r@  r\  rA  rB  s     r   test_pyarrow_engine_lines_falserE    s    
q

C
++--C	z)Q	R	R	R 6 6#iu55556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6s   A,,A03A0)%r  r   decimalr   r  r   r  r  r;  r  r/  r6   r`   pandas.compatr   pandas.util._test_decoratorsutil_test_decoratorsr  pandasr1   r   r   r	   r
   r   r   pandas._testing_testingr   pandas.core.arraysr   r   r   r!   rC  rE  r   r   r   <module>rO     s                       				 



             ) ) ) ) ) ) ) ) )                                , , ,u5 u5 u5 u5 u5 u5 u5 u5p;% % %6 6 6 6 6r   