
    ga                        d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ	 	 d dl
Zd dlZd dlmc mZ d dlmZmZmZmZ 	 d dlmZ d dlZd dlZ ej8                  d      d        ZdLdZ ej8                  ddd	g
      d        Z ej8                  dg d
      d        Z da!d Z"d Z#ejH                  j2                  d        Z%	 	 	 	 dMdZ&dNdZ'dOdZ(ejH                  j                  d        Z)ejH                  j2                  d        Z*ejH                  j2                  d        Z+ejH                  j2                  d        Z,ejH                  j2                  d        Z-ejH                  j2                  d        Z.ejH                  j2                  d        Z/ejH                  j2                  d        Z0ejH                  j2                  d        Z1ejH                  j2                  d        Z2d Z3ejH                  j                  d        Z4ejH                  j2                  d         Z5ejH                  j2                  d!        Z6ejH                  j2                  d"        Z7ejH                  j2                  d#        Z8ejH                  j2                  d$        Z9ejH                  j2                  d%        Z:ejH                  j2                  d&        Z;ejH                  j2                  d'        Z<ejH                  j2                  d(        Z=ejH                  j2                  d)        Z>ejH                  j2                  ejH                  j                  d*e@+      d,               ZAejH                  j2                  d-        ZBejH                  j2                  d.        ZCejH                  j2                  d/        ZDejH                  j2                  ejH                  j                  ej                  j                   d01      d2               ZHejH                  j2                  d3        ZIejH                  j                  d4        ZJejH                  j2                  d5        ZKejH                  j2                  ejH                  j                  d6      ejH                  j                  d7      d8                      ZMejH                  j2                  d9        ZNd: ZOejH                  j2                  d;        ZPejH                  j2                  d<        ZQejH                  j2                  ejH                  j                  ejH                  j                  ejH                  j                  d=                             ZUejH                  j                  d>        ZVd? ZWejH                  j                  ejH                  j2                  d@               ZYejH                  j                  ejH                  j2                  dA               Z[dB Z\ejH                  j2                  dC        Z]dD Z^dE Z_dF Z`ejH                  j                   ej                  ej                   e	j                  g dG            dH               ZdejH                  j                  dI        ZeejH                  j2                  dJ        ZfejH                  j2                  dK        Zgy# e$ r dZY w xY w# e$ r Y w xY w)P    N)read_featherwrite_feather
read_tableFeatherDataset)assert_frame_equalmodule)scopec                     | dz  S )Nfeather )base_datadirs    O/var/www/openai/venv/lib/python3.12/site-packages/pyarrow/tests/test_feather.pydatadirr   ,   s    )##    c                 .    t        j                  |       S )Nprefix)tempfilemktempr   s    r   random_pathr   1   s    ??&))r         )r	   paramsc              #   (   K   | j                    y wN)paramrequests    r   versionr   5   s     
--s   )Nuncompressedlz4zstdc              #      K   | j                   dv rKt        j                  j                  | j                         s"t	        j
                  | j                    d       | j                    y w)N)r!   r"   z is not available)r   paCodecis_availablepytestskipr   s    r   compressionr)   :   sL     }}'0E0EMM1w}}o%678
--s   A)A+c                     g a y r   )
TEST_FILES)r   s    r   setup_moduler,   E   s    Jr   c                 x    t         D ]  }	 t        j                  |        y # t        j                  $ r Y 1w xY wr   )r+   osremoveerror)r   paths     r   teardown_moduler2   J   s4    	IIdO  xx 		s   #99c                      t        j                  t        j                        5  t	        d       d d d        y # 1 sw Y   y xY w)Ntest_invalid_file)r'   raisesr$   ArrowIOErrorr   r   r   r   test_file_not_existr7   R   s'    	r	'() 
(	'	's	   9Ac                     |
t               }|d}t        j                  |       t        | ||||       t        j
                  j                  |      st        d      t        |||      }|| }t        ||       y )Nr   )r)   compression_levelr   file not writtenuse_threads)
r   r+   appendr   r.   r1   exists	Exceptionr   r   )	dfexpectedr1   columnsr<   r   r)   r9   results	            r   _check_pandas_roundtriprD   X   s}     |}d"d$5wH 77>>$*++$[AFvx(r   c                     |
t               }t        j                  |       t        | ||       t        j
                  j                  |      st        d      t        |      }|j                  |       sJ y )Nr)   r:   )
r   r+   r=   r   r.   r1   r>   r?   r   equals)tabler1   r)   rC   s       r   _check_arrow_roundtriprI   q   s`    |}d%;777>>$*++F==r   c                      
t               t        j                          fd}t        j                  ||       y )Nc                  "    t                y )Nr   )r   )r@   r1   r   s   r   fz!_assert_error_on_write.<locals>.f   s    b$0r   )r   r+   r=   r'   r5   )r@   excr1   r   rM   s   ` `` r   _assert_error_on_writerO   ~   s4     |}d1 MM#qr   c                 "   d}d}t        |      D cg c]  }t                }}t        |d         D ci c]1  }dt        |      z   t        j                  j                  |d         3 }}t        j                  |      }t        j                  |       t        |      D ]5  \  }}||d   |z  z  |dz   |d   |z  z  f}	t        ||	d   |	d    ||        7 t        |      j                         }|j                  |      sJ y c c}w c c}w )Nd   rR      r   col_r   rL   )ranger   strnprandomrandnr$   rH   r+   extend	enumerater   r   r   rG   )
r   
num_values	num_filesipathsdatarH   indexr1   rowss
             r   test_datasetrc      s   JI$))$45$4q[]$4E5 z!}%%A 	QA77% 	  HHTNEe 'tZ]i/0QY:a=I56

 	eDGT!W-tWE ( % ++-D;;u# 6s
   D6Dc                     i }ddg}d}|D ]5  }t         j                  j                  |      }|j                  |      ||<   7 t	        j
                  |      }t        ||        y )Nf4f8rR   rL   )rW   rX   rY   astypepd	DataFramerD   r   r`   numpy_dtypesr\   dtypevaluesr@   s          r   test_float_no_nullsrn      s]    D$<LJ,mmE*U  
d	BB0r   c                    d}t               }t        j                  |       t        j                  j                  dd|      }t        d      D cg c]  }dt        |      z    }}t        j                  j                  ||      }t        |||        t        |      }|j                  |      sJ t        |d      }|j                  |      sJ t        |d      }t        |j!                         |       y c c}w )	NrQ   r   rR   sizerT   rL   F)
memory_map)r   r+   r=   rW   rX   randintrU   rV   r$   Tablefrom_arraysr   r   rG   r   r   	to_pandasr   r\   r1   rm   r^   rB   rH   rC   s           r   test_read_tablerx      s    J=DdYYq#J7F(-c
3
1vA
G3HH  1E%w/F== /F==$51Fu(&1 4s   C<c                    d}t               }t        j                  |       t        j                  j                  dd|      }t        d      D cg c]  }dt        |      z    }}t        j                  j                  ||      }t        |||        t        |      }t        |j                         |       t        |d      }t        |j                         |       t        |d      }|j!                  |      sJ y c c}w )	N)
   rz   r   rz   rp   rT   rL   Fr;   )r   r+   r=   rW   rX   rs   rU   rV   r$   rt   ru   r   r   r   rv   r   rG   rw   s           r   test_use_threadsr{      s     J=DdYYq":6F(-b	2	1vA	G2HH  1E%w/$Fu(&1 $E2Fu(&1 %0F== 3s   Dc                    d}t               }t        j                  |       t        j                  j                  dd|      dk  }ddg}g }g }|D ]z  }t        j                  j                  |      j                  |      }|j                  t        j                  ||             t        j                  ||<   |j                  |       | t        j                  ||	      }	t        |	       |	j                         }
t        |
| 
       y )NrR   r   rz   rp      re   rf   masknamesrL   )r   r+   r=   rW   rX   rs   rY   rg   r$   arraynanrH   rI   rv   rD   )r   r\   r1   	null_maskdtypesexpected_colsarraysnamerm   rH   r@   s              r   test_float_nullsr      s    J=Dd		!!!Rj!9A=ID\FMF,33D9bhhvI67FFyV$  HHV6*E5!		BB0r   c                 Z   i g }}g d}d}|D ]X  }t         j                  j                  dd|      }|j                  |      ||<   |j	                  |j                  |             Z t        j                  |      }t        ||        t        j                  ||      }t        |       y )Ni1i2i4i8u1u2u4u8rR   r   rp   rL   r   )rW   rX   rs   rg   r=   rh   ri   rD   r$   rH   rI   )	r   r`   arrrk   r\   rl   rm   r@   rH   s	            r   test_integer_no_nullsr      s    B#D,LJ""1c
";mmE*U

6=='( 
 
d	BB0HHS-E5!r   c                     i }dg}d}|D ]8  }t         j                  j                  dd|      }|j                  |      ||<   : t	        j
                  |      }t        ||        y )NlonglongrR   r   rp   rL   )rW   rX   rs   rg   rh   ri   rD   rj   s          r   test_platform_numpy_integersr     sd    D<LJ""1c
";mmE*U  
d	BB0r   c                 &   t               }t        j                  |       g d}d}g }t        j                  j                  dd|      dk  }g }|D ]  }t        j                  j                  dd|      }|j                  t        j                  ||             |j                  d      }	t        j                  |	|<   |j                  |	        t        j                  ||	      }
t        |
       |
j                         }t        || 
       y )Nr   rR   r   rz   rp   r}   r~   rf   r   rL   )r   r+   r=   rW   rX   rs   r$   r   rg   r   rH   rI   rv   rD   )r   r1   
int_dtypesr\   r   r   r   r   rm   rA   rH   r@   s               r   test_integer_with_nullsr   #  s     =DdAJJF		!!!Rj!9A=IM""1c
";bhhvI67==& ffX&  HHV:.E5!		BB0r   c                     d}t         j                  j                  d       t        j                  dt         j                  j                  |      dkD  i      }t        ||        y )NrR   r   boolsrL   )rW   rX   seedrh   ri   rY   rD   )r   r\   r@   s      r   test_boolean_no_nullsr   ?  sF    JIINN1	w		
 ;a ?@	ABB0r   c                    t               }t        j                  |       d}t        j                  j                  d       t        j                  j                  dd|      dk  }t        j                  j                  dd|      dk  }t        j                  t        j                  ||      gdg	      }t        |       |j                         }t        || 
       y )NrR   r   rz   rp   r}   rS   r~   r   r   rL   )r   r+   r=   rW   rX   r   rs   r$   rH   r   rI   rv   rD   )r   r1   r\   r   rm   rH   r@   s          r   test_boolean_nullsr   I  s     =DdJIINN199Q4q8DYYq":6:FHHbhhvD127)DE5!		BB0r   c                 :   t               }t        j                  |       t        dd      D ]m  }t        j
                  j                  t	        j                  d gt        t        |            z   t	        j                               gdg      }t        |       o y )N      )typer   r   )r   r+   r=   rU   r$   rt   ru   r   listfloat64rI   )r   r1   r^   rH   s       r   test_buffer_bounds_errorr   \  su    =Dd2s^$$XXtftE!H~-BJJLAB' % 
 	u% r   c                     d}t         j                  j                  t        j                  g d|z  t
              gdg      }t        |       y )NrR   )FNT)rl   r   r   )r$   rt   ru   rW   r   objectrI   )r   repeatsrH   s      r   test_boolean_object_nullsr   i  sF    GHH  	%/v	>?g ! E 5!r   c                 t   t         j                  dk(  rt        j                  d        G d d      }t	        j
                  t        d      dd d |       t        j                  gdd	d
g      }t               }	 t        |||        t        j                  j                  |      rJ y # t        $ r Y -w xY w)Nwin32z/Windows hangs on to file handle for some reasonc                       e Zd Zy)6test_delete_partial_file_on_error.<locals>.CustomClassN__name__
__module____qualname__r   r   r   CustomClassr   x      r   r   rS      foobar)numbersstringsr   r   rB   rL   )sysplatformr'   r(   rh   ri   rU   rW   r   r   r   r?   r.   r1   r>   )r   r   r@   r1   s       r   !test_delete_partial_file_on_errorr   s  s    
||wEF  
Qxe[]BFFC	E I&	
(B =Db$0 ww~~d####  s   ;B+ +	B76B7c                     d}dd ddt         j                  g}t        j                  d||z  i      }g d}t        j                  d||z  i      }t	        |||        g d}t        j                  d||z  i      }t        j                  d||z  i      }t	        |||        d	d ddt         j                  g}t        j                  d||z  i      }g d}t        j                  d||z  i      }t	        |||        y )
N  r   r   quxr   )r   Ns   bars   quxNrL   fooNr   r   Nr   )rW   r   rh   ri   rD   )r   r   rm   r@   	ex_valuesrA   s         r   test_stringsr     s    G dE5"&&1F	y&7"23	4B4I||Y	G(;<=HB': /F	y&7"23	4B||Y(89:HB':T5%0F	y&7"23	4B1I||Y	G(;<=HB':r   c                 T    t        j                  ddgdz  i      }t        ||        y )Nr    rz   rL   rh   ri   rD   r   r@   s     r   test_empty_stringsr     s%    	y2$),	-BB0r   c                 T    t        j                  dd gdz  i      }t        ||        y )Nall_nonerz   rL   r   r   s     r   test_all_noner     s%    	zD6B;/	0BB0r   c                     t        j                  ddd      }|j                  |j                  j	                  d            }t        ||        y )Nr   r   r}   )NNNABcategory)r   rL   )rh   ri   assignr   rg   rD   r   s     r   test_all_null_categoryr     s?     
I,>?	@B	RTT[[,	-BB0r   c                     t        d      D ci c]  }dj                  |      dgdz   }}t        j                  |      }t	        |d|        y c c}w )NrR   zc{}r   rz   T)r<   r   )rU   formatrh   ri   rD   )r   r^   r`   r@   s       r   test_multithreaded_readr     sZ     3Z! LLObTBY& 	 !	d	BBD'B!s   Ac                     t        j                  dt         j                  t         j                  dz  dgdz        }t        j                  d|i      }t        ||        y )Nr   r   r   rz   r   rL   )rW   r   r   rh   ri   rD   )r   rm   r@   s      r   test_nan_as_nullr     sI     XXubffbffqj%82=>F	y&)	*BB0r   c                    d}dd ddt         j                  g}t        j                  d||z  i      }|d   j	                  d      |d<   g d}t        j                  dt        j
                  ||z        i      }t        |||        y )	Nr   r   r   r   r   r   r   rL   )rW   r   rh   ri   rg   CategoricalrD   )r   r   rm   r@   rA   s        r   test_categoryr     s}    GT5%0F	y&7"23	4ByM((4ByM.F||Yv7G(HIJHB':r   c                     t        j                  dt        j                  dd      i      }|j                  j                  j                  d      j                  j                  d      |d<   t        ||        y )	Nnaivez
2016-03-28rz   )periodsutczAmerica/Los_Angeleswith_tzrL   )rh   ri   
date_ranger   dttz_localize
tz_convertrD   r   s     r   test_timestampr     sZ    	wlB GH	IBXX[[,,U3b$9: yM B0r   c           
          t        j                  dt        j                  ddd      d t        j                  ddd      gi      }|j                  j                  j                  d      |d<   t        ||        y )Ntesti  r   r}   r   r   rL   )rh   ri   	Timestampr   r   r   rD   r   s     r   test_timestamp_with_nullsr     sf    	vT1a 8 $ "T1a 8 : ; 
<B GGJJ**51ByMB0r   znot supported)reasonr5   c                      t        j                  dt        j                  d      d t        j                  d      gi      } t        | d       y )Nr   1 day3 dayr   rL   rh   ri   	TimedeltarD   r@   s    r   test_timedelta_with_nulls_v1r     sD     
vW 5 $ "W 5 7 8 
9B B*r   c                      t        j                  dt        j                  d      d t        j                  d      gi      } t        | d       y )Nr   r   r   r   rL   r   r   s    r   test_timedelta_with_nullsr     sB    	vW 5 $ "W 5 7 8 
9B B*r   c                     t        j                  dt        j                  g d      i      }|j                  j                  j                  d      |d<   t        ||        y )Nr   )l    ^cQ)! Nl   6"Ir   r   rL   )rh   ri   DatetimeIndexr   r   r   rD   r   s     r   (test_out_of_float64_timestamp_with_nullsr     sR    		!! #< = 	>
?B GGJJ**51ByMB0r   c                     t        j                  g dg dd      }|}| dk(  r|j                  t              }t	        |||        y )Nr   r   r}      )TFTF)r   r   r   r   rL   )rh   ri   renamerV   rD   r   r@   rA   s      r   test_non_string_columnsr     sB    	,46 
7BH!|99S9)B':r   zunicode filenames not supported)r   c                     dj                  d      }t        j                  dg di      }t        |t	        |      |        y )Ns   Besa_Kavajë.featherzutf-8r   r   r   )r1   r   )decoderh   ri   rD   r   )r   r   r@   s      r   test_unicode_filenamer    s;    
 *11':D	ul+	,BB[%=$+-r   c                 r    t        j                  g dg dg dd      }|ddg   }t        ||| ddg       y )Nr   )rS            )r   r}   rS   r  )r   boowoor  r  )r   rB   r   r   s      r   test_read_columnsr    sC    	 
B
 5%.!HB'%*EN4r   c                 b   t               }t        j                  |       d}t        j                  j                  d       t        j                  j                  dd|      }t        j                  d|i      }t        ||       t        j                  d|d|dz   i      }t        ||       y )	NrR   r   rz   rp   ints	more_intsr   )r1   )r   r+   r=   rW   rX   r   rs   r$   rH   r   rI   )r   r1   r\   rm   rH   s        r   test_overwritten_filer  $  s    =DdJIINN1YYq":6FHHff%&E%HHk6!JM#:;<E5t,r   c                 ,   t        j                         }t        j                  t	        j
                  d      j                  dd      g d      j                         }t        |||        |j                  d       t        |      }t        ||       y )N   r   r}   abcr   rL   r   )ioBytesIOrh   ri   rW   arangereshapecopyr   seekr   r   )r   bufr@   rC   s       r   test_filelike_objectsr  5  sl    
**,C 
biim++Aq1-
//3tv "c7+HHQK#Fvr"r   zignore:Sparse:FutureWarningz(ignore:DataFrame.to_sparse:FutureWarningc                    t         j                  j                  j                  st	        j
                  d       g dg dd}t        j                  |      j                  d      }|j                         }t        |||        y )Nz2version of pandas does not support SparseDataFramer   r   r   )r   r   r   r   r   )
fill_valuerL   )r$   pandas_compat_pandas_api
has_sparser'   r(   rh   ri   	to_sparseto_denserD   )r   r`   r@   rA   s       r   test_sparse_dataframer#  D  sf     ''22HID	d		%	%	%	3B{{}HB':r   c                      t        j                  t        j                  d      j	                  dd      t        d            j                         } t        | t               y )Nr  r   r}   aaar   )	rh   ri   rW   r  r  r   r  rO   
ValueErrorr   s    r   test_duplicate_columns_pandasr'  R  sD    
 
biim++Aq1"5k
++/46 2z*r   c                      t        j                  g dg dg dgg d      } t        |        t        | t        d       y )Nr   r   rS   r  r  r  	   )r  r  r  r   r   rL   )r$   rH   rI   rO   r&  )rH   s    r   test_duplicate_columnsr,  \  s-    HHiI6oNE5!5*a8r   c                       G d d      } t        j                  d |         |        gi      }t        |t               t        j                  dg di      }t        |t               y )Nc                       e Zd Zy)test_unsupported.<locals>.ANr   r   r   r   r   r/  i  r   r   r   r  )r  r   g       @)rh   ri   rO   r&  	TypeError)r   r@   s     r   test_unsupportedr1  c  sR      
sQS!#J'	(B2z* 
sM*	+B2y)r   c                     t        j                  dt        j                  d      i      } t	        j
                  |       }t        j                         }t        ||dd       |j                         }t        j                  j                  t	        j                  |            }|j                  dk(  sJ t        |j                  d            dk(  sJ y )Nr   r      r   	chunksizer   r   r   )rh   ri   rW   r  r$   rH   r  r  r   getvalueipc	open_fileBufferReadernum_record_batcheslen	get_batch)r@   rH   r  rC   ipc_files        r   test_v2_set_chunksizer>  t  s    	sBIIdO,	-BHHRLE
**,C%Q7\\^Fvv 78H&&!+++x!!!$%,,,r   c                  0   t        j                  dt        j                  d      i      } g d}|D ]  \  }}t	        | ||        t        j                         }t        j                  t        d      5  t        | |dd	       d d d        t        j                  t        d
      5  t        | |dd       d d d        t        j                  t        d      5  t        | |d       d d d        y # 1 sw Y   oxY w# 1 sw Y   HxY w# 1 sw Y   y xY w)Nr   r   ))r    N)r!   N)r!   r   )r!   r  )r"   r   )r"   rz   )r)   r9   z2Feather V1 files do not support compression optionmatchr!   r   )r)   r   z0Feather V1 files do not support chunksize optioni   r4  z"compression="snappy" not supportedsnappyrF   )rh   ri   rW   r  rD   r  r  r'   r5   r&  r   )r@   casesr)   r9   r  s        r   test_v2_compression_optionsrD    s    
 
sBIIdO,	-BE +0&&2C	E +0 **,C 
F
H 	b#5!<
H 
D
F 	b#q9
F 
zA
Cb#84
C 
C
H 
H
F 
F
C 
Cs$   6C4)D D4C= D	Dc                     t         j                  j                  d      st        j                  d       t        j
                  t        j                  dd      gdg      } t        j                         }t        | |       |j                         }t        j                         }t        | |d       |j                         }t        |      t        |      k  sJ y )	N	lz4_framez+LZ4 compression support is not built in C++r   i f0r   r    rF   )r$   r%   r&   r'   r(   rH   rW   repeatr  r  r   r6  r;  )tr  default_resultuncompressed_results       r   test_v2_lz4_default_compressionrL    s     88  -AB 	"))Av&'v6A
**,C!S\\^N
**,C!Sn5,,.~%8!9999r   c                  
   t        j                  t        j                  g dg d g      gdg      } t        j                         }t        j                  t        d      5  t        | |d       d d d        y # 1 sw Y   y xY w)Nr   rG  r   z[Unsupported Feather V1 type: list<item: int64>. Use V2 format to serialize all Arrow types.r@  r   rL   )	r$   rH   r   r  r  r'   r5   r0  r   )rH   r  s     r   test_v1_unsupported_typesrN    sh    HHbhh	2t456tfEE
**,C	yL
N 	eS!,	
N 
N 
Ns   !A99Bc                 r    t        j                  dt        j                  d      i      }t	        ||        y )Nr   i rL   )rh   ri   rW   r  rD   r   s     r   test_large_dataframerP    s*     
sBIIi01	2BB0r   c                     dgddz  gdz  dz  z   } t        j                  d| i      }t        j                         }t	        ||d       t        t        j                  |j                                     }t        ||       t        j                  t        d      5  t	        |t        j                         d	       d d d        y # 1 sw Y   y xY w)
N   xi   r   i   byte_colrL   zp'byte_col' exceeds 2GB maximum capacity of a Feather binary column. This restriction may be lifted in the futurer@  r   )rh   ri   r  r  r   r   r$   r9  r6  r   r'   r5   r&  )rm   r@   r  rC   s       r   !test_chunked_binary_error_messagerT    s     V	
 F 
z6*	+B **,C"c1%"//#,,.9:Fvr"	z *5 
6 	b"**,2
6 
6 
6s   !CCc                     t        j                  t        j                  g d      gdg      }t        | dz        }t	        ||       y )Nr   rG  r   data.feather)r$   rH   r   rV   rI   )tempdirr   rH   r1   s       r   test_feather_without_pandasrX    s9    HHbhhy)*4&9Ew'(D5$'r   c                 ,   t        j                  t        j                  d      j	                  dd      g d      }t        |ddg|ddg   |        t        |d	d
g|ddg   |        t        |ddg|ddg   |        t        |dd	g|ddg   |        y )Nr  r   r}   r  r   r  r  )rB   rA   r   r   r   r  r   )rh   ri   rW   r  r  rD   r   s     r   test_read_column_selectionrZ    s     
biim++Aq1?	KB 
S#JS#JJ
QFRc
^WF 
S#JS#JJ
QFRc
^WFr   c                    t        j                  g dg dg dgg d      }t        | dz        }t        |||       t        j                  g dg dg dgg d      }g dg d	fD ]"  }t	        ||
      }|j                  |      r"J  y )Nr   r)  r*  r  r   rV  rL   r  r  r  )r   r   r   r   )r$   rH   rV   r   r   rG   )rW  r   rH   r1   rA   col_selectionrC   s          r   %test_read_column_duplicated_selectionr^    s{    HHiI6oNEw'(D%w/xxIy9-/H)95D-8}}X&&& 6r   c                 z   t        j                  g dg dg dgg d      }t        | dz        }t        ||d       t	        |      }|j                  |      sJ t	        |d	dg
      }|j                  ddgk(  sJ t        j                  t              5  t	        |ddg
       d d d        y # 1 sw Y   y xY w)Nr   r)  r*  r\  r   rV  r   rL   r   r   r  r  )
r$   rH   rV   r   r   rG   column_namesr'   r5   r&  )rW  rH   r1   rC   s       r   #test_read_column_duplicated_in_filera    s    HHiI6oNEw'(D%q) F== q!f-F3*,,, 
z	"4#s, 
#	"	"s   B11B:c                    t        j                  dt         j                  j                  g dg dgddg      i      }t	        ||        t        j                  dt        j
                  dd	gd
dgg      i      }t	        ||        t        j                  dt        j
                  dd	gd
dggddgd gg      i      }t	        ||        y )Ncolr  r   f1f2r   rF   r   r   r}   r   rS   r  )r$   rH   StructArrayru   rI   r   )r)   rH   s     r   test_nested_typesrg  $  s    HHeR^^77	ItTl 8 4 5 6E5k:HHeRXX1v1v&6789E5k:HHeRXXAA'71a&$&HIJKE5k:r   )r    r!   r"   c                     t        | |       y )NrF   )rI   )rH   r)   s     r   test_roundtripri  1  s     5k:r   c                     t        j                  dt        d      i      }t        | dz        }|j	                  |      sJ y )Nr  rS   z)v0.17.0.version.2-compression.lz4.feather)r$   rH   rU   r   rG   )r   rA   rC   s      r   Atest_feather_v017_experimental_compression_backward_compatibilityrk  7  s<     xxeAh(H"MMNF=="""r   c                     t        j                  dg dig d      }| dk(  r'|j                  d      j                  t              }n|}t        ||| 	       y )
Nr  r   r  )ra   r   T)dropr   rL   )rh   ri   reset_indexr   rV   rD   r   s      r   test_preserve_index_pandasro  H  sM    	sI&o	>B!|>>t>,33C3@B':r   c                 4   ddl m } t        j                  d|j                  d      |j                  d      gi      }t	        || dz         |j                  d      }|j                  d      }t        | dz  d      }||d   d   k(  sJ ||d   d	   k(  sJ y )
Nr   )datetimedatez
1654-01-01z
1920-01-01ztest_resolution.featherT)timestamp_as_objectr   )rq  rh   ri   fromisoformatr   r   )rW  rq  r@   
expected_0
expected_1rC   s         r   0test_feather_datetime_resolution_arrow_to_pandasrw  T  s    
 "	v|,|, 0  
B "g 99:''5J''5J'$==.24F ********r   )feather_)NNNFNNN)NN)Nr   )hr  r.   r   r   r'   
hypothesishhypothesis.strategies
strategiesstnumpyrW   ImportErrorpyarrowr$   pyarrow.tests.strategiestestspastpyarrow.featherr   r   r   r   pandas.testingr   pandasrh   pyarrow.pandas_compatfixturer   r   r   r)   r+   r,   r2   markr7   rD   rI   rO   rc   rn   rx   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   xfailr0  r   r   r   r   skipifr1   supports_unicode_filenamesr  r  r  r  filterwarningsr#  r'  r,  r1  r>  r!   rB  r"   rD  rL  rN  slowrP  large_memoryrT  rX  rZ  r^  ra  rg  given
all_tablessampled_fromri  rk  ro  rw  r   r   r   <module>r     s4  $ 
 	 
    "  ' '- -	1 
 h$  $* h1v. / h'LM N 

 * *
 596;6:.2)2
   . 
1 
1 2 2.    2 1 14 " "& 1 1 1 16 1 1 1 1$
& " " $ $. ; ;0 1 1
 1 1
 1 1 C C 1 1 ; ; 1 1 1 1 /)<+ = + + + 1 1 ; ; :::<  >-> - 	4 	4 - -  # # 9:FG; H ; ; + +9 * *  - - "5    "5J : :(- 1  1
 3  3,( F F"
'-&
; /"//*IJK; L ; # #  ; ; + +s  	B  		s"   [ [ [[[[