
    jA             +       |9   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c mZ d ej(                         fd ej*                         fd ej,                         fd ej.                         fd ej0                         fd ej2                         fd	 ej4                         fd
 ej6                         fgZ ee \  ZZ G d d      Z  G d d      Z! G d d      Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z* G d d      Z+d Z,d Z-d Z.d Z/d Z0d  Z1d! Z2e-e.gZ3e
e3ji                  e1       e2e0ge3z   Z5e/ge5z   Z6ejn                  jq                  d"e5      Z9ejn                  jq                  d"e3      Z:ejn                  jq                  d"e6      Z;e;d#        Z<e9d$        Z=e:d%        Z>ejn                  j                  e:d&               Z?ejn                  j                  e:d'               Z@e;d(        ZAe:d)        ZBe:ejn                  jq                  d*ej                  ej                  ej                  ej                  g      d+               ZGe;d,        ZHe:ejn                  jq                  d-e3      ejn                  jq                  d*ej                  ej                  ej                  ej                  g      d.                      ZIejn                  j                  e:d/               ZJe:d0        ZKejn                  j                  e:ejn                  jq                  d1e      d2                      ZLejn                  j                  e;ejn                  jq                  d3e      d4                      ZMejn                  j                  e:ejn                  jq                  d3e      d5                      ZNe:d6        ZOejn                  j                  e:ejn                  jq                  d1e      d7                      ZPejn                  j                  e:ejn                  jq                  d1e      d8                      ZQe:d9        ZRe;d:        ZSejn                  j                  d;        ZTejn                  j                  ejn                  j                  d<eV=      d>               ZWejn                  jq                  d?g d@      dA        ZXejn                  jq                  d?g d@      dB        ZYe;ejn                  jq                  dCe      dD               ZZdE Z[dF Z\dG Z]dH Z^dI Z_ejn                  j                  dJ        Z`dK Zaejn                  j                  e:ejn                  jq                  dLdM ej                         fdN ej                         fdO ej                         fg      ejn                  jq                  dPdQdRg      dS                             Zeejn                  j                  ejn                  jq                  dPdQdRg      dT               Zfejn                  j                  dU        Zgejn                  j                  ejn                  j                  dVeh=      dW               Ziejn                  j                  ejn                  jq                  dXdQdRg ej                         fddg ej                         fg dY ej(                         fg dZ ej                         fej                  j                         dg ej                         fdej                  j                         g ej                         f ej                  d[d[d[      dg ej                  d\      fd ej                  d]d]d]      g ej                  d^      fej                  j                         dg ej                  d^      f ej                  d_`      g ej                  d\      fdadbg ej                         fg dc ej                  dd      fg de ej                         fg df ej                         fg df ej                         fd[d]dgddhddgg ej                  di ej(                         fdj ej*                         fg      fg      dk               Z|ejn                  j                  ejn                  jq                  dXd[d]gddgg ej                   ej.                               fd[d]gdddlgg ej                   ej.                         d]      fd[gd]ddgg ej                   ej.                               fg      dm               Z}dn Z~ejn                  j                  do        Zdp Zejn                  jq                  dq ej                          ej                          ej                         g      dr        Zds Zdt Zejn                  j
                  ejn                  jq                  dq ej                          ej                         g      du               Zejn                  j                  ejn                  j
                  ejn                  jq                  dq ej                          ej                         g      dv                      Zejn                  j
                  ejn                  jq                  dq ej                          ej                          ej                         g      dw               Zdx Zejn                  jq                  dq ej                          ej                          ej                         g      dy        Zdz Zd{ Zd| Zd} Zejn                  jq                  d~ ej                         ddgf ej                         ddgfg      d        Zd Zejn                  jq                  dej                  d\dfej                  ddfej                  d^dfej                  ddfg      d        Zd Zejn                  jq                  dg d      ejn                  jq                  dg d      d               Zejn                  jq                  dg d      d        Zd Zejn                  j.                  d        Zejn                  j2                  d        Zd Zejn                  j                  d        Z G d dej                        Z G d dej                        Z G d dej                        Zd Zejn                  j                  ejB                   d      d        Zejn                  j.                  d        Zejn                  j2                  ejn                  j.                  d               Zejn                  jJ                  ejn                  j.                  d               Zejn                  jJ                  ejn                  j.                  d               Zd Zejn                  j                  d        Zejn                  jq                  dg d      d        Zejn                  jq                  dg d      d        Zd Zejn                  jq                  d*ej                  ej                  ej                  ej                  g      d        Zejn                  j                  d        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zejn                  j                  d        Zd Zd Zd Zejn                  j                  d        Zd Zd Zd ZdÄ ZdĄ Zejn                  jq                  d ej(                          ej*                          ej,                          ej.                          ej0                          ej2                          ej4                          ej6                          ej                          ej                         g
      dƄ        Zejn                  jq                  d ej(                          ej*                          ej,                          ej.                         g      dȄ        ZdɄ Zdʄ Zejn                  jq                  dd\ ej                  d̬`      fd ej                  d̬ͫ      fd^ ej                  d̬Ϋ      fd ej                  dϬΫ      fg      dЄ        Zejn                  j2                  dф        Zejn                  j                   ej                  ej                        d҄               Zejn                  j
                  dӄ        Zejn                  j
                  dԄ        Zejn                  j
                  dՄ        Zejn                  j                  ejn                  j
                  dք               Zejn                  j
                  ejn                  jq                  d ej                         df ej                         dfg      dڄ               Zejn                  j
                  dۄ        Zejn                  j                  ejn                  j
                  d܄               Ze;ejn                  jq                  dg dޢ ej                  dQ       ej                  dR      dg ej                         fg dY ej                  d[       ej                  d]       ej                  d ej.                               g ej.                         fg dߢ ej                  d[      d ej                  d ej.                               g ej.                         fddg ej                  d       ej                  d      g ej                         fg d ej                  d       ej                  d      dg ej                         fdej                  j                         gd ej                  ej                  j                               g ej                         fdej                  j                         gd ej                  ej                  j                          ej                               g ej                         f ej                  d[d[d[      dg ej                   ej                  d[d[d[            dg ej                  d^      f ej                  d_`      g ej                   ej                  d_`            g ej                  d^      fd ej                  dd[d[      gd ej                   ej                  dd[d[            g ej                  d^      f ej                  g d      g ej                   ej                  g d            g ej                         fdidjg ej                  di       ej                  dj      g ej                         fdadbg ej                  da       ej                  db      g ej                         fdadbg ej                  da ej                  d[             ej                  db ej                  d[            g ej                  d[      fg dg ej                  g d      g ej                   ej.                               fdidjgg ej                  didjg      g ej                   ej                               fg dg ej                  g d ej                   ej.                                     g ej                   ej.                               fdidjgg ej                  didjg ej                   ej                                     g ej                   ej                               fg dY ej                  d[ ej(                                ej                  d] ej(                               dg ej(                         fd[dg ej                  d ej,                               dg ej,                         fddg ej                  d ej                  dd             ej                  d ej                  dd            g ej                  dd      fdag ej                  di ej                               g ej                         fdig ej                  di ej                               g ej                         fdag ej                  di ej                               g ej                         fdig ej                  di ej                               g ej                         fdig ej                  di ej                   ej.                          ej                                     g ej                   ej.                          ej                               fdidjg ej                  di ej                   ej.                          ej                                      ej                  dj ej                   ej.                          ej                                     g ej                   ej.                          ej                               fd[g ej                  d[ ej                   ej.                          ej,                                     g ej                   ej.                          ej,                               fdg ej                  ddg ej                  di ej(                         fdj ej(                         fg            g ej                  di ej(                         fdj ej(                         fg      fdg ej                  ddg ej                  di ej(                         fdj ej                         fg            g ej                  di ej(                         fdj ej                         fg      fg      d               Zejn                  j                  e;d               Zy# e$ r dZ
Y w xY w)    N)_pandas_apiint8int16int32int64uint8uint16uint32uint64c                       e Zd Zd Zd Zy)StrangeIterablec                     || _         y N)lst)selfr   s     I/tmp/pip-target-jj7clzyk/lib/python/pyarrow/tests/test_convert_builtin.py__init__zStrangeIterable.__init__4   s	        c                 6    | j                   j                         S r   )r   __iter__r   s    r   r   zStrangeIterable.__iter__7   s    xx  ""r   N)__name__
__module____qualname__r   r    r   r   r   r   3   s    #r   r   c                       e Zd Zd Zd Zy)MyIntc                     || _         y r   value)r   r    s     r   r   zMyInt.__init__<   s	    
r   c                     | j                   S r   r   r   s    r   __int__zMyInt.__int__?   s    zzr   N)r   r   r   r   r"   r   r   r   r   r   ;   s    r   r   c                       e Zd Zd Zy)MyBrokenIntc                     ddz   y )N   r   r   r   s    r   r"   zMyBrokenInt.__int__D   s	    	!r   N)r   r   r   r"   r   r   r   r$   r$   C   s    r   r$   c                      t        j                  t        g d            } t        j                  d      }| j                  |      sJ y )N)r   r&         )paarrayr   equalsarr1arr2s     r   test_iterable_typesr0   H   s5    88OL12D88L!D;;tr   c                      t        j                  t        g             } t        |       dk(  sJ | j                  dk(  sJ | j
                  t        j                         k(  sJ | j                         g k(  sJ y Nr   )r*   r+   r   len
null_counttypenull	to_pylistarrs    r   test_empty_iterabler:   O   sc    
((?2&
'Cs8q==>>Q88rwwy   ==?b   r   c                      t        j                  t        t        d            t        j                         d      } t        j                  d      }| j                  |      sJ y )Nr)   r5   sizer   r&   r(   r*   r+   iterranger   r,   r-   s     r   test_limited_iterator_typesrB   W   sB    88DqN!<D88ID;;tr   c                      t        j                  t        t        d            t        j                         d      } t        j                  d      }| j                  |      sJ y )Nr)   r(   r<   )r   r&   r?   r-   s     r   #test_limited_iterator_size_overflowrD   ]   sB    88DqN!<D88FD;;tr   c                      t        j                  t        t        d            t        j                         d      } t        j                  d      }| j                  |      sJ y )Nr)   
   r<   r>   r?   r-   s     r   $test_limited_iterator_size_underflowrG   c   sB    88DqN"=D88ID;;tr   c                  >   t        j                  d      } t        j                  t        t        d                  }|j	                  |       sJ t        j                  t        t        d            t        j
                               }|j	                  |       sJ y )Nr>   r)   r5   )r*   r+   r@   rA   r,   r   expectedr.   s     r   test_iterator_without_sizerL   i   sh    xx	"H88DqN#D;;x   88DqN4D;;x   r   c                  H   t        j                  d      } t        j                  t        j                  d      d      }|j	                  |       sJ t        j                  t        j                  d      t        j
                         d      }|j	                  |       sJ y )Nr>   r   r)   r=   r<   )r*   r+   	itertoolscountr,   r   rJ   s     r   test_infinite_iteratorrQ   r   sn    xx	"H88IOOA&Q/D;;x   88IOOA&RXXZa@D;;x   r   c                  T   t        j                  t              5  t        j                  d t        d      D               d d d        t        j                  t              5  t        j                  d t        d      D        d       d d d        y # 1 sw Y   SxY w# 1 sw Y   y xY w)Nc              3   &   K   | ]	  }d dz    ywr&   r   Nr   .0xs     r   	<genexpr>z(test_failing_iterator.<locals>.<genexpr>}        ,Q!q&,   rF   c              3   &   K   | ]	  }d dz    ywrT   r   rU   s     r   rX   z(test_failing_iterator.<locals>.<genexpr>   rY   rZ   rN   )pytestraisesZeroDivisionErrorr*   r+   rA   r   r   r   test_failing_iteratorr_   {   s{    	(	) .
,%),-. 
(	) 7
,%),267 7. .7 7s   &B!(BBB'c                       e Zd Zd Zy)ObjectWithOnlyGetitemc                      y)Nr)   r   )r   keys     r   __getitem__z!ObjectWithOnlyGetitem.__getitem__   s    r   N)r   r   r   rd   r   r   r   ra   ra      s    r   ra   c                      t        j                  t        d      5  t        j                  t                      d d d        y # 1 sw Y   y xY w)Nzhas no len()match)r\   r]   	TypeErrorr*   r+   ra   r   r   r   test_object_with_getitemri      s7     
y	7 *
&()* * *s   AAc                     | S r   r   xss    r   _as_listrm      s    Ir   c                     t        |       S r   )tuplerk   s    r   	_as_tuplerp      s    9r   c                 ,    t        j                  |       S r   )collectionsdequerk   s    r   	_as_dequert      s    R  r   c                 j    t        |       D ci c]  \  }}||
 }}}|j                         S c c}}w r   )	enumeratevalues)rl   kvdcts       r   _as_dict_valuesr{      s2    %bM
*DAq1a4
*C
*::< +s   /c                 X    t        j                  t        |       t              }| |d d  |S )Ndtype)npemptyr3   object)rl   r9   s     r   _as_numpy_arrayr      s$    
((3r7&
)CCFJr   c                     t        |       S r   )setrk   s    r   _as_setr      s    r7Nr   seqc                     t        j                   | g d            }t        j                  g d      }|j                  |      sJ y Nr&   r(   r)   r*   r+   r,   r   r.   r/   s      r   test_sequence_typesr      s4    88C	N#D88ID;;tr   c                     t        j                   | g d      g      }t        j                  g dg      }|j                  |      sJ y r   r   r   s      r   test_nested_sequence_typesr      s9    88S^$%D88YK D;;tr   c                     g d}t        j                   | |            }t        |      dk(  sJ |j                  dk(  sJ |j                  t        j
                         k(  sJ |j                         |k(  sJ y )NTNFN   r(   )r*   r+   r3   r4   r5   bool_r7   r   rK   r9   s      r   test_sequence_booleanr      sg    (H
((3x=
!Cs8q==>>Q88rxxz!!!==?h&&&r   c                    t        j                  d      d t        j                  d      d g}t        j                   | |            }|j                  t        j                         k(  sJ |j                         g dk(  sJ y )NTFr   )r   r   r*   r+   r5   r7   r   s      r   test_sequence_numpy_booleanr      sa     bhhuot<H
((3x=
!C88rxxz!!!==?7777r   c           	          t        j                  ddg      }t        j                   | |d   d |d   ddg            }|j                  t        j                         k(  sJ |j                         g dk(  sJ y )NTFr   r&   )TNFTF)r   r+   r*   r5   r   r7   )r   rw   r9   s      r   &test_sequence_mixed_numpy_python_boolsr      si     XXtUm$F
((3q	4D%@A
BC88rxxz!!!==?>>>>r   c                     t        j                   | g             }t        |      dk(  sJ |j                  dk(  sJ |j                  t        j
                         k(  sJ |j                         g k(  sJ y r2   r*   r+   r3   r4   r5   r6   r7   r   r9   s     r   test_empty_listr      sb    
((3r7
Cs8q==>>Q88rwwy   ==?b   r   c                     g ddgd g}t        j                   | |            }t        |      dk(  sJ |j                  dk(  sJ |j                  t        j
                  t        j                               k(  sJ |j                         |k(  sJ y )Nr&   r(   r)   )r*   r+   r3   r4   r5   list_r   r7   r   datar9   s      r   test_nested_listsr      s{    AD
((3t9
Cs8q==>>Q88rxx
++++==?d"""r   factoryc                 :   g ddgd g}t        j                   | |       |t        j                                     }t        |      dk(  sJ |j                  dk(  sJ |j
                   |t        j                               k(  sJ |j                         |k(  sJ y Nr&   r(   rI   r)   )r*   r+   r   r3   r4   r5   r7   )r   r   r   r9   s       r   $test_nested_lists_with_explicit_typer      s     AD
((3t97288:#6
7Cs8q==>>Q88wrxxz****==?d"""r   c                    t        j                  t              5  t        j                   | g ddgdg      t        j
                  t        j                                      d d d        t        j                  t              5  t        j                   | g ddgdg      t        j                  t        j                                      d d d        t        j                  t              5  t        j                   | g ddgdg      t        j                  t        j                                      d d d        t        j                  t              5  t        j                   | g ddgdg      t        j                  t        j                                      d d d        y # 1 sw Y   FxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr&   r(   r)   rI   )
r\   r]   rh   r*   r+   r   r   
large_list	list_viewlarge_list_view)r   s    r   test_list_with_non_listr   
  sP    
y	! B
b1a&!_%BHHRXXZ,@AB	y	! G
b1a&!_%BMM"((*,EFG	y	! F
b1a&!_%BLL,DEF	y	! L
b1a&!_%B,>,>rxxz,JKL LB BG GF FL Ls3   AF&AF3,AF?AG&F03F<?GG	inner_seqc           	      X   t        j                   |  |g        |ddg      d g       |t        j                                     }t        |      dk(  sJ |j                  dk(  sJ |j
                   |t        j                               k(  sJ |j                         g ddgd gk(  sJ y r   )r*   r+   r   r3   r4   r5   r7   )r   r   r   r9   s       r   test_nested_arraysr     s     ((3	"!1a&)41 2
+-C s8q==>>Q88wrxxz****==?rAq640000r   c           	         ddgdd gd g}t        j                   | |      t        j                  t        j                         d            }t	        |      dk(  sJ |j
                  dk(  sJ |j                  t        j                  t        j                         d      k(  sJ |j                         |k(  sJ t        j                  ddgd      t        j                  ddgd      d g}t        j                   | |      t        j                  t        j                         d            }t	        |      dk(  sJ |j
                  dk(  sJ |j                  t        j                  t        j                         d      k(  sJ |j                         ddgddgd gk(  sJ g ddd gd g}g d	gt        j                  g dd      gfD ]i  }t        j                  t        d
      5  t        j                   | |      t        j                  t        j                         d             d d d        k g g d g}t        j                   | |      t        j                  t        j                         d            }t	        |      dk(  sJ |j
                  dk(  sJ |j                  t        j                  t        j                         d      k(  sJ |j                         g g d gk(  sJ y # 1 sw Y   /xY w)Nr&   r(   r)   rI   r   r}   r   )r&   r(   r   r   z&Length of item not correct: expected 2rf   r   )r*   r+   r   r   r3   r4   r5   r7   r   r\   r]   
ValueErrorr   s      r   test_nested_fixed_size_listr   '  si    FQIt$D
((3t9288BHHJ#:
;Cs8q==>>Q88rxx
A....==?d""" HHaV7+RXXq!fG-LD
((3t9288BHHJ#:
;Cs8q==>>Q88rxx
A....==?1v1vt4444 4y$'Drxx	ABC >]]"JL 	>HHSYRXXbhhj!%<=	> 	>> D>D
((3t9288BHHJ#:
;Cs8q==>>Q88rxx
A....==?r2tn,,,	> 	>s   *AK11K;	c                     t        j                   | d d g            }t        |      dk(  sJ |j                  dk(  sJ |j                  t        j
                         k(  sJ |j                         d d gk(  sJ y )Nr(   r   r   s     r   test_sequence_all_noner   K  sk    
((3d|$
%Cs8q==>>Q88rwwy   ==?tTl***r   np_scalar_pa_typec                 z   |\  }}t        t        |      }dd dd t        j                  |      j                  t        j                  |      j                  g}t        j                   | |      |      }t        |      dk(  sJ |j                  dk(  sJ |j                  |k(  sJ |j                         |k(  sJ y Nr&   r)   rI      r(   getattrr   iinfominmaxr*   r+   r3   r4   r5   r7   r   r   np_str_scalarpa_type	np_scalarrK   r9   s          r   test_sequence_integerr   T  s     /M7M*I4D#''))<)@)@BH
((3x=w
/Cs8q==>>Q88w==?h&&&r   r   c                    t        j                  t              5  t        j                   | t
        j                  g      |d       d d d        t        j                   | t
        j                  g      |d      }d g}t        |      dk(  sJ |j                  dk(  sJ |j                  |k(  sJ |j                         |k(  sJ y # 1 sw Y   xY w)NFr5   from_pandasTr&   )r\   r]   r   r*   r+   r   nanr3   r4   r5   r7   r   r   r9   rK   s       r   test_sequence_integer_np_nanr   c  s     
z	" A
bffXW%@A ((3x=wD
ACvHs8q==>>Q88w==?h&&&A As   .CCc                     t        j                  t              5  t        j                   | t
        j                  gg      t        j                  |      d       d d d        t        j                   | t
        j                  gg      t        j                  |      d      }d gg}t        |      dk(  sJ |j                  dk(  sJ |j                  t        j                  |      k(  sJ |j                         |k(  sJ y # 1 sw Y   xY w)NFr   Tr&   r   )r\   r]   r   r*   r+   r   r   r   r3   r4   r5   r7   r   s       r   #test_sequence_integer_nested_np_nanr   t  s     
z	" M
rvvhZrxx'8eLM ((3z?'):
MCxHs8q==>>Q88rxx((((==?h&&&M Ms   ADDc                     g d}t        j                   | |            }t        |      dk(  sJ |j                  dk(  sJ |j                  t        j
                         k(  sJ |j                         |k(  sJ y )Nr&   Nr)   Nr   r(   )r*   r+   r3   r4   r5   r   r7   r   s      r   test_sequence_integer_inferredr     sg    !H
((3x=
!Cs8q==>>Q88rxxz!!!==?h&&&r   c           
         |\  }}t        t        |      } |d      d  |d      d  |t        j                  |      j                         |t        j                  |      j                        g}t        j                   | |      |      }t        |      dk(  sJ |j                  dk(  sJ |j                  |k(  sJ |j                         |k(  sJ y r   r   r   s          r   test_sequence_numpy_integerr     s     /M7M*I!dIaL$"((9-112"((9-1124H ((3x=w
/Cs8q==>>Q88w==?h&&&r   c                    |\  }}t        t        |      } |d      d  |d      d g}| |t        j                  |      j                         |t        j                  |      j                        gz  }t        j                   | |            }t        |      dk(  sJ |j                  dk(  sJ |j                  |k(  sJ |j                         |k(  sJ y )Nr&   r)   r   r(   r   r   s          r   $test_sequence_numpy_integer_inferredr     s     /M7M*I!dIaL$7H288I.223288I.2235 5H
((3x=
!Cs8q==>>Q88w==?h&&&r   c                     g d}t        t        t        |            }t        j                   | |      t        j
                               }|j                         |k(  sJ y )N)r   *   l       l         rI   )listmapr   r*   r+   r   r7   )r   rK   r   r9   s       r   test_sequence_custom_integersr     sF    )HE8$%D
((3t9288:
.C==?h&&&r   c                     t               g}t        j                  t        j                  d      5  t        j
                   | |      t        j                                d d d        y # 1 sw Y   y xY w)Ntried to convert to intrf   rI   )r$   r\   r]   r*   ArrowInvalidr+   r   )r   r   s     r   test_broken_integersr     sK    M?D	r.G	H -
T,- - -s   0A**A3c                     t        j                  d      t        j                  d      g} t        j                  |       }t        j                  ddgd      }|j                  |      sJ t        j                  d      t        j                  d      g} t        j                  |       }t        j                  ddgd      }|j                  |      sJ y )NrF   g      ?float64rI   float32)r   r   r   r*   r+   r,   r   )r   r9   rK   s      r   test_numpy_scalars_mixed_typer     s     HHRL"**S/*D
((4.CxxS		2H::h GGBKC)D
((4.CxxS		2H::hr   z)Type inference for uint64 not implemented)reasonr]   c                  ~   dt        j                  t         j                        j                  g} t	        j
                  | t	        j                               }t	        j
                  t        j
                  | d            }|j                  |      sJ t	        j
                  |       }|j                  |      sJ y )Nr   rI   r   r}   )r   r   r   r   r*   r+   r,   )r   r9   rK   arr_inferreds       r   test_uint64_max_convertr     s     rxx		"&&'D
((4biik
*CxxX67H::h88D>Lx(((r   bits)          @   c                     t        t        d| z               }t        j                  t        t        j
                  f      5  t        j                  d| dz
  z  g|       d d d        t        j                  t        t        j
                  f      5  t        j                  d| dz
  z   dz
  g|       d d d        y # 1 sw Y   ]xY w# 1 sw Y   y xY w)Nzint%dr(   r&   r   r*   r\   r]   OverflowErrorr   r+   r   tys     r   test_signed_integer_overflowr     s    	$Wt^	$	&B	r7	8 (
!q/"B'(	r7	8 -
1?"Q&',- -( (- -s   B<"C<CCc                     t        t        d| z               }t        j                  t        t        j
                  f      5  t        j                  d| z  g|       d d d        t        j                  t        t        j
                  f      5  t        j                  dg|       d d d        y # 1 sw Y   SxY w# 1 sw Y   y xY w)Nzuint%dr(   r   r   s     r   test_unsigned_integer_overflowr     s    	%X_	%	'B	r7	8 "
!t)b!"	r7	8 
"r " " s   B/B;/B8;Ctypc                     t        j                  t        j                        5  t        j                   | dg      |       d d d        y # 1 sw Y   y xY w)N1rI   )r\   r]   r*   r   r+   )r   r   s     r   test_integer_from_string_errorr     s=     
r	' '
cU#&' ' 's   AAc                  &   g d} g d}t        j                  | |      }t        j                  g d      }|j                  |      sJ t        j                  t
              5  t        j                  | |dd         d d d        y # 1 sw Y   y xY w)N)r&   r(   r)   r      )FTFFT)mask)r&   Nr)   r   Nr&   )r*   r+   r,   r\   r]   r   )r   r   resultrK   s       r   test_convert_with_maskr     st    D,DXXd&Fxx-.H==""" 
z	" &
DH%& & &s   #BBc                      dd l } | j                          t        j                         }t        j                  g d       | j                          t        j                         |k(  sJ y )Nr   r   )gccollectr*   total_allocated_bytesr+   )r   bytes_befores     r   test_garbage_collectionr     sK     JJL++-LHH JJL##%555r   c                      g d} t        j                  |       }t        |      dk(  sJ |j                  dk(  sJ |j                  t        j
                         k(  sJ |j                         | k(  sJ y )N      ?      ?N      @NNr   r)   )r*   r+   r3   r4   r5   r   r7   r   r9   s     r   test_sequence_doubler    sb    +D
((4.Cs8q==>>Q88rzz|###==?d"""r   c                     g d} t        j                  |       }g d}t        j                  |      }|j                  |      sJ g d}t        j                  |      }g d}t        j                  |      }|j                  |      sJ y )Nr   )r   r&   Nr  NN)r&   r   Nr  NN)r  r   Nr  NNr   )r   r9   data2r/   data3arr3data4arr4s           r   $test_double_auto_coerce_from_integerr    sn    +D
((4.C+E88E?D::d+E88E?D,E88E?D;;tr   c                  R   g d} g d}g d}t        j                  |        t        j                  t              5  t        j                  |       d d d        t        j                  t              5  t        j                  |       d d d        y # 1 sw Y   AxY w# 1 sw Y   y xY w)N)r   r&   r(   Nl          l       )r   r&   r(   Nl         )r   r&   r(   Nl      )r*   r+   r\   r]   r   )valid_valuesinvalid_valuesinvalid_values2s      r   .test_double_integer_coerce_representable_ranger  -  s    9L5N9O HH\ 
z	" !
 ! 
z	" "
!" "! !" "s   B2BBB&c                     t         j                  }  | d      ddg} | d      dg} | d      dg}t        j                  |t        j                                t	        j
                  t              5  t        j                  |t        j                                d d d        t	        j
                  t              5  t        j                  |t        j                                d d d        y # 1 sw Y   UxY w# 1 sw Y   y xY w)Nr   i   i   i  irI   )r   r   r*   r+   r\   r]   r   )f32r  r  r  s       r   /test_float32_integer_coerce_representable_ranger  =  s    
**CHgz2L#h.N3x!12O HH\

- 
z	" 4
bjjl34 
z	" 5
rzz|45 54 45 5s   2*C0=*C<0C9<Dc                     t        j                  t        d      5  t        j                  ddgt        j
                                d d d        t        j                  t        d      5  t        j                  ddgt        j                                d d d        t        j                  t        d      5  t        j                  ddg       d d d        y # 1 sw Y   xY w# 1 sw Y   QxY w# 1 sw Y   y xY w)	Nztried to convert to booleanrf   TfoorI   ztried to convert to float32r   ztried to convert to double)r\   r]   r   r*   r+   r   r   r   r   r   test_mixed_sequence_errorsr  O  s    	z)F	G 1
$RXXZ01 
z)F	G 2
#uBJJL12 
z)E	F 
#u 1 12 2 s#   ,C+,C':C3C$'C03C<znp_str_scalar,pa_typefloat16r   r   r   TFc                 8   t        t        |      } |d       |d      d  |d      d t        j                  g}t        j                   | |      |      }t        |      dk(  sJ |r|j                  dk(  sJ |j                  dk(  sJ |r|j                  |k(  s%J |j                  t        j                         k(  sJ |j                         d d |d d k(  sJ |r|j                         d	   J y t        j                  |j                         d	         sJ y )
Nr   r&   r  r   r   r)   r(   r   r   )r   r   r   r*   r+   r3   r4   r5   r   r7   isnan)r   r   r   r   r   r   r9   s          r   test_sequence_numpy_doubler  Z  s    M*IcNIaL$	#bffMD
((3t9+
6Cs8q==~~"""~~""" xx7"""xx2::<'''==?2A$r(***}}q!)))xx*+++r   c                 n   t         j                  t        fD ]  }t        j                   |ddg       |g d       |t         j                  g      d gt              }t        j                  ||       }t        |      dk(  sJ |j                  dk(  sJ |j                  t        j                  t        j                               k(  sJ | r|j                         ddgg dd gd gk(  rJ t         j                  j                  |j                         ddgg dt         j                  gd g        y )Nr         @)r  r        @r}   r  r   r&   )r   r+   r   r   r   r*   r3   r4   r5   r   r   r7   testingassert_equal)r   r   r   r9   s       r    test_ndarray_nested_numpy_doubler!  y  s    hh% N	xxr2hl#rvvh	

  hht53x1}}~~"""xx288BJJL1111==?Sz?TFD&QQQQJJ##CMMO&("X|bffXt$LNNr   c                  v   t        j                  dt              } t        j                  ddgt         j                        t        j                  ddgt         j                        g| d d  t        j                  dt              }ddg|d<   ddg|d<   t        j                  t        j                  t        j                                     }t        j                  | g      |k(  sJ t        j                  | |g      }t        j                  ddgddggddgddggg|	      }|j                  |      sJ t        j                  dt              } t        j                  dg      t        j                  dg      g| d d  t        j                  | | g      }|j                         dgdggdgdgggk(  sJ y )
Nr(   r}   r&   r)   r   r   r   r   rI   )
r   r   r   r+   r   r*   r   
infer_typer,   r7   r9   r/   expected_typer   rK   s        r   #test_nested_ndarray_in_object_arrayr&    sw    ((1F
#Chh1vRXX.hh1vRXX.0CF 88AV$D!fDG!fDGHHRXXbhhj12M==#=000XXsDk"Fxx1a&1a&)QFQF+;<*,H ==""" ((1F
#ChhsmRXXqc]+CFXXsCj!FA3*sQCj!9999r   z?Type inference for multidimensional ndarray not yet implementedc                     t        j                  ddgddggt         j                        } t        j                  ddgddggt         j                        }t        j                  t        j                  t        j                                     }t        j
                  | g      |k(  sJ t        j                  | |g      }t        j                  ddgddggddgddggg|      }|j                  |      sJ y )	Nr&   r(   r)   r}   r   r   r   rI   )r   r+   r   r*   r   r#  r,   r$  s        r   ,test_multidimensional_ndarray_as_nested_listr(    s     ((QFQF#288
4C88aVaV$BHH5DHHRXXbhhj12M==#=000XXsDk"Fxx1a&1a&)QFQF+;<*,H =="""r   )r   
value_typer&   r(   N)r&   r  r  Nr&   sr(   usrF   )seconds   a   b)s   aaas   bbbs   cccr)   )r.  r/     cabcr2  r3  r   r2  r3  c                     t        j                  |      }t        j                  | t              }t        j                  |g|      }|j
                  j                  |      sJ |j                         | gk(  sJ y Nr}   rI   )r*   r   r   r+   r   r5   r,   r7   )r   r)  r   ndarrayr9   s        r   #test_list_array_from_object_ndarrayr9    s`    . 
*	Bhht6*G
((G92
&C88??2==?tf$$$r   r   c                 n   t        j                  t        |       t              }| D cg c]  }t        j                  |t               c}|d d  t        j                  |      }t        j                  |g|      }|j                  j                  |      sJ |j                         | gk(  sJ y c c}w r7  )
r   r   r3   r   r+   r*   r   r5   r,   r7   )r   r)  r8  itemr   r9   s         r   *test_nested_list_array_from_object_ndarrayr<    s     hhs4y/G;?@4"((4v.@GAJ	*	B
((G92
&C88??2==?tf$$$ As   "B2c                  8   t        j                  t              5  t        j                  t        d      dg       d d d        t        j                  t        d      dgd      } t        j                  d dg      }| j                  |      sJ y # 1 sw Y   VxY w)Nr   strTr  )r\   r]   r   r*   r+   floatr,   )r9   rK   s     r   !test_array_ignore_nan_from_pandasr@    sy     
z	" (
%,&'( ((E%L%(d
;Cxxu&H::h( (s   !BBc                     t        j                  g dd      d t        j                  g dd      g} t        j                  |       }t        j                  g dd g dgt        j                  t        j                                     }|j                  |      sJ t        j                  t        j                               }t        j                  | |      }|j                  |      }|j                  |      sJ y )Nr   r   r}   )r   r   r   r
   rI   )r   r+   r*   r   r   r,   r
   cast)r   r9   rK   t2r/   	expected2s         r   $test_nested_ndarray_different_dtypesrE    s     	'*
(+D ((4.CxxD)4XXbhhj13H::h	"))+	B88Dr"Db!I;;y!!!r   c                      g d} t        j                  |       }t        |      dk(  sJ |j                  dk(  sJ |j                  t        j
                         k(  sJ |j                         | k(  sJ y )Nr  barN   mañanar   r&   )r*   r+   r3   r4   r5   stringr7   r  s     r   test_sequence_unicoderK  
  sb    *D
((4.Cs8q==>>Q88ryy{"""==?d"""r   r   c                     g d}t        j                  ||       }t        |      dk(  sJ |j                  dk(  sJ |j                  | k(  sJ |j                         |k(  sJ y )NrG  rI   r   r&   )r*   r+   r3   r4   r5   r7   )r   r   r9   s      r   #test_sequence_unicode_explicit_typerM    s]    *D
((4b
!Cs8q==>>Q88r>>==?d"""r   c                 `   ddt        d      g}g d}g d}t        j                  |      }t        j                  |t        j                               }|j                  t        j                         k(  sJ |j                  |      sJ t        j                  ||       }t        j                  ||       }|j                  | k(  sJ |j                  |      sJ t        j                  ||      }t        j                  ||      }|j                  |k(  sJ |j                  |      sJ y )Nqux   foo   barz)s   quxrP  rQ  )rO  r  barzrI   )	bytearrayr*   r+   binaryr5   r,   )binary_typestring_typerw   b_valuesu_valuesr9   rK   s          r   check_array_mixed_unicode_bytesrY    s    VYw/0F(H%H
((6
Cxxryy{3H88ryy{"""::h
((6
,Cxx{3H88{"""::h
((6
,Cxx{3H88{"""::hr   c                  $   t        t        j                         t        j                                t        t        j                         t        j
                                t        t        j                         t        j                                y r   )rY  r*   rT  rJ  large_binarylarge_stringbinary_viewstring_viewr   r   r   test_array_mixed_unicode_bytesr_  2  sH    #BIIK=#BOO$5r7HI#BNN$4bnn6FGr   c                     d}t        j                  dt        |      z        }|g|z  }t        j                  ||       }t        |t        j                        sJ |j                  | k(  sJ t        |      |k(  sJ y )Nsh  0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz       rI   )mathceilr3   r*   r+   
isinstanceArrayr5   )r   r+  nrepeatsr   r9   s        r   test_large_binary_arrayrg  8  sq     	5Ayy)s1v-.H3>D
((4b
!Cc288$$$88r>>s8xr   c                 ^   d}t        j                  dt        |      z        }t        j                  d||z  d dg|       }t        |t        j                        sJ |j                  | k(  sJ t        |      dk(  sJ |d   j                         }t        |      t        |      |z  k(  sJ y )N$   0123456789abcdefghijklmnopqrstuvwxyzra  rP     barrI   r   r&   )	rb  rc  r3   r*   r+   rd  re  r5   	as_buffer)r   r+  rf  r9   bufs        r   test_large_binary_valuerm  E  s    
 	0Ayy)s1v-.H
((FAL$7b
ACc288$$$88r>>s8q==
a&


Cs8s1v((((r   c                     d}t        j                  dt        |      z        }t        j                  t
        j                        5  t        j                  d||z  d dg|        d d d        y # 1 sw Y   y xY w)Nri  ra  rP  rj  rI   )rb  rc  r3   r\   r]   r*   ArrowCapacityErrorr+   )r   r+  rf  s      r   test_string_too_largerp  T  sf     	0Ayy)s1v-.H	r,,	- @
&!h,f5B?@ @ @s   A//A8c                     d} dt        d      t        d      d d d   | j                  d      t        d      d g}d t        j                         t        j
                         t        j                         fD ]z  }t        j                  ||      }t        |      d	k(  sJ |j                  d
k(  sJ |j                  |k(  st        j                         sJ |j                         ddd| dd gk(  rzJ  y )Ns   mañanarP  s   dadas   d-a-t-ar(   zutf-8rj  rI   r   r&   s   data)
memoryviewdecoderS  r*   rT  r[  r]  r+   r3   r4   r5   r7   )u1r   r   r9   s       r   test_sequence_bytesru  ^  s    	Bwz"3Q3'IIgfD RYY["//"3R^^5EF Ohht"%3x1}}~~"""xx2~,,}}67GR"NNNNOr   c                 N   g d}t        j                  ||       }|j                  | k(  sJ |d   j                         dk(  sJ dj	                  d      }t        j                  t         j                        5  t        j                  |g|        d d d        y # 1 sw Y   y xY w)N)rP  Nrj  rI   r   r  rI  z	utf-16-le)r*   r+   r5   as_pyencoder\   r]   r   )r   r   r9   vals       r   test_sequence_utf8_to_unicoderz  o  s     "D
((4b
!C88r>>q6<<>U""" 

[
)C	r	' !
#R ! ! !s   9BB$c                  .   dd t        d      dg} t        j                  | t        j                  d            }t	        |      dk(  sJ |j
                  dk(  sJ |j                  t        j                  d      k(  sJ |j                         g dk(  sJ y )N   foof   barb   2346r   rI   r&   )r|  Nr}  r~  )rS  r*   r+   rT  r3   r4   r5   r7   r  s     r   test_sequence_fixed_size_bytesr  }  s~    T9W-w7D
((4biil
+Cs8q==>>Q88ryy|###==?????r   c                      g d} t        j                  t        j                        5  t        j                  | t        j
                  d             d d d        y # 1 sw Y   y xY w)N)rP  Nr}  r~  r   rI   )r\   r]   r*   r   r+   rT  r   s    r   5test_fixed_size_bytes_does_not_accept_varying_lengthsr    sB    +D	r	' *
BIIaL)* * *s   +AA%c                      dg} t        | d         dk(  sJ t        j                  d      }t        j                  | |      }|j	                         | k(  sJ y )Ns   h    Ar      rI   )r3   r*   rT  r+   r7   )r   r   r9   s      r   #test_fixed_size_binary_length_checkr    sQ    78DtAw<2	2B
((4b
!C==?d"""r   c                  x   t        j                  ddd      d t        j                  ddd      t        j                  ddd      g} t        j                  |       }t	        |      dk(  sJ |j
                  t        j                         k(  sJ |j                  dk(  sJ |d   j                         t        j                  ddd      k(  sJ |d   j                         J |d   j                         t        j                  ddd      k(  sJ |d	   j                         t        j                  ddd      k(  sJ y )
N  r&   i  i  r(      r   r   r)   )	datetimedater*   r+   r3   r5   date32r4   rw  r  s     r   test_sequence_dater    s   MM$1%tX]]4A-FMM$2&(D
((4.Cs8q==88ryy{""">>Qq6<<>X]]4A6666q6<<>!!!q6<<>X]]4A6666q6<<>X]]4B7777r   inputi*  l    ,Uqc                    | \  }}t        j                  ddd      d g}t        j                  ||      }t        j                  ||      }||fD ]v  }t	        |      dk(  sJ |j
                  |k(  sJ |j                  dk(  sJ |d   j                         t        j                  ddd      k(  sJ |d   j                         vJ  y )Nr  r&   rI   r(   r   )r  r  r*   r+   r3   r5   r4   rw  )r  t	ex_valuesr   r9   r/   rW   s          r   test_sequence_explicit_typesr    s     LAyMM$1%t,D
((4a
 C88IA&D4[ $1v{{vv{{||q   tzz|x}}T1a8888tzz|###$r   c                      dd g} t        j                  t        t        j                  f      5  t        j
                  | t        j                                d d d        y # 1 sw Y   y xY w)Nl        rI   )r\   r]   r   r*   ArrowExceptionr+   r  )r  s    r   test_date32_overflowr    sK    DME	r'8'89	: *
RYY[)* * *s   *A!!A*)	time_typeunitint_typemsnsc           
      *   fd}fd}t        j                  dddd      t        j                  dddd	      d t        j                  d
ddd      t        j                  dddd      g} |       }t        j                  ||      }t	        |      dk(  sJ |j
                  |k(  sJ |j                  d
k(  sJ |j                  |      }t        t        ||            }	|j                         |	k(  sJ |d   j                          ||d         k(  sJ |d
   j                          ||d
         k(  sJ |d   j                         J |d   j                          ||d         k(  sJ |d   j                          ||d         k(  sJ dd}
y )Nc                     g d}d|j                        dz  z  }| y | j                  dz  | j                  dz  z   | j                  z   | j                  dz  z   }t        ||z        S )Nr+  r  r,  r  rF   r)   i  <   gư>)indexhourminutesecondmicrosecondint)r  units
multiplierr-  r  s       r   expected_integer_valuez@test_sequence_time_with_timezone.<locals>.expected_integer_value  s{     (%++d+a/0
9FFTMHHrMHH MMF"# 	 7Z'((r   c                     dk(  r| j                  d      S dk(  r"| j                  | j                  dz  dz        S | S )Nr+  r   r  r    )replacer  )r  r  s    r   expected_time_valuez=test_sequence_time_with_timezone.<locals>.expected_time_value  sH     3;999++T\99!--4*?4)G9HHHr   r      "   @ r   r   r  r&      8   雙 rF   í rI   r(   r)   r   c                 Z    t        j                  | |      }t        j                  |      S )N)hoursminutes)r  	timedeltatimezone)r  r  offsets      r   tzz,test_sequence_time_with_timezone.<locals>.tz  s%    ##%A  ((r   )r   )r  timer*   r+   r3   r5   r4   rB  r   r   r7   rw  )r  r  r  r  r  r   r   r9   rw   rK   r  s    `         r    test_sequence_time_with_timezoner    s   ) 	aR(aAt$aR(b"a(D 
4B
((4b
!Cs8q==88r>>>>Q XXhFC.56H))) q6<<>0a9999q6<<>0a9999q6<<>!!!q6<<>0a9999q6<<>0a9999)r   c                     t        j                   ddddddd      d t        j                   dddd	dd
d      t        j                   ddddddd      g} t        j                  |       }t        |      dk(  sJ |j                  t        j
                  d      k(  sJ |j                  dk(  sJ |d   j                         t        j                   ddddddd      k(  sJ |d   j                         J |d   j                         t        j                   dddd	dd
d      k(  sJ |d   j                         t        j                   ddddddd      k(  sJ y N        r&   r  r  r    r  r  r    r   r   .   9   r  r   r,  r   r(   r)   )r  r*   r+   r3   r5   	timestampr4   rw  r  s     r   test_sequence_timestampr    sd   $2q"b&9$2r2r6:$2q"b&9	D ((4.Cs8q==88r||D))))>>Qq6<<>X..tQA/12v? ? ? ?q6<<>!!!q6<<>X..tQB/12v? ? ? ?q6<<>X..tQA/12v? ? ? ?r   r  )NUTCz	Etc/GMT-1zEurope/Budapestr  r  c                 2    t        j                  d      fd} fd}t        j                  dddddd	d
      j                  j	                  t        j                  ddddddd            d j                  d      j	                  t        j                  ddddd	dd            j                  d      j	                  t        j                  ddddddd            g}j                  j	                  |d         |d   d |d   j                  j                        |d   j                  j                        g}t        j                         }t        j                  ||      }t        |      dk(  sJ |j                  |k(  sJ |j                  dk(  sJ |j                  d      }t        t        ||            }	|j!                         |	k(  sJ t#        t        |            D ]#  }
||
   j%                          |||
         k(  r#J  y )Npytzc                     g d}d|j                        dz  z  }| y t        j                  t        | j	                                     }t        ||z        S )Nr  rF   r)   )r  decimalDecimalr>  r  r  )dtr  r  tsr  s       r   r  zEtest_sequence_timestamp_with_timezone.<locals>.expected_integer_value  sR    '%++d+a/0
: R\\^!45BrJ''r   c                     | y dk(  r| j                  d      } n'dk(  r"| j                  | j                  dz  dz        } | j                  d       S | j                  j                              S )Nr+  r   r  r  r  tzinfo)r  r  
astimezoner  )r  r  r  r  s    r   expected_datetime_valuezFtest_sequence_timestamp_with_timezone.<locals>.expected_datetime_value'  sz    :3;*BT\4)?4(GHB ::T:** ==x!899r   r  r  r  r   r  r  r    r&   r   r   r  
US/Easternr  r  r  r  Europe/Moscowr  r  r)   r   r  rI   r   )r\   importorskipr  utclocalizer  r  r*   r  r+   r3   r5   r4   rB  r   r   r7   rA   rw  )r  r  r  r  r   utcdatar   r9   rw   rK   ir  s   ``         @r   %test_sequence_timestamp_with_timezoner    s    v&D(:$ 	$2q"b&9dAq!Q48	
 	l#,,dAr2r2v>	
 	o&//dAr1aF;	
D 	$q'"QQ488$Q488$G 
dx	(B
((4b
!Cs8q==88r>>>>Q XXgFC.89H))) 3s8_ E1v||~!8!DDDDEr   c                    t        j                  d       dd l}| j                  dd       t	        j                  ddddd	d
d      |j
                  j                  t	        j                  ddddddd            |j                  d      j                  t	        j                  ddddd
dd            |j                  d      j                  t	        j                  ddddddd            g}|D cg c]  }|j                  d        }}|/|j                  |      }|D cg c]  }|j                  |       }}t        j                  d|      }t        j                  ||      }|j                         |k(  sJ y c c}w c c}w )Nr  r   PYARROW_IGNORE_TIMEZONEr   r  r  r  r   r  r  r  r  r&   r   r  r  r  r  r  r  r  r  r  r  r,  r  rI   )r\   r  r  setenvr  r  r  r  r  fromutcr*   r  r+   r7   )	monkeypatchr  r  r   r  rK   r  r   r9   s	            r   1test_pyarrow_ignore_timezone_environment_variabler  ]  sg    0#6$2q"b&9dAq!Q48	
 	l#,,dAr2r2v>	
 	o&//dAr1aF;	
D 377B

$
'7H7x(19:2FNN2&::	dx	(B
((4b
!C==?h&&& 8 ;s   /E?!Fc                     t        j                  d       dd l} t        j                  ddddddd	      | j                  j                  t        j                  d
dddddd            d | j                  d      j                  t        j                  ddddddd            | j                  d      j                  t        j                  ddddddd            g}t        j                  dd       t        j                  dd      t        j                  dd       t        j                  dd      t        j                  dd      g}t        ||      D ]1  \  }}|g|z   }t        j                  |      }|j                  |k(  r1J  y )Nr  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  zipr+   r5   )r  r   rK   r  r%  	prependedr9   s          r   /test_sequence_timestamp_with_timezone_inferencer    sb   
 	$2q"b&9dAq!Q48	
 	l#,,dAr2r2v>	
 	o&//dAr1aF;	
D 	Td#
Te$
Td#
Tl+
To.H !x0 )MD4K	hhy!xx=((()r   c                     t        j                  d       dd l} t        j                  ddddddd	      t        j                  d
ddddddt        j                  j
                        d t        j                  ddddddd| j                  d            t        j                  ddddddd| j                  d            g}t        j                  dd       t        j                  dd      t        j                  dd       t        j                  dd      t        j                  dd      g}t        ||      D ]1  \  }}|g|z   }t        j                  |      }|j                  |k(  r1J  y )Nzoneinfor   r  r  r  r   r  r  r  r  r&   r   r  r  r  r  r  r  r  )rc   r  r  r  r,  r  r  )r\   r  r  r  r  r  ZoneInfor*   r  r  r+   r5   )r  r   rK   r  r%  r  r9   s          r   8test_sequence_timestamp_with_zoneinfo_timezone_inferencer    sW   

# 	$2q"b&9$1aAt!)!2!2!6!6	8$2r2r6!)!2!2|!2!D	F$2q!Q!)!2!2!2!G	I	D 	Td#
Te$
Td#
Tl+
To.H !x0 )MD4K	hhy!xx=((()r   c                     t        j                  d       dd l} dd l}|j	                  d| j                  d      d      t        j                  ddd	d
ddd      | j                  j                  t        j                  ddddddd            d g}|d   j                  | j                        | j                  j                  |d         |d   j                  | j                        d g}t        j                  |      }|j                  t        j                  dd      k(  sJ |j                  d      }|D cg c]"  }|rt        |j                         dz        nd $ }}|j!                         |k(  sJ y c c}w )Nr  r   l   {FK| r  r  )r  r  r  r  r  r   r  r  r  r  r&   r   r  r(   r,  r  r   i@B )r\   r  r  pandas	Timestampr  r  r  r  r  r*   r+   r5   r  rB  r  r7   )r  pdr   r  r9   rw   r  rK   s           r   ?test_sequence_timestamp_from_mixed_builtin_and_pandas_datetimesr    s[   
 	(T]]<-H 	 	 $2q"b&9dAq!Q48	
 	D 	Q488$$q'"Q488$	G ((4.C88r||D\::::XXgFFMNrBLLNU*+t;NHN))) Os   :'E9c                  R   t        j                   ddd      g} t        j                  t        d      5  t	        j
                  | t	        j                  d             d d d        t	        j
                  | t	        j                  d            }|j                         | k(  sJ t        j                  t        j                  d	
            }t        j                   dddd|      g} t        j                  t        d      5  t	        j
                  | t	        j                  d             d d d        t	        j
                  | t	        j                  d            }|j                         d   t        j                   ddd      k(  sJ y # 1 sw Y   3xY w# 1 sw Y   nxY w)Ni  r   r  zout of boundsrf   r  rI   r,  r   )r  r  r  r  r   )
r  r\   r]   r   r*   r+   r  r7   r  r  )r   r9   r  s      r   0test_sequence_timestamp_out_of_bounds_nanosecondr    s9    dAr*+D	z	9 0
BLL./0 ((4bll40
1C==?d""" 
		8--B7	8BdAr2b9:D	z	9 0
BLL./0 ((4bll40
1C==?1!2!24B!????0 00 0s   +F+FFF&c                     t        j                  t        j                  ddddddd            d t        j                  t        j                  dddd	dd
d            t        j                  t        j                  ddddddd            g} t        j                  |       }t        |      dk(  sJ |j                  t        j                  d      k(  sJ |j                  dk(  sJ |d   j                         t        j                  ddddddd      k(  sJ |d   j                         J |d   j                         t        j                  dddd	dd
d      k(  sJ |d   j                         t        j                  ddddddd      k(  sJ y r  )
r   
datetime64r  r*   r+   r3   r5   r  r4   rw  r  s     r   test_sequence_numpy_timestampr    s    	h''aQBGH
h''aRRHI
h''aQBGH	D ((4.Cs8q==88r||D))))>>Qq6<<>X..tQA/12v? ? ? ?q6<<>!!!q6<<>X..tQB/12v? ? ? ?q6<<>X..tQA/12v? ? ? ?r   c                       e Zd Zy)MyDateNr   r   r   r   r   r   r  r        r   r  c                       e Zd Zy)
MyDatetimeNr  r   r   r   r  r    r  r   r  c                       e Zd Zy)MyTimedeltaNr  r   r   r   r  r  
  r  r   r  c            
         t        ddd      g} t        j                         }t        j                  | |      }t	        |      dk(  sJ |j
                  |k(  sJ |d   j                         t        j                  ddd      k(  sJ t        ddddddd	      g} t        j                  d
      }t        j                  d      }t        j                  d      }t        j                  | |      }t	        |      dk(  sJ |j
                  |k(  sJ |d   j                         t        j                  ddddddd      k(  sJ t        j                  | |      }t	        |      dk(  sJ |j
                  |k(  sJ |d   j                         t        j                  ddddddd      k(  sJ t        j                  | |      }t	        |      dk(  sJ |j
                  |k(  sJ |d   j                         t        j                  ddddddd	      k(  sJ t        ddd      g} t        j                  d
      }t        j                  d      }t        j                  d      }t        j                  |       }t	        |      dk(  sJ |j
                  |k(  sJ |d   j                         t        j                  ddd      k(  sJ t        j                  | |      }t	        |      dk(  sJ |j
                  |k(  sJ |d   j                         t        j                  dd      k(  sJ t        j                  | |      }t	        |      dk(  sJ |j
                  |k(  sJ |d   j                         t        j                  ddd      k(  sJ t        j                  | |      }t	        |      dk(  sJ |j
                  |k(  sJ |d   j                         t        j                  ddd      k(  sJ y )Nr  r  r  rI   r&   r   r  r  r  r+  r  r,  ix {   i  i  r  )r  r*   r  r+   r3   r5   rw  r  r  r  r  r  durationr  )	r   	date_typearr_dater+  r  r,  arr_sarr_msarr_uss	            r   test_datetime_subclassingr    s   tQD 		Ixx9-Hx=A==I%%%A;(--a"<<<< 	4B2r62D 	SA	d	B	d	BHHT"Eu:??::??8>>x00q"a13R < < < < XXd$Fv;!;;"!9?? 1 1$2q24b&!B B B B XXd$Fv;!;;"!9?? 1 1$2q24b&!B B B B 	Cd#D 	CA	T	B	T	BHHTNEu:??::8>>x11#sDAAAAHHT"Eu:??::??8>>x11#s;;;;XXd$Fv;!;;"!9?? 2 23T BBBBXXd$Fv;!;;"!9?? 2 23T BBBBr   z)pandas required for nanosecond conversion)r   c                  j   t        j                   ddddddd      gt        ddddddd      gg} | D ]  }t        j                  d      }t        j                  ||	      }t        |      dk(  sJ |j                  |k(  sJ |d
   j                         t        j                   ddddddd      k(  rJ  y )Nr  r  r  r&   r  r  r  r  rI   r   )r  r  r*   r  r+   r3   r5   rw  )inputsr   r  arr_nss       r   #test_sequence_timestamp_nanosecondsr
  O  s     
		4B2r6	:;	D!RBF	34F
  F\\$$R(6{a{{b   ay H$5$5dAr168"f%F F 	F FFr   c                  &   dg} t        j                  d      }t        j                  d      }t        j                  d      }t        j                  | |      }t        |      dk(  sJ |j                  |k(  sJ t        |d         dk(  sJ t        |d         dk(  sJ t        j                  | |      }t        |      dk(  sJ |j                  |k(  sJ t        |d   j                               d	k(  sJ t        |d         d
k(  sJ t        j                  | |      }t        |      dk(  sJ |j                  |k(  sJ t        |d   j                               dk(  sJ t        |d         dk(  sJ t        } G d d      }t        j                  d      t        j                         t        j                         fD ]>  }	t        j                  |      5  t        j                  d |       g|	       d d d        @ y # 1 sw Y   KxY w)Nr&   r+  r  r,  rI   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.001000)datetime.datetime(1970, 1, 1, 0, 0, 0, 1)1970-01-01 00:00:00.000001c                       e Zd Zy)?test_sequence_timestamp_from_int_with_unit.<locals>.CustomClassNr  r   r   r   CustomClassr    s    r   r  r  )r*   r  r+   r3   r5   reprr>  rw  rh   r  date64r\   r]   )
r   r+  r  r,  r  r  r  expected_excr  r   s
             r   *test_sequence_timestamp_from_int_with_unitr  `  s   3D
SA	d	B	d	BHHT"Eu:??::??a>:   uQx=1111XXd$Fv;!;;"q	!"6   vay>9999XXd$Fv;!;;"q	!"3   vay>9999L  ||D!299;		< 2]]<( 	2HHa'b1	2 	22	2 	2s   HH	c                  H   dd l } dg}t        j                  d      }t        j                  ||      }t	        |      dk(  sJ |j
                  |k(  sJ |d   j                         }t        || j                        sJ t        |      dk(  sJ t        |d         dk(  sJ y )Nr   r&   r  rI   z*Timestamp('1970-01-01 00:00:00.000000001')z1970-01-01 00:00:00.000000001)r  r*   r  r+   r3   r5   rw  rd  r  r  r>  )r  r   r  r	  r   s        r   5test_sequence_timestamp_from_int_with_unit_nanosecondr    s    
 3D	d	BXXd$Fv;!;;"AY__Ffbll+++<4   vay><<<<r   c                  *   dg} t        j                  d      }t        j                  | |      }t        |      dk(  sJ |j                  |k(  sJ t        j                  t        d      5  |d   j                          d d d        y # 1 sw Y   y xY w)Nr&   r  rI   z&not safely convertible to microsecondsrf   r   )	r*   r  r+   r3   r5   r\   r]   r   rw  )r   r  r	  s      r   :test_sequence_timestamp_from_int_nanosecond_without_pandasr    s    
 3D	d	BXXd$Fv;!;;"	z)Q	R q	  s   ,B		Bc                     dg} t        j                  d      }t        j                  | |      }t        |      dk(  sJ |j                  |k(  sJ |d   j                         }t        |      dk(  sJ t        |d         dk(  sJ y )Nr  r  rI   r&   r   r  r  )r*   r  r+   r3   r5   rw  r  r>  )r   r  r	  r   s       r   Dtest_sequence_timestamp_from_int_nanosecond_divisible_without_pandasr    s    
 6D	d	BXXd$Fv;!;;"AY__F<3   vay>9999r   c                     t        j                  ddd      } t        j                  ddd      }| d |g}t        j                  |      }t	        |      dk(  sJ |j
                  t        j                  d      k(  sJ |j                  dk(  sJ |d   j                         | k(  sJ |d   j                         J |d   j                         |k(  sJ y 	Nr(   i  r&   d   r  r)   r,  r   )	r  r  r*   r+   r3   r5   r   r4   rw  td1td2r   r9   s       r   test_sequence_durationr!    s    


Qa
(C


QT
*CsD
((4.Cs8q==88r{{4((((>>Qq6<<>S   q6<<>!!!q6<<>S   r   c                     t        j                  ddd      } t        j                  ddd      }t        j                  |       d t        j                  |      g}t	        j
                  |      }t        |      dk(  sJ |j                  t	        j                  d      k(  sJ |j                  dk(  sJ |d   j                         | k(  sJ |d   j                         J |d   j                         |k(  sJ y r  )r  r  r   timedelta64r*   r+   r3   r5   r   r4   rw  r  s       r    test_sequence_duration_np_scalarr$    s    


Qa
(C


QT
*CNN3r~~c':;D
((4.Cs8q==88r{{4((((>>Qq6<<>S   q6<<>!!!q6<<>S   r   c                    t        j                  ddd      g}t        j                  dd      t        j                  ddd      t        j                  ddd      t        j                  ddd      d}t        j                  |       }t        j                  ||      }t        |      dk(  sJ |j                  |k(  sJ |d   j                         ||    k(  sJ y )	Nr)      i  r  r  rI   r&   r   )r  r  r*   r   r+   r3   r5   rw  )r  r   rK   r   r  s        r    test_sequence_duration_with_unitr'    s     	1b$'D ''2.((B5((B5((B57H
 
T	BHHT#Eu:??::8>>x~---r   c                     dg}t        j                  |       }t        j                  ||      }t        |      dk(  sJ |j                  |k(  sJ |d   j
                  dk(  sJ y )Nr   rI   r&   r   )r*   r   r+   r3   r5   r    )r  r   r   r9   s       r   )test_sequence_duration_from_int_with_unitr)    s]    3D	T	B
((4b
!Cs8q==88r>>q6<<1r   c                  P   t        j                  ddd      } t        j                  dd      }| d g| |gg}t        j                  |      }t	        |      dk(  sJ |j
                  t        j                  t        j                  d            k(  sJ |j                         |k(  sJ y )Nr&   r  r  r(   r,  )	r  r  r*   r+   r3   r5   r   r   r7   r  s       r   #test_sequence_duration_nested_listsr+    s    


Q4
(C


Q
$C$K#s$D
((4.Cs8q==88rxxD 12222==?d"""r   c                 l   t        j                  ddd      }t        j                  dd      }|d g||gg}t        j                  | | t        j                  d                  }t        |      dk(  sJ |j                   | t        j                  d            k(  sJ |j                         |k(  sJ y )Nr&   r  r  r  rI   r(   )r  r  r*   r+   r   r3   r5   r7   )r   r  r   r   r9   s        r   6test_sequence_duration_nested_lists_with_explicit_typer-  	  s     

Q4
(C


Q
$C$K#s$D
((4gbkk$&78
9Cs8q==88wr{{401111==?d"""r   c                     t        j                  ddd      } t        j                  dd      }t        j                  |       d gt        j                  |       t        j                  |      gg}t	        j
                  |      }t        |      dk(  sJ |j                  t	        j                  t	        j                  d            k(  sJ |j                         | d g| |ggk(  sJ t        j
                  t        j                  |       d gd      t        j
                  t        j                  |       t        j                  |      g      g}t	        j
                  |      }t        |      dk(  sJ |j                  t	        j                  t	        j                  d            k(  sJ |j                         | d g| |ggk(  sJ y )Nr&   r  r  r(   r,  ztimedelta64[us]r}   )r  r  r   r#  r*   r+   r3   r5   r   r   r7   r  s       r   )test_sequence_duration_nested_lists_numpyr/    sj   


Q4
(C


Q
$C^^C $'^^C ".."568D ((4.Cs8q==88rxxD 12222==?T{S#J7777HHbnnS)408IJHHbnnS)2>>#+>?@BD ((4.Cs8q==88rxxD 12222==?T{S#J7777r   c                      g d} t        j                  |       }|j                  t        j                         k(  sJ |j	                         | k(  sJ dgdgd g} t        j                  |       }|j                  t        j
                  t        j                               k(  sJ |j	                         | k(  sJ dgg dd gg} t        j                  |       }|j                  t        j
                  t        j                               k(  sJ |j	                         | k(  sJ d d dggg dd gd gg} t        j                  |       }|j                  t        j
                  t        j
                  t        j                                     k(  sJ |j	                         | k(  sJ t         j                  t         j                  f}t        j                  |      5  t        j                  dddgg       d d d        t        j                  |      5  t        j                  ddg g       d d d        t        j                  |      5  t        j                  dgdgd dggg       d d d        y # 1 sw Y   {xY w# 1 sw Y   QxY w# 1 sw Y   y xY w)Nr*  r&   r(   )r(   r)   r   )
r*   r+   r5   r   r7   r   r   ArrowTypeErrorr\   r]   )r   r9   
exceptionss      r   test_sequence_nesting_levelsr3  -  s   D
((4.C88rxxz!!!==?d"""C!dD
((4.C88rxx
++++==?d"""CTF#D
((4.C88rxx
++++==?d"""D!9+	404&9D
((4.C88rxx 45555==?d"""//2#4#45J 
z	" 
!Q 
z	" 
!Q 
z	" *
1#sTA3K()* *  * *s$   I,I8J,I58JJc                      g d} t        j                  t        j                        5  t        j                  |        d d d        y # 1 sw Y   y xY w)N)r2  r&   r  )r\   r]   r*   r1  r+   r  s    r   test_sequence_mixed_types_failsr5  O  s9    D	r((	) 
  s   AAc                      ddddidddg} t        j                         }t        j                  t              5  t        j
                  | |       d d d        y # 1 sw Y   y xY w)	Nz-10z-5r2  r&   0510rI   )r*   rJ  r\   r]   rh   r+   )r   r5   s     r   3test_sequence_mixed_types_with_specified_type_failsr:  U  sR    4#q3T2D99;D	y	! "
D!" " "s   AA"c                  F   t        j                  d      t        j                  d      g} t        j                  t        j                  t        j
                  t        j                  fD ]6  }t        j                  |  |dd            }|j                         | k(  r6J  y )Nz1234.183z8094.234r  r)   	precisionscalerI   	r  r  r*   	decimal32	decimal64
decimal128
decimal256r+   r7   r   r5   r9   s      r   test_sequence_decimalrE  ]  sq    OOJ')DEDr||R]]BMMJ 'hht$!"<=}}$&&&'r   c                  (   t        j                  d      t        j                  d      g} t        j                  t        j                  t        j
                  fD ]6  }t        j                  |  |dd            }|j                         | k(  r6J  y )Nz1234234983.183z80943244.234r  r)   r<  rI   r  r  r*   rA  rB  rC  r+   r7   rD  s      r   *test_sequence_decimal_different_precisionsrH  d  sp    ()7??>+JD r}}bmm< 'hht$1"=>}}$&&&'r   c                  &   t        j                  d      t        j                  d      g} t        j                  t        j                  t        j
                  fD ]5  }t        j                  |  |d            }|j                         | k(  r5J  y )N
12342349838094324rF   )r=  rI   rG  rD  s      r   test_sequence_decimal_no_scalerL  m  si    OOL)7??9+EFDr}}bmm< 'hht$"45}}$&&&'r   c                  (   t        j                  d      t        j                  d      g} t        j                  t        j                  t        j
                  fD ]6  }t        j                  |  |dd            }|j                         | k(  r6J  y )Nz-1234.234983z	-8.094324rF   r   r<  rI   rG  rD  s      r   test_sequence_decimal_negativerN  t  sk    OON+W__[-IJDr}}bmm< 'hht$1"=>}}$&&&'r   c                  F   t        j                  d      t        j                  d      g} t        j                  t        j                  t        j
                  t        j                  fD ]6  }t        j                  |  |dd            }|j                         | k(  r6J  y )Nz	-.4234983z.0103943r  r<  rI   r?  rD  s      r   #test_sequence_decimal_no_whole_partrP  {  sq    OOK('//**EFDr||R]]BMMJ 'hht$!"<=}}$&&&'r   c                  
   t        j                  d      t        j                  d      g} t        j                  t        j                  fD ]6  }t        j
                  |  |dd            }|j                         | k(  r6J  y )Nz-394029506937548693.42983z32358695912932.01033r  r   r<  rI   r  r  r*   rB  rC  r+   r7   rD  s      r   #test_sequence_decimal_large_integerrS    sj    OO78OO235D. 'hht$1"=>}}$&&&'r   c                     g d} | D cg c]  }t        j                  |       }}t        j                  t        j                  fD ]6  }t        j
                  |  |dd            }|j                         |k(  r6J  y c c}w )N)r   r&   lc&E(ON    r   r<  rI   rR  )r   rW   rK   r5   r9   s        r   #test_sequence_decimal_from_integersrV    so    +D,01q"1H1. +hht$1"=>}}(***+ 2s   Bc                      t        j                  t        d      5  t        j                  t        j                  d      g       d d d        y # 1 sw Y   y xY w)Nzprecision out of rangerf   P11111111111111111111111111111111111111111111111111111111111111111111111111111111)r\   r]   r   r*   r+   r  r  r   r   r   (test_sequence_decimal_too_high_precisionrY    s>    	z)A	B .
'//(+,-. . .s   *AAc                     t        j                  d      t        j                  dd      ft        j                  d      t        j                  dd      ft        j                  d      t        j                  dd	      ft        j                  d
      t        j                  dd      ft        j                  d      t        j                  dd      ft        j                  d      t        j                  dd      ft        j                  d      t        j                  dd      ft        j                  d      t        j                  dd      ft        j                  d      t        j                  dd      ff	D ]_  \  } }t        j                  | g      |k(  sJ t        j
                  | g      }|j                  |k(  sJ |j                         d   | k(  r_J  y )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r  r  r*   rB  r#  r+   r5   r7   )r   r   r9   s      r   test_sequence_decimal_inferr_    si    
	!2==A#67		!2==A#67		#R]]1a%89		#R]]1a%89		"BMM!Q$78		"BMM!Q$78		"BMM!Q$78		#R]]1a%89		$bmmAq&9: *	c }}dV$+++hhvxx3}}q!T)))%*r   c                  8   t        j                  d      t        j                  d      gt        j                  dd      ft        j                  d      t        j                  d      gt        j                  dd      ft        j                  d      t        j                  d      gt        j                  dd      ft        j                  d	      t        j                  d
      gt        j                  dd      ft        j                  d      t        j                  d      gt        j                  dd      ft        j                  d      t        j                  d      gt        j                  dd      ft        j                  d      t        j                  d      gt        j                  dd      fg} | D ]Z  \  }}t        j                  |      |k(  sJ t        j
                  |      }|j                  |k(  sJ |j                         |k(  rZJ  y )Nr[  z3.456r   r)   z456.7r   z123.4z4.567123e24567e3r  r   123e44567e2z0.123z0.04567r   z0.001z1.01E5	   r^  )casesr   r   r9   s       r   !test_sequence_decimal_infer_mixedrg    s    //'
"GOOG$<	=	q!		
//'
"GOOG$<	=	q!		
//'
"GOOG$<	=	q!		
//'
"GOOH$=	>	q!		
//'
"GOOH$=	>	q!		
//'
"GOOI$>	?	q!		
//'
"GOOH$=	>	q!		E   '	c}}T"c)))hhtnxx3}}$&&&	'r   c            	      D   t        j                  d      t        j                  dd      t        j                  dd      t        j                  dd      gt        j                  dd      t        j                  dd      gft        j                  d      t        j                  dd      t        j                  dd      t        j                  dd	      gt        j                  dd      t        j                  dd
      gft        j                  d      t        j                  dd      t        j                  dd      t        j                  dd	      gt        j                  dd      t        j                  dd
      gffD ]  \  } }}|D ]C  }t        j                  | g|      }|j
                  |k(  sJ |j                         d   | k(  rCJ  |D ]<  }t        j                  t              5  t        j                  | g|       d d d        >  y # 1 sw Y   KxY w)Nr[  r   r)   r   r(   r\  r   r   r]  rI   )
r  r  r*   rB  r+   r5   r7   r\   r]   r   )r   typs
wrong_typsr   r9   s        r    test_sequence_decimal_given_typerm    s    OOG$]]1a "--1"5r}}Q7JK]]1a "--1"56	
 OOG$]]1a "--1"5r}}Q7KL]]1a "--2"67	
 OOI&]]1a "--1"5r}}Q7KL]]1a "--2"67	
# +dJ(  	.C((D6,C88s?"?==?1%---	.  	+Cz* +$c*+ +	+1+2+ +s   0HHc                      t        j                  t        d            } t        j                  d      }| j                  |      sJ y )Nr)   r>   )r*   r+   rA   r,   r-   s     r   test_range_typesro    s4    88E!HD88ID;;tr   c                      t        j                  t        d            } t        |       dk(  sJ | j                  dk(  sJ | j
                  t        j                         k(  sJ | j                         g k(  sJ y r2   )r*   r+   rA   r3   r4   r5   r6   r7   r8   s    r   test_empty_rangerq    sb    
((58
Cs8q==>>Q88rwwy   ==?b   r   c                  $   t         j                  j                  g g       } | j                  t        j                  g       k(  sJ t        |       dk(  sJ | j                         g k(  sJ t        j                  g dt        j                               }t        j                  g dt        j                               }t        j                  g dt        j                               }t         j                  j                  |||gg d      } d dd	dd
d ddddd dg}| j                         }||k(  s	J ||f       t        j                  t              5  t         j                  j                  |gddg       d d d        y # 1 sw Y   y xY w)N)namesr   Nr(   r)   rI   r2  Nr4  TFN)intsstrsboolsr2  Tr(   Fr)   r4  rw  rx  )r*   StructArrayfrom_arraysr5   structr3   r7   r+   r   rJ  r   r\   r]   r   )r9   rw  rx  ry  rK   pylists         r   test_structarrayr~    sH   
..
$
$Rr
$
2C88ryy}$$$s8q====?b   88Lrxxz2D88$299;7DHH(rxxz:E
..
$
$	tU!#C
 sT2D51C$/H ]]_FX111 
z	" =
""D6FF+;<= = =s   $FFc            	      t   t        j                  t        j                  dt        j                               t        j                  dt        j                               t        j                  dt        j
                               g      } t        j                  g |       }|j                         g k(  sJ ddddd	d
ddg}t        j                  ||       }|j                         |k(  sJ dddd i d d
dg}t        j                  ||       }dd ddd d d d dd d
d dg}|j                         |k(  sJ y )Nr2  r3  r4  rI   r   r  Tr1  r   rH  Fr2  r4  r5  r*   r|  fieldr   rJ  r   r+   r7   )r   r9   r   rK   s       r   test_struct_from_dictsr    s$   	BHHS"((*-HHS"))+.HHS"((*-/ 
0B ((2B
C==?b   %d+%e,.D
((4b
!C==?d""" $U#%D ((4b
!Cd.D1T24H ==?h&&&r   c            	         t        j                  t        j                  dt        j                               t        j                  dt        j                               t        j                  dt        j
                               g      } t        j                  g |       }|j                         g k(  sJ ddddd	d
g}t        j                  ||       }|j                         ddd ddd d	dgk(  sJ y )Nr2  r3  r4  rI   r   r  )r.  r/  r   F)r.  r0  r1  r  )r   r9   r   s      r   !test_struct_from_dicts_bytes_keysr  (  s    	BHHS"((*-HHS"))+.HHS"((*-/ 
0B ((2B
C==?b   E"E"$D
((4b
!C==?e$'d'   r   c            	      N   t        j                  t        j                  dt        j                               t        j                  dt        j                               t        j                  dt        j
                               g      } ddg}dddd	d
ddd	g}t        j                  ||       }t        j                  t        |      t              }||d d  t        j                  ||       }|j                         |k(  sJ |j                  |      sJ g d}ddd d	d d
d dd	g}t        j                  ||       }|j                         |k(  sJ dD ]>  }t        j                  t        d      5  t        j                  |g|        d d d        @ y # 1 sw Y   KxY w)Nr2  r3  r4  r   r  T)r   rH  Fr   r  Tr1  r   rH  FrI   r}   ))r   r  NN)r   NF))r   r  r   )r8  r  TN(?i)tuple sizerf   )r*   r|  r  r   rJ  r   r+   r   r   r3   r   r7   r,   r\   r]   r   )r   r   rK   r9   data_as_ndarrayr/   tups          r   test_struct_from_tuplesr  9  su   	BHHS"((*-HHS"))+.HHS"((*-/ 
0B De$/e%02H
((4b
!Chhs4y7OOA88O"-D==?h&&&::dD e$/d/1H ((4b
!C==?h&&& : %]]:-=> 	%HHcU$	% 	%%	% 	%s   7FF$	c            	         t        j                  t        j                  dt        j                               t        j                  dt        j                               t        j                  dt        j
                               g      } g dg dd g}t        j                  ||       }|j                         ddd	d
dddd
d gk(  sJ t        j                  t        j                  dt        j                               t        j                  dt        j                               t        j                  dt        j
                               g      } g dg dg}t        j                  ||       }t        j                  t              5  |j                          d d d        t        j                  t        j                  dt        j                               t        j                  dt        j                               t        j                  dt        j
                               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                  ||       }|j                         |k(  sJ y # 1 sw Y   xY w)Nr2  r3  r4  )r2  r   r3  r  r4  T)r2  r   r3  rH  r4  FrI   r   r  Tr1  r   rH  F)r  )r2  r  )r3  T)r  )r2  rH  )r3  F)r2  r(   )r3  baz)r2  r&   r  r  )djuliar(   r  r&   )r*   r|  r  r   rJ  r   r+   r7   r\   r]   r   )r   r   r9   rK   s       r   test_struct_from_list_of_pairsr  \  s   	
bhhj!
biik"
bhhj! 
B 	..D
 ((4b
!C==?e$'e%(    

bhhj!
biik"
bhhj! 
B 	..D ((4b
!C	z	" 
 

bhhj!
biik"
bhhj! 
B 	-	< >	D D)e$'e$'e%(	H ((4b
!C==?h&&&/ s   I??Jc            	         t        j                  t        j                  dt        j                               t        j                  dt        j                               t        j                  dt        j
                               g      } g g dg}d}t        j                  t        |      5  t        j                  ||        d d d        d}t               t        d      t        d	      d
g}|D ]  }t        j                  |j                  t        |      t        |      j                               }t        j                  t"        |      5  t        j                  |gg dg|        d d d        t        j                  t"        |      5  t        j                  g d|gg|        d d d         y # 1 sw Y   xY w# 1 sw Y   XxY w# 1 sw Y   xY w)Nr2  r3  r4  )r  r  )r3  Nz0The expected field name is `b` but `c` was givenrf   rI   zKCould not convert {} with type {}: was expecting tuple of (key, value) pairzunknown-keyrJ  )r  r  )r4  N)r*   r|  r  r   rJ  r   r\   r]   r   r+   ro   reescapeformatr  r5   r   rh   )r   r   msgtemplaterf  key_value_pairs         r   %test_struct_from_list_of_pairs_errorsr    s   	
bhhj!
biik"
bhhj! 
B 	,D =C	z	-  
B 	 
 	cm	E   ii $~"6"?"?
  ]]9C0 	HH 5 	 ]]9C0 	HH5  	 	   (	 		 	s$   .F9GG9GG	G	c            	         t        j                  t        j                  dt        j                               t        j                  dt        j                               t        j                  dt        j
                               g      } dddddg}t        j                  t              5  t        j                  || 	       d d d        y # 1 sw Y   y xY w)
Nr2  r3  r4  r  r   rH  Fr1  rI   )
r*   r|  r  r   rJ  r   r\   r]   rh   r+   )r   r   s     r   test_struct_from_mixed_sequencer    s    	BHHS"((*-HHS"))+.HHS"((*-/ 
0B %e,.D	y	!  
B     s   ,CCc                     t        j                  t        j                  dt        j                               t        j                  dt        j                               t        j                  dt        j
                               g      } dddddd	d
dg}t        j                  |      }|j                  | k(  sJ |j                         |k(  sJ dddd i d d	dg}t        j                  t        j                  dt        j                               t        j                  dt        j
                               t        j                  dt        j                               g      }ddd dd d d d dd d d	dg}t        j                  |      }t        j                  t        |      t              }||d d  t        j                  |      }|j                  |k(  sJ |j                         |k(  sJ |j                  |      sJ t        j                  t        j                  dt        j                  t        j                  dt        j                  t        j                                     t        j                  dt        j
                               g            t        j                  dt        j                               g      } ddgddddd d
dd dd d	dg}t        j                  |      }|j                  | k(  sJ |j                         |k(  sJ t        j                  i g      }|j                  t        j                  g       k(  sJ |j                         i gk(  sJ t        j                   t         j"                  t         j$                  f      5  t        j                  dddig       d d d        y # 1 sw Y   y xY w)Nr2  r3  r4  r   r  Tr1  r   rH  Fr  r5  )r2  r4  r3  r}   aaab)r  r  r&   r(   )r*   r|  r  r   rJ  r   r+   r5   r7   r   r   r3   r   r,   r   r\   r]   r   r1  )r%  r   r9   expected_type_omittedrK   r  r/   s          r    test_struct_from_dicts_inferencer    s   IIrxxRXXZ8!xxRYY[9!xxRXXZ8: ;M %d+%e,.D ((4.C88}$$$==?d""" $U#%D IIrxxRXXZ'@')xxRXXZ'@')xxRYY['A'C D d.D1E24H
 ((4.Chhs4y7OOA88D>D88,,,,==?h&&&::d II
bii$0D!E!#$
!;!= > 	?
biik"$ %M Qt,59U+$7U#%D ((4.C88}$$$==?d""" ((B4.C88ryy}$$$==?rd""" 
):):;	<  
!c1X     s   OOc            	      $   g d} g d}g d}g d}| |||g}t         j                  j                  |g d      }t         j                  j                  t        j                  | d      t        j                  |d      t        j                  |      t        j                  |d      gg d      }t	        j
                  t              5  t         j                  j                  |       d d d        |j                  |      sJ y # 1 sw Y   xY w)	Nrt  ru  rv  r   )rw  rx  ry  int_nonnullr   rI   utf8)r*   rz  r{  r+   r\   r]   r   r,   )rw  rx  ry  ints_nonnullarraysr   rK   s          r   #test_structarray_from_arrays_coercer    s    DDELD%.F^^'')89F ~~))	$W	%	$V	$	%	,W	-	/ 	12H 
z	" +
""6*+ =="""+ +s   
 DDc                  V   t        j                  d      d t        d      t        j                  d      g} t        j                  t
              5  t        j                  |       }d d d        t        j                  | d      }|j                  t        j                  dd      k(  sJ |j                         | d d d d gz   k(  sJ t        j                  | t        j                  dd      d	      }|j                         t        j                  d
      d d d gk(  sJ y # 1 sw Y   xY w)Nr[  r   Tr  r   r)   r(   rF   r   z1.2340)r  r  r?  r\   r]   rh   r*   r+   r5   rB  r7   )rw   r+   s     r   $test_decimal_array_with_none_and_nanr    s    oog&eElGOOE<RSF	y	! ! ! HHV.E::q!,,,,??r
dD\ 9999HHV"--A"6DIE??!:D$ MMMM! !s   DD(c            
         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 cg c]  }|D cg c]  }|d   |d   f c} }}}t        j                  |t        j                  t        j                         t        j                                     }|j                         |k(  sJ d | d<   d |d<   t        j                  |t        j                  t        j                         t        j                                     }|j                         |k(  sJ ddigi gdddgfD ]R  }t        j                  t        d      5  t        j                  |gt        j                  dd             d d d        T dddgdddiigfD ]\  }t        j                  t         j                  d      5  t        j                  |gt        j                  dd             d d d        ^ y c c}w c c}}w # 1 sw Y   xY w# 1 sw Y   xY w)Nr.  r&   )rc   r    r/  r(   r0  r)      dr      er      f   gr  rc   r    rI   )rx   ry   zInvalid Maprf   i4r   r   )
r*   r+   map_rT  r   r7   r\   r]   r   r   )r   entryr  rK   r9   s        r   test_map_from_dictsr  -  s   A&q(ABA&'A&q(AD)+A&'	)D
 FJJE7A!E(AgJ'7JHJ
((8"''"))+rxxz"B
CC==?h&&& DGHQK
((8"''"))+rxxz"B
CC==?h&&& Q<.2$qq)9(:; 8]]:]; 	8HHeW2774#67	8 	88
 +,|/D.EF 8]]2??2KL 	8HHeW2774#67	8 	88) 8J 	8 	8
	8 	8s.   	G0G+G0-G63-H+G06G?	H	c            	         ddgdgg ddgg} t        j                  | t        j                  t        j                         t        j                                     }|j                         | k(  sJ d | d<   t        j                  | t        j                  t        j                         t        j                                     }|j                         | k(  sJ dgd	gd
gfD ]R  }t        j                  t        d      5  t        j                  |gt        j                  dd             d d d        T y # 1 sw Y   _xY w)N)r.  r&   )r/  r(   )r0  r)   ))r  r   )r  r   )r  N)r  r  rI   r&   )r   r   )r8  r  Tr  rf   r  )	r*   r+   r  rT  r   r7   r\   r]   r   )rK   r9   r  s      r   test_map_from_tuplesr  L  s   I&4H
 ((8"''"))+rxxz"B
CC==?h&&& HQK
((8"''"))+rxxz"B
CC==?h&&& &2$!3 45 8]]:-=> 	8HHeW2774#67	8 	88	8 	8s    -D88E	c                  R   t        j                  t        j                         t        j                               } t        j                  g d|       }t        |j                  t         j                        sJ |j                  j                  |       sJ t        j                  g dt        j                               }t        j                  ddgt        j                               }|j                  j                  |      sJ |j                  j                  |      sJ y )Nr)  )FFTFTrI   )r   r   r&   r   r&   FT)
r*   
dictionaryr   r   r+   rd  r5   DictionaryTyper,   indices)r   r2  expected_indicesexpected_dictionarys       r   test_dictionary_from_booleanr  c  s    
--	bhhj
9C
2=Aaffb//00066==xxbggi@((E4=rxxzB99,---<<2333r   r)  c                 
   t        j                  t        j                         |       }t        j                  g d|      }t	        |j
                  t         j                        sJ |j
                  j                  |      sJ t        j                  g dt        j                               }t        j                  g d|       }|j                  j                  |      sJ |j                  j                  |      sJ y )Nr  )r&   r(   r&   r&   r(   r)   rI   )r   r&   r   r   r&   r(   r   )	r*   r  r   r+   rd  r5   r  r,   r  r)  r   r2  r  r  s        r   test_dictionary_from_integersr  o  s     --	j
9C
##.Aaffb//00066==xx 2C((9:>99,---<<2333r   input_index_typec                     t        j                  | t        j                               }t        j                  t	        d      |      }|j
                  j                  |      sJ y )Nr  rF   rI   )r*   r  r   r+   rA   r5   r,   )r  r   r9   s      r   test_dictionary_index_typer    sE     --(RXXZ
@C
((593
'C88??3r   c                  V   t        j                  t        j                         t        j                               } t        j                  t        d      |       }t        j                  t        j                         t        j                               }|j                  j                  |      sJ t        j                  t        d      |       }t        j                  t        j                         t        j                               }|j                  j                  |      sJ y )Nr     rI      )	r*   r  r   r   r+   rA   r5   r,   r   )r   r2  rK   s      r   "test_dictionary_is_always_adaptiver    s     --	bhhj
9C
t3'A}}RWWY
3H66=="""
xs+A}}RXXZ4H66=="""r   c                  >   t        j                         t        j                         fD ]  } t        j                  t        j                         |       }t        j
                  g d|      }t        |j                  t         j                        sJ t        j
                  g dt        j                               }t        j
                  g d|       }|j                  j                  |      sJ |j                  j                  |      rJ  t        j                  t        j                         t        j                  d            }t        j
                  g d|      }t        |j                  t         j                        sJ t        j
                  g dt        j                               }t        j
                  g dt        j                  d            }|j                  j                  |      sJ |j                  j                  |      sJ y )	N) r2  bbr2  r  cccrI   )r   r&   r(   r&   r(   r)   )r  r2  r  r  r)   )aaar  bbbr  r  )r   r   r&   r(   r&   )r  r  r  )r*   rT  rJ  r  r   r+   rd  r5   r  r  r,   r  s        r   test_dictionary_from_stringsr    sm   yy{BIIK0 	8
mmBGGIz2HH6SA!&&""3"344488$6RWWYG hh'=JOyy 0111||""#6777	8 --	299Q<
0C
43?Aaffb//000xxbggi@((#8ryy|L99,---<<2333r   )r  rK    )milliseconds)microsecondsie;c                 X   t        j                  |       }t        j                  dg|      }t        j                  |j                         |      }|j	                  |      sJ |g}| dk(  r	 dd l}|j                  dd      g}|j                         |k(  sJ y # t        $ r Y !w xY w)Nr  rI   r  r   r  )r*   r   r+   r7   r,   r  	TimedeltaImportError)r  rK   r   r9   restoredexpected_listr  s          r   *test_duration_array_roundtrip_corner_casesr    s     
T	B
((K=r
*Cxxb1H::hJMt|	C  \\+D\ABM=000  		s   /B 	B)(B)c                  F   dd l } t        j                  d      }t        j                  dg|      }|j	                         }t        |d   | j                        sJ t        j                  ||      }|j                  |      sJ |j	                         | j                  dd      gk(  sJ t        j                  d      }t        j                  dg|      }|j	                         }t        |d   | j                        sJ t        j                  ||      }|j                  |      sJ |j	                         | j                  dd      gk(  sJ t        j                  dd      }d}t        j                  |g|      }|j	                         }t        |d   | j                        sJ t        j                  ||      }|j                  |      sJ |j	                         | j                  |d      j                  d	      j                  d      gk(  sJ y )
Nr   r  l      "9} rI   r  r  r  l    ^,j2 r  )r  r*   r   r+   r7   rd  r  r,   r  r  tz_localize
tz_convert)r  r   r9   r   r  r    s         r   <test_roundtrip_nanosecond_resolution_pandas_temporal_objectsr    s    	T	B
(('(r
2C==?Dd1gr||,,,xx2&H::h
(t4$    
d	B
(('(r
2C==?Dd1gr||,,,xx2&H::h
(t4$    
d|	,BE
((E7
$C==?Dd1gr||,,,xx2&H::h
U&22	:l+$   r   c                     | j                         }t        j                  || j                        }|j	                  |       sJ y )NrI   )r7   r*   r+   r5   r,   )r9   r   r  s      r   test_array_to_pylist_roundtripr    s5     --/Cxx#((+H??3r   c                     ddz  } ddz  }| gdz  dd |gz   }t        j                  |t        j                               }t        |t         j                        sJ t        |      dk(  sJ |d   j                         dk(  sJ |d   j                         J |d	   j                         |k(  sJ |d
gz   }t        j                  |t        j                               }t        |t         j                        sJ |j                  dk(  sJ t        |j                  d            dk(  sJ t        |j                  d            dk(  sJ |j                  d      d   j                         dk(  sJ |j                  d      d   j                         J |j                  d      d	   j                         |k(  sJ |j                  d      j                         d
gk(  sJ |dz  ddgz   }t        j                  |t        j                               }t        |t         j                        sJ |j                  dk(  sJ t        |j                  d            dk(  sJ t        |j                  d            dk(  sJ t        |j                  d            dk(  sJ t        d      D ]t  }|j                  |      d   j                         dk(  sJ |j                  |      d   j                         J |j                  |      d	   j                         |k(  rtJ  |j                  d      j                         ddgk(  sJ y )N   x k   r   rI   r     r&  s   twor(   r   r&   s   threer)   )r*   r+   rT  rd  re  r3   rw  ChunkedArray
num_chunkschunkr7   rA   )v1v2one_chunk_datar9   two_chunk_datathree_chunk_datar  s          r   test_auto_chunking_binary_liker  	  s    
		B			B TBY#tR0N
((>		
4Cc288$$$s8r>>r7==?c!!!r7==?"""r7==?b    $vh.N
((>		
4Cc2??+++>>Qsyy|"""syy|!!!99Q<!!#s***99Q<!!#+++99Q<!!#r)))99Q<!!#x/// &)Xx,@@
((#"))+
6Cc2??+++>>Qsyy|"""syy|"""syy|!!!1X .yy|B%%'3...yy|B%%'///yy|B%%'2---. 99Q<!!#(';;;;r   c                  d   dggdz  } t        j                  |       }t        |t         j                        sJ |j                  dk(  sJ t        |j                  d            dk(  sJ t        |j                  d            dk(  sJ |j                  d      j                         dggdz  k(  sJ y )N   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxi   r(   r   i r&   )r*   r+   rd  r  r  r3   r  r7   )valsr9   s     r   !test_auto_chunking_list_of_binaryr  0	  s     L>]+D
((4.Cc2??+++>>Qsyy|	)))syy|!!!99Q<!!#~'9999r   c                  n   t        j                  dd      } | gdz  }t        j                  |t        j                  t        j
                                     }t        |t        j                        sJ t        |      dk(  sJ t        j                  dd      } | gdz  }t        j                  |t        j                  t        j
                                     }t        |t        j                        sJ |j                  dk(  sJ t        |j                  d            dk(  sJ t        |j                  d	            d	k(  sJ |j                  d	      }|d   }t        |t        j                        sJ t        j                  | t        j
                               }|j                  |k(  sJ y )
N)   r   r}   r  rI   r   r(   r   r&   )r   onesr*   r+   r   r   rd  re  r3   r  r  r  
ListScalarrw   )r;  r   r9   r  scalarrK   s         r   test_auto_chunking_list_liker  <	  sI   7787+D6XD
((4bhhrxxz2
3Cc288$$$s8q==7787+D6D=D
((4bhhrxxz2
3Cc2??+++>>Qsyy|!!!syy|!!!IIaLE1XFfbmm,,,xx288:.H==H$$$r   c                  r   t        j                  t        j                         t        j                               } dgdz  }|gdz  }t        j                  ||       }t	        |t         j
                        sJ t        |j                  d            dk(  sJ t        |j                  d            dk(  sJ y )N)r&   r&   r  r   rI   r   r  r&   )r*   r  r   r+   rd  r  r3   r  )r   r;  r   r9   s       r   test_auto_chunking_map_typer  R	  s     
BGGI	&B8eD6D=D
((4b
!Cc2??+++syy|!!!syy|!!!r   )r   charrW   r  c                 0   |dz  }|dz  }t        j                  t        j                  dt        j                               t        j                  dt        j                               t        j                  d|       g      }dd|dgd	z  }|j                  dd|d       t        j                  ||
      }t        |t         j                        sJ |j                  dd|d       t        j                  ||
      }t        |t         j                        sJ |j                  dk(  sJ t        |j                  d            dk(  sJ t        |j                  d            dk(  sJ |j                  d      d   j                         dd|dk(  sJ y )Nr  r  boolintegerstring-likeTr&   )r   r  r  r  rI   r(   r   r  )r*   r|  r  r   r   appendr+   rd  re  r  r  r3   r  rw  )r   r  r  r  struct_typer   r9   s          r   test_nested_auto_chunkingr  _	  sb    
		B			B))
$
BHHJ'
# K a;<rADKK!B?@
((4k
*Cc288$$$KK!DAB
((4k
*Cc2??+++>>Qsyy|"""syy|!!!99Q<?  "'   r   c                     dgdz  } t        j                  | t        j                               }t        |t         j                        sJ t        |      dk(  sJ t        |j                        dkD  sJ t        j                  dt              }t        j                  | |t        j                               }t        |t         j                        sJ t        |      dk(  sJ t        |j                        dkD  sJ t        j                  | t        j                               }t        |t         j                        sJ t        |      dk(  sJ t        |j                        dkD  sJ y )Ns   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai   rI   r&   r   r5   r*   r+   rJ  rd  r  r3   chunksr   zerosr   rT  itemsr9   r   s      r   $test_array_from_pylist_data_overflowr  	  s    MW%E
((5ryy{
+Cc2??+++s8uszz?Q88E4 D
((5t"))+
6Cc2??+++s8uszz?Q
((5ryy{
+Cc2??+++s8uszz?Qr   c                     dgdz  } t        j                  | t        j                               }t        |t         j                        sJ t        |      dk(  sJ t        |j                        dkD  sJ t        j                  dt              }t        j                  | |t        j                               }t        |t         j                        sJ t        |      dk(  sJ t        |j                        dkD  sJ t        j                  | t        j                               }t        |t         j                        sJ t        |      dk(  sJ t        |j                        dkD  sJ y )Nr.  l        rI   r&   r  r  r  s      r   &test_array_from_pylist_offset_overflowr  	  s    FgE
((5ryy{
+Cc2??+++s8uszz?Q88E4 D
((5t"))+
6Cc2??+++s8uszz?Q
((5ryy{
+Cc2??+++s8uszz?Qr   )r   scalar_datar)  rv  )r&   NN)r  r  Nr  r  i  )r&   r   ir   rI   r  r  )r&   r(   r  )r3  r(   )r&   rH  r  c                 H   t         | |            t        k(  rt        j                  d       t	        j
                  ||      }t	        j
                   | |            }|j                  |      sJ t	        j
                   | |      |      }|j                  |      sJ y )Nz&The elements in the set get reordered.rI   )r5   r   r\   skipr*   r+   r,   )r   r   r  r)  expectr   s         r   !test_array_accepts_pyarrow_scalarr  	  s    D C$<=XXd,FXXc+&'F==   XXc+&Z8F==   r   c                     | t        j                  d      t        j                  d      t        j                  d      g      }t        j                  t         j                  d      5  t        j
                  |       d d d         | dt        j                  d      d g      }t        j                  t         j                  d      5  t        j
                  |       d d d         | t        j                  d      t        j                  d      d g      }t        j                  t         j                  d      5  t        j
                  |       d d d         | t        j                  d      t        j                  d      d g      }t        j                  t         j                  d      5  t        j
                  |       d d d        t        j                  t         j                  d      5  t        j
                  t        j                  d      gt        j                         	       d d d        t        j                  t         j                  d
      5  t        j
                  t        j                  d      gt        j                         	       d d d        y # 1 sw Y   *xY w# 1 sw Y   xY w# 1 sw Y   oxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr&   r2  r  z'cannot mix scalars with different typesrf   zIpyarrow scalars cannot be mixed with other Python scalar values currentlyz0.1z=Cannot append scalar of type string to builder for type int32rI   z;Cannot append scalar of type int64 to builder for type null)
r*   r  r\   r]   r   r+   r   r  r   r6   )r   sequences     r   (test_array_accepts_pyarrow_scalar_errorsr  
  s    BIIaL"))C."))C.ABH	rF
H 
 Aryy~t,-H	r>
?  	
 BJJu%ryy~t<=H	r>
?  	
 BIIcNBJJu$5t<=H	r>
?  	
 
r9
: 4 	"))C.!
34
 
r8
9 1 	"))A,bggi01 17 
   
4 4
1 1sH   *J(J5?K3K6>K!>K((J25J?KKK%(K1)rr   r  r  rO   rb  r  
hypothesishr\   numpyr   r  pyarrow.pandas_compatr   pyarrowr*   pyarrow.tests.strategiestests
strategiespastr   r   r   r   r   r	   r
   r   int_type_pairsr  np_str_int_typespa_int_typesr   r   r$   r0   r:   rB   rD   rG   rL   rQ   r_   ra   ri   rm   rp   rt   r{   r   r   SEQUENCE_TYPESr  ITERABLE_TYPESCOLLECTIONS_TYPESmarkparametrizeparametrize_with_iterable_typesparametrize_with_sequence_types"parametrize_with_collections_typesr   r   r   r   r   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   r   r   r  r  r  r  r  r  r   r   r  r!  r&  AssertionErrorr(  r   r6   r  todayr  r  r  time32time64nowr  r  r   rT  r[  rJ  r\  r|  r9  r<  r@  rE  rK  r^  rM  rY  r_  large_memoryrg  slowrm  rp  ru  rz  r  r  r  r  r  r  r  r  r  r  r  timezone_datar  r  r  r  r  r  r  r  r  have_pandasr
  r  r  nopandasr  r  r!  r$  r'  r)  r+  r-  r/  r3  r5  r:  rE  rH  rL  rN  rP  rS  rV  rY  r_  rg  rm  ro  rq  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  given
all_arraysr  r  r  r  r  r  r  r  r  MonthDayNanomonth_day_nano_intervalr]  r  r  r  r   r   r   <module>r;     s   $      	   .  ' ' WRWWYhbhhjhbhhjhbhhjhbhhjyryy{yryy{yryy{ "%n!5  ,# #  
!!!7 
*!
 I&>/*?+n<K.0 "(++"9"9	>#  #)++"9"9	>#  &,[[%<%<	& "
 $ $ ! ! !' !'  8 ! 8  ? ! ? $! $! !# !# !HHbmmR\\2+=+=%? @#@ !# $	L $	L ! HHbmmR\\2+=+=%? @1@ !1  - ! -D !+ !+  ,n=	' > ! 	' #L1' 2 $ '  L1' 2 ! ' !' !'  ,n=
' > ! 
'  ,n=
' > ! 
' !' !' $- $-     E'  ))) ) 1- 2- 1 2 $-' . $'&	6#&"  5 5"  0








3 
 u6, 7 ! ,. u6N 7 N( : :6  1(  *#* # /
E]HBHHJ
D\7277972779


%mmT"IBIIK0
HMM!"IBIIK0hmmAq!d#YRYYs^4
MHMM!Q"#YRYYt_5t$lbll4&89h$%{r{{3'78
D\9299;yryy|,*+ibiik"oboo'(q	4qt!45		C#c8288:%678!2 *%+ ,% /!fqc]HBHHXRXXZ()!fq!fxrxx
A./cAq6]MBMM("((*-.2 
% %  " "$# 			_R__->@PQR# S# *H  1?2??3DEF  G    1?2??3DEF	) G  	) 			YRYY[."..:JKL@ M @O" 			_R__->@PQR
! S
!@*#
8 $299;6$299;)94(@ACD$D$* :YYWYYgYYgYYg	= 7)7)t?(  &   " @E@EF  & '':)< ) )6 * *:@* ? ?(	X]] 		"" 		($$ 	>CB {...E  GFGF &2 &2R =  =(    :  :"! ! ! !89. :." !89 :	# HHbmmR\\2+=+=%? @	#@	# 8 8**D"''''''+.*,'4+<!=6'2" % %D4'n+\  6  6 r#0N8>8.	4 BGGIBHHJBHHJBHHJBHHJBIIKBIIKBIIKBJJLBJJL( 	4	4 +BGGIBHHJBHHJBHHJ	.   #4. -
(

[
12	8;78	8;78	8845	0 11* # #L      &< &<R : : % %* "  " RYY[#RYY[$* 	 
8  *   , $>9299T?IBIIe,<dCXRXXZP	1yryy|YRYYtXRXXZ%@A

 yryy|T9299T8288:+FGT
D\IBIIdOYRYYt_5wrwwyAibiimYRYYr]D9:2::<H	x}}""$%	yryy,,./0		 
x}}""$%	yryy,,.			<=		 
q!Q	&	=8==Aq)	*D1		$ 
		B	'(	%8%%b1	23D 
 x  q!,-	yryy***4A678T 
	)*	?2???3	45"""$
 
3Z)"))C.)"))C.19299;?
D\IBIIdOYRYYt_5yryy{C	t	41	&			$			!(EF		!
 [9299Y'(("((8288:*>?
Cj\IBIIsCj)*HBHHYRYY[,AB[9299Y\R\\("((*-EFGR\\("((*
Cj\IBIIsCj|r||IBIIK/HIJR\\)"))+  		172779	%yryy'CTJ	
 Y3XRXXZ0$7D		5yryy|	,ibiiIBIIaL.QR		! Vibii/"//"345r7HI	UYRYYs!234oboo6GH
Vibii.".."234nbnn6FG	UYRYYs!123^R^^5EF		3]R]]8288:yryy{C	DEhbhhj)"))+. 
c
	3hbhhj)"))+>	?	3hbhhj)"))+>	?	Ahbhhj)"))+.	 
	1=2==XRXXZ@	ABhbhhj("((*- 
	Hh'ibii72779WRWWY/0/2 
3 	4		C#c72779%567	 
	Hl+)"))72779YRYY[1234 
5 	6		C#c9299;%789	s_A _@!A_ $B! # 1 $  1O  	Bs   Ar0 r0Ar;r:Ar;