
    z-Phb                        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n# e$ r dZY nw xY w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n# e$ r Y nw xY w ej        d          d             ZdNdZ ej        dd	d
g          d             Z ej        dg d          d             Z da!d Z"d Z#ej$        j        d             Z%	 	 	 	 dOdZ&dPdZ'dQdZ(ej$        j
        d             Z)ej$        j        d             Z*ej$        j        d             Z+ej$        j        d             Z,ej$        j        d             Z-ej$        j        d             Z.ej$        j        d             Z/ej$        j        d             Z0ej$        j        d             Z1ej$        j        d             Z2d  Z3ej$        j
        d!             Z4ej$        j        d"             Z5ej$        j        d#             Z6ej$        j        d$             Z7ej$        j        d%             Z8ej$        j        d&             Z9ej$        j        d'             Z:ej$        j        d(             Z;ej$        j        d)             Z<ej$        j        d*             Z=ej$        j        d+             Z>ej$        j        ej$        ?                    d,e@-          d.                         ZAej$        j        d/             ZBej$        j        d0             ZCej$        j        d1             ZDej$        j        ej$        E                    ejF        jG         d23          d4                         ZHej$        j        d5             ZIej$        j
        d6             ZJej$        j        d7             ZKej$        j        ej$        L                    d8          ej$        L                    d9          d:                                     ZMej$        j        d;             ZNd< ZOej$        j        d=             ZPej$        j        d>             ZQej$        j        ej$        jR        ej$        jS        ej$        jT        d?                                                 ZUej$        j
        d@             ZVdA ZWej$        jX        ej$        j        dB                         ZYej$        jZ        ej$        j        dC                         Z[dD Z\ej$        j        dE             Z]dF Z^dG Z_dH Z`ej$        j
         eja        ejb         e	jc        g dI                    dJ                         Zdej$        jR        dK             Zeej$        j        dL             Zfej$        j        dM             ZgdS )R    N)read_featherwrite_feather
read_tableFeatherDataset)assert_frame_equalmodule)scopec                     | dz  S )Nfeather )base_datadirs    Z/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pyarrow/tests/test_feather.pydatadirr   ,   s    )##    feather_c                 ,    t          j        |           S )Nprefix)tempfilemktempr   s    r   random_pathr   1   s    ?&))))r         )r	   paramsc              #      K   | j         V  d S N)paramrequests    r   versionr    5   s      
-r   )Nuncompressedlz4zstdc              #      K   | j         dv r@t          j                            | j                   st	          j        | j          d           | j         V  d S )N)r"   r#   z is not available)r   paCodecis_availablepytestskipr   s    r   compressionr*   :   s^      }''0E0EM1 1'w}777888
-r   c                 
    g a d S r   )
TEST_FILES)r   s    r   setup_moduler-   E   s    JJJr   c                 n    t           D ],}	 t          j        |           # t          j        $ r Y )w xY wd S r   )r,   osremoveerror)r   paths     r   teardown_moduler3   J   sQ      	IdOOOOx 	 	 	D	 s    22c                      t          j        t          j                  5  t	          d           d d d            d S # 1 swxY w Y   d S )Ntest_invalid_file)r(   raisesr%   ArrowIOErrorr   r   r   r   test_file_not_existr8   R   s    	r	'	' * *()))* * * * * * * * * * * * * * * * * *s   <A A Fc                 2   |t                      }|d}t                              |           t          | ||||           t          j                            |          st          d          t          |||          }|| }t          ||           d S )Nr   )r*   compression_levelr    file not writtenuse_threads)
r   r,   appendr   r/   r2   exists	Exceptionr   r   )	dfexpectedr2   columnsr=   r    r*   r:   results	            r   _check_pandas_roundtriprE   X   s     |}}d"d$5wH H H H 7>>$ ,*+++$[AAAFvx(((((r   c                 &   |t                      }t                              |           t          | ||           t          j                            |          st          d          t          |          }|	                    |           sJ d S )Nr*   r;   )
r   r,   r>   r   r/   r2   r?   r@   r   equals)tabler2   r*   rD   s       r   _check_arrow_roundtriprJ   q   s    |}}d%;77777>>$ ,*+++F==r   c                      t                      t                                          fd}t          j        ||           d S )Nc                  ,    t                      d S )Nr    )r   )rA   r2   r    s   r   fz!_assert_error_on_write.<locals>.f   s    b$000000r   )r   r,   r>   r(   r6   )rA   excr2   r    rN   s   ` `` r   _assert_error_on_writerP   ~   sf     |}}d1 1 1 1 1 1 1 M#qr   c                    dd}d t          |          D             }fdt          d                   D             }t          j        |          }t                              |           t          |          D ]J\  }}|d         |z  z  |dz   d         |z  z  f}t          ||d         |d                  ||            Kt          |                                          }|	                    |          sJ d S )Nd   rS      c                 *    g | ]}t                      S r   )r   .0is     r   
<listcomp>z test_dataset.<locals>.<listcomp>   s    555q[]]555r   c                 |    i | ]8}d t          |          z   t          j                            d                   9S )col_r   )strnprandomrandn)rW   rX   
num_valuess     r   
<dictcomp>z test_dataset.<locals>.<dictcomp>   sG        	QA77  r   r   r   rM   )
ranger%   rI   r,   extend	enumerater   r   r   rH   )	r    	num_filespathsdatarI   indexr2   rowsr`   s	           @r   test_datasetrj      s,   JI55E)$4$4555E   z!}%%  D HTNNEe '' F FtZ]i/0QY:a=I56

 	eDGT!W,-tWEEEEE%  ++--D;;ur   c                     i }ddg}d}|D ]9}t           j                            |          }|                    |          ||<   :t	          j        |          }t          ||            d S )Nf4f8rS   rM   )r]   r^   r_   astypepd	DataFramerE   r    rg   numpy_dtypesr`   dtypevaluesrA   s          r   test_float_no_nullsru      sv    D$<LJ + +,,mmE**U	d		BB000000r   c                 6   d}t                      }t                              |           t          j                            dd|          }d t          d          D             }t          j        	                    ||          }t          |||            t          |          }|                    |          sJ t          |d          }|                    |          sJ t          |d          }t          |                                |           d S )	NrR   r   rS   sizec                 2    g | ]}d t          |          z   S r[   r\   rV   s     r   rY   z#test_read_table.<locals>.<listcomp>   s"    3331vA333r   rM   F)
memory_map)r   r,   r>   r]   r^   randintrb   r%   Tablefrom_arraysr   r   rH   r   r   	to_pandasr    r`   r2   rt   rC   rI   rD   s          r   test_read_tabler      s   J==DdYq#J77F33c

333GH  11E%w////F== ///F==$5111Fu((&11111r   c                 L   d}t                      }t                              |           t          j                            dd|          }d t          d          D             }t          j        	                    ||          }t          |||            t          |          }t          |                                |           t          |d          }t          |                                |           t          |d          }|                    |          sJ d S )	N)
   r   r   r   rw   c                 2    g | ]}d t          |          z   S rz   r{   rV   s     r   rY   z$test_use_threads.<locals>.<listcomp>   s"    2221vA222r   rM   Fr<   )r   r,   r>   r]   r^   r}   rb   r%   r~   r   r   r   r   r   r   rH   r   s          r   test_use_threadsr      s    J==DdYq":66F22b		222GH  11E%w////$Fu((&111 $E222Fu((&111 %000F==r   c                 R   d}t                      }t                              |           t          j                            dd|          dk     }ddg}g }g }|D ]}t          j                            |                              |          }|                    t          j	        ||                     t          j
        ||<   |                    |           t          j        ||	          }	t          |	           |	                                }
t          |
| 
           d S )NrS   r   r   rw      rl   rm   masknamesrM   )r   r,   r>   r]   r^   r}   r_   rn   r%   arraynanrI   rJ   r   rE   )r    r`   r2   	null_maskdtypesexpected_colsarraysnamert   rI   rA   s              r   test_float_nullsr      s   J==Dd	!!!Rj!99A=ID\FMF % %,,33D99bhvI666777FyV$$$$HV6***E5!!!			BB000000r   c                 |   i g }}g d}d}|D ]d}t           j                            dd|          }|                    |          ||<   |                    |                    |                     et          j        |          }t          ||            t          j	        ||          }t          |           d S )Ni1i2i4i8u1u2u4u8rS   r   rw   rM   r   )r]   r^   r}   rn   r>   ro   rp   rE   r%   rI   rJ   )	r    rg   arrrr   r`   rs   rt   rA   rI   s	            r   test_integer_no_nullsr      s    B#D, , ,LJ ) )""1c
";;mmE**U

6==''((((	d		BB0000HS---E5!!!!!r   c                     i }dg}d}|D ]<}t           j                            dd|          }|                    |          ||<   =t	          j        |          }t          ||            d S )NlonglongrS   r   rw   rM   )r]   r^   r}   rn   ro   rp   rE   rq   s          r   test_platform_numpy_integersr     s}    D<LJ + +""1c
";;mmE**U	d		BB000000r   c                 \   t                      }t                              |           g d}d}g }t          j                            dd|          dk     }g }|D ]}t          j                            dd|          }|                    t          j        ||                     |                    d          }	t          j	        |	|<   |                    |	           t          j
        ||	          }
t          |
           |
                                }t          || 
           d S )Nr   rS   r   r   rw   r   r   rm   r   rM   )r   r,   r>   r]   r^   r}   r%   r   rn   r   rI   rJ   r   rE   )r    r2   
int_dtypesr`   r   r   r   r   rt   rB   rI   rA   s               r   test_integer_with_nullsr   #  s&    ==DdAAAJJF	!!!Rj!99A=IM ' '""1c
";;bhvI666777==&& fX&&&&HV:...E5!!!			BB000000r   c                     d}t           j                            d           t          j        dt           j                            |          dk    i          }t          ||            d S )NrS   r   boolsrM   )r]   r^   seedro   rp   r_   rE   )r    r`   rA   s      r   test_boolean_no_nullsr   ?  s[    JINN1	w	
 ; ;a ?@	A	ABB000000r   c                    t                      }t                              |           d}t          j                            d           t          j                            dd|          dk     }t          j                            dd|          dk     }t          j        t          j	        ||          gdg	          }t          |           |                                }t          || 
           d S )NrS   r   r   rw   r   rT   r   r   r   rM   )r   r,   r>   r]   r^   r   r}   r%   rI   r   rJ   r   rE   )r    r2   r`   r   rt   rI   rA   s          r   test_boolean_nullsr   I  s     ==DdJINN19Q44q8DYq":66:FHbhvD11127)DDDE5!!!			BB000000r   c                 f   t                      }t                              |           t          dd          D ]w}t          j                            t	          j        d gt          t          |                    z   t	          j	                              gdg          }t          |           xd S )N      )typer   r   )r   r,   r>   rb   r%   r~   r   r   listfloat64rJ   )r    r2   rX   rI   s       r   test_buffer_bounds_errorr   \  s    ==Dd2s^^ & &$$XtftE!HH~~-BJLLAAAB' % 
 
 	u%%%%& &r   c                     d}t           j                            t          j        g d|z  t
                    gdg          }t          |           d S )NrS   )FNT)rs   r   r   )r%   r~   r   r]   r   objectrJ   )r    repeatsrI   s      r   test_boolean_object_nullsr   i  s_    GH  	%%%/v	>	>	>?g !  E 5!!!!!r   c                    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          |||            n# t          $ r Y nw xY wt          j                            |          rJ d S )Nwin32z/Windows hangs on to file handle for some reasonc                       e Zd ZdS )6test_delete_partial_file_on_error.<locals>.CustomClassN__name__
__module____qualname__r   r   r   CustomClassr   x          r   r   rT      foobar)numbersstringsr   r   rC   rM   )sysplatformr(   r)   ro   rp   rb   r]   r   r   r   r@   r/   r2   r?   )r    r   rA   r2   s       r   !test_delete_partial_file_on_errorr   s  s    
|wEFFF        
Qxxe[[]]BFC	E 	E I&	
( 
( 
(B ==Db$00000    w~~d#######s    B 
B B 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	          |||            d S )
N  r   r   quxr   )r   Ns   bars   quxNrM   fooNr   r   Nr   )r]   r   ro   rp   rE   )r    r   rt   rA   	ex_valuesrB   s         r   test_stringsr     s+   G dE5"&1F	y&7"23	4	4B444I|Y	G(;<==HB':::: /..F	y&7"23	4	4B|Y(89::HB'::::T5%0F	y&7"23	4	4B111I|Y	G(;<==HB'::::::r   c                 \    t          j        ddgdz  i          }t          ||            d S )Nr    r   rM   ro   rp   rE   r    rA   s     r   test_empty_stringsr     s5    	y2$),	-	-BB000000r   c                     t          j        dd gdz  i          }| dk    r9t          j        j                                        r|                    d          }n|}t          || |           d S )Nall_noner   r   r\   )r    rB   )ro   rp   r%   pandas_compat_pandas_apiuses_string_dtypern   rE   r    rA   rB   s      r   test_all_noner     sn    	zD6B;/	0	0B!||(4FFHH|99U##B(CCCCCCr   c                     t          j        ddd          }|                    |j                            d                    }t          ||            d S )Nr   r   r   )NNNABcategory)r   rM   )ro   rp   assignr   rn   rE   r   s     r   test_all_null_categoryr     sV     
I,>??	@	@B	RT[[,,	-	-BB000000r   c                     d t          d          D             }t          j        |          }t          |d|            d S )Nc                 B    i | ]}d                      |          dgdz  S )zc{}r   r   )formatrV   s     r   ra   z+test_multithreaded_read.<locals>.<dictcomp>  s:     ! ! ! LLOObTBY ! ! !r   rS   T)r=   r    )rb   ro   rp   rE   )r    rg   rA   s      r   test_multithreaded_readr     sP    ! !3ZZ! ! !D	d		BBD'BBBBBBr   c                     t          j        dt           j        t           j        dz  dgdz            }t          j        d|i          }t          ||            d S )Nr   r   r   r   r   rM   )r]   r   r   ro   rp   rE   )r    rt   rA   s      r   test_nan_as_nullr     sV     Xubfbfqj%82=>>F	y&)	*	*BB000000r   c                    d}dd ddt           j        g}t          j        d||z  i          }|d                             d          |d<   g d}t          j        dt          j        ||z            i          }t          |||            d S )	Nr   r   r   r   r   r   r   rM   )r]   r   ro   rp   rn   CategoricalrE   )r    r   rt   rA   rB   s        r   test_categoryr     s    GT5%0F	y&7"23	4	4ByM((44ByM...F|Yv7G(H(HIJJHB'::::::r   c                     t          j        dt          j        dd          i          }|j        j                            d          j                            d          |d<   t          ||            d S )	Nnaivez
2016-03-28r   )periodsutczAmerica/Los_Angeleswith_tzrM   )ro   rp   
date_ranger   dttz_localize
tz_convertrE   r   s     r   test_timestampr     sn    	wlB G G GH	I	IBX[,,U33$9:: yM B000000r   c           
          t          j        dt          j        ddd          d t          j        ddd          gi          }|j        j                            d          |d<   t          ||            d S )Ntesti  r   r   r   r   rM   )ro   rp   	Timestampr   r   r   rE   r   s     r   test_timestamp_with_nullsr     sy    	vT1a 8 8 $ "T1a 8 8 : ; 
< 
<B GJ**511ByMB000000r   znot supported)reasonr6   c                      t          j        dt          j        d          d t          j        d          gi          } t          | d           d S )Nr   1 day3 dayr   rM   ro   rp   	TimedeltarE   rA   s    r   test_timedelta_with_nulls_v1r    sX     
vW 5 5 $ "W 5 5 7 8 
9 
9B B******r   c                      t          j        dt          j        d          d t          j        d          gi          } t          | d           d S )Nr   r   r   r   rM   r   r  s    r   test_timedelta_with_nullsr    sV    	vW 5 5 $ "W 5 5 7 8 
9 
9B B******r   c                     t          j        dt          j        g d          i          }|j        j                            d          |d<   t          ||            d S )Nr   )l    ^cQ)! Nl   6"Ir   r   rM   )ro   rp   DatetimeIndexr   r   r   rE   r   s     r   (test_out_of_float64_timestamp_with_nullsr    so    		! #< #< #< = = 	>
? 
?B GJ**511ByMB000000r   c                     t          j        g dg dd          }|}| dk    r|                    t                    }t	          |||            d S )Nr   r   r      )TFTF)r   r   r   r   rM   )ro   rp   renamer\   rE   r   s      r   test_non_string_columnsr    sh    	,,,4446 6 
7 
7BH!||99S9))B'::::::r   zunicode filenames not supported)r   c                     d                     d          }t          j        dg di          }t          |t	          |          |            d S )Ns   Besa_Kavajë.featherzutf-8r   r
  r   )r2   r    )decodero   rp   rE   r   )r    r   rA   s      r   test_unicode_filenamer    sb    
 *11'::D	ulll+	,	,BB[%=%=%=$+- - - - - -r   c                     t          j        g dg dg dd          }|ddg         }t          ||| ddg           d S )Nr
  )rT            )r   r   rT   r  )r   boowoor  r  )r    rC   r   r   s      r   test_read_columnsr    sp    	||||||  
 
B
 5%.!HB'%*EN4 4 4 4 4 4r   c                    t                      }t                              |           d}t          j                            d           t          j                            dd|          }t          j        d|i          }t          ||           t          j        d|d|dz           i          }t          ||           d S )	NrS   r   r   rw   ints	more_intsr   )r2   )r   r,   r>   r]   r^   r   r}   r%   rI   r   rJ   )r    r2   r`   rt   rI   s        r   test_overwritten_filer  (  s    ==DdJINN1Yq":66FHff%&&E%Hk6!JM/#:;<<E5t,,,,,,r   c                 X   t          j                    }t          j        t	          j        d                              dd          g d                                          }t          |||            |	                    d           t          |          }t          ||           d S )N   r  r   abcr   rM   r   )ioBytesIOro   rp   r]   arangereshapecopyr   seekr   r   )r    bufrA   rD   s       r   test_filelike_objectsr)  9  s    
*,,C 
bimm++Aq11-oo
/ 
/ 
//3tvv "c7++++HHQKKK#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        |                              d          }|	                                }t          |||            d S )Nz2version of pandas does not support SparseDataFramer   r   r   )r   r   r   r   r   )
fill_valuerM   )r%   r   r   
has_sparser(   r)   ro   rp   	to_sparseto_denserE   )r    rg   rA   rB   s       r   test_sparse_dataframer0  H  s     '2 JHIII D	d			%	%	%	3	3B{{}}HB'::::::r   c                      t          j        t          j        d                              dd          t          d                                                    } t          | t                     d S )Nr  r  r   aaar   )	ro   rp   r]   r$  r%  r   r&  rP   
ValueErrorr  s    r   test_duplicate_columns_pandasr4  V  s_    
 
bimm++Aq11"5kk
+ 
+ 
++/466 2z*****r   c                      t          j        g dg dg dgg d          } t          |            t          | t          d           d S )Nr   r  rT   r  r  r  	   )r  r  r   r   r   rM   )r%   rI   rJ   rP   r3  )rI   s    r   test_duplicate_columnsr9  `  sV    HiiiIII6oooNNNE5!!!5*a888888r   c                       G d d          } t          j        d |              |             gi          }t          |t                     t          j        dg di          }t          |t                     d S )Nc                       e Zd ZdS )test_unsupported.<locals>.ANr   r   r   r   r   r<  m  r   r   r   r  )r  r   g       @)ro   rp   rP   r3  	TypeError)r   rA   s     r   test_unsupportedr>  g  s            
sQQSS!!##J'	(	(B2z*** 
sMMM*	+	+B2y)))))r   c                     t          j        dt          j        d          i          } t	          j        |           }t          j                    }t          ||dd           |	                                }t          j
                            t	          j        |                    }|j        dk    sJ t          |                    d                    dk    sJ d S )Nr   r      r   	chunksizer    r  r   )ro   rp   r]   r$  r%   rI   r"  r#  r   getvalueipc	open_fileBufferReadernum_record_batcheslen	get_batch)rA   rI   r(  rD   ipc_files        r   test_v2_set_chunksizerK  x  s    	sBIdOO,	-	-BHRLLE
*,,C%Q7777\\^^Fv 7 788H&!++++x!!!$$%%,,,,,,r   c                  \   t          j        dt          j        d          i          } g d}|D ]\  }}t	          | ||           t          j                    }t          j        t          d          5  t          | |dd	           d d d            n# 1 swxY w Y   t          j        t          d
          5  t          | |dd           d d d            n# 1 swxY w Y   t          j        t          d          5  t          | |d           d d d            d S # 1 swxY w Y   d S )Nr   r   ))r!   N)r"   N)r"   r   )r"   r  )r#   r   )r#   r   )r*   r:   z2Feather V1 files do not support compression optionmatchr"   r   )r*   r    z0Feather V1 files do not support chunksize optioni   rA  z"compression="snappy" not supportedsnappyrG   )ro   rp   r]   r$  rE   r"  r#  r(   r6   r3  r   )rA   casesr*   r:   r(  s        r   test_v2_compression_optionsrQ    s9   
 
sBIdOO,	-	-B  E +0 E E&&2C	E 	E 	E 	E 	E *,,C 
F
H 
H 
H = = 	b#5!<<<<= = = = = = = = = = = = = = = 
D
F 
F 
F : : 	b#q9999: : : : : : : : : : : : : : : 
zA
C 
C 
C 5 5b#844445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s6   5BBB;CC"CD!!D%(D%c                     t           j                            d          st          j        d           t          j        t          j        dd          gdg          } t          j	                    }t          | |           |                                }t          j	                    }t          | |d           |                                }t          |          t          |          k     sJ d S )	N	lz4_framez+LZ4 compression support is not built in C++r   i f0r   r!   rG   )r%   r&   r'   r(   r)   rI   r]   repeatr"  r#  r   rC  rH  )tr(  default_resultuncompressed_results       r   test_v2_lz4_default_compressionrY    s     8  -- CABBB 	")Av&&'v666A
*,,C!S\\^^N
*,,C!Sn5555,,..~%8!9!999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            d S # 1 swxY w Y   d S )Nr   rT  r   z[Unsupported Feather V1 type: list<item: int64>. Use V2 format to serialize all Arrow types.rM  r   rM   )	r%   rI   r   r"  r#  r(   r6   r=  r   )rI   r(  s     r   test_v1_unsupported_typesr[    s    Hbh			2t4556tfEEEE
*,,C	yL
N 
N 
N - - 	eS!,,,,	- - - - - - - - - - - - - - - - - -s   A>>BBc                 x    t          j        dt          j        d          i          }t	          ||            d S )Nr   i rM   )ro   rp   r]   r$  rE   r   s     r   test_large_dataframer]    s;     
sBIi001	2	2BB000000r   c                     dgddz  gdz  dz  z   } t          j        d| i          }t          j                    }t	          ||d           t          t          j        |                                                    }t          ||           t          j        t          d          5  t	          |t          j                    d	           d d d            d S # 1 swxY w Y   d S )
N   xi   r   i   byte_colrM   zp'byte_col' exceeds 2GB maximum capacity of a Feather binary column. This restriction may be lifted in the futurerM  r   )ro   rp   r"  r#  r   r   r%   rF  rC  r   r(   r6   r3  )rt   rA   r(  rD   s       r   !test_chunked_binary_error_messagera    s3    V	
 F 
z6*	+	+B *,,C"c1%%%%"/#,,..99::Fvr"""	z *5 
6 
6 
6 3 3 	b"*,,22223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s   *$CC"Cc                     t          j        t          j        g d          gdg          }t          | dz            }t	          ||           d S )Nr   rT  r   data.feather)r%   rI   r   r\   rJ   )tempdirr    rI   r2   s       r   test_feather_without_pandasre    sQ    Hbhyyy))*4&999Ew'((D5$'''''r   c                 j   t          j        t          j        d                              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         |            d S )Nr  r  r   r  r   r  r!  )rC   rB   r    r   r   r   r   )ro   rp   r]   r$  r%  rE   r   s     r   test_read_column_selectionrg    s    
bimm++Aq11???	K	K	KB 
S#JS#JJ J J J
QFRc
^WF F F F 
S#JS#JJ J J J
QFRc
^WF F F F F Fr   c                 8   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	          ||
          }|                    |          sJ +d S )Nr   r6  r7  r  r   rc  rM   r  r   r  )r   r   r   r   )r%   rI   r\   r   r   rH   )rd  r    rI   r2   rB   col_selectionrD   s          r   %test_read_column_duplicated_selectionrk    s    HiiiIII6oooNNNEw'((D%w////xIIIyyy9-oo/ / /H)//9995 ' 'D-888}}X&&&&&&' 'r   c                    t          j        g dg dg dgg d          }t          | dz            }t          ||d           t	          |          }|                    |          sJ t	          |d	dg
          }|j        ddgk    sJ t          j        t                    5  t	          |ddg
           d d d            d S # 1 swxY w Y   d S )Nr   r6  r7  ri  r   rc  r   rM   r   r   r  r   )
r%   rI   r\   r   r   rH   column_namesr(   r6   r3  )rd  rI   r2   rD   s       r   #test_read_column_duplicated_in_filern    s8   HiiiIII6oooNNNEw'((D%q)))) F== q!f---F3*,,,, 
z	"	" - -4#s,,,,- - - - - - - - - - - - - - - - - -s   'CCCc                    t          j        dt           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	          ||            d S )Ncolr+  r   f1f2r   rG   r   r   r   r  rT   r  )r%   rI   StructArrayr   rJ   r   )r*   rI   s     r   test_nested_typesrt  (  s    HeR^77	IIItTl 8 4 4 5 6 6E5k::::HeRX1v1v&677899E5k::::HeRXAA'71a&$&HIIJKKE5k::::::r   )r!   r"   r#   c                 (    t          | |           d S )NrG   )rJ   )rI   r*   s     r   test_roundtriprv  5  s     5k::::::r   c                     t          j        dt          d          i          }t          | dz            }|                    |          sJ d S )Nr  rT   z)v0.17.0.version.2-compression.lz4.feather)r%   rI   rb   r   rH   )r   rB   rD   s      r   Atest_feather_v017_experimental_compression_backward_compatibilityrx  ;  sN     xeAhh((H"MMNNF=="""""""r   c                     t          j        dg dig d          }| dk    r0|                    d                              t                    }n|}t          ||| 	           d S )
Nr  r   r  )rh   r   T)dropr   rM   )ro   rp   reset_indexr  r\   rE   r   s      r   test_preserve_index_pandasr|  L  sr    	sIII&ooo	>	>	>B!||>>t>,,33C3@@B'::::::r   c                    ddl m } t          j        d|                    d          |                    d          gi          }t	          || dz             |                    d          }|                    d          }t          | dz  d          }||d         d         k    sJ ||d         d	         k    sJ d S )
Nr   )datetimedatez
1654-01-01z
1920-01-01ztest_resolution.featherT)timestamp_as_objectr   )r~  ro   rp   fromisoformatr   r   )rd  r~  rA   
expected_0
expected_1rD   s         r   0test_feather_datetime_resolution_arrow_to_pandasr  X  s    
 "!!!!!	v|,,|,, 0  
 
B "g 99:::''55J''55J'$==.24 4 4F ************r   )r   )NNNFNNN)NN)Nr   )hr"  r/   r   r   r(   
hypothesishhypothesis.strategies
strategiesstnumpyr]   ImportErrorpyarrowr%   pyarrow.tests.strategiestestspastpyarrow.featherr   r   r   r   pandas.testingr   pandasro   pyarrow.pandas_compatfixturer   r   r    r*   r,   r-   r3   markr8   rE   rJ   rP   rj   ru   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   xfailr=  r  r  r  r  skipifr2   supports_unicode_filenamesr  r  r  r)  filterwarningsr0  r4  r9  r>  rK  r"   rO  r#   rQ  rY  r[  slowr]  large_memoryra  re  rg  rk  rn  rt  given
all_tablessampled_fromrv  rx  r|  r  r   r   r   <module>r     sb	  $ 
			 				 



       " " " " " "   	BBB     ' ' ' ' ' ' ' ' '- - - - - - - - - - - -	111111      	 	 	D	 h$ $  $* * * * h1v...  /. h'L'L'LMMM  NM 
  
   * * *
 596;6:.2) ) ) )2
  
  
  
       . 
1 
1 
1 2 2 2.      2 1 1 14 " " "& 1 1 1 1 1 16 1 1 1 1 1 1$
& 
& 
& " " " $ $ $. ; ; ;0 1 1 1
 D D D 1 1 1 C C C 1 1 1 ; ; ; 1 1 1 1 1 1 /)<<+ + =< + + + + 1 1 1 ; ; ; ::<  > >- -> > - 	4 	4 	4 - - -  # # # 9::FGG; ; HG ;: ; + + +9 9 9 * * *  - - - "5 "5    "5J : : :(- - - 1 1  1
 3 3  3,( ( ( F F F"
' 
' 
'- - -&
; 
; 
; /"/*I*I*IJJKK; ; LK ; # # #  ; ; ; + + + + +s   % //A A#"A#