
    PiQ                    R   d dl Z d dl mZ d dlmZ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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mZmZm Z  d dl!m"Z# d dl$m%Z% d	 Z&d
 Z' G d d          Z(d Z)d Z*d Z+ ej,        d          d             Z-d Z.d Z/dS )    N)	timedelta)BytesIOStringIO)using_string_dtype)IS64)Pandas4Warning)	NA	DataFrameDatetimeIndexIndex
RangeIndexSeries	Timestamp
date_range	read_json)ujson_dumpsc                  0   d} d}t          j        t          |          5  t          | d           d d d            n# 1 swxY w Y   t          j        t          |          5  t          dd           d d d            n# 1 swxY w Y   t          j        t          |          5  t          dd           d d d            n# 1 swxY w Y   t          j        t          |          5  t          dd           d d d            d S # 1 swxY w Y   d S )	Nz[{"a": 1, "b": 2}
        {"a": 3, "b": 4}
        {"a": 5, "b": 6}
        {"a": 7, "b": 8}z.* does not existmatchFlines!{"a": 1, "b": 2}
{"b":2, "a" :1}
T4{"a\\":"foo\\","b":"bar"}
{"a\\":"foo\"","b":"bar"}
pytestraisesFileNotFoundErrorr   )jsonlmsgs     t/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/io/json/test_pandas.pytest_literal_json_raisesr!   &   sN   E
 C	(	4	4	4 & &%u%%%%& & & & & & & & & & & & & & & 
(	4	4	4 E E7tDDDDE E E E E E E E E E E E E E E 
(	4	4	4 
 
K	
 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
(	4	4	4 F F7uEEEEF F F F F F F F F F F F F F F F F FsE   >AA$BB	B(CC
C
,DDDc                     |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      r    assert_json_roundtrip_equalr0   ?   sc    &&&''T'22 X%5!6!677&(+++++    c                   ^!   e Z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          dg ed                              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$ ej        d* ej        d*          +          g          ej        	                    d d!dg          d,                         Zej        	                    d d!dg          d-             Zej                             d.e!/          ej        	                    dd0d0gd1d2ggd0d3gd1d1ggd0d0gd1d1ggg          d4                         Z"ej        	                    d5d6d7d8#                    d9g          d
fd:d;g          d<             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* dAB          ej        	                    dCg dD          dE                         Z+dF Z,dG Z-dH Z.dI Z/dJ Z0dK Z1dL Z2dM Z3dN Z4dO Z5dP Z6dQ Z7ej        	                    ddd$g          dR             Z8dS Z9ej        	                    d)d$ ej        d* ej        d*          +          g          dT             Z:ej        	                    dej        eg          dU             Z;dV Z<dW Z=dX Z>ej        	                    d)d$ ej        d* ej        d*          +          g          ej        	                    dYd! e?dZgd[\          fd e?d]g          fg          d^                         Z@d_ ZAd` ZBda ZCdb ZDdc ZEdd ZFej        	                    dedfdgg          ej        	                    dhd!dg          ej        	                    dieGjH        eGjG        eg          dj                                     ZIej        	                    dkg dl          dm             ZJej        	                    dng do          dp             ZKdq ZLej        	                    dng do          dr             ZMds ZNdt ZOej        	                    du ePg dv ejQ        d          dw          d$f ePdxg dyi          d$f ePg dv eRjS         ejQ        d          dz{          dw          eTf ePdx eRjU        g d|          i          eTfg          d}             ZVej        	                    d)d$ ej        d* ej        d*          +          g          ej        	                    d~g d          d                         ZWd ZXd ZYd ZZej        j[        ej        j\        d                         Z]d Z^d Z_d Z`ej        	                    dhd!dg          ej        	                    dedgdfg          ej        	                    deRja        ebg          d                                     Zcej        	                    dhd!dg          ej        	                    deRja        ebg          d                         Zdd Zed Zfd Zgd Zhd Zid Zjd Zkej        	                    d ed           edd           ed          g          d             Zld Zmej        	                    d enddd           endddd           enddd          g          d             Zod Zpd Zqej        j\        ej        j[        ejr        d                                     Zsd Ztd Zuej        	                    devjw        dz   evjw        dz    g          d             Zxej        	                    dddg          d             Zyd Zzd Z{ej                             de|/          ej        	                    dg dg dg dg dg dg dg dej}        dddgdej}        dddgg	          ej        	                    dde~g          d                                     Zd Zej        	                    dd$ddgddgddgddgddgg          ej        	                    dddgddgddgg          dń                         ZdƄ Zej        	                    dg dǢ          dȄ             ZdɄ Zej        	                    dd!eedʜg          d˄             Zej        	                    dg d̢          d̈́             Zd΄ Zej        	                    d ePddgddggddgҦ          ddgddgddggdӜf ePddgddggddgҦ                              dԦ          ddgddgddggdӜf ePd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֢dxצ          dxg d֢d؜f e?g d֢dxצ                              dԦ          dxg d֢d؜f e?ddgdxddgddgg٦          dxddgd؜fg          dڄ             Zej        	                    d ePddgddggddgҦ           ePddgddggddgҦ                              dԦ           ePddgddggddgddgddggզ           e?g d֢dxצ           e?g d֢dxצ                              dԦ           e?ddgdxddgddgg٦          g          dۄ             Zej        	                    dddg          d܄             Zej        	                    dddg          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        	                    dddg          d             Zej        	                    ddd ej        d
dej                             dB          +           ej        ddej                             dB          +          g          d             Zej        	                    dg d          d             Zej        )                     e            dB          ej        	                    dg d          d                         Zd Zd Zd Zd Zej        j\        ej        j[        d                         Zd Zd  Zd Zd Zej        	                    d e?dddd          df e?d	d
dd          df ePddgddgg          df ePddgddgg          dfg          d             Zd Zd Z ej        d*          ej                            d          d                         Zej        	                    dg d          d             Zd Zd$S (  TestPandasContainerc                     t          dt          j        dt          j                  z  t	          ddd          d          }|j                            d           |_        |S )	Ng?
   dtype
2020-01-01nsperiodsunitts)indexname)r   nparangefloat64r   r>   
_with_freq)selfsers     r    datetime_seriesz#TestPandasContainer.datetime_seriesH   sd     ")Bbj1111\2DAAA
 
 

 I((..	
r1   c           
         t          t          j                            d                              d          t          t          d                    t          dddd          	          }|j        	                    d           |_        |S )
N   )      ABCD
2000-01-01rI   Br9   r;   freqr<   r*   r>   )
r
   r@   randomdefault_rngstandard_normalr   listr   r>   rC   rD   dfs     r    datetime_framez"TestPandasContainer.datetime_frameT   s|     I!!!$$44W==$v,,''\2CdKKK
 
 

 8&&t,,	r1   c                     t          ddgddggddgddg	          }t          |                    |
                    }t          ||
          }|                                }t          |||           d S )Nabcdz	index " 1z	index / 2za \ bzy / zr>   r*   r/   r
   r   to_jsonr   copyr0   rD   r/   rV   datar-   r.   s         r     test_frame_double_encoded_labelsz4TestPandasContainer.test_frame_double_encoded_labels`   s    3Z#s$,w'
 
 
 

&
11224///7799#FHf=====r1   r/   )splitr#   r$   c                     t          ddgddggddgddg          }t          |                    |	                    }t          ||	          }|                                }t          |||           d S )
NrY   rZ   r[   r\      xyr]   r^   r_   rb   s         r    test_frame_non_unique_indexz/TestPandasContainer.test_frame_non_unique_indexl   s}    c
S#J/1vSzRRR

&
11224///7799#FHf=====r1   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 )NrY   rZ   r[   r\   rg   rh   ri   r]   z+DataFrame index must be unique for orient=''r   r^   r
   r   r   
ValueErrorr`   rD   r/   rV   r   s       r    "test_frame_non_unique_index_raisesz6TestPandasContainer.test_frame_non_unique_index_raisesu   s    c
S#J/1vSzRRREFEEE]:S111 	& 	&JJfJ%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&   A""A&)A&re   r$   rc   rY   rZ   r[   r\         ?      @g      @g      @rg      20130101s20130102c                    t          |ddgddg          }d }d}|j        d d df         j        dk    rt          }t	          j        ||          5  t          t          |                    |	                    |dg
          }d d d            n# 1 swxY w Y   |dk    rt          |          }|j        d d df         j        dk    r\|j        d d df         j	        }	|
                    d|	                    d                              t          j                             nE|dk    r?|}ddg|_        |d         j        j        dk    r|d                             d          |d<   t	          j        ||           d S )Nrg   rH   rh   r]   |The default 'epoch' date format is deprecated and will be removed in a future version, please use 'iso' date format instead.r   zdatetime64[s]r   r^   )r/   convert_datesr$   msre   zx.1MM8[ms])r
   ilocr7   r   r+   assert_produces_warningr   r   r`   _valuesisetitemas_unitastyper@   int64r*   kindr,   )
rD   r/   rc   requestrV   expected_warningr   r-   r.   dtas
             r    test_frame_non_unique_columnsz1TestPandasContainer.test_frame_non_unique_columns|   s    tAq6C:>>>I 	 7111a4=/11-'(8DDD 	 	62233FSVRW  F	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 X H}QQQT"(O;; mAAAqD)1!!!S[[%6%6%=%=bh%G%GHHHwH #U|H}"'3.. ( 4 4X > >
fh/////s   5BBB)r>   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 )NrY   rZ   r[   r\   rg   rH   rh   r]   z-DataFrame columns must be unique for orient='rl   r   r^   rm   ro   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%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&rq   c                 b    |                                 |                     d          k    sJ d S )Nr*   r^   r`   )rD   float_frames     r    test_frame_default_orientz-TestPandasContainer.test_frame_default_orient   s6    ""$$(;(;9(;(M(MMMMMMMr1   r7   Fconvert_axesTc                     t          |                    |                    }t          ||||          }|}t          |||           d S Nr^   r/   r   r7   r   r`   r   r0   )rD   r/   r   r7   r   rc   r-   r.   s           r    test_roundtrip_simplez)TestPandasContainer.test_roundtrip_simple   sV     ++6+::;;4\QVWWW#FHf=====r1   c                     t          |                    |                    }t          ||||          }|}t          |||           d S r   r   )rD   r/   r   r7   	int_framerc   r-   r.   s           r    test_roundtrip_intframez+TestPandasContainer.test_roundtrip_intframe   sV     	)))88994\QVWWW#FHf=====r1   NU3c                    t          t          j        d          d t          d          D             d t          d          D             |          }t	          |                    |                    }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)   rJ   c                 ,    g | ]}t          |          S  str.0is     r    
<listcomp>z?TestPandasContainer.test_roundtrip_str_axes.<locals>.<listcomp>   s    ...SVV...r1   rJ   c                 ,    g | ]}t          |          S r   r   r   s     r    r   z?TestPandasContainer.test_roundtrip_str_axes.<locals>.<listcomp>   s    ...a3q66...r1   r   )r*   r>   r7   r^   r   r]   r#   re   )r
   r@   zerosr(   r   r`   r   ra   r   r   r*   r>   r0   )rD   r/   r   r7   rV   rc   r-   r.   s           r    test_roundtrip_str_axesz+TestPandasContainer.test_roundtrip_str_axes   sr    HX..U1XX.....5::...	
 
 
 

&
1122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=====r1   c                    |dv r7|                     t          j                            d| d                     d t	          t          d                    D             }dgdz  d	gdz  z   d
gdz  z   dgdz  z   }t          t          |                    |d<   t          j        dd          |d<   t          |t          j        |d                    }t          |                    |                    }t          |||          }|                                }	|	j                            |st$          nd          |	_        d |	j        _        t)          ||	|           d S )Nr]   z.Can't have duplicate index values for orient 'z')reasonc                 z    i | ]8\  }}|t           j                            |                              d           9S )rI   )r@   rQ   rR   rS   )r   r   r[   s      r    
<dictcomp>zBTestPandasContainer.test_roundtrip_categorical.<locals>.<dictcomp>   sL     
 
 
1 ry$$Q''77;;
 
 
r1   rK   bah   barbazfoo   ErI   r   r6   sortr?   r>   r^   r/   r   r   )applymarkerr   markxfail	enumeraterT   reversedr@   rA   r
   pdCategoricalIndexr   r`   r   ra   r>   r   r   r?   r0   )
rD   r   r/   r   using_infer_stringrc   catcategorical_framer-   r.   s
             r    test_roundtrip_categoricalz.TestPandasContainer.test_roundtrip_categorical   s   
 )))!!VFVVV "    
 
!$v,,//
 
 
 gkUGaK'5'A+5"D#''S	y7333V%d"2EcPS2T2T2TUUU)111@@AA4\JJJ$))++!..)4CCu
 
 ##FHf=====r1   c                 r   t                      }t          |                    |                    }t          |||          }|dk    r1t	          g |rt
          nt                    }t          ||          }n'|dv rt                      }n|                                }t          j	        ||           d S )Nr^   r   re   r6   r]   )
r
   r   r`   r   r   floatobjectra   r+   r,   )rD   r/   r   empty_framerc   r-   idxr.   s           r    test_roundtrip_emptyz(TestPandasContainer.test_roundtrip_empty  s    kk++6+::;;4\JJJWL#D55fFFFC sC888HH+++ {{HH"''))H
fh/////r1   dtype_backendpyarrow)marksc                    |                                 }|-t          |j                                      |          |_        t	          |                    |                    }t          |||          }|sO|j                            t          j	                  dz  }|dk    r|
                    t                    }||_        n|j                            d          |_        t          |||           d S )Nr   r^   r   i@B re   r{   )ra   r   r>   convert_dtypesr   r`   r   viewr@   r   r   r   r   r0   )	rD   r/   r   r   rW   r.   rc   r-   r   s	            r    test_roundtrip_timestampz,TestPandasContainer.test_roundtrip_timestamp  s     "&&(($#).*>#?#?#N#N+ $O $ $N  ..f.==>>4\JJJ 	:.%%bh//7:C  jjoo HNN%^33D99HN#FHf=====r1   c                    t          g d          }g dg dg dg dd}t          ||          }t          |                    |                    }t	          |||	          }|                                } |j        di |                    d
                              t          j
                  }t          |||           d S )N)rY   rZ   r[   r\   e)              ?       @      @      @)r   r   r   r   r   )foo1foo2foo3foo4foo5)TFTFTArM   CDrc   r>   r^   r   numberr   )r   r
   r   r`   r   ra   assignselect_dtypesr   r@   r   r0   )	rD   r/   r   r>   r$   rV   rc   r-   r.   s	            r    test_roundtrip_mixedz(TestPandasContainer.test_roundtrip_mixed.  s    ///00******999111	
 
 F%000

&
11224\JJJ7799"8?WWX%;%;H%E%E%L%LRX%V%VWW#FHf=====r1   z9#50456 Column multiindex is stored and loaded differently)r   r   2022JANFEB2023c                     t          ddgddggt          j                            |                    }t	          |                    d                    }t          |d          }t          j        ||           d S )Nrg   rH   rt   rJ   r*   re   r^   )	r
   r   
MultiIndexfrom_arraysr   r`   r   r+   r,   )rD   r*   rV   rc   r-   s        r    test_roundtrip_multiindexz-TestPandasContainer.test_roundtrip_multiindexB  s     VaVM--g66
 
 
 

'
22334000
fb)))))r1   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 columnsre   )zN{"badkey":["A","B"],"index":["2","3"],"data":[[1.0,"1"],[2.0,"2"],[null,"3"]]}zunexpected key\(s\): badkeyre   c                     t          j        t          |          5  t          t	          |          |           d d d            d S # 1 swxY w Y   d S )Nr   r^   )r   r   rn   r   r   )rD   rc   r   r/   s       r    $test_frame_from_json_bad_data_raisesz8TestPandasContainer.test_frame_from_json_bad_data_raisesW  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                    t          ddgg dg          }t          t          |                    |                    |||          }t	          j        |j        d                   sJ t          ddgg d	g          }t          t          |                    |                    |||          }t	          j        |j        d                   sJ d S )
Nrg   rH   rJ   r      r^   r   r   rH   12)456)r
   r   r   r`   r@   isnanr~   )rD   r/   r   r7   num_dfr-   obj_dfs          r    !test_frame_from_json_missing_dataz5TestPandasContainer.test_frame_from_json_missing_data}  s     QFIII.//V^^6^2233%	
 
 
 xD)*****S#J899V^^6^2233%	
 
 
 xD)*******r1   c                     t          t          d          |          }t          t          j        g|st
          nd           }t          j        ||           d S )Nz[null]r6   )r   r   r
   r@   nanr   r+   r,   )rD   r7   r-   r.   s       r    (test_frame_read_json_dtype_missing_valuez<TestPandasContainer.test_frame_read_json_dtype_missing_value  sV     8H--U;;;bfX5-JVVdKKK
fh/////r1   infc                     t          ddgg dg          }||j        d<   t          |                                          }t	          ||          }t          j        |j        d                   sJ d S )Nrg   rH   r   r   r6   )r
   locr   r`   r   r@   r   r~   )rD   r  r7   rV   rc   r-   s         r    test_frame_infinityz'TestPandasContainer.test_frame_infinity  ss    
 A			*++t

%%4u---xD)*******r1   z$not compliant on 32-bit, xref #15865r   zvalue,precision,expected_val))gffffff?rg   r   )g333333?rg   r   )g333333rg   g       )gףp=
?rH   r   )gCl?rt   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
   r`   )rD   value	precisionexpected_valrV   encodeds         r    "test_frame_to_json_float_precisionz6TestPandasContainer.test_frame_to_json_float_precision  sO     E*+,,**i*88A|AAAAAAAAAr1   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rg   rH   rt   z+Invalid value 'garbage' for option 'orient'r   garbager^   rm   )rD   rV   r   s      r    test_frame_to_json_exceptz-TestPandasContainer.test_frame_to_json_except  s    yyy!!;]:S111 	) 	)JJiJ(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)   AAAc                     t          ddg          }|j        rJ t          |                                          }t	          |t          |j                            }t          j        ||d           d S )Njimjoer   r6   Fcheck_index_type)	r
   _is_mixed_typer   r`   r   dictdtypesr+   r,   )rD   rV   rc   r-   s       r    test_frame_emptyz$TestPandasContainer.test_frame_empty  sr    u~...$$$$

%%4tBI777
fb5AAAAAAr1   c                 l    t          dg ig           }|                    d          }d}||k    sJ d S )Ntestr   r*   r^   z{"test":{}}r	  rD   rV   r-   r.   s       r    test_frame_empty_to_jsonz,TestPandasContainer.test_frame_empty_to_json  sG    |2...9-- !!!!!!r1   c                 *   t          ddg          }|d                             d          |d<   |j        sJ |                                }t	          j        t          t          |          t          |j	                            |d           d S )Nr  r  r   i8r6   Fr  )
r
   r   r  r`   r+   r,   r   r   r  r  )rD   rV   rc   s      r    test_frame_empty_mixedtypez.TestPandasContainer.test_frame_empty_mixedtype  s    u~...uI$$T**5	    zz||
htnnDOO<<<"	
 	
 	
 	
 	
 	
r1   c                    g dg dg dg dg}t          |t          d          g d          }|j        sJ |                                }dD ]L}t	          |                    |	                    }t          ||d
          }t          j        ||           Mt          t          |                    |_        t	          |                    d	                    }t          |dd
          }t          j        ||           t          |j        d                   |_        t	          |                    d	                    }t          |dd
          }t          j        ||           d S )N)r5   rg   r   g?g{Gz?)   rH   r   g?g{Gz?)rI   rt   r   g333333?gQ?)(   rJ   quxg?g{Gz?abcd)1st2nd3rd4th5thr]   re   r>   r*   r^   Fr   r#   rg   r$   )r
   rT   r  ra   r   r`   r   r+   r,   r   r)   r>   shaper*   )rD   valsrV   rightr/   inplefts          r    test_frame_mixedtype_orientz/TestPandasContainer.test_frame_mixedtype_orient  s}   %%%%%%%%%%%%	
 V.Q.Q.Q
 
 
     		3 	/ 	/F2::V:4455CSeDDDD!$.... R))rzzz3344YUCCC
dE***"28A;//rzzz2233XEBBB
dE*****r1   c                    t          ddd          }t          t          j        |          d           }t	          g dg dg dg d	g d
gg d|          }t          d                              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          |          }|                                }|d         j                            d          |d<   |d         j                            d          |d<   |j                            d          |_        t'          j        ||           t          j                            |d          }t          |          }	|                    dgd          }
|
d         j                            d          |
d<   |
j                            d          |
_        t'          j        |	|
d           d S )Nz
2000-01-03z
2000-01-07r9   r<   rO   )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   rP   z19920106 18:21:32.12dateru   rt   modifiedrg   iojsonrc   ztsframe_v012.jsonztsframe_iso_v012.json)axisusFcheck_column_type)r   r   r@   asarrayr
   r   r   r~   r*   get_locr   NaTospathjoinr   ra   dtr>   r+   r,   r&   )rD   datapathdtirV   dirpathv12_jsonr-   r.   v12_iso_json
result_isoexpected_isos              r    test_v12_compatz#TestPandasContainer.test_v12_compat  s=   |$???BJsOO$777AAACCC???BBBAAA )((

 

 

 566>>tDD6
1::1F1F2:%%f---.F:57V2:%%j1112(4007<<)<==8$$7799#F+.66t<<'
36>>tDD!//55
fh///w||G-DEE|,,
ww
|!w44+F36>>tDDV)/77==
j,%PPPPPPr1   c           	         t          dddd          }t          t          |          d           }t          g dg dg d	g d
g dg dd|          }|j                            |st          j        nd          |_        t          |	                    d                    }t          |d          }|j                            d          |_        t          j        ||dddd           d S )N20000101r5   hr9   rN   r8  )
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   r   re   r^   r{   T)r  r@  	by_blockscheck_exact)r   r   rT   r
   r*   r   r@   str_r   r`   r   r>   r   r+   r,   )rD   r   r>   df_mixedrc   df_roundtrips         r    test_blocks_compat_GH9037z-TestPandasContainer.test_blocks_compat_GH9037  s`   :r$GGGd5kk555            {I IT WL
 L
 L
^ $+22-8BGG5
 
 (((8899 g666!//55
!"	
 	
 	
 	
 	
 	
r1   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 N)hexedbytesfromhexbinary)rD   ry  s     r    __init__zOTestPandasContainer.test_frame_nonprintable_bytes.<locals>.BinaryThing.__init__  s     "
#mmE22r1   c                     | j         S rx  )ry  rD   s    r    __str__zNTestPandasContainer.test_frame_nonprintable_bytes.<locals>.BinaryThing.__str__  s
    z!r1   rv  N)__name__
__module____qualname__r}  r   r  r   r1   r    BinaryThingru    sC        3 3 3 3" " " " " " "r1   r  574b4454ba8c5eb4f98a8f45r   z{"A":{"0":""}}z6Unsupported UTF-8 sequence length when encoding stringr   rg   r   rM   rM   r   default_handlerz"},"B":{"0":1}})r
   ry  r`   r   r   OverflowErrorr   )
rD   r  ry  binthingdf_printabledf_nonprintabler   rp  r-   r.   s
             r    test_frame_nonprintable_bytesz1TestPandasContainer.test_frame_nonprintable_bytes  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 rg   r   i9  {"z":{"0":1},"foo":{"0":1337}}r	  rD   r-   r.   s      r    test_label_overflowz'TestPandasContainer.test_label_overflow  sW    EFNQC?@@HHJJIIII!!!!!!r1   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          t          |                    d	                    d	d
                     t          t          |                    d                    dd
          }t          j	        |j
        |j
                   d S )NrY   rZ   rg   r   z.Series index must be unique for orient='index'r   r>   r^   re   series)r/   typr#   )r   r   r   rn   r`   r+   assert_series_equalr   r   assert_equalr$   )rD   rv   r   unserializeds       r    test_series_non_unique_indexz0TestPandasContainer.test_series_non_unique_index  s:   C:aV,,,>]:S111 	& 	&IIWI%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	'2233G  	
 	
 	
 !QYYiY0011)
 
 
 	,"566666s   AAAc                 b    |                                 |                     d          k    sJ d S )Nr>   r^   r   )rD   string_seriess     r    test_series_default_orientz.TestPandasContainer.test_series_default_orient  s6    $$&&-*?*?w*?*O*OOOOOOOr1   c                 6   t          |                    |                    }t          |d|          }|}|r#|dv r|j                            d          |_        |dv r|                    d          }|d	k    rd |_        t          j        ||           d S )
Nr^   r  r  r/   r/  r   r$   r#   Tr%   re   )	r   r`   r   r>   r   r'   r?   r+   r  )rD   r/   r  r   rc   r-   r.   s          r    test_series_roundtrip_simplez0TestPandasContainer.test_series_roundtrip_simple  s    --V-<<==4Xf===  	:&,I"I"I%^22599HN***+++66HW HM
vx00000r1   c                 4   t          |                    |                    }t          |d||          }|}|dv r|                    d          }|dk    rd |_        t                      r|                    d          }t          j        ||           d S )	Nr^   r  )r  r/   r7   r  Tr%   re   r   )	r   r`   r   r'   r?   r   r   r+   r  )rD   r/   r7   object_seriesrc   r-   r.   s          r    test_series_roundtrip_objectz0TestPandasContainer.test_series_roundtrip_object  s    --V-<<==4XfEJJJ ***+++66HW HM 	.u--H
vx00000r1   c                 X   t          g g t          j                  }t          |                    |                    }t          |d|          }|                    d          }|dv r)|j                            t          j                  |_        t          j
        ||           d S )Nr>   r7   r^   r  r  Tr%   re   )r   r@   rB   r   r`   r   r'   r>   r   r+   r  )rD   r/   empty_seriesrc   r-   r.   s         r    test_series_roundtrip_emptyz/TestPandasContainer.test_series_roundtrip_empty  s    b"*===,,F,;;<<4Xf===+++66g%^222:>>HN
vx00000r1   c                    |                                 }|-t          |j                                      |          |_        t	          |                    |                    }t          |d|          }|dv r|                    d          }n|j                            d          |_        |d	k    rd |_	        t          j        ||           d S )
Nr   r^   r  r  r  Tr%   r{   re   )ra   r   r>   r   r   r`   r   r'   r   r?   r+   r  )rD   r   r/   rF   r.   rc   r-   s          r     test_series_roundtrip_timeseriesz4TestPandasContainer.test_series_roundtrip_timeseries  s     #''))$$*?+@$A$A$P$P+ %Q % %O! //v/>>??4Xf===***+++66HH%^33D99HNW HM
vx00000r1   c                 6   t          t          d          g d          }t          |                    |                    }t	          |d|          }|                                }|dv r|                    d	          }t          j        ||           d S )
Nr   rY   rZ   r[   r\   r   fr   r^   r  r  r  Tr%   )	r   r(   r   r`   r   ra   r'   r+   r  )rD   r/   r7   rv   rc   r-   r.   s          r    test_series_roundtrip_numericz1TestPandasContainer.test_series_roundtrip_numeric   s    588#A#A#ABBB			00114Xf===6688***+++66H
vx00000r1   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   r   rn   r`   )rD   rv   r   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          t          |                                          dd          }t	          j        ||d           d S )N=
ףp=@r  r  r  T)r  precise_floatFr  )r   r   r   r`   r+   r  rD   rv   r-   s      r    #test_series_from_json_precise_floatz7TestPandasContainer.test_series_from_json_precise_float  sX    %%%&&8AIIKK00hdSSS
vq5AAAAAAr1   c                     t          g d          }t          t          |                                          dt          j                  }t          dgdz            }t          j        ||           d S )Nr  r  r  r7   rJ   rt   )r   r   r   r`   r@   r   r+   r  )rD   rv   r-   r.   s       r    test_series_with_dtypez*TestPandasContainer.test_series_with_dtype  sf    %%%&&8AIIKK00hbhOOO1#'??
vx00000r1   zdtype,expectedrL   datetime64[ms]r6   l    ,Uqc                 T   t          dgd          }||                    |          }d}t          j        t          |          5  t          |                                          }d d d            n# 1 swxY w Y   t          |d|          }t          j        ||           d S )	NrL   datetime64[ns]r6   r   ry   r   r  r  )	r   r   r+   r   r   r   r`   r   r  )rD   r7   r.   r   rv   r   rc   r-   s           r    test_series_with_dtype_datetimez3TestPandasContainer.test_series_with_dtype_datetime  s     L>)9:::$  } ==AI 	 'cBBB 	) 	)AIIKK((D	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)4XU;;;
vx00000s   "A66A:=A:c                     t          g dg dg          }t          t          |                                          d          }t	          j        ||           d S )Nr  T)r  r
   r   r   r`   r+   r,   rD   rV   r-   s      r    "test_frame_from_json_precise_floatz6TestPandasContainer.test_frame_from_json_precise_float5  s]    ***,>,>,>?@@8BJJLL11FFF
fb)))))r1   c                     t          t          d          g dd          }t          t          |                                          d          }t          j        ||           d S )Nr   r  r   r  r  r  )r   r(   r   r   r`   r+   r  r  s      r    test_typzTestPandasContainer.test_typ:  s^    588#A#A#AQQQ8AIIKK00h???
vq)))))r1   c                 p   t          g dg dg          }t          t          |                                                    }t	          j        ||           t          g dg ddg d          }t          t          |                                                    }t	          j        ||           d S )Nr  r   rY   rZ   )r   rM   r   r   r  r  s      r    test_reconstruction_indexz-TestPandasContainer.test_reconstruction_index?  s    			999-..8BJJLL1122
fb)))YYYYYY77OOO8BJJLL1122
fb)))))r1   c                 ^    |||fD ]&}|                     |           t          |           'd S rx  )r`   r   )rD   r   r   rW   	temp_filerV   s         r    	test_pathzTestPandasContainer.test_pathH  sE    	>: 	! 	!BJJy!!!i    	! 	!r1   c                     t          |                                          }t          |          }|                                }|j                            d          |_        t          j        ||           t          |                                          }t          |d          }|                                }|j                            d          |_        t          j        ||d           |j	        J d S )Nr{   r  r  F)check_names)
r   r`   r   ra   r>   r   r+   r,   r  r?   )rD   rF   rW   r<  r-   r.   s         r    test_axis_datesz#TestPandasContainer.test_axis_datesM  s    ..00114!&&((!//55
fh/// //11224X..."''))!//55
vxUCCCC{"""""r1   c                 r   |}t          d                              d          |d<   d}t          j        t          |          5  t          |                                          }d d d            n# 1 swxY w Y   t          |          }|                                }|d         j	                            d          |d<   |j
                            d          |_
        t          j        ||           d|d<   t          j        t          |          5  t          |                    d	                    }d d d            n# 1 swxY w Y   t          |d
          }|                                }|d         j                            d          |d<   |d                             d          |d<   t          j        ||           t          t          d                              d          |j
                  }t          j        t          |          5  t          |                                          }d d d            n# 1 swxY w Y   t          |d          }|j	                            d          }|j
                            d          |_
        t          j        ||           d S )Nru   r9   r9  ry   r   r{   r   r   	date_unitFrz   r#  r   r   r  r  )r   r   r+   r   r   r   r`   r   ra   rG  r>   r,   r$   r   r   r   r  )	rD   rF   rW   rV   r   r<  r-   r.   r=   s	            r    test_convert_datesz&TestPandasContainer.test_convert_dates]  s   z**224886
I 	 'cBBB 	* 	*BJJLL))D	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*47799#F+.66t<<!//55
fh///5	'cBBB 	8 	8BJJJ6677D	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 4u5557799#F+277=="5/0099
fh/// Ij))11$77?TUUU'cBBB 	* 	*BJJLL))D	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*4X...5==&&!//55
vx00000s6   "A33A7:A7$EEE"IIIdate_formatepochiso	as_objectdate_typc                     |ddd          t           j        g}|r|                    d           t          ||          }|sN|                    d          }t          |j        t                    r|j                            d          |_        d }|dk    r
d	}t          }nd
}d}t          j        ||          5  |                    |          }	d d d            n# 1 swxY w Y   |r|                    dd          }|	|k    sJ d S )Ni  rg   )yearmonthdayrY   r   zM8[ns]r9   r  z+{"1577836800000":1577836800000,"null":null}zA{"2020-01-01T00:00:00.000":"2020-01-01T00:00:00.000","null":null}p'epoch' date format is deprecated and will be removed in a future version, please use 'iso' date format instead.r   r  }	,"a":"a"})r   rC  appendr   r   
isinstancer>   r   r   r   r+   r   r`   replace)
rD   r  r  r  rc   rE   r   r.   r   r-   s
             r    test_date_index_and_valuesz.TestPandasContainer.test_date_index_and_values  s|    d!333RV< 	KKT&&& 	4**X&&C#)]33 4I--d33	'!!DH- T 
= 	 '(8DDD 	: 	:[[[[99F	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:  	:''[99H!!!!!!s   ?C""C&)C&
infer_word)
trade_timer9  datetimesold_atr:  	timestamp
timestampsc                 B   dd|diddig}t          dt          d          gdt          j        ggd|g          }||                             d          ||<   t          t          t          |                              d|g         }t          j	        ||           d S )Nidrg   l    $ArH   z
2002-11-08r   r}   )
r
   r   r   rC  r   r   r   r   r+   r,   )rD   r  rc   r.   r-   s        r    test_convert_dates_inferz,TestPandasContainer.test_convert_dates_infer  s     q*m4tQi@<(()Arv;7$
AS
 
 
  (
3::8DD8K$5$56677z8JK
fh/////r1   zdate,date_unit))20130101 20:43:42.123N)20130101 20:43:42rv   )r  r{   )z20130101 20:43:42.123456r>  )z20130101 20:43:42.123456789r9   c                    |}t          |                              d          |d<   t          j        |j        d|j                            d          f<   t          j        |j        d|j                            d          f<   |r|                    d|          }n|                    d          }t          t          |                    }|
                                }|dk    rB|d         j                            d          |d<   |j                            d          |_        t          j        ||           d S )	Nr9   r9  rg   r   r  r  r  r  r>  )r   r   r   rC  r~   r*   rB  r`   r   r   ra   rG  r>   r+   r,   )rD   r9  r  rW   rV   r<  r-   r.   s           r    test_date_format_framez*TestPandasContainer.test_date_format_frame  s    t__,,T226
132:%%f---.132:%%f---. 	1::%9:EEDD::%:00D8D>>**7799'/2::4@@HV%^33D99HN
fh/////r1   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   r   rn   r`   )rD   rW   rV   r   s       r    test_date_format_frame_raisesz1TestPandasContainer.test_date_format_frame_raises  s    :]:S111 	; 	;JJ5EJ:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;s   AA	A	c                    t          t          |          |j                  }t          j        |j        d<   t          j        |j        d<   |r|                    d|          }n|                    d          }t          t          |          d          }|	                                }|d	k    r|j        
                    d
          |_        t          j        ||           d S )Nr   rg   r   r  r  r  r  r  r9   r>  )r   r   r>   r   rC  r~   r`   r   r   ra   r   r+   r  )rD   r9  r  rF   r=   r<  r-   r.   s           r    test_date_format_seriesz+TestPandasContainer.test_date_format_series  s     IdOO?+@AAAV
V
 	1::%9:EEDD::%:00D8D>>x8887799%^33D99HN
vx00000r1   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   r>   r   r   rn   r`   )rD   rF   r=   r   s       r    test_date_format_series_raisesz2TestPandasContainer.test_date_format_series_raises  s    I566o>STTT:]:S111 	; 	;JJ5EJ:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;s   A&&A*-A*c                    |}t          d                              d          |d<   |j                            d          }t          d          |j        d|f<   t          d          |j        d|f<   t
          j        |j        d|f<   d	}t          j        t          |
          5  |
                    d|          }d d d            n# 1 swxY w Y   |                                }|d         j                            |          |d<   |j                            |          |_        t          t          |          d           }t          j        ||           d S )Nr  r9   r9  z19710101 20:43:42rg   z21460101 20:43:42rH   rJ   r  r   r  r  r  )r   r   r*   rB  r~   r   rC  r+   r   r   r`   ra   rG  r>   r   r   r,   )	rD   r<   rW   rV   dlr   r<  r.   r-   s	            r    test_date_unitz"TestPandasContainer.test_date_unit  s   233;;DAA6
Z''"#6772"#67722= 	 'cBBB 	C 	C::'T:BBD	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C
 7799#F+.66t<<!//55 8D>>T:::
fh/////s   'CCCzdf, warnrY   rZ   r[   r  r   )TFFr   r7  )r8   z
2020-02-01z
2020-03-01c                     d}t          j        ||          5  |                                 d d d            d S # 1 swxY w Y   d S )Nry   r   )r+   r   r`   )rD   rV   warnr   s       r    )test_default_epoch_date_format_deprecatedz=TestPandasContainer.test_default_epoch_date_format_deprecated  s    ,I 	 'C888 	 	JJLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   ;??r<   )rv   r{   r>  c           	         t          t          j        d|          gd| d          }t          t	          t          j        d|          gd| d|          t	          t          j        d|          gt
          |          d          }|                                }|j                            d          |_        |d	         j	                            d          |d	<   |d
         
                    d          |d
<   ||                    |          }|                    d|          }t          t          |          d	d
g          }t          j        ||           d S )Nz2023-01-01T11:22:33.123456zdatetime64[]r6   z2022-01-01T11:22:33.123456r7   r>   )r9  date_objr>  r9  r  datetime64[us]r   r  r  r  )r   r@   
datetime64r
   r   r   ra   r>   r   rG  r   r   r`   r   r   r+   r,   )rD   r   r<   r>   rV   r.   r<  r-   s           r    test_iso_non_nano_datetimesz/TestPandasContainer.test_iso_non_nano_datetimes3  s    ]7>>?''''
 
 
 ]#?FFG////  
 #]#?FFG    
 
 7799!//55#F+.66t<<'
3::;KLL$"""??Bzzetz<<8D>>&*9MNNN
fh/////r1   c                 B    d}t          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   r   )rD   rv   s     r    test_weird_nested_jsonz*TestPandasContainer.test_weird_nested_jsonZ  s%    " 	(1++r1   c                 H   t          t          j                            d                              d          t          d                    }t          d          |d<   t          d          |d<   d	|d
<   t          ddd          |_	        d}t          j        t          |          5  t          |                                          }d d d            n# 1 swxY w Y   t          |t          j        t          j        d          }t          j        ||           d S )NrH   )r   rH   ABr   ru   r9  r   intsTboolsr9   r:   ry   r   )r  r  r6   )r
   r@   rQ   rR   rS   rT   r   r(   r   r>   r+   r   r   r   r`   r   r   bool_r,   )rD   dfj2r   r<  r-   s        r    test_doc_examplez$TestPandasContainer.test_doc_exampleo  sD   I!!!$$44V<<d4jj
 
 
 !,,VQxxVW
ADAAA
I 	 'cBBB 	, 	,DLLNN++D	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,428'L'LMMM
ff-----s   ,"CC!Cc                 T    |dddd          }t          j        |          }|                                }t          t	          |                    }|                    |j        |j                  }|                    t          j
                  }t          j        ||           d S )Nr;  r<  rc   z	teams.csvr]   )r   read_csvr`   r   r   reindexr>   r*   fillnar@   r   r+   r,   )rD   rH  rE  rV   rv   r-   ress          r    test_round_trip_exceptionz-TestPandasContainer.test_round_trip_exception  s    xffk::[JJLL8A;;''nn28RZn@@jj  
c2&&&&&r1   c                     d}|                     |           t          |j        d          }dt          j        dd          gd	d
gdt          j        dd          gfD ]\  }}||         j        |k    sJ d S )Nzw{"created_at": ["2023-06-23T18:21:36Z"], "closed_at": ["2023-06-23T18:21:36"], "updated_at": ["2023-06-23T18:21:36Z"]}
)contentTr  
created_atr>  UTCtz	closed_atr  
updated_at)serve_contentr   urlr   DatetimeTZDtyper7   )rD   
httpserverrc   r-   fieldr7   s         r    test_urlzTestPandasContainer.test_url  s     J   ...:>>>>2-du===>*+2-du===>
 	0 	0LE5
 %=&%/////	0 	0r1   c                 b   d }t          t          d          t          d          gd| d          }|j        d| dk    sJ d	}t          j        t
          |
          5  t          t          |                                          d          	                    |          }d d d            n# 1 swxY w Y   t          j
        ||                    d                     t          t          d          t          d          gt          ddg          d          }|j        dk    sJ t          j        t
          |
          5  t          t          |                                          d          	                    |          }d d d            n# 1 swxY w Y   t          j
        ||                    d                     t          t          d          t          d          gd          }|d         j        dk    sJ t          j        t
          |
          5  |                                }d d d            n# 1 swxY w Y   t          t          |                    	                    |          }t          j        |                    d          |           d S )Nc                 .    t          j        | d          S )Nr{   r7  )r   to_timedelta)rh   s    r    <lambda>z4TestPandasContainer.test_timedelta.<locals>.<lambda>  s    boad;;; r1      r   secondszm8[r  r6   ztimedelta64[ry   r   r  r  zm8[ms]r   rg   m8[ns]r  ztimedelta64[ns])r   r   r7   r+   r   r   r   r   r`   applyr  r   r   r
   r,   )rD   r<   	converterrE   r   r-   framer<  s           r    test_timedeltaz"TestPandasContainer.test_timedelta  sK   ;;	immYq%9%9%9:----PPPy242222222I 	 'cBBB 	W 	Wx66HEEEKKIVVF	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W
vszz(';';<<<r]]Ia00011vh
 
 
 y-----'cBBB 	W 	Wx66HEEEKKIVVF	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W
vszz(';';<<<9R==)A*>*>*>?xPPPQx~!22222'cBBB 	# 	#==??D	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#8D>>**00;;
ell844f=====s8   $AB44B8;B8AFF!$F!,IIIc           	      4   t          t          d          t          d          gddgt          ddd	          d
          }|d                             d          |d<   d}t	          j        t          |          5  t          |                    d                    }d d d            n# 1 swxY w Y   t          |          }t          j        |j        d          |d<   t          j        |j                  |d<   t	          j        ||           d S )Nr(  daysr   r)  rg   rH   ru   r9   )startr;   r<   r  rY   r+  ry   r   r  r7  r[   )r
   r   r   r   r+   r   r   r   r`   r   r   r&  rY   to_datetimer[   r,   )rD   r.  r   rc   r-   s        r    test_timedelta2z#TestPandasContainer.test_timedelta2  sU   R((()A*>*>*>?Vj!$GGG 
 
 3Z&&x00c
I 	 'cBBB 	; 	;EMMDM99::D	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;4ofhT:::snVX..s
eV,,,,,s   ?$B//B36B3c                    t          d          }t          d          }t          d||git                    }t          dt	          j        |                              d          j        |                    d          j        gi          }t          |	                    d                    }t          |ddi          }t          j        ||d	           d S )
Nr(  ru   rY   r6   r9   r  r   Fr  )r   r   r
   r   r   	Timedeltar   _valuer   r`   r   r+   r,   )rD   tdr=   r.  r.   rc   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5664W~666
fhGGGGGGr1   timedelta_typc                     |d           |d          t           j        g}|r|                    d           t          ||          }|s4|                    d          }|j                            d          |_        d }|dk    rd}n	t          }d	}|r|                    d
d          }d}t          j	        ||          5  |
                    |          }	d d d            n# 1 swxY w Y   |	|k    sJ d S )Nrg   r1  rH   rY   r   r+  r  zA{"P1DT0H0M0S":"P1DT0H0M0S","P2DT0H0M0S":"P2DT0H0M0S","null":null}z7{"86400000":86400000,"172800000":172800000,"null":null}r  r  r  r   r  )r   rC  r  r   r   r>   r   r  r+   r   r`   )
rD   r  r  r;  rc   rE   r   r.   r   r-   s
             r    test_timedelta_to_jsonz*TestPandasContainer.test_timedelta_to_json  so   
 1%%%}}!'<'<'<bfE 	KKT&&& 	3**X&&C	((22CI%S H  .PH 	:''[99H= 	 '(8DDD 	: 	:[[[[99F	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:!!!!!!s   C))C-0C-c                     |d          g}t          ||                              d          }|j                            d          |_        t          }|r|                    t                    }d }d}t          j        ||          5  |                                }d d d            n# 1 swxY w Y   d}||k    sJ d S )N*   )millisecondsr   r+  ry   r   z	{"42":42})r   r   r>   r   r   r+   r   r`   )	rD   r  r;  rc   rE   r  r   r-   r.   s	            r    +test_timedelta_to_json_fractional_precisionz?TestPandasContainer.test_timedelta_to_json_fractional_precision  s    2.../T&&&--h77I$$X..	 	**V$$CDI 	 'C888 	# 	#[[]]F	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#!!!!!!s   B//B36B3c                     t                      }t          dd|gi          }t          ddt          |          gi          }t          t	          |                    t                                        }t          j        ||d           d S )NrY      r  Fr  )r   r
   r   r   r   r`   r+   r,   )rD   r
  r.  r.   r-   s        r    test_default_handlerz(TestPandasContainer.test_default_handler  s~    3E
+,,cAs5zz?3448EMM#M$F$FGGHH
hGGGGGGr1   c           	          d }dt          ddt          dd          gt          d          d dgd	d
dg          g}d}t          ||d          |k    sJ d S )Nc                 p    t          | t                    rdd| j        fd| j        fgS t	          |           S )N)mathjsComplexreim)r  complexrealimagr   )objs    r    defaultzBTestPandasContainer.test_default_handler_indirect.<locals>.default  s;    #w'' S-ch/?$AQRRs88Or1   	   rg   STRrJ   r   zN/Ar  rY   rZ   r   zR[9,[[1,null],["STR",null],[[["mathjs","Complex"],["re",4.0],["im",-5.0]],"N\/A"]]]r$   r  r/   )r
   rK  r   r   )rD   rO  df_listr.   s       r    test_default_handler_indirectz1TestPandasContainer.test_default_handler_indirect  s    	 	 	 %B0edE7RSSc
  
1 	
 JJJhVVVVVVr1   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 )Nrg   gffffff@rJ   rR  r   g333333?r   r  rY   rZ   r   zE[["(1+0j)","(nan+0j)"],["(2.3+0j)","(nan+0j)"],["(4-5j)","(1.2+0j)"]]r$   rS  )r
   rK  r   r`   r   )rD   rV   r.   s      r    ,test_default_handler_numpy_unsupported_dtypez@TestPandasContainer.test_default_handler_numpy_unsupported_dtype(  s    c71b>>*%,,gcSToo1VWW#J
 
 

 T 	 zz#hz??8KKKKKKr1   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                    rx  )	TypeError)rN  r   s    r    my_handler_raiseszJTestPandasContainer.test_default_handler_raises.<locals>.my_handler_raises6  s    C.. r1   r   rY   rg   rH   r  rJ   rR  )r   r   r[  r
   r   r`   rK  )rD   r\  r   s     @r    test_default_handler_raisesz/TestPandasContainer.test_default_handler_raises3  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   )rY   rZ   r[   rY   rZ   rZ   rY   rM   category)r
   r`   r   )rD   rV   r.   rv   scs        r    test_categoricalz$TestPandasContainer.test_categoricalB  s    @@@ABBS'3::<<S'..,,32::<<''''sGWyy{{bjjll******r1   c                    t          dddd          }|                    d                              d           }t          |t          ddd          d          }|                                }||d	<   d
}t          j        t          |          5  |                                }||                                k    sJ 	 d d d            n# 1 swxY w Y   t          |          }t          |          }t          j        t          |          5  |                                |                                k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nru   rt   
US/Easternr9   r;   r  r<   utcr:   r  r   ry   r   )
r   
tz_converttz_localizer
   ra   r+   r   r   r`   r   )	rD   tz_rangetz_naiverV   df_naiver   r.   stzs_naives	            r    test_datetime_tzz$TestPandasContainer.test_datetime_tzO  s   j!4PPP&&u--99$??J!M!M!MNN
 
 7799 I 	 'cBBB 	, 	,''))Hrzz||+++++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, X""'cBBB 	6 	6;;==GOO$5$555555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s$   /CCC-EEEc                 f   t          t          j                            d                              d                    }t          j        |j        d d<   |                    d          }|                                }||                                k    sJ t          t          j                            d                              d                    }t          j        |j        d d<   |                    d          }|                                }||                                k    sJ d S )NrH   )r5   rJ      Sparser5   )
r
   r@   rQ   rR   rS   r   r  r   r`   r   )rD   rV   sdfr.   rv   sss         r    test_sparsezTestPandasContainer.test_sparseg  s    ry,,Q//??HHIIVrr
ii!!::<<3;;==((((29((++;;B??@@Fbqb	XXh99;;2::<<''''''r1   r=   z2013-01-10 05:00:00Zz2013-01-10 00:00:00rc  r  z2013-01-10 00:00:00-0500c                     d}t          |d          |k    sJ |                                }t          |d          |k    sJ d S )Nz"2013-01-10T05:00:00.000Z"T	iso_dates)r   to_pydatetimerD   r=   exprG  s       r    test_tz_is_utcz"TestPandasContainer.test_tz_is_utcw  s\     +2...#55552...#555555r1   c                     t          d          }d}t          |d          |k    sJ |                                }t          |d          |k    sJ d S )Nz2013-01-10 05:00:00z"2013-01-10T05:00:00.000"Tru  )r   r   rw  rx  s       r    test_tz_is_naivez$TestPandasContainer.test_tz_is_naive  sh    ,--)2...#55552...#555555r1   rh  z2013-01-01 05:00:00ZrH   r9   r:   z2013-01-01 00:00:00rd  z2013-01-01 00:00:00-0500c                    d}d}t          |d          |k    sJ t          |          }t          |d          |k    sJ t          |                    t                    d          |k    sJ t	          d|i          }t          |d          }||k    sJ t          |                    dt          i          d          sJ d S )Nz7["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"}}Tru  DT)r   r   r   r   r
   )rD   rh  ry  dfexprI  rV   r-   s          r    test_tz_range_is_utcz(TestPandasContainer.test_tz_range_is_utc  s     HX8t444;;;;H%% 3$///366663::f-->>>#EEEEc{##R4000299dF^44EEEEEEEEr1   c                 l   t          ddd          }d}d}t          |d          |k    sJ t          |                    t                    d          |k    sJ t	          d	|i          }t          |d          }||k    sJ t          |                    d	t          i          d          sJ d S )
Nz2013-01-01 05:00:00rH   r9   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"}}Tru  r~  )r   r   r   r   r
   )rD   rI  ry  r  rV   r-   s         r    test_tz_range_is_naivez*TestPandasContainer.test_tz_range_is_naive  s    .EEEEV 3$///366663::f-->>>#EEEEc{##R4000299dF^44EEEEEEEEr1   c                     t          t          d          d          }t          ddgddggddg          }t          j        ||           d S )	Nr   Tr   rg   rH   rY   rZ   r   r   r   r
   r+   r,   r  s      r    test_read_inline_jsonlz*TestPandasContainer.test_read_inline_jsonl  s\     8$IJJRVWWWq!fq!f-SzBBB
fh/////r1   c                     t          d|j         dd|          }t          ddgddggddg	          }t          j        ||           d S )
Nzs3n://z/items.jsonlT)r   storage_optionsrg   rH   rY   rZ   r   )r   r?   r
   r+   r,   )rD   s3_bucket_public_with_datas3sor-   r.   s        r    test_read_s3_jsonlz&TestPandasContainer.test_read_s3_jsonl  sn    
 B/4BBB 
 
 

 q!fq!f-SzBBB
fh/////r1   c                    t          |d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 S )Nwzutf-8encodingr   Tr   rg   rH   rY   rZ   r   )openwriter   r
   r+   r,   )rD   r  infiler-   r.   s        r    test_read_local_jsonlz)TestPandasContainer.test_read_local_jsonl  s    )S7333 	@vLL>???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@9D111q!fq!f-SzBBB
fh/////s   599c                 B   d}t          |          }t          |d          }t          ddgddggddg	          }t          j        ||           t          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   rY   rZ   r   )r   r   r
   r+   r,   rD   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/// QRR4t,,,{E2UENCcSVZXXX
fh/////r1   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	articleIdr  {"articleId":r  r   r7   r>   r*   {"0":{"articleId":r  )r   r   r`   r   r
   )rD   r  r  r<  r.   rV   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r1   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 )Nr  r  z#Value is too small|Value is too bigr   r  r  )r   r   r   r   rn   r   )rD   r  r<  r   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"}r  r  gg_SDr  r   z.{"0": {"articleId": "1404366058080022500245"}}r   r]   )r   r   r   r+   r  r
   r,   r  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/////r1   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	          t          |          d          |           t          ddgddggddg          }|                    dd          }d}||k    sJ t          j        t	          t          |          d          |           d S )Nrg   rH   rY   rZ   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\r   )r
   r`   r+   r,   r   r   r   s       r    test_to_jsonlz!TestPandasContainer.test_to_jsonl  sE   AA'#s<<<9D993!!!!&%9C:NNN9D99G!!!!
i(8(8EEErJJJ %(65/:UCLQQQ9D99R!!!!
i(8(8EEErJJJJJr1   z%GH#13774 encoding kwarg not supportedval)   E, 17r1      a   b   c)r  r  r  r  )s   EE, 17r1   r  r  r  )r     r  r  r  )r1   r  r  r  )r  r  r  r  )   Ar1   r  r  r  r1   r  r  r  r_  c                     t          d |D             |          }d}|                    ||           t          t          |          |          }t	          j        ||d           d S )Nc                 f    g | ].}t          |t                    r|                    d           n|/S )latin-1)r  rz  decode)r   rh   s     r    r   z;TestPandasContainer.test_latin_encoding.<locals>.<listcomp>1  s8    MMMAJq%$8$8?QXXi   aMMMr1   r6   r  r  F)check_categorical)r   r`   r   r   r+   r  )rD   r7   r  r  rE   r  retrs          r    test_latin_encodingz'TestPandasContainer.test_latin_encoding  s    $ MMMMM
 
 
 I111),,x@@@
sDEBBBBBBr1   c                     t          dt          d          gi          }|                    dd                                          }|                                 |                    dd                                          }||k    sJ d S )NrY   rg   T)r>   deep)r
   r   memory_usagesumr`   )rD   rV   size_before
size_afters       r    "test_data_frame_size_after_to_jsonz6TestPandasContainer.test_data_frame_size_after_to_json9  s    c!ffX''ooDto<<@@BB


__4d_;;??AA
j((((((r1   r   r   r   r   1.2.c                     t          ddgddgg||          }|                    d          }t          t          |          d          }t	          j        ||           d S )Nrg   rH   rt   rJ   r]   tabler^   r
   r`   r   r   r+   r,   )rD   r>   r*   r.   dfjsonr-   s         r    .test_from_json_to_json_table_index_and_columnszBTestPandasContainer.test_from_json_to_json_table_index_and_columnsC  sn     q!fq!f-UGLLL!!!118F++G<<<
fh/////r1   c                     t          ddgddgddgd          }|                    d	          }t          t          |          d	          }t	          j        ||           d S )
Nrg   rH   r   r   r   r   r  r  r^   r  )rD   r.   r  r-   s       r    #test_from_json_to_json_table_dtypesz7TestPandasContainer.test_from_json_to_json_table_dtypesO  sn    Aq6c
#sLLMM!!!118F++G<<<
fh/////r1   )re   r#   r>   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          }d}t          j        t
          |          5  |                    |          }d d d            n# 1 swxY w Y   |rt          j        |j	        d<   t          t          |          |dddd	ddd          }t          j        ||           d S )Nr  r   r6   )Nr   r   rB   )N r[   r   TFTboolrY   rZ   Nr_  )r8   Nz
2020-01-03r  )IntegerFloatObjectBoolCategoryDatetimery   r   r^   )r   r  r  r/   r7   )r
   	from_dictr   r+   r   r   r`   r@   r   r  r   r   r,   )rD   r/   r   r.   r   r  r-   s          r    %test_to_json_from_json_columns_dtypesz9TestPandasContainer.test_to_json_from_json_columns_dtypesV  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  	 	
 
I 	 'cBBB 	5 	5%%V%44F	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5  	/ )+HL%V"""&, 
 
 
 	fh/////s   CC	Cc                     t          ddgddgd          }t          j        t          d          5  |                    d	           d d d            d S # 1 swxY w Y   d S )
Nrg   rH   rt   )r>   rY   rc   z/Overlapping names between the index and columnsr   r  r^   rm   rU   s     r    (test_to_json_with_index_as_a_column_namez<TestPandasContainer.test_to_json_with_index_as_a_column_name  s    q!fAq6::;;;]O
 
 
 	' 	' JJgJ&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's   AAA)rZ   r[   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 )Nrg   rH   r   r   r   r   r  r  r^   z)cannot pass both dtype and orient='table'r   r  r
   r`   r   r   rn   r   )rD   r7   rV   r  r   s        r    !test_read_json_table_dtype_raisesz5TestPandasContainer.test_read_json_table_dtype_raises  s     aV3*C:FFGG7++9]:S111 	; 	;fWE::::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;s   A--A14A1)r>   r*   r#   r$   c                     t                      }t          t          d          |d          }t          j        |j        |j                   t          j        |j        |j                   d S )Nz{}Tr   )r
   r   r   r+   assert_index_equalr>   r*   )rD   r/   r.   r-   s       r    %test_read_json_table_empty_axes_dtypez9TestPandasContainer.test_read_json_table_empty_axes_dtype  s\     ;;8D>>&tLLL
flHN;;;
fnh.>?????r1   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 )Nrg   rH   rt   rJ   r   r   r  r  r]   r  r^   z0cannot pass both convert_axes and orient='table'r   Tr   r  )rD   rV   r  r   s       r    (test_read_json_table_convert_axes_raisesz<TestPandasContainer.test_read_json_table_convert_axes_raises  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, expectedrJ   r   r   )r*   rc   r   rP   r  r   )r?   rc   )r?   r>   c                 l    |                     dd          }t          j        |          }||k    sJ d S )Nre   Fr/   r>   )r`   r<  loadsrD   rc   r.   r-   s       r    test_index_false_to_json_splitz2TestPandasContainer.test_index_false_to_json_split  s@    @ WE::F##!!!!!!r1   c                     |                     dd          }t          j        |          }t          j        j                            |d          t          |                              d          d}||k    sJ d S )Nr  Fr  r   r#   r^   )schemarc   )r`   r<  r  r   r;  build_table_schemar
   to_dictrD   rc   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+==
 

 !!!!!!r1   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 )Nrg   rH   rJ   r   rY   rZ   r   zU'index=False' is only valid when 'orient' is 'split', 'table', 'records', or 'values'r   Fr  rm   ro   s       r    test_index_false_error_to_jsonz2TestPandasContainer.test_index_false_error_to_json  s    
 AA'#s<<<. 	 ]: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 	3   AA #A 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 )Nrg   rH   rJ   r   rY   rZ   r   zS'index=True' is only valid when 'orient' is 'split', 'table', 'index', or 'columns'r   Tr  rm   ro   s       r    test_index_true_error_to_jsonz1TestPandasContainer.test_index_true_error_to_json  s    
 AA'#s<<<- 	 ]:S111 	2 	2JJfDJ111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2r  r  c                     t          ddgddgd          }|                    ||          }t          t          |          |          }t	          j        ||           d S )Nrg   rH   rt   rJ   r  r  r^   r  )rD   r/   r>   r.   r  r-   s         r    "test_index_false_from_json_to_jsonz6TestPandasContainer.test_index_false_from_json_to_json  sl    
 Aq6A7788!!u!==8F++F;;;
fh/////r1   c                     t          t          d          dd          }t          dgd          }t          dg|	          }t	          j        ||           d S )
Nz{"2019-01-01T11:00:00.000Z":88}r  r>   r  z2019-01-01 11:00:00zM8[us, UTC]r6   X   r   )r   r   r   r   r+   r  )rD   r-   exp_dtir.   s       r    test_read_timezone_informationz2TestPandasContainer.test_read_timezone_information  sk    677Xg
 
 
  !6 7}MMM2$g...
vx00000r1   r  )zs3://example-fsspec/zgcs://another-fsspec/file.jsonz,filecache::s3://yet-another-fsspec/file.jsonzhttps://example-site.com/datazsome-protocol://data.txtc                     t          t          d| d                    }t          d|gi          }t          j        ||           d S )Nz{"url":{"0":"r  r  r  )rD   r  r-   r.   s       r    test_read_json_with_url_valuez1TestPandasContainer.test_read_json_with_url_value  sQ     8$@c$@$@$@AABBecU^,,
fh/////r1   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  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.jsonzFile z does not existr   r   )rD   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  z1970-01-02T00:00:00.000c                 ^   t          dggt          d          t          j        d          z                       |          g          }d| d}d }|dk    rt
          }d}t          j        ||	          5  |                    |
          }d d d            n# 1 swxY w Y   ||k    sJ d S )Nrg   r   1Dr   r  
":{"0":1}}r  r  r   r  )	r
   r   r   r7  r   r   r+   r   r`   	rD   r  keyr<   rV   r.   r   r   r-   s	            r    test_datetime_as_labelz*TestPandasContainer.test_datetime_as_label/  s    SEYq\\BL,>,>>GGMMN
 
 
 ,+++'!!-= 	 '(8DDD 	9 	9ZZKZ88F	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 !!!!!!s   7BB!B)r  
P1DT0H0M0Sc                 >   t          dggt          j        d                              |          g          }d| d}d }|dk    rt          }d}t          j        ||          5  |                    |	          }d d d            n# 1 swxY w Y   ||k    sJ d S )
Nrg   r  r   r  r  r  r  r   r  )r
   r   r7  r   r   r+   r   r`   r  s	            r    test_timedelta_as_labelz+TestPandasContainer.test_timedelta_as_labelE  s     ur|D'9'9'A'A$'G'G&HIII++++'!!-= 	 '(8DDD 	9 	9ZZKZ88F	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 !!!!!!s   'B

BBzorient,expected)r>   z{"('a', 'b')":{"('c', 'd')":1}})r*   z{"('c', 'd')":{"('a', 'b')":1}}r  z,Produces JSON but not in a consistent mannerc                 n    t          dggdgdg          }|                    |          }||k    sJ d S )Nrg   r  )r[   r\   r]   r^   r	  rD   r/   r.   rV   r-   s        r    test_tuple_labelsz%TestPandasContainer.test_tuple_labelsY  sJ    0 uZL:,GGG6**!!!!!!r1   indent)rg   rH   rJ   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(  rY   rZ   r   r   z{
z"a":{
z"0":"foo",
z
"1":"baz"
z},
z"b":{
z"0":"bar",
z
"1":"qux"
z}
}r	  )rD   r  rV   r-   spacesr.   s         r    test_to_json_indentz'TestPandasContainer.test_to_json_indentu  s    7#sLLL6**v		 				 	 	 
	 	 		 	
 	 	 	 
	 	 	 
	 	 	 	 	 !!!!!!r1   z]Adjust expected when infer_string is default, no bug here, just a complicated parametrization))re   z{
    "columns":[
        "a",
        "b"
    ],
    "index":[
        0,
        1
    ],
    "data":[
        [
            "foo",
            "bar"
        ],
        [
            "baz",
            "qux"
        ]
    ]
})r#   zf[
    {
        "a":"foo",
        "b":"bar"
    },
    {
        "a":"baz",
        "b":"qux"
    }
])r>   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(  rY   rZ   r   rJ   )r/   r  r	  r  s        r    test_json_indent_all_orientsz0TestPandasContainer.test_json_indent_all_orients  sT    x 7#sLLL6!44!!!!!!r1   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   r   rn   r
   r`   r  s    r     test_json_negative_indent_raisesz4TestPandasContainer.test_json_negative_indent_raises	  s    ]:-LMMM 	+ 	+KKr***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   #AAAc           	          t          d          }t          |          }t          dd dt          j        dt          j         dg          }t          j        ||           d S )Nz?["a", NaN, "NaN", Infinity, "Infinity", -Infinity, "-Infinity"]rY   NaNInfinityz	-Infinity)r   r   r
   r@   r  r+   r,   r  s       r    test_emca_262_nan_inf_supportz1TestPandasContainer.test_emca_262_nan_inf_support  sc    M
 
 4$rvzBF7KH
 
 	fh/////r1   c                     t          j        ddiddig          }t          dddgi          }t          t	          |                    }t          j        ||           d S )Ncol31900441201190696999Text)r<  dumpsr
   r   r   r+   r,   )rD   encoded_jsonr.   r-   s       r    test_frame_int_overflowz+TestPandasContainer.test_frame_int_overflow  sf    zE+A#BUFO"TUUe&<f%EFGG8L1122
fh/////r1   c                     t          g dg dd          }d}|                                }|                    d          }||k    sJ d S )Nr  r  rh   ri   zU{"(0, 'x')":1,"(0, 'y')":"a","(1, 'x')":2,"(1, 'y')":"b","(2, 'x')":3,"(2, 'y')":"c"}r>   r^   )r
   stackr`   )rD   	dataframer.   r  r-   s        r    test_json_multiindexz(TestPandasContainer.test_json_multiindex  se    IIIOOODDEE	@ 	 ""w//!!!!!!r1   c                     |j         }t          j                     d}t          g dg dd          }d| d| }|                    ||           t          ||          }t          j        ||           d S )Nr  r  )rH   rJ   r   r  zs3:///)r  )r?   uuiduuid4r
   r`   r   r+   r,   )rD   s3_bucket_publicr  mock_bucket_nametarget_filerV   urir-   s           r    
test_to_s3zTestPandasContainer.test_to_s3)  s     ,0,,,YYYYYY77886&6666


3
---3555
fb)))))r1   c                     d }d}|t           j        u rt          }t          j        ||          5  t          |gg                                          }d d d            n# 1 swxY w Y   |dk    sJ d S )Nry   r   z{"0":{"0":null}})r   rC  r   r+   r   r
   r`   )rD   nulls_fixturer   r   r-   s        r    test_json_pandas_nullsz*TestPandasContainer.test_json_pandas_nulls5  s    I 	 BF""-'(8DDD 	< 	<01199;;F	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<+++++++s   $A  A$'A$c                     t          t          d          d          }t          g d          }t          j        ||           d S )Nz[true, true, false]r  r  )TTFr   r   r   r+   r  r  s      r    test_readjson_bool_seriesz-TestPandasContainer.test_readjson_bool_seriesC  sJ    8$9::III---..
vx00000r1   c                     t          dt          ddd          ddg                                          }|                                }d	}||k    sJ d S )
NTz
2017-01-20z
2017-01-23r9   r7  r   r   r]   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
   r   r  r`   r   s       r    test_to_json_multiindex_escapez2TestPandasContainer.test_to_json_multiindex_escapeI  ss    \<dCCCEN
 
 
 %''	 	
 B 	 !!!!!!r1   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>._TestObjectrv  Nc                 >    || _         || _        || _        || _        d S rx  rY   rZ   _cr\   )rD   rY   rZ   r6  r\   s        r    r}  zPTestPandasContainer.test_to_json_series_of_objects.<locals>._TestObject.__init___  s"    r1   c                     dS )Nr   r   r  s    r    r   zITestPandasContainer.test_to_json_series_of_objects.<locals>._TestObject.ee  s    qr1   r  )r  r  r  r}  r   r   r1   r    _TestObjectr3  ^  s7               r1   r8  rg   rH   rt   rJ   r5  0)rY   rZ   r\   )r   r<  r  r`   )rD   r8  r  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Nr1   zdata,expectedy             @y              ?y      "@      )r   rg   rH   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 rx  r   r  s       r    test_complex_data_tojsonz,TestPandasContainer.test_complex_data_tojsonl  s)    F !!!!!!r1   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_
 r  re   r^   r	  )rD   r.   rV   r-   s       r    test_json_uint64z$TestPandasContainer.test_json_uint64  sU    F 	 V&:<P%QRSSS7++!!!!!!r1   c                   	
 t          t          dt          dgd          t          g dd          t          dt          dgd          t          g d	d          g d
g dg dg dd          }|                    |          }t	          j        d|          5  t          t          |          ||          }d d d            n# 1 swxY w Y   |dk    r;t          j	        d          t	          j
                                                  }nt	          j        |          }t          t          dt          dgd          t          g dd          t          dt          dgd          t          g d	d          t          ddt          gd          t          g dd          t          g d|          t          g d|          d          
|dk    r<t          j	        d          ddlm	 t          	
fd
j        D                       
|dk    r!t!          t#          d                    
_        t%          j        |
d           d S )Nrg   rt   Int64r6   r  rr   rs   Float64)rr   r   rs   )TFNr  r  r  )rY   rZ   r[   r\   r   r  grR  r^   mode.string_storage)r   r/   r   TFbooleanr   ArrowExtensionArrayc           	      ^    i | ])}|                      |         d                     *S )Tfrom_pandas)array)r   r  rG  r.   pas     r    r   zDTestPandasContainer.test_read_json_dtype_backend.<locals>.<dictcomp>  sL        ,,RXXhsmQUX-V-VWW  r1   r$   ro  r?  )r
   r   r	   r`   r   option_contextr   r   r   importorskip
ArrowDtypestringStringDtypepandas.arraysrG  r*   rT   r(   r+   r,   )rD   string_storager   r/   r   rV   outr-   string_dtyperG  r.   rL  s            @@@r    test_read_json_dtype_backendz0TestPandasContainer.test_read_json_dtype_backend  s    QAJg666IIIW555S"cN)<<<OOO9===(((((($__%%%	 	
 
 jjj''4nEE 	 	]6  F	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 I%%$Y//B=55LL>.99LQAJg666IIIW555S"cN)<<<OOO9===T5"-Y???///yAAAOOO<@@@,,,LAAA	 	
 
 I%%$Y//B999999      '/   H X#E!HH~~H 	fh%HHHHHHs    CCCz0ignore:Passing a BlockManager:DeprecationWarningc                 ,   ddd}d}t          t          |          |ddd          }|j        }t          t          j                            d          t          j                            d          gdd	g
          }t          j        ||           d S )Nzint32[pyarrow]int64[pyarrow]r  s   {"a": 1, "b": 2}
Tr   )r7   r   enginer   rY   rZ   r   )	r   r   r  r   r   rO  construct_from_stringr+   r  )rD   r7   r<  rV   r-   r.   s         r    !test_read_json_pyarrow_with_dtypez5TestPandasContainer.test_read_json_pyarrow_with_dtype  s     '-=>>$DMM#
 
 
 334DEE334DEE *
 
 
 	vx00000r1   )re   r#   r>   c                    t          j        d          }t          dt          dgd          }|                    |          }t          j        d|          5  t          t          |          ||d	          }d d d            n# 1 swxY w Y   t          dt          dgd          }|dk    r3d
dl	m
}	 t           |	|                    |d                              }t          j        ||           d S )Nr   rg   rt   rA  r6   r^   rD  r  )r   r/   r  r   rF  TrI  )r   rN  r   r	   r`   r   rM  r   r   rR  rG  rK  r+   r  )
rD   rS  r   r/   rL  rE   rT  r-   r.   rG  s
             r    test_read_json_nullable_seriesz2TestPandasContainer.test_read_json_nullable_series  sE     ++aQZw///kkk((4nEE 	 	]6x  F	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 1b!*G444I%%99999911"((8QU(2V2VWWXXH
vx00000s   !B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  numpyr   )r   r   rn   r   )rD   r   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   fixturerF   rW   rd   r   parametrizerj   rp   r   r   r   r   r   r   r   r@   r   r   rB   intr   r   r   paramr9  
skip_if_nor   r   r   AssertionErrorr   rF  r   r   r   r  r  skipifr   r  r  r  r!  r$  r5  rO  rr  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r9  r  r  r  r  r  r  r  r
   rA   r   r&  r   r4  r  r  r  r  r  network
single_cpur#  r/  r5  r:  r7  r   r=  rA  rD  rU  rW  r]  ra  rm  rs  rz  r|  r   r  r  r  skip_if_not_us_localer  r  r  sysmaxsizer  r  r  r  r[  r   r   r  r  r  r  r  r  r  r  r  rename_axisr  r  r  r  r  r  r  r  r  r  r  r
  r   r  r  r  r  r  r(  r+  r.  r0  r:  r<  r?  rV  filterwarningsr[  r]  r`  r   r1   r    r3   r3   G   s_       ^	 	 ^	 ^	 	 ^	
> 
> 
> [X'E'E'EFF> > GF> [X';<<& & =<& [X':;;[3Z#s$3Z#s$X3x :&&..s33S9:&&..s33S9		
 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 [$YmbmI>V>V W W WX  [^dE];;> > <; >0 [^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 [URVbfW$566[WtUm44+ + 54 76+ [D)OPP[&	
 	
 	

 
B B
 
 QPB
) ) )B B B" " "

 

 

+ + +<"Q "Q "QHa
 a
 a
F$
 $
 $
L" " "7 7 7$P P P1 1 1 [Wudm441 1 541	1 	1 	1 [$YmbmI>V>V W W WX 1 1 1& [Wrz3&788	1 	1 98	1( ( (B B B
1 1 1 [$YmbmI>V>V W W WX  [66<.0@AAABFFL>**+	
 1 1  1* * *
* * *
* * *! ! !
# # # "1 "1 "1H []We,<==[[4-88[Z(-9JI)VWW" " XW 98 >="@ [	
 	
 	
 
0 
0 
0 [	
 	
 	
	 	0 0	 	0$; ; ; [	
 	
 	
	 	1 1	 	1; ; ;0 0 04 [Y___929Q<<@@AA4HY111233T:	)//		!SV0W0W0WXX  	 	.".)S)S)STTU  		
 & ' & [$YmbmI>V>V W W WX  [V%6%6%677!0 !0 87 !0F  *. . .$	' 	' 	' [[	0 	0  	0> > ><- - -(
H 
H 
H [[4-88[]UG,<==[_r|Y.GHH" " IH >= 98"< [[4-88[_r|Y.GHH" " IH 98"$H H H
 
 
*	L 	L 	L  + + +6 6 60( ( (  [I,--I+===I011	
 6 6 66 6 6 [J-qtDDDJ,aLtTTTJ114HHH	
 F F FF F F0 0 0 [[0 0   00 0 00 0 0" [Xa3;?9K'LMM
  
  NM
  [Xe'<==	 	 >=	0 0 0K K K, [EiXX[111,,,...999###+++111VS$%263d3
	
  [Wz6&:;;	C 	C <;  YX 	C) ) ) [$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&0P' ' ' [Wt3S-A-A&BCC; ; DC; [X'P'P'PQQ@ @ RQ@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';<<3 3 =<3 [X	8'<==2 2 >=2 [X'9::[WtUm440 0 54 ;:01 1 1 [	
 	
 	
	 	0 0	 	0 [### & &	 & [/1ST " " "& [/1FG " " "" [<>FLk''I (     FLk''I (    	
 ," "- ," [Xyyy11" " 21"& [-   
 [q	
 q	
 q	
t tj" "kt t t"+ + +	0 	0 	00 0 0" " " [[* *  *, , ,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"
" " ":I :I :Ix R]9[ RSS1 1 TS 1, [X'D'D'DEE1 1 FE1(5 5 5 5 5r1   r3   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 )Nrg   zThe engine type foor   r   )rY  r   r(   r`   r   r   rn   r   rE   rT  s     r    test_invalid_enginerr  	  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 )Nrg   z&currently pyarrow engine only supportsr   r   F)rY  r   rp  rq  s     r    test_pyarrow_engine_lines_falsert  	  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c           	         t          ddgddggddgddg	          }|                                }t          j        d
d          5  t	          t          |                    }d d d            n# 1 swxY w Y   t          j        t          j                  }t          ddgddgg|t          ddg|          t          ddg|                    }t          j        ||           d S )NrY   rZ   r[   r\   zrow 1zrow 2zcol 1zcol 2r]   zfuture.infer_stringT)na_valuer6   r  )r
   r`   r   rM  r   r   rQ  r@   r   r   r+   r,   )r/   rV   rT  r-   r7   r.   s         r    $test_json_roundtrip_string_inferencerw  	  s?   	
sc3Z '(:WgDV
 
 
B **,,C		0$	7	7 * *8C==))* * * * * * * * * * * * * * *NBF+++E
sc3Z Wg&e444w(666	  H &(+++++s   A//A36A3r   c                      t          t          dt          gd          t          dt          gd          d          } |                     dd	          }d
}||k    sJ d S )Nrg   rX  r6   rH   rA  r  r#   Tr  z"{"a":1,"b":2}
{"a":null,"b":null}
)r
   r   r	   r`   )rV   r-   r.   s      r    test_to_json_ea_nullry  /	  s}     
B'7888Bw///	
 	

 
B ZZyZ55FH Xr1   c                      d} t          t          |           d          j        }t          d          }t	          j        ||d           d S )Nz#
{"a": 1, "b": 2}
{"a": 3, "b": 4}
Tr   rH   )exact)r   r   r>   r   r+   r  )rc   r-   r.   s      r    test_read_json_lines_rangeindexr|  ?	  sO    D x~~T2228F!}}H&($777777r1   c                      t          t          d          ddd          } t          dg          }t          j        | |           d S )Nz["9999999999999999"]r$   r  F)r/   r  rz   l   _r-  )r-   r.   s     r    test_large_numberr~  J	  sW    '((	  F '())H68,,,,,r1   )0r  r   r;  r   r   r<  rD  rk  r"  r_  r@   r   pandas._configr   pandas.compatr   pandas.errorsr   pandas.util._test_decoratorsutil_test_decoratorsr9  pandasr   r	   r
   r   r   r   r   r   r   r   pandas._testing_testingr+   pandas.io.jsonr   r!   r0   r3   rr  rt  rw  re  ry  r|  r~  r   r1   r    <module>r     sD                  				 



       - - - - - -       ( ( ( ( ( ( ) ) ) ) ) ) ) ) )    
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
       & & & & & &F F F2, , ,D#5 D#5 D#5 D#5 D#5 D#5 D#5 D#5NF% % %6 6 6, , ," y  8 8 8	- 	- 	- 	- 	-r1   