
    <>iD                    x   S SK r S SKrS SKrS SKrS SKrS SKrS SKJr  S SK	J
r
J	r	JrJrJr  S SKrS SKJr  S SKr S SKrS SKJr   \R2                  rS SKJrJ r   S SK!J"r"J#r#J$r$  S SK%J&s  Jr'  S SK!J&s  J(r)  S SK*J+r+  S SK,r- S SK,J.r/   S SK0r1S SK2Jr3  S	S
K4J5r5J6r6  \Rn                  R`                  r8SS jr9     SS jr:SS jr;  SS jr<SS jr= " S S5      r> " S S5      r?\Rn                  R                  S/ SQ5      S 5       rA\Rn                  R                  S/ SQ5      S 5       rB " S S5      rC " S S5      rD " S S5      rE " S S5      rF " S  S!5      rG " S" S#5      rHS$ rIS% rJ " S& S'5      rKS( rLS) rM\Rn                  R                  S*S+/S,/45      S- 5       rNS. rOS/ rPS0 rQ\R                  " \'R                  " \'R                  5      5      S1 5       rUS2 rVS3 rWS4 rXS5 rYS6 rZS7 r[S8 r\S9 r]S: r^S; r_S< r`S= raS> rbS? rcS@ rdSA reSB rfSC rgSD rh\Rn                  R                  SE\-R                  " 5       SF4\-R                  " 5       SG4\-R                  " 5       SH4\-R                  " 5       SI4\-R                  " 5       SJ4\-R                  " 5       SK4\-R                  " 5       SL4\-R                  " 5       SM4\-R                  " 5       SN4\-R                  " 5       SO4\-R                  " 5       SP4\-R                  " 5       SQ4\-R                  " 5       SR4\-R                  " 5       SS4\-R                  " 5       SS4\-R                  " 5       ST4\-R                  " SUSV9ST4\-R                  " 5       SW4\-R                  " \-R                  " \-R                  " 5       5      5      SX4\-R                  " SYSZ5      S[4\-R                  " S\5      S]4\-R                  " S^S_5      S`4\-R                  " Sa5      Sb4\-R                  " S^5      Sb4/5      Sc 5       rSd rSe rSf rSg rSh rSi rSj rSk rSl rSm rSn rSo rSp rSq rSr rSSs jrSt rSu rSv rSw rSx rSy r " Sz S{\-GR,                  5      rSS| jrS} rS~ rS r " S S\-GR,                  5      rS rS rS rS rS r\Rn                  R                  SSSS//5      S 5       rS r\Rn                  R`                  S 5       rS rS rS rS rS r\Rn                  R\                  S 5       rS r\Rn                  R                  S/ SQ5      \Rn                  R                  SSS/5      \Rn                  R                  S\	" SS	S	5      \	" SS	S	5      /5      S 5       5       5       rS r\Rn                  GR\                  S 5       rS rS rS rS rS rS rS rS r\Rn                  GRp                  S 5       rS r\Rn                  GR\                  S 5       rS rg! \ a
    S SKJr   GNf = f! \ a    Sr GNf = f! \ a     GNf = f! \ a     GNf = f)    N)OrderedDict)datedatetimetime	timedeltatimezone)VisibleDeprecationWarning)get_logical_type_pandas_api)invoke_scriptrandom_asciirands)Version)parquet   )dataframe_with_arraysdataframe_with_listsc                 v   [         R                  " 0 S[        R                  " U [        R                  S9_S[        R                  " U [        R
                  S9_S[        R                  " U [        R                  S9_S[        R                  " U [        R                  S9_S[        R                  " U [        R                  S9_S[        R                  " U [        R                  S9_S[        R                  " U [        R                  S9_S	[        R                  " U [        R                  S9_S
[        R                  " U [        R                  S9_S[        R                  " U [        R                  S9_S[        R                  R                  U 5      S:  _S[        R                  " SU SS9_S[        R                  " SU SS9_S[        R                  " SU SS9_S[        R                  " SU SS9_S[        R                  " SU SS9_S[        R                  " SU SS9_[        R                  " SU SS9[        R                  " SU SS9[        U 5       Vs/ s H  n[!        U5      PM     snS /[        U S-
  5       Vs/ s H  n[!        U5      PM     sn-   S /-   S/U -  S.E5      $ s  snf s  snf )Nuint8dtypeuint16uint32uint64int8int16int32int64float32float64boolr   zdatetime[s]2016-01-01T00:00:00.001datetime64[s]zdatetime[ms]datetime64[ms]zdatetime[us]datetime64[us]zdatetime[ns]datetime64[ns]ztimedelta64[s]ztimedelta64[ms]timedelta64[us]timedelta64[ns]    )r'   r(   strstr_with_nulls	empty_str)pd	DataFramenparanger   r   r   r   r   r   r   r   r    randomrandnranger+   )sizexs     X/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pyarrow/tests/test_pandas.py_alltypes_exampler8   C   sh   << 4rxx0"))D		2 	"))D		2 	"))D		2	
 			$bhh/ 	4rxx0 	4rxx0 	4rxx0 	299T4 	299T4 			%) 	ryy!:D'68 			";T(8:  			";T(8:!$ 			";T(8:%( 	"))At3CD)* 	299Q4EF+, 99Q4EF99Q4EF %d,1A,&E$(O#DOqCFO#DDvMTD[5  0 -#Ds   J1J6c                 l   U(       a  [         R                  O[         R                  nUR                  XUU(       a  SOSS9n	U	R	                  US9n
U(       a"  U	R
                  R                  U5      (       d   eUcN  U nUR                   H<  nX   R                  S:X  d  M  X   R                  [        R                  S 05      X'   M>     [        R                  " 5          [        R                  " SS[        5        [         R"                  " XUU(       a  SOS	S
9  S S S 5        g ! , (       d  f       g = f)Nr)   r   )schemapreserve_indexnthreadsuse_threadsobjectignoreelementwise comparison failedequivF)check_dtypecheck_index_type)paRecordBatchTablefrom_pandas	to_pandasr:   equalscolumnsr   replacer0   nanwarningscatch_warningsfilterwarningsDeprecationWarningtmassert_frame_equal)dfexpectedr>   expected_schemarC   r:   r;   as_batchklasstableresultcols               r7   _check_pandas_roundtripr\   b   s    
 'BNNBHHEb-;,7qQ  @E ___5F ||""?3333##C}""h. ( 5 5rvvtn E $ 
	 	 	"57I	K
fK;I5:	= 
#	"	"s    <D%%
D3c                     [         R                  " U SUS9nUb  Uc  UnUb  UR                  U:X  d   e[        R                  " UR                  5       U R                  S9n[        R                  " X5        g )NTrH   typename)	rE   arrayr_   r.   SeriesrI   ra   rR   assert_series_equal)stype_expected_pa_typearrrZ   s        r7   _check_series_roundtripri      sg    
((1$U
3C-5 #xx++++YYs}}QVV4F1%    c                 d   [         R                  " U SX#S9nUR                  5       n[        R                  " U 5      nUc!  UR
                  UR                  5       :X  d   eO"UR
                  X&-  R                  5       :X  d   eUc  Uc  [        R                  " U 5      nO6[        R                  " U 5      R                  5       nS XR                  5       '   UR                  S:X  a!  UR                  [        R                  S 05      n[        R                  " [        R                  " U5      USS9  g )NT)rH   maskr_   r?   Fcheck_names)rE   rb   rI   r.   isnull
null_countsumrc   copyr   rL   r0   rM   rR   rd   )valuesrU   rl   r_   rh   rZ   values_nullss          r7   _check_array_roundtripru      s    
((6t$
BC]]_F99V$L|~~!1!1!3333~~$"5!:!:!<<<<<yy(Hyy(--/H$(HYY[!>>X%''7H299V,hEJrj   c                 |    [         R                  " U SUS9nUR                  5       n[        R                  " X05        g )NTr^   rE   rb   rI   nptassert_array_equal)np_arrayr_   rh   rZ   s       r7   "_check_array_from_pandas_roundtripr{      s-    
((8D
9C]]_F6,rj   c                   d   \ rS rSrSrS rS rS rS r\	R                  R                  SSS	/5      S
 5       rS rS rS rS rS rS rS rS rS rS rS rS r\	R                  R3                  S5      S 5       rS rS rS r\	R                  R                  SSS/5      S 5       rS  rS! r S" r!S# r"S$ r#S% r$S& r%S' r&S( r'S) r(S* r)S+ r*S, r+\	R                  R                  S-\,RZ                  \,R\                  \,R^                  \,R`                  /5      S. 5       r1S/ r2S0 r3S1 r4S2 r5S3 r6S4r7g)5TestConvertMetadata   z1
Conversion tests for Pandas metadata & indices.
c                     [         R                  " S/ SQ05      n[        R                  R	                  U5      nUR                  S5      R                  S:X  d   eg )Nr   r   r)      0)r.   r/   rE   rG   rH   fieldra   selfrT   rY   s      r7   test_non_string_columns+TestConvertMetadata.test_non_string_columns   sD    \\1i.)$$R({{1~""c)))rj   c                 B   [         R                  " / SQ/ SQS.5      nUR                  S5      n[        R                  " [
        5         [        R                  R                  U5      nUR                  S5      R                  S:X  d   e S S S 5        UR                  5       n[        UR                  R                  5      UR                  l
        [        R                  " [
        5         [        XSS9  S S S 5        g ! , (       d  f       Nz= f! , (       d  f       g = f)N      ?       @      @)      @      @      @)r   r   r   1TrU   r;   )r.   r/   	set_indexpytestwarnsUserWarningrE   rG   rH   r   ra   rr   r+   indexr\   )r   rT   rY   rU   s       r7   "test_non_string_columns_with_index6TestConvertMetadata.test_non_string_columns_with_index   s    \\o/BC\\!_ \\+&HH((,E;;q>&&#--- ' 779!(.."5"56\\+&#B379 '& '& '&s   	AC?+D?
D
Dc                    [         R                  " / SQ/ SQ/ SQS.SS/S9n[        R                  R	                  USS/S9n[        R                  R	                  USS/   5      nUR                  U5      (       d   e[        R                  R	                  USS/S9n[        R                  R	                  USS/   5      nUR                  U5      (       d   eg )Nr   )r   r   r   )r)         r   r   r)   r   r   rK   )r.   r/   rE   rG   rH   rJ   rF   )r   rT   rY   rU   record_batch_tablerecord_batch_expecteds         r7   test_from_pandas_with_columns1TestConvertMetadata.test_from_pandas_with_columns   s    \\iI)D#$a&* $$R!Q$888''Aq6
3u%%%%^^77QF7K " : :2q!f: F$++,>????rj   c                 p    [         R                  " S/ SQ05      nS/UR                  l        [	        USS9  g )Ndatar   aTr;   )r.   r/   rK   namesr\   r   rT   s     r7   %test_column_index_names_are_preserved9TestConvertMetadata.test_column_index_names_are_preserved   s-    \\69-.5

48rj   tzNEurope/Brusselsc           
          [         R                  " [        R                  R	                  SS5      [         R
                  " SSSUS9S9n[        USS9  g )	Nr   r   z
2021-01-0150D)periodsfreqr   r   Tr   )r.   r/   r0   r2   r3   
date_ranger\   )r   r   rT   s      r7    test_column_index_names_datetime4TestConvertMetadata.test_column_index_names_datetime   sB    
 \\IIOOAq!MM,"M
 	 48rj   c           
         [         R                  " [        R                  " S5      [        R                  " S5      //[         R                  R                  [        R                  " S5      /[        R                  " S5      [        R                  " S5      //5      [        R                  " S5      /S9n[        USS	9  g )
Nr      r   r)   r   r   )rK   r   Tr   )r.   r/   decimalDecimal
MultiIndexfrom_productr\   r   s     r7   $test_column_index_names_with_decimal8TestConvertMetadata.test_column_index_names_with_decimal   s    \\ooa '//!"456MM..//!$%(:GOOA<N'OP ??1%&
 	 48rj   c           
         Sn[         R                  " S/ SQ0[         R                  " SSSUS9S9n[         R                  " S/ S	Q0[         R                  " SS
5      S9n[        R                  R                  U5      n[        R                  R                  U5      n[        UR                  5      S:X  d   eUR                  5       n[        R                  " Xb5        [        UR                  [         R                  5      (       d   e[        R                  " UR                  S5      S:X  d   eUR                  R                  U:X  d   eUR                  5       n[        R                  " Xs5        [        UR                  [         R                  5      (       d   e[        R                  " UR                  S5      S:X  d   eUR                  R                  b   eg )Nfoor   r   r)   r   r   r      r)   stepra   r   r   r   r      r   r   r   )r.   r/   
RangeIndexrE   rG   rH   lenr:   rI   rR   rS   
isinstancer   r   get_rangeindex_attributera   )r   
index_namerT   df2rY   table_no_index_namerZ   result2s           r7   test_range_index_shortcut-TestConvertMetadata.test_range_index_shortcut   sp   
\\3- "a LN llC.!#q!!46 $$R( hh2237 5<< A%%%"
f)&,,666633FLL&IQNNN||  J...%//1
g+'--777733GMM6JaOOO}}!!)))rj   c           
      0   [         R                  " S/ SQ0[         R                  " SSSSS9S9n[        R                  R                  US	S
9nUR                  S:X  d   eSUR                  ;   d   eUR                  5       n[        R                  " X15        g )Nr   r   r   r   r)   r   r   r   Tr   )r.   r/   r   rE   rG   rH   num_columnscolumn_namesrI   rR   rS   )r   rT   rY   restoreds       r7   $test_range_index_force_serialization8TestConvertMetadata.test_range_index_force_serialization  s     \\3- "a GI $$R$=  A%%%*****??$
h+rj   c                 @   [         R                  " [        R                  R	                  SS5      SS/S9n[
        R                  " 5          [
        R                  " SS9  [
        R                  " SS	[        5        [        US
S9  S S S 5        g ! , (       d  f       g = f)Nr   r)   r   br   erroractionr@   make_block is deprecatedTr   )r.   r/   r0   r2   r3   rN   rO   simplefilterrP   rQ   r\   r   s     r7   test_rangeindex_doesnt_warn/TestConvertMetadata.test_rangeindex_doesnt_warn  sr     \\"))//!Q/#sD$$&!!1 ##46H $Bt< '&&s   ;B
Bc                     [         R                  R                  SS/SS//5      n[         R                  " / SQUS9n[	        USS9  g )	NonetwoXYr   r   r)   r   )r   cr   Tr   r.   r   from_arraysr/   r\   r   rK   rT   s      r7   test_multiindex_columns+TestConvertMetadata.test_multiindex_columns%  sE    --++ENS#J-
  \\8'J48rj   c                     [         R                  R                  SS/[         R                  " SS/5      /SS/S9n[         R                  " / SQUS	9n[        US
S9  g )Nr   r   z
2017-08-01z
2017-08-02level_1level_2r   r   r   Tr   )r.   r   r   DatetimeIndexr/   r\   r   s      r7   #test_multiindex_columns_with_dtypes7TestConvertMetadata.test_multiindex_columns_with_dtypes,  sa    --++  ,!=> i( , 
 \\8'J48rj   c           
      b   [         R                  " S/[         R                  " S/[        S9S9n[	        USS9  [         R                  " S/[         R                  " S/[        S9S9n[	        USS9  [         R                  " S/[         R                  " [        SSS5      /SS9S9n[	        USS9  g )	Nr   r   r   Tr   皙?  r?   )r.   r/   Indexr?   r\   r   r   s     r7   (test_multiindex_with_column_dtype_object<TestConvertMetadata.test_multiindex_with_column_dtype_object7  s    
 \\1#rxx6'BC48 \\1#rxxV'DE48 \\1#rxxdAq!"((4 548rj   c                     [         R                  R                  SS/SS//5      n[         R                  " / SQUS9n[	        USS9  g )	N   あ   いr   r   r   r   Tr   r   r   s      r7   test_multiindex_columns_unicode3TestConvertMetadata.test_multiindex_columns_unicodeI  s>    --++eU^c3Z,HI\\8'J48rj   c                 N   [         R                  R                  SS/SS//5      n[         R                  " / SQUS9n[        R
                  " 5          [        R                  " SS9  [        R                  " S	S
[        5        [        USS9  S S S 5        g ! , (       d  f       g = f)Nr   r   r   r   r   r   r   r   r@   r   Tr   )
r.   r   r   r/   rN   rO   r   rP   rQ   r\   r   s      r7   test_multiindex_doesnt_warn/TestConvertMetadata.test_multiindex_doesnt_warnN  s    --++eU^c3Z,HI\\8'J$$&!!1 ##46H $Bt< '&&s   ;B
B$c                    [         R                  R                  [         R                  " SS5      [         R                  " SS/5      /5      n[         R
                  " [         R                  " SS/SS9US9n[        US S9  g )Nr   r)   r   r   r`   r   r   )r.   r   r   r   r   r/   rc   r\   )r   
multiindexrT   s      r7   test_multiindex_rangeindex.TestConvertMetadata.test_multiindex_rangeindex]  sa    ]]..]]1a "((Aq6"23

 \\"))QF5ZH48rj   c                 H    [         R                  " / SQ5      n[        USS9  g )Nr   Tr   r.   r/   r\   r   s     r7   test_integer_index_column-TestConvertMetadata.test_integer_index_columne  s    \\8948rj   c                 f    [         R                  " / SQS[        R                  /S9n[	        USS9  g )Nr         ?r   Tr   )r.   r/   r0   rM   r\   r   s     r7   $test_float_column_index_with_missing8TestConvertMetadata.test_float_column_index_with_missingi  s%    \\83-P48rj   z?ignore:The DataFrame has column names of mixed type:UserWarningc                 J    [         R                  " / SQSS /S9n[        USS9  g )Nr   Ar   Tr   r  r   s     r7   %test_string_column_index_with_missing9TestConvertMetadata.test_string_column_index_with_missingm  s#     \\83+N48rj   c                 j   [         R                  " / SQ[         R                  R                  / SQ/ SQ/S S/S9/ SQS9n[        R
                  " 5       (       a  [        R                  R                  USS	9nOA[        R                  " [        5         [        R                  R                  USS	9nS S S 5        WR                  R                  nUS
   u  pEpgnUS   S:X  d   eUS   US   :X  d   e[        R
                  " 5       (       a,  [        R                  " US   5      (       d   eUS   S:X  d   eOUS   b   eUS   S:X  d   eUS   S:X  d   eUS   US   :X  d   eUS   u  pU	S:X  d   eUS   U	:X  d   eUS   b   eU
S:X  d   eUS   U
:X  d   eUS   U
:X  d   eg ! , (       d  f       N= f)N))r   r   @)r)   r   g@)r   r   g?)r   r   r   )r   r)   r   r   r   )r   N__index_level_0__)r   rK   Tr   rK   ra   r   
field_namerM   Noner  index_columns)r.   r/   r   r   r   uses_string_dtyperE   rG   rH   r   r   r   r:   pandas_metadatar0   isnan)r   rT   tjscol1col2col3idx0r   
idx0_descr	foo_descrs              r7   test_index_metadata_field_name2TestConvertMetadata.test_index_metadata_field_namet  s   \\9--++ ),Um ,  5
 ((**$$R$=Ak*HH((D(A +XX%%&(m#DF|s"""F|tL1111((**88DL))))%...<'''%///F|2222F|tL1111 "? 3
0000L!Z///F|###E!!!< I---6{i'''5 +*s   F$$
F2c                 P   [         R                  " / SQ[         R                  " [        S5      SS9S9n[        R
                  R                  USS9nUR                  R                  nUS   u  nUS	   b   eUS
   S:X  d   eUS   S:X  d   eUS   nUS   S:X  d   eUS   SL d   eg )N)r   r   r   )r)   r   r   )r   r   r   defcategoryr   r   Tr   column_indexesra   pandas_typecategorical
numpy_typer   metadatanum_categoriesr   orderedF)	r.   r/   r   listrE   rG   rH   r:   r  r   rT   r  r  r'  mds         r7   test_categorical_column_index1TestConvertMetadata.test_categorical_column_index  s    \\9HHT%[
;
 HH  D 9XX%%-.f%---m,===l+v555J'"#q((()}%%%rj   c                    [         R                  " / SQ[         R                  " [        S5      SS9S9n[        R
                  R                  USS9nUR                  R                  nUS   u  nUS	   S:X  d   eUS	   US
   :X  d   eUS   [        R                  " 5       (       a  SOS:X  d   eUS   S:X  d   eUS   n[        U5      S:X  d   eUS   S:X  d   eg )Nr$  r%  stringzr`   r   Tr   r'  ra   r  r*  r+   r?   r(  unicoder+  r   encodingUTF-8)r.   r/   r   r.  rE   rG   rH   r:   r  r   r  r   r/  s         r7   test_string_column_index,TestConvertMetadata.test_string_column_index  s    \\9HHT%[y9
 HH  D 9XX%%-.f%222f%)EEEEl+ 2244E(
 	
 
 m,	999J'2w!||*~(((rj   unitusnsc           
         0 n[        [        R                  5      [        S5      :  a  SU0n[        R                  " / SQ[        R                  " SSSSS.UD6S9n[
        R                  R                  US	S
9nUR                  R                  nUS   u  nUS   b   eUS   S:X  d   eU(       a  US   SU S3:X  d   eOUS   S:X  d   eUS   nUS   S:X  d   eg )N2.0.0r:  r$  
2017-01-01r   America/New_Yorkstartr   r   r   Tr   r'  ra   r(  
datetimetzr*  datetime64[]r&   r+  r    )
r   r.   __version__r/   r   rE   rG   rH   r:   r  )r   r:  
ext_kwargsrT   r  r  r'  r0  s           r7   test_datetimetz_column_index0TestConvertMetadata.test_datetimetz_column_index  s   
2>>"gg&66 $J\\9MM "A2DHR
 HH  D 9XX%%-.f%---m,<<<!,/[a3HHHH!,/3CCCCJ'*~!3333rj   c           	          [         R                  " S[         R                  " SSSS905      nUR                  S5      n[	        USS9  g )Nr   r?  r   r@  rA  Tr   )r.   r/   r   r   r\   r   s     r7   test_datetimetz_row_index-TestConvertMetadata.test_datetimetz_row_index  sE    \\"A2D
 
 \\#48rj   c                     [         R                  " / SQ/ SQS.5      nUR                  R                  S5      US'   UR	                  S5      n[        USS9  g )Nr   r   r   r&  r   Tr   )r.   r/   r   astyper   r\   r   s     r7   test_categorical_row_index.TestConvertMetadata.test_categorical_row_index  sC    \\		:;$$++j)3\\#48rj   c                     [         R                  " SS/[        S5      S9n[        R                  " [
        5         [        R                  R                  U5        S S S 5        g ! , (       d  f       g = f)Nr   r   aar   )	r.   r/   r.  r   raises
ValueErrorrE   rG   rH   r   s     r7   *test_duplicate_column_names_does_not_crash>TestConvertMetadata.test_duplicate_column_names_does_not_crash  sE    \\8X.T
C]]:&HH  $ '&&s    A$$
A2c                    SS/SS//nU H  n[         R                  R                  US/SS9n[         R                  R                  U/S/5      n[         R                  R                  XDU/5      n[        R                  " [        5         UR                  5         S S S 5        [        R                  " [        5         UR                  5         S S S 5        M     g ! , (       d  f       NF= f! , (       d  f       M  = f)Nr   r   r   Fsafer   )
rE   DictionaryArrayr   rF   rG   from_batchesr   rU  
IndexErrorrI   )r   indicesindsrh   batchrY   s         r7   #test_dictionary_indices_boundscheck7TestConvertMetadata.test_dictionary_indices_boundscheck  s    q6Ar7#D$$00u50ICNN..uug>EHH))5*?@Ez* + z*! +* 
 +* +*s   C>C-
C*	-
C<	c                 J    [         R                  " SS/0S/S9n[        USS9  g )Nr   r   u   うr   Tr   r  r   s     r7   *test_unicode_with_unicode_column_and_index>TestConvertMetadata.test_unicode_with_unicode_column_and_index  s%    \\55'*5':48rj   c                 >   [         R                  " SS/SS/S.5      nSS/SS/SS	/4 H  n[         R                  " U[        S
9Ul        [
        R                  " [        5         [        R                  R                  U5        S S S 5        UR                  5       nUR                  R                  R                  [        5      Ul        [
        R                  " [        5         [        XSS9  S S S 5        M     g ! , (       d  f       N~= f! , (       d  f       M  = f)Nr   r)   r   r   rO  r      a2r	  r   Tr   )r.   r/   r   r?   rK   r   r   r   rE   rG   rH   rr   rs   rP  r+   r\   )r   rT   colsrU   s       r7   test_mixed_column_names+TestConvertMetadata.test_mixed_column_names  s    \\AaV45T]QHq#h7D$f5BJ k*$$R( + wwyH!zz0077<Hk*'7;= +* 8 +*
 +*s   $ C<$D<
D
	
D	c                 0   [        S5      [        [        R                  5      s=::  a  [        S5      :  a  O  O[        R                  " S5        S/nSR                  5       nX!0n[        R                  " U5      n[        R                  R                  USS9nUR                  5       nUR                  S   UR                  S   :X  d   eUR                  R                  S   UR                  R                  S   :X  d   eUR                  S   U:X  d   eg )	Nr>  3.0.0Regression in pandas 2.0.0r   r   Tr   r   )r   r.   rG  r   skipencoder/   rE   rG   rH   rI   rs   r   rK   )r   column_datakeyr   rT   r  r   s          r7   test_binary_column_name+TestConvertMetadata.test_binary_column_name  s    7wr~~6I9II KK45glln!\\$ HH  D 9kkmyy|szz!},,,xxq!SYY%5%5a%8888zz!}###rj   c                     Sn[        [        U5      5      n[        R                  R	                  / SQU/SS/S9n[        R
                  " SU0US9n[        USS	9  g )
Nr   )r   r   barfoobarsome_numbersr   numbersr   Tr   )r.  r4   r.   r   r   r/   r\   )r   num_rowsr{  r   rT   s        r7    test_multiindex_duplicate_values4TestConvertMetadata.test_multiindex_duplicate_values+  s_    uX'))"G,^, * 

 \\9g.e<48rj   c                     [         R                  " SSS/05      n[        R                  R	                  U5      nUR
                  R                  nSU;  d   eUS   S   nUS   S:X  d   eUS	   S
:X  d   eg )Nr   s
   some_bytessome_unicodemixedrK   r   r(  bytesr*  r?   r.   r/   rE   rG   rH   r:   r  )r   rT   rY   r  data_columns        r7   test_metadata_with_mixed_types2TestConvertMetadata.test_metadata_with_mixed_types7  s    \\6M>#BCD$$R(\\))b   mA&=)W444<(H444rj   c                 6   [         R                  " / SQ/ SQS./ SQS9n[        R                  R	                  U5      nUR                  SS9nUR                  UR                  R                  5       5      R                  5       n[        R                  " X45        g )Nr   r   rx  bazrO  )r   r   threer   T)ignore_metadata)r.   r/   rE   rG   rH   rI   castr:   remove_metadatarR   rS   )r   rT   rY   rZ   rU   s        r7   test_ignore_metadata(TestConvertMetadata.test_ignore_metadata@  st    \\	0EF 79$$R(6JJu||;;=>Y[ 	 	f/rj   c           	         [         R                  " SS// SQS/S-  /05      n[        R                  " [        R                  " S[        R
                  " [        R                  " 5       5      S9/5      n[        R                  R                  XS9nUR                  R                  nSU;  d   eUS	   S
   nUS   S:X  d   eUS   S:X  d   eg )Nr   r   r)   r   r   r   r   r_   r:   r  rK   r   r(  zlist[int64]r*  r?   )
r.   r/   rE   r:   r   list_r   rG   rH   r  )r   rT   r:   rY   r  r  s         r7   test_list_metadata&TestConvertMetadata.test_list_metadataK  s    \\6QCQC!G#<=>BHHV"((288:2FGHI$$R$7\\))b   mA&=)]:::<(H444rj   c                     [         R                  " SSSS.SSS./05      n[        R                  R	                  U5      nUR
                  R                  nUS   S   S	   S
:X  d   eg )Ndictsr   r)   rO  r   r   rK   r   r(  r?   r  )r   rT   rY   r  s       r7   test_struct_metadata(TestConvertMetadata.test_struct_metadataU  sd    \\711%5QQ7G$HIJ$$R(,,66y)!,];xGGGrj   c                 \   [         R                  " S[        R                  " S5      [        R                  " S5      * /05      n[        R
                  R                  U5      nUR                  R                  nSU;  d   eUS   S   nUS   S:X  d   eUS	   S
:X  d   eUS   SSS.:X  d   eg )Ndecimals394092382910493.12341234678z314292388910493.12343437128r  rK   r   r(  r   r*  r?   r+        	precisionscale)	r.   r/   r   r   rE   rG   rH   r:   r  )r   rU   rY   r  r  s        r7   test_decimal_metadata)TestConvertMetadata.test_decimal_metadata[  s    << =>!>??!
  $$X.\\))b   mA&=)Y666<(H444:&R*HHHHrj   typc           	      d   [         R                  " S[        R                  " S5      /05      n[        R
                  " [        R                  " SU" SS5      S9/5      n[        R                  R                  X#S9nUR
                  R                  S   S   nUS	   S
:X  d   eUS   SSS.:X  d   eg )Nr   3.14r   r)   r  r  rK   r   r(  r   r+  r  )
r.   r/   r   r   rE   r:   r   rG   rH   r  )r   r  rT   r:   rY   col_metas         r7   test_decimal_other_bitwidts/TestConvertMetadata.test_decimal_other_bitwidtsj  s     \\3!8 9:;BHHSs1ay9:;$$R$7<<//	:1=&)333
#Q'CCCCrj   c                 `   [         R                  " / SQSS9[         R                  " SSSS94 H  n[         R                  " / SQ/ S	QS
.US9n[        R
                  R                  U5      nUR                  S5      nUR                  5       nUS/   n[        UR                  [         R                  5      (       a  S UR                  l        [        R                  " XV5        UR                  S5      nUR                  5       n[        R                  " XRS/   R                  SS95        M     g )Nr   r   r   r   r`   r?  r   r   r   r   r   皙?皙?333333?rO  r   r   r   Tdrop)r.   r   r   r/   rE   rG   rH   remove_columnrI   r   r   r   r   rR   rS   reset_index)r   r   rT   rY   table_subsetrZ   rU   table_subset2s           r7   !test_table_column_subset_metadata5TestConvertMetadata.test_table_column_subset_metadatax  s     w7lA:KLNE I$029>@BHH((,E ..q1L!++-F3%yH"((B$4$455 $!!&3(66q9M",,.F!!&cU)*?*?T*?*JK!Nrj   c                    [         R                  " [        [        S5      5      [        [        S5      5      [        R
                  " S5      S.5      n[        R                  R                  UR                  SS/5      5      nUR                  SS/5      nUR                  5       nUSS/   R                  S5      n[        R                  " XE5        g )Nr   )firstsecondvaluer  r  r  )r.   r/   r.  r4   r0   r1   rE   rG   rH   r   selectrI   rR   rS   )r   rT   rY   subsetrZ   rU   s         r7   'test_to_pandas_column_subset_multiindex;TestConvertMetadata.test_to_pandas_column_subset_multiindex  s    \\58nE!H~iil$

 $$R\\7H2E%FGw01!!#w()33G<
f/rj   c                 V   S/SS/S /n/ / / /n[        S[        R                  " U[        R                  " [        R                  " 5       5      S94S[        R                  " U[        R                  " [        R                  " 5       5      S94/5      n[        R
                  R                  [        UR                  5       5      [        UR                  5       5      5      n[        R                  R                  U/5      nUR                  5       n[        R                  R                  U5      nUR                  R                  nUR                  5       n	[         R"                  " [        SU4SU4/5      5      n
[$        R&                  " X5        US   SSS SS	S
.SSS SSS
./:X  d   eg )Ntestr   r   c1r  c2rK   r?   zlist[unicode])ra   r  r+  r*  r(  zlist[empty])r   rE   rb   r  stringrF   r   r.  rs   keysrG   r^  rI   rH   r:   r  r.   r/   rR   rS   )r   r  r  arraysrbtblrT   tbl2md2r   rU   s              r7   test_empty_list_metadata,TestConvertMetadata.test_empty_list_metadata  so    hc
D)"b\288BRXXbiik%:;<288BRXXbiik%:;<
  ^^''!
 hh##RD) ]]_xx##B'kk)) nn<<dBZ$,D EF
c,9~" &. " &,"
 
 	
 
rj   c                     [         R                  " / SQ/ SQS.5      n[        R                  R	                  U5      nUR
                  R                  S   c   eg )Nr   rO  pandas_versionr  r   s      r7   test_metadata_pandas_version0TestConvertMetadata.test_metadata_pandas_version  sE    \\		:;$$R(||++,<=IIIrj   c                 0   0 n[        [        R                  5      [        S5      :  a  SS0n[        R                  " S[        R                  "  SSS0UD605      n[
        R                  R                  U5      nUS   R                  [
        R                  " SSS95      nUR                  S	[
        R                  " SUR                  5      U5      n[
        R                  " S[
        R                  " SSS94/5      n[
        R                  R                  X&S
9nUR                  5       nUS   R                  R!                  S5      US'   XW4 HB  n	U	R                  R"                  c   eU	R%                  5       n
[&        R(                  " X5        MD     g )Nr>  r:  r<  r   r   r   UTCr   r   r  )z
2020-01-01)r   r.   rG  r/   r   rE   rG   rH   r  	timestamp
set_columnr   r_   r:   rr   dttz_localizer  rI   rR   rS   )r   rH  rT   rY   new_col
new_table1r:   
new_table2rU   	new_tablerZ   s              r7   test_mismatch_metadata_schema1TestConvertMetadata.test_mismatch_metadata_schema  s]   
 
2>>"gg&66 $J\\:r}}(3"#(3'1(3 4 5 $$R(
#((du)EF%%rxx
GLL17


 Zdu)EFGHXX))")<
779'
366BB5I$1I##33???((*F!!&3 2rj   rF  )8__name__
__module____qualname____firstlineno____doc__r   r   r   r   r   markparametrizer   r   r   r   r   r   r   r   r   r   r  r  r
  rP   r  r!  r1  r8  rI  rL  rQ  rW  rc  rf  rl  ru  r}  r  r  r  r  r  rE   	decimal32	decimal64
decimal128
decimal256r  r  r  r  r  r  __static_attributes__rF  rj   r7   r}   r}      s   *
9 
@9
 [[TD*;#<=9 >9	9*6,=9	99$9
=999 [[I99'(R&")* [[VdD\24 34299%
"9
="$&
95	05HI [[U



	% DDL*0*
XJ
 4rj   r}   c                       \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rSrg)TestConvertPrimitiveTypesi  z6
Conversion tests for primitive (e.g. numeric) types.
c                    0 n/ nS[         R                  " 5       4S[         R                  " 5       4S[         R                  " 5       4/nSnU H\  u  pV[        R
                  R                  U5      nUR                  U5      X'   UR                  [         R                  " XV5      5        M^     [        R                  " U5      n[         R                  " U5      n	[        XS9  g )Nf2f4f8d   rV   )rE   float16r   r    r0   r2   r3   rP  appendr   r.   r/   r:   r\   )
r   r   fieldsdtypes
num_valuesnumpy_dtypearrow_dtypers   rT   r:   s
             r7   test_float_no_nulls-TestConvertPrimitiveTypes.test_float_no_nulls  s    &&&( 
(.$KYY__Z0F &k :DMM"((;<= )/
 \\$6";rj   c                 |   Sn[         R                  R                  SSUS9S:  nS[        R                  " 5       4S[        R
                  " 5       4S[        R                  " 5       4/n/ S	Qn/ n/ n/ nU H  u  p[         R                  R                  U5      R                  U5      n
[        R                  " U
S
US9nUR                  U5        UR                  [        R                  " X5      5        [         R                  X'   UR                  U
5        M     [        R                  " [        [!        XE5      5      US9n[        R"                  R%                  Xd5      nUR&                  R)                  [        R&                  " U5      5      (       d   eUR+                  5       n[,        R.                  " X5        g )Nr  r   
   r5   r   r  r  r  )r  r  r  T)rH   rl   r   )r0   r2   randintrE   r  r   r    r3   rP  rb   r  r   rM   r.   r/   dictziprG   r   r:   rJ   rI   rR   rS   )r   r  	null_maskr  r   expected_colsr  r  ra   r  rs   rh   ex_framerY   rZ   s                  r7   test_float_nulls*TestConvertPrimitiveTypes.test_float_nulls  sX   
II%%a*%=A	&&&( #!'DYY__Z077=F((6t)DCMM#MM"((456 "F  ( "( <<S%> ?(-/ $$V3||""299V#45555"
f/rj   c                    [         R                  " SSS[        R                  /05      n[        R
                  " [        R                  " S[        R                  " 5       SS9/5      n[        R                  R                  XSS9nUS   R                  5       / S	Q:X  d   e[        R                  " XR                  5       5        g )
Nr   r   r   TnullableFr:   r\  r   r   r)   N)r.   r/   r0   rM   rE   r:   r   r   rG   rH   	to_pylistrR   rS   rI   r   rT   r:   rY   s       r7   test_float_nulls_to_ints2TestConvertPrimitiveTypes.test_float_nulls_to_ints#  s    \\3c266 234BHHS"((*tDEF$$RU$CQx!!#|333
b//"34rj   c                     [         R                  " / SQ5      n[         R                  " / SQ5      n[        X[        R                  " 5       S9  g )N)        r   r   Ng      )FTTNTrU   r_   )r.   rc   ru   rE   bool_r   re   rU   s      r7   test_float_nulls_to_boolean5TestConvertPrimitiveTypes.test_float_nulls_to_boolean+  s0    II1299<=q"((*Erj   c                     [         R                  " S[        R                  /5      n[        R
                  " USS9nUR                  S:X  d   e[        R                  " US   R                  5       5      (       d   eg )Nr  FrH   r   r   )	r.   rc   r0   rM   rE   rb   rp   r  as_py)r   re   rh   s      r7   'test_series_from_pandas_false_respectedATestConvertPrimitiveTypes.test_series_from_pandas_false_respected0  sY    IIsBFFm$hhqe,~~"""xxA''''rj   c                 6   [        5       n/ nS[        R                  " 5       4S[        R                  " 5       4S[        R                  " 5       4S[        R
                  " 5       4S[        R                  " 5       4S[        R                  " 5       4S[        R                  " 5       4S[        R                  " 5       4S	[        R
                  " 5       4S
[        R                  " 5       4/
nSnU H  u  pV[        R                  " U5      n[        R                  R                  [        UR                  [        R                  " [        R                   5      R                  5      [        UR                  [        R                  " [        R                   5      R                  5      XES9nUR#                  U5      X'   UR%                  [        R&                  " XV5      5        M     [(        R*                  " U5      n	[        R,                  " U5      n
[/        XS9  g )Ni1i2i4i8u1u2u4u8longlong	ulonglongr  r5   r   r  )r   rE   r   r   r   r   r   r   r   r   r0   iinfor2   r   maxminint_rP  r  r   r.   r/   r:   r\   )r   r   r  numpy_dtypesr  r   r  infors   rT   r:   s              r7   test_integer_no_nulls/TestConvertPrimitiveTypes.test_integer_no_nulls7  sj   } 2779bhhj1288:rxxz 2288:ryy{ 3299;$		!4${BIIK&@
 
".E88E?DYY&&s488RXXbgg5F5J5J'K'*488RXXbgg5F5J5J'K,6 ' EF !--.DKMM"((567 #/ \\$6";rj   c                 D   [        5       n/ SQnU H  n[        R                  " SUS9X'   M     [        R                  " U5      n[        U5        UR                  5        H=  n[        R                  " U5      nUR                  5       UR                  5       :X  a  M=   e   g )N)r  r  r   r!  r"  r#  r$  r%  byteubyteshortushortintcuintcr,  uintr&  r'     r   )r   r0   r1   r.   r/   r\   rs   rE   rb   r  tolist)r   r   r-  r   rT   np_arrrh   s          r7   test_all_integer_types0TestConvertPrimitiveTypes.test_all_integer_typesP  s    }A "E))Be4DK "\\$# kkmF((6"C==?fmmo555 $rj   c           	         / SQnU H  nS H  n[         R                  " / SQX2-   S9nXDS S S2   4 H  nUR                  R                  (       a<  [        R                  " U5      nUR                  5       UR                  5       :X  d   eMZ  [        R                  " [        5         [        R                  " U5      nS S S 5        M     M     M     g ! , (       d  f       M  = f)Nr  r  r   r!  r"  r#  r$  r%  z=<>)r   r)   *   r   r)   )
r0   rb   r   isnativerE   r  r:  r   rU  NotImplementedError)r   
int_dtypesr  orderr   r;  rh   s          r7   test_integer_byteorder0TestConvertPrimitiveTypes.test_integer_byteordera  s    E
Bxx
%*=##A#Y/Fzz** hhtn"}}$++-???#]]+>?"$((4.C @? 0   @?s   %C	
C c                 6   / SQnSn[         R                  R                  SSUS9S:  n/ n/ nU H{  n[         R                  R                  SSUS9n[        R                  " XsS9nUR                  U5        UR                  S5      n	[         R                  X'   UR                  U	5        M}     [        R                  " [        [        X5      5      US	9n
[        R                  R                  XQ5      nUR                  5       n[        R                   " X5        g )
Nr?  r  r   r  r  r   rl   r  r   )r0   r2   r   rE   rb   r  rP  rM   r.   r/   r  r  rG   r   rI   rR   rS   )r   rC  r  r  r  r  ra   rs   rh   rU   r  rY   rZ   s                r7   test_integer_with_nulls1TestConvertPrimitiveTypes.test_integer_with_nullso  s     F

II%%a*%=A	DYY&&q#J&?F((62CMM#}}T*H"$&&H  *  <<S%C D(24 $$V8"
f/rj   c                     [         R                  " SSS9n[        R                  " 5       n[        R                  " XS9n[        R                  " UR                  S5      5      nUR                  U5      (       d   eg )Nr  r   r   r  r   )r0   r1   rE   r   rb   rP  rJ   )r   rh   target_typerZ   rU   s        r7    test_array_from_pandas_type_cast:TestConvertPrimitiveTypes.test_array_from_pandas_type_cast  sW    ii'*ggi#088CJJv./}}X&&&&rj   c                 J   Sn[         R                  R                  S5        [        R                  " S[         R                  R                  U5      S:  05      n[        R                  " S[        R                  " 5       5      n[        R                  " U/5      n[        X$S9  g )Nr  r   boolsr  )r0   r2   seedr.   r/   r3   rE   r   r  r:   r\   )r   r  rT   r   r:   s        r7   test_boolean_no_nulls/TestConvertPrimitiveTypes.test_boolean_no_nulls  sj    

		q\\7BIIOOJ$?!$CDE"((*-E7#;rj   c                    Sn[         R                  R                  S5        [         R                  R                  SSUS9S:  n[         R                  R                  SSUS9S:  n[        R
                  " X2S9nUR                  [        5      nS XR'   [        R                  " S[        R                  " 5       5      n[        R                  " U/5      n[        R                  " SU05      n[        R                  R                  U/S/5      n	U	R                  R                  U5      (       d   eU	R!                  5       n
["        R$                  " X5        g )	Nr  r   r  r  r   r   rH  rP  )r0   r2   rQ  r   rE   rb   rP  r?   r   r  r:   r.   r/   rG   r   rJ   rI   rR   rS   )r   r  rl   rs   rh   rU   r   r:   r  rY   rZ   s              r7   test_boolean_nulls,TestConvertPrimitiveTypes.test_boolean_nulls  s   

		qyy  BZ 81<""1bz":Q>hhv)==("((*-E7#<<( 34$$cUWI6||""6****"
f/rj   c                     [         R                  " / SQS-  5      n[         R                  " / SQS-  5      n[        X[        R                  " 5       S9  g )NTTFTTr)   r   r   r   r   r   r  )r.   rc   ru   rE   r   r  s      r7   test_boolean_to_int-TestConvertPrimitiveTypes.test_boolean_to_int  s9    II59:99_q01q"((*Erj   c                 .   [         R                  " / SQS-  [        S9n[         R                  " / SQS-  5      nSn[        R                  " [
        R                  US9   [        X[
        R                  " 5       S9  S S S 5        g ! , (       d  f       g = f)NrX  r)   r   rY  zExpected integer, got boolmatchr  )	r.   rc   r?   r   rU  rE   ArrowTypeErrorru   r   )r   re   rU   expected_msgs       r7   test_boolean_objects_to_int5TestConvertPrimitiveTypes.test_boolean_objects_to_int  sa    II59H99_q013]]2,,LA"1bhhjI BAAs   B
Bc                     [         R                  " / SQS-  5      n[         R                  " / SQS-  5      n[        X[        R                  " 5       S9  g )N)TTFNTr)   )r   r   r  Nr   r  )r.   rc   ru   rE   r    r  s      r7   test_boolean_nulls_to_float5TestConvertPrimitiveTypes.test_boolean_nulls_to_float  s:    II59:997!;<q"**,Grj   c                 n    [         R                  " [        R                  " SSS9SS/S9n[	        U5        g )N)r   r)   r!   r   r   r   r   )r.   r/   r0   onesr\   r   s     r7   test_boolean_multiple_columns7TestConvertPrimitiveTypes.test_boolean_multiple_columns  s)    \\"''&7#sL#rj   c                    [         R                  " S S[         R                  " S5      /S-  [        S9n[        R
                  " SU05      n[        R
                  " S[        R                  " U5      05      n[        R                  " S[        R                  " 5       5      n[        R                  " U/5      n[        X#US9  g )Nr	  g      @r   r   floatsrU   rV   )r0   rb   r    r?   r.   r/   
to_numericrE   r   r:   r\   r   rh   rT   rU   r   r:   s         r7   test_float_object_nulls1TestConvertPrimitiveTypes.test_float_object_nulls  s    hhc2::c?3a7vF\\8S/*<<2==+= >?2::<0E7#06	8rj   c           	      d   [         R                  " [        R                  SS[        R                  /5      n[        R
                  " 5       [        R                  " 5       [        R                  " 5       [        R                  " 5       [        R                  " 5       [        R                  " 5       [        R                  " 5       [        R                  " 5       /nU H  n[        R                  " XS9n[        R                  " / SQUS9nUR                  U5      (       d   e[         R                  " SU05      n[        R                   " [        R"                  " SU5      /5      n[        R$                  R'                  XgSS9nUS   R)                  S5      R                  U5      (       a  M   e   g )	Nr   r   r  )Nr   r)   N	has_nullsFr:   r;   r   )r.   rc   r0   rM   rE   r   r   r   r   r   r   r   r   rb   rJ   r/   r:   r   rG   rH   chunk)r   re   typestyrZ   rU   rT   r:   s           r7   test_float_with_null_as_integer9TestConvertPrimitiveTypes.test_float_with_null_as_integer  s   IIrvvr2rvv./BHHJ
BHHJRYY["))+ryy{DBXXa)Fxx 2<H==****{A./BYYb 9:;FXX))"9> * @F!9??1%,,X6666 rj   c                    [         R                  " S S[         R                  " S5      /S-  [        S9n[        R
                  " SU05      n[        R
                  " S[        R                  " U5      05      n[        R                  " S[        R                  " 5       5      n[        R                  " U/5      n[        X#US9  g )Nr   r   r   r   intsrl  )r0   rb   r   r?   r.   r/   rm  rE   r   r:   r\   rn  s         r7   test_int_object_nulls/TestConvertPrimitiveTypes.test_int_object_nulls  s    hha!-1@\\63-(<<s); <=,E7#06	8rj   c                    [         R                  " / SQS-  [        S9n[        R                  " SU05      n[
        R                  " S[
        R                  " 5       5      n[
        R                  " U/5      n[        X$S9  g )N)FNTr  r   rP  r  )
r0   rb   r?   r.   r/   rE   r   r  r:   r\   )r   rh   rT   r   r:   s        r7   test_boolean_object_nulls3TestConvertPrimitiveTypes.test_boolean_object_nulls  sX    hh*S0?\\7C.)"((*-E7#;rj   c                    ^ [         R                  " S /[        S9mU4S jnU" [        R                  " 5       5        U" [        R
                  " 5       5        g )Nr   c                    > [         R                  " TU S9nUR                  U :X  d   eUS   R                  5       b   eg )Nr  r   )rE   rb   r_   r  )r  a2rh   s     r7   _check_typeJTestConvertPrimitiveTypes.test_all_nulls_cast_numeric.<locals>._check_type  s9    #A&B77a<<a5;;=(((rj   )r0   rb   r?   rE   r   r    )r   r  rh   s     @r7   test_all_nulls_cast_numeric5TestConvertPrimitiveTypes.test_all_nulls_cast_numeric  s8    hhvV,	)
 	BHHJBJJL!rj   c                 B   [         R                  " S[         R                  /[         R                  S9n[        R                  " U[        R                  " 5       S9nUR                  5       u  p4[        U[        5      (       d   eUS:X  d   e[        U[        5      (       d   e[         R                  " U5      (       d   e[        R                  " U[        R                  " 5       SS9nUR                  5       u  p4[        U[        5      (       d   eUS:X  d   eUb   eg )Nr	  r   r  Tr_   rH   )	r0   rb   rM   r  rE   r  r   floatr  )r   rh   r   r6   ys        r7   test_half_floats_from_numpy5TestConvertPrimitiveTypes.test_half_floats_from_numpy  s    hhRVV}BJJ7HHSrzz|,{{}!U####Cxx!U####xx{{{HHSrzz|>{{}!U####Cxxyyrj   rF  N)r  r  r  r  r  r  r  r  r  r  r/  r<  rE  rI  rM  rR  rU  rZ  ra  rd  rh  ro  rw  r{  r~  r  r  r  rF  rj   r7   r  r    sy    <"0<5F
(<26"10:'<0.FJH$
87"8<	"rj   r  r   r?  c                 h   Sn[         R                  R                  SSUS9S:  n[         R                  R                  SSXS9n[        R                  " X2S9nUR                  5       (       a  UR                  S5      nS XR'   OUnUR                  S	S
9n[         R                  R                  Xe5        g Nr  r   r  r  r   r(  rH  OTinteger_object_nulls)
r0   r2   r   rE   rb   anyrP  rI   testingassert_equal)r   r  r  rs   rb   rU   rZ   s          r7   &test_array_integer_object_nulls_optionr    s     J		!!!Rj!9A=IYYq#JDFHHV,E}}==%"__$_7FJJF-rj   c                    Sn[         R                  R                  SSUS9S:  n[         R                  R                  SSXS9n[        R                  " X2S9nUR                  5       (       a  UR                  S5      nS XR'   OUn[        R                  " X05      n[        R                  R                  U/U /5      nUR                  S	S
9n[        R                  " Xu5        g r  )r0   r2   r   rE   rb   r  rP  r.   r/   rG   r   rI   rR   rS   )r   r  r  rs   rb   rU   rY   rZ   s           r7   &test_table_integer_object_nulls_optionr  )  s     J		!!!Rj!9A=IYYq#JDFHHV,E}}==%"||U-.HHH  %5'2E__$_7F&+rj   c                   H   \ rS rSrSrS rS r\R                  R                  S/ SQ5      S 5       r
S rS	 r\R                  " \R                   " 5       \R$                  -  5      \R&                  " S
S9S 5       5       rS rS rS rS r\R                  R                  SS
/ SQ/5      S 5       r\R                  R                  SSS/5      S 5       r\R                  R                  SSS/5      S 5       r\R                  R                  S\R:                  " 5       \R<                  " 5       \R>                  " S5      \R>                  " S5      \R>                  " S5      \R>                  " S5      \R>                  " SS5      \R>                  " SS5      \R>                  " SS5      \R>                  " SS5      /
5      S  5       r \R                  R                  S\R:                  " 5       \R<                  " 5       \R>                  " S5      \R>                  " S5      \R>                  " S5      \R>                  " S5      \R>                  " SS5      \R>                  " SS5      \R>                  " SS5      \R>                  " SS5      /
5      S! 5       r!S" r"S# r#S$ r$S% r%S& r&S' r'S( r(S) r)S* r*S+ r+S, r,\R                  R                  S-\R:                  " 5       \R<                  " 5       /5      S. 5       r-S/ r.\R                  R_                  \0S
L=(       a1    \1" S05      \1" \0Rd                  5      s=:*  =(       a    \1" S15      :  Os  S2S39S4 5       r3\R                  R                  S/ SQ5      S5 5       r4\R                  R                  S/ SQ5      S6 5       r5S7 r6S8r7g
)9TestConvertDateTimeLikeTypesiA  zI
Conversion tests for datetime- and timestamp-like types (date64, etc.).
c                     [         R                  " S[        R                  " / SQSS905      n[        R
                  " S[        R                  " S5      5      n[        R                  " U/5      n[        UUS9  g )N
datetime64)2007-07-13T01:23:34.1234567892006-01-13T12:34:56.4325397842010-08-13T05:46:57.437699912r&   r   r<  r  	r.   r/   r0   rb   rE   r   r  r:   r\   r   rT   r   r:   s       r7   #test_timestamps_notimezone_no_nulls@TestConvertDateTimeLikeTypes.test_timestamps_notimezone_no_nullsF  f    \\"(( $1 '	(
  r||D'9:E7#"	
rj   c                     [         R                  " S[        R                  " / SQSS905      n[        R
                  " S[        R                  " S5      5      n[        R                  " U/5      n[        UUS9  g )Nr  )r  Nr  r&   r   r<  r  r  r  s       r7    test_timestamps_notimezone_nulls=TestConvertDateTimeLikeTypes.test_timestamps_notimezone_nullsU  r  rj   r:  )re   msr;  r<  c           	         [        [        R                  5      [        S5      :  a  US:w  a  [        R                  " S5        [        R
                  " S[        R                  " / SQSU S3S905      nUS   R                  R                  S	5      US'   [        U5        [        US   5        [        R
                  " S[        R                  " / S
QSU S3S905      nUS   R                  R                  S	5      US'   [        U5        g )Nr>  r<  z0pandas < 2.0 only supports nanosecond datetime64r  )2007-07-13T01:23:34.1232006-01-13T12:34:56.4322010-08-13T05:46:57.437rD  rE  r   
US/Easternr  Nr  r  )r   r.   rG  r   rq  r/   r0   rb   r  r  r\   ri   )r   r:  rT   s      r7   test_timestamps_with_timezone:TestConvertDateTimeLikeTypes.test_timestamps_with_timezoned  s    2>>"WW%55$$,KKJK\\"(( $+ $D6+	-
  l+..::<H<#< 01 \\"(( $1
 $D6+-
  l+..::<H<#rj   c                 "   [        S5       Vs/ s H"  n[        R                  " 5       [        US9-   PM$     nn[        R
                  " S[        R                  " U[        S905      n[        R                  R                  U5      n[        US   R                  S5      [        R                  5      (       d   eUR                  5       n[        R
                  " S[        R                  " USS905      n[        R                   " Xe5        g s  snf )Nr  )daysr   r   r   r%   )r4   r   todayr   r.   r/   rc   r?   rE   rG   rH   r   rt  TimestampArrayrI   rR   rS   )r   r6   
date_arrayrT   rY   rZ   expected_dfs          r7   test_python_datetime1TestConvertDateTimeLikeTypes.test_python_datetime  s    DI"INIqhnn&)::I
N\\		*F;
  $$R(%(..+R->->????" ll		*4DE$
  	k2 Os   )Dc                     [         R                  " S5      nUR                  UR                  S5      UR	                  S5      4 H6  n[        SSSSSSUS9/n[        R                  " S	U05      n[        U5        M8     g )
Npytzr  r   r   r9     -   tzinfor   )	r   importorskiputcr   FixedOffsetr   r.   r/   r\   )r   r  r   rs   rT   s        r7   %test_python_datetime_with_pytz_tzinfoBTestConvertDateTimeLikeTypes.test_python_datetime_with_pytz_tzinfo  sp    ""6*88T]]<8$:J:J1:MNBtQ2r2bABFz623B#B' Orj   N)deadlinec           
          [        U5      S;   a  [        R                  " S5        [        SSSSSSUS9/n[        R
                  " S	U05      n[        US
S9  g )N)zbuild/etc/localtimeFactoryz Localtime timezone not supportedr   r   r9  r  r  r  r   FrC   )r+   r   rq  r   r.   r/   r\   )r   r   rs   rT   s       r7   'test_python_datetime_with_pytz_timezoneDTestConvertDateTimeLikeTypes.test_python_datetime_with_pytz_timezone  sT     r788KK:;4Ar2r"=>\\:v./6rj   c           
         [         R                  " S5      nSSKJn  [        SSSSSSUR                  S	9/n[
        R                  " S
U0US9n[        USS9  SnU" [        US95      nUR                  US-  5      n[        SSSSSSUS	9/n[        SSSSSSUS	9/n[
        R                  " S
U0US9n[
        R                  " S
U0US9n	[        XISS9  g )Nr  r   )r   r   r   r9  r  r  r  r   r   Tr   )hours<   r   )
r   r  r   r   r  r.   r/   r\   r   r  )
r   r  r   rs   rT   r  tz_timezonetz_pytz
values_expdf_exps
             r7   )test_python_datetime_with_timezone_tzinfoFTestConvertDateTimeLikeTypes.test_python_datetime_with_timezone_tzinfo  s    ""6*%4Ar2r(,,GH\\:v.f=48 yu56""52:.4Ar2r+FGtQ2r2gFG
\\:v.f=z:6jIDIrj   c                     " S S[         5      nU" SSSSSS5      /n[        R                  " S[        R                  " U[        S905      n[
        R                  R                  U5      n[        US   R                  S5      [
        R                  5      (       d   eUR                  5       n[        R                  " S[        R                  " USS905      n[        R                  " US   5      US'   [        R                  " Xe5        g )	Nc                       \ rS rSrSrSrg)NTestConvertDateTimeLikeTypes.test_python_datetime_subclass.<locals>.MyDatetimei  r  rF  N)r  r  r  r  
nanosecondr  rF  rj   r7   
MyDatetimer    s    Jrj   r    r   r   r   r   r%   )r   r.   r/   rc   r?   rE   rG   rH   r   rt  r  rI   to_datetimerR   rS   )r   r  r  rT   rY   rZ   r  s          r7   test_python_datetime_subclass:TestConvertDateTimeLikeTypes.test_python_datetime_subclass  s    	 	 !q!Q156
\\:ryy6'JKL$$R(%(..+R->->????"
 ll:5EFGI #%..Z1H"IJ
k2rj   c           
          " S S[         5      nU" SSS5      /n[        R                  " S[        R                  " U[        S905      n[
        R                  R                  U5      n[        US   R                  S5      [
        R                  5      (       d   eUR                  5       n[        R                  " S[        R                  " [        SSS5      /[        S905      n[        R                  " Xe5        g )Nc                       \ rS rSrSrg)FTestConvertDateTimeLikeTypes.test_python_date_subclass.<locals>.MyDatei  rF  Nr  r  r  r  r  rF  rj   r7   MyDater    s    rj   r  r  r   r   r   r   )r   r.   r/   rc   r?   rE   rG   rH   r   rt  Date32ArrayrI   r0   rb   rR   rS   )r   r  r  rT   rY   rZ   r  s          r7   test_python_date_subclass6TestConvertDateTimeLikeTypes.test_python_date_subclass  s    	T 	 T1a()
\\6299Zv#FGH$$R(%(..+R^^<<<<"llRXXtD!Q/0?@
 	k2rj   c                 H   [         R                  " [        SSS5      S /5      n[         R                  " U/5      nUR	                  5       n[         R
                  R                  U[         R                  " 5       S9nUR                  UR                  S5      5      (       d   eg )N  r  r  r  date32)
rE   rb   r   chunked_arrayrI   ArrayrH   r  rJ   r  )r   rh   r   re   arr2s        r7   test_datetime64_to_date326TestConvertDateTimeLikeTypes.test_datetime64_to_date32  sx    hhT2r*D12cU#KKMxx##ABIIK#8{{388H-....rj   rl   )TFFTFFc                    U(       a  [         R                  " U5      n[        R                  " / SQ5      n[        R
                  R                  U[        R                  " 5       US9n[         R                  " [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      /5      n[        R                  " XA[        R                  " 5       S9nUR                  U5      (       d   eg )	N)z2018-05-10T00:00:00z2018-05-11T00:00:00z2018-05-12T00:00:00z2018-05-10T10:24:01z2018-05-11T10:24:01z2018-05-12T10:24:01r_   rl   r   r   r  r  r9  rl   r_   )
r0   rb   r.   r  rE   r  rH   date64r   rJ   )r   rl   re   rh   r   rU   s         r7   test_pandas_datetime_to_date64;TestConvertDateTimeLikeTypes.test_pandas_datetime_to_date64  s    
 88D>DNN 
  hh""1299;T"Bxxq"q"q"q"q"q"
  88D"))+>zz(####rj   zcoerce_to_ns,expected_dtype)Fr$   )Tr&   c                    [        SSS5      S [        SSS5      [        SSS5      /n[        R                  " / SQSS	9n[        [        R
                  5      [        S
5      :  a  Sn[        R                  " / SQUS	9n[        R                  " U5      [        R                  " U/5      /nU H  nUR                  US9nUR                  [        5      n	UR                  U	R                  :X  d   e[        R                  " X5        UR                  SUS9nUR                  UR                  :X  d   e[        R                  " X5        M     g )Nr  r       r)   r  )
2000-01-01Nz
1970-01-01z
2040-02-26datetime64[D]r   r>  r&   coerce_temporal_nanosecondsFdate_as_objectr  )r   r0   rb   r   r.   rG  rE   r  rI   rP  r?   r   rx   ry   )
r   coerce_to_nsexpected_dtyper   expected_daysrU   objectsobjrZ   expected_objs
             r7   test_array_types_date_as_object<TestConvertDateTimeLikeTypes.test_array_types_date_as_object	  s2    T1a T1a T1b!#  "07FH 2>>"WW%55-N88 +2@B 88D>##TF+- C]]|]LF(//7L<<<#5#5555""68]]%?K # MF<<8>>111""64 rj   zcoerce_to_ns,expected_typec                 n   [         R                  " S[        SSS5      S [        SSS5      [        SSS5      /05      n[        R                  R                  USS	9nUR                  SUS
9nUR                  5       n[        R                  " UR                  U5      USS9  [        R                  " X6SS9  g )Nr   r  r   r  r  r)   r  Fr   r  Tr  )
r.   r/   r   rE   rG   rH   rI   rR   rS   rP  )r   r  expected_typerT   rY   df_datetime	df_objects          r7   !test_table_convert_date_as_object>TestConvertDateTimeLikeTypes.test_table_convert_date_as_object)  s     \\T$1%$1%$2&() * $$R$>ooUBN & POO%	
bii6*.	0
b>rj   
arrow_typere   r  r;  r<  r  c                    [        SSS5      [        SSS5      /n[        R                  " U5      n[        R
                  " U5      R                  U5      nUR                  SSS9nS n[        US5      (       a  UR                  b  Sn[        R                  " S	U5      R                  5       n[        R                  " XSR                  U5      5        g )
Nr  r     TFr  r  r   r  r<  )r   r   r.   rc   rE   rb   r  rI   hasattrr   r  to_pandas_dtyperR   rd   rP  )r   r  r   rU   rh   rZ   expected_tzr  s           r7   &test_array_coerce_temporal_nanosecondsCTestConvertDateTimeLikeTypes.test_array_coerce_temporal_nanoseconds=  s     T1a (4A"6799T?hhtn!!*-(,U  D:t$$)BKT;7GGI
v}'EFrj   c                    [        SSS5      [        SSS5      /n[        R                  " [        R                  " SU5      /5      n[
        R                  " SU05      n[        R                  " [        R                  " U5      /US9nUR                  SSS9nS n[        US	5      (       a  UR                  b  S
n[        R                  " SU5      R                  5       n[        R                  " XdR!                  U5      5        g )Nr  r   r
  r   r  TFr  r   r  r<  )r   r   rE   r:   r   r.   r/   rY   rb   rI   r  r   r  r  rR   rS   rP  )	r   r  r   r:   r  rY   	result_dfr  r  s	            r7   &test_table_coerce_temporal_nanosecondsCTestConvertDateTimeLikeTypes.test_table_coerce_temporal_nanosecondsO  s     T1a (4A"67BHHVZ89:llFD>2"((4.)&9OO(,U $ D	:t$$)BKT;7GGI
i););M)JKrj   c                    [         R                  " S[        SSS5      S [        SSS5      [        SSS5      /05      n[        R                  R                  USS	9n[        R                  " S[        R                  " 5       5      n[        R                  " U/UR                  R                  S
9nUR                  R                  U5      (       d   eUR                  5       n[        R                  " XQ5        g )Nr   r  r   r  r  r)   r  Fr   r+  )r.   r/   r   rE   rG   rH   r   r  r:   r+  rJ   rI   rR   rS   )r   rT   rY   r   rV   rZ   s         r7   test_date_infer,TestConvertDateTimeLikeTypes.test_date_inferb  s    \\T$1%$1%$2&() *
 $$R$>- ))UGell6K6KL||""?3333"
f)rj   c                 V   [         R                  " [        SSS5      [        SSS5      /SS9nSS/n[        R                  " U[         R                  " U5      S9n[         R                  " S [        SSS5      /SS9n[        R                  " USS	9nUR	                  U5      (       d   eg )
Nr  r   r   r  r   TFrH  r  )r0   rb   r   rE   rJ   )r   rh   rl   rZ   rU   s        r7   test_date_mask+TestConvertDateTimeLikeTypes.test_date_maskr  s    hhT1a($tQ*:;,.e}#BHHTN388T4a#34OL88H$7v&&&&rj   c           
      N   [         R                  " [        SSS5      S [        SSS5      [        SSS5      /[        S9n[         R                  " / SQSS9nUR	                  S5      S	-  n[         R                  " / S
Q5      n[
        R                  " 5       n[
        R                  " 5       n[
        R                  " XS9n[
        R                  " XS9n[
        R                  " X$US9n	[
        R                  " X4US9n
UR                  U	5      (       d   eUR                  U
5      (       d   eSS/n[
        R                  R                  Xx/U5      n[         R                  " / SQSS9n[        R                  R                  US'   UR	                  S5      n[        R                  " UUS.US9nUR                  SS9n[         R"                  " UU5        UR                  5       nUR	                  S5      n[        R                  " UUS.US9n[         R"                  " UU5        g )Nr  r   r   r   r   )kC  rZ  lC  mC  r   r    \&)FTFFr  r  r  r  )z
2017-04-03
2017-04-04r!  z
2017-04-05r  r   r$   )r  r  r   F)r  r?   )r0   rb   r   r?   rP  rE   r  r  rJ   rG   r   r.   NaTr  r/   rI   rR   rS   )r   rh   arr_i4arr_i8rl   t32t64a32a64a32_expecteda64_expectedcolnamesrY   	ex_valuesex_datetime64msexpected_pandastable_pandastable_pandas_objects
ex_objectsexpected_pandas_objectss                       r7   test_date_objects_typed4TestConvertDateTimeLikeTypes.test_date_objects_typed{  s   hhq!q!q!	 &,	- 37Cw'(2xx34iikiikhhs%hhs%xx<xx<zz,''''zz,'''' h'$$cZ:XX -$35	 vv||	! $**+;<,,/2A(C/79 e<
lO<$0%%h/
"$,,*:D0F7?#A 	25	7rj   c                    [        [        SS 5      n[        R                  " [	        SSS5      [        R
                  U/[        S9n[        R                  " [	        SSS5      S S /[        S9n[        R                  " USS9n[        R                  " USS9nUR                  U5      (       d   eUR                  S:X  d   e[        R                  " [        R
                  /SS9R                  [        R                  " 5       :X  d   e[        R                  " U/SS9R                  [        R                  " 5       :X  d   eg )NNAr  r   r   Tr  r)   )getattrr.   r0   rb   r   r"  r?   rE   rJ   rp   r_   null)r   pd_NArs   values_with_nonerZ   rU   s         r7   test_pandas_null_values4TestConvertDateTimeLikeTypes.test_pandas_null_values  s    D$'8D!Q/?vN88XdAq%94$F*02&d388,$?}}X&&&&  A%%% xxd388BGGIEEExxT2772779DDDrj   c                 |   [         R                  " 5       n[         R                  " 5       n[        R                  " / SQSS9nUR                  S5      S-  n[         R                  " X1S9n[         R                  " XBS9n[        SSS	5      nUS
   R                  5       U:X  d   eUS
   R                  5       U:X  d   eg )N)r  r  r  r   r   r   r   r  r  r   r   r   )rE   r  r  r0   rb   rP  r   r  )r   t1t2rh   r  a1r  rU   s           r7   test_dates_from_integers5TestConvertDateTimeLikeTypes.test_dates_from_integers  s    YY[YY[hh,G<zz'"X-XXc#XXd$a#!u{{}(((!u{{}(((rj   c                 D   [        SSSS5      [        SSSS5      /n[        R                  " S5      n[        R                  " US /-   [
        S	9n[        R                  " U5      nUR                  U:X  d   eUS
   R                  5       US
   :X  d   eUS   R                  5       US   :X  d   eUS   R                  5       b   e[        R                  " SU05      n[        R                  R                  U5      nUS
   R                  U5      (       d   e[        R                  " U Vs/ s H  n[        U5      PM     snSS	9n[        R                  " U[        R                  " S5      S9n	U	S
   R                  5       US
   :X  d   e[        R                  " US-  [        R                  " S5      S9n
U
S
   R                  5       US
   :X  d   e[        R                  " US-  R                  S5      [        R                  " S5      S9nUS
   R                  5       US
   R!                  SS9:X  d   e[        R                  " US-  R                  S5      [        R                  " S5      S9nUS
   R                  5       US
   R!                  S
S9:X  d   eg s  snf )Nr   r)   r   L  r   r   r   r;  r   r   timesr   r    r<  r   r  microsecond@B re   )r   rE   time64r0   rb   r?   r_   r  r.   r/   rF   rH   rJ   _pytime_to_microsrP  time32rL   )r   pytimesr>  aobjsparrrT   rb  vrh   r@  r  a3a4s                r7   test_pytime_from_pandas4TestConvertDateTimeLikeTypes.test_pytime_from_pandas  s=   1a&1a&( YYt_D6)8xxyyBAw}}'!*,,,Aw}}'!*,,,Aw}}&&& \\7E*+**2.Qxt$$$$ hhg>g)!,g>$& XXc		$0!u{{}
***XXcDjryy7!u{{}
***XXsTz))$/99T?,!u{{}
 2 2t 2 DDDDXXsW},,T299S>+!u{{}
 2 2q 2 AAAA ?s   ,Jc           	         [        SSSS5      [        SSSS5      [        SSS5      /n[        R                  " US S S /-   5      n[        R                  " US S  Vs/ s H  nUR                  S	S
9PM     snS /-   5      n[        R                  " US S  Vs/ s H  nUR                  SS
9PM     snS /-   5      n[        R                  " U Vs/ s H  n[	        U5      PM     snSS9n[        R                  " U Vs/ s H  n[	        U5      PM     snSS9n[        R                  " / SQ[
        S9n[        R                  " Xx[        R                  " S5      S9n	[        R                  " US	-  U[        R                  " S5      S9n
[        R                  " US	-  R                  S5      U[        R                  " S5      S9n[        R                  " US-  R                  S5      U[        R                  " S5      S9n/ SQn[        R                  R                  XX/U5      nX4X4X4X44 H9  u  pUR                  5       nUR                  U:H  R                  5       (       a  M9   e   UR                  5       n[        R                   " UUUUS.US9n["        R$                  " UU5        g s  snf s  snf s  snf s  snf )Nr   r)   r   rD  r   r   r   r   rF  rG  r   r   FFTr;  r  r<  r   r  rI  re   )
time64[us]z
time64[ns]
time32[ms]z	time32[s]r   )r   r0   rb   rL   rK  r!   rE   rJ  rP  rL  rF   r   rI   rs   allr.   r/   rR   rS   )r   rM  rU   r6   expected_ms
expected_srP  rh   r  r@  r  rQ  rR  r   rb  expected_valuesresult_pandasrT   r  s                      r7   test_arrow_time_to_pandas6TestConvertDateTimeLikeTypes.test_arrow_time_to_pandas  s   1a&1a&1a=" 88GBQK4&01hh)0! 6)4A !"		d	 ;)4 6 $v & ' XX(/5(31  !yyQy7(35#f% &
 hhg>g)!,g>$&hhg>g)!,g>$& HH1>	XXc		$@XXcDjy99T?, XXsTz))$/i99T?,XXsW},,T299S>+ H**BB+;UC&(^&(^&(%6&(%5%7 C  MMOM!((O;@@BBBB%7 __ll(2:2=1;$= ,1	2 	b+.Q 65 ?>s   J2J7J<?Kc                    [         R                  " / SQSS9n[        U5        [         R                  " / SQSS9n[        U5        [         R                  " / SQSS9n[        U5        [         R                  " / SQS	S9n[        U5        g )
Nr  r&   r   )z2007-07-13T01:23:34.123456Nz2006-01-13T12:34:56.432539z2010-08-13T05:46:57.437699r%   )r  Nr  r  r$   )z2007-07-13T01:23:34Nz2006-01-13T12:34:56z2010-08-13T05:46:57r#   r0   rb   r{   )r   datetime64_nsdatetime64_usdatetime64_msdatetime64_ss        r7   test_numpy_datetime64_columns:TestConvertDateTimeLikeTypes.test_numpy_datetime64_columns  s     "-
 #$ 	+=9 "*
 #$ 	+=9 "'
 #$ 	+=9xx !#
 "# 	+<8rj   c                    [        [        R                  5      [        S5      :  a  [        R                  " S5        [
        R                  " / SQ[
        R                  " S5      5      n[        R                  " [        R                  " / SQSS95      nUR                  5       n[        R                  " X25        [
        R                  " U/5      nUR                  5       n[        R                  " X25        g )Nr>  z0pandas >= 2.0 supports non-nanosecond datetime64r   r  )r:  )r   r.   rG  r   rq  rE   rb   r  rc   r  rI   rR   rd   r  )r   rh   rU   re   s       r7   &test_timestamp_to_pandas_coerces_to_nsCTestConvertDateTimeLikeTypes.test_timestamp_to_pandas_coerces_to_ns?  s    2>>"gg&66KKJKhhy",,t"4599R^^IDABMMO
q+u%MMO
q+rj   c           
         S GH?  nS GH4  n[         R                  " [        SSS5      /[         R                  " XS95      n[         R                  " SU05      nSn[
        R                  " [        US9   UR                  SS	9  S S S 5        [
        R                  " [        US9   UR                  SS	9  S S S 5        [
        R                  " [        US9   UR                  S5      R                  SS	9  S S S 5        UR                  S
SS9  UR                  S
SS9  UR                  S5      R                  S
SS9  GM7     GMB     g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nz= f)Nre   r  r;  )Nr@  r   r  r   z'would result in out of bounds timestampr]  Tr  F)r\  r  )
rE   rb   r   r  rY   r   rU  rV  rI   column)r   r:  r   rh   rY   msgs         r7   &test_timestamp_to_pandas_out_of_boundsCTestConvertDateTimeLikeTypes.test_timestamp_to_pandas_out_of_boundsL  s&    &D0hhAq 12BLL4MN#s,?]]:S9MMdMC : ]]:S9OOOE : ]]:S9LL%//D/Q : 5dKUMS!++D , B' 1 & :9 :9 :9s$   5E&EE*
E
E'*
E8c           	      $   [         R                  " S[         R                  " / [         R                  " S5      S905      nUR	                  5       n[
        R                  " S[
        R                  " / SS905      n[        R                  " X#5        g )Nr   r;  r  r%   r   )
rE   rY   r  r  rI   r.   r/   rc   rR   rS   )r   rY   rZ   rU   s       r7   &test_timestamp_to_pandas_empty_chunkedCTestConvertDateTimeLikeTypes.test_timestamp_to_pandas_empty_chunkedg  sd    #r//d9KLMN"<<bii:J&K LM
f/rj   r   c                 D    [         R                  " / SQSS9n[        X!S9  g )N)
2007-07-13Nz
2006-01-15z
2010-08-19r  r   r  ra  )r   r   datetime64_ds      r7   test_numpy_datetime64_day_unit;TestConvertDateTimeLikeTypes.test_numpy_datetime64_day_unitn  s$    xx !
 "# 	+<Drj   c           	         [         R                  " / SQ5      n[        R                  " [	        SSS5      [	        SSS5      [	        SSS5      /5      n[
        R                  R                  X!S9n[        R                  " S [	        SSS5      S /5      n[
        R                  R                  U5      R                  U5      (       d   eg )NTFT  r   i  i  rH  )	r0   rb   r.   rc   r   rE   r  rH   rJ   )r   mr   rZ   rU   s        r7   %test_array_from_pandas_date_with_maskBTestConvertDateTimeLikeTypes.test_array_from_pandas_date_with_maskx  s    HH()yyq!q!q!
  %%d%399dDq!$4d;<xx##H-44V<<<<rj   z1.16.0z1.16.1z#Until numpy/numpy#12745 is resolved)reasonc                     [         R                  " S[         R                  " S5      [         R                  /05      n[	        USS9  g )Nr   z2012-11-11 00:00:00+01:00Fr  )r.   r/   	Timestampr"  r\   r   s     r7   test_fixed_offset_timezone7TestConvertDateTimeLikeTypes.test_fixed_offset_timezone  s?    
 \\89
  	 6rj   c           	      N   [        [        R                  5      [        S5      :  a  Sn[        R                  " S[        R
                  " / SQSU S3S905      n[        R                  " S[        R                  " U5      5      n[        R                  " U/5      n[        UUS9  g )	Nr>  r<  timedelta64)r   l     qa    @B1timedelta64[rE  r   r  r   r.   rG  r/   r0   rb   rE   r   durationr:   r\   r   r:  rT   r   r:   s        r7   test_timedeltas_no_nulls5TestConvertDateTimeLikeTypes.test_timedeltas_no_nulls  s    2>>"WW%55D\\288$E,8a*@B
  D(9:E7#"	
rj   c           	      N   [        [        R                  5      [        S5      :  a  Sn[        R                  " S[        R
                  " / SQSU S3S905      n[        R                  " S[        R                  " U5      5      n[        R                  " U/5      n[        UUS9  g )	Nr>  r<  r  )r   Nr  r  rE  r   r  r  r  s        r7   test_timedeltas_nulls2TestConvertDateTimeLikeTypes.test_timedeltas_nulls  s    2>>"WW%55D\\288$<,8a*@B
  D(9:E7#"	
rj   c                     SSK Jn  [        R                  " SS U" SSSSS9/05      n[        R
                  " S[        R                  " 5       4/5      n[        UUS9  g )	Nr   )
DateOffsetdate_offseti  r   iX  )r  monthsmicrosecondsnanosecondsr  )pandas.tseries.offsetsr  r.   r/   rE   r:   month_day_nano_intervalr\   )r   r  rT   r:   s       r7   test_month_day_nano_interval9TestConvertDateTimeLikeTypes.test_month_day_nano_interval  sb    5\\D&DA3689
 
 ]B,F,F,HIJK"	$rj   rF  )8r  r  r  r  r  r  r  r   r  r  r  r  r  hgivenstnonepast	timezonessettingsr  r  r  r  r  r  r   r  rE   r  r  r  r  r  r  r  r3  r;  rA  rS  r^  rf  ri  ro  rr  rw  r}  skipifr0   r   rG  r  r  r  r  r  rF  rj   r7   r  r  A  s   

 [[V%<=$ >$83&( WWRWWY'(ZZ7  )7J&323"/ [[V0& $	$2 [[:7689595: [[97689?9?" [[\ iik299;S8I ll40",,t2D ll40",,sE2J ll47dE9R ll47	9:
G:
G [[\ iik299;S8I ll40",,t2D ll40",,sE2J ll47dE9R ll47	9:L:L* '/7bE)#BJ./`9B,B60 [[Wryy{BIIK&@AE BE= [[
$ 	078,NN1 0 0%h/04  67	67 [[V%<=
 >
 [[V%<=
 >

$rj   r  c                   t   \ rS rSrS rS r\R                  R                  S 5       r	\R                  R                  \R                  R                  SSS/5      S 5       5       rS	 rS
 rS rS rS rS rS rS rS rS rS rS r\R                  R                  S\R2                  " 5       \R4                  " 5       \R6                  " 5       /5      S 5       r\R                  R                  S\R2                  " 5       \R4                  " 5       \R6                  " 5       /5      S 5       rS rS rS r Sr!g)TestConvertStringLikeTypesi  c                    SnSS SS[         R                  /n[        R                  " SX!-  05      n[        R
                  " S[        R                  " 5       (       a  [        R                  " 5       O[        R                  " 5       5      n[        R                  " U/5      n/ SQn[        R                  " SXa-  05      n[        X7US9  g )NrF  r   rx     mañanastrings)r   Nrx  r  Nrl  )r0   rM   r.   r/   rE   r   r   r  large_stringr  r:   r\   )r   repeatsrs   rT   r   r:   r,  rU   s           r7   test_pandas_unicode.TestConvertStringLikeTypes.test_pandas_unicode  s    ui8\\9f&678!,!>!>!@!@BOObiik
 E7#9	<<I,? @AvNrj   c                 N   SSS [        S5      S[        R                  /n[        R                  " SU05      n[
        R                  R                  U5      nUS   R                  [
        R                  " 5       :X  d   e/ SQn[        R                  " SU05      n[        X%5        g )Nqux   foo   barzr  r   )   quxr  Nr  r  N)	bytearrayr0   rM   r.   r/   rE   rG   rH   r_   binaryr\   )r   rs   rT   rY   values2rU   s         r7   test_bytes_to_binary/TestConvertStringLikeTypes.test_bytes_to_binary  s    y'95"&&I\\9f-.$$R(Qx}}		+++?<<G 45-rj   c                 j   SS-  nSS-  n[         R                  " SU/S-  U/-   S/S-  -   05      n[        R                  " US   5      n[	        U[        R
                  5      (       d   eUR                  S:X  d   eS n[        R                  R                  U5      nUS   R                  S:X  d   eg )	N   x kr     r6   r)   r   )	r.   r/   rE   rb   r   ChunkedArray
num_chunksrG   rH   )r   v1v2rT   rh   rY   s         r7   test_bytes_exceed_2gb0TestConvertStringLikeTypes.test_bytes_exceed_2gb  s    II \\tbyB4'3%"*4
  hhr)}%#r////~~"""$$R(Qx""a'''rj   charr6   r  c                    US-  nUS-  n[         R                  " SU//S-  U//-   S//-   05      n[        R                  " US   SS9nUR	                  SS9  [        U[        R                  5      (       d   eUR                  S	:X  d   e[        UR                  S
5      5      S:X  d   e[        UR                  S5      5      S:X  d   eg )Nr  r  r  r  r  Tr  fullr)   r      r   )
r.   r/   rE   rb   validater   r  r  r   rt  )r   r  r  r  rT   rh   s         r7   +test_auto_chunking_pandas_series_of_stringsFTestConvertStringLikeTypes.test_auto_chunking_pandas_series_of_strings  s     II\\v{rdV+vh6
  hhr)}$7$#r////~~"""399Q< B&&&399Q< A%%%rj   c                    SS [        S5      S S S/n[        R                  " SU05      n[        R                  " [        R
                  " S[        R                  " S5      5      /5      n[        R                  R                  X#S9nUR                  S   R                  US   R                  :X  d   eUR                  S   R                  US   R                  :X  d   eUR                  5       n[        R                  " XR5        g )Nr     bar   heyr  r   r  r   )r  r.   r/   rE   r:   r   r  rG   rH   r_   ra   rI   rR   rS   )r   rs   rT   r:   rY   rZ   s         r7   test_fixed_size_bytes0TestConvertStringLikeTypes.test_fixed_size_bytes  s    $	& 14vF\\9f-.BHHY		!=>?$$R$7||A##vay~~555||A##vay~~555"
f)rj   c                 r   / SQn[         R                  " SU05      n[        R                  " [        R                  " S[        R
                  " S5      5      /5      n[        R                  " [        R                  5         [        R                  R                  X#S9  S S S 5        g ! , (       d  f       g = f)N)r  Ns   baNNr  r  r   r  )r.   r/   rE   r:   r   r  r   rU  ArrowInvalidrG   rH   )r   rs   rT   r:   s       r7   5test_fixed_size_bytes_does_not_accept_varying_lengthsPTestConvertStringLikeTypes.test_fixed_size_bytes_does_not_accept_varying_lengths  so    :\\9f-.BHHY		!=>?]]2??+HH   3 ,++s   B((
B6c                 n    [         R                  " / SQ5      n[        U[        R                  " 5       S9  g )N   123rj   ri  Nrf   )r.   rc   ri   rE   r  r   re   s     r7   test_variable_size_bytes3TestConvertStringLikeTypes.test_variable_size_bytes  s!    II/05rj   c                     [         R                  " [        S5      [        S5      [        S5      S /5      n[        U[        R
                  " 5       S9  [        U[        R
                  " 5       S9  g )Nr  rj   ri  r  rg   )r.   rc   r  ri   rE   r  r  s     r7   test_binary_from_bytearray5TestConvertStringLikeTypes.test_binary_from_bytearray  sM    IIy()C.)D/  	 5BIIK@rj   c                    [         R                  " / SQ5      n[        U[        R                  " 5       S9  [         R
                  " SU05      n[        U[        R                  " S[        R                  " 5       4/5      S9  g Nr  r  r   r  )r.   rc   ri   rE   large_binaryr/   r\   r:   r   re   rT   s      r7   test_large_binary,TestConvertStringLikeTypes.test_large_binary  sY    II/0):;\\3(#ryy3(9":!;<	>rj   c                    [         R                  " / SQ5      n[        U[        R                  " 5       S9  [         R
                  " SU05      n[        U[        R                  " S[        R                  " 5       4/5      S9  g N)123r*   r   Nr  r   r  )r.   rc   ri   rE   r  r/   r\   r:   r  s      r7   test_large_string,TestConvertStringLikeTypes.test_large_string&  sY    II,-):;\\3(#ryy3(9":!;<	>rj   c                    [         R                  " / SQ5      n[        U[        R                  " 5       S9  [         R
                  " SU05      n[        U[        R                  " S[        R                  " 5       4/5      S9  g r  )r.   rc   ri   rE   binary_viewr/   r\   r:   r  s      r7   test_binary_view+TestConvertStringLikeTypes.test_binary_view-  sY    II/0)9:\\3(#ryy3(8"9!:;	=rj   c                    [         R                  " / SQ5      n[        U[        R                  " 5       S9  [         R
                  " SU05      n[        U[        R                  " S[        R                  " 5       4/5      S9  g r  )r.   rc   ri   rE   string_viewr/   r\   r:   r  s      r7   test_string_view+TestConvertStringLikeTypes.test_string_view4  sY    II,-)9:\\3(#ryy3(8"9!:;	=rj   c                    / SQn[         R                  " SU05      n[        R                  " S[        R                  " 5       5      n[        R
                  " U/5      n[        R                  R                  X$S9nUR                  SS9n[         R                  " SU05      n[        R                  " XgSS9  UR                  SS9n[         R                  " S[         R                  " U5      05      n	[        R                  " XSS9  g )Nr*   r*   r*   r*   r*   r  r  Fstrings_to_categoricalTr  )r.   r/   rE   r   r  r:   rG   rH   rI   rR   rS   Categorical)
r   rs   rT   r   r:   rY   result1	expected1r   	expected2s
             r7   test_table_empty_str/TestConvertStringLikeTypes.test_table_empty_str;  s    %\\9f-.BIIK0E7#$$R$7///?LL)V!45	
gdC///>LL)R^^F-C!DE	
gdCrj   c                    / SQn[         R                  " SU05      n[        R                  " S[        R                  " 5       5      n[        R
                  " U/5      n[        R                  R                  X$S9n[         R                  " SU05      n[         R                  " S[         R                  " U5      05      nUR                  S/S9n[        R                  " XSS9  UR                  / S9n	[        R                  " XSS9  UR                  SS9n
[        R                  " XSS9  UR                  [        5       S9n[        R                  " XSS9  g )Nr  r  r  
categoriesTr  )r  )r.   r/   rE   r   r  r:   rG   rH   r  rI   rR   rS   tuple)r   rs   rT   r   r:   rY   expected_strexpected_catr  r   result3result4s               r7   test_selective_categoricals6TestConvertStringLikeTypes.test_selective_categoricalsJ  s
   %\\9f-.BIIK0E7#$$R$7||Y$78||Yv0F$GH//i[/9
gF//R/0
gF//\/:
gF//UW/5
gFrj   c                     [         R                  " / [         R                  " 5       S9n[         R                  R	                  U/S/S9nUR                  S/S9  g )Nr  r[   r  r   r  )rE   rb   r   rG   r   rI   )r   rb   rY   s      r7   &test_to_pandas_categorical_zero_lengthATestConvertStringLikeTypes.test_to_pandas_categorical_zero_length\  sE    "((*-$$UGE7$CE7+rj   c                     [         R                  " / SQ5      R                  5       n[         R                  R	                  U/S/S9nUR                  S/S9nUR                  5       R                  U5      (       d   eg )N)r   r   r   rx  r[   r  r  )rE   rb   dictionary_encoderG   r   rI   rJ   )r   rb   rY   rZ   s       r7   ,test_to_pandas_categories_already_dictionaryGTestConvertStringLikeTypes.test_to_pandas_categories_already_dictionaryc  sg    56HHJ$$UGE7$CUG4 ''////rj   string_typec                 R   / SQn[         R                  " SU05      n[        R                  " SU5      n[        R                  " U/5      n[        R
                  R                  X5S9nUR                  SS9n[         R                  " S[         R                  " U5      05      n[        R                  " XxSS9  [        R                  " [        R                  5         UR                  SSS9  S S S 5        US   R                  SS9n[         R                  " [         R                  " U5      SS9n[        R                  " Xx5        [        R                  " [        R                  5         US   R                  SSS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)	N)r   r   r   r   r   r  r  Tr  r  r  zero_copy_onlyr`   )r.   r/   rE   r   r:   rG   rH   rI   r  rR   rS   r   rU  r  rc   rd   	r   r  rs   rT   r   r:   rY   rZ   rU   s	            r7   (test_table_str_to_categorical_without_naCTestConvertStringLikeTypes.test_table_str_to_categorical_without_naj  sB    +\\9f-.K0E7#$$R$7=<<BNN6,B CD
fDA]]2??+OO4+/  1 ,
 y!++4+H99R^^F3)D
v0]]2??+)&&d6: ' < ,+ ,+ ,+s   F*F
F
F&c                 r   S SS[         R                  /n[        R                  " SU05      n[        R
                  " SU5      n[        R                  " U/5      n[        R                  R                  X5S9nUR                  SS9n[        R                  " S[        R                  " U5      05      n[        R                  " XxSS9  [        R                  " [        R                  5         UR                  SSS9  S S S 5        US   R                  SS9n[        R                   " [        R                  " U5      SS	9n[        R"                  " Xx5        [        R                  " [        R                  5         US   R                  SSS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)
Nr   r   r  r  Tr  r  r  r`   )r0   rM   r.   r/   rE   r   r:   rG   rH   rI   r  rR   rS   r   rU  r  rc   rd   r  s	            r7   %test_table_str_to_categorical_with_na@TestConvertStringLikeTypes.test_table_str_to_categorical_with_na  sO    S"&&)\\9f-.K0E7#$$R$7=<<BNN6,B CD
fDA]]2??+OO4+/  1 ,
 y!++4+H99R^^F3)D
v0]]2??+)&&d6: ' < ,+ ,+ ,+s   ,F:F(
F%(
F6c                     [         R                  " [        R                  " S/[        S9[         R                  " 5       5      nUR
                  [         R                  " 5       :X  d   eg )Nr  r   )rE   rb   r0   r?   r  r_   )r   	converteds     r7   test_array_of_bytes_to_strings9TestConvertStringLikeTypes.test_array_of_bytes_to_strings  s=    HHRXXtfF;RYY[I	~~,,,rj   c                    [         R                  " [        R                  R                  SS9   [        R
                  " [        R
                  " S/[        S9[        R                  " 5       5        S S S 5        g ! , (       d  f       g = f)Nzwas not a utf8 stringr]  s   r   )	r   rU  rE   libr  rb   r0   r?   r  r   s    r7   'test_array_of_bytes_to_strings_bad_dataBTestConvertStringLikeTypes.test_array_of_bytes_to_strings_bad_data  sQ    ]]##-/ HHRXX{m6:BIIKH/ / /s   AA::
Bc                 >   [         R                  " / SQSS9n[        R                  " U[        R                  " S5      S9n[        R                  " [	        U5      [        R                  " S5      S9nUR                  U5      (       d   e[         R                  " / SQ5      n[        R                  " U[        R                  " S5      US9n[        R                  " / SQ[        R                  " S5      S9nUR                  U5      (       d   e[        R                  " [        R                  R                  S	S
9   [         R                  " / SQSS9n[        R                  " U[        R                  " S5      S9  S S S 5        [        R                  " [        R                  R                  SS
9   [         R                  " / SQSS9n[        R                  " U[        R                  " S5      S9  S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)N)r  r     bazz|S3r   r   r  FTFr  )r  Nr  z)Got bytestring of length 3 \(expected 4\)r]  r   z*Got bytestring of length 12 \(expected 3\)z|U3)
r0   rb   rE   r  r.  rJ   r   rU  r  r  )r   rh   r  rU   rl   s        r7   ,test_numpy_string_array_to_fixed_size_binaryGTestConvertStringLikeTypes.test_numpy_string_array_to_fixed_size_binary  sn   hh/u=HHSryy|4	88DIBIIaL9))))xx,-HHSryy|$?	8821F))))]]266..!MO((35ACHHSryy|,O
 ]]##CE ((35ACHHSryy|,	E EO O
E Es   =AG=3AH=
H
HrF  N)"r  r  r  r  r  r  r   r  large_memoryr  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  rE   r  r  r  r  r  r  r  r!  r  rF  rj   r7   r  r    s;   O	. [[( (  [[[[Vc4[1& 2 &*46A>>==DG$,0 [[		R__%68HI<<0 [[		R__%68HI<<2-I-rj   r  c                   ^   \ rS rSrSr\R                  " S5      \R                  " S5      /r\R                  " S5      \R                  " S5      /r\R                  " S5      \R                  " S5      /r	\
R                  R                  S	\
R                  " \\R                  " S
S5      SS9\
R                  " \\R                  " SS5      SS9\
R                  " \	\R                  " SS5      SS9/5      S 5       r\
R                  R                  S\
R                  " \SS9\
R                  " \SS9\
R                  " \	SS9/5      S 5       rS rS rS rS rS r\
R                  R                  S\R                  \R                  \R                  \R,                  /5      S 5       rSrg) TestConvertDecimalTypesr{  z$
Conversion test for decimal types.
z	-1234.123z1234.439z-129934.123331z129534.123731r  z-314292388910493.12343437128)rs   r  r   r   r  )idr9  r   r  r  r  r  c                 6   [         R                  " SU05      n[        R                  R	                  USS9n[        R
                  " SU5      n[        R                  " U/UR                  R                  S9nUR                  R                  U5      (       d   eg )Nr  Fr   r  )	r.   r/   rE   rG   rH   r   r:   r+  rJ   )r   rs   r  rU   rY   r   rV   s          r7   test_decimal_from_pandas0TestConvertDecimalTypes.test_decimal_from_pandas  sy     <<V 45$$Xe$D]3 ))UGell6K6KL||""?3333rj   rs   c                     [         R                  " SU05      n[        R                  R	                  U5      nUR                  5       n[        R                  " XB5        g )Nr  )r.   r/   rE   rG   rH   rI   rR   rS   )r   rs   rU   r  rT   s        r7   test_decimal_to_pandas.TestConvertDecimalTypes.test_decimal_to_pandas  sG     <<V 45HH((2	  "
b+rj   c                    [         R                  " S5      /n[        R                  " SS5      n[        R
                  " [        R                  5         [        R                  " XS9  S S S 5        [         R                  " S5      /n[        R                  " SS5      n[        R
                  " [        R                  5         [        R                  " X4S9  S S S 5        g ! , (       d  f       N~= f! , (       d  f       g = f)Nz1.234r  r)   r  z1.2345r   )r   r   rE   r  r   rU  r  rb   )r   data1type1data2type2s        r7   "test_decimal_fails_with_truncation:TestConvertDecimalTypes.test_decimal_fails_with_truncation  s    )*b!$]]2??+HHU' , *+b!$]]2??+HHU' ,+ ,+
 ,+s   C C1 
C.1
C?c                    [         R                  " S5      [         R                  " S5      /n[        R                  " U5      n[        R
                  " U5      nUR                  5       U:X  d   eUR                  [        R                  " SS5      :X  d   e[        R
                  " U[        R                  " SS5      S9n[         R                  " S5      [         R                  " S5      /nUR                  5       U:X  d   eg )	Nz0.01z0.001r   r9  r   r  z0.01000z0.00100)	r   r   r.   rc   rE   rb   r  r_   r  )r   r   seriesrb   rU   s        r7   &test_decimal_with_different_precisions>TestConvertDecimalTypes.test_decimal_with_different_precisions  s    OOF#OOG$
 4  D(((zzR]]1a0000BMM"a$89OOI.	0JK H,,,rj   c                    [         R                  " [        R                  " S5      S /5      n[	        U[
        R                  " SS5      S9  [         R                  " S /S-  5      n[	        U[
        R                  " SS5      S9  g )Nr  r9  r   r  r)   r.   rc   r   r   ri   rE   r  r   r5  s     r7   $test_decimal_with_None_explicit_type<TestConvertDecimalTypes.test_decimal_with_None_explicit_type	  s^    GOOF3T:;bmmB.BC D6A:&bmmB.BCrj   c                     [         R                  " [        R                  " S5      S /5      n[	        U[
        R                  " SS5      S9  g )Nr  r   r)   r  r9  r:  s     r7   !test_decimal_with_None_infer_type9TestConvertDecimalTypes.test_decimal_with_None_infer_type  s3    GOOF3T:;q!9LMrj   c                     SS0S[         R                  " S5      0S.n[        R                  R	                  U5      n[        U5        g )Nr   r   z0.0rO  )r   r   r.   r/   	from_dictr\   )r   tmpdirr   rT   s       r7   test_strided_objects,TestConvertDecimalTypes.test_strided_objects  sA     SW__U+,
 \\##D)#rj   r  c                     [         R                  " S5      S /n[        R                  " X!" SS5      S9nUR	                  5       n[
        R                  " U5      n[        R                  " XE5        g )Nr  r   r)   r  )	r   r   rE   rb   rI   r.   rc   rR   rd   )r   r  r   rh   rZ   rU   s         r7   test_decimal_array_to_pandas4TestConvertDecimalTypes.test_decimal_array_to_pandas   sS     '.hht#a),99T?
v0rj   rF  N)r  r  r  r  r  r   r   r  r  r  r   r  r  paramrE   r(  r+  r2  r6  r;  r>  rC  r  rF  r  rF  rj   r7   r%  r%    s    	$
#I
 	()(I
 	5667J
 [[8Ya 3DYb! 4EZr2!6<H; 
4
4 [[XY;/Y;/ZL1( 
,
,	(-DN	$ [[U



	% 11rj   r%  c            
          \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS r\R6                  R9                  S\R<                  SS/S/S/SS/S/4\R>                  SS/S/S/SS/S/4\R@                  SS/S/S/SS/S/4/5      S  5       r!S! r"S" r#S# r$S$ r%S% r&\R6                  RN                  S& 5       r(S' r)S( r*S) r+S* r,S+ r-S, r.\R6                  R9                  S-\R^                  \R`                  /5      S. 5       r1\R6                  R9                  S-\R^                  \R`                  /5      S/ 5       r2\R6                  R9                  S-\R^                  \R`                  /5      S0 5       r3\R6                  R9                  S-\R^                  \R`                  /5      S1 5       r4\R6                  R9                  S-\R^                  \R`                  /5      S2 5       r5S3r6g)4TestConvertListTypesi.  z$
Conversion tests for list<> types.
c                 n   [        5       u  p[        XUS9  [        R                  R	                  XSS9nUR                  UR                  R                  5      nUR                  R                  U5      (       d   eUR                   H*  nUR                  U5      n[        X   UR                  S9  M,     g Nr:   rV   Frs  r  )r   r\   rE   rG   rH   with_metadatar:   r+  rJ   rK   r   ru   r_   r   rT   r:   rY   rV   rm  r   s          r7   test_column_of_arrays*TestConvertListTypes.test_column_of_arrays3  s    *,
6J$$Ru$M !..u||/D/DE||""?3333jjFLL(E"2:EJJ? !rj   c           
      :   Sn[         R                  " [         R                  " SUS9[         R                  " SUS9S [         R                  " SUS9/[        S9n[        R
                  " [        R                  " 5       5      n[        R                  " X#S9nUS   R                  5       [        [        S5      5      :X  d   eUS   R                  5       [        [        S5      5      :X  d   eUS   R                  5       b   eUS	   R                  5       S/:X  d   eg )
Nr  r  r   r   r   r  r   r)   r   )
r0   rb   r1   r?   rE   r  r   r  r.  r4   )r   r   rh   rf   rO  s        r7   test_column_of_arrays_to_py0TestConvertListTypes.test_column_of_arrays_to_py@  s    hhIIb&IIau%IIau%	

  #xx(Aw}}$uRy/111Aw}}$uQx.000Aw}}&&&Aw}}1#%%%rj   c                    [         R                  " SS/S//[         R                  " [         R                  " 5       5      S9n[         R                  R                  U/S/S9nUR                  5       n[        R                  " SSS/S//05      n[        R                  " X45        US   R                  5       n[        R                  " [        R                  " U5      US   SS9  g )NTFr  r  r   r   rm   )rE   rb   r  r  rG   r   rI   r.   r/   rR   rS   rd   rc   )r   rb   rY   rT   r  re   s         r7   test_column_of_boolean_list0TestConvertListTypes.test_column_of_boolean_listQ  s    4-$0rxx
7KL$$eWVH$=__llFdE]TF,C#DE
b.!H 
ryy|RZUKrj   c           	      @   [         R                  " [        R                  " S5      [        R                  " S5      /[        R                  " S5      //[         R                  " [         R
                  " SS5      5      S9n[         R                  R                  U/S/S9nUR                  5       n[        R                  " S[        R                  " S5      [        R                  " S5      /[        R                  " S5      //05      n[        R                  " X45        g )	Nr   rj  z3.3r)   r   r  r  r   )rE   rb   r   r   r  r  rG   r   rI   r.   r/   rR   rS   )r   rb   rY   rT   r  s        r7   test_column_of_decimal_list0TestConvertListTypes.test_column_of_decimal_list]  s    7??3/1EF"??5124 hhr}}Q':;= $$eWVH$=__llws+W__S-ABu-.0 12 	b.rj   c                    [         R                  " [        R                  " [        R                  [        R                  /[
        S95      n[        R                  " [        R                  " 5       5      [        R                  " [        R                  " 5       5      [        R                  " [        R                  " SS5      /5      4 H  n[        R                  " XS9n[        R                  " S S /US9nUR                  U5      (       d   e[        R                  " [        5         [        R                  " UR                   US9  S S S 5        M     g ! , (       d  f       M  = f)Nr   f0r   r  )r.   rc   r0   rb   rM   r?   rE   r  r   
large_liststructr   rJ   r   rU  	TypeErrorrs   )r   re   rv  rZ   rU   s        r7   +test_nested_types_from_ndarray_null_entries@TestConvertListTypes.test_nested_types_from_ndarray_null_entriesi  s    IIbhh/v>?88BHHJ'==,99bhhtW5679B XXa)Fxxt26H==****y)+ *)9 *)s   ) E
E%	c                 n   [        5       u  p[        XUS9  [        R                  R	                  XSS9nUR                  UR                  R                  5      nUR                  R                  U5      (       d   eUR                   H*  nUR                  U5      n[        X   UR                  S9  M,     g rL  )r   r\   rE   rG   rH   rN  r:   r+  rJ   rK   r   ru   r_   rO  s          r7   test_column_of_lists)TestConvertListTypes.test_column_of_listsw  s    )+
6J$$Ru$M !..u||/D/DE||""?3333jjFLL(E"2:EJJ? !rj   c           
      B   / / SQ/ SQ/ S//n[         R                  " U Vs/ s H  n[        R                  " U[        S9PM     sn5      n[
        R                  " U5      n[         R                  " UR                  5       5      n[        R                  " XS5        g s  snf )Nr  )r   r   r   r   r)   r   )	r.   rc   r0   rb   r  rE   rI   rR   rd   )r   	num_listsre   r5  rh   rZ   s         r7    test_column_of_lists_first_empty5TestConvertListTypes.test_column_of_lists_first_empty  sr    L"qc:	iHiBHHQe4iHIhhv3==?+
v. Is   #Bc                 &   [         R                  " S[        R                  " SS/S SS/SS/SS/S	S
//[        S905      n[
        R                  " [
        R                  " S[
        R                  " [
        R                  " 5       5      5      /5      n[
        R                  R                  US S US9n[
        R                  R                  USS  US9n[
        R                  " X4/5      nUR                  5       n[        R                  " Xa5        g )Nlistsr   r)   r   r   r   r   r   r   	   r   r  )r.   r/   r0   rb   r?   rE   r:   r   r  r   rG   rH   concat_tablesrI   rR   rS   )r   rT   r:   r>  r?  rY   rZ   s          r7   test_column_of_lists_chunked1TestConvertListTypes.test_column_of_lists_chunked  s    \\RXXAAAAA 	
 	 HHWbhhrxxz23
  XX!!"Ra&!8XX!!"QR&!8  "*"
f)rj   c           	         [         R                  " S[        R                  " / [        S905      n[
        R                  " [
        R                  " S[
        R                  " [
        R                  " 5       5      5      /5      n[
        R                  R                  XS9nUR                  5       n[        R                  " XA5        g )Nrj  r   r  )r.   r/   r0   rb   r?   rE   r:   r   r  r   rG   rH   rI   rR   rS   )r   rT   r:   rY   rZ   s        r7   "test_empty_column_of_lists_chunked7TestConvertListTypes.test_empty_column_of_lists_chunked  s    \\RXXb/
  HHWbhhrxxz23
  $$R$7"
f)rj   c           	         SS/SS/SS/SS/S	S
/SS/SS/SS//nSS/SS//n[         R                  " U5      n[         R                  " U5      n[         R                  R                  U/S/S9n[         R                  R                  U/S/S9n[         R                  " XV/5      nUR                  5       n[        R                  " SX-   05      n	[        R                  " X5        g )Nr   r   r)   r   r   r   r   r   r  r  r9                 r   rk        r   r   )
rE   rb   rG   r   rl  rI   r.   r/   rR   rS   )
r   r.  r0  r@  r  r>  r?  concatenatedrZ   rU   s
             r7   test_column_of_lists_chunked22TestConvertListTypes.test_column_of_lists_chunked2  s    Q!Q!Q!Q"bbB8b"X/Q"b"XXe_XXe_XX!!2$se!4XX!!2$se!4''1'')<<em 45
f/rj   c                     [        5       u  p[        R                  " U/S-  SS9nUS   R                  S S S2   nUR                  S   S:w  d   e[        U5        g )Nr   T)ignore_indexr   r   r   r   )r   r.   concatrs   stridesru   )r   rT   r:   rh   s       r7   test_column_of_lists_strided1TestConvertListTypes.test_column_of_lists_strided  sX    )+
YYtaxd3k  1%{{1~"""s#rj   c           
      R   [         R                  " S S /S /[        S9n[        R                  " U5      n[        R                  " [	        U5      5      nUR                  U5      (       d   eUR                  [        R                  " [        R                  " 5       5      :X  d   e[         R                  " S S S S /[         R                  " S S /[        S9/[        S9n[        R                  " U5      n[        R                  " S S S S /S S //5      nUR                  U5      (       d   eg )Nr   )	r0   rb   r?   rE   r.  rJ   r_   r  r8  )r   r   rh   rU   r0  s        r7   test_nested_lists_all_none/TestConvertListTypes.test_nested_lists_all_none  s    xx$t,F;hhtn88DJ'zz(####xx288BGGI....$tTl((D$<v>@%' hhuo88T4$d|DEzz(####rj   c                 B   [         R                  " / / / /5      n[        R                  " U5      n[        R                  " [	        U5      5      nUR                  U5      (       d   eUR                  [        R                  " [        R                  " 5       5      :X  d   eg N)	r.   rc   rE   rb   r.  rJ   r_   r  r8  r   r   rh   rU   s       r7   test_nested_lists_all_empty0TestConvertListTypes.test_nested_lists_all_empty  sk    yy"b"&hhtn88DJ'zz(####xx288BGGI....rj   c                 B   [         R                  " / S//5      n[        R                  " U5      n[        R                  " [	        U5      5      nUR                  U5      (       d   eUR                  [        R                  " [        R                  " 5       5      :X  d   eg )Nr   )	r.   rc   rE   rb   r.  rJ   r_   r  r  r  s       r7   test_nested_list_first_empty1TestConvertListTypes.test_nested_list_first_empty  sk    yy"se%hhtn88DJ'zz(####xx288BIIK0000rj   c                    [         R                  " [        R                  " / SQSS9S /5      n[        R                  " U5      n[        R                  " UR
                  5      n[        R                  " / SQS /[        R                  " [        R                  " 5       5      S9nUR                  U5      (       d   eUR                  U5      (       d   e[         R                  " [        R                  " / SQSS9S /5      n[        R                  " U5      n[        R                  " / SQS /[        R                  " [        R                  " 5       5      S9nUR                  U5      (       d   eg )Nr   r  r   r  r  )
r.   rc   r0   rb   rE   rs   r  r   rJ   r   )r   r   rZ   r   rU   data3r  	expected3s           r7   test_nested_smaller_ints-TestConvertListTypes.test_nested_smaller_ints  s     yy"((9D94@A$((4;;'88Y-BHHRWWY4GH}}X&&&&~~h''''		288IT:DAB((5/HHi.RXXbjjl5KL	~~i((((rj   c                    [        S[        R                  S/SS//4SSS/SS//4SS S/S	S
//4SS S/S	S
//S /4/5      n[        R                  " U5      n[
        R                  " [
        R                  " S[
        R                  " [
        R                  " 5       5      5      [
        R                  " S[
        R                  " [
        R                  " 5       5      5      [
        R                  " S[
        R                  " [
        R                  " 5       5      5      [
        R                  " S[
        R                  " [
        R                  " [
        R                  " 5       5      5      5      /5      n[        X#S9  g )Nnan_intsr   r)   r   rz  r   strsr   r   dnested_strsr  )r   r0   rM   r.   r/   rE   r:   r   r  r   r  r\   r   r   rT   rV   s       r7   test_infer_lists%TestConvertListTypes.test_infer_lists  s   2661+1v./q!fq!f%&tSkC:./tSkC:6=>	
  \\$))HHZ"((*!56HHVRXXbhhj12HHVRXXbiik23HH]BHHRXXbiik-B$CD	%
  	 Drj   c                    [         R                  " [         R                  " 5       SS9n[         R                  " [         R                  " 5       5      n/ SQS / SQ/ SQ/n[         R                  " X1S9n[         R                  " X2S9nUR	                  5       nUR	                  5       n[        Xg5       H#  u  pUc  U	b   e[        R                  " X5        M%     g )Nr   )	list_size)r   r   r)   r   r   )r   rk  r  r  r  )rE   r  r   rb   rI   r  rx   ry   )
r   fixed_tyvariable_tyr   	fixed_arrvariable_arrrZ   rU   leftrights
             r7   test_fixed_size_list)TestConvertListTypes.test_fixed_size_list	  s    88BHHJ!4hhrxxz*dL.AHHT1	xx7$$&))+v0KD|}$}""4/ 1rj   c           	         [        S[        R                  " SS/[        R                  S9[        R                  " SS/[        R                  S9/4/5      n[        R
                  " U5      n[        R                  " [        R                  " S[        R                  " [        R                  " 5       5      5      /5      n[        X#S9  g )Nrz  r   r   r   r)   r   r  )r   r0   rb   r   r.   r/   rE   r:   r   r  r\   r  s       r7   test_infer_numpy_array+TestConvertListTypes.test_infer_numpy_array	  s    !Qrxx0!Qrxx0 
  \\$))HHVRXXbhhj12%
  	 Drj   c                    [         R                  " / SQ[         R                  " 5       5      n[         R                  " SS/SS/SS//[         R                  " [         R                  " 5       5      5      n[         R
                  R                  X/SS	/5      n[         R                  R                  / S
QU5      n[        R                  " SSS/S./SSS/S.SSS/S.//5      n[        R                  " UR                  5       5      n[        R                  " 5          [        R                  " SS[        5        [        R                   " Xe5        S S S 5        g ! , (       d  f       g = f)Nr   r   r   r   r  eff1r  )r   r   r   r   )r  r  r)   r   r@   rA   )rE   rb   r   r  r  StructArrayr   	ListArrayr.   rc   rI   rN   rO   rP   rQ   rR   rd   )r   rz  r  structsr   rU   r5  s          r7   test_to_list_of_structs_pandas3TestConvertListTypes.test_to_list_of_structs_pandas-	  s   xx	288:.((S#Jc
S#J?88BIIK02..,,d_tTlK||''	7;99c3Z()c3Z(c3Z(*
  4>>+, $$&##H.M$68""64 '&&s   3E
E&c                    [        [        R                  5      [        S5      :  a<  [        [        R                  5      [        S5      :  a  [        R
                  " S5        SSS/4SSS	/4//S
/ 4SSS S/4/SSS/4///n[        R                  " U[        R                  " [        R                  " [        R                  " 5       [        R                  " [        R                  " 5       5      5      5      5      nUR                  5       n[        R                  " U5      n[        R                  " 5          [        R                  " SS[         5        ["        R$                  " X45        S S S 5        g ! , (       d  f       g = f)N1.25.0.dev0r>  $Regression in pandas with numpy 1.25r   r   r   rx  r   r  r  r  Nquuxr  quzr  gr@   rA   )r   r0   rG  r.   r   rq  rE   rb   r  map_utf8rI   rc   rN   rO   rP   rQ   rR   rd   )r   r   rh   r5  rU   s        r7   test_to_list_of_maps_pandas0TestConvertListTypes.test_to_list_of_maps_pandasC	  s   R^^$(>>(77+;; KK>?sCj!EC:#678bk=6D#;*?@ECQT:CVBWX
 hhtRXXbggbggi"'')9L&MNO99T? $$&##H.M$68""64 '&&s   73E33
Fc           
      0   [        [        R                  5      [        S5      :  a<  [        [        R                  5      [        S5      :  a  [        R
                  " S5        [        R                  " / SQ5      R                  SS5      n[        R                  " S/S/SS	/S
S// SSS//[        R                  " [        R                  " 5       5      5      R                  SS5      n[        R                  R                  / SQX5      n[        R                  R                  / SQU5      nUR                  5       n[        R                  " SSS	/4SS
S/4//S/ 4S///5      nUR                  SS5      R                  5       n[        R                  " S/ 4S///5      n[         R"                  " 5          [         R$                  " SS[&        5        [(        R*                  " XV5        [(        R*                  " Xx5        SSS5        g! , (       d  f       g= f)z<
A slightly more rigorous test for chunk/slice combinations
r  r>  r  )r@   r   rx  r  r  r  r@   r   r   r@   r   r   r   r  Nr  r)   r   r)   r   r   r   rx  r  r  rA   )r   r0   rG  r.   r   rq  rE   rb   slicer  r  MapArrayr   r  rI   rc   rN   rO   rP   rQ   rR   rd   )	r   r  itemsmaprh   r5  rU   series_slicedexpected_sliceds	            r7   "test_to_list_of_maps_pandas_sliced7TestConvertListTypes.test_to_list_of_maps_pandas_slicedX	  s   
 R^^$(>>(77+;; KK>?xx 2 3385A; 	Z(c3Z#sRc{SHHRYY[!
 %1+ 	 kk%%i=ll&&y#699sCj!EC:#678bk=)*
 
 		!Q113))bk=)*%
  $$&##H.M$68""64""=B	 '&&s   5A	H
Hzt,data,expectedr   r)   r   Naaabbr   c                 h   [         R                  " / SQ5      n[        R                  " U5      n[        R
                  R                  XT[        R                  " U" 5       5      S9n[        R
                  R                  U[        R                  " U" 5       5      S9R                  U5      (       d   eg )Nrz  r  r  )	r0   rb   r.   rc   rE   r  rH   r  rJ   )r   r  r   rU   r|  re   rZ   s          r7   ,test_array_from_pandas_typed_array_with_maskATestConvertListTypes.test_array_from_pandas_typed_array_with_mask	  s    $ HH()IIdO%%abhhqsm%Dxx##H)+!# $ 88>vG 	G Grj   c                 @   [         R                  " S[        S9nUR                  / 5        [        R
                  " [         R                  " / SQ5      US.5      n[        R                  R                  U5      nUR                  5       n[        R                  " XB5        g )N)r   r   )r   rj  3rO  )r0   emptyr?   fillr.   r/   rb   rE   rG   rH   rI   rR   rS   )r   empty_list_arrayrT   r  rZ   s        r7   test_empty_list_roundtrip.TestConvertListTypes.test_empty_list_roundtrip	  so    88D7b!\\ 9 02 3hh""2&
f)rj   c                 B   [        5       u  pU H  nXR                     R                  n[        R                  " [        U5      UR                  S9n[        R                  " U5      nUR                  UR                  :X  d   eUR                  U5      (       a  M   e   g )Nr  )r   ra   rs   rE   rb   r.  r_   rJ   )r   rT   r:   r   rh   rU   rZ   s          r7   test_array_from_nested_arrays2TestConvertListTypes.test_array_from_nested_arrays	  sw    *,
EZZ.''CxxS	

;HXXc]F;;%**,,,==**** rj   c           	         [         R                  " / SQS//S /[         R                  " [         R                  " [         R                  " 5       5      5      S9R	                  5       n[
        R                  " 5          [
        R                  " SS[        5        [
        R                  " SS[        5        [        R                  " U[        R                  " / SQS//S /[        S9SS	9  S S S 5        g ! , (       d  f       g = f)
Nr   r   r  r@   z&Creating an ndarray from ragged nestedrA   r   Frm   )rE   rb   r]  r   rI   rN   rO   rP   _np_VisibleDeprecationWarningrQ   rR   rd   r.   rc   r?   r  s     r7   test_nested_large_list+TestConvertListTypes.test_nested_large_list	  s    XX	A3'.==rxxz)BCEik 	
 $$&##H$L$AC ##H.M$68""299y1#.5VD!# '&&s   ;A-C11
C?c           
      "   [         R                  [         R                  4 H  n[         R                  " SS/S S// /U" [         R                  " 5       5      S9R                  5       n[        R                  " U[        R                  " SS/S S// /5      SS	9  [         R                  " SS/S S// /U" [         R                  " 5       5      S9R                  5       n[        R                  " U[        R                  " SS/S S// /5      SS	9  M     g )
NrT  r  ccr  s   aas   bbs   ccFrm   )rE   r  r]  rb   r  rI   rR   rd   r.   rc   r  )r   list_type_factoryre   s      r7   test_large_binary_list+TestConvertListTypes.test_large_binary_list	  s    "$((BMM!:D$<vr:01BCE)+  ""299uendUGR@A!# D$<vr:01BCE)+  ""299tTlD4&"=>!# ";rj   c                    [         R                  " / SQ5      R                  5       n[         R                  R	                  / SQU5      n[
        R                  " UR                  5       5      n[        R                  " UR                  5       U5        UR                  / SQ5      nS US'   [        R                  " UR                  5       U5        g )N)r   rx  Nr   )r   r   r   r   r   )r   r   Nr   r)   )rE   rb   r  r  r   r.   rc   r  rR   rd   rI   take)r   childrh   rU   s       r7   test_list_of_dictionary,TestConvertListTypes.test_list_of_dictionary	  s    45GGIll&&> 99S]]_-
s}}9 hh'
s}}9rj   c           	         Sn[         R                  R                  [        [        R
                  " US4SS95      [        U5      S.5      n[        R                  R                  U5      nUR                  SS9  US   nUR                  S	:X  d   e[        UR                  S5      5      S
:X  d   e[        UR                  S5      5      S:X  d   eg )Ni    i   r   r   rO  Tr  r   r)   i r   )r.   r/   rA  r.  r0   zerosr4   rE   rG   rH   r  r  r   rt  )r   nrT   rY   column_as        r7   #test_auto_chunking_on_list_overflow8TestConvertListTypes.test_auto_chunking_on_list_overflow	  s     \\##bhh5z9:q%
  $$R(D!8""a'''8>>!$%2228>>!$%***rj   c                    SS/S// SQS//n[         R                  " SU05      n[        R                  " S[        R                  " [        R
                  " 5       [        R                  " 5       5      4/5      n[        X#S9  g )Nri  r      br)      cr      dr      er   )   fr      gr   r  r  )r.   r/   rE   r:   r  r  r   r\   )r   r   rT   r:   s       r7   test_map_array_roundtrip-TestConvertListTypes.test_map_array_roundtrip	  sg    I&1
 \\5$-(UBGGBIIK$DEFG2rj   c                 z   SS/S// SQS//nU VVVs/ s H  o" VVs/ s H  u  p4X4S-  4PM     snnPM     nnnn[         R                  " U[         R                  " [         R                  " 5       [         R                  " 5       5      S9n[         R                  " U[         R                  " [         R                  " 5       [         R                  " 5       5      S9n[         R
                  " Xg/5      n[        R                  " X-   5      n	UR                  5       n
[        R                  " XSS	9  g s  snnf s  snnnf )
Nr  r  r  r  r  r)   r  Frm   )rE   rb   r  r  r   r  r.   rc   rI   rR   rd   )r   r.  rowkrP  r0  arr1r  rh   rU   actuals              r7   test_map_array_chunked+TestConvertListTypes.test_map_array_chunked	  s    Y'2 :??#-1!e*-?xxBGGBIIK$DExxBGGBIIK$DE|,99U]+
vUC .?s   
D6D0D60D6c                    SS/S / SQS//nU VVVs/ s H-  o"b&  U VVs/ s H  u  p4X4b  [        U5      OS 4PM     snnOS PM/     nnnn[        R                  " U5      n[        R                  " U[        R
                  " [        R                  " 5       [        R                  " 5       5      S9nUR                  5       n[        R                  " XuSS9  g s  snnf s  snnnf )Nr  r  )r  r  )r  Nr  r  Frm   )r  r.   rc   rE   rb   r  r  r   rI   rR   rd   )r   r   r  r  rP  rU   rh   r  s           r7   test_map_array_with_nulls.TestConvertListTypes.test_map_array_with_nulls
  s    I&4 =AB<@S KNN#$!a]q=#N,01<@ 	 B99X&hht"''"))+rxxz"BC
vUC O Bs   CC
CCc           	         [         R                  " / SQ5      n[         R                  " / SQ5      R                  5       n[         R                  " [        [	        [        U5      5      5      5      n[         R                  R                  XU5      n[        R                  " / SQSS//5      nUR                  5       n[        R                  " XeSS9  g )Nr   r   r   )r   r   r   r   r  ))r   r   )r   r   )r)   r   )r   r   )r   r  Frm   )rE   rb   r  r.  r4   r   r  r   r.   rc   rI   rR   rd   )r   offsetsr  r  rh   rU   r  s          r7   !test_map_array_dictionary_encoded6TestConvertListTypes.test_map_array_dictionary_encoded
  s    ((9%23EEGxxU3u:./0kk%%gU; 99+h-ABD 
vUCrj   c           	         [         R                  " SS// SQS SS /SS//5      n[         R                  " UR                  SS5      UR                  SS5      /5      nUR	                  5       n[
        R                  " S	S
// SQS S[
        R                  //SS9n[        X45       H'  u  pVUc	  XV:X  d   eM  [        R                  " XV5        M)     [
        R                  " S	S
SSSS[
        R                  //5      n[        R                  " US   R                  U5        UR                  SS5      R	                  5       n[
        R                  " / SQS S[
        R                  //SS9n[        X5       H'  u  pVUc	  XV:X  d   eM  [        R                  " XV5        M)     [
        R                  " SSSS[
        R                  //5      n[        R                  " US   R                  U5        g )Nr   r)   )r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r?   r   r   r   r   )rE   rb   r  r  to_numpyr0   rM   r  rx   ry   base)	r   rh   chunked_arrr;  rU   r  r  expected_basenp_arr_sliceds	            r7   test_list_no_duplicate_base0TestConvertListTypes.test_list_no_duplicate_base
  s   hhA	4!TQFCD&&		!Q1a'IJ%%'88b"X|TL*19;v0KD}}$}&&t3	 1 2r2r2r266"B!CDvay~~}=#))!Q/88:88Yq"&&k:(K}7KD}}$}&&t3	 8 2r2r266":!;<}Q/44mDrj   c                    [         R                  R                  [         R                  " / SQ5      [         R                  " / SQ5      [         R                  " / SQ5      S9nUR	                  SS9n[
        R                  " SS/S S	[
        R                  //S
S9n[        X#5       H'  u  pEUc	  XE:X  d   eM  [        R                  " XE5        M)     g )Nr   r)   r   r   )r   r)   c   r  r   Nr   )r  rs   rl   Fr  r   r   r   r?   r   )
rE   r  r   rb   r	  r0   rM   r  rx   ry   )r   rh   r;  rU   r  r  s         r7   test_list_values_behind_null1TestConvertListTypes.test_list_values_behind_null=
  s    ll&&HH\*8834./ ' 

 U388b"Xtb"&&\:(Kv0KD}}$}&&t3	 1rj   rX   c                 4   UR                  [        R                  " / SQ5      [        R                  " / SQ5      [        R                  " / SQ5      S9nUR                  5       n[        R
                  " SS/SS/S	S
//5      n[        R                  " X45        g )Nr  r)   r)   r)   r   r)   r   r   r   r   r  sizesrs   r   r)   r   r   r   r   r   rE   rb   rI   r.   rc   rR   rd   r   rX   rh   r  rU   s        r7   .test_list_view_to_pandas_with_in_order_offsetsCTestConvertListTypes.test_list_view_to_pandas_with_in_order_offsetsL
  x    HHY'((9%88./   
 99q!fq!fq!f56
v0rj   c                 4   UR                  [        R                  " / SQ5      [        R                  " / SQ5      [        R                  " / SQ5      S9nUR                  5       n[        R
                  " SS/SS/S	S
//5      n[        R                  " X45        g )N)r)   r   r   r  r  r  r   r   r   r   r   r)   r  r  s        r7   2test_list_view_to_pandas_with_out_of_order_offsetsGTestConvertListTypes.test_list_view_to_pandas_with_out_of_order_offsetsY
  r  rj   c                 4   UR                  [        R                  " / SQ5      [        R                  " / SQ5      [        R                  " / SQ5      S9nUR                  5       n[        R
                  " / SQ/ SQ/ SQ/5      n[        R                  " X45        g )Nr   )r   r   r   r  r  r   )r)   r   r   r   )r   r   r   r   r  r  s        r7   1test_list_view_to_pandas_with_overlapping_offsetsFTestConvertListTypes.test_list_view_to_pandas_with_overlapping_offsetsf
  sl    HHY'((9%88./   
 99lL,GH
v0rj   c           	      v   UR                  [        R                  " / SQ5      [        R                  " / SQ5      [        R                  " SS /5      [        R                  " / SQ5      S9nUR                  5       n[        R
                  " S[        R                  // S /5      n[        R                  " X45        g )N)r   r)   r)   )r)   r   r   r   rV  r  r  rs   rl   )
r   rE   rb   rI   r.   rc   r0   rM   rR   rd   r  s        r7   )test_list_view_to_pandas_with_null_values>TestConvertListTypes.test_list_view_to_pandas_with_null_valuess
  s    HHY'((9%88QI&./	   
 99q"&&k2t45
v0rj   c           	         [         R                  " 5         [        R                  " 5       nUR	                  [        R
                  " / SQ5      [        R
                  " / SQ5      [        R
                  " / SQ5      S9nUR	                  [        R
                  " / SQ5      [        R
                  " / SQ5      [        R
                  " / SQ5      [        R
                  " / SQ5      S	9n[        R                  " X4/5      nUR                  5       n[        R                  " S
S/SS
/SS// SQSS[        R                  /S /5      n[        R                  " Xg5        AAAA[        R                  " 5       nX:X  d   eg )N)r)   r   r   r  r   r  )r   r   r   )r   r   r   )r   r   r   NrV  r'  r   r   r)   r   )r   r   r   r   r   )gccollectrE   total_allocated_bytesr   rb   r  rI   r.   rc   r0   rM   rR   rd   )	r   rX   bytes_startr  r  rh   r  rU   	bytes_ends	            r7   (test_list_view_to_pandas_multiple_chunks=TestConvertListTypes.test_list_view_to_pandas_multiple_chunks
  s   


..0  HHY'((9%88L) ! 

   HHY'((9%88O,./	 ! 
 |,99q!fq!fq!fi!QQUVW
v0,,.	'''rj   rF  )7r  r  r  r  r  rP  rS  rV  rY  r`  rc  rg  rm  rp  r{  r  r  r  r  r  r  r  r  r  r  r  r   r  r  rE   r   r  r8  r  r  r  r  r  r  r#  r  r  r  r  r  r  r  ListViewArrayLargeListViewArrayr  r!  r$  r(  r0  r  rF  rj   r7   rJ  rJ  .  s   @&"
L
/,@/*2*0$$$/1)E$0"E5,5*%CN [[.HHVaS$A3	
 IIT]SE4(C5$	
 GGD\D64(D64 	
1 "G#"G
*+##: [[+ +	3DDDE<4 [[Wr'7'79N9N&OP
1 Q
1 [[Wr'7'79N9N&OP
1 Q
1 [[Wr'7'79N9N&OP
1 Q
1 [[Wr'7'79N9N&OP1 Q1 [[Wr'7'79N9N&OP( Q(rj   rJ  c                       \ rS rSrSrS rS rS rS rS r	\
R                  R                  \
R                  R                  S 5       5       rS	 rS
 rS rSrg)TestConvertStructTypesi
  z$
Conversion tests for struct types.
c           	         [         R                  " SSSS.SSS./05      n[        R                  " S[        R                  " S[        R
                  " 5       4S[        R
                  " 5       4/5      4/5      n[        XS	9  [        XUS
9  g )Nr  r   r)   rO  r   r   r   r   r  rM  )r.   r/   rE   r:   r^  r   r\   )r   rT   rV   s      r7   test_pandas_roundtrip,TestConvertStructTypes.test_pandas_roundtrip
  s}    \\711%5QQ7G$HIJ))bii#rxxz!2S"((*4E FGH%
  	 D 	 	Irj   c                    [         R                  " / SQ[         R                  " 5       S9n[         R                  " / SQ[         R                  " 5       S9n[         R                  " / SQ[         R                  " 5       S9n[         R
                  R                  XU// SQ5      n[        R                  " S SSS.SS S	S.S
SS S./5      n[        R                  " UR                  5       5      n[        R                  " Xe5        g )N)Nr)   r   r  )r   Nr   )TFN)rz  r  rP  r   Tr)   Fr   r   )rE   rb   r   r  r  r  r   r.   rc   rI   rR   rd   )r   rz  r  rP  rh   rU   r5  s          r7   test_to_pandas%TestConvertStructTypes.test_to_pandas
  s    xx288:6xx(ryy{;,288:>nn((%' 9936u5d3
  3==?+
v0rj   c                    [         R                  " 5         [        R                  " 5       n[        R                  " S/[        R
                  " 5       S9n[        R                  " S/[        R
                  " 5       S9n[        R                  R                  U/S/5      n[        R                  R                  U/S/5      n[        R                  " XE/5      n[        R                  " SS0SS0/5      n[        R                  " UR                  5       5      n[        R                  " X5        AAAAAA[        R                  " 5       n	X:X  d   eg )Nr   r  r)   rz  )r+  r,  rE   r-  rb   r   r  r   r  r.   rc   rI   rR   rd   )
r   r.  ints1ints2r  r  rh   rU   r5  r/  s
             r7   test_to_pandas_multiple_chunks5TestConvertStructTypes.test_to_pandas_multiple_chunks
  s    


..0!288:.!288:.~~))5'F8<~~))5'F8<|,99QKQK
 
 3==?+
v0,,.	'''rj   c                 >   [         R                  " S[         R                  4S[         R                  4/5      n[        R
                  " [        R                  " S[        R                  " 5       5      [        R                  " S[        R                  " 5       5      /5      n[         R                  " / US9n[        R                  " X2S9nUR                  5       / :X  d   e[         R                  " SS/US9n[        R                  " X2S9nUR                  5       SS	S
.SSS
./:X  d   e[        R                  " U[         R                  " SS	/5      US9nUR                  5       SS	S
.S /:X  d   e[         R                  " / 5      n[        R
                  " / 5      n[         R                  " / US9n[        R                  " X2S9nUR                  5       / :X  d   e[         R                  " SS/US9n[        R                  " X2S9nUR                  5       0 0 /:X  d   eg )Nr6   )y_titler  r  r   r  )r@  T)+   Fr@  T)r6   r  rC  Fr  rF  )	r0   r   r   r  rE   r^  r   rb   r  r   r  rv  r   rh   s        r7   test_from_numpy&TestConvertStructTypes.test_from_numpy
  s   XXRXX("((35 6YYbhhj1bhhj13 4 xx"%hht%}}"$$$xx[1<hht%}}$#7)+%#8#: : 	: : hht"((E4="9C}}$#7">>>> XXb\YYr]xx"%hht%}}"$$$xxR+hht%}}2r(***rj   c                    [         R                  " S[         R                  " S[         R                  4S[         R                  4/5      4S[         R                  4S[         R
                  4/5      nUR                  [        R                  S:  a  SOS:X  d   e[        R                  " [        R                  " S[        R                  " [        R                  " S[        R                  " 5       5      [        R                  " S[        R                  " 5       5      /5      5      [        R                  " S[        R                  " 5       5      [        R                  " S[        R                  " 5       5      /5      n[         R                  " / US	9n[        R                  " X2S
9nUR                  5       / :X  d   e[         R                  " SS/US	9n[        R                  " X2S
9nUR                  5       SSS.SSS.SSS.SSS./:X  d   eg )Nr6   xxyyr  zl        r9  r   r   r  ))r   Tr)   r   ))r   Fr   rx  r   T)rH  rI  r)   r   )r6   r  rJ  r   Fr   rx  )r0   r   r   r  r   object_itemsizesysmaxsizerE   r^  r   r  rb   r  rD  s        r7   test_from_numpy_nested-TestConvertStructTypes.test_from_numpy_nested
  s   XXRXXbgg(,bhh'7'9 : ;RXXRZZ(* + {{S[[5%8ra@@@YYbii$	1J13$
1K1M 'N Obhhj1biik24 5
 xx"%hht%}}"$$$xx!"$+-/ hht%}}$'ae<%(qu=#? ? 	? ?rj   c                 z  ^ Sn[         R                  " S[         R                  4S/5      nSUR                  -
  nSU-  nXUR                  -   -  n[         R                  " XRS9n[         R
                  R                  U5      US'   XFS'   [         R                  US   US   S:  '   [        R                  " [        R                  " S[        R                  " 5       5      [        R                  " S[        R                  " 5       5      /5      n[        R                  " XgS	S
9nUR                  S	S9  UR                  S:X  d   eS mSU4S jjn	U	" X5        A[         R
                  R                  U5      S:  n
[        R                  " XgU
S	S9nUR                  S	S9  UR                  S:X  d   eU	" XU
5        Ag )Nl        r6   )r  r?   i      .r   r  r  Tr  r  r)   c              3   R   #    U R                  5        H  nU S h  vN   M     g  N	7fr  )
iterchunks)rh   rt  s     r7   iter_chunked_arrayHTestConvertStructTypes.test_from_numpy_large.<locals>.iter_chunked_array+  s"     )    * s   '%
'c                   > [        U 5      [        U5      :X  d   eUS   nUS   n[        T	" U 5      5       Hi  u  pV UR                  5       nUb  X%   (       a  Ub   eM)  X5   n[        R                  " U5      (       a	  US   b   eOUS   U:X  d   eUS   XE   :X  d   eMk     g ! [
         a    [        SU5        e f = f)Nr6   r  zFailed at index)r   	enumerater  r0   r  	Exceptionprint)
rh   r   rl   xsysir  r  r6   rU  s
            r7   check;TestConvertStructTypes.test_from_numpy_large.<locals>.check/  s    s8s4y(((cBcB#$6s$;<		A'DG y(yE88A;;#$S6>1>#$S6Q;.; v. = ! +Q/s   !B% A B%%B=)r_   rl   rH   r  )r0   r   r    rL  r  r2   random_samplerM   rE   r^  r   r  rb   r  r  )r   target_sizer  bsblockr  r   rv  rh   r^  rl   rU  s              @r7   test_from_numpy_large,TestConvertStructTypes.test_from_numpy_large  sp    "XXRZZ(/:;R[[ r	,-xx$II++A.S	S	%'VVS	$s)c/"YYbjjl3biik24 5hht$7$~~"""	!	( 	c yy&&q)C/hht4TB$~~"""crj   c                    [         R                  " [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " 5       5      /5      n[
        R                  " S[
        R                  4S[
        R                  4/5      n[
        R                  " / US9n[        R                  " [        SS9   [         R                  " X1S9  S S S 5        [
        R                  " / 5      n[        R                  " [        SS9   [         R                  " X1S9  S S S 5        g ! , (       d  f       N[= f! , (       d  f       g = f)	Nr6   r  rJ  r   zMissing field 'y'r]  r  zExpected struct array)rE   r^  r   r   r  r0   r   rb   r   rU  rV  r_  )r   rv  r  r   s       r7   test_from_numpy_bad_input0TestConvertStructTypes.test_from_numpy_bad_inputO  s    YYbhhj1bhhj13 4XXRXXRXX( ) xx"%]]:!46HHT#6 xx|]]9!8:HHT#: :	6 6: :s   D9E
9
E

Ec                    [         R                  " SSS/05      n[         R                  " SSSS.SSS./05      n[        R                  " S	[        R                  " 5       4S
[        R                  " 5       4/5      n[
        R                  " US   5      n[        XBS   US9  [        R                  " SU4/5      n[        XUUS9  g )Ntuples)r   r)   r   r   r   r)   rO  r   r   r   r   r  )rU   r:   rV   )
r.   r/   rE   r^  r   r0   asarrayru   r:   r\   )r   rT   r  struct_typerh   rV   s         r7   test_from_tuples'TestConvertStructTypes.test_from_tuples^  s    \\8ff%567llaa(*:;<> ii#rxxz!2S"((*4E FGjjH&h/k	C ))h%<$=>_+	-rj   c           	      >   SS/n[         R                  " / SQ5      R                  5       [         R                  " / SQ5      R                  5       /n[         R                  R	                  X!S9n[        S U 5       6 nU Vs/ s H  n[        [        X5      5      PM     nn[        R                  " U5      n[        R                  " UR                  5       U5        UR                  / SQ5      nS US'   [        R                  " UR                  5       U5        g s  snf )	Nrz  r  )  i  rq  )r   r   Nr   c              3   @   #    U  H  oR                  5       v   M     g 7fr  )r  ).0r  s     r7   	<genexpr>CTestConvertStructTypes.test_struct_of_dictionary.<locals>.<genexpr>v  s     GhU00hs   )r   Nr)   r   )rE   rb   r  r  r   r  r  r.   rc   rR   rd   rI   r  )r   r   childrenrh   rows_as_tuplesr  rows_as_dictsrU   s           r7   test_struct_of_dictionary0TestConvertStructTypes.test_struct_of_dictionaryo  s     HH_-??AHH12DDFHnn(((? GhGH:HI.3c%o..I99]+
s}}9 hh|$
s}}9 Js   DrF  N)r  r  r  r  r  r7  r:  r?  rE  rO  r   r  slowr#  rd  rg  rn  ry  r  rF  rj   r7   r5  r5  
  sa    I1"(6+>?4 [[[[5  5n$-":rj   r5  c                   `    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rSrg)TestZeroCopyConversioni  z8
Tests that zero-copy conversion works with some types.
c                     [         R                  " / SQ5      R                  SS9n[        R                  " U/ SQ5        g )Nr   Tr  rw   )r   rZ   s     r7   test_zero_copy_success-TestZeroCopyConversion.test_zero_copy_success  s.    )$..d.Cvy1rj   c                 b   [         R                  R                  [        R                  " SS/5      [        R                  " S/SS95      nUR                  SS9n[        R                  " SS/5      n[        R                  " [        R                  " U5      [        R                  " U5      SS9  g )	Nr   r   r   r   Tr  Frm   )rE   r]  r   r0   rb   rI   r.   r  rR   rd   rc   )r   rh   rZ   rs   s       r7   test_zero_copy_dictionaries2TestZeroCopyConversion.test_zero_copy_dictionaries  s      ,,HHaVHHaS(

 d3A'
ryy0"))F2C+0	2rj   c                     [         R                  " S/SS9n[        R                  " U5      R                  SS9n[        R
                  " X!5        g )Nru  r&   r   Tr  r0   rb   rE   rI   rx   ry   r   rh   rZ   s      r7   test_zero_copy_timestamp/TestZeroCopyConversion.test_zero_copy_timestamp  s>    hh~-=>#(((=v+rj   c                     [         R                  " S/SS9n[        R                  " U5      R                  SS9n[        R
                  " X!5        g )Nr   r(   r   Tr  r  r  s      r7   test_zero_copy_duration.TestZeroCopyConversion.test_zero_copy_duration  s>    hhs"34#(((=v+rj   c                     [         R                  " [        R                  5         UR	                  SS9  S S S 5        g ! , (       d  f       g = f)NTr  )r   rU  rE   r  rI   r   rh   s     r7   check_zero_copy_failure.TestZeroCopyConversion.check_zero_copy_failure  s,    ]]2??+MMM. ,++s	   >
Ac                 R    U R                  [        R                  " / SQ5      5        g )N)r  BCr  rE   rb   r  s    r7   &test_zero_copy_failure_on_object_types=TestZeroCopyConversion.test_zero_copy_failure_on_object_types  s    $$RXXo%>?rj   c                 R    U R                  [        R                  " / SQ5      5        g )N)r   r   Nr  r  s    r7   *test_zero_copy_failure_with_int_when_nullsATestZeroCopyConversion.test_zero_copy_failure_with_int_when_nulls  s    $$RXXl%;<rj   c                 R    U R                  [        R                  " / SQ5      5        g )N)r  r   Nr  r  s    r7   ,test_zero_copy_failure_with_float_when_nullsCTestZeroCopyConversion.test_zero_copy_failure_with_float_when_nulls  s    $$RXX.>%?@rj   c                 R    U R                  [        R                  " SS/5      5        g )NTFr  r  s    r7   $test_zero_copy_failure_on_bool_types;TestZeroCopyConversion.test_zero_copy_failure_on_bool_types  s    $$RXXtUm%<=rj   c                     [         R                  " SS/SS//[         R                  " [         R                  " 5       5      S9nU R	                  U5        g )Nr   r)   r   rk  r  )rE   rb   r  r   r  r  s     r7   $test_zero_copy_failure_on_list_types;TestZeroCopyConversion.test_zero_copy_failure_on_list_types  s<    hhAA'bhhrxxz.BC$$S)rj   c                 |    [         R                  " SS /SS9nU R                  [        R                  " U5      5        g )Nr   r&   r   r0   rb   r  rE   r  s     r7   .test_zero_copy_failure_on_timestamp_with_nullsETestZeroCopyConversion.test_zero_copy_failure_on_timestamp_with_nulls  s-    hh4y(89$$RXXc]3rj   c                 |    [         R                  " SS /SS9nU R                  [        R                  " U5      5        g )Nr   r(   r   r  r  s     r7   -test_zero_copy_failure_on_duration_with_nullsDTestZeroCopyConversion.test_zero_copy_failure_on_duration_with_nulls  s-    hh4y(9:$$RXXc]3rj   rF  N)r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rF  rj   r7   r}  r}    sE    2
2,
,
/@=A>*44rj   r}  c                  B    [        5       n [        U SS9  [        U SSS9  g )NFr=   Tr>   rW   r8   r\   rT   s    r7   _non_threaded_conversionr    s     		BBE2BEDArj   c                  B    [        5       n [        U SS9  [        U SSS9  g )NTr=   r  r  r  s    r7   _threaded_conversionr    s     		BBD1BD4@rj   c                   :   \ rS rSrSrS\R                  " 5       4S\R                  " 5       4S\R                  " 5       4S\R                  " 5       4S\R                  " 5       4S\R                  " 5       4S	\R                  " 5       4S
\R                  " 5       4S\R                  " 5       4S\R                  " 5       4S\R                   " 5       4S\R"                  " 5       4S\R$                  " 5       4S\R$                  " S5      4S\R&                  " \R                  " 5       5      4/rS rS rS rS r\R4                  R6                  \R4                  R8                  S 5       5       rS rS rS r S r!\R4                  RE                  SS/ SQ0\RF                  4S/ SQ0\RF                  4SSS/0\RF                  4SSS/0\RH                  4SSS/0\RH                  4SSS/0\RH                  4/5      S 5       r%S  r&S! r'S" r(S# r)S$ r*S% r+S& r,S' r-S( r.S)r/g*)+TestConvertMisci  z!
Miscellaneous conversion tests.
r   r   r   r   r   r   r   r   r  r   r    r?   r  c                 N    [         R                  " S/ SQ05      n[        U5        g )Nr   NNNr  r   s     r7   test_all_none_objects%TestConvertMisc.test_all_none_objects  s    \\3 234#rj   c                 |    [         R                  " S/ SQ05      nUS   R                  S5      US'   [        U5        g )Nr   r  r&  )r.   r/   rP  r\   r   s     r7   test_all_none_category&TestConvertMisc.test_all_none_category  s4    \\3 234S'..,3#rj   c                     U R                    H7  u  p[        R                  " / [        R                  " U5      S9n[	        X2S9  M9     g )Nr   r  )
type_pairsr0   rb   r   ru   )r   	dtype_strpa_typerh   s       r7   test_empty_arrays!TestConvertMisc.test_empty_arrays  s4    "&//I((2RXXi%89C"35 #2rj   c                     [        5         g r  )r  r  s    r7   test_non_threaded_conversion,TestConvertMisc.test_non_threaded_conversion  s     "rj   c                     [         R                  " S5      n UR                  [        5        UR	                  5         UR                  5         g ! UR	                  5         UR                  5         f = f)Nr)   )mpPoolapplyr  closejoin)r   pools     r7   %test_threaded_conversion_multiprocess5TestConvertMisc.test_threaded_conversion_multiprocess  sK     wwqz	JJ+,JJLIIK JJLIIKs   A "A0c                    SnSS SS[         R                  /n/ SQnSS SS[         R                  /n[        R                  " X!-  5      [        R                  " X!-  SS/S	9[        R                  " X1-  5      [        R                  " XA-  5      [        R                  " X!-  / S
QSS9X1-  X1-  X!-  X!-  XA-  S.
n[        R                  " U5      n[        U5        U H  n[        XW   5        M     g )Nr   r   rx  r  )r   r   r   r   r   r  r  r  r  )rx  r  r   Tr  r-  )
cat_stringscat_strings_with_nacat_ints
cat_binarycat_strings_orderedrz  r>  r  strings2strings3)r0   rM   r.   r  r/   r\   ru   )r   r  r  r  v3r  rT   r  s           r7   test_categoryTestConvertMisc.test_category  s    T5%0dFFBFF3 >>",7#%>>",>CU^$Mr|4..6#%>>)>$ L\|& \\&!#A"69- rj   c                     S n[         R                  " / SQSS/S9[         R                  " / SQSS/SS9/nU H  nU" U5        M     g )Nc                     [         R                  " U 5      nUR                  5       n[        R                  " [
        R                  " U5      [
        R                  " U 5      5        g r  )rE   rb   rI   rR   rd   r.   rc   )rP  rh   rZ   s      r7   _checkBTestConvertMisc.test_category_implicit_from_pandas.<locals>._check  s;    ((1+C]]_F""299V#4biilCrj   r  r   r   r  Tr  )r.   r  )r   r  r  rh   s       r7   "test_category_implicit_from_pandas2TestConvertMisc.test_category_implicit_from_pandas  sM    	D NN?SzBNN?Sz#')

 C3K rj   c                 r    [         R                  " S[         R                  " / 5      05      n[        U5        g )Ncat)r.   r/   r  r\   r   s     r7   test_empty_category#TestConvertMisc.test_empty_category(  s&    \\5".."456#rj   c           	         [         R                  " 5       S4[         R                  " 5       S44 GH  u  p[         R                  " / [         R                  " [         R
                  " 5       U5      5      nUR                  5       n[        R                  " / [        R                  " / US9S9n[        R                  " [        R                  " U5      [        R                  " U5      5        [         R                  " SU05      nUR                  5       n[        R                  " SU05      n[        R                   " XE5        GM     g )Nr?   r   r   r  r   )rE   r  r   r  
dictionaryr   rI   r.   r  r0   rb   rR   rd   rc   rY   r/   rS   )r   r  r   r   rZ   rU   rY   s          r7   test_category_zero_chunks)TestConvertMisc.test_category_zero_chunks-  s     "		X6W8MNNG  R]]2779g%FGA[[]F~~bRXXb5NOH""299V#4bii6IJHHc1X&E__&F||S(O4H!!&3 Orj   zdata,error_typer   )r   r   r   r   Tr   c                     [         R                  " U5      nSn[        R                  " X$S9   [        R
                  R                  U5        S S S 5        g ! , (       d  f       g = f)N/Conversion failed for column a with type objectr]  )r.   r/   r   rU  rE   rG   rH   )r   r   
error_typerT   rn  s        r7   test_mixed_types_fails&TestConvertMisc.test_mixed_types_fails:  sA     \\$?]]:1HH  $ 211s    A
A$c           
      (   / n/ SQnSu  p4[         R                  R                  X45      R                  5       S-  n/ SQnU HW  n[        R
                  " 5          [        R                  " S5        UR                  UR                  U5      5        S S S 5        MY     UR                  [         R                  " [        X4-  5       Vs/ s H  n[        S5      PM     sn[        S9R                  X45      R                  5       5        [         R                  " / SQU-  [        S9R                  X45      R                  5       n	S U	S	'   UR                  U	5        UR                  [         R                  " S
X4-  SS9R                  X45      R                  5       5        US:  R                  [        5      S S 2S4   n
U H;  n[         R"                  " XS9nUS   n[%        U5        ['        U5        ['        XS9  M=     g ! , (       d  f       GM  = fs  snf )Nr  )r  r   r  )
r  r  r   r!  r"  r#  r$  r%  r  r  r@   r  r   rz  r   r"   r$   r   r   r   rH  )r0   r2   r3   rr   rN   rO   r   r  rP  rb   r4   r   r?   reshaper1   r!   r.   r/   r\   ru   )r   casesrK   NKrandom_numbersnumeric_dtypes	type_namer]  boolean_objectsstrided_maskcaserT   r[   s                 r7   test_strided_data_import(TestConvertMisc.test_strided_data_importK  s   !.335;& (I((*%%h/^229=> +* ( 	RXXquFA|B/F$*,gamDDF	,
 88$7!$;6J#GAM$$& 	 "_%RYY8!%%57gamDDF	, '*2248A>Dd4BS'C#B'"3'"3: / +*
 Gs   7G<H<
H	c                    S nU" [         R                  " S /S-  [        S95        U" [         R                  " [        R                  /S-  [        S95        U" [         R                  " S [        R                  S /[        S95        g )Nc                     [         R                  " U 5      n[        U[         R                  5      (       d   e[	        U5      S:X  d   eUR
                  S:X  d   eU H  nU[         R                  L a  M   e   g )Nr   )rE   rb   r   	NullArrayr   rp   r6  )re   r  items      r7   _check_series5TestConvertMisc.test_all_nones.<locals>._check_seriesw  sf    Ii6666y>Q&&&''1,,,!ruu}$} "rj   r   r   )r.   rc   r?   r0   rM   )r   r  s     r7   test_all_nonesTestConvertMisc.test_all_nonesv  s]    	% 	bii
&9:bii1F;<biirvvt 4FCDrj   c           	         [        S/ SQ4S[        R                  " / SQ[        R                  S94S/ SQ4/5      n[        R
                  " U5      n[        R                  " [        R                  " S[        R                  " 5       5      [        R                  " S[        R                  " 5       5      /5      n[        X#USS/   US9  g )Nr   )r   r   r)   r   r   r   )ir   r   r  r   r   )r:   rU   rV   )r   r0   rb   r   r.   r/   rE   r:   r   r   r\   )r   r   rT   partial_schemas       r7   test_partial_schema#TestConvertMisc.test_partial_schema  s    /""((.bhh?@%&
 
 \\$HHS"((*%HHS"((*%$
 
 	 )+S#J0>	@rj   c                 ,   [         R                  " 0 5      n[        US S9  [        US SS9  [         R                  " [         R                  " / 5      S9n[        XSS9  [        XSSS9  [         R                  " 0 / SQS9n[        USS9  [        USSS9  g )	Nr   T)r;   rW   r   Fr   r   )rW   r;   )r.   r/   r\   r   )r   rT   rU   r   s       r7    test_table_batch_empty_dataframe0TestConvertMisc.test_table_batch_empty_dataframe  sx    \\"484$G<<5UCUTRll2Y/D9d4Hrj   c           
         [         R                  " / [         R                  " 5       S9n[        R                  " [
        R                  " / [        S95      n[        R                  " UR                  5       [        R                  " [
        R                  " / [
        R                  S95      5        [         R                  " / [         R                  " 5       S9n[        R                  " UR                  5       U5        [         R                  " / [         R                  " [         R                  " 5       5      S9n[        R                  " UR                  5       U5        [         R                  " / [         R                  " [         R                  " S[         R                  " 5       5      /5      S9n[        R                  " UR                  5       U5        g )Nr  r   r   )rE   rb   r   r.   rc   r0   r?   rR   rd   rI   r  r  r^  r   )r   rh   empty_objectss      r7   test_convert_empty_table(TestConvertMisc.test_convert_empty_table  s   hhr
+		"((2V"<=
s}}!yy"BHH)EF	Hhhr		,
s}}>hhr 45
s}}>hhr		288C+D*E FG
s}}>rj   c                    [         R                  " S[         R                  4S[         R                  4/5      n[         R                  " SS/US9nUR
                  S:X  d   e[        R                  " US   [        R                  " 5       S9nUR                  5       SS	/:X  d   e[        R                  " US   [        R                  " 5       S9nUR                  5       S
S/:X  d   eg)z\
ARROW-2172: converting from a Numpy array with a stride that's
not a multiple of itemsize.
r6   r  )r@  rZ  )r)   r   )r   r  r@  r  rZ  r)   N)r0   r   r   r   rb   r  rE   r  )r   r   r   rh   s       r7   test_non_natural_stride'TestConvertMisc.test_non_natural_stride  s    
 3/C?;<xx8,E:||t###hhtCyrxxz2}}2s)+++hhtCyrxxz2}}2q')))rj   c                    [         R                  " SS[         R                  S9SSS2   n[        R                  " U[        R
                  " 5       S9n[        R                  " / SQ[        R
                  " 5       S9nUR                  U5        g )	Nr   r  r   r   rZ  r)   r  )r   r   r   g      @)r0   r1   r   rE   rb   r    rJ   )r   r;  pa_arrrU   s       r7   #test_array_from_strided_numpy_array3TestConvertMisc.test_array_from_strided_numpy_array  s\    1b

3AbF;&rzz|4880rzz|Dhrj   c                    [         R                  " [        S5      [        R                  " SSS5      S.5      n[
        R                  " [
        R                  " S[
        R                  " 5       5      [
        R                  " S[
        R                  " 5       5      /5      n[        R                  " [        5         [
        R                  R                  XS9  S S S 5        [
        R                  R                  XS	S
9nUR                  S5      R                   [
        R                  " 5       :X  d   eg ! , (       d  f       Na= f)Nabcr   r   r   )r  r  r  r  r  Fr  )r.   r/   r.  r0   linspacerE   r:   r   r  r   r   rU  rV  rG   rH   rm  r_   r  s       r7   test_safe_unsafe_casts&TestConvertMisc.test_safe_unsafe_casts  s    \\eQ1%
 
 HHS"))+&HHS"((*%
 
 ]]:&HH   3 ' $$RU$C||C %%333	 '&s   ;D44
Ec           	          [         R                  " S[         R                  R                  S[        R
                  S/5      05      n[        R                  " [        SS9   [        R                  R                  U5        S S S 5        g ! [         a@    [         R                  " S[         R                  " S[        R
                  S/5      05      n Nf = f! , (       d  f       g = f)Nr   r   r   zSparse pandas datar]  )r.   r/   r  SparseArrayr0   rM   AttributeErrorr   rU  r_  rE   rG   rH   r   s     r7   test_error_sparse!TestConvertMisc.test_error_sparse  s    	EsBII$9$91bffa.$IJKB ]]9,@AHH  $ BA  	EsBNNArvvq>$BCDB	E BAs   AB
 ! C
ACC
C%rF  N)0r  r  r  r  r  rE   r   r   r   r   r   r   r   r   r  r   r    r  r  r  r  r  r  r  r  r   r  	processes	threadingr  r  r  r  r  r  r_  r  r  r  r  r  r  r	  r  r  r  r  r  rF  rj   r7   r  r    s   
 
	"((*	"((*	"((*	"((*	299;	299;	299;	BJJL!	BJJL!	BJJL! 
299;	299;	299R=!	288BHHJ'(#J($$
6
# [[[[  .4$
4 [[=!2#4#45=!2#4#45At9r001D#;1As8_boo.C:0	

%
%);VE@"I
?* 4$%rj   r  c                     [         R                  " / SQ5      n [        R                  R	                  U [        R
                  " 5       SS9n[        R                  " / SQ[        R
                  " 5       S9nUR                  U5      (       d   eg )N)r   r)   Nr   Tr_   r\  r  )r.   rc   rE   r  rH   r   rb   rJ   )rs   rh   rU   s      r7   *test_safe_cast_from_float_with_nans_to_intr!    s\    YY'F
((

vBHHJT

BCxxbhhj9H::hrj   c                  0   [         R                  R                  [         R                  " SSS9R	                  S5      [
        R                  " [
        R                  " SS/[        S9S5      /5      n [         R                  " SSS9nUUR                  S	5      UR                  S
5      US S S2   R                  S	5      R	                  S5      R                  S5      SS/S-  [         R                  " SS/S-  5      R                  S5      R                  SS/S-  [
        R                  R                  S5      [
        R                  R                  SSSS9[         R                   " SSSS9[         R"                  " SSSS9S.n[         R$                  " X S9$ )Nr  r   )r   r)   r   rx  r   r  r  r  r&  TFr   r  r  2013Mr   r   r   )rB  r   r   )r   r   r)   r   r   r   r   r   r   rk  r  r   )r.   r   r   r   repeatr0   tilerb   r?   r  rP  rc   rs   r2   r3   r   period_rangeinterval_ranger/   )r   r  r   s      r7   _fully_loaded_dataframe_exampler*    sK   MM%%
lA.55a8
%v6:' E
 
|R	0B>>% >>,'cc7u%,,Q/66zB5>A99eU^a'(//
;BB%=199??299Q"-??62C8AAr:D <<**rj   rK   r  r   c                 J   [        S5      [        [        R                  5      s=::  a  [        S5      :  a  O  O[        R                  " S5        [        R
                  " U S9n[        R                  R                  U5      n[        R                  R                  UR                  5       5      nUR                  U5      (       d   eUR                  R                  UR                  5      (       d   eUR                  R                  UR                  R                  :X  d   eg )Nr>  ro  rp  r   )r   r.   rG  r   rq  r/   rE   rG   rH   rI   rJ   r:   r+  )rK   rT   table1table2s       r7   !test_roundtrip_with_bytes_unicoder.    s    w72>>2EWW5EE 	01	g	&BXX!!"%FXX!!&"2"2"45F==    ==....==!!V]]%;%;;;;rj   c                 V    U S-  nU S-  n U S-  nU S-  n U S-  nU S-  n[        XCX!5      $ )NrI  r  )r   )valr  secondsminutesr  s        r7   _pytime_from_microsr3    sE    =LGOCBhGBJCBhG2IE66rj   c                 z    U R                   S-  U R                  S-  -   U R                  S-  -   U R                  -   $ )Nl    $'- i rI  )hourminuter  rH  )pytimes    r7   rK  rK    sE    KK*$MMH$%MMG#$   rj   c                      " S S5      n [         R                  " SU " 5       U " 5       /05      nSn[        R                  " [        US9   [
        R                  R                  U5        S S S 5        g ! , (       d  f       g = f)Nc                       \ rS rSrSrg)6test_convert_unsupported_type_error_message.<locals>.Ai!  rF  Nr  rF  rj   r7   r  r:  !  s    rj   r  r   r  r]  )r.   r/   r   rU  rV  rE   rG   rH   )r  rT   rn  s      r7   +test_convert_unsupported_type_error_messager;    sZ      
sQS!#J'	(B
;C	z	-
R  
.	-	-s   
 A33
Bc                     U R                  5       n[        R                  " XR                  SS9nUR	                  U 5      (       d   eg )NTr  )rI   rE   rb   r_   rJ   )rh   re   r   s      r7   test_array_to_pandas_roundtripr=  /  s6    Axxd;H??3rj   c                 \    [        U 5       Vs/ s H  n[        S5      PM     nnX1-  $ s  snf )Nr  )r4   r   )nuniquer  r]  unique_valuess       r7   _generate_dedup_examplerA  :  s,    (-g71U2YM7"" 8s   )c                 d    [        U  Vs1 s H  n[        U5      iM     sn5      U:X  d   eg s  snf r  )r   r&  )r  rU   r6   s      r7   _assert_nuniquerC  ?  s+    s#s!1s#$000#s   -c                     [         R                  " 5       (       a  [        R                  " S5        Sn Sn[	        X5      n[
        R                  " U[
        R                  " 5       S9[
        R                  " U[
        R                  " 5       S9[
        R                  " X"/5      4 H?  n[        UR                  5       U 5        [        UR                  SS9[        U5      5        MA     g )NDpandas uses string dtype and not object dtype, keyword has no effectr  r  r  Fdeduplicate_objects)r   r  r   rq  rA  rE   rb   r  r  r  rC  rI   r   )r?  r  rs   rh   s       r7   .test_to_pandas_deduplicate_strings_array_typesrH  C  s    $$&&R	
 GG$W6Fbiik2bggi0  &!124 	1%@#c(K	4rj   c                     [         R                  " 5       (       a  [        R                  " S5        Sn Sn[	        X5      n[
        R                  " U5      n[
        R                  R                  U/S/5      n[
        R                  R                  U/5      nXE4 HE  n[        UR                  5       S   U 5        [        UR                  SS9S   [        U5      5        MG     g )NrE  r  r  r   FrF  )r   r  r   rq  rA  rE   rb   rF   r   rG   r^  rC  rI   r   )r?  r  rs   rh   r  r  r  s          r7   .test_to_pandas_deduplicate_strings_table_typesrJ  S  s    $$&&R	
 GG$W6F
((6
C		#	#SEE7	3B
((


%Cy.8%@GC	" rj   c                     Sn Sn[        [        R                  R                  SSU S95      nS X S-  '   [        R
                  " X!-  5      n[        UR                  SS9U 5        [        UR                  SS	S
9U S-
  U-  S-   5        g )Nr  r  i i ʚ;r  r)   Tr  F)r  rG  r   )r.  r0   r2   r   rE   rb   rC  rI   )r?  r  r@  rh   s       r7   .test_to_pandas_deduplicate_integers_as_objectsrL  f  s    GG **8Zg*NOM"&MQ,
((=*
+CCMMtM<gFCMMt6; " = q[G+a/1rj   c                  N   Sn Sn[        [        U 5      5      nSSSS04SSSS04SS	0 4SS
0 4/nU Hq  u  pEn[        R                  " X!-  US9nUR	                  U5      n[        UR                  " S0 UD6U 5        [        UR                  " SSS0UD6[        U5      5        Ms     g )Nr  r  r   r  r  Tr   r  rX  rW  r  rG  FrF  )r.  r4   rE   rb   r  rC  rI   r   )	r?  r  r@  r  raw_type
array_typepandas_optionsraw_arr
casted_arrs	            r7   $test_to_pandas_deduplicate_date_timerS  w  s    GGw(M 
(-t45	(-t45	,#	,#E 16,n((=2B\\*-

,,>~>	!
,, ? ?/=?J	) 16rj   c            	         [         R                  " / SQ[        R                  SS/S.5      n [        R
                  " [        R                  " S[        R                  " 5       SS9[        R                  " S[        R                  " 5       SS9/5      n[        R                  " [        5         [        R                  R                  XS	9  S S S 5        g ! , (       d  f       g = f)
N)333333?g @r  r  r   rO  r   Fr	  r   r  )r.   r/   r0   rM   rE   r:   r   r    r  r   rU  rV  rG   rH   )rT   r:   s     r7   /test_table_from_pandas_checks_field_nullabilityrV    s    	OVVXu57 
8BYYbjjlUCbggi%@B CF 
z	"
R/ 
#	"	"s   -C
C"c            
      *   [         R                  " [        S/ SQ4S/ SQSS/S S /4S/ SQ4/5      5      n U / S	Q   n[        R                  " S[        R
                  " 5       4S[        R                  " [        R
                  " 5       5      4S[        R                  " 5       4/5      n[        R                  " S[        R                  " 5       4S[        R
                  " 5       4S[        R                  " [        R
                  " 5       5      4/5      n[        R                  R                  U S
S9n[        R                  R                  US
S9nUR                  R                  U5      (       d   eUR                  R                  U5      (       d   eg )N	partitionr   r   r   r   r  r   r   r   rk  NNr   gffffff
@rk  rX  r  Fr   )r.   r/   r   rE   r:   r   r  r    rG   rH   rJ   )df1r   schema1schema2r,  r-  s         r7   6test_table_from_pandas_keeps_column_order_of_dataframer_    sG   
,,{	l#	I1vtT23	)*$  C
 /
0Cii	bhhj!	288BHHJ'(	2::<  G
 ii	2::< 	bhhj!	288BHHJ'( G XX!!#e!<FXX!!#e!<F==((((==((((rj   c            
         [         R                  " [        S/ SQ4S/ SQSS/S S /4S/ SQ4/5      5      n [        R                  " S[        R
                  " 5       4S[        R                  " [        R                  " 5       5      4S[        R                  " 5       4/5      nX R                  S	:H     nX R                  S
:H     / SQ   n[        R                  R                  X!SS9n[        R                  R                  X1SS9nUR                  R                  U5      (       d   eUR                  R                  UR                  5      (       d   eg )NrX  rY  r  r   r   r   rk  rZ  r   r   r[  Frs  )r.   r/   r   rE   r:   r    r  r   rX  rG   rH   rJ   )rT   r:   r\  r   r,  r-  s         r7   3test_table_from_pandas_keeps_column_order_of_schemara    s    	k	l#	I1vtT23	)*#  
B YY	2::< 	288BHHJ'(	bhhj! F \\Q
C
\\Q
 A
BCXX!!#U!KFXX!!#U!KF==''''==....rj   c            
         [         R                  " [        S/ SQ4S/ SQSS/S S /4S/ SQ4/5      5      n / S	Qn[        R                  " S[        R
                  " [        R                  " 5       5      4S[        R                  " 5       4S[        R                  " 5       4/5      nSS/n[        R                  " S[        R                  " 5       4S[        R                  " 5       4/5      n[        R                  R                  XS
S9n[        R                  R                  XS
S9nUR                  R                  U5      (       d   eUR                  R                  U5      (       d   eg )NrX  rY  r  r   r   r   rk  rZ  )r  rk  rX  F)rK   r;   )r.   r/   r   rE   r:   r  r   r    rG   rH   rJ   )rT   columns1r]  columns2r^  r,  r-  s          r7   ;test_table_from_pandas_columns_argument_only_does_filteringre    s4   	k	l#	I1vtT23	)*#  
B 1Hii	288BHHJ'(	2::< 	bhhj! G +&Hii	2::< 	bhhj! G
 XX!!"u!MFXX!!"u!MF==((((==((((rj   c            
         [         R                  " [        S/ SQ4S/ SQSS/S S /4S/ SQ4/5      5      n [        R                  " S[        R
                  " 5       4S[        R                  " [        R
                  " 5       5      4S[        R                  " 5       4/5      nSS/n[        R                  " [        5         [        R                  R                  XUS	9  S S S 5        g ! , (       d  f       g = f)
NrX  rY  r  r   r   r   rk  rZ  )r:   rK   )r.   r/   r   rE   r:   r   r  r    r   rU  rV  rG   rH   )rT   r:   rK   s      r7   @test_table_from_pandas_columns_and_schema_are_mutually_exclusiverg    s    	k	l#	I1vtT23	)*#  
B
 YY	bhhj!	288BHHJ'(	2::<  F
 "G	z	"
R@ 
#	"	"s   ?C''
C5c                     [         R                  " S/ SQ05      n [        R                  " [        R                  " S[        R
                  " 5       SS9/5      n[        R                  R                  U 5      nUR                  R	                  S5      R                  SL d   e[        R                  R                  XS9nUR                  R	                  S5      R                  SL d   eg )Nr   r   Fr	  Tr  )	r.   r/   rE   r:   r   r   rG   rH   r
  rT   r:   rY   s      r7   /test_table_from_pandas_keeps_schema_nullabilityrj    s    	sL)	*BYY
bhhj51 F HH  $E<<c"++t333HH   3E<<c"++u444rj   c                     [         R                  " / SQ/ SQS.5      n [        R                  " S[        R                  " 5       4S[        R
                  " 5       4S[        R                  " 5       4/5      n[        R                  " [        SS9   [        R                  R                  XS	9  S S S 5        SU R                  l        [        XS
US9  [        R                  " [        SS9   [        R                  R                  XSS9  S S S 5        [        R                  " [        SS9   [        R                  R                  XS S9  S S S 5        [         R                  " / SQSS9U l        [        XS US9  [        XS
US9  [        R                  " S[        R                  " 5       4S[        R                  " 5       4S[        R
                  " 5       4/5      n[        XS US9  [        XS
US9  [        R                  " S[        R                  " 5       4S[        R
                  " 5       4/5      nU R!                  5       nUR#                  S
S9n[        XS XS9  [        XS
XS9  [         R$                  R'                  / SQSS/S9U l        [        R                  " S[        R(                  " 5       4S[        R                  " 5       4S[        R                  " 5       4S[        R
                  " 5       4/5      n[        XS
US9  [        XS US9  [        R                  " S[        R                  " 5       4S[        R                  " 5       4S[        R
                  " 5       4/5      nU R!                  5       nUR#                  SS
S9n[        XS
XS9  [        XS XS9  g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f)Nr   r  rO  r   r   r   zname 'index' present in ther]  r  T)r:   r;   rV   z'preserve_index=False' wasFrs  z=name 'index' is present in the schema, but it is a RangeIndexr   r`   r  )r:   r;   rV   rU   ))r   r   )r   r)   )r   r   level1level2r   )r.   r/   rE   r:   r   r    r   rU  KeyErrorrG   rH   r   ra   r\   rV  r   rr   r  r   from_tuplesr  )rT   r:   rU   s      r7   +test_table_from_pandas_schema_index_columnsrp  	  s9   	IO<	=BYY	bhhj	bjjl	"((* F 
x'D	E
R/ 
F BHHM Bd,24 
z)E	F
RuE 
G
 
z *J 
K
RtD
K xx	0BH Bd,24Bd,24 YY	"((*	bhhj	bjjl F
 Bd,24Bd,24
 YY	bhhj	bjjl F wwyH###.HBd,2GBd,2G }}(()G08(/C ) EBHYY	299;	288:	bhhj	bjjl	 F Bd,24Bd,24 YY	288:	bhhj	bjjl F
 wwyH##H4#8HBd,2GBd,2GW 
F	E 
G	F

K 
Ks$   N"*N4*O"
N14
O
Oc                     [         R                  " / SQ/ SQS.5      n [        R                  " S[        R                  " 5       4S[        R
                  " 5       4S[        R                  " 5       4/5      n[        R                  R                  U SS9n[        R                  R                  U SUS	9nUR                  R                  5       R                  U5      (       d   e[         R                  " / SQ/ SQS./ S
QS9n [        R                  R                  U 5      n[        R                  R                  XS9nUR                  R                  5       R                  U5      (       d   eg )Nr   r  rO  r   r   r  Tr   )r;   r:   r   r   r  )r.   r/   rE   r:   r   r    SchemarH   rG   r  rJ   )rT   rV   r:   rY   s       r7   :test_table_from_pandas_schema_index_columns__unnamed_indexrs  c  s   	IO<	=Bii	bhhj	bjjl	bhhj)! O YY""2d";FHH  D HE<<'')00AAAA 
IO<I	NBYY""2&FHH   3E<<'')00AAAArj   c                     [         R                  " 5       n [        R                  R	                  U 5      R                  SS05      n[        R                  R	                  XS9nUR                  R                  R                  S5      S:X  d   eg )NmetaTruer  s   metas   True)
r.   r/   rE   rr  rH   rN  rG   r:   r+  getri  s      r7   2test_table_from_pandas_schema_with_custom_metadatarx  x  sk    	BYY""2&44ff5EFFHH   3E<<  $$W-888rj   c                  ~   [         R                  " [         R                  " SSSS9[        R                  R                  S5      S.5      n [        R                  " [        R                  " S[        R                  " 5       SS9[        R                  " S	[        R                  " S
SS9SS9/5      n[        R                  R                  XS9nUR                  R                  U5      (       d   eUR                  R                  S   S   nUS   S:X  d   eUS   b   eUR                  R                  S   S   nUS   S	:X  d   eUS   SS0:X  d   eUR                  5       nSS0n[!        [         R"                  5      [!        S5      :  a  SUS	'   U SS	/   R%                  U5      n[&        R(                  " XW5        g )Nz2020-01-01T00:00:00Zr  r)   )r   r   )r   r  r  Tr	  r   re   r  r  Fr  rK   r   ra   r+  r   r   r   r>  zdatetime64[s, UTC])r.   r/   r   r0   r2   r3   rE   r:   r   r   r  rG   rH   rJ   r  rI   r   rG  rP  rR   rS   )rT   r:   rY   metadata_floatmetadata_datetimerZ   coerce_cols_to_typesrU   s           r7   2test_table_from_pandas_schema_field_order_metadatar}    s    
MM"8sAN# 
B
 YY
"**,6
R\\#%85I F
 HH   3E<<v&&&&\\11)<Q?N&!W,,,*%---44Y?BV$
222Z(Z,????__F#Y/r~~''"22+?Z(7J'(//0DEH&+rj   c                  \   [         R                  " [        R                  " / SQSS9[        R                  " / SQSS9[        R                  R                  S5      / SQ/ SQS.5      n [        R                  R                  U 5      nUR                  5       n[        R                  " X5        g )	Nr   r)   r   r   r   r   r   r   r   )r   rx  Nr  r  )FTFTF)r  r  c3c4c5)r.   r/   r0   rb   r2   r3   rE   rF   rH   rI   rR   rS   )r   rb  rZ   s      r7   test_recordbatch_from_to_pandasr    sw    <<hhg6hhh7iiooa 0/ D NN&&t,E__F$'rj   c                  x   [         R                  " [        R                  " / SQSS9[        R                  " / SQSS9/ SQ/ SQS.5      n [         R                  " [        R                  " S	S
/SS9[        R                  " SS/SS9SS/SS/S.5      n[        R
                  R                  U 5      n[        R
                  R                  U5      n[        R                  R                  X#/5      nUR                  5       n[         R                  " X/5      R                  SS9n[        R                  " Xe5        g )N)r   r   r)   r   r   r   r    )TNF)r   rx  N)r  r  r  r  r   r   r   r   Tr  r  r  )r.   r/   r0   rb   rE   rF   rH   rG   r^  rI   r  r  rR   rS   )r.  r0  batch1batch2rY   rZ   r   s          r7   test_recordbatchlist_to_pandasr    s    LLhhy1hhi8!"	 E LLhh1vX.hhSz3Tlen	 E ^^''.F^^''.FHH!!6"23E__F99e^$00d0;D$'rj   c                  D   [         R                  " [         R                  " / SQ5      /S/S9n [         R                  " [         R                  " / SQ5      /S/S9nU S   R	                  5       R
                  S:X  d   eUS   R	                  5       R
                  S:X  d   eg )Nr   a0r   r   )rE   record_batchrb   rY   rI   ra   )r  r  s     r7   *test_recordbatch_table_pass_name_to_pandasr    s|    	"((<01$	@B
"((<()$8Aa5??!!T)))Q4>>  D(((rj   r_   rU   r  r!   r   r   r   r   r   r   r   r   r  r   r    r   r  r   )lengthr5  zlist[list[int16]]rx  r   r   r  r   r;  r  rC  re   r   c                 &    [        U 5      U:X  d   eg r  )r
   r  s     r7   test_logical_typer    s    < D!X---rj   c            	         Sn [         R                  " [        R                  " U [        R                  S9[        R
                  R                  SSU S9R                  [        R                  5      S9n[        R                  " 5         [         R                  " 5       nUR                  5       n[         R                  " 5       X S-  -   :X  d   eS n[        R                  " 5         [         R                  " 5       U:X  d   e[         R                  " [        R                  " U [        R                  S95      n[         R                  " 5       nUR                  5       n[         R                  " 5       U:X  d   eg )N'  r   r   r)   r  rH  r   )rE   rb   r0   r1   r   r2   r   rP  r  r+  r,  r-  rI   )r  rh   prior_allocationr6   s       r7   test_array_uses_memory_poolr    s
   A
((299Qbhh/		))!QQ)7>>rxxHJC JJL//1A##%*:U*BCCCAJJL##%)9999 ((299Qbhh/
0C//1A##%)9999rj   c            	         [         R                  " [         R                  " [        R                  " S[        R
                  S95      /S/5      n [        U SS9  [         R                  " 5       nU R                  5       nUS   R                  R                  R                  (       d   e[         R                  " 5       U:  d   eg )NrF  r   r\  Tsplit_blocks)rE   rY   rb   r0   r1   r   !_check_to_pandas_memory_unchangedr-  rI   _valuesflags	writeable)r  r  rZ   s      r7   test_singleton_blocks_zero_copyr    s    
"((299T:;<tfEA &ad;//1[[]F$<%%////##%(8888rj   c                 >   [         R                  " 5       nU R                  " S0 UD6n[        R                  " 5       (       aA  [        SUR                  R                  S-  5      n[         R                  " 5       X$-   ::  d   eg [         R                  " 5       U:X  d   eg )N   r)   rF  )rE   r-  rI   r   r  r*  rK   nbytes)r  kwargsr  r6   max_index_allocations        r7   r  r  "  s    //1A $$&&  #3		(8(81(<='').>.UVVV'')-====rj   c                  2   [         R                  " [         R                  " / SQS-  SS9[         R                  " / SQS-  SS9[         R                  " / SQS-  SS9[         R                  " / SQS-  SS9[         R                  " / SQS-  SS9[         R                  " / SQS-  SS9[         R                  " / SQS-  SS9[         R                  " / SQS-  SS9/[        S	5       V s/ s H  n S
U  3PM
     sn 5      n[	        US	5        [        USS9  g s  sn f )Nr  r  r  r  r   r!  r  r  r   r  Tr  )rE   rY   rb   r4   _check_blocks_createdr  )r]  r  s     r7   test_to_pandas_split_blocksr  0  s    

$40
$40
$40
$40
$40
$40
$40
$40	 q"A!A3"		$A !Q%ad; #s   'D
c                 ~    [        [        R                  5      [        S5      :  a  U R                  $ U R                  $ )Nz1.1.0)r   r.   rG  _data_mgrr  s    r7   _get_mgrr  A  s*    r~~!11xxwwrj   c                 j    U R                  SS9n[        [        U5      R                  5      U:X  d   eg )NTr  )rI   r   r  blocks)r  numberr6   s      r7   r  r  H  s/    	&Ax{!!"f,,,rj   c                  \   ^ SmU4S jn U " 5       n[        USSS9  U " 5       n[        USS9  g )N2   c                  "  > [         R                  " [        T5       V s/ s H<  n [         R                  " [        R
                  R                  S5      S S S2   5      PM>     sn [        T5       V s/ s H  n SU  3PM
     sn 5      $ s  sn f s  sn f )Nr  r)   r  )rE   rY   r4   rb   r0   r2   r3   )r]  r  s    r7   _make_table1test_to_pandas_self_destruct.<locals>._make_tableP  s~    xx 1X
  HHRYY__U+CaC01
 #1X&XasGX&	( 	( 
 's   AB1B
T)r  self_destruct)r  )r  )r  r  r  s     @r7   test_to_pandas_self_destructr  M  s5    
A( 	A%ad$O 	A%at<rj   c                     Sn [         R                  " [        R                  " U [        R                  S95      n[         R
                  " XU// SQ5      n[         R                  " 5       nUR                  5       nSU -  S-  n[        R                  " 5       (       a  US-  n[         R                  " 5       X5-   :X  d   eS n[        R                  " 5         [         R                  " 5       U:X  d   eg )Nr  r   )r\  r  r  r   r      )rE   rb   r0   r1   r   rY   r-  rI   r   r  r+  r,  )r  rh   r  r  r6   new_allocations         r7   test_table_uses_memory_poolr  _  s    A
((299Qbhh/
0C
#C"45A//1	AUQYN$$&&###%*:*KLLL 	AJJL##%)9999rj   c                  P   [         R                  " SS0/5      n U R                  5       nUR                  [        R                  " S5      :X  d   eUS   n[
        R                  " U5      n[
        R                  " U5      U:X  d   eA[
        R                  " U5      US-
  :X  d   eg )Nr   r   r?   r   )rE   rb   rI   r   r0   rM  getrefcount)rh   r;  r  refcounts       r7   test_object_leak_in_numpy_arrayr  t  s    
((S!H:
C]]_F<<288H----
)Cs#H??38+++??38a<///rj   c                     [         R                  " SS0/5      n [         R                  " U /S/5      nUR                  5       S   nUR                  [
        R                  " S5      :X  d   eUS   n[        R                  " U5      n[        R                  " U5      U:X  d   eA[        R                  " U5      US-
  :X  d   eg )Nr   r   r\  r?   r   )rE   rb   rY   rI   r   r0   rM  r  )rh   rY   r[   r  r  s        r7   test_object_leak_in_dataframer    s    
((S!H:
CHHcUTF#E
//
D
!C99****
a&Cs#H??38+++??38a<///rj   c                     SS/SS//n [         R                  " 5       n[         R                  " U S   US9n[         R                  " U [         R                  " U5      S9n[        R                  " U S   [        R                  S9n[
        R                  " [        R                  " U S   [        R                  S9[        R                  " U S   [        R                  S9/5      nUR                  U:X  d   eUR                  [         R                  " U5      5      (       d   eUR                  [         R                  " U5      5      (       d   eg )	NrU  g333333@g      "@g      E@r   r  r   r   )	rE   r   rb   r  r0   r.   rc   r_   rJ   )r   r  r  r  r  r  s         r7   test_array_from_py_float32r    s    #Jd$D


A88DG!$D88Drxx{+Da

3I		288DG2::>88DG2::>@ AI 99>>;;rxx	*++++;;rxx	*++++rj   c                  2   [         R                  " 5       n [        R                  " U /5      nUR                  R                  S5      R                  R                  S5      n[        R                  " SSS9n[        R                  R                  X#S9nUR                  U:X  d   e[        R                  R                  U[        R                  " S5      S9nUS   R                  5       US   R                  5       :X  d   eUS   R                  5       US   R                  5       :X  d   e[        R                  " S/SS9R                  [        R                  " S	5      5      n[        R                  " S
/SS9R                  [        R                  " S5      5      nUR                  [        R                  " S	5      :X  d   e[        R                  " S5      n[         R"                  " [$        5         UR                  U5        S S S 5        UR                  USS9nUR'                  U5      (       d   e[        R                  " [        R(                  " S5      [        R(                  " S5      [        R(                  " S5      /5      n	[        R                  " / SQ[        R                  " S5      S9n[         R"                  " [$        5         [        R                  " U	[        R                  " S5      S9  S S S 5        [         R"                  " [$        5         [        R                  R                  U	[        R                  " S5      S9  S S S 5        [        R                  R                  U	[        R                  " S5      SS9nUR'                  U5      (       d   e[        R                  " U	[        R                  " S5      SS9nUR'                  U5      (       d   eg ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       N= f)Nz	tzlocal()r@  r;  r  r  r   i r   r  {   re   Fr[  r   r  rF  )r   r   r   r   )r   nowr.   rc   r  r  
tz_convertrE   r  r  rH   r_   r  to_pydatetimerb   r  r   rU  rV  rJ   r  )
r0  re   s_nyc
us_with_tzrh   r  rU   targetrZ   r5  s
             r7   test_cast_timestamp_unitr    s   
,,.C
		3%ADD[),,778JKEd'9:J
((

u

6C 88z!!!88T(:;Dq6<<>U1X3355557==?ad002222 ((F8'
*
/
/T0B
CCxxG,11",,s2CDH 88r||D))))\\#F	z	" 
# XXf5X)F=="""" YYQb)92<<;MNOFxx	T(:;H	z	"
bll401 
# 
z	"
V",,t*<= 
# XX!!&r||D/A!NF==""""XXf2<<#5EBF=="""") 
#	" 
#	" 
#	"s$   3O$*O63P$
O36
P
Pc                  t   [         R                  R                  5       n U R                  5       n[        R
                  " U/[        R                  " SSS9S9n[        R                  R                  X"/SS/5      nUR                  5       n[        R
                  " U5      nUR                  U5      (       d   eg )Nr;  r@  r  r  rB  stop)r.   r  r  r  rE   rb   r  r  r   rI   rJ   )tsts_dtrh   r^  rZ   r   s         r7   (test_nested_with_timestamp_tz_round_tripr    s    				BE
((E7d7I!J
KC^^''
Wf4EFFFxxH??6""""rj   c            	      v   [         R                  R                  5       n U R                  5       nS GH  nUS;   a  S nOS n[        R
                  " U /[        R                  " U5      S9n[        R
                  " U /[        R                  " USS9S9n[        R                  R                  XD/SS	/5      n[        R                  R                  XU/SS	/5      nUR                  5       n[        US
   S   [        5      (       d   eUS
   S   R                  b   e[        US
   S	   [        5      (       d   eUS
   S	   R                  b   eUR                  5       n[        US
   S   [        5      (       d   eUS
   S   R                  c   eUS
   S   R                  [        R                  5      n	U" U	5      R!                  S S9U" U5      :X  d   e[        US
   S	   [        5      (       d   eUS
   S	   R                  c   e[        R"                  " SU05      R                  5       n[        US   S
   S   [        5      (       d   eUS   S
   S   R                  b   e[        US   S
   S	   [        5      (       d   eUS   S
   S	   R                  b   e[        R"                  " SU05      R                  5       n[        US   S
   S   [        5      (       d   eUS   S
   S   R                  c   e[        US   S
   S	   [        5      (       d   eUS   S
   S	   R                  b  GM   e   g )Nrl  )re   r  c                      U R                  SS9$ )Nr   rG  )rL   r6   s    r7   truncate/test_nested_with_timestamp_tz.<locals>.truncate  s    AII!I$<<rj   c                     U $ r  rF  r  s    r7   r  r    s    AXrj   r  r@  r  rB  r  r   r  r   )r.   r  r  r  rE   rb   r  r  r   rI   r   r   r  
astimezoner   r  rL   rY   )
r  r  r:  r  rh   r  arr3arr4rZ   utc_dts
             r7   test_nested_with_timestamp_tzr    s   				BE "; =%hht",,t"45xx2<<9K#LM~~))3*w6GH~~))4,&8IJ!&)G,h7777ay!((000&)F+X6666ay ''///!&)G,h7777ay!((4447#..x||<''t'4GGG&)F+X6666ay ''333 3+&002&+a.18<<<<c{1~g&--555&+a.0(;;;;c{1~f%,,4443+&002&+a.18<<<<c{1~g&--999&+a.0(;;;;c{1~f%,,888M "rj   c                  4   [         R                  " / SQS5      n [         R                  " / SQ[        S9n[         R                  " / SQ5      nS GH3  nU R	                  U5      n[
        R                  R                  XA5      n[
        R                  R                  XAUS9nUS:X  a4  [        R                  " [        S	S
9   UR                  5         S S S 5        M  UR                  5       nUS:X  a  UR	                  S5      nO2US:X  a  UR	                  S5      nOUS:X  a  UR	                  S5      nOUn[        R                  R                  XS9n	[        R                   " [        R"                  " U5      [        R"                  " U	5      5        UR                  5       n
U
R%                  5       R'                  5       S:X  d   eUS:X  a  UR	                  S5      nO2US:X  a  UR	                  S5      nOUS:X  a  UR	                  S5      nOUn[        R                  R                  [         R(                  " USU5      US9n[        R                   " [        R"                  " U
5      [        R"                  " U5      5        GM6     g ! , (       d  f       GN= f)Nr   r)   r  r   )FFTFFF)r   r   r   r   r   r   r   r   rH  r   zUInt64 dictionary indicesr]  r   r   r   r   r   r   r  r   rZ  )r0   r&  rb   r?   rP  rE   r]  r   r   rU  r_  rI   r.   r  
from_codesrR   rd   rc   ro   rq   where)src_indicesr  rl   
index_typer`  d1d2pandas1compare_indices
ex_pandas1pandas2signed_indices
ex_pandas2s                r7   test_dictionary_with_pandasr    s   ))Iq)K/v>J88=>D*
$$Z0++G@++Gd+K!y%@BB ,,.  %nnW5O8#%nnW5O8#%nnW5O%O^^...V

ryy1299Z3HI,,.~~##%***  $^^G4N8#$^^G4N8#$^^G4N$N^^..rxxb8F0H:D / F
 	ryy1299Z3HIY*B Bs    J
J	c                 <   Ub,  U[         R                  R                  S[        U5      U S9   nO<[         R                  " [        U 5       Vs/ s H  n[        U5      PM     sn[        S9nUS:  a%  S U[         R                  R                  U 5      U:  '   U$ s  snf )Nr   r  r   )	r0   r2   r   r   rb   r4   r   r?   rand)r  	item_sizepct_nullr  rZ   r]  s         r7   random_stringsr  J  s    BII--aZq-IJE!HEHq<	2HE &( !|/3ryy~~a 8+,M Fs   Bc            	         [         R                  R                  S5        [        R                  " [        SS5      SS9n [        R                  " [        SS5      SS9n[        R                  " [        SS5      SS9n[        R                  R                  [         R                  R                  S	[        U 5      S
SS9U 5      n[        R                  R                  [         R                  R                  S	[        U5      S
SS9U5      n[        R                  R                  [         R                  R                  S	[        U5      S
SS9U5      n[        R                  " [         R                  R                  S	[        U5      S
SS9[         R                  R                  S
5      S:  S9n[        R                  R                  Xb5      n[        R                  " XU/5      n[        R                  " X4XW/5      n	[        R                  " UR                  S5      UR                  S5      UR                  S5      UR                  S5      /5      n
U	R                  5       nU
R                  5       nUR                  R                   UR                  5       :H  R#                  5       (       d   eUR%                  S5      nS XR'                  5       '   [(        R*                  " X5        g )Ni90  r      r  r  rv  r  r  r   rF  r   r(  r  rH  r+   )r0   r2   rQ  rE   rb   r  r]  r   r   r   r  concat_arraysr  r  rI   r  r  rY  rP  ro   rR   rd   )r  r  d3r@  r  rQ  r   rR  expected_dictr   a_denserZ   result_denseexpected_denses                 r7   "test_variable_dictionary_to_pandasr  W  sA   IINN5	.b)	9B	.b)	9B	.+(	;B				'	'
		!SW4t<

B 
			'	'
		!SW4t<

B 
			'	'
		!SW4t<b
BB 

		!SW4t<YY^^D!C'
B 
			'	'	/B$$bb\2M
"")*A 1 " 1 " 1 " 1 3 4G
 [[]F$$&LJJ!!]%<%<%>>CCEEEE]]5)N,0N&&()<8rj   c                  t   [         R                  " / SQ5      R                  5       n [         R                  R	                  / SQU 5      nUR                  5       n[        R                  " [        R                  " / SQ[        S9[        R                  " SS/[        S9/5      n[        R                  " X#5        g )N)r   r   r   r   r   r  )r   r   r   r   r   )rE   rb   r  r  r   rI   r.   rc   r0   r?   rR   rd   )r  rh   rZ   rU   s       r7   (test_dictionary_encoded_nested_to_pandasr    s}    HH./AACE
,,
"
"9e
4C]]_Fyy"((?&A((C:V<> ?H 6,rj   c                  F   [         R                  " / SQ5      n [        R                  " [        R                  " 5       [
        R                  " 5       (       a  [        R                  " 5       O[        R                  " 5       5      n[        R                  " U 5      nUR                  5       / SQ:X  d   eUR                  R                  U5      (       d   e[         R                  " / SQ5      n [        R                  " U 5      nUR                  5       / SQ:X  d   eUR                  R                  U5      (       d   e[        R                  " U [        R                  " / SQ5      S9nUR                  5       / SQ:X  d   eUR                  R                  U5      (       d   eg )N)r   r   r   )r   r   Nr   )FFFTrH  )r   r   NN)r.   r  rE   r  r   r   r  r  r  rb   r  r_   rJ   r0   )r  r  rZ   s      r7   test_dictionary_from_pandasr    s(   
..
)CMM
	(::<<"))+M
 XXc]F000;;m,,,, ...
/CXXc]F!6666;;m,,,, XXc)D EFF!7777;;m,,,,rj   c                     [         R                  R                  [        R                  " SS/SS9[        R                  " SS/[
        S95      n [        R                  " [        R                  " 5       [        R                  " 5       S9n[        R                  " XS9nUR                  R                  U5      (       d   eUR                  5       SS/:X  d   e[        R                  " [        R                  " 5       [        R                  " 5       S9n[        R                   " [        R"                  5         [        R                  " XS9nS S S 5        [        R                  " [        R                  " 5       [        R                  " 5       S	S
9nSn[        R                   " [$        US9   [        R                  " XS9nS S S 5        UR                  5       SS/:X  d   e[        R                  " [        R                  " 5       [        R                  " 5       S9n[        R                  " X[        R                  " SS	/5      S9nUR                  R                  U5      (       d   eUR                  5       SS /:X  d   e[         R                  " / 5      n [        R                  " [        R                  " 5       [        R                  " 5       S9n[        R                  " XS9nUR                  R                  U5      (       d   eUR                  5       / :X  d   e[        R                  " [        R                  " 5       [        R                  " 5       S9n[        R                  " XS9nUR                  R                  U5      (       d   eUR                  5       / :X  d   e[         R                  " SS/5      n [        R                  " U [        R                  " 5       S9n[        R                  " SS/[        R                  " 5       S9nUR                  U5      (       d   eUR                  5       SS/:X  d   eg ! , (       d  f       GN= f! , (       d  f       GN= f)Nr   r   r   r   r   r   )r  
value_typer  T)r  r  r-  z4The 'ordered' flag of the passed categorical values r]  Fr  )r.   r  r  r0   rb   r?   rE   r  r   r  r_   rJ   r  r   r   r   rU  r  rV  )r  r  rZ   rn  rU   s        r7   *test_dictionary_from_pandas_specified_typer    s    ..
#
#
!Qv&#s6(JLC
 --288:"))+
FCXXc$F;;c""""#s+++ --2779
DC	r	'#( 
( --779dDC
@C	z	-#( 
.#s+++ --288:"))+
FCXXc"((E4=*ABF;;c""""#t,,, ..
C
--2779
ECXXc$F;;c""""###
--2779
DCXXc$F;;c""""### ..#s
$CXXc		,Fxxc
5H==""""#s+++E 
(	' 
.	-s   7P?+Q?
Q
Q c                  j   [        [        R                  5      [        S5      :  a  [        R                  " S5        [        R
                  " S/ SQ0SS9n U R                  S5      n [        R                  " U S   R                  R                  5      n[        R                  " U S   R                  R                  R                  5      n[        U[        R                  5      (       d   e[        R                  R                  U S   5      n[        R                   R#                  X5      nXC:X  d   eg )Nz1.3.0z:PyArrow backed string data type introduced in pandas 1.3.0r6   r   rx  r   zstring[pyarrow]r   r&  )r   r.   rG  r   rq  r/   rP  rE   rb   r  codesr  rs   r   r  rH   r]  r   )rT   r`  r  rU   rZ   s        r7   :test_convert_categories_to_array_with_string_pyarrow_dtyper    s    r~~!11PQ	s12:K	LB	:	Bhhr#w{{(()G"S'++00778Jj"((++++xx##BsG,H++G@Frj   c                  Z   [         R                  " S[         R                  " / SQSS905      n [        R                  " U 5      n[        R
                  " / SQ[        R                  " 5       5      nUS   R                  S5      R                  U5      (       d   e[        R                  " S[        R                  " 5       4/5      n[        R                  " XS9n[        R
                  " / SQ[        R                  " 5       5      nUS   R                  S5      R                  U5      (       d   e[        R
                  " U S   5      nUR                  U5      (       d   e[        R
                  " U S   [        R                  " 5       S9nUR                  U5      (       d   e[        R
                  " U S   R                  5      nUR                  U5      (       d   e[        R
                  " U S   R                  [        R                  " 5       S9nUR                  U5      (       d   eg )Nr   r  Int64r   r   r  r  )r.   r/   rc   rE   rY   rb   r   rt  rJ   r:   r    rs   )rT   rZ   rU   r:   r  s        r7   test_array_protocolr     s   	sBIIl'BC	DB
 XXb\Fxxbhhj1H!9??1$$X.... YYbjjl+,-FXXb(Frzz|4I!9??1$$Y//// XXbgF==""""XXbgBJJL1F==#### XXbgnn%F==""""XXbgnn2::<8F==####rj   c                   >   ^  \ rS rSrU 4S jrS r\S 5       rSrU =r	$ )DummyExtensionTypei  c                 L   > [         TU ]  [        R                  " 5       S5        g )Nz,pyarrow.tests.test_pandas.DummyExtensionTypesuper__init__rE   r   r   	__class__s    r7   r  DummyExtensionType.__init__  s    G	Irj   c                     gNrj   rF  r  s    r7   __arrow_ext_serialize__*DummyExtensionType.__arrow_ext_serialize__      rj   c                 V    US:X  d   eU[         R                  " 5       :X  d   eU " 5       $ r  )rE   r   )clsstorage_type
serializeds      r7   __arrow_ext_deserialize__,DummyExtensionType.__arrow_ext_deserialize__  s+    S   rxxz)))urj   rF  )
r  r  r  r  r  r  classmethodr  r  __classcell__r  s   @r7   r  r    s"    I  rj   r  c                     [         R                  " / SQ[         R                  " 5       S9n[         R                  R	                  [        5       U5      $ )Nr   r  )rE   rb   r   ExtensionArrayfrom_storager  )r   r_   storages      r7   PandasArray__arrow_array__r    s7     hhyrxxz2G))*<*>HHrj   c                    [         R                  " / SQ[         R                  " 5       S9n[         R                  R	                  [        5       U5      nU R                  [        R                  R                  S[        SS9  U R                  [        R                  R                  S[        SS9  [        R                  " SSSS	9R                  [        R                  " S
S5      R                  4 GH  n[         R                  " U5      nUR                  U5      (       d   e[         R                  " [        R                  " U5      5      nUR                  U5      (       d   e[         R                  " [        R                   " U5      5      nUR                  U5      (       d   e[         R"                  " [        R$                  " SU05      5      R'                  S5      R)                  S5      nUR                  U5      (       a  GM   e   g )Nr   r  __arrow_array__F)raising
2012-01-01r   Dr%  r   r   r   r   )rE   rb   r   r  r  r  setattrr.   r  PeriodArrayr  IntervalArrayr(  r)  rJ   rc   r   rY   r/   rm  rt  )monkeypatchr  rU   rh   rZ   s        r7   *test_array_protocol_pandas_extension_typesr&  %  s|    hhyrxxz2G  --.@.BGLH		--/@2E  C		//1B2E  CacBHH!!!Q'--/#}}X&&&&"))C.)}}X&&&&"((3-(}}X&&&&",,Sz23::3?EEaH}}X&&&&/rj   c                 ^   [        U[        R                  5      (       a  UnOUR                  S5      nUR	                  5       n[
        R                  " US   SS9UR                  UR                  [        U5      -    nUS   nUbV  [        R                  R                  [        R                  " 5       [        U5      S U/5      n[
        R                  " U5      nO"[
        R                  " [        U5      [        S9n[        R                   R#                  UR%                  5       U) SS9nU$ )Nr   rZ  r   r   F)rr   )r   rE   r  rt  buffersr0   
frombufferoffsetr   BooleanArrayfrom_buffersr  rl  rg  r!   r.   r  IntegerArrayrr   )r   rb   rh   buflistr   bitmaskrl   int_arrs           r7   _Int64Dtype__from_arrow__r1  ?  s     %"" kk!nkkmG==G4

3::C(*DajG++HHJC4/3zz$wws3xt,ii$$TYY[4%e$DGNrj   c                    [         R                  " / SQ[         R                  " / SQSS9/ SQS.5      n[        R                  " U5      nUR                  5       n[        U5      R                  S   R                  R                  [        R                  " S5      :X  d   e[        U5      R                  S	   R                  R                  [         R                  " 5       :X  d   e[        R                  " X15        [         R                  " S
[         R                  " / SQSS905      n[        R                  " U5      nUR                  5       n[        U5      R                  S   R                  R                  [         R                  " 5       :X  d   e[        R                  " X45        [        [         R                  5      [        S5      :  a?  U R!                  [         R"                  R$                  R&                  R(                  S5        O>U R!                  [         R"                  R$                  R&                  R*                  S5        UR                  5       n[-        [        U5      R                  5      S	:X  d   e[        U5      R                  S   R                  R                  [        R                  " S5      :X  d   eg )Nr   r  r  r   )r   r   r   r  r   r   r   r   r  	1.3.0.dev__from_arrow__)r.   r/   rb   rE   rY   rI   r  r  rs   r   r0   
Int64DtyperR   rS   r   rG  delattrcorer  integer_IntegerDtypeNumericDtyper   )r%  rT   rY   rZ   r   r-  s         r7   test_convert_to_extension_arrayr;  U  s    
bhhy@	
B HHRLE __FF""1%,,22bhhw6GGGGF""1%,,22bmmoEEE&% ,,RXXl'BC
DCXXc]FFF""1%,,22bmmoEEE&& r~~!55GGNN""002B	D 	GGNN""//1A	C __Fx&&'1,,,F""1%,,22bhhw6GGGGrj   c                   4   ^  \ rS rSrU 4S jrS rS rSrU =r$ )MyCustomIntegerTypeix  c                 L   > [         TU ]  [        R                  " 5       S5        g )Nz-pyarrow.tests.test_pandas.MyCustomIntegerTyper  r  s    r7   r  MyCustomIntegerType.__init__z  s    H	Jrj   c                     gr  rF  r  s    r7   r  +MyCustomIntegerType.__arrow_ext_serialize__~  r  rj   c                 ,    [         R                  " 5       $ r  )r.   r5  r  s    r7   r  #MyCustomIntegerType.to_pandas_dtype  s    }}rj   rF  )	r  r  r  r  r  r  r  r  r  r  s   @r7   r=  r=  x  s    J rj   r=  c                    [         R                  " / SQ[         R                  " 5       5      n[         R                  R	                  [        5       U5      n[         R                  " SU05      nUR                  5       n[        U5      R                  S   R                  R                  [        R                  " 5       :X  d   e[        R                  " / SQSS9n[        R                   " XE5        UR                  5       n[        U5      R                  S   R                  R                  [        R                  " 5       :X  d   e[        R"                  " S[        R                  " / SQSS905      n[        R$                  " XE5        ['        [        R(                  5      ['        S5      :  a?  U R+                  [        R,                  R.                  R0                  R2                  S5        O>U R+                  [        R,                  R.                  R0                  R4                  S5        UR                  5       n[        U5      R                  S   R                  R                  [6        R                  " S5      :X  d   e[        R                  " / SQ5      n[        R                   " XE5        [8        R:                  " [<        5         UR                  5         S S S 5        g ! , (       d  f       g = f)	Nr   r   r   r  r   r3  r4  r   )rE   rb   r   r  r  r=  rY   rI   r  r  rs   r   r.   r5  rc   rR   rd   r/   rS   r   rG  r6  r7  r  r8  r9  r:  r0   r   rU  rV  )r%  r  rh   rY   rZ   rU   s         r7   /test_conversion_extensiontype_to_extensionarrayrE    s   hh|RXXZ0G



(
()<)>
HCHHc3Z E ]]_FF""1%,,22bmmoEEEyyW5H6,__FF""1%,,22bmmoEEE||S"((<w"GHIH&+ r~~!55GGNN""002B	D 	GGNN""//1A	C ]]_FF""1%,,22bhhw6GGGGyy&H6,	z	" 
#	"	"s   K""
K0c            
         [         R                  " S[         R                  " / SQ[         R                  " 5       5      05      n U R	                  5       nUS   R
                  [        R
                  " S5      :X  d   eU R	                  [         R                  " 5       [        R                  " 5       0R                  S9n[        US   R
                  [        R                  5      (       d   e[         R                  " S[         R                  " / SQ[         R                  " 5       5      05      n U R	                  [         R                  " 5       [        R                  " 5       0R                  S9nUS   R
                  [        R
                  " S5      :X  d   e[         R                  " [        R                  " S[        R                  " / SQSS905      5      n U R	                  5       n[        US   R
                  [        R                  5      (       d   eU R	                  [         R                  " 5       [        R                  " S5      0R                  S9n[        US   R
                  [        R                  5      (       d   eg )	Nr   r   r   types_mapperr   r  r   r!  )rE   rY   rb   r   rI   r   r0   r.   r5  rw  r   r   r/   PeriodDtype)rY   rZ   s     r7   'test_to_pandas_extension_dtypes_mappingrJ    s   HHc288Irxxz:;<E __F#; 1111 __288:r}}*G*K*K_LFfSk''7777 HHc288Irxxz:;<E__288:r}}*G*K*K_LF#; 1111 HHR\\3'(J"KLME__FfSk''7777__hhj".."56::  <FfSk''8888rj   c            	         [        [        R                  5      [        S5      :  a  [        R                  " S5        [
        R                  " [
        R                  " S[
        R                  " 5       SS9[
        R                  " S[
        R                  " 5       SS9/5      n [        R                  " U 5      n[
        R                  " [
        R                  " SU 5      /5      n[        R                  " SS[        R                  " S	5      S
.0SSS S
.0/5      R                  SU05      n[
        R                  R!                  X2S9nUR#                  [        R                  S9n[        R$                  R'                  X55        g )Nz1.5.2zTest relies on pd.ArrowDtyperx  Fr	  r  Tr   r   )rx  r  r  rG  )r   r.   rG  r   rq  rE   r^  r   r  r   
ArrowDtyper:   r/   r0   rP  rG   rH   rI   r  rS   )r  pd_typer:   df0rY   r\  s         r7   4test_to_pandas_extension_dtypes_mapping_complex_typerO    s   r~~!1123iiHHUBHHJ7HHUBJJL48	
G mmG$GYY012F
,,DA78D./	

 feW  HH   4E
//r}}/
5CJJ!!#+rj   c                  T   [        [        R                  5      [        S5      :  a  [        R                  " S5        [        R
                  " SSSS9R                  [        R                  " SS5      R                  4 H  n [        R                  " U 5      R                  5       n[        R                  " U 5      n[        R                  " X5        [        R                  " S	U 05      S	   R                  5       n[        R                  " U S	S
9n[        R                  " X5        M     g )Nz1.1z'ExtensionDtype to_pandas method missingr   r   r!  r%  r   r   r[   r`   )r   r.   rG  r   rq  r(  rb   r)  rE   rI   rc   rR   rd   rY   )rh   rZ   rU   s      r7   test_array_to_pandasrQ    s    r~~/=>acBHH!!!Q'--/#((*99S>
v05#,'.88:99Su-
v0/rj   c            
         [         R                  " [         R                  " SSS9S9n [        R                  " U 5      n[        [         R                  5      [        S5      :  a:  [        R                  " UR                  5       R                  U R                  5        g [        R                  " UR                  5       R                  [         R                  " SSS.SSS.SSS./S	S
95        g )Nr   r   )rB  endr   z1.0r   )r  r  r)   r?   r   )r.   r/   r)  rE   rY   r   rG  rR   assert_index_equalrI   r   r   rT   rY   s     r7   5test_roundtrip_empty_table_with_extension_dtype_indexrV    s    	B--A1=	>BHHRLEr~~/
eoo/55rxx@
eoo/55 hhQ(?12Q(?12Q(?(A .67	8rj   r   r   r   c                    [        [        R                  5      [        S5      :  a  [        R                  " S5        [        R
                  " SS/SS/SS/S	.[        R                  " [        R                  " 5       5      S
9R                  U 5      nUR                  5       n[        R                  " U5      nUR                  [        R                  S9n[        R                  " XB5        g )Nz1.5.0zArrowDtype missingr   r)   r   r   r   r   r  r   rG  )r   r.   rG  r   rq  r/   rL  rE   r   r   rr   rY   rI   rR   rS   )r   rT   rU   rY   rZ   s        r7   !test_to_pandas_types_mapper_indexrX    s    r~~!11()	QQQ	

 mmBHHJ'
 i  wwyHHHRLE__"--_8F&+rj   c                  "   [        [        R                  5      [        S5      :  a  [        R                  " S5        [
        R                  " / SQ[
        R                  " 5       5      n [
        R                  " 5       [        R                  " 5       0R                  nU R                  US9nUR                  [        R                  " 5       :X  d   e[
        R                  " 5       S 0R                  nU R                  US9nUR                  [        R                  " S5      :X  d   e[
        R                  " 5       [        R                  " 5       0R                  nU R                  US9nUR                  [        R                  " S5      :X  d   eg Nz1.2.0z$Float64Dtype extension dtype missingr   rG  r   )r   r.   rG  r   rq  rE   rb   r   r5  rw  rI   r   r0   r    Float64Dtyper   rH  rZ   s      r7   !test_array_to_pandas_types_mapperr]  	  s   r~~!11:;88Irxxz*D HHJ044L^^^6F<<2==?*** HHJ%))L^^^6F<<288G,,,, JJL"//"3488L^^^6F<<288G,,,,rj   c                     [        [        R                  5      [        S5      :  a  [        R                  " S5        [
        R                  " [
        R                  " / SQ[
        R                  " 5       5      /5      n [        U [
        R                  5      (       d   e[
        R                  " 5       [        R                  " 5       0R                  nU R                  US9nUR                  [        R                  " 5       :X  d   e[
        R                  " 5       S 0R                  nU R                  US9nUR                  [        R                  " S5      :X  d   e[
        R                   " 5       [        R"                  " 5       0R                  nU R                  US9nUR                  [        R                  " S5      :X  d   eg rZ  )r   r.   rG  r   rq  rE   r  rb   r   r   r  r5  rw  rI   r   r0   r    r[  r\  s      r7   )test_chunked_array_to_pandas_types_mapperr_     s5    r~~!11:;RXXi<=>DdBOO,,,, HHJ044L^^^6F<<2==?*** HHJ%))L^^^6F<<288G,,,, JJL"//"3488L^^^6F<<288G,,,,rj   c                     / SQn / SQn[         R                  " U SS9n[         R                  " USS9n[         R                  " / SQSS9nSnSn[        R                  " S	U 0[        R                  " S
SSSS9S9n[         R
                  R                  X$/S	S/S9nUR                  S[        R                  " S/S S SSSS0S./S	S	SSS S.SSSSS S./SS.5      05      nUR                  5       n	[        R                  " X5        [        R                  " SU 0[        R                  " S
SSSS9S9n
[         R
                  R                  X$/SU/S9nUR                  S[        R                  " U/S S SSSS0S./S	S	SSS S.SUSSS S./SS.5      05      nUR                  5       n[        R                  " X5        [        R                  " S	U 0[        R                  " S
SSS S9S9n[         R
                  R                  X$/S	U/S9nUR                  S[        R                  " U/S S SSSS0S./S	S	SSS S.S USSS S./SS.5      05      nUR                  5       n[        R                  " X5        [        R                  " S	U 0[        R                  " S
SSSS9U/S9n[         R
                  R                  X$U/S	SU/S9nUR                  S[        R                  " SU/S S SSSS0S./S	S	SSS S.SSSSS S.S USSS S./SS.5      05      nUR                  5       n[        R                  " UU5        [        R                  " S	U 0[        R                  " S
SSS S9U/S9n[         R
                  R                  X$U/S	XV/S9nUR                  S[        R                  " XV/S S SSSS0S./S	S	SSS S.S USSS S.S USSS S./SS.5      05      nUR                  5       n[        R                  " UU5        g )N)r   rx  Nr  )r   r   r   r   r  r  r  r   r  __index_level_1__r   r   r   r)   r  r   r   r      pandasr5  r?   r6  r7  )ra   r  r(  r*  r+  z0.23.4)r  r'  rK   r  )rE   rb   r.   r/   r   rG   r   replace_schema_metadatajsondumpsrI   rR   rS   )a_valuesb_valuesa_arrowb_arrowrng_index_arrow
gen_name_0
gen_name_1e1r>  r1e2r?  r2e3t3r3e4t4r4e5t5r5s                         r7   )test_metadata_compat_range_index_pre_0_12rz  =  sH    +H#Hhhxf-Ghhxf-Ghh|':O$J$J 
X]]1aae4
6B 
		w8%(%L 
 
2B		#	#4::$g)-/309/7.8'-B	!D  E
 #&(+)2(0&*	,
 #((-)0(/&*	,	-  (!)
% 
B( 
B"! 
x]]1aae4
6B 
		w8%*J$7 
 
9B		#	#4::)l)-/309/7.8'-B	!D  E
 #&(+)2(0&*	,
 #((2)0(/&*	,	-  (!)
% 
B( 
B"! 
X]]1aad3
5B 
		w8%(*$5 
 
7B		#	#4::)l)-/309/7.8'-B	!D  E
 #&(+)2(0&*	,
 #'(2)0(/&*	,	-  (!)
% 
B( 
B"! 
XmmAqqu5x@
BB 
		wA%(%$< 
 
>B		#	#4::$j1)-/309/7.8'-B	!D  E
 #&(+)2(0&*	,
 #((-)0(/&*	,
 #'(2)2(0&*	,-  (+)
% 
B2 
B"b! 
XmmAqqt4h?
AB 
		wA%(*$A 
 
CB		#	#4::)6)-/309/7.8'-B	!D  E
 #&(+)2(0&*	,
 #'(2)0(/&*	,
 #'(2)2(0&*	,-  (+)
% 
B2 
B"b!rj   c                     / SQn / SQn[         R                  " U SS9n[         R                  " USS9n[        R                  " U US.[        R                  " SSS	S
S9S9n[         R
                  " X#S.5      nUR                  S[        R                  " S S S SSS./S SSSS.S SSSS./SS
SS	SS./SS.5      05      nUR                  5       n[        R                  " Xd5        g )Nr   )r   r   r   r  r   r  r  rO  r   r   r)   r  r   r   rb  r?   zmixed-integer)r  r+  ra   r*  r(  r   )r+  ra   r*  r(  r   r5  r4   )kindra   rB  r   r  z0.25.0)r'  rK   r  r  )rE   rb   r.   r/   r   rY   rc  rd  re  rI   rR   rS   )rf  rg  rh  ri  rU   rY   rZ   s          r7   'test_metadata_compat_missing_field_namer}    s    H#Hhhxg.Ghhxf-G|| ]]1aae46H HH712E ))4::#!' /	1 "& ') "' )+	 !	 '3( 
+ E: __F&+rj   c            
          [         R                  " S5      n [        R                  " [        R
                  " [        R                  " SSU S9S95      nUR                  R                  nUS   S   S   S:X  d   eg )	Nr   r   r   r`   r   r  ra   6)	r0   r   rE   rY   r.   r/   r   r:   r  ra   rY   r+  s      r7   .test_metadata_index_name_not_json_serializabler    s_    88A;DHHR\\a(FGHE||++HO$Q'/3666rj   c            
          Sn [         R                  " [        R                  " [        R                  " SSU S9S95      nUR
                  R                  nUS   S   S   S:X  d   eg )Nr   r   r   r`   r   r  ra   )rE   rY   r.   r/   r   r:   r  r  s      r7   -test_metadata_index_name_is_json_serializabler     sW    DHHR\\a(FGHE||++HO$Q'/1444rj   c            
      ~   [         R                  " [        R                  " SS5      [        R                  " SS5      [        R                  " SS5      [        R                  " SS5      /[        R                  " SS5      [        R                  " SS5      [        R                  " SS5      [        R                  " SS5      /S	.5      n U S
   R	                  S5      U S
'   U R
                  R                  U R                  R                  4[        R                  " S5      [        R                  " S5      4:X  d   eU $ )Nz0001-01-01 00:00r  z2012-05-02 12:35z2012-05-03 15:42z3000-05-03 15:42z1991-01-01 00:00r<  z2050-05-03 15:42)
dateTimeMs
dateTimeNsr  r?   r  zM8[ns])r.   r/   r0   r  rP  r  r   r  r  s    r7   make_df_with_timestampsr  '  s    
MM,d3MM,d3MM,d3MM,d3	
 MM,d3MM,d3MM,d3MM,d3	
 
B ,'..x8B| MM!4!45
rxx):    Irj   c                    [        5       n[        R                  R                  U5      nU S-  n[        R
                  " X#5        [        R                  " U5      nUR                  SS9n[        R                  " X5        g )Nztimestamps_from_pandas.parquetTtimestamp_as_object)
r  rE   rG   rH   pqwrite_table
read_tablerI   rR   rS   )tempdirrT   rY   filenamerZ   r   s         r7    test_timestamp_as_object_parquetr  B  sf     
!	"BHH  $E99HNN5#]]8$F


t

4C""rj   c                      [        5       n [        R                  R                  U 5      nUR	                  SS9n[
        R                  " X5        g )NTr  )r  rE   rG   rH   rI   rR   rS   )rT   rY   r   s      r7   %test_timestamp_as_object_out_of_ranger  O  s>     
!	"BHH  $E
//d/
3C""rj   
resolutionrl  r   r@  r  i  i  c                    [         R                  " U/[         R                  " XS9S9n[         R                  " SU05      nUR	                  SS9UR	                  SS9S   4 H  nUR
                  [        :X  d   e[        US   [        5      (       d   eU(       a1  US   R                  c   eUS   R                  R                  U5      nOUS   R                  b   eUnUS   U:X  a  M   e   g )Nr  r  r   Tr  r   )rE   rb   r  rY   rI   r   r?   r   r   r  fromutc)r  r   r  rh   rY   rZ   rU   s          r7   'test_timestamp_as_object_non_nanosecondr  X  s     ((B4bll:=
>CHHc3Z E 	$/D1#6 ||v%%%&)X....!9##///ay''//3H!9##+++HayH$$$rj   c            	      V   [         R                  " S5      n SS KnU R                  S5      nUR                  " UR                  " SSSSS5      5      n[
        R                  " S	[
        R                  " U/5      05      nUR                  S
S9n[
        R                  " U5      U:X  d   eg )Nr  r   x   i  r   r9  rv  9   timestamp_colTr  )	r   r  r   r  localizerE   rY   rb   rI   )r  r   r   r  rY   rZ   s         r7   %test_timestamp_as_object_fixed_offsetr  q  s    v&D$H			8,,T1b"bA	BBHHorxx~67E___6F88Fu$$$rj   c                      [        S5        g )Nzpandas_threaded_import.py)r   rF  rj   r7   test_threaded_pandas_importr  }  s    -.rj   c                     [         R                  " S5      n [         R                  " [         R                  5      U :X  d   e[        R                  " S[         R                  " 5       /05      n[
        R                  R                  U5      nUR                  5         [         R                  " [         R                  5      U :X  d   eg )Nm8r   )	r0   r   r  r.   r/   rE   rG   rH   rI   )rU   rT   r  s      r7   $test_does_not_mutate_timedelta_dtyper    s    xx~H88BNN#x///	sR^^-./	0B
R AKKM88BNN#x///rj   c                      SSK Jn   SU " SSS90/nU " SSS	S
9/n[        R                  " XS.5      nUR	                  5       nUS   S   R                  5       US   :X  d   eg )Nr   )r   timedelta_1r9  r   )r1  r  r   (   r  )r  r2  r1  )r  timedelta_2r  )r   r   rE   rY   rI   to_pytimedelta)r   r  r  rY   rT   s        r7   %test_does_not_mutate_timedelta_nestedr    sn     #!9Ra#HIJK1b"=>KHH[MNE		BmQ..0KNBBBrj   c                     [         R                  " [         R                  " S[         R                  " [         R                  " [         R
                  " 5       [         R                  " [         R                  " S[         R                  " 5       5      /5      5      5      5      /5      n [         R                  " S//S SSS04/SSS 04SSS04////U S	9n[        R                  " SS//S SSS04/SSS 04SSS04///05      n[        R                  " SS
S 0/S SSS00SS 0SS0S.//05      nUR                  5       nUR                  SS9n[        R                  " XB5        [        R                  " XS5        [         R                  R                  X@S	9nUR!                  U5      (       d   e[         R                  R                  XPS	9nUR!                  U5      (       d   eg )Nr   r   )r   Nr)   s   abcr   r   s   defr  r   rk  strictmaps_as_pydicts)rE   r:   r   r  r  r   r^  r  rY   r.   r/   rI   rR   rS   rG   rH   rJ   )r:   rY   expected_default_dfexpected_as_pydicts_df
default_dfas_pydicts_dftable_default_roundtriptable_as_pydicts_roundtrips           r7   ,test_roundtrip_nested_map_table_with_pydictsr    s   YY
HH	299bhhsBIIK.H-I#JK	
 F HH
#v #tC=12	
  	E ,,	}dq3-&8%9'(3+&6S&M8J%K%M N 	O  \\	YK#vc4[c6]!CD
 	 "JOOHO=M*:-@ hh22:2M<</0000!#!5!5m!5!S<<23333rj   c            	        ^ [         R                  " SS/5      n [         R                  " / SQ5      n[         R                  " / [         R                  " 5       5      n[         R                  " SS/SS//[         R                  " [         R                  " 5       5      5      n[         R                  " / SSS	/S
S//[         R                  " [         R                  " 5       5      5      n[         R                  " / [         R                  " [         R                  " 5       5      5      n[         R                  R                  SS/X5      n[         R                  R                  / SQX5      n[         R                  R                  SS/X%5      n[         R                  " [         R                  R                  SS/U5      R                  S5      [         R                  R                  SS/UR                  S5      5      R                  S5      [         R                  R                  SS/U5      R                  S5      /5      n	U	R                  5       n
[        R                  " SSS/4SSS/4//SS
S/4/// /5      nU	R                  SS9n[        R                  " SS/SS/S./SS
S/0// /5      nU	R                  SS5      nUR                  5       n[        R                  " SS
S/4/// /5      nUR                  SS9n[        R                  " SS
S/0// /5      n[        R                  " 5          [        R                  " SS[        5        [         R"                  " X5        [         R"                  " X5        [         R"                  " UU5        [         R"                  " UU5        SSS5        [         R                  " [         R$                  " [         R                  " 5       [         R                  " [         R                  " 5       5      5      5      mS[        R                  SS4U4S jjnU" X5        U" X5        U" X5        U" UU5        g! , (       d  f       N= f)z5
Slightly more robust test with chunking and slicing
r   rx  )r  r  r  r  r   r   r   r  Nr  r  r  r   r)   )r   r   r   r   r  r  r  r   rx  r   r@   rA   r5  returnc                    > [         R                  " [         R                  R                  U TS95      nUR	                  SS9  UR                  U5      (       d   eg )Nr  Tr  )rE   r  r  rH   r  rJ   )r5  r   array_roundtriprv  s      r7   assert_roundtripMtest_roundtrip_nested_map_array_with_pydicts_sliced.<locals>.assert_roundtrip  sM    **288+?+?R+?+PQ  d +{{?++++rj   )rE   rb   r  r  r  r   r  r  r  rI   r.   rc   rN   rO   rP   rQ   rR   rd   r  )keys_1keys_2keys_3items_1items_2items_3map_chunk_1map_chunk_2map_chunk_3r  series_defaultexpected_series_defaultseries_pydictsexpected_series_pydictsslicedseries_default_slicedexpected_series_default_slicedseries_pydicts_slicedexpected_series_pydicts_slicedr  rv  s                       @r7   3test_roundtrip_nested_map_array_with_pydicts_slicedr    s    XXuen%FXX34FXXb"))+&Fhh
sc3Z 
G hh	TD#;c
+
G hh

G
 ++))1a&&BK++)))VEK++))1a&&BK$$
  !Q5;;A>
  !Q):):1)=>DDQG
  !Q5;;A>& M #,,.N ii3*
Sz2	343*
	
)  #,,X,FN iisS#J	/0
#s	
)    A&F",,.%'YY3*
	
0 &"
 #,,X,F%'YY
#s	
0 &"
 
	 	 	"*I 2	4
~G
~G
46TU
46TU 
# 
"''"))+rxx		'<=	>B, ,T ,
 ^3^3*3*F3% 
#	"s   /A7Q
Qc                  `   [         R                  " / SQ5      n [         R                  " SS/SS/SS//[         R                  " [         R                  " 5       5      5      nSS	/n[         R                  R                  X U5      n[         R                  " [         R                  " 5       [         R                  " [         R                  " 5       5      5      n[        R                  " [         R                  R                  5         UR                  S
S9  S S S 5        UR                  SS9n[        R                  " SS/SS/S./5      nUR                  [         R                  R!                  XTS95      (       a   eUR                  5       n[        R                  " SSS/4SSS/4SSS/4//5      nUR                  [         R                  R!                  XtS95      (       d   e[#        U5      [#        U5      :X  d   e[%        XV5       H  u  p[#        U	5      [#        U
5      :X  d   e[%        U	R'                  5       U
R'                  5       5       H7  u  pUS   US   :X  d   e[(        R*                  " US   US   5      (       a  M7   e   M     [#        U5      [#        U5      :X  d   e[%        Xx5       He  u  p[#        U	5      [#        U
5      :X  d   e[%        X5       H7  u  pUS   US   :X  d   e[(        R*                  " US   US   5      (       a  M7   e   Mg     g ! , (       d  f       GN= f)Nr  r   r   r   r  r   rj  r   r   r  r  lossyr  r  r   rx  r   )rE   rb   r  r  r  r   r  r   rU  r  ArrowExceptionrI   r.   rc   rJ   r  rH   r   r  r  r0   array_equal)r  r  r  mapsrv  r  r  r  r  row1row2tup1tup2s                r7   4test_roundtrip_map_array_with_pydicts_duplicate_keysr    s   88)*DHH
sc3Z#s,
E !fG;;""7%8D	bhhryy{3	4B 
rvv,,	-x0 
. ^^G^<N iic
C:.)  {{288///HIIII ^^%N ii
#s	usCj1EC:3FG)  ;;rxx++N+DEEEE
 ~#&=">>>>.B
4yCI%%%djjlDJJL9JD7d1g%%%>>$q'473333 : C ~#&=">>>>.B
4yCI%%%d/JD7d1g%%%>>$q'473333 * CC 
.	-s   L
L-c            	      >   [         R                  " SS/SS// S/S S/SS//[         R                  " [         R                  " 5       5      5      n [         R                  " / S	Q5      n/ S
Qn[         R                  R                  X U5      n[        R                  " [        5         UR                  SS9  S S S 5        UR                  5       n[        R                  " SS/S4SS/S4// S4S/S4S S/S4SS/S4//5      n[        U5      [        U5      :X  d   e[        XE5       He  u  pg[        U5      [        U5      :X  d   e[        Xg5       H7  u  p[        R                  " US   U	S   5      (       d   eUS   U	S   :X  a  M7   e   Mg     g ! , (       d  f       N= f)Nr   r   r   r  r  r  r  r  )r   rx  r  r  r  r  )r   r)   r   r  r  r   rx  r  r  r  r  r   r   )rE   rb   r  r  r  r   r   rU  r_  rI   r.   rc   r   r  r0   r  )
r  r  r  r  r5  r  r  r  r  r  s
             r7   %test_unhashable_map_keys_with_pydictsr  J  s   88
sc3ZcUT3K#sD
D HH@AEG;;""7%8D 
y	!w/ 
"
 ^^F ii*e	Sz512
euenc{F&;sCj%=PQ)  v;#56666&:
4yCI%%%d/JD>>$q'4733337d1g%%% * ; 
"	!s   $F
Fc                  @   [         R                  " [         R                  " SSSS9SS9n [        R                  " S[        R
                  " U 5      05      nUR                  S5      nUR                  5       nUR                  S:X  d   e[        R                  " X05        g )N2012r)   r   r  datetime_columnr`   )r.   rc   r   rE   rY   rb   rm  rI   ra   rR   rd   )r5  rY   	table_colrZ   s       r7   )test_table_column_conversion_for_datetimer  k  s    
 YYr}}VQ;LM-/FHH'&)9:;E./I  "F;;++++6*rj   c                      [         R                  " [         R                  " SSSS95      n [        R                  " U 5      nUR                  5       n[        R                  " X 5        g )Nr  r)   r   r  )r.   rc   r   rE   rb   rI   rR   rd   )r5  rh   rZ   s      r7   "test_array_conversion_for_datetimer  z  sG    
 YYr}}VQ;LMNF
((6
C]]_F6*rj   c            
         SS jn SS-  nU " [         R                  " SXU/05      5        SU0nU " [         R                  " SX"U/05      5        U/nU " [         R                  " SX3U/05      5        U/nU " [         R                  " SXDU/05      5        SU0nU " [         R                  " S	XUU/05      5        S
U0n[        R                  " [        R                  " 5       [        R
                  " [        R                  " S[        R                  " 5       4/5      5      5      n[        R                  " SU4/5      nU " [         R                  " SXfU/05      US9  g )Nc                     [         R                  R                  XS9nUR                  SS9  UR	                  S5      R
                  nUS:  d   e[        R                  " UR                  SSS9U 5        g )Nr  Tr  r   r   r  )r  r  )	rE   rG   rH   r  rm  r  rR   rS   rI   )rT   r:   tabr  s       r7   	roundtrip-test_nested_chunking_valid.<locals>.roundtrip  sp    hh""2"5$ ZZ]--
A~~
cmm$<D , FGI	Krj      0i T*r  struct_fieldr  rj  lossolr   r  r  r  )	r.   r/   rE   r  r  r  r^  r  r:   )	r  r6   r^  rj  r  r  
map_of_losmap_typer:   s	            r7   test_nested_chunking_validr    s3   K 	yAbllIay123a FbllI'?@ABCEbllGeE%:;<=(CbllECc?3455
!CbllECc?345sJwwryy{xx		NBIIK+H*I JKMHYY*+,FbllFZZ$HIJrj   c                      [         R                  " SS/SS//SS/S9n [        R                  R	                  U 5      nUR
                  SS	/:X  d   eUR                  5       R                  U 5      (       d   eg )
Nr  r  r  g?s   col1s   col2r   r  r  )r.   r/   rE   rG   rH   r   rI   rJ   rU  s     r7    test_bytes_column_name_to_pandasr    so    	SzC:.'8J	KBHH  $E&&!1111??##B''''rj   c                  0    [         R                  " S5        g )Nzarrow_39313.py)	test_utilr   rF  rj   r7   !test_is_data_frame_race_conditionr    s     ,-rj   c                     [         R                  " S/ SQ05      n [        R                  " S5      U R                  S'   [
        R                  " [        SS9   [        R                  " U 5      nS S S 5        [        R                  " WR                  R                  S   5      nUS   (       a   eg ! , (       d  f       NH= f)	Nr6   r   z2025-10-28T14:20:42r  z'Could not serialize pd.DataFrame.attrs:r]  rb  
attributes)r.   r/   r   fromisoformatattrsr   r   r   rE   rY   rd  loadsr:   r+  )rT   df_tablepd_metadatas      r7   $test_json_unserializable_pd_df_attrsr    s    	sI&	'B$223HIBHH[	7
 88B<	
 **X__55i@AK<((((
 
s   B00
B>)r  )NFNTNFF)NNr  r  )r   N)r+  r   rd  multiprocessingr  rM  rN   collectionsr   r   r   r   r   r   
hypothesisr  hypothesis.strategies
strategiesr  r   numpyr0   numpy.testingr  rx   r	   r  r  numpy.exceptionsImportErrorpyarrow.pandas_compatr
   r   pyarrow.tests.utilr   r   r   pyarrow.tests.strategiestestsr  utilr  pyarrow.vendored.versionr   pyarrowrE   r   r  pandasr.   pandas.testingrR   pandas_examplesr   r   r  
pytestmarkr8   r\   ri   ru   r{   r}   r  r  r  r  r  r  r%  rJ  r5  r}  r  r  r  r!  r*  r.  r3  rK  r;  r  r  pandas_compatible_typesr=  rA  rC  rH  rJ  rL  rS  rV  r_  ra  re  rg  rj  rp  rs  rx  r}  r  r  r  r8  r  r   r   r   r   r   r   r   r   r  r   r    r  r  r  r  r  r  r  rL  rJ  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   ExtensionTyper  r  r&  r1  r;  r=  rE  rJ  rO  rQ  rV  rX  r]  r_  rz  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r#  r  r  r  r  rF  rj   r7   <module>r     s  $ 
    
  # > >  " 

(*(D(D% @ A A ' ' & & , 	%	L [[
> <A,059+0%*	=>
& 8< $K0-@	4 @	4Fb bJ	 IK.K.& IK,K,,}	$ }	$H~- ~-Be1 e1Pn	( n	(b`: `:F94 94xBAQ% Q%h +. fXw$78< 9<7 !$ T11	23  4 #
1L "&1")60)4/0)6A"5WGtB*9,J((0) 	G	V	F	W	W	W	W	h	h	h	y!	y!	y!	f	f	g	!	g&	i 	"((288:&	')<=	r1	y)	d	Z(	dE	"L1	3 	4&!1:.;:.:49><"-
=$:*	0
0",*.#b#-9h1Jh
)9X
--02,j($:))  I'4, HF
"** 
!H92,21
8 3c
"34, 5,"-. - -8f"R0,f756 	# 	## '89&89:q! 4htQ6JKL% M ; :%*	% / /	0
C*4ZK4\14h&B+	+ # #L( . .
)md  
	
 	

  	B  		  		sS   
X X  X" 	X/  XX XX XX"X,+X,/X98X9