o
    g8                     @   sb  d dl Z d dl mZ d dlmZ d dlmZ d dlZd dlZd dlZd dl	Z
d dlZd dlmZmZmZmZ d dlm  mZ d dlZd dlmZmZmZmZmZmZ d dlmZ e  Z!ee!Z"e"# Z$dgd d	gd  d
gd  dge%e$d   Z&ej'e&dde$_(e)e*e&e$d< e
j+e%e$dde$d< dd Z,ej-.dej-.dG dd dZ/dS )    N)	timedelta)Decimal)StringIO)IS64PY38PY310is_platform_windows)	DataFrameDatetimeIndexSeries	Timestampcompat	read_jsonbah   barbazfoo   Enameint64dtypesortc                 C   sD   |dks|dkr|j dd}|dkrtt|j|_t| | d S )NrecordsvaluesTdrop)reset_indexrangelencolumnstmassert_frame_equal)resultexpectedorient r)   ^/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/pandas/tests/io/json/test_pandas.pyassert_json_roundtrip_equal*   s
   r+   zBignore:an integer is required (got type float)*:DeprecationWarningz6ignore:the 'numpy' keyword is deprecated:FutureWarningc                   @   sd  e Zd Zejdddd Zejdd Zejdd Zd	d
 Zej	
dg ddd Zej	
dddgdd Zej	
dddgej	
dddgddggddgddggddgddgged dged!dgggd"d# Zej	
dg d$d%d& Zd'd( Zej	
d)d*egej	
d+dd*gej	
d,dd*gd-d. Zej	
d)d*ejgej	
d+dd*gej	
d,dd*gd/d0 Zej	
d)d1ejed2gej	
d+dd*gej	
d,dd*gd3d4 Zej	
d+dd*gej	
d,dd*gd5d6 Zej	
d+dd*gej	
d,dd*gd7d8 Zej	
d+dd*gej	
d,dd*gd9d: Zej	
d+dd*gej	
d,dd*gd;d< Zej	
d=d>d?d@dAdBgdfdCdDgdEdF Zej	
d)dd*gej	
d+dd*gej	
d,dd*gdGdH Zej	
d)dd*gdIdJ Z ej	
dKej!ej"gej	
d)dd*gdLdM Z#ej	j$e% dNdOej	
dPg dQdRdS Z&dTdU Z'dVdW Z(dXdY Z)dZd[ Z*d\d] Z+d^d_ Z,d`da Z-dbdc Z.ddde Z/dfdg Z0ej	
d,dd*gdhdi Z1ej	
d)d*d1gej	
d,dd*gdjdk Z2ej	
d,dd*gdldm Z3ej	
d,dd*gdndo Z4ej	
d)ejegej	
d,dd*gdpdq Z5drds Z6dtdu Z7dvdw Z8ej	
dxde9dygdzd{fd*e9d|gfgd}d~ Z:dd Z;dd Z<dd Z=dd Z>dd Z?dd Z@ej	
dddgej	
ddd*gej	
deAjBeAjAegdd ZCej	
dg ddd ZDej	
dg ddd ZEdd ZFej	
dg ddd ZGdd ZHej	
dg ddd ZIdd ZJdd ZKdd ZLeMjNej	jOdd ZPeMjNej	jOej	
ddeQjRddgddzgdeQjRddggdd ZSdd ZTdd ZUej	
ddd*gej	
dddgej	
deQjVeWgdd ZXdd ZYdd ZZdd Z[dd Z\ddĄ Z]ddƄ Z^ddȄ Z_ej	j$e`ddOej	
ded˃eddded΃gddЄ Zaej	j$e`ddOej	
deQjbdddԍeQjbdddd֍eQjbdddԍgddل Zcddۄ Zdeejfdd݄ Zgdd߄ Zhdd Ziej	
dejjkd ejjkd  gdd Zlej	
dejjkd ejjkd  gej	j$emj% ddOdd Zndd Zodd Zpdd Zqdd Zrej	
dd1ddgddgddgddgddggej	
dddgddgddggdd Zsdd Ztej	
d)deedgdd Zudd Zvej	
dewddgd dggddgdddgddgd dggdfewddgd dggddgdxdddgddgd dggdfewddgd dggddgddgddggdddgddgd dggdfe9g ddddg dd	fe9g dddxddg dd	fe9ddgdddgddggd
dddgd	fgdd Zyej	
dewddgd dggddgdewddgd dggddgdxdewddgd dggddgddgddggde9g ddde9g dddxde9ddgdddgddggd
gdd Zzej	
dg ddd Z{ej	
dddgej	
ddd*gdd Z|dd Z}ej	
dddgdd Z~ej	
dddejddej	jd ejddej	jd gd!d" Zej	
d#g d$d%d& Zej	
dg d'd(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zej	
d2ewg dg d3d4d5fgd6d7 Zej	je oed8d*d9d:d; Zd<d= Zd>d? Zd@dA Zd1S (B  TestPandasContainerT)autousec                 c   s    t  | _d V  d S N)
_cat_framecopycategoricalselfr)   r)   r*   setup7   s   

zTestPandasContainer.setupc                 C   s    t  }d|_|jd |_|S )Nts)r$   makeTimeSeriesr   index
_with_freq)r3   serr)   r)   r*   datetime_series=   s   z#TestPandasContainer.datetime_seriesc                 C   s   t t }|jd |_|S r.   )r	   r$   getTimeSeriesDatar7   r8   r3   dfr)   r)   r*   datetime_frameF   s   z"TestPandasContainer.datetime_framec                 C   sN   t ddgddggddgddgd	}t|j|d
|d
}| }t||| d S )Nabcdz	index " 1z	index / 2za \ bzy / zr7   r#   r(   r	   r   to_jsonr0   r+   r3   r(   r=   r&   r'   r)   r)   r*    test_frame_double_encoded_labelsN   s   z4TestPandasContainer.test_frame_double_encoded_labelsr(   )splitr   r   c                 C   sN   t ddgddggddgddgd}t|j|d	|d	}| }t||| d S )
Nr?   r@   rA   rB      xyrC   rD   rE   rG   r)   r)   r*   test_frame_non_unique_indexZ   s   "z/TestPandasContainer.test_frame_non_unique_indexr7   r#   c                 C   sn   t ddgddggddgddgd}d	| d
}tjt|d |j|d W d    d S 1 s0w   Y  d S )Nr?   r@   rA   rB   rJ   rK   rL   rC   z+DataFrame index must be unique for orient=''matchrD   r	   pytestraises
ValueErrorrF   r3   r(   r=   msgr)   r)   r*   "test_frame_non_unique_index_raisesb   s
   ""z6TestPandasContainer.test_frame_non_unique_index_raisesrI   r   datar?   r@   rA   rB   g      ?g      @g      @g      @rJ      2013010120130102c                 C   s   t |ddgddgd}t|j|d|dgd}|dkrBt |}|jd d df jd	krA|jd d df tjd
 |jd d df< n|dkrH|}t	|| d S )NrJ      rK   rC   rD   )r(   convert_datesr   r   datetime64[ns]@B rI   )
r	   r   rF   ilocr   viewnpr   r$   r%   )r3   r(   rX   r=   r&   r'   r)   r)   r*   test_frame_non_unique_columnsi   s   ,z1TestPandasContainer.test_frame_non_unique_columns)r7   r#   r   c                 C   sn   t ddgddggddgddgd}d	| d
}tjt|d |j|d W d    d S 1 s0w   Y  d S )Nr?   r@   rA   rB   rJ   r\   rK   rC   z-DataFrame columns must be unique for orient='rN   rO   rD   rQ   rU   r)   r)   r*   $test_frame_non_unique_columns_raises   s
   ""z8TestPandasContainer.test_frame_non_unique_columns_raisesc                 C      |  |j ddksJ d S )Nr#   rD   rF   )r3   float_framer)   r)   r*   test_frame_default_orient      z-TestPandasContainer.test_frame_default_orientr   Fconvert_axesnumpyc           	      C   s2   |j |d}t|||||d}|}t||| d S )NrD   r(   rj   rk   r   )rF   r   r+   )	r3   r(   rj   rk   r   rg   rX   r&   r'   r)   r)   r*   test_roundtrip_simple   s   
z)TestPandasContainer.test_roundtrip_simplec           	      C   sX   |j |d}t|||||d}|}|r$trt r$|s$|dkr$|tj}t||| d S )NrD   rl   rI   )rF   r   r   r   astyperb   int32r+   )	r3   r(   rj   rk   r   	int_framerX   r&   r'   r)   r)   r*   test_roundtrip_intframe   s    
z+TestPandasContainer.test_roundtrip_intframeNU3c           
      C   s
  t tddd tdD dd tdD |d}|r.|dkr.|d	kr.|jtjjd
d |j	|d}t
|||||d}| }	|sI|	tj}	|r`|dv r`|	jtj|	_|	jtj|	_n|dkro|ro|	jtj|	_n|r}|d	kr}|	jtj|	_t||	| d S )N)      c                 S      g | ]}t |qS r)   str.0ir)   r)   r*   
<listcomp>       z?TestPandasContainer.test_roundtrip_str_axes.<locals>.<listcomp>rt   c                 S   ru   r)   rv   rx   r)   r)   r*   r{      r|   rs   )r#   r7   r   rr   rI   Can't decode directly to arrayreasonrD   rl   rC   r   )r	   rb   zerosr!   node
add_markerrR   markxfailrF   r   r0   rn   r   r#   r7   r+   )
r3   requestr(   rj   rk   r   r=   rX   r&   r'   r)   r)   r*   test_roundtrip_str_axes   s2   
z+TestPandasContainer.test_roundtrip_str_axesc                 C   s   |dv r|j tjjd| dd | jj|d}|r/|dv r/|j tjjd| dd t||||d	}| j }|j	
t|_	d |j	_|sQ|d
krQ| }t||| d S )NrC   z.Can't have duplicate index values for orient 'z')r~   rD   )r   r   zOrient z is broken with numpy=Truer(   rj   rk   r7   )r   r   rR   r   r   r1   rF   r   r0   r7   rn   rw   r   
sort_indexr+   )r3   r   r(   rj   rk   rX   r&   r'   r)   r)   r*   test_roundtrip_categorical   s$   

z.TestPandasContainer.test_roundtrip_categoricalc                 C   sx   |j |d}t||||d}| }|r"|jt|_|jt|_|r4|dkr4|jdgddjdd}t	
|| d S )	NrD   r   r   r   rJ   axisTr   )rF   r   r0   r7   rn   floatr#   reindexr    r$   r%   )r3   r(   rj   rk   empty_framerX   r&   r'   r)   r)   r*   test_roundtrip_empty   s   z(TestPandasContainer.test_roundtrip_emptyc           	      C   sb   |j |d}t||||d}| }|s)|jtjd }|dkr&|t}||_t	||| d S )NrD   r   r_   rI   )
rF   r   r0   r7   ra   rb   r   rn   rw   r+   )	r3   r(   rj   rk   r>   rX   r&   r'   idxr)   r)   r*   test_roundtrip_timestamp  s   
z,TestPandasContainer.test_roundtrip_timestampc                 C   s   |r|dkr|j tjjdd tg d}g dg dg dg dd	}t||d
}|j|d}t	||||d}	|
 }
|
jdi |
dtj}
|sX|dkrX|
 }
t|	|
| d S )NrI   r}   r~   )r?   r@   rA   rB   e)              ?       @      @      @)r   r   r   r   r   )foo1foo2foo3foo4foo5)TFTFTABCD)rX   r7   rD   r   numberr7   r)   )r   r   rR   r   r   pdIndexr	   rF   r   r0   assignselect_dtypesrn   rb   r   r   r+   )r3   r   r(   rj   rk   r7   r   r=   rX   r&   r'   r)   r)   r*   test_roundtrip_mixed  s$   z(TestPandasContainer.test_roundtrip_mixedz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:Shape of passed values is \(3, 2\), indices imply \(2, 2\)zHPassed arrays should have the same length as the rows Index: 3 vs 2 rows)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 columnsrI   )zN{"badkey":["A","B"],"index":["2","3"],"data":[[1.0,"1"],[2.0,"2"],[null,"3"]]}zunexpected key\(s\): badkeyrI   c                 C   sD   t jt|d tt||d W d    d S 1 sw   Y  d S )NrO   rD   )rR   rS   rT   r   r   )r3   rX   rV   r(   r)   r)   r*   $test_frame_from_json_bad_data_raises6  s   %"z8TestPandasContainer.test_frame_from_json_bad_data_raisesc                 C   s   t ddgg dg}t|j|d|||d}t|jd s J t ddgg d	g}t|j|d|||d}t|jd s@J d S )
NrJ   r\   rt   r      rD   )r(   rj   r   r   r\   12)456)r	   r   rF   rb   isnanr`   )r3   r(   rj   rk   r   num_dfr&   obj_dfr)   r)   r*   !test_frame_from_json_missing_data^  s    

z5TestPandasContainer.test_frame_from_json_missing_datac                 C   s(   t d|d}ttjg}t|| d S )Nz[null]r   )r   r	   rb   nanr$   r%   )r3   r(   r   r&   r'   r)   r)   r*   (test_frame_read_json_dtype_missing_valuet  s   z<TestPandasContainer.test_frame_read_json_dtype_missing_valueinfc                 C   sF   t ddgg dg}||jd< t| |d}t|jd s!J d S )NrJ   r\   r   r   r   )r	   locr   rF   rb   r   r`   )r3   r(   r   r   r=   r&   r)   r)   r*   test_frame_infinity}  s   
z'TestPandasContainer.test_frame_infinityz$not compliant on 32-bit, xref #15865r~   zvalue,precision,expected_val))gffffff?rJ   r   )g333333?rJ   r   )g333333rJ   g       )gףp=
?r\   r   )gCl?rY   r   )g?r   r   c                 C   s2   t d|ig}|j|d}|d| dksJ d S )Na_float)double_precisionz{"a_float":{"0":}}r	   rF   )r3   value	precisionexpected_valr=   encodedr)   r)   r*   "test_frame_to_json_float_precision  s   z6TestPandasContainer.test_frame_to_json_float_precisionc                 C   P   t g d}d}tjt|d |jdd W d    d S 1 s!w   Y  d S NrJ   r\   rY   z+Invalid value 'garbage' for option 'orient'rO   garbagerD   rQ   )r3   r=   rV   r)   r)   r*   test_frame_to_json_except  
   "z-TestPandasContainer.test_frame_to_json_exceptc                 C   sf   t ddgd}|jrJ tjt| t|jd|dd t dg ig djd	d
}d}||ks1J d S )Njimjoer#   r   Fcheck_index_typetestr7   r#   rD   z{"test":{}})r	   _is_mixed_typer$   r%   r   rF   dictdtypesr3   r=   r&   r'   r)   r)   r*   test_frame_empty  s   
z$TestPandasContainer.test_frame_emptyc                 C   sP   t ddgd}|d d|d< |jsJ tjt| t|jd|dd d S )Nr   r   r   i8r   Fr   )	r	   rn   r   r$   r%   r   rF   r   r   r<   r)   r)   r*   test_frame_empty_mixedtype  s   

z.TestPandasContainer.test_frame_empty_mixedtypec                 C   s   g dg dg dg dg}t |tdg dd}|jsJ | }dD ]}|j|d	}t||d
d}t|| q$t	t
||_|jdd	}t|dd
d}t|| t	|jd |_|jdd	}t|dd
d}t|| d S )N)
   rJ   r   皙?g{Gz?)   r\   r   g?g{Gz?)   rY   r   g333333?gQ?)(   rt   quxg?g{Gz?abcd)1st2nd3rd4th5thrC   )rI   r7   r#   rD   Fr(   rj   r   rJ   r   )r	   listr   r0   rF   r   r$   r%   rb   aranger"   r7   shaper#   )r3   valsr=   rightr(   inpleftr)   r)   r*   test_frame_mixedtype_orient  s,   
z/TestPandasContainer.test_frame_mixedtype_orientc           
      C   s   t dd}tt|d d}tg dg dg dg dg dgg d	|d
}td|d< td|jd|j	df< |d |d< t j
|jd|j	df< |ddd}tj|d}t|}t|| |jdgdd}tj|d}t|}	t||	 d S )Nz
2000-01-03z
2000-01-07freq)gÉ?gz~Kc?gX7?gH/ƿ)g|RпgXgsBfg(ƿ)g<1=?g9?gg??gLł
)gJQg[r?T?gj<DH>?g-ѿ)gIEx?gW!i`ygP04?g+]5?r   r#   r7   z19920106 18:21:32.12daterZ   rY   modifiedrJ   iojsonrX   ztsframe_v012.jsonr   ztsframe_iso_v012.json)r   
date_ranger
   rb   asarrayr	   r   r`   r#   get_locNaTospathjoinr   r$   r%   r   )
r3   datapathdtir=   dirpathv12_jsondf_unserdf_isov12_iso_jsondf_unser_isor)   r)   r*   test_v12_compat  s0   z#TestPandasContainer.test_v12_compatc                 C   s   t jdddd}tt|d d}tg dg dg dg d	g d
g dd|d}|jd|_t|jdddd}t	j
||ddddd d S )N20000101r   H)periodsr   r   )
g}S? wgbm?gz(~J	?g1?gk*MgvTj?g7j	" Y?gp+KS(g񒬁?gZtSy)
iL,i_}i4ziKeiL&i%giDiY)L i;eiD )
78c608f164a9974313d2ff52ca7f4af297236474bde7e2141a6bde47b1190be57a6691448d64d068)
gD!gIxJ g%
@gP\<g޿gPl?gFzn?g5mH/?gpH%gI?)
14f04af9d085da904bcfac8381504caf2ffef4a908e2f5c407e1af03addbd4a71f6a09ba4bfc4d87)
i/iiYi6iI i;>i	i( i0q{iѪ)float_1int_1str_1float_2str_2int_2r   unicoderI   rD   T)r   check_column_type	by_blockscheck_exact)r   r   r
   r   r	   r#   rn   r   rF   r$   r%   )r3   r7   df_mixeddf_roundtripr)   r)   r*   test_blocks_compat_GH9037  s,   JO
z-TestPandasContainer.test_blocks_compat_GH9037c           
      C   s  G dd d}d}||}t d|jgi}| d| dks!J t d|gi}d}tjt|d |  W d    n1 s@w   Y  t |gd	gd
ddgd}tjt|d |  W d    n1 shw   Y  |jtd}d| d}	||	ksJ |jtdd| dksJ d S )Nc                   @   s"   e Zd Zdd ZdefddZdS )zFTestPandasContainer.test_frame_nonprintable_bytes.<locals>.BinaryThingc                 S   s   || _ t|| _d S r.   )hexedbytesfromhexbinary)r3   r(  r)   r)   r*   __init__R  s   zOTestPandasContainer.test_frame_nonprintable_bytes.<locals>.BinaryThing.__init__returnc                 S   s   | j S r.   )r(  r2   r)   r)   r*   __str__V  s   zNTestPandasContainer.test_frame_nonprintable_bytes.<locals>.BinaryThing.__str__N)__name__
__module____qualname__r,  rw   r.  r)   r)   r)   r*   BinaryThingQ  s    r2  574b4454ba8c5eb4f98a8f45r   z{"A":{"0":"z"}}z6Unsupported UTF-8 sequence length when encoding stringrO   rJ   r   r   r   r   default_handlerz"},"B":{"0":1}})r	   r(  rF   rR   rS   OverflowErrorrw   )
r3   r2  r(  binthingdf_printabledf_nonprintablerV   r%  r&   r'   r)   r)   r*   test_frame_nonprintable_bytesN  s(   



z1TestPandasContainer.test_frame_nonprintable_bytesc                 C   s<   t dd dgddgi }ddd  d}||ksJ d S )Nr   i rJ   r   i9  {"z":{"0":1},"foo":{"0":1337}}r   r3   r&   r'   r)   r)   r*   test_label_overflowt  s   z'TestPandasContainer.test_label_overflowc                 C   s   t ddgddgd}d}tjt|d |jdd W d    n1 s$w   Y  t|t|jd	dd	d
d t|jdddd
d}t|j	|j	 d S )Nr?   r@   rJ   r   z.Series index must be unique for orient='index'rO   r7   rD   rI   series)r(   typr   )
r   rR   rS   rT   rF   r$   assert_series_equalr   assert_numpy_array_equalr   )r3   srV   unserializedr)   r)   r*   test_series_non_unique_indexz  s   z0TestPandasContainer.test_series_non_unique_indexc                 C   re   Nr7   rD   rf   )r3   string_seriesr)   r)   r*   test_series_default_orient  ri   z.TestPandasContainer.test_series_default_orientc                 C   R   |j |d}t|d||d}|}|dv r|jdd}|dkr!d |_t|| d S NrD   r?  r@  r(   rk   r   r   Tr   rI   rF   r   r    r   r$   rA  )r3   r(   rk   rG  rX   r&   r'   r)   r)   r*   test_series_roundtrip_simple     z0TestPandasContainer.test_series_roundtrip_simplec                 C   sT   |j |d}t|d|||d}|}|dv r|jdd}|dkr"d |_t|| d S )NrD   r?  )r@  r(   rk   r   rL  Tr   rI   rM  )r3   r(   rk   r   object_seriesrX   r&   r'   r)   r)   r*   test_series_roundtrip_object  s   z0TestPandasContainer.test_series_roundtrip_objectc                 C   sT   |j |d}t|d||d}|}|dv r|jdd}n|jt|_t|| d S )NrD   r?  rK  rL  Tr   )rF   r   r    r7   rn   r   r$   rA  )r3   r(   rk   empty_seriesrX   r&   r'   r)   r)   r*   test_series_roundtrip_empty  s   z/TestPandasContainer.test_series_roundtrip_emptyc                 C   rI  rJ  rM  )r3   r(   rk   r:   rX   r&   r'   r)   r)   r*    test_series_roundtrip_timeseries  rO  z4TestPandasContainer.test_series_roundtrip_timeseriesc                 C   s\   t tdg dd}|j|d}t|d||d}| }|dv r&|jdd	}t|| d S )
Nr   r?   r@   rA   rB   r   fr   rD   r?  rK  rL  Tr   )r   r!   rF   r   r0   r    r$   rA  )r3   r(   rk   r   rC  rX   r&   r'   r)   r)   r*   test_series_roundtrip_numeric  s   z1TestPandasContainer.test_series_roundtrip_numericc                 C   r   r   )r   rR   rS   rT   rF   )r3   rC  rV   r)   r)   r*   test_series_to_json_except  r   z.TestPandasContainer.test_series_to_json_exceptc                 C   s2   t g d}t| ddd}tj||dd d S )N=
ףp=@rZ  rZ  r?  T)r@  precise_floatFr   )r   r   rF   r$   rA  r3   rC  r&   r)   r)   r*   #test_series_from_json_precise_float  s   z7TestPandasContainer.test_series_from_json_precise_floatc                 C   s>   t g d}t| dtjd}t dgd }t|| d S )NrY  r?  r@  r   rt   rY   )r   r   rF   rb   r   r$   rA  )r3   rC  r&   r'   r)   r)   r*   test_series_with_dtype  s   z*TestPandasContainer.test_series_with_dtypezdtype,expected
2000-01-01r^   r   l    ,Uqc                 C   s4   t dgdd}| }t|d|d}t|| d S )Nr`  r^   r   r?  r^  )r   rF   r   r$   rA  )r3   r   r'   rC  rX   r&   r)   r)   r*   test_series_with_dtype_datetime  s   z3TestPandasContainer.test_series_with_dtype_datetimec                 C   s4   t g dg dg}t| dd}t|| d S )NrY  T)r[  r	   r   rF   r$   r%   r3   r=   r&   r)   r)   r*   "test_frame_from_json_precise_float  s   z6TestPandasContainer.test_frame_from_json_precise_floatc                 C   s6   t tdg ddd}t| d d}t|| d S )Nr   rU  r   )r7   r   r@  )r   r!   r   rF   r$   rA  r\  r)   r)   r*   test_typ  s   zTestPandasContainer.test_typc                 C   sf   t g dg dg}t| }t|| t g dg ddg dd}t| }t|| d S )Nr   r   r?   r@   )r   r   r   r   rb  rc  r)   r)   r*   test_reconstruction_index  s   z-TestPandasContainer.test_reconstruction_indexc                 C   sR   t d}|||fD ]}|| t| qW d    d S 1 s"w   Y  d S )N	test.json)r$   ensure_cleanrF   r   )r3   rg   rp   r>   r   r=   r)   r)   r*   	test_path  s   

"zTestPandasContainer.test_pathc                 C   sR   |  }t|}t|| |  }t|dd}tj||dd |jd u s'J d S )Nr?  re  F)check_names)rF   r   r$   r%   rA  r   )r3   r:   r>   r   r&   r)   r)   r*   test_axis_dates	  s   z#TestPandasContainer.test_axis_datesc                 C   s   |}t d|d< | }t|}t|| d|d< |jdd}t|dd}| }|d jd	|d< |d d
|d< t|| t	t d|j
d}| }t|dd}t|| d S )NrZ   r   r   r   ns	date_unitFr]   r   r   r   r?  re  )r   rF   r   r$   r%   r0   r   ra   rn   r   r7   rA  )r3   r:   r>   r=   r   r&   r'   r5   r)   r)   r*   test_convert_dates  s    z&TestPandasContainer.test_convert_datesdate_formatepochiso	as_objectdate_typc                 C   sl   |ddddt jg}|r|d t||d}|j|d}|dkr$d}nd	}|r.|d
d}||ks4J d S )Ni  rJ   )yearmonthdayr?   r   rs  rt  z+{"1577836800000":1577836800000,"null":null}zC{"2020-01-01T00:00:00.000Z":"2020-01-01T00:00:00.000Z","null":null}}	,"a":"a"})r   r   appendr   rF   replace)r3   rs  rv  rw  rX   r9   r&   r'   r)   r)   r*   test_date_index_and_values/  s   
z.TestPandasContainer.test_date_index_and_values
infer_word)
trade_timer   datetimesold_atr   	timestamp
timestampsc                 C   sf   ddl m} dd|diddig}tdtdgdtjggd|gd}t||d|g }t|| d S )	Nr   dumpsidrJ   l    $Ar\   z
2002-11-08r   )	pandas.io.jsonr  r	   r   r   r   r   r$   r%   )r3   r  r  rX   r'   r&   r)   r)   r*   test_convert_dates_inferF  s   z,TestPandasContainer.test_convert_dates_inferzdate,date_unit))20130101 20:43:42.123N)20130101 20:43:42rC  )r  ms)z20130101 20:43:42.123456us)z20130101 20:43:42.123456789rn  c                 C   s   |}t ||d< tj|jd|jdf< tj|jd|jdf< |r*|jd|d}n|jdd}t|}| }|j	
d|_	|d j
d|d< t|| d S )Nr   rJ   r   ru  rs  rp  r{  UTC)r   r   r   r`   r#   r   rF   r   r0   r7   tz_localizedtr$   r%   )r3   r   rp  r>   r=   r   r&   r'   r)   r)   r*   test_date_format_frame]  s   z*TestPandasContainer.test_date_format_framec                 C   sJ   |}d}t jt|d |jddd W d    d S 1 sw   Y  d S )N*Invalid value 'foo' for option 'date_unit'rO   ru  r   r  )rR   rS   rT   rF   )r3   r>   r=   rV   r)   r)   r*   test_date_format_frame_raisesw  s
   "z1TestPandasContainer.test_date_format_frame_raisesc                 C   s   t t||jd}tj|jd< tj|jd< |r|jd|d}n|jdd}t|dd}| }|j	d	|_|j
	d	}t|| d S )
Nr   rJ   r   ru  r  r{  r?  re  r  )r   r   r7   r   r   r`   rF   r   r0   r  r  r$   rA  )r3   r   rp  r:   r5   r   r&   r'   r)   r)   r*   test_date_format_series}  s   z+TestPandasContainer.test_date_format_seriesc                 C   sX   t td|jd}d}tjt|d |jddd W d    d S 1 s%w   Y  d S )Nr  r   r  rO   ru  r   r  )r   r   r7   rR   rS   rT   rF   )r3   r:   r5   rV   r)   r)   r*   test_date_format_series_raises  s
   "z2TestPandasContainer.test_date_format_series_raisesunit)rC  r  r  rn  c                 C   s   |}t d|d< |jd}t d|jd|f< t d|jd|f< tj|jd|f< |jd|d	}t||d
}t	|| t|d d
}t	|| d S )Nr  r   z19710101 20:43:42rJ   z21460101 20:43:42r\   rt   rt  r  ro  )
r   r#   r   r`   r   r   rF   r   r$   r%   )r3   r  r>   r=   dlr   r&   r)   r)   r*   test_date_unit  s   z"TestPandasContainer.test_date_unitc                 C   s   d}t | d S )Nad  {
        "status": "success",
        "data": {
        "posts": [
            {
            "id": 1,
            "title": "A blog post",
            "body": "Some useful content"
            },
            {
            "id": 2,
            "title": "Another blog post",
            "body": "More content"
            }
           ]
          }
        })r   )r3   rC  r)   r)   r*   test_weird_nested_json  s   z*TestPandasContainer.test_weird_nested_jsonc                 C   sx   t tjddtdd}td|d< td|d< d|d	< tjddd
|_	|
 }t|tjtjdd}t|| d S )Nr   r\   ABr   rZ   r   intsTboolsr  )r  r  r   )r	   rb   randomrandnr   r   r!   r   r   r7   rF   r   r   bool_r$   r%   )r3   dfj2r   r&   r)   r)   r*   test_doc_example  s   z$TestPandasContainer.test_doc_examplec                 C   s   t ddd}tddgddggddgd}d	}tjt|d
 tj||dd W d    n1 s0w   Y  t d}tddgddggddgd}t|| d S )Nz#[{"a": 1, "b": 2}, {"b":2, "a" :1}]Trk   rJ   r\   r?   r@   r   zDataFrame\.index are different

DataFrame\.index values are different \(100\.0 %\)
\[left\]:  Index\(\['a', 'b'\], dtype='object'\)
\[right\]: RangeIndex\(start=0, stop=2, step=1\)rO   Fr   )r   r	   rR   rS   AssertionErrorr$   r%   )r3   r&   r'   	error_msgr)   r)   r*   test_misc_example  s   z%TestPandasContainer.test_misc_examplec                 C   s<   d}t |}| }t|}t|j|j|jd| d S )Nz<https://raw.github.com/hayd/lahman2012/master/csvs/Teams.csvrC   )	r   read_csvrF   r   r$   r%   r   r7   r#   )r3   csvr=   rC  r&   r)   r)   r*   test_round_trip_exception_  s
   
z.TestPandasContainer.test_round_trip_exception_zfield,dtype
created_atr  tz	closed_at
updated_atc                 C   s&   d}t |dd}|| j|ksJ d S )Nz@https://api.github.com/repos/pandas-dev/pandas/issues?per_page=5Trq  )r   r   )r3   fieldr   urlr&   r)   r)   r*   test_url  s   zTestPandasContainer.test_urlc                 C   sV  dd }t tdtddg}|jdksJ t| dd|}t|| t tdtddgt	d	d
gd}|jdks@J t| dd|}t|| t
tdtddg}|d	 jdkseJ t|t| | t
tddtddgd
dgtjdddd}t|jdd}tj|jdd|d< t|j|d< t|| d S )Nc                 S   s   t j| ddS )Nr  r  )r   to_timedelta)rK   r)   r)   r*   <lambda>  s    z4TestPandasContainer.test_timedelta.<locals>.<lambda>   r   )secondsztimedelta64[ns]r?  re  r   rJ   r   daysr\   rZ   )startr  r?   r@   rA   rn  ro  r  r?   rA   )r   r   r   r   rF   applyr$   rA  r   r   r	   r%   r   r  r?   to_datetimerA   )r3   	converterrC  r&   framer)   r)   r*   test_timedelta  s,   $z"TestPandasContainer.test_timedeltac                 C   sr   t dtdtdgitd}t dt|jd jt|jd jgi}t|j	dddd	id}t
j||d
d d S )Nr?   r  rZ   r   r   rJ   rn  ro  r   Fr   )r	   r   r   objectr   	Timedeltar?   r   r   rF   r$   r%   )r3   r  r'   r&   r)   r)   r*   test_mixed_timedelta_datetime  s   $z1TestPandasContainer.test_mixed_timedelta_datetimetimedelta_typc                 C   sp   |dd|ddt jg}|r|d t||d}|dkr d}nd}|r*|d	d
}|j|d}||ks6J d S )NrJ   r  r\   r?   r   ru  zA{"P1DT0H0M0S":"P1DT0H0M0S","P2DT0H0M0S":"P2DT0H0M0S","null":null}z7{"86400000":86400000,"172800000":172800000,"null":null}r|  r}  r{  )r   r   r~  r   r  rF   )r3   rv  rs  r  rX   r9   r'   r&   r)   r)   r*   test_timedelta_to_json"  s   
z*TestPandasContainer.test_timedelta_to_jsonc                 C   sN   t  }tdd|gi}tddt|gi}t|jtd}tj||dd d S )Nr?      r5  Fr   )r  r	   rw   r   rF   r$   r%   )r3   r   r  r'   r&   r)   r)   r*   test_default_handler9  s
   z(TestPandasContainer.test_default_handlerc                 C   sb   ddl m} dd }dtddtdd	gtd
d dgdddgdg}d}|||dd|ks/J d S )Nr   r  c                 S   s(   t | trdd| jfd| jfgS t| S )N)mathjsComplexreim)
isinstancecomplexrealimagrw   objr)   r)   r*   defaultC  s   
zBTestPandasContainer.test_default_handler_indirect.<locals>.default	   rJ   STRrt   r   zN/Arg  r?   r@   r   zR[9,[[1,null],["STR",null],[[["mathjs","Complex"],["re",4.0],["im",-5.0]],"N\/A"]]]r   r6  r(   )r  r  r	   r  r   )r3   r  r  df_listr'   r)   r)   r*   test_default_handler_indirect@  s   z1TestPandasContainer.test_default_handler_indirectc                 C   sP   t ddtddgtdd tddgdd	d
gd}d}|jtdd|ks&J d S )NrJ   gffffff@rt   r  r   g333333?r   rg  r?   r@   r   zE[["(1+0j)","(nan+0j)"],["(2.3+0j)","(nan+0j)"],["(4-5j)","(1.2+0j)"]]r   r  )r	   r  r   rF   rw   )r3   r=   r'   r)   r)   r*   ,test_default_handler_numpy_unsupported_dtypeU  s   $z@TestPandasContainer.test_default_handler_numpy_unsupported_dtypec                    s   d  fdd}t jt d tdddt gij|d W d    n1 s(w   Y  t jt d tdddtd	d
gij|d W d    d S 1 sPw   Y  d S )Nraisinc                    s   t  r.   )	TypeErrorr  rV   r)   r*   my_handler_raisese  s   zJTestPandasContainer.test_default_handler_raises.<locals>.my_handler_raisesrO   r?   rJ   r\   r5  rt   r  )rR   rS   r  r	   r  rF   r  )r3   r  r)   r  r*   test_default_handler_raisesb  s   "z/TestPandasContainer.test_default_handler_raisesc                 C   sn   t dg di}|d |d< | }|d d|d< || ks#J |d }|d }| | ks5J d S )Nr   )r?   r@   rA   r?   r@   r@   r?   r   category)r	   rF   rn   )r3   r=   r'   rC  scr)   r)   r*   test_categoricalq  s   z$TestPandasContainer.test_categoricalc                 C   s   t jdddd}|dd }t|t jdddd}| }||d< | }|| ks0J t|}t|}| | ksBJ d S )	NrZ   rY   
US/Easternr  r  utcr  r4  r   )r   r   
tz_convertr  r	   r0   rF   r   )r3   tz_rangetz_naiver=   df_naiver'   stzs_naiver)   r)   r*   test_datetime_tz~  s   z$TestPandasContainer.test_datetime_tzc                 C   s   t tjdd}tj|jd d< |d}| }|| ks"J ttjd}tj|jd d< |d}| }|| ksCJ d S )Nr   rt      Sparse)	r	   rb   r  r  r   r   rn   rF   r   )r3   r=   sdfr'   rC  ssr)   r)   r*   test_sparse  s   

zTestPandasContainer.test_sparsezsegfault GH 42130r5   z2013-01-10 05:00:00Zz2013-01-10 00:00:00r  z2013-01-10 00:00:00-0500c                 C   sD   ddl m} d}||dd|ksJ | }||dd|ks J d S )Nr   r  z"2013-01-10T05:00:00.000Z"T	iso_dates)r  r  to_pydatetime)r3   r5   r  expr  r)   r)   r*   test_tz_is_utc  s
   
z"TestPandasContainer.test_tz_is_utcr  z2013-01-01 05:00:00Zr\   r  z2013-01-01 00:00:00r  z2013-01-01 00:00:00-0500c                 C   sl   ddl m} d}d}||dd|ksJ t|}||dd|ks"J td|i}||dd}||ks4J d S )Nr   r  z7["2013-01-01T05:00:00.000Z","2013-01-02T05:00:00.000Z"]zF{"DT":{"0":"2013-01-01T05:00:00.000Z","1":"2013-01-02T05:00:00.000Z"}}Tr  DT)r  r  r
   r	   )r3   r  r  r  dfexpr   r=   r&   r)   r)   r*   test_tz_range_is_utc  s   
z(TestPandasContainer.test_tz_range_is_utcc                 C   s8   t ddd}tddgddggddgd}t|| d S )	N!{"a": 1, "b": 2}
{"b":2, "a" :1}
TlinesrJ   r\   r?   r@   r   r   r	   r$   r%   r=  r)   r)   r*   test_read_inline_jsonl  s   z*TestPandasContainer.test_read_inline_jsonlc                 C   s:   t dd|d}tddgddggddgd}t|| d S )	Nzs3n://pandas-test/items.jsonlT)r  storage_optionsrJ   r\   r?   r@   r   r  )r3   s3_resources3sor&   r'   r)   r)   r*   test_read_s3_jsonl  s
   z&TestPandasContainer.test_read_s3_jsonlc              	   C   s   t d=}t|d}|d W d    n1 sw   Y  t|dd}tddgddggdd	gd
}t || W d    d S 1 sEw   Y  d S )Nztmp_items.jsonwr  Tr  rJ   r\   r?   r@   r   )r$   rj  openwriter   r	   r%   )r3   r   infiler&   r'   r)   r)   r*   test_read_local_jsonl  s   "z)TestPandasContainer.test_read_local_jsonlc                 C   s|   d}t |}t|dd}tddgddggddgd	}t|| d}t|dd}tddgddggddgd	}t|| d S )
Nu5   {"a": "foo”", "b": "bar"}
{"a": "foo", "b": "bar"}
Tr  u   foo”r   r   r?   r@   r   )r   r   r	   r$   r%   r3   r   r&   r'   r)   r)   r*   test_read_jsonl_unicode_chars  s   z1TestPandasContainer.test_read_jsonl_unicode_charsbigNumc                 C   sp   t |tdgd}| }dt| d }||ksJ t|tdgdgd}| }dt| d }||ks6J d S )	N	articleId)r   r7   {"articleId":r|  r   )r   r7   r#   {"0":{"articleId":r   )r   r  rF   rw   r	   )r3   r  r?  r   r'   r=   r)   r)   r*   test_to_json_large_numbers  s   z.TestPandasContainer.test_to_json_large_numberszGH-35279c                 C   s   t dt| d }d}tjt|d t| W d    n1 s"w   Y  t dt| d }tjt|d t| W d    d S 1 sHw   Y  d S )Nr  r|  z#Value is too small|Value is too bigrO   r  r   )r   rw   rR   rS   rT   r   )r3   r  r   rV   r)   r)   r*   test_read_json_large_numbers  s   

"z0TestPandasContainer.test_read_json_large_numbersc                 C   sh   d}t |}t|dd}tddgd}t|| d}t |}t|}tddgdgd	}t|| d S )
Nz'{"articleId": "1404366058080022500245"}r?  re  gg_SDr  r   z.{"0": {"articleId": "1404366058080022500245"}}r   rC   )r   r   r   r$   rA  r	   r%   r	  r)   r)   r*   test_read_json_large_numbers2  s   z1TestPandasContainer.test_read_json_large_numbers2c                 C   s   t ddgddggddgd}|jddd}d	}||ksJ t d
dgddggddgd}|jddd}d}||ks:J tt|dd| t ddgddggddgd}|jddd}d}||ksaJ tt|dd| d S )NrJ   r\   r?   r@   r   r   T)r(   r  z{"a":1,"b":2}
{"a":1,"b":2}
zfoo}r   zfoo"z/{"a":"foo}","b":"bar"}
{"a":"foo\"","b":"bar"}
r  zfoo\za\z4{"a\\":"foo\\","b":"bar"}
{"a\\":"foo\"","b":"bar"}
)r	   rF   r$   r%   r   r   r)   r)   r*   test_to_jsonl  s   z!TestPandasContainer.test_to_jsonlc                 C   s   t d g dg dg dg dg dg dg dtjd	d
dgdtjd	d
dgg	}dd |D }g }dtfD ]}|D ]}|t||d q:q6ddd}|D ]}|| qNd S )Nz3encoding not implemented in .to_json(), xref #13774)   E, 17       a   b   c)r  r  r  r  )s   EE, 17r  r  r  r  )r     r  r  r  )r  r  r  r  )r  r  r  r  )   Ar  r  r  r  r  r  r  r  c                 S   s   g | ]	}d d |D qS )c                 S   s$   g | ]}t |tr|d n|qS latin-1)r  r)  decode)ry   rK   r)   r)   r*   r{   C  s   $ zFTestPandasContainer.test_latin_encoding.<locals>.<listcomp>.<listcomp>r)   )ry   rL   r)   r)   r*   r{   B  s    z;TestPandasContainer.test_latin_encoding.<locals>.<listcomp>r  r   r  c                 S   sZ   t d}| j||d t||d}t j| |dd W d    d S 1 s&w   Y  d S )Nri  )encodingF)check_categorical)r$   rj  rF   r   rA  )rC  r  r   retrr)   r)   r*   	roundtripL  s
   "z:TestPandasContainer.test_latin_encoding.<locals>.roundtripr  )rR   skiprb   r   r  r~  r   )r3   r   examplesr   valr   rC  r)   r)   r*   test_latin_encoding2  s.   


z'TestPandasContainer.test_latin_encodingc                 C   sN   t dtdgi}|jddd }|  |jddd }||ks%J d S )Nr?   rJ   T)r7   deep)r	   rw   memory_usagesumrF   )r3   r=   size_before
size_afterr)   r)   r*   "test_data_frame_size_after_to_jsonU  s
   z6TestPandasContainer.test_data_frame_size_after_to_jsonr   r   r   r   1.2.c                 C   sB   t ddgddgg||d}|jdd}t|dd}t|| d S )NrJ   r\   rY   rt   rC   tablerD   r	   rF   r   r$   r%   )r3   r7   r#   r'   dfjsonr&   r)   r)   r*   .test_from_json_to_json_table_index_and_columns_  s   zBTestPandasContainer.test_from_json_to_json_table_index_and_columnsc                 C   sD   t ddgddgddgd}|jdd	}t|dd	}t|| d S )
NrJ   r\   r   r   r   r   r  r-  rD   r.  )r3   r'   r/  r&   r)   r)   r*   #test_from_json_to_json_table_dtypesj  s   z7TestPandasContainer.test_from_json_to_json_table_dtypes)r@   rA   c                 C   sn   t ddgddgddgd}|jdd	}d
}tjt|d t|d|d W d    d S 1 s0w   Y  d S )NrJ   r\   r   r   r   r   r  r-  rD   z)cannot pass both dtype and orient='table'rO   )r(   r   r	   rF   rR   rS   rT   r   )r3   r   r=   r/  rV   r)   r)   r*   !test_read_json_table_dtype_raisesq  s   "z5TestPandasContainer.test_read_json_table_dtype_raisesc                 C   st   t ddgddggddgddgd	}|jd
d}d}tjt|d t|d
dd W d    d S 1 s3w   Y  d S )NrJ   r\   rY   rt   r   r   r+  r,  rC   r-  rD   z0cannot pass both convert_axes and orient='table'rO   Tr   r2  )r3   r=   r/  rV   r)   r)   r*   (test_read_json_table_convert_axes_raisesz  s   ""z<TestPandasContainer.test_read_json_table_convert_axes_raiseszdata, expectedrt   r   r   )r#   rX   r   r   r   r   r   )r   rX   )r   r7   c                 C   s(   |j ddd}t|}||ksJ d S )NrI   Fr(   r7   )rF   r   loads)r3   rX   r'   r&   r)   r)   r*   test_index_false_to_json_split  s    
z2TestPandasContainer.test_index_false_to_json_splitc                 C   sL   |j ddd}t|}tjjj|ddt|jddd}||ks$J d S )Nr-  Fr5  r   r   rD   )schemarX   )rF   r   r6  r   r   build_table_schemar	   to_dictr3   rX   r&   r'   r)   r)   r*   test_index_false_to_json_table  s   
z2TestPandasContainer.test_index_false_to_json_table)r   r7   r#   r   c                 C   sb   t ddgddggddgd}d}tjt|d	 |j|d
d W d    d S 1 s*w   Y  d S )NrJ   r\   rt   r   r?   r@   r   z?'index=False' is only valid when 'orient' is 'split' or 'table'rO   Fr5  rQ   rU   r)   r)   r*   test_index_false_error_to_json  s
   "z2TestPandasContainer.test_index_false_error_to_jsonr-  c                 C   s@   t ddgddgd}|j||d}t||d}t|| d S )NrJ   r\   rY   rt   rg  r5  rD   r.  )r3   r(   r7   r'   r/  r&   r)   r)   r*   "test_index_false_from_json_to_json  s   z6TestPandasContainer.test_index_false_from_json_to_jsonc                 C   s6   t dddd}tdgtdgddd	}t|| d S )
Nz{"2019-01-01T11:00:00.000Z":88}r?  r7   )r@  r(   X   z2019-01-01 11:00:00r  r  r   )r   r   r
   r$   rA  r=  r)   r)   r*   test_read_timezone_information  s
   z2TestPandasContainer.test_read_timezone_informationzdate_format,key)rt  i \&)ru  
P1DT0H0M0Sc                 C   s@   t dggtdgd}d| d}|j|d}||ksJ d S )NrJ   1Dr   r<  z
":{"0":1}}r{  )r	   r   r  rF   )r3   rs  keyr=   r'   r&   r)   r)   r*   test_timedelta_as_label  s   z+TestPandasContainer.test_timedelta_as_labelzorient,expected)r7   z{"('a', 'b')":{"('c', 'd')":1}})r#   z{"('c', 'd')":{"('a', 'b')":1}} )marksc                 C   s2   t dggdgdgd}|j|d}||ksJ d S )NrJ   rg  )rA   rB   rC   rD   r   r3   r(   r'   r=   r&   r)   r)   r*   test_tuple_labels  s   z%TestPandasContainer.test_tuple_labelsindent)rJ   r\   rt   c                 C   s   t ddgddggddgd}|j|d}d	| }d
| d| | d| | d| d| d| | d| | d| d}||ksAJ d S )Nr   r   r   r   r?   r@   r   rI   z{
z"a":{
z"0":"foo",
z
"1":"baz"
z},
z"b":{
z"0":"bar",
z
"1":"qux"
z}
}r   )r3   rI  r=   r&   spacesr'   r)   r)   r*   test_to_json_indent  s:   z'TestPandasContainer.test_to_json_indent))rI   z{
    "columns":[
        "a",
        "b"
    ],
    "index":[
        0,
        1
    ],
    "data":[
        [
            "foo",
            "bar"
        ],
        [
            "baz",
            "qux"
        ]
    ]
})r   zf[
    {
        "a":"foo",
        "b":"bar"
    },
    {
        "a":"baz",
        "b":"qux"
    }
])r7   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-  ab  {
    "schema":{
        "fields":[
            {
                "name":"index",
                "type":"integer"
            },
            {
                "name":"a",
                "type":"string"
            },
            {
                "name":"b",
                "type":"string"
            }
        ],
        "primaryKey":[
            "index"
        ],
        "pandas_version":"0.20.0"
    },
    "data":[
        {
            "index":0,
            "a":"foo",
            "b":"bar"
        },
        {
            "index":1,
            "a":"baz",
            "b":"qux"
        }
    ]
}c                 C   s:   t ddgddggddgd}|j|dd	}||ksJ d S )
Nr   r   r   r   r?   r@   r   rt   )r(   rI  r   rG  r)   r)   r*   test_json_indent_all_orients  s   wz0TestPandasContainer.test_json_indent_all_orientsc                 C   sB   t jtdd t jdd W d    d S 1 sw   Y  d S )Nzmust be a nonnegative integerrO   rJ  )rR   rS   rT   r	   rF   r2   r)   r)   r*    test_json_negative_indent_raises  s   "z4TestPandasContainer.test_json_negative_indent_raisesc                 C   s:   d}t |}tdtjdtjdtj dg}t|| d S )Nz?["a", NaN, "NaN", Infinity, "Infinity", -Infinity, "-Infinity"]r?   NaNInfinityz	-Infinity)r   r	   rb   r   r   r$   r%   r;  r)   r)   r*   test_emca_262_nan_inf_support  s   z1TestPandasContainer.test_emca_262_nan_inf_supportc                 C   sX   t g d}tt t| dd}t|| W d    d S 1 s%w   Y  d S )Nr   Tr  )r	   r$   assert_produces_warningFutureWarningr   rF   r%   )r3   r'   r&   r)   r)   r*   'test_deprecate_numpy_argument_read_json  s
   "z;TestPandasContainer.test_deprecate_numpy_argument_read_jsonc                 C   s>   t ddiddig}tdddgi}t|}t|| d S )Ncol31900441201190696999Text)r   r  r	   r   r$   r%   )r3   encoded_jsonr'   r&   r)   r)   r*   test_frame_int_overflow  s   z+TestPandasContainer.test_frame_int_overflowzdataframe,expectedr  rK   rL   zU{"(0, 'x')":1,"(0, 'y')":"a","(1, 'x')":2,"(1, 'y')":"b","(2, 'x')":3,"(2, 'y')":"c"}c                 C   s$   |  }|jdd}||ksJ d S rF  )stackrF   )r3   	dataframer'   r?  r&   r)   r)   r*   test_json_multiindex  s   z(TestPandasContainer.test_json_multiindexzlocalhost connection rejected)r   strictc                 C   s   dd l }d\}}tg dg dd}|jd| d| |d d	}	 |dd |dj D v r4d S |d |d8 }|dksEJ dq#)Nr   )pandas-testri  r   )r\   rt   r   r\  zs3:///)r   r   Tc                 s   s    | ]}|j V  qd S r.   )rC  )ry   r  r)   r)   r*   	<genexpr>  s    
z1TestPandasContainer.test_to_s3.<locals>.<genexpr>ra  r   z,Timed out waiting for file to appear on moto)timer	   rF   Bucketobjectsallsleep)r3   r  r  rd  mock_bucket_nametarget_filer=   timeoutr)   r)   r*   
test_to_s3  s   
zTestPandasContainer.test_to_s3c                 C   sD   t |trtjjdd}|j| t|gg }|dks J d S )Nznot implementedr~   z{"0":{"0":null}})	r  r   rR   r   r   r   r   r	   rF   )r3   nulls_fixturer   r   r&   r)   r)   r*   test_json_pandas_nulls  s
   
z*TestPandasContainer.test_json_pandas_nullsc                 C   s(   t ddd}tg d}t|| d S )Nz[true, true, false]r?  re  )TTF)r   r   r$   rA  r=  r)   r)   r*   test_readjson_bool_series  s   z-TestPandasContainer.test_readjson_bool_seriesc                 C   s:   t dtddddgd }| }d}||ksJ d S )NTz
2017-01-20z
2017-01-23r   r   rC   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]  rF   r   r)   r)   r*   test_to_json_multiindex_escape  s   

z2TestPandasContainer.test_to_json_multiindex_escape)r/  r0  r1  rR   fixturer4   r:   r>   rH   r   parametrizerM   rW   r   rc   rd   rh   r   rm   rb   r   rq   float64intr   r   r   r   r   r   r   r   r   r   NINFr   skipifr   r   r   r   r   r   r  r'  r;  r>  rE  rH  rN  rQ  rS  rT  rW  rX  r]  r_  r   ra  rd  rf  rh  rk  rm  rr  r  r   r  r  r  r  r  r  r  r  r  r  r$   networksingler  r   DatetimeTZDtyper  r  r  r  r   r  r  r  r  r  r  r  r  r   r  r   r  r  tdskip_if_not_us_localer  r  r
  sysmaxsizer  r   r  r  r  r$  r*  r0  r1  r3  r4  r	   rename_axisr7  r<  r=  r>  r@  rD  paramr!  rH  rM  rN  rP  rS  rV  r[  r_  r   r   r   rl  rn  ro  rp  r)   r)   r)   r*   r,   2   sL   





	

&
$
	`&









	
	
		
#
$
 (&( 	 (& 
u	

	r,   )0r  r   decimalr   r   r   r   r   r|  rk   rb   rR   pandas.compatr   r   r   r   pandas.util._test_decoratorsutil_test_decoratorsrz  pandasr   r	   r
   r   r   r   r   pandas._testing_testingr$   getSeriesData_seriesd_framer0   r/   r"   catCategoricalIndexr7   r   reversedr   r+   r   filterwarningsr,   r)   r)   r)   r*   <module>   s6     0
