
     jw                     2   d 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	m
Z
mZmZ ddlZddlmZ ddlmZ ddlmZmZmZmZmZ ej        d             Zej        d	             Z G d
 d          Z G d d          Z G d d          Z G d d          ZdS )z#Tests for Table Schema integration.    )OrderedDict)StringION)CategoricalDtypeDatetimeTZDtypePeriodDtype)	DataFrame)as_json_table_typebuild_table_schema!convert_json_field_to_pandas_type!convert_pandas_type_to_json_fieldset_default_namesc            
          t          g dg dt          j        ddd          t          j        ddd	          d
t          j        t          d          d                    S )N            abcr   
2016-01-01dr   freqperiods1hminr   r   )ABCDidxnameindex)r   pd
date_rangetimedelta_rangeIndexrange     C:\Users\Terasoftware\OneDrive\Desktop\faahhh\fyndo\fyndo\venv\Lib\site-packages\pandas/tests/io/json/test_json_table_schema.py	df_schemar1      sv    %%%|#qAAA#D!%@@@		
 	
 huQxxe,,,   r/   c                     t          g dg dt          j        ddd          t          j        ddd	          t          j        t          j        g d                    t          j        t          j        g dd
                    g dt          j        dddd          dt          j        t          d          d                    S )Nr   r   r   r   r   r   r   r   r   Tordered)      ?       @r         @
US/Centralr   r   tz)r    r!   r"   r#   EFGHr$   r%   r'   )r   r)   r*   r+   SeriesCategoricalr,   r-   r.   r/   r0   df_tablerA   )   s    %%%|#qAAA#D!%@@@2>*>*>*>??@@2>*>*>*>MMMNN###|#q\RRR		
 		
 huQxxe,,,   r/   c                   &    e Zd Zd Zd Zd Zd ZdS )TestBuildSchemac                     t          |d          }dddddddddd	d
ddddgdgd}|rdddd|d         d<   ||k    sJ t          |          }d|v sJ d S )NFversionr$   integerr&   typer    r!   stringr"   datetimer#   durationfields
primaryKeyanyr&   rI   extDtyperN   r   pandas_version)r
   )selfr1   using_infer_stringresultexpecteds        r0   test_build_table_schemaz'TestBuildSchema.test_build_table_schema;   s    #Iu=== 	22i00h//j11j11 !'	
 	
  	W-0%X$V$VHXq!!!!!#I..6))))))r/   c                     t          j        g dd          }t          |d          }ddddddgdgd	}||k    sJ t          |          }d
|v sJ d S )Nr   r   r   foor%   FrE   r(   rG   rH   rM   rS   )r)   r?   r
   )rT   srV   rW   s       r0   test_serieszTestBuildSchema.test_seriesM   s    Iiiie,,,#Au555 !)44	22 #)
 
 !!!!#A&&6))))))r/   c                 |    t          t          j        g d          d          }ddddddgdgd}||k    sJ d S )	NrZ   FrE   r(   rG   rH   valuesrM   )r
   r)   r?   )rT   rV   rW   s      r0   test_series_unnamedz#TestBuildSchema.test_series_unnamed[   sk    #BIiii$8$8%HHH !)44!955 #)
 
 !!!!!!r/   c                    |}t           j                            ddg          }||_        t	          |d          }ddddd	dd
d	ddddddddddgddgd}|rdddd|d         d<   dddd|d         d<   ||k    sJ dd g|j        _        d|d         d         d<   ddg|d<   t	          |d          }||k    sJ d S )Nr   r   )r   r   FrE   level_0rJ   rH   level_1rG   r    r!   r"   rK   r#   rL   rM   rP   rQ   rN   r   r   idx0r&   rO   )r)   
MultiIndexfrom_productr(   r
   names)rT   r1   rU   dfr$   rV   rW   s          r0   test_multiindexzTestBuildSchema.test_multiindexf   sH   m((*f)=>>#B666 #H55"I66i00h//j11j11 %i0

 

  	W!$% %HXq!
 .1%X$V$VHXq!!!!! $(.1f%"()!4#B666!!!!!!r/   N)__name__
__module____qualname__rX   r]   r`   rj   r.   r/   r0   rC   rC   :   sP        * * *$* * *	" 	" 	"" " " " "r/   rC   c                   |   e Zd Zej                            deej        ej	        ej
        g          d             Zej                            deej        ej        ej        g          d             Zej                            deej        g          d             Zej                            d ej        dg           ej        dgd	
           ej         ej        dg                     ej         ej        dgd	
                     ej        ddd          g          d             Zej                            d ej        ddge           ej        ddge          g          d             Zej                            d ej        dg           ej        dg           ej         ej        dg                     ej        dg           ej        dg          g          d             Zej                            deej        ej	        ej
        g          d             Zej                            deej        ej        ej        g          d             Z ej                            deej        g          d             Z!ej                            d ej"        d           e#d           e$d d!          g          d"             Z%ej                            d# ej"        d$          g          d%             Z&ej                            d&eg          d'             Z'd( Z(d)S )*TestTableSchemaTypeint_typec                 j    g d}t          t          j        ||          j                  dk    sJ d S )NrZ   dtyperG   r	   nparrayrs   )rT   rp   int_datas      r0    test_as_json_table_type_int_dataz4TestTableSchemaType.test_as_json_table_type_int_data   s<    99!"(88"D"D"D"JKKyXXXXXXr/   
float_typec                 j    g d}t          t          j        ||          j                  dk    sJ d S )Nr5   r6         @rr   numberrt   )rT   ry   
float_datas      r0   "test_as_json_table_type_float_dataz6TestTableSchemaType.test_as_json_table_type_float_data   sG    $__
rx
*EEEKLLPXX	
 	
 	
 	
 	
r/   	bool_typec                 j    ddg}t          t          j        ||          j                  dk    sJ d S )NTFrr   booleanrt   )rT   r   	bool_datas      r0   !test_as_json_table_type_bool_dataz5TestTableSchemaType.test_as_json_table_type_bool_data   sF    5M	rx	CCCIJJiW	
 	
 	
 	
 	
r/   	date_data2016T)utcYr   r   c                 :    t          |j                  dk    sJ d S NrK   r	   rs   )rT   r   s     r0   !test_as_json_table_type_date_dataz5TestTableSchemaType.test_as_json_table_type_date_data   s%     ")/22j@@@@@@r/   str_datar   r   rr   c                 :    t          |j                  dk    sJ d S NrJ   r   )rT   r   s     r0   #test_as_json_table_type_string_dataz7TestTableSchemaType.test_as_json_table_type_string_data   s%    
 "(.11X======r/   cat_datar   c                 :    t          |j                  dk    sJ d S )NrP   r   )rT   r   s     r0   (test_as_json_table_type_categorical_dataz<TestTableSchemaType.test_as_json_table_type_categorical_data   s%     "(.11U::::::r/   	int_dtypec                 0    t          |          dk    sJ d S )NrG   r	   )rT   r   s     r0   "test_as_json_table_type_int_dtypesz6TestTableSchemaType.test_as_json_table_type_int_dtypes   s!    !),,	999999r/   float_dtypec                 0    t          |          dk    sJ d S )Nr}   r   )rT   r   s     r0   $test_as_json_table_type_float_dtypesz8TestTableSchemaType.test_as_json_table_type_float_dtypes   s!    !+..(::::::r/   
bool_dtypec                 0    t          |          dk    sJ d S )Nr   r   )rT   r   s     r0   #test_as_json_table_type_bool_dtypesz7TestTableSchemaType.test_as_json_table_type_bool_dtypes   s!    !*--::::::r/   
date_dtypez<M8[ns]r#   nsr8   c                 0    t          |          dk    sJ d S r   r   )rT   r   s     r0   #test_as_json_table_type_date_dtypesz7TestTableSchemaType.test_as_json_table_type_date_dtypes   s#     "*--;;;;;;r/   td_dtypez<m8[ns]c                 0    t          |          dk    sJ d S )NrL   r   )rT   r   s     r0   (test_as_json_table_type_timedelta_dtypesz<TestTableSchemaType.test_as_json_table_type_timedelta_dtypes   s!    !(++z999999r/   	str_dtypec                 0    t          |          dk    sJ d S r   r   )rT   r   s     r0   %test_as_json_table_type_string_dtypesz9TestTableSchemaType.test_as_json_table_type_string_dtypes   s!    !),,888888r/   c                     t          t          j        dg          j                  dk    sJ t          t	                                dk    sJ d S )Nr   rP   )r	   r)   r@   rs   r   )rT   s    r0   *test_as_json_table_type_categorical_dtypesz>TestTableSchemaType.test_as_json_table_type_categorical_dtypes   sP    !".#"7"7"=>>%GGGG!"2"4"455>>>>>>r/   N))rk   rl   rm   pytestmarkparametrizeintru   int16int32int64rx   floatfloat16float32float64r   boolbool_r   r)   to_datetimer?   period_ranger   objectr,   r   r@   CategoricalIndexr   r   r   r   rs   r   r   r   r   r   r   r.   r/   r0   ro   ro      s       [Z#rx28)LMMY Y NMY [\E2:rz2:+VWW
 
 XW
 [[4*:;;
 
 <;
 [BNF8$$BNF8...BInbnfX..//BInbnfX488899BOFa888	
	 	A A	 	A [	C:V	,	,	,hbhSz.P.P.PQ > >	 > [BNC5!!BNA3BInbnaS))**B$$BNA3	
	 	; ;	 	; [[3"(BH*MNN: : ON: []UBJ
BJ,WXX; ; YX; [\D"(+;<<; ; =<; [BHYKOD,//	
 < < < [Z("(9*=*=)>??: : @?: [[6(339 9 439? ? ? ? ?r/   ro   c                   p   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zej                            d
i i fddiddifg          ej                            ddej        g          d                         Zd Zej                            dej        ej        g          ej                            dddg          d                         Zej                            dddidfddidfddidfddid fdd!id"fd!d#d$d%fdd&id'fd&d(g d)idd* eg d)d+          fd&d(g d)idd* eg d)d+          fdd,id'fg
          d-             Zej                            d.g d/          d0             Zd1 Zej                            d2 ej        d3g          d4d5f ej        d3gd67          d6d5fej                            d8d9g          d:d;gd<fej                            d8d9gd=d>g?          d=d>gd<fej                            d8d9gd=dg?          d=d;gd<fg          d@             Zej                            dA ej        g d47          ej                            dBgdCggdD?          ej                            dBgdCggdE?          g          dF             ZdG Z ej                            dH ej        d3g ej        d3gdI7          dIJ           e!dKd3gi ej        d3gdK7          L           e!dKd3giej                            dIgd3ggdKdIg?          L          g          dM             Z"dN Z#dS )OTestTableOrientc           	         t          j        ddgd          }d|j        _        |                    dd          }t          j        |t          	          }d
|d         v sJ |d                             d
           ddddddg}|dgd}t          d|fdt          ddg          t          ddg          gfg          }||k    sJ d S )Nr   r   r   r%   idtableisoorientdate_formatobject_pairs_hookrS   schemarG   rH   rM   data)r   r   )r   r   )r   r   )r   r   )	r)   r?   r(   r&   to_jsonjsonloadsr   pop)rT   r\   rV   rN   r   rW   s         r0   test_build_seriesz!TestTableOrient.test_build_series   s   Iq!f3''''u==FkBBB6(#33333x-...33c95U5UV"4&996"#Y$9::#Y$9::	
 
 !!!!!!r/   c           
      z   t          ddiddiddiddiddiddiddid	          }t          j        t          |                                                    }t          j        t          j        |                                                    }t          j	        ||           t          j	        ||           d S )
Nrow_0r   Goodsr   u   浦田Uratau0   博多人形(松尾吉将まつお よしまさ)zHakata Dolls Matsuo)_idcategoryrecommender_idrecommender_name_jprecommender_name_enname_jpname_en)
r   r)   	read_jsonr   r   	from_dictr   r   tmassert_frame_equal)rT   ri   result1result2s       r0   #test_read_json_from_to_json_resultsz3TestTableOrient.test_read_json_from_to_json_results  s    |$g.#*A,(/':(/'9#%WX#%:; 

 

 ,x

5566%dj&>&>??
gr***
gr*****r/   c                    |}d|j         _        |                    dd          }t          j        |t
                    }d|d         v sJ |d                             d           ddd	d
dd	ddd	ddd	ddd	dg didddddg diddddddd	ddddg	}|r	dddd|d<   |dgd }t          g d!          t          g d"          t          g d#          t          g d$          g}t          d|fd%|fg          }||k    sJ d S )&Nr$   r   r   r   r   rS   r   rG   rH   r    r!   rJ   r"   rK   r#   rL   enumr   r   r   r;   FrP   constraintsr&   r4   rI   r<   Tr=   r}   r>   r8   )r&   rI   r:   rQ   r   rM   )	r$   r   )r    r   )r!   r   )r"   2016-01-01T00:00:00.000)r#   
P0DT1H0M0S)r;   r   )r<   r   )r=   r5   )r>   z2016-01-01T06:00:00.000Z)	r$   r   )r    r   )r!   r   )r"   z2016-01-02T00:00:00.000)r#   
P0DT1H1M0S)r;   r   )r<   r   )r=   r6   )r>   z2016-01-02T06:00:00.000Z)	r$   r   )r    r   r!   r   )r"   z2016-01-03T00:00:00.000)r#   
P0DT1H2M0Sr;   r   r<   r   )r=   r|   )r>   z2016-01-03T06:00:00.000Z)	)r$   r   )r    r   r   )r"   z2016-01-04T00:00:00.000)r#   
P0DT1H3M0Sr   r   )r=   r7   )r>   z2016-01-04T06:00:00.000Zr   )r(   r&   r   r   r   r   r   )	rT   rA   rU   ri   rV   rN   r   r   rW   s	            r0   test_to_jsonzTestTableOrient.test_to_json  s   7>>FkBBB6(#33333x-... I..),,(++*--*-- &8 	  !'8	  (++*LAA'
,  	K!$eJJF1I"5'::
 
 
  
 
 
  
 
 
  
 
 
 Q5
l 6 2VTNCDD!!!!!!r/   c           	      b   t          j        dddg          }|                    dd          }t          j        |t
                    }|d	                             d
           t          d	ddddddgdgdfdt          ddg          t          ddg          gfg          }||k    sJ d S )Nr   r5   r6   r'   r   r   r   r   r   rS   r(   r}   rH   r_   rG   rM   r   )r(   r5   r_   r   )r(   r6   )r)   r?   r   r   r   r   r   rT   r   rV   rW   s       r0   test_to_json_float_indexz(TestTableOrient.test_to_json_float_indexq  s    y3*---W%@@FkBBBx-...  &-h??%-yAA# (/i 	 #^]$CDD#^]$CDD
 
, !!!!!!r/   c                    t          j        ddd          }t          j        d|          }|                    dd          }t	          j        |t          	          }|d
                             d           dddddddg}|dgd}t          ddg          t          ddg          g}t          d
|fd|fg          }||k    sJ d S )Nr   zQ-JANr   r   r   r   r   r   r   r   rS   zQE-JANr(   rK   )r   r&   rI   r_   rG   rH   rM   )r(   z2015-11-01T00:00:00.000r   )r(   z2016-02-01T00:00:00.000r   )r)   r   r?   r   r   r   r   r   )rT   r$   r   rV   rN   r   rW   s          r0   test_to_json_period_indexz)TestTableOrient.test_to_json_period_index  s    of7A>>>yC  W%@@FkBBBx-... w
CCy11

 #7)<<=}MNN=}MNN
 6 2VTNCDD!!!!!!r/   c           	         t          j        dt          j        ddg                    }|                    dd          }t	          j        |t                    }|d                             d	           t          dd
ddddgidddddgd
gdfdt          ddg          t          ddg          gfg          }||k    sJ d S )Nr   r   r   r   r   r   r   r   rS   r(   rP   r   Fr&   rI   r   r4   r_   rG   rH   rM   r   )r(   r   r   )r(   r   )r)   r?   r   r   r   r   r   r   r   s       r0   test_to_json_categorical_indexz.TestTableOrient.test_to_json_categorical_index  s   yB/c
;;<<W%@@FkBBBx-...  )0(-06c
/C+0	  &.yAA# (/i   #^]$CDD#^]$CDD!
 
6 !!!!!!r/   c                     d}t          j        t          |          5  |                    dd           d d d            n# 1 swxY w Y   |                    dd           |                    d           d S )NzTrying to write with `orient='table'` and `date_format='epoch'`. Table Schema requires dates to be formatted with `date_format='iso'`matchr   epochr   r   r   r   raises
ValueErrorr   )rT   rA   msgs      r0   test_date_format_raisesz'TestTableOrient.test_date_format_raises  s    M 	 ]:S111 	B 	BGAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	U;;;(((((s   AA	Ac                 `    |}g d}t           ||d                    }ddd}||k    sJ d S )NrZ   r&   r%   rG   rH   r   rT   index_or_serieskindr   rV   rW   s         r0   *test_convert_pandas_type_to_json_field_intz:TestTableOrient.test_convert_pandas_type_to_json_field_int  sP    yy24463J3J3JKK"I66!!!!!!r/   c                 `    |}g d}t           ||d                    }ddd}||k    sJ d S )Nr{   r&   r%   r}   rH   r  r  s         r0   ,test_convert_pandas_type_to_json_field_floatz<TestTableOrient.test_convert_pandas_type_to_json_field_float  sP    24463J3J3JKK"H55!!!!!!r/   zdt_args,extra_expr   Tr:   UTCwrapperNc                     g d}t          j        |fi |}|t           j        u rt          j        |d          }t          |          }ddd}|                    |           ||k    sJ d S )Nr{   r_   r%   rK   rH   )r)   r   r?   r   update)rT   dt_args	extra_expr  r   rV   rW   s          r0   /test_convert_pandas_type_to_json_field_datetimez?TestTableOrient.test_convert_pandas_type_to_json_field_datetime  s     ~d..g..bi 	29T111D2488$j99	"""!!!!!!r/   c                 n    t          j        ddd          }t          |          }dddd}||k    sJ d S )	Nr   zY-DECr   r   r_   rK   zYE-DEC)r&   rI   r   )r)   r   r   )rT   arrrV   rW   s       r0   -test_convert_pandas_type_to_json_period_rangez=TestTableOrient.test_convert_pandas_type_to_json_period_range  sK    of7A>>>2377$j(KK!!!!!!r/   r  r4   Fc                     g d}|t           j        u r"t          j         |||          d          }n|t           j        u r |||d          }t	          |          }ddd|i|d}||k    sJ d S )	Nr   r3   catsr%   )r4   r&   rP   r   r   )r)   r@   r?   r   r   )rT   r  r4   r   r  rV   rW   s          r0   2test_convert_pandas_type_to_json_field_categoricalzBTestTableOrient.test_convert_pandas_type_to_json_field_categorical  s     2>! 	;)DDw777fEEECCR(( 	;$tW6:::C2377"D>	
 
 !!!!!!r/   zinp,exprI   rG   r   r}   r   r   r   rL   timedelta64rK   zdatetime64[ns]z	US/Hawaii)rI   r:   zdatetime64[ns, US/Hawaii]rP   r   r   r   )rI   r   r4   )
categoriesr4   rJ   c                 b    ddi}|                     |           t          |          |k    sJ d S )Nr&   r[   )r  r   )rT   inpexpfields       r0   &test_convert_json_field_to_pandas_typez6TestTableOrient.test_convert_json_field_to_pandas_type	  s>    < S0773>>>>>>r/   r  )geopointgeojson	fake_typec                     d|i}t          j        t          d|           5  t          |           d d d            d S # 1 swxY w Y   d S )NrI   z#Unsupported or invalid field type: r   )r   r   r   r   )rT   r  r  s      r0   -test_convert_json_field_to_pandas_type_raisesz=TestTableOrient.test_convert_json_field_to_pandas_type_raises+  s    ]ICII
 
 
 	5 	5 .e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          j        t          j        g d                    }d|j        _        |                    dd          }t          j        |t                    }|d         	                    d           dd	d
dddgiddddg}t          d|dgdfdt          ddg          t          ddg          t          ddg          gfg          }||k    sJ d S )N)r   r   r   r$   r   r   r   r   r   rS   rG   rH   r   r   r   r_   FrP   r   rM   r   r   )r_   r   r   )r_   r   r   )
r)   r?   r@   r(   r&   r   r   r   r   r   )rT   r\   rV   rN   rW   s        r0   test_categoricalz TestTableOrient.test_categorical3  s   Ibn___5566'u==FkBBBx-... I.. &c
3  	 
 fUGDDE#Z$ABB#Z$ABB#Z$ABB

 
 !!!!!!r/   zidx,nm,propr   r(   r&   mynamer%   rb   )r   r   rc   rd   rh   n1n2)rh   c                     t          j        d|          }t          |          }t          |j        |          |k    sJ d S )Nr   )r)   r?   r   getattrr(   )rT   r$   nmpropr   rV   s         r0   test_set_names_unsetz$TestTableOrient.test_set_names_unsetT  sE    6 yC  "4((v|T**b000000r/   r$   r[   bar)rc   rd   )r[   rd   c                     t          |          }d|j        _        t          j                    5  t          |           d d d            d S # 1 swxY w Y   d S )Nr'   r(   )r   r(   r&   r   assert_produces_warningr   )rT   r$   ri   s      r0   #test_warns_non_roundtrippable_namesz3TestTableOrient.test_warns_non_roundtrippable_namess  s     S!!!')) 	" 	"b!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s   AAAc                 R   t          ddggt          j        d          t          j        dd          g          }|                    d	          }t          j        |          }|d
         d         d         d         dk    sJ |d
         d         d         d         dk    sJ d S )Nr   r   r   
   r\   )unitcolumnsr   r   r   rN   r&   r   P0DT0H0M10S)r   r)   	Timestamp	Timedeltar   r   r   )rT   ri   rV   jss       r0   test_timestamp_in_columnsz)TestTableOrient.test_timestamp_in_columns  s    VHr|F33R\"35O5O5OP
 
 
 7++Z(|H%a(04MMMMM(|H%a(0MAAAAAAr/   caser   )r(   r&   r    r'   c                     t          j        t          d          5  |                    d           d d d            d S # 1 swxY w Y   d S )NOverlappingr   r   r   r   )rT   r<  s     r0   test_overlapping_namesz&TestTableOrient.test_overlapping_names  s     ]:];;; 	) 	)LLL(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   A  AAc                    t          t          j                            d                              d          t
          j                            ddg                    }d t          |          d         D             }|g dk    sJ d S )	Nr   )r   r   )r    r!   rb   r'   c                     g | ]
}|d          S r%   r.   ).0xs     r0   
<listcomp>z7TestTableOrient.test_mi_falsey_name.<locals>.<listcomp>  s    FFF!F)FFFr/   rN   )rc   rd   r   r   r   r   )	r   ru   randomdefault_rngstandard_normalr)   rf   rg   r
   )rT   ri   rV   s      r0   test_mi_falsey_namez#TestTableOrient.test_mi_falsey_name  s    I!!!$$44V<<-,,j*-EFF
 
 
 GF%7%;%;H%EFFF;;;;;;;;;r/   )$rk   rl   rm   r   r   r   r   r   r   r  r  r
  r   r   r   r)   r?   r  r  r@   r   r  r   r  r#  r%  r,   rf   rg   r-  from_arraysr1  r;  r   r?  rH  r.   r/   r0   r   r      sh       " " "8+ + +&[" [" ["z" " "<" " "*!" !" !"F
) 
) 
)" " "" " " [r2h%u(FG  [Yry(9::
" 
" ;: 
"" " " [Vbnb6I%JKK[Yu66" " 76 LK"  [i '*h+i &)j!=1j!#34 446QRe_h' "$*OOO#<$ 
 ! OOOUKKK "$*OOO#<# 
 ! OOOTJJJ h*1	
 :? ?; :?
 [U$H$H$HII5 5 JI5" " "B [RXqc]]GV,RXqc)))8V<**J
+CDDI& **,T4L +   t **,T4L +   y!	
 41 15 41
 [BHRg&&&M%%w&8@V%WWM%%w&8@R%SS	
 " " "B B B [BIqc1#C!8!8!8sCCCIsQCj!3(?(?(?@@@Iqc
m//#S#J/OO  	

 
) )
 
)< < < < <r/   r   c                   J   e Zd Zej                            ddd ej        dej        j                  dg          ej                            ddg d	id
g did
g did ej	        ddd          id ej
         ej        g d                    id ej
         ej        g dd                    idg didg didg did ej	        dddd          ig
          d                         Zej                            dg d           ej                            dd! ej        d"dd#$          ig          d%                         Zej                            ddd ej        dej        j                  dg          ej                            ddg d	id
g did
g did ej	        ddd          id ej
         ej        g d                    id ej
         ej        g dd                    idg didg didg did ej	        dddd          ig
          d&                         Zej                            d ej         ed                     ej	        d'dd                              d           ej	        d'ddd                              d          ej                             ej	        d'dd(d          d)d*gg          g          ej                            ddg did+ ej	        d'dd          id ej	        d'ddd,          ig          d-                         Zd. Zej                            d/ddgd0d1gd0dgdd0gdd0gg          d2             Zd3 Zd4 Zej                            d5g d6          d7             ZdS )8TestTableOrientReaderindex_nmNr$   r(   )marksrc   valsintsr   objects)r   r   r   r   )1234date_rangesr   r   r   r   categoricalsr   ordered_catsTr3   floats)r5   r6   r|   r7   g?g@gffffff
@g@boolsTFFT	timezonesr8   r9   c                     t          |t          j        t          d          |                    }|                    d          }t          j        |d          }t          j        ||           d S )Nr   r%   r'   r   r   r   r)   r,   r-   r   r   r   r   rT   rL  rN  recwarnri   outrV   s          r0   test_read_json_table_orientz1TestTableOrientReader.test_read_json_table_orient  sk    8 t28E!HH8#D#D#DEEEjjj((c'222
b&)))))r/   )Nr$   r(   
timedeltasr   r   r   c                 *   t          |t          j        t          d          |                    }|                    d          }t          j        t          d          5  t          j        |d           d d d            d S # 1 swxY w Y   d S )Nr   r%   r'   r   r   zcan not yet read r   )	r   r)   r,   r-   r   r   r   NotImplementedErrorr   )rT   rL  rN  r`  ri   ra  s         r0   "test_read_json_table_orient_raisesz8TestTableOrientReader.test_read_json_table_orient_raises  s     t28E!HH8#D#D#DEEEjjj((].6IJJJ 	. 	.LW----	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s   $BBBc           
         t          |t          j        d t          dd          D             |                    }|                    d          }t          j        |d          }t          j        ||           d S )Nc              3   D   K   | ]}t          j        d |           V  dS )2022QN)r)   Period)rB  qs     r0   	<genexpr>zKTestTableOrientReader.test_read_json_table_period_orient.<locals>.<genexpr>  s2      ==A;1;;''======r/   r      r%   r'   r   r   r^  r_  s          r0   "test_read_json_table_period_orientz8TestTableOrientReader.test_read_json_table_period_orient  s    8 (==q!===H  
 
 
 jjj((c'222
b&)))))r/   z
2020-08-30r   rC  ydateszEurope/Londonc                     t          ||          }|                    d          }t          j        |d          }t	          j        ||           d S )Nr'   r   r   )r   r   r)   r   r   r   )rT   r$   rN  r`  ri   ra  rV   s          r0   %test_read_json_table_timezones_orientz;TestTableOrientReader.test_read_json_table_timezones_orient  sW    D t3'''jjj((c'222
b&)))))r/   c                    t          g dg dt          j        ddd          t          j        t          j        g d                    t          j        t          j        g dd                    g d	t          j        dddd
          g ddt          j        t          d          d                    }t          |                    d                    }t          j	        |d          }t          j        ||           d S )Nr   r   r   r   r   r   Tr3   rY  r8   r9   r[  )r    r!   r"   r;   r<   r=   r>   Ir$   r%   r'   r   r   )r   r)   r*   r?   r@   r,   r-   r   r   r   r   r   )rT   ri   ra  rV   s       r0   test_comprehensivez(TestTableOrientReader.test_comprehensive  s   !\\)))]<c1EEEYr~.B.B.BCCDDYr~.B.B.BDQQQRR)))]<c1VVV///
 
 (588%000
 
 
 rzzz1122c'222
b&)))))r/   index_namesr[   r.  c                    t          ddg dgddg dggddgd	d
ggg d          }||j        _        t          |                    d                    }t          j        |d          }t          j        ||           d S )NArralphar   BeeBeta)r3        (   r    r!   NullEins)
Aussprache
GriechischArgs)r(   r6  r   r   )	r   r(   rh   r   r   r)   r   r   r   )rT   rv  ri   ra  rV   s        r0   rj   z%TestTableOrientReader.test_multiindex2  s     Wlll+eV=M=M=M-NO:/0888
 
 

 %rzzz1122c'222
b&)))))r/   c                     t          g d          }|                                }t          |                    d                    }t	          j        |d          }t          j        ||           d S )Nr   r5  r   r   )r   copyr   r   r)   r   r   r   )rT   ri   rW   ra  rV   s        r0   test_empty_frame_roundtripz0TestTableOrientReader.test_empty_frame_roundtripB  sk    ///7799rzzz1122c'222
h/////r/   c                     d}t          dg di          }t          j        t          |          d          }t	          j        ||           d S )Na  
        {
            "schema":{
                "fields":[
                    {"name":"index","type":"integer"},
                    {"name":"a","type":"string"}
                ],
                "primaryKey":["index"],
                "pandas_version":"0.20.0"
            },
            "data":[
                {"index":0,"a":1},
                {"index":1,"a":2.0},
                {"index":2,"a":"s"}
            ]
        }
        r   )r   r6   r\   r   r   )r   r)   r   r   r   r   )rT   df_jsonrW   rV   s       r0   .test_read_json_orient_table_old_schema_versionzDTestTableOrientReader.test_read_json_orient_table_old_schema_versionJ  sV    " c===122hw//@@@
h/////r/   r   )M2MQ2Qr   2Yc                     t          dddgit          j        ddg|                    }|                    d	          }t          j        |d	          }t          j        ||           d S )
NrO  r   r   z2020-01z2021-06)r   r'   r   r   )r   r)   PeriodIndexr   r   r   r   )rT   r   r`  ri   ra  rV   s         r0   ,test_read_json_table_orient_period_depr_freqzBTestTableOrientReader.test_read_json_table_orient_period_depr_freq`  s}     aV.)Y!7dCCC
 
 
 jjj((c'222
b&)))))r/   )rk   rl   rm   r   r   r   paramxfailr)   r*   r?   r@   rb  r+   rf  rn  r,   r-   
_with_freqrf   rg   rr  ru  rj   r  r  r  r.   r/   r0   rK  rK    s       [	ulfl7&+2CDDDiP  [\\\",,,-,,,-MBM,S!LLLMYRY~r~6J6J6J'K'KLLM		"BN#7#7#7FFF! !
 +++,+++,0001]R] sA,  	
 .* */ 	 6* [Z)?)?)?@@[
**4GGG	HI . .	  A@
. [	ulfl7&+2CDDDiP  [\\\",,,-,,,-MBM,S!LLLMYRY~r~6J6J6J'K'KLLM		"BN#7#7#7FFF! !
 +++,+++,0001]R] sA,  	
 .	* 	*/ 	 6	* [BHUU1XXBM   jBM3l  jM&&!BM,S!UUU#J 	
 ( [+++,mbmLsAFFFG]R] sA/  	
 * * ) @** * *( [
u~t}tUmguEUV 
* 
*	 
*0 0 00 0 0, [V%F%F%FGG* * HG* * *r/   rK  ) __doc__collectionsr   ior   r   numpyru   r   pandas.core.dtypes.dtypesr   r   r   pandasr)   r   pandas._testing_testingr   pandas.io.json._table_schemar	   r
   r   r   r   fixturer1   rA   rC   ro   r   rK  r.   r/   r0   <module>r     s    ) ) # # # # # #                                                   	 	 	    J" J" J" J" J" J" J" J"ZZ? Z? Z? Z? Z? Z? Z? Z?z}< }< }< }< }< }< }< }<@E* E* E* E* E* E* E* E* E* E*r/   