o
    Zhu3                 &   @   sB  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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mZ d dlm  mZ e
je fe
je fe
je fe
je fe
je fe
je fe
je fe
je fgZee \Z Z!G dd dZ"G dd dZ#G dd	 d	Z$d
d Z%dd Z&dd Z'dd Z(dd Z)dd Z*dd Z+dd Z,dd Z-G dd dZ.dd Z/d d! Z0d"d# Z1d$d% Z2d&d' Z3d(d) Z4d*d+ Z5e0e1e4gZ6e5e3ge6 Z7e2ge7 Z8ej9:d,e7Z;ej9:d,e6Z<ej9:d,e8Z=e=d-d. Z>e;d/d0 Z?e<d1d2 Z@e<d3d4 ZAe<d5d6 ZBe=d7d8 ZCe<d9d: ZDe<d;d< ZEe=d=d> ZFe<d?d@ ZGe<dAdB ZHe<dCdD ZIe<ej9:dEedFdG ZJe=ej9:dEedHdI ZKe<ej9:dEedJdK ZLe<dLdM ZMe<ej9:dEedNdO ZNe<ej9:dEedPdQ ZOe<dRdS ZPe=dTdU ZQdVdW ZRej9jSdXeTdYdZd[ ZUej9:d\g d]d^d_ ZVej9:d\g d]d`da ZWe=ej9:dbe!dcdd ZXdedf ZYdgdh ZZdidj Z[dkdl Z\dmdn Z]dodp Z^dqdr Z_e<ej9:dse
j`e` fe
jaea fe
jbeb fgej9:dtdudvgdwdx Zcej9:dtdudvgej9:dye
jdeegdzd{ Zfd|d} Zgej9jSd~ehdYdd Ziej9:ddudvgej fddgek fg de fg dea fejlm dgen fdejlm geo fepddddgeqdfdepdddgerdfejs dgetdfejuddgevdfddgew fg dewdfg dex fg dey fg dez fdddddddge{de fde fgfgdd Z|ej9:dddgdgge}e fddgddgge}e dfdgddgge~e fgdd Zdd Zdd Zdd Zdd Zdd Zej9jej9:dex ez gdd Zej9jej9jej9:dex ez gdd Zej9jej9:dew ey gdd Zdd Zej9:dey ez gdd Zdd Zdd Zdd Zdd Zej9:den ddgfeo ddgfgdd Zdd Zej9:dejqddfejqddfejrddfejrddfgddÄ Zddń Zej9:dg dǢej9:dg dɢdd˄ Zej9:dg dǢdd̈́ Zddτ Zddф Zej9jddӄ ZddՄ Zddׄ ZG ddل dejlZG ddۄ dejZG dd݄ dejuZdd߄ Zej9jSej dddd Zej9jej9jejdkoGe  dddd Zej9:ddudvgdd Zej9:dg dɢdd Zej9:dg dɢdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ ZÐd%d& ZĐd'd( ZŐd)d* ZƐd+d, Zej9:d-e e e e e e e e ea eb g
d.d/ Zej9:d0e e e e gd1d2 Zɐd3d4 Zʐd5d6 Zej9:d7dejud8dfdejud8d9fdejud8d:fdejud;d:fgd<d= Zej9jd>d? Zeejϡd@dA Zej9jdBdC Zej9jdDdE Zej9jdFdG Zej9jej9jdHdI Zej9jej9:dJey dKfew dLfgdMdN Zej9jdOdP Zej9jej9jdQdR Ze=ej9:dSg dTeduedvdgej fg dededede ge fg dUeddede ge fddgededgek fg dVeؐdWeؐdXdgeb fdejlm gdeejlm gen fdejlm gdeejlm eo geo fepddddgeepddddgerdfejuddgeejuddgevdfdedYddgdeedYddgetdfeg dZgeeg dZgeڡ fddgededgey fddgededgew fddgedewdedewdgewdfg d[geg d[ge}e fddggeddgge}ey fg dejde d\ejde d\dge fddgejؐdWe d\dge fd]d^gejؐd]ewdd\ejؐd^ewdd\gewdfdgejdex d\gex fdgejdez d\gez fdgejdee ey d\gee ey fddgedee ey edee ey gee ey fdgejdee e d\gee e fd_gejؐd`dage{de fde fgd\ge{de fde fgfdbgejؐd`dcge{de fdey fgd\ge{de fdey fgfgddde Ze=dfdg ZdS (h      N)_pandas_api)utilc                   @      e Zd Zdd Zdd ZdS )StrangeIterablec                 C   
   || _ d S N)lst)selfr    r
   Y/var/www/html/lang_env/lib/python3.10/site-packages/pyarrow/tests/test_convert_builtin.py__init__3      
zStrangeIterable.__init__c                 C   s
   | j  S r   )r   __iter__r	   r
   r
   r   r   6   r   zStrangeIterable.__iter__N)__name__
__module____qualname__r   r   r
   r
   r
   r   r   2       r   c                   @   r   )MyIntc                 C   r   r   value)r	   r   r
   r
   r   r   ;   r   zMyInt.__init__c                 C   s   | j S r   r   r   r
   r
   r   __int__>   s   zMyInt.__int__N)r   r   r   r   r   r
   r
   r
   r   r   :   r   r   c                   @      e Zd Zdd ZdS )MyBrokenIntc                 C   s   dd  d S )N   r   r
   r   r
   r
   r   r   C   s   zMyBrokenInt.__int__N)r   r   r   r   r
   r
   r
   r   r   B       r   c                 C   s(   t j| sJ t| t|ksJ dS )zP
    Check a struct type is as expected, but not taking order into account.
    N)patypesZ	is_structset)tyexpectedr
   r
   r   check_struct_typeG   s   r!   c                  C   s.   t tg d} t d}| |sJ d S )N)r   r         )r   arrayr   equalsarr1arr2r
   r
   r   test_iterable_typesO   s   
r)   c                  C   sR   t tg } t| dksJ | jdksJ | jt  ksJ |  g ks'J d S Nr   )r   r$   r   len
null_counttypenull	to_pylistarrr
   r
   r   test_empty_iterableV   
   r2   c                  C   s8   t jttdt  dd} t d}| |sJ d S )Nr#   r-   sizer   r   r"   r   r$   iterrangeint64r%   r&   r
   r
   r   test_limited_iterator_types^      
r;   c                  C   8   t jttdt  dd} t d}| |sJ d S )Nr#   r"   r4   )r   r   r7   r&   r
   r
   r   #test_limited_iterator_size_overflowd   r<   r>   c                  C   r=   )Nr#   
   r4   r6   r7   r&   r
   r
   r   $test_limited_iterator_size_underflowj   r<   r@   c                  C   sV   t d} t ttd}|| sJ t jttdt  d}|| s)J d S )Nr6   r#   r-   )r   r$   r8   r9   r%   r:   r    r'   r
   r
   r   test_iterator_without_sizep   s
   
rC   c                  C   sX   t d} t jtddd}|| sJ t jtdt  dd}|| s*J d S )Nr6   r   r#   r5   r4   )r   r$   	itertoolscountr%   r:   rB   r
   r
   r   test_infinite_iteratory   s
   
rG   c                   C   s   t t tdd tdD  W d    n1 sw   Y  t t tjdd tdD dd W d    d S 1 s@w   Y  d S )Nc                 s       | ]}d d V  qdS r   r   Nr
   .0xr
   r
   r   	<genexpr>       z(test_failing_iterator.<locals>.<genexpr>r?   c                 s   rH   rI   r
   rJ   r
   r
   r   rM      rN   rD   )pytestraisesZeroDivisionErrorr   r$   r9   r
   r
   r
   r   test_failing_iterator   s   "rR   c                   @   r   )ObjectWithOnlyGetitemc                 C   s   dS )Nr#   r
   )r	   keyr
   r
   r   __getitem__      z!ObjectWithOnlyGetitem.__getitem__N)r   r   r   rU   r
   r
   r
   r   rS      r   rS   c                   C   s@   t jtdd tt  W d    d S 1 sw   Y  d S )Nzhas no len()match)rO   rP   	TypeErrorr   r$   rS   r
   r
   r
   r   test_object_with_getitem   s   "rZ   c                 C   s   | S r   r
   xsr
   r
   r   _as_list   rV   r]   c                 C      t | S r   )tupler[   r
   r
   r   	_as_tuple      r`   c                 C   s
   t | S r   )collectionsdequer[   r
   r
   r   	_as_deque   s   
rd   c                 C   s   dd t | D }| S )Nc                 S   s   i | ]\}}||qS r
   r
   )rK   kvr
   r
   r   
<dictcomp>       z#_as_dict_values.<locals>.<dictcomp>)	enumeratevalues)r\   dctr
   r
   r   _as_dict_values   s   rl   c                 C   s"   t jt| td}| |d d < |S )NZdtype)npemptyr+   object)r\   r1   r
   r
   r   _as_numpy_array   s   rq   c                 C   r^   r   )r   r[   r
   r
   r   _as_set   ra   rr   seqc                 C   s2   t | g d}t g d}||sJ d S Nr   r"   r#   r   r$   r%   rs   r'   r(   r
   r
   r   test_sequence_types   s   rx   c                 C   s6   t | g dg}t g dg}||sJ d S rt   rv   rw   r
   r
   r   test_nested_sequence_types   s   ry   c                 C   Z   g d}t | |}t|dksJ |jdksJ |jt  ks#J | |ks+J d S )NTNFN   r"   )r   r$   r+   r,   r-   bool_r/   rs   r    r1   r
   r
   r   test_sequence_boolean      r   c                 C   sP   t dd t dd g}t| |}|jt ksJ | g dks&J d S )NTFr{   )rn   r}   r   r$   r-   r/   r~   r
   r
   r   test_sequence_numpy_boolean   s   r   c                 C   sX   t ddg}t| |d d |d ddg}|jt ks J | g dks*J d S )NTFr   r   )TNFTF)rn   r$   r   r-   r}   r/   )rs   rj   r1   r
   r
   r   &test_sequence_mixed_numpy_python_bools   s    r   c                 C   sR   t | g }t|dksJ |jdksJ |jt  ksJ | g ks'J d S r*   r   r$   r+   r,   r-   r.   r/   rs   r1   r
   r
   r   test_empty_list   s
   r   c                 C   s   g ddgd g}t | |}t|dksJ |jdksJ |jt t  ks)J | |ks1J t j| |t t  d}t|dksGJ |jdksNJ |jt t  ksZJ | |ksbJ d S Nr   r"   r#   rA   )	r   r$   r+   r,   r-   list_r:   r/   int32rs   datar1   r
   r
   r   test_nested_lists   s   r   c                 C   st   g ddgd g}t j| |t t  d}t|dksJ |jdks$J |jt t  ks0J | |ks8J d S )Nr   r"   rA   r#   )r   r$   
large_listint16r+   r,   r-   r/   r   r
   r
   r   test_nested_large_lists  s   r   c                 C   s   t t tj| g ddgdgtt d W d    n1 s#w   Y  t t tj| g ddgdgtt d W d    d S 1 sLw   Y  d S r   )rO   rP   rY   r   r$   r   r:   r   )rs   r
   r
   r   test_list_with_non_list  s   (("r   c                 C   s   t | tjg tjdtjddgtjdd g}t|dks J |jdks'J |jt t  ks3J | g ddgd gks@J d S )Nrm   r   r"   r#   )	r   r$   rn   r:   r+   r,   r-   r   r/   r   r
   r
   r   test_nested_arrays  s   r   c              	   C   s  ddgdd gd g}t j| |t t  dd}t|dks J |jdks'J |jt t  dks4J | |ks<J tjddgddtjddgddd g}t j| |t t  dd}t|dksfJ |jdksmJ |jt t  dkszJ | ddgddgd gksJ g ddd gd g}g d	gtjg dddgfD ](}t	j
td
d t j| |t t  dd W d    n1 sw   Y  qg g d g}t j| |t t  dd}t|dksJ |jdksJ |jt t  dksJ | g g d gksJ d S )Nr   r"   r#   rA   r:   rm   r|   )r   r"   r|   ru   z&Length of item not correct: expected 2rW   r   )r   r$   r   r:   r+   r,   r-   r/   rn   rO   rP   
ValueErrorr   r
   r
   r   test_nested_fixed_size_list$  s8    " 
r   c                 C   sZ   t | d d g}t|dksJ |jdksJ |jt  ks!J | d d gks+J d S )Nr"   r   r   r
   r
   r   test_sequence_all_noneG  s
   r   np_scalar_pa_typec                 C   sz   |\}}dd dd t |jt |jg}tj| ||d}t|dks%J |jdks,J |j|ks3J |	 |ks;J d S Nr   r#   rA      r"   
rn   iinfominmaxr   r$   r+   r,   r-   r/   rs   r   	np_scalarpa_typer    r1   r
   r
   r   test_sequence_integerP  s   r   c                 C   s   |\}}t t tj| tjg|dd W d    n1 s w   Y  tj| tjg|dd}d g}t|dks<J |jdksCJ |j	|ksJJ |
 |ksRJ d S )NFr-   from_pandasTr   )rO   rP   r   r   r$   rn   nanr+   r,   r-   r/   rs   r   _r   r1   r    r
   r
   r   test_sequence_integer_np_nan]  s   r   c                 C   s   |\}}t t tj| tjggt|dd W d    n1 s$w   Y  tj| tjggt|dd}d gg}t|dksEJ |j	dksLJ |j
t|ksVJ | |ks^J d S )NFr   Tr   r   )rO   rP   r   r   r$   rn   r   r   r+   r,   r-   r/   r   r
   r
   r   #test_sequence_integer_nested_np_nann  s   " r   c                 C   rz   )Nr   Nr#   Nr|   r"   )r   r$   r+   r,   r-   r:   r/   r~   r
   r
   r   test_sequence_integer_inferred  r   r   c              	   C   s   |\}}|dd |dd |t |j|t |jg}tj| ||d}t|dks-J |jdks4J |j|ks;J |	 |ksCJ d S r   r   r   r
   r
   r   test_sequence_numpy_integer  s   r   c                 C   s   |\}}|dd |dd g}||t |j|t |jg7 }t| |}t|dks/J |jdks6J |j|ks=J |	 |ksEJ d S )Nr   r#   r   r"   r   r   r
   r
   r   $test_sequence_numpy_integer_inferred  s   r   c                 C   s@   g d}t tt|}tj| |t d}| |ksJ d S )N)r   *   l       l         rA   )listmapr   r   r$   r:   r/   )rs   r    r   r1   r
   r
   r   test_sequence_custom_integers  s   r   c                 C   sT   t  g}tjtjdd tj| |t d W d    d S 1 s#w   Y  d S )Ntried to convert to intrW   rA   )r   rO   rP   r   ArrowInvalidr$   r:   )rs   r   r
   r
   r   test_broken_integers  s   "r   c                  C   s   t dt dg} t| }tjddgdd}||sJ t dt dg} t| }tjddgdd}||s>J d S )Nr?   g      ?float64rA   float32)rn   r   r   r   r$   r%   int8)r   r1   r    r
   r
   r   test_numpy_scalars_mixed_type  s   

r   z)Type inference for uint64 not implemented)reasonrP   c                  C   sb   dt t jjg} tj| t d}tt j| dd}||s#J t| }||s/J d S )Nr   rA   uint64rm   )rn   r   r   r   r   r$   r%   )r   r1   r    Zarr_inferredr
   r
   r   test_uint64_max_convert  s   
r   bits)          @   c                 C   s   t td|   }tttjf td| d  g| W d    n1 s&w   Y  tttjf td| d   d g| W d    d S 1 sMw   Y  d S )Nzint%dr"   r   getattrr   rO   rP   OverflowErrorr   r$   r   r   r
   r
   r   test_signed_integer_overflow  s   "r   c                 C   s   t td|   }tttjf td|  g| W d    n1 s$w   Y  tttjf tdg| W d    d S 1 sDw   Y  d S )Nzuint%dr"   r   r   r
   r
   r   test_unsigned_integer_overflow  s   "r   typc                 C   sF   t tj tj| dg|d W d    d S 1 sw   Y  d S )N1rA   )rO   rP   r   r   r$   )rs   r   r
   r
   r   test_integer_from_string_error  s   "r   c                  C   s   g d} t g d}tj| |d}tg d}||s J tt tj| |dd  d W d    d S 1 s<w   Y  d S )N)r   r"   r#   r|      )FTFFT)mask)r   Nr#   r|   Nr   )rn   r$   r   r%   rO   rP   r   )r   r   resultr    r
   r
   r   test_convert_with_mask  s   "r   c                  C   sB   dd l } |   t }tg d |   t |ksJ d S )Nr   r   )gcZcollectr   Ztotal_allocated_bytesr$   )r   Zbytes_beforer
   r
   r   test_garbage_collection  s   r   c                  C   V   g d} t | }t|dksJ |jdksJ |jt  ks!J | | ks)J d S )N      ?      ?N      @NNr   r#   )r   r$   r+   r,   r-   r   r/   r   r1   r
   r
   r   test_sequence_double     
r   c                  C   sh   g d} t | }g d}t |}||sJ g d}t |}g d}t |}||s2J d S )Nr   )r   r   Nr   NN)r   r   Nr   NN)r   r   Nr   NNrv   )r   r1   Zdata2r(   data3Zarr3Zdata4Zarr4r
   r
   r   $test_double_auto_coerce_from_integer  s   



r   c                  C   s   g d} g d}g d}t |  tt t | W d    n1 s&w   Y  tt t | W d    d S 1 sAw   Y  d S )N)r   r   r"   Nl          l       )r   r   r"   Nl         )r   r   r"   Nl      )r   r$   rO   rP   r   )valid_valuesinvalid_valuesinvalid_values2r
   r
   r   .test_double_integer_coerce_representable_range!  s   
"r   c                  C   s   t j} | dddg}| ddg}| ddg}tj|t d tt tj|t d W d    n1 s8w   Y  tt tj|t d W d    d S 1 sWw   Y  d S )Nr   i   i   i  irA   )rn   r   r   r$   rO   rP   r   )Zf32r   r   r   r
   r
   r   /test_float32_integer_coerce_representable_range1  s   "r   c                   C   s   t jtdd tjddgt d W d    n1 sw   Y  t jtdd tjddgt d W d    n1 s?w   Y  t jtdd tddg W d    d S 1 s^w   Y  d S )	Nztried to convert to booleanrW   TfoorA   ztried to convert to float32r   ztried to convert to double)rO   rP   r   r   r$   r}   r   r
   r
   r
   r   test_mixed_sequence_errorsB  s   "r   znp_scalar,pa_typer   TFc                 C   s   |d|dd |dd t jg}tj| ||d}t|dks J |r*|jdks)J n|jdks1J |r;|j|ks:J n	|jt ksDJ | d d |d d ksTJ |rb| d	 d u s`J d S t 	| d	 smJ d S )
Nr   r   r   r   r   r#   r"   r|   r   )
rn   r   r   r$   r+   r,   r-   r   r/   isnan)rs   r   r   r   r   r1   r
   r
   r   test_sequence_numpy_doubleM  s    r   	inner_seqc                 C   s   t j|ddg|g d|t jgd gtd}tj|| d}t|dks&J |jdks-J |jtt	 ks9J | rN|
 ddgg dd gd gksLJ d S t j|
 ddgg dt jgd g d S )Nr          @)r   r         @rm   r   r|   r   )rn   r$   r   rp   r   r+   r,   r-   r   r   r/   ZtestingZassert_equal)r   r   r   r1   r
   r
   r    test_ndarray_nested_numpy_doublej  s"   


&r   c                  C   s6  t jdtd} t jddgt jdt jddgt jdg| d d < t jdtd}ddg|d< ddg|d< ttt }t| g|ksFJ t| |g}tjddgddggddgddggg|d	}||siJ t jdtd} t dgt dgg| d d < t| | g}|	 dgdggdgdgggksJ d S )
Nr"   rm   r   r#   r|   r   r   r   rA   )
rn   ro   rp   r$   r:   r   r   
infer_typer%   r/   r1   r(   expected_typer   r    r
   r
   r   #test_nested_ndarray_in_object_array  s$   " (r   z?Type inference for multidimensional ndarray not yet implementedc                  C   s   t jddgddggt jd} t jddgddggt jd}ttt }t| g|ks0J t| |g}tjddgddggddgddggg|d}||sSJ d S )	Nr   r"   r#   rm   r|   r   r   rA   )rn   r$   r:   r   r   r   r%   r   r
   r
   r   ,test_multidimensional_ndarray_as_nested_list  s   "r   )r   
value_typer   r"   N)r   r   r   Nr   sr"   usr?   )seconds   a   b)s   aaas   bbbs   cccr#   )r   r      cabcr   r   r   r   r   c                 C   sN   t |}tj| td}t j|g|d}|j|sJ | | gks%J d S )Nrm   rA   )r   r   rn   r$   rp   r-   r%   r/   )r   r   r   ndarrayr1   r
   r
   r   #test_list_array_from_object_ndarray  s
   
r   r|   c                 C   sh   t jt| td}dd | D |d d < t|}tj|g|d}|j|s)J |	 | gks2J d S )Nrm   c                 S   s   g | ]	}t j|td qS )rm   )rn   r$   rp   )rK   itemr
   r
   r   
<listcomp>      z>test_nested_list_array_from_object_ndarray.<locals>.<listcomp>rA   )
rn   ro   r+   rp   r   r   r$   r-   r%   r/   )r   r   r   r   r1   r
   r
   r   *test_nested_list_array_from_object_ndarray  s   
r   c                  C   sn   t t ttjdg W d    n1 sw   Y  tjtjdgdd} td dg}| |s5J d S )NstrTr   )rO   rP   r   r   r$   rn   r   r%   )r1   r    r
   r
   r   !test_array_ignore_nan_from_pandas  s   r   c                  C   s   t jg dddd t jg dddg} t| }tjg dd g dgtt d}||s2J tt }tj| |d}||}||sLJ d S )Nru   r:   rm   )r|   r   r   uint32rA   )rn   r$   r   r   r:   r%   r   cast)r   r1   r    t2r(   Z	expected2r
   r
   r   $test_nested_ndarray_different_dtypes  s   

r  c                  C   r   )N)r   barN   mañanar|   r   )r   r$   r+   r,   r-   stringr/   r   r
   r
   r   test_sequence_unicode  r   r  c                 C   s   ddt dg}g d}g d}t|}tj|t d}|jt ks&J ||s-J tj|| d}tj|| d}|j| ksBJ ||sIJ tj||d}tj||d}|j|ks^J ||seJ d S )Nqux   foo   barz)s   quxr  r	  )r  r   ZbarzrA   )	bytearrayr   r$   binaryr-   r%   )binary_typeZstring_typerj   Zb_valuesZu_valuesr1   r    r
   r
   r   check_array_mixed_unicode_bytes  s   
r  c                   C   s(   t t t  t t t  d S r   )r  r   r  r  large_binarylarge_stringr
   r
   r
   r   test_array_mixed_unicode_bytes  s   r  r   c                 C   s`   d}t dt| }|g| }tj|| d}t|tjsJ |j| ks&J t||ks.J d S )Nsh  0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz       rA   )mathceilr+   r   r$   
isinstanceArrayr-   )r   r   nrepeatsr   r1   r
   r
   r   test_large_binary_array  s   
r  c                 C   s   d}t dt| }tjd|| d dg| d}t|tjs J |j| ks'J t|dks/J |d  }t|t|| ksAJ d S )N$   0123456789abcdefghijklmnopqrstuvwxyzr  r     barrA   r|   r   )	r  r  r+   r   r$   r  r  r-   Z	as_buffer)r   r   r  r1   bufr
   r
   r   test_large_binary_value%  s   r  c                 C   sb   d}t dt| }ttj tjd|| d dg| d W d    d S 1 s*w   Y  d S )Nr  r  r  r  rA   )r  r  r+   rO   rP   r   ZArrowCapacityErrorr$   )r   r   r  r
   r
   r   test_string_too_large4  s
   "r  c                  C   s   d} dt dt dd d d | dtdd g}d t t fD ]1}tj||d}t|d	ks2J |jd
ks9J |j	|ksDt sDJ |
 ddd| dd gksRJ q!d S )Ns   mañanar  s   dadas   d-a-t-ar"   zutf-8r  rA   r   r   s   data)
memoryviewdecoder
  r   r  r  r$   r+   r,   r-   r/   )u1r   r   r1   r
   r
   r   test_sequence_bytes>  s   r   c                 C   s   g d}t j|| d}|j| ksJ |d  dksJ dd}tt j t j|g| d W d    d S 1 s;w   Y  d S )N)r  Nr  rA   r   r   r  z	utf-16-le)r   r$   r-   as_pyencoderO   rP   r   )r   r   r1   valr
   r
   r   test_sequence_utf8_to_unicodeO  s   
"r$  c                  C   sn   dd t ddg} tj| tdd}t|dksJ |jdks!J |jtdks+J | g dks5J d S )N   foof   barb   2346r|   rA   r   )r%  Nr&  r'  )r
  r   r$   r  r+   r,   r-   r/   r   r
   r
   r   test_sequence_fixed_size_bytes]  s   r(  c                  C   sN   g d} t tj tj| tdd W d    d S 1 s w   Y  d S )N)r  Nr&  r'  r|   rA   )rO   rP   r   r   r$   r  r   r
   r
   r   5test_fixed_size_bytes_does_not_accept_varying_lengthsf  s   "r*  c                  C   sF   dg} t | d dksJ td}tj| |d}| | ks!J d S )Ns   h    Ar      rA   )r+   r   r  r$   r/   )r   r   r1   r
   r
   r   #test_fixed_size_binary_length_checkl  s
   
r,  c                  C   s   t dddd t dddt dddg} t| }t|dks"J |jt ks+J |jdks2J |d  t dddksAJ |d  d u sKJ |d  t dddksZJ |d	  t dddksiJ d S )
N  r   i  i  r"      r|   r   r#   )	datetimedater   r$   r+   r-   date32r,   r!  r   r
   r
   r   test_sequence_dateu  s   
"r2  inputi*  l    ,Uqc                 C   s   | \}}t dddd g}tj||d}tj||d}||fD ]1}t|dks)J |j|ks0J |jdks7J |d  t dddksFJ |d  d u sPJ qd S )Nr-  r   rA   r"   r   )r/  r0  r   r$   r+   r-   r,   r!  )r3  tZ	ex_valuesr   r1   r(   rL   r
   r
   r   test_sequence_explicit_types  s   r5  c                  C   sP   dd g} t ttjf tj| t d W d    d S 1 s!w   Y  d S )Nl        rA   )rO   rP   r   r   ZArrowExceptionr$   r1  )r   r
   r
   r   test_date32_overflow  s   "r6  )	time_typeunitint_typer   msr:   nsc              
      sR   fdd} fdd}t ddddt d	d
d
dd t ddddt ddd
dg}|  }tj||d}t|d	ks>J |j|ksEJ |jdksLJ ||}tt	||}	|
 |	ks`J |d
  ||d
 ksnJ |d  ||d ks|J |d  d u sJ |d  ||d ksJ |d  ||d ksJ ddd}
d S )Nc                    sV   g d}d|  d  }| d u rd S | jd | jd  | j | jd  }t|| S )Nr   r:  r   r;  r?   r#   i  <   gư>)indexhourminutesecondmicrosecondint)r4  units
multiplierr   r8  r
   r   expected_integer_value  s   z@test_sequence_time_with_timezone.<locals>.expected_integer_valuec                    s6    dkr
| j ddS  dkr| j | jd d dS | S )Nr   r   rB  r:    )replacerB  )r4  rF  r
   r   expected_time_value  s
   z=test_sequence_time_with_timezone.<locals>.expected_time_valuer      "   @ r   r   rI  r      8   雙 r?   í rA   r"   r#   r|   c                 S   s   t j| |d}t |S )N)hoursminutes)r/  	timedeltatimezone)rS  rT  offsetr
   r
   r   tz  s   
z,test_sequence_time_with_timezone.<locals>.tz)r   )r/  timer   r$   r+   r-   r,   r   r   r   r/   r!  )r7  r8  r9  rG  rK  r   r   r1   rj   r    rX  r
   rF  r    test_sequence_time_with_timezone  s,   
rZ  c                  C   s  t  dddddddd t  dddd	dd
dt  dddddddg} t| }t|dks.J |jtdks8J |jdks?J |d  t  dddddddksRJ |d  d u s\J |d  t  dddd	dd
dksoJ |d  t  dddddddksJ d S N        r   rL  rM  rN    r+  rP  rQ    r   r   .   9   rR  r|   r   r   r"   r#   )r/  r   r$   r+   r-   	timestampr,   r!  r   r
   r
   r   test_sequence_timestamp  s&   


rd  rV  )NUTCz	Etc/GMT-1zEurope/Budapestr8  r<  c                    st  t d fdd} fdd}tdddd	d
dd jtdddddddd  dtddddddd dtdd	dddddg} j|d |d d |d  j|d  jg}tjd}tj	||d}t
|dksJ |j|ksJ |jdksJ |d}tt||}	| |	ksJ tt
|D ]}
||
  |||
 ksJ qd S )Npytzc                    sD   g d}d|  d  }| d u rd S tt|  }t|| S )Nr<  r?   r#   )r>  decimalDecimalr   rc  rC  )dtrD  rE  tsrF  r
   r   rG    s   zEtest_sequence_timestamp_with_timezone.<locals>.expected_integer_valuec                    sd   | d u rd S dkr| j dd} ndkr | j | jd d d} d u r*| j d dS |  S )Nr   r   rH  r:  rI  tzinfo)rJ  rB  
astimezonerV  )ri  rf  rV  r8  r
   r   expected_datetime_value  s   zFtest_sequence_timestamp_with_timezone.<locals>.expected_datetime_valuer\  r]  r^  r   rL  rM  rN    r   r   r   rI  
US/Easternr_  r+  rP  rQ  Europe/Moscowr`  rR  r#   r|   rX  rA   r:   )rO   importorskipr/  utclocalizerV  rm  r   rc  r$   r+   r-   r,   r   r   r   r/   r9   r!  )rV  r8  rG  ro  r   utcdatar   r1   rj   r    ir
   rn  r   %test_sequence_timestamp_with_timezone  s@   




ry  c                    s   t d dd l}| dd tddddd	d
d|jtddddddd|dtddddd
dd|dtdddddddg}dd |D }|d urb||  fdd|D }tj	d|d}tj
||d}| |ksxJ d S )Nrf  r   ZPYARROW_IGNORE_TIMEZONEr   r\  r]  r^  r   rL  rM  rN  rp  r   r   rI  rq  r_  r+  rP  rQ  rr  r`  rR  c                 S   s   g | ]}|j d dqS )Nrk  )rJ  rK   ri  r
   r
   r   r   V  s    zEtest_pyarrow_ignore_timezone_environment_variable.<locals>.<listcomp>c                    s   g | ]}  |qS r
   )fromutcrz  rk  r
   r   r   Y  rh   r   rs  rA   )rO   rt  rf  Zsetenvr/  ru  rv  rV  r   rc  r$   r/   )ZmonkeypatchrV  rf  r   r    r   r1   r
   rk  r   1test_pyarrow_ignore_timezone_environment_variable=  s*   



r|  c                  C   s  t d dd l} tddddddd	| jtd
ddddddd | dtddddddd| dtdddddddg}tjdd dtjdddtjdd dtjdddtjdddg}t	||D ]\}}|g| }t
|}|j|ks~J qid S )Nrf  r   r\  r]  r^  r   rL  rM  rN  rp  r   r   rI  rq  r_  r+  rP  rQ  rr  r`  rR  r   rs  re  )rO   rt  rf  r/  ru  rv  rV  r   rc  zipr$   r-   )rf  r   r    ri  r   	prependedr1   r
   r
   r   /test_sequence_timestamp_with_timezone_inference`  s2   




r  c                  C   s  t d dd l} tddddddd	tjd
ddddddtjjdd tjddddddd| jdddtjddddddd| jdddg}tjdd dtjdddtjdd dtjdddtjdddg}t	||D ]\}}|g| }t
|}|j|ks~J qid S )Nzoneinfor   r\  r]  r^  r   rL  rM  rN  rp  r   r   rI  rk  r_  r+  rP  rQ  rq  )rT   r`  rR  rr  r   rs  re  )rO   rt  r  r/  rV  ru  ZZoneInfor   rc  r}  r$   r-   )r  r   r    ri  r   r~  r1   r
   r
   r   8test_sequence_timestamp_with_zoneinfo_timezone_inference~  s2   




r  c                  C   s   t d dd l} dd l}|jd| dddtddd	d
ddd| jtdddddddd g}|d 	| j| j|d |d 	| jd g}t
|}|jt
jdddks[J |d}dd |D }| |ksoJ d S )Nrf  r   l   {FK| rq  r;  )rX  r8  r\  r]  r^  r   rL  rM  rN  rp  r   r   rI  r"   r   rs  r:   c                 S   s$   g | ]}|rt | d  ndqS )i@B N)rC  rc  rz  r
   r
   r   r     s   $ zStest_sequence_timestamp_from_mixed_builtin_and_pandas_datetimes.<locals>.<listcomp>)rO   rt  rf  pandas	TimestamprV  r/  ru  rv  rm  r   r$   r-   rc  r   r/   )rf  pdr   rw  r1   rj   r    r
   r
   r   ?test_sequence_timestamp_from_mixed_builtin_and_pandas_datetimes  s,   



r  c                  C   s  t  dddg} tjtdd tj| tdd W d    n1 s$w   Y  tj| tdd}| | ks;J t t j	d	d
}t j dddd|dg} tjtdd tj| tdd W d    n1 skw   Y  tj| tdd}| d t  dddksJ d S )Ni  r|   r+  zout of boundsrW   r;  rA   r   r   )rS  rO  rL  rk  r   )
r/  rO   rP   r   r   r$   rc  r/   rV  rU  )r   r1   rX  r
   r
   r   0test_sequence_timestamp_out_of_bounds_nanosecond  s   "r  c                  C   s  t tdddddddd t tdddd	dd
dt tdddddddg} t| }t|dks7J |jtdksAJ |jdksHJ |d 	 tdddddddks[J |d 	 d u seJ |d 	 tdddd	dd
dksxJ |d 	 tdddddddksJ d S r[  )
rn   Z
datetime64r/  r   r$   r+   r-   rc  r,   r!  r   r
   r
   r   test_sequence_numpy_timestamp  s&   


r  c                   @      e Zd ZdS )MyDateNr   r   r   r
   r
   r
   r   r        r  c                   @   r  )
MyDatetimeNr  r
   r
   r
   r   r    r  r  c                   @   r  )MyTimedeltaNr  r
   r
   r
   r   r    r  r  c            	   
   C   s  t dddg} t }tj| |d}t|dksJ |j|ks!J |d  tdddks0J t	ddddddd	g} t
d
}t
d}t
d}tj| |d}t|dksYJ |j|ks`J |d  tdddddddkssJ tj| |d}t|dksJ |j|ksJ |d  tdddddddksJ tj| |d}t|dksJ |j|ksJ |d  tddddddd	ksJ tdddg} td
}td}td}t| }t|dksJ |j|ksJ |d  tdddksJ tj| |d}t|dksJ |j|ksJ |d  tddks%J tj| |d}t|dks5J |j|ks=J |d  tdddksMJ tj| |d}t|dks]J |j|kseJ |d  tdddksuJ d S )Nr\  r]  r^  rA   r   r   rL  rM  rN  r   r:  r   ix {   i  i  rI  )r  r   r1  r$   r+   r-   r!  r/  r0  r  rc  r  durationrU  )	r   Z	date_typeZarr_dater   r:  r   arr_sarr_msarr_usr
   r
   r   test_datetime_subclassing  sf   











 $r  z)pandas required for nanosecond conversion)r   c                  C   s   t  dddddddgtdddddddgg} | D ]0}td}tj||d	}t|dks/J |j|ks6J |d
  t  dddddddksIJ qd S )Nr\  r]  r^  r   rL  rM  rN  r;  rA   r   )r/  r  r   rc  r$   r+   r-   r!  )Zinputsr   r;  arr_nsr
   r
   r   #test_sequence_timestamp_nanoseconds-  s   
r  win32z-Timezone database is not installed on Windowsc               	   C   s  dg} t d}t d}t d}t d}t j| |d}t|dks&J |j|ks-J t|d dks7J t|d d	ksAJ t j| |d}t|dksPJ |j|ksWJ t|d  d
kscJ t|d dksmJ t j| |d}t|dks|J |j|ksJ t|d  dksJ t|d dksJ t j| |d}t|dksJ |j|ksJ t|d  dksJ t|d dksJ t}	G dd d}
|t 	 t 
 fD ]!}t|	 t jd|
 g|d W d    n1 sw   Y  qd S )Nr   r   r:  r   r;  rA   r   z0<pyarrow.TimestampScalar: '1970-01-01T00:00:01'>z1970-01-01 00:00:01z,datetime.datetime(1970, 1, 1, 0, 0, 0, 1000)z1970-01-01 00:00:00.001000z)datetime.datetime(1970, 1, 1, 0, 0, 0, 1)z1970-01-01 00:00:00.000001z*Timestamp('1970-01-01 00:00:00.000000001')z1970-01-01 00:00:00.000000001c                   @   r  )z?test_sequence_timestamp_from_int_with_unit.<locals>.CustomClassNr  r
   r
   r
   r   CustomClassn  r  r  )r   rc  r$   r+   r-   reprr   r!  rY   r1  date64rO   rP   )r   r   r:  r   r;  r  r  r  r  Zexpected_excr  r   r
   r
   r   *test_sequence_timestamp_from_int_with_unit>  sR   




r  r   c                 C   s   t ddd}t ddd}| rt|d t|g}n|d |g}t|}t|dks.J |jtdks8J |j	dks?J |d 
 |ksIJ |d 
 d u sSJ |d 
 |ks]J d S )	Nr"   i  r   d   rI  r#   r   r   )r/  rU  rn   timedelta64r   r$   r+   r-   r  r,   r!  )r   td1td2r   r1   r
   r
   r   test_sequence_durationv  s   

r  c                 C   s   t dddg}t ddt dddt dddt dddd}t| }tj||d}t|dks6J |j|ks=J |d  ||  ksIJ d S )	Nr#      i  rI  r<  rA   r   r   )r/  rU  r   r  r$   r+   r-   r!  )r8  r   r    r   r  r
   r
   r    test_sequence_duration_with_unit  s   

r  c                 C   sR   dg}t | }t j||d}t|dksJ |j|ksJ |d jdks'J d S )Nr   rA   r   r   )r   r  r$   r+   r-   r   )r8  r   r   r1   r
   r
   r   )test_sequence_duration_from_int_with_unit  s   
r  c                  C   s   t ddd} t dd}| d g| |gg}t|}t|dks"J |jttdks/J | |ks7J tj|ttdd}t|dksLJ |jttdksYJ | |ksaJ d S )Nr   rI  r  r"   r   r:  rA   )	r/  rU  r   r$   r+   r-   r   r  r/   r  r  r   r1   r
   r
   r   #test_sequence_duration_nested_lists  s   
r  c                  C   s  t ddd} t dd}t| d gt| t|gg}t|}t|dks+J |jtt	dks8J |
 | d g| |ggksFJ tjt| d gddtt| t|gg}t|}t|dkslJ |jtt	dksyJ |
 | d g| |ggksJ d S )Nr   rI  r  r"   r   ztimedelta64[us]rm   )r/  rU  rn   r  r   r$   r+   r-   r   r  r/   r  r
   r
   r   )test_sequence_duration_nested_lists_numpy  s    

 r  c                  C   s  g d} t | }|jt  ksJ | | ksJ dgdgd g} t | }|jt t  ks2J | | ks:J dgg dd gg} t | }|jt t  ksTJ | | ks\J d d dggg dd gd gg} t | }|jt t t  ks~J | | ksJ t jt jf}t	| t dddgg W d    n1 sw   Y  t	| t ddg g W d    n1 sw   Y  t	| t dgdgd dggg W d    d S 1 sw   Y  d S )Nr   r   r"   )r"   r#   r|   )
r   r$   r-   r:   r/   r   r   ArrowTypeErrorrO   rP   )r   r1   
exceptionsr
   r
   r   test_sequence_nesting_levels  s4   



"r  c                  C   sD   g d} t tj t|  W d    d S 1 sw   Y  d S )N)r   r   r   )rO   rP   r   r  r$   r)  r
   r
   r   test_sequence_mixed_types_fails  s   "r  c                  C   sZ   ddddidddg} t  }tt t j| |d W d    d S 1 s&w   Y  d S )	Nz-10z-5r   r   0510rA   )r   r  rO   rP   rY   r$   )r   r-   r
   r
   r   3test_sequence_mixed_types_with_specified_type_fails  s
   "r  c                  C   P   t dt dg} tjtjfD ]}tj| |dddd}| | ks%J qd S )Nz1234.183z8094.234r]  r#   	precisionscalerA   rg  rh  r   
decimal128
decimal256r$   r/   r   r-   r1   r
   r
   r   test_sequence_decimal  
   r  c                  C   r  )Nz1234234983.183z80943244.234r^  r#   r  rA   r  r  r
   r
   r   *test_sequence_decimal_different_precisions  s   r  c                  C   sN   t dt dg} tjtjfD ]}tj| |ddd}| | ks$J qd S )NZ
1234234983Z8094324r?   )r  rA   r  r  r
   r
   r   test_sequence_decimal_no_scale  s
   r  c                  C   r  )Nz-1234.234983z	-8.094324r?   r   r  rA   r  r  r
   r
   r   test_sequence_decimal_negative  r  r  c                  C   sP   t dt dg} tjtjfD ]}tj| |dddd}| | ks%J qd S )Nz	-.4234983z.0103943r]  r  rA   r  r  r
   r
   r   #test_sequence_decimal_no_whole_part  r  r  c                  C   r  )Nz-394029506937548693.42983z32358695912932.01033rL  r   r  rA   r  r  r
   r
   r   #test_sequence_decimal_large_integer   s   r  c                  C   sR   g d} dd | D }t jt jfD ]}t j| |dddd}| |ks&J qd S )N)r   r   lc&E(ON c                 S   s   g | ]}t |qS r
   )rg  rh  rJ   r
   r
   r   r   *  rh   z7test_sequence_decimal_from_integers.<locals>.<listcomp>   r   r  rA   )r   r  r  r$   r/   )r   r    r-   r1   r
   r
   r   #test_sequence_decimal_from_integers(  s   r  c                   C   sF   t jtdd ttdg W d    d S 1 sw   Y  d S )Nzprecision out of rangerW   ZP11111111111111111111111111111111111111111111111111111111111111111111111111111111)rO   rP   r   r   r$   rg  rh  r
   r
   r
   r   (test_sequence_decimal_too_high_precision0  s   "r  c                  C   s  t dtddft dtddft dtdd	ft d
tddft dtddft dtddft dtddft dtddft dtddff	D ]%\} }t| g|ksjJ t| g}|j|kswJ | d | ksJ q\d S )N1.234r|   r#   12300r   r   z12300.0r   r   1.23E+4z123E+2z123E+4r]  z0.0123z0.01230z1.230E-2rg  rh  r   r  r   r$   r-   r/   )r   r   r1   r
   r
   r   test_sequence_decimal_infer6  s   r  c                  C   s"  t dt dgtddft dt dgtddft dt dgtddft d	t d
gtddft dt dgtddft dt dgtddft dt dgtddfg} | D ]!\}}t||kszJ t|}|j|ksJ | |ksJ qmd S )Nr  z3.456r|   r#   z456.7r   z123.4z4.567Z123e2Z4567e3r]  r   Z123e4Z4567e2z0.123z0.04567r   z0.001z1.01E5	   r  )casesr   r   r1   r
   r
   r   !test_sequence_decimal_infer_mixedL  s8   







r  c               
   C   sT  t dtddtddtddgtddtddgft dtddtddtdd	gtddtdd
gft dtddtddtdd	gtddtdd
gffD ]E\} }}|D ]}tj| g|d}|j|kszJ | d | ksJ qi|D ]}tt	 tj| g|d W d    n1 sw   Y  qqbd S )Nr  r|   r#   r   r"   r  r   r   r  rA   )
rg  rh  r   r  r$   r-   r/   rO   rP   r   )r   ZtypsZ
wrong_typsr   r1   r
   r
   r    test_sequence_decimal_given_typef  s0      r  c                  C   s*   t td} t d}| |sJ d S )Nr#   r6   )r   r$   r9   r%   r&   r
   r
   r   test_range_types  s   
r  c                  C   sR   t td} t| dksJ | jdksJ | jt  ksJ |  g ks'J d S r*   )r   r$   r9   r+   r,   r-   r.   r/   r0   r
   r
   r   test_empty_range  r3   r  c                  C   s   t jjg g d} | jt g ksJ t| dksJ |  g ks"J t jg dt  d}t jg dt 	 d}t jg dt 
 d}t j|||gg d} d dd	dd
d ddddd dg}|  }||ksnJ ||ftt t j|gddg W d    d S 1 sw   Y  d S )N)namesr   Nr"   r#   rA   r   Nr   TFN)intsstrsboolsr   Tr"   Fr#   r   r  r  )r   StructArrayfrom_arraysr-   structr+   r/   r$   r:   r  r}   rO   rP   r   )r1   r  r  r  r    Zpylistr
   r
   r   test_structarray  s(   


"r  c               	   C   s   t t dt  t dt  t dt  g} t jg | d}| g ks)J ddddd	d
ddg}t j|| d}| |ksDJ dddd i d d
dg}t j|| d}dd ddd d d d dd d
d dg}| |ksqJ d S )Nr   r   r   rA   r   r   Tr   r   r  Fr   r   r   r   r  fieldr   r  r}   r$   r/   )r   r1   r   r    r
   r
   r   test_struct_from_dicts  s.   




r  c               	   C   s   t t dt  t dt  t dt  g} t jg | d}| g ks)J ddddd	d
g}t j|| d}| ddd ddd d	dgksLJ d S )Nr   r   r   rA   r   r   )r   r   r   F)r   r   r   r  )r   r1   r   r
   r
   r   !test_struct_from_dicts_bytes_keys  s   

r  c               	   C   s8  t t dt  t dt  t dt  g} ddg}dddd	d
ddd	g}t j|| d}tjt	|t
d}||d d < t j|| d}| |ksOJ ||sVJ g d}ddd d	d d
d dd	g}t j|| d}| |ksvJ dD ]!}tjtdd t j|g| d W d    n1 sw   Y  qxd S )Nr   r   r   r   r   T)r   r  Fr   r   Tr   r   r  FrA   rm   ))r   r   NN)r   NF))r   r   r
   )r  r   TN(?i)tuple sizerW   )r   r  r  r   r  r}   r$   rn   ro   r+   rp   r/   r%   rO   rP   r   )r   r   r    r1   data_as_ndarrayr(   tupr
   r
   r   test_struct_from_tuples  s:   



r  c               	   C   s  t t dt  t dt  t dt  g} g dg dd g}t j|| d}| ddd	d
dddd
d gks=J t t dt  t dt  t dt  g} g dg dg}t j|| d}t	t
 |  W d    n1 szw   Y  t t dt  t dt  t dt  g} g g dddgg dg}d d d d
ddd	d
ddd d
dddd
g}t j|| d}| |ksJ d S )Nr   r   r   )r   r   r   r   r   T)r   r   r   r  r   FrA   r   r   Tr   r   r  F)r  )r   r   )r   T)r  )r   r  )r   F)r   r"   )r   baz)r   r   r  r  )djuliar"   r  r   )r   r  r  r   r  r}   r$   r/   rO   rP   r   )r   r   r1   r    r
   r
   r   test_struct_from_list_of_pairs  sX   







r  c               	   C   sP  t t dt  t dt  t dt  g} g g dg}d}tjt|d t j	|| d W d    n1 s;w   Y  d}t
 t
dt
d	d
g}|D ]V}t|t|t|j}tjt|d t j	|gg dg| d W d    n1 s}w   Y  tjt|d t j	g d|gg| d W d    n1 sw   Y  qOd S )Nr   r   r   )r  r  )r   Nz0The expected field name is `b` but `c` was givenrW   rA   zKCould not convert {} with type {}: was expecting tuple of (key, value) pairzunknown-keyr  )r  r  )r   N)r   r  r  r   r  r}   rO   rP   r   r$   r_   reescapeformatr  r-   r   rY   )r   r   msgtemplater  Zkey_value_pairr
   r
   r   %test_struct_from_list_of_pairs_errors0  sR   r  c               	   C   s   t t dt  t dt  t dt  g} dddddg}tt t j	|| d	 W d    d S 1 s:w   Y  d S )
Nr   r   r   r  r   r  Fr   rA   )
r   r  r  r   r  r}   rO   rP   rY   r$   )r   r   r
   r
   r   test_struct_from_mixed_sequence^  s   
"r  c                  C   s  t t dt  t dt  t dt  g} dddddd	d
dg}t |}t|j|  |	 |ks9J dddd i d d	dg}dd ddd d d d dd d	d dg}t |}t
jt|td}||d d < t |}t|j|  |	 |ks~J ||sJ t t dt t dt t  t dt  gt dt  g} ddgddddd d
dd dd d	dg}t |}|	 |ksJ t i g}|jt g ksJ |	 i gksJ tt jt jf t dddig W d    d S 1 sw   Y  d S )Nr   r   r   r   r   Tr   r   r  Fr  r   rm   aaab)r  r  r   r"   )r   r  r  r:   r  r}   r$   r!   r-   r/   rn   ro   r+   rp   r%   r   rO   rP   r   r  )r   r   r1   r    r  r(   r
   r
   r    test_struct_from_dicts_inferencei  sZ   








$r  c               	   C   s   g d} g d}g d}g d}| |||g}t j|g d}t jt j| ddt j|ddt |t j|ddgg d}tt t j| W d    n1 sTw   Y  ||s`J d S )	Nr  r  r  ru   )r  r  r  Zint_nonnullr:   rA   utf8)r   r  r  r$   rO   rP   r   r%   )r  r  r  Zints_nonnullZarraysr   r    r
   r
   r   #test_structarray_from_arrays_coerce  s(   r  c                  C   s   t dd tjt dg} tt t| }W d    n1 s"w   Y  tj| dd}|j	t
ddks9J | | d d d d g ksIJ tj| t
dddd	}| t d
d d d gksdJ d S )Nr  r   Tr   r|   r#   r"   r?   r   z1.2340)rg  rh  rn   r   rO   rP   rY   r   r$   r-   r  r/   )rj   r$   r
   r
   r   $test_decimal_array_with_none_and_nan  s    "r  c               	   C   s  ddddddgdddgdd	dd
dddd dgdddgg} dd | D }t j|t t  t  d}| |ks@J d | d< d |d< t j|t t  t  d}| |ks_J ddigi gdddgfD ]%}tjtdd t j|gt ddd W d    n1 sw   Y  qldddgdddiigfD ]&}tjt j	dd t j|gt ddd W d    n1 sw   Y  qd S )Nr   r   rT   r   r   r"   r   r#      dr|      er      f   gr]  c                 S   s   g | ]	}d d |D qS )c                 S   s   g | ]
}|d  |d fqS r  r
   )rK   r  r
   r
   r   r     s    z2test_map_from_dicts.<locals>.<listcomp>.<listcomp>r
   )rK   entryr
   r
   r   r     r   z'test_map_from_dicts.<locals>.<listcomp>rA   r   )re   rf   zInvalid MaprW   i4r   rT   r   )
r   r$   map_r  r   r/   rO   rP   r   r   )r   r    r1   r  r
   r
   r   test_map_from_dicts  s2   

r  c               	   C   s   ddgdgg ddgg} t j| t t  t  d}| | ks#J d | d< t j| t t  t  d}| | ks>J dgd	gd
gfD ]%}tjtdd t j|gt ddd W d    n1 sfw   Y  qFd S )N)r   r   )r   r"   )r   r#   ))r  r|   )r  r   )r  N)r  r]  rA   r   )r   r
   )r  r   Tr  rW   r   )	r   r$   r  r  r   r/   rO   rP   r   )r    r1   r  r
   r
   r   test_map_from_tuples  s    r  c                  C   s   t jt  t  d} t jg d| d}t|jt jsJ |j| s%J t jg dt  d}t jddgt  d}|j	|sCJ |j|sKJ d S )Nr   )FFTFTrA   )r   r   r   r   r   FT)
r   
dictionaryr   r}   r$   r  r-   DictionaryTyper%   indices)r   r   expected_indicesexpected_dictionaryr
   r
   r   test_dictionary_from_boolean  s   r
  r   c                 C   s   t jt  | d}t jg d|d}t|jt jsJ |j|s#J t jg dt  d}t jg d| d}|j|s?J |j|sGJ d S )Nr  )r   r"   r   r   r"   r#   rA   )r   r   r   r   r   r"   ru   )	r   r  r   r$   r  r-   r  r%   r  r   r   r   r  r	  r
   r
   r   test_dictionary_from_integers  s   r  input_index_typec                 C   s8   t j| t  d}t jtd|d}|j|sJ d S )Nr  r?   rA   )r   r  r:   r$   r9   r-   r%   )r  r   r1   r
   r
   r   test_dictionary_index_type  s   
r  c                  C   s   t jt  t  d} t jtd| d}t t  t  }|j|s&J t jtd| d}t t  t  }|j|sAJ d S )Nr     rA      )	r   r  r   r:   r$   r9   r-   r%   r   )r   r   r    r
   r
   r   "test_dictionary_is_always_adaptive-  s   r  c                  C   s  t  t  fD ]@} t t  | }t jg d|d}t|jt js$J t jg dt  d}t jg d| d}|j	
|s@J |j
|sHJ qt t  t d}t jg d|d}t|jt jsfJ t jg dt  d}t jg dt dd}|j	
|sJ |j
|sJ d S )	N) r   bbr   r  cccrA   )r   r   r"   r   r"   r#   )r  r   r  r  r#   )aaar  bbbr  r  )r   r   r   r"   r   )r  r  r  )r   r  r  r  r   r$   r  r-   r  r  r%   r  r
   r
   r   test_dictionary_from_strings<  s   r  )r8  r     )Zmilliseconds)microsecondsie;c                 C   s   t | }t jdg|d}t j| |d}||sJ |g}| dkr<zdd l}W n	 ty3   Y n	w |jdddg}| |ksDJ d S )Nr  rA   r;  r   rF  )r   r  r$   r/   r%   r  ImportError	Timedelta)r8  r    r   r1   restoredZexpected_listr  r
   r
   r   *test_duration_array_roundtrip_corner_casesS  s   
	r  c                  C   sj  dd l } td}tjdg|d}| }t|d | jsJ tj||d}||s-J | | jdddgks;J td}tjdg|d}| }t|d | j	sVJ tj||d}||sdJ | | j	dddgksrJ tjddd}d}tj|g|d}| }t|d | j	sJ tj||d}||sJ | | j	|dd
d	dgksJ d S )
Nr   r;  l      "9} rA   rF  rq  rs  l    ^,j2 re  )r  r   r  r$   r/   r  r  r%   rc  r  Ztz_localizeZ
tz_convert)r  r   r1   r   r  r   r
   r
   r   <test_roundtrip_nanosecond_resolution_pandas_temporal_objectsn  s@   



r  c                 C   s*   |   }tj|| jd}|| sJ d S )NrA   )r/   r   r$   r-   r%   )r1   rs   r  r
   r
   r   test_array_to_pylist_roundtrip  s   r  c                  C   sb  dd } dd }| gd dd |g }t j|t  d}t|t js#J t|dks+J |d  dks5J |d  d u s?J |d	  |ksIJ |d
g }t j|t  d}t|t js_J |jdksfJ t|	ddksqJ t|	ddks|J |	dd  dksJ |	dd  d u sJ |	dd	  |ksJ |	d
 d
gksJ |d ddg }t j|t  d}t|t jsJ |jdksJ t|	ddksJ t|	ddksJ t|	ddksJ tdD ],}|	|d  dksJ |	|d  d u sJ |	|d	  |ks J q|	d
 ddgks/J d S )N   x k       rA   rL     r  s   twor"   r   r   s   threer#   )r   r$   r  r  r  r+   r!  ChunkedArray
num_chunkschunkr/   r9   )v1v2Zone_chunk_datar1   Ztwo_chunk_dataZthree_chunk_datarx  r
   r
   r   test_auto_chunking_binary_like  s>   
 r+  c                  C   s   dggd } t | }t|t jsJ |jdksJ t|ddks%J t|ddks0J |d dggd ks?J d S )NA   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxi   r"   r   i r   )r   r$   r  r&  r'  r+   r(  r/   )valsr1   r
   r
   r   !test_auto_chunking_list_of_binary  s   
"r-  c                  C   s  t jddd} | gd }tj|tt d}t|tjs J t|dks(J t jddd} | gd }tj|tt d}t|tj	sHJ |j
dksOJ t|ddksZJ t|d	d	kseJ |d	}|d }t|tjsvJ tj| t d}|j|ksJ d S )
N)   uint8rm   r]  rA   r   r"   r   r   )rn   Zonesr   r$   r   r/  r  r  r+   r&  r'  r(  Z
ListScalarrj   )r   r   r1   r(  scalarr    r
   r
   r   test_auto_chunking_list_like  s"   


r1  c                  C   sv   t t  t  } dgd }|gd }t j|| d}t|t js#J t|ddks.J t|ddks9J d S )N)r   r   r.  r   rA   r   r]  r   )r   r  r   r$   r  r&  r+   r(  )r   r   r   r1   r
   r
   r   test_auto_chunking_map_type  s   

r2  )r   charrL   r   c                 C   s  |d }|d }t t dt  t dt  t d| g}dd|dgd	 }|dd|d t j||d
}t|t jsAJ |dd|d t j||d
}t|t j	sYJ |j
dks`J t|ddkskJ t|ddksvJ |dd  dd|dksJ d S )Nr!  r"  boolintegerstring-likeTr   )r4  r5  r6  r#  rA   r"   r   r%  )r   r  r  r}   r:   appendr$   r  r  r&  r'  r+   r(  r!  )r   r3  r)  r*  Zstruct_typer   r1   r
   r
   r   test_nested_auto_chunking  s,   
r8  c                  C      dgd } t j| t  d}t|t jsJ t|dksJ t|jdks'J tdt	}t j| |t  d}t|t js?J t|dksGJ t|jdksPJ t j| t 
 d}t|t jsaJ t|dksiJ t|jdksrJ d S )Ns   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai   rA   r   r   r-   r   r$   r  r  r&  r+   chunksrn   Zzerosr4  r  itemsr1   r   r
   r
   r   $test_array_from_pylist_data_overflow	  s   
r?  c                  C   r9  )Nr   l        rA   r   r:  r;  r=  r
   r
   r   &test_array_from_pylist_offset_overflow,	  s   
r@  )r   scalar_datar   r  )r   NN)r   r   Nr   r   i  )r   r   iru   rA   r  r  )r   r"   r  )r   r"   )r   r  r  c                 C   sh   t | |tkrtd tj||d}t| |}||s"J tj| ||d}||s2J d S )Nz&The elements in the set get reordered.rA   )r-   r   rO   skipr   r$   r%   )rs   r   rA  r   expectr   r
   r
   r   !test_array_accepts_pyarrow_scalarD	  s   \
rD  c                 C   s  | t dt dt dg}tjt jdd t | W d    n1 s(w   Y  | dt dd g}tjt jdd t | W d    n1 sOw   Y  | tdt dd g}tjt jdd t | W d    n1 syw   Y  | t dtdd g}tjt jdd t | W d    n1 sw   Y  tjt jdd t jt dgt  d	 W d    n1 sw   Y  tjt jd
d t jt dgt 	 d	 W d    d S 1 sw   Y  d S )Nr   r   r   z'cannot mix scalars with different typesrW   zIpyarrow scalars cannot be mixed with other Python scalar values currentlyz0.1z=Cannot append scalar of type string to builder for type int32rA   z;Cannot append scalar of type int64 to builder for type null)
r   r0  rO   rP   r   r$   rn   float16r   r.   )rs   sequencer
   r
   r   (test_array_accepts_pyarrow_scalar_errors	  sD    "rG  )rb   r/  rg  rE   r  r  sysZ
hypothesishnumpyrn   rO   Zpyarrow.pandas_compatr   Zpyarrowr   Zpyarrow.testsr   Zpyarrow.tests.strategiesZtestsZ
strategiesZpastr   r   r   r:   r/  Zuint16r   r   Zint_type_pairsr}  Znp_int_typesZpa_int_typesr   r   r   r!   r)   r2   r;   r>   r@   rC   rG   rR   rS   rZ   r]   r`   rd   rl   rq   rr   ZSEQUENCE_TYPESZITERABLE_TYPESZCOLLECTIONS_TYPESmarkZparametrizeZparametrize_with_iterable_typesZparametrize_with_sequence_typesZ"parametrize_with_collections_typesrx   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zxfailr   r   r   r   r   r   r   r   r   r   r   r   rE  r   r   r   r$   r   r   r   AssertionErrorr   r}   r.   r0  todayr1  r  rY  Ztime32Ztime64nowrc  rU  r  r  r  r  r  r  r   r   r   r   r   r  r  r  r  Zlarge_memoryr  Zslowr  r  r   r$  r(  r*  r,  r2  r5  r6  rZ  rd  ry  r|  r  r  r  r  r  r  r  r  r  r  Zhave_pandasr  ZskipifplatformZwindows_has_tzdatar  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r  r  givenZ
all_arraysr  r+  r-  r1  r2  r8  r?  r@  r0  ZMonthDayNanoZmonth_day_nano_intervalr  rD  rG  r
   r
   r
   r   <module>   s  		




	




	

	
"

	



	
		



	
		





:C

A
5



"	
"7.4

	

&)

$ * (  "($(&
.    

Z