
    Pi$;                    h$   d dl mZ d dlZd dlZd dlZd dlmZ d dl	Z	d dl
Z
d dlZd dlZd dlZd dlZ	 d dlZn# e$ r dZY nw xY wd dlZd dlmc mZ d dlmZ e
j        j        d             Zd Zd Zd Zd Zd	 Z d
 Z!d Z"d Z#d Z$d Z%e
j        j        d             Z&e
j        j        d             Z'e
j        j        d             Z(e
j        j        d             Z)e
j        j        e
j        *                    dg d          e
j        *                    dddg          d                                     Z+e
j        j        e
j        *                    dg d          d                         Z,e
j        j        d             Z-e
j        j.        d             Z/e
j        j0        e
j        j.        d                         Z1e
j        *                    dd ej2                     ej3                     ej4                    g          d             Z5d Z6d Z7d  Z8e
j        j        d!             Z9d" Z:d# Z;d$ Z<d% Z=d& Z>d' Z?e
j        j        d(             Z@e
j        j        d)             ZAd* ZBe
j        j        d+             ZCd, ZDd- ZEe
j        *                    d.ejF        ejG        ejH        ejI        g          d/             ZJd0 ZKd1 ZLd2 ZMe
j        *                    d3d4          d5             ZNe
j        j        d6             ZOe
j        j        d7             ZPe
j        j        d8             ZQd9 ZRd: ZSe
j        j        e
j        *                    d;ejT        ejF        fejU        ejG        fg          d<                         ZVe
j        *                    d;ejT        ejF        fejU        ejG        ff          e
j        *                    d=dd ggdd dgd ggd gd>ggf          d?                         ZWe
j        *                    d;ejT        ejF        fejU        ejG        ff          d@             ZXdA ZYdB ZZdC Z[e
j        j        dD             Z\dE Z]dF Z^dG Z_dH Z`dI ZadJ ZbdKdKdLdMZce
j        j        dN             ZddO ZedP ZfdQ ZgdR ZhdS ZidT Zje
j        j        dU             Zke
j        j        dV             Zle
j        j        dW             ZmdX ZndY Zoe
j        j        dZ             Zpd[ Zqd\ Zre
j        j        d]             Zse
j        j        d^             Ztd_ Zud` Zvda Zwdb Zxdc Zydd Zzde Z{df Z|dg Z}dh Z~di Ze
j        j        dj             Ze
j        j        dk             Ze
j        j        dl             Zdm Ze
j        j        dn             Ze
j        j        do             Ze
j        j        dp             Zdq Zdr Ze
j        *                    dsdtg dufdv ed dw          fdx ed dy          fdz ed d{          fd| ed d{          fd} ed d{          fd~ ed d{          fd ed d{          fd ed d{          fdg dfdg dfdg dfdg df ej        d          g dfg          d             Ze
j        *                    dg d ej                    fg d ej                    fg d ej                    fg d ej4                    fg dfd>dgdgg ejF         ej                              fddgdgg ejG         ej                              fdgdddgg ejF         ej4                              fd>dgdgg ejH         ej                              fddgdgg ejI         ej                              fdgdddgg ejH         ej4                              fg d ej         ej        d ej                               ej        d ej4                              g          fg          Zed             Zd Ze
j        j         ej        ej        j        f           ej         ej        ej         ej        d d{                              d                                     Zed             Ze
j        j        d             Ze
j        j        d             Ze
j        j        d             Zd Ze
j        j        d             Ze
j        j        d             Ze
j        j.        d             Ze
j        j        d             Zd Ze
j        j        e
j        *                    dd ej        d          fd ej        d          fd ej        d          fd ej        d          fg          d                         Ze
j        j        d             Ze
j        j        e
j        *                    dg d          d                         Ze
j        j        e
j        *                    dg d          d                         Ze
j        j        d             Ze
j        j        e
j        *                    dd ej        d          fd ej        d          fd ej        d          fd ej        d          fg          d                         Ze
j        j        d             Ze
j        j        e
j        *                    dd ej                     ej                     ej                    g          d                         Zd Ze
j        j.        d             Zd Ze
j        j.        dÄ             Ze
j        j        e
j        *                    dd ej                     ej                     ej                    g          dń                         Ze
j        j        dƄ             Ze
j        j        dǄ             Ze
j        j        dȄ             Ze
j        j        dɄ             Ze
j        j        dʄ             Ze
j        j        d˄             Ze
j        j        d̄             Zd̈́ Ze
j        j        d΄             Zdτ Ze
j        j        dЄ             Zdф Zd҄ Zdӄ Ze
j        *                    d ej                    ejF        f ej                    ejG        fg          dՄ             Ze
j        *                    d ejF         ej                               ejF         ej                    dצ           ejG         ej                              g          d؄             Ze
j        *                    d ej                     ejF         ej                              f ej                     ejF         ej                    dצ          f ej                     ejG         ej                              f ej                     ejH         ej                              f ej                     ejI         ej                              fg          dڄ             Ze
j        *                    d.ejF        ejG        g          dۄ             Ze
j        *                    dejT        ejU        g          d݄             Zdބ Zd߄ Zd Zd Zd Zd Zd Zd Ze
j        j        d             Ze
j        j        e
j        j        e
j        j        e
j        *                    dddKg          d                                                 Ze
j        j        d             Ze
j        j        d             Ze
j        j        d             Ze
j        j        d             Ze
j        j.        d             Ze
j        j        d             Ze
j        j        d             Ze
j        j        d             Zd Ze
j        j        d             Ze
j        j        d             Z G d d          Z G d d          Ze
j        *                    deeg          d             Zd Zd Zd Zd Ze
j        j.        d             Ze
j        j.        d              Zd Zd Zd Zd ZddZd Zd Zd Ze
j        j        d	             Ze
j        j        d
             Ze
j        j.        d             Ze
j        *                    d;ej        ejH        fej        ejI        fg          d             Ze
j        *                    d;ej        ejH        fej        ejI        fg          d             Ze
j        *                    dej        ejH         ej                    fej        ejI         ej                    fg          d             Ze
j        *                    dej        ej        g          d             Ze
j        j        e
j        *                    dg d          d                         Zd Z dS (      )IterableN)Versionc                  <   d} t          j        t          j        d| gdt           j                  }|j        dk    r4t          |j        t          j                   |                                 t          |j        
                                          dk    sJ d S )NzOif 1:
    import pyarrow as pa

    assert pa.total_allocated_bytes() == 0
    z-cT)universal_newlinesstderrr   )file)
subprocessrunsys
executablePIPE
returncodeprintr   check_returncodelen
splitlines)coderess     l/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pyarrow/tests/test_array.pytest_total_bytes_allocatedr   (   s    D
 .#.$5,0J J JC
~cjsz****sz$$&&''1,,,,,,    c                      t          j        g d          } t          j        |           } |            J ~  |            J d S N         )paarrayweakrefref)arrwrs     r   test_weakrefr$   7   sL    
(999

C	S		B244244<<<<<r   c                      t          j        g d          } | d                                         J | d         j        du sJ t	          | d         t           j                  sJ d S )Nr   Nr   r   F)r   r   as_pyis_valid
isinstanceInt64Scalarr"   s    r   test_getitem_NULLr,   ?   sf    
(<<<
 
 Cq6<<>>!!!q6?e####c!fbn-------r   c                      t          j        t                    5  t          j        ddg           d d d            d S # 1 swxY w Y   d S )Nr   r   )pytestraises	TypeErrorr   Array r   r   test_constructor_raisesr3   F   s     
y	!	!  
!Q                 s   >AAc                      t          j        dgd g dg          } |                                 }d}||k    sJ |                     d          }d}||k    sJ d S )Nfoo)barza longer stringNzQ[
  [
    "foo"
  ],
  null,
  [
    "bar",
    "a longer string",
    null
  ]
]
   )element_size_limitz`[
  [
    "foo"
  ],
  null,
  [
    "bar",
    "a longer (... 7 chars omitted)",
    null
  ]
]r   r   	to_stringr"   resultexpecteds      r   test_list_formatr>   M   s{    
(UGT#C#C#CD
E
EC]]__FH X]]b]11FH Xr   c                  n    t          j        g d          } |                                 }d}||k    sJ d S )N Nr5   z[
  "",
  null,
  "foo"
]r9   r;   s      r   test_string_formatrB   n   sE    
($$$
%
%C]]__FH Xr   c                      t          j        t          d                    } |                     d          }d}||k    sJ d S )Nd   r   )windowz[
  0,
  1,
  ...
  98,
  99
])r   r   ranger:   r;   s      r   test_long_array_formatrG   z   sJ    
(5::

C]]!]$$FH Xr   c                  r    t          j        g d          } |                     d          }d}||k    sJ d S )Nr@   r   )indentz[
 "",
 null,
 "foo"
]r9   r;   s      r   test_indented_string_formatrJ      sG    
($$$
%
%C]]!]$$F+HXr   c                  r    t          j        g d          } |                     d          }d}||k    sJ d S )Nr@   r   )top_level_indentz [
   "",
   null,
   "foo"
 ]r9   r;   s      r   %test_top_level_indented_string_formatrM      sG    
($$$
%
%C]]A]..F3HXr   c                  n    t          j        g d          } |                                 }d}||k    sJ d S )N)    r   Ns   foos   z([
  00,
  ,
  null,
  01666F6F,
  80FF
]r9   r;   s      r   test_binary_formatrP      sE    
(@@@
A
AC]]__FH Xr   c                     t          j        g dd          } t          j        g dd          }| j        dk    sJ |                     dd          j        dk    sJ |j        dk    sJ |                    dd          j        dk    sJ d S )	N)s   0000Ns   11111s   222222s   3333333binarytypelarge_binary   r   r      )r   r   total_values_lengthslice)r"   	large_arrs     r   test_binary_total_values_lengthr[      s    
(CCC " " "CIII,. . .I "b((((99Q??."4444(B....??1a  4::::::r   c                     t          j        t          d                    } |                                 }|                                 d         }|j        |j        j        k    sJ d } dd l}|	                                 |j
        J t          j        d          }t          j                            ||           d S )Nr7   r   r   )r   r   rF   to_numpybuffersaddressctypesdatagccollectbasenparangetestingassert_array_equal)r"   np_arr	arrow_bufrb   r=   s        r   test_to_numpy_zero_copyrk      s    
(599

C\\^^F a I 22222
CIIIJJLLL ;"""y}}HJ!!&(33333r   c                  D   g dg dg} t          j        |           }d}t          j        t          |          5  |                    d           d d d            n# 1 swxY w Y   |                                }g d}t          j                            ||           d S )N)r   r      )rm      rD   z>zero_copy_only must be False for pyarrow.ChunkedArray.to_numpymatchTzero_copy_only)r   r   rm   rm   rn   rD   )	r   chunked_arrayr.   r/   
ValueErrorr]   re   rg   rh   )elementschunked_arrmsgri   r=   s        r   %test_chunked_array_to_numpy_zero_copyrx      s    		;;;'H"8,,K
JC	z	-	-	- 2 2D1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 !!##F###HJ!!&(33333s   AA!$A!c                  l   t          j        g d          } t          j        t                    5  |                                  d d d            n# 1 swxY w Y   |                     d          }t          j        g d          }t          j                            ||           t          j        g d          }t          j        t                    5  |                                 d d d            n# 1 swxY w Y   |                    d          }t          j        g dt                    }t          j                            ||           t          j        g d          }t          j        t          d          5  |                                 d d d            d S # 1 swxY w Y   d S )	NTFTFrq   NNNdtyper   r   Nzwith 1 nullsro   )
r   r   r.   r/   rt   r]   re   rg   rh   object)bool_arrr<   r=   null_arrr"   s        r   test_to_numpy_unsupported_typesr      sH    x+++,,H	z	"	"                 e44Fx+++,,HJ!!&(333x***++H	z	"	"                 e44Fx***&999HJ!!&(333
(<<<
 
 C	z	8	8	8                   s5   AAAC88C<?C<F))F-0F-c                     t          j        t          d                    } |                                 }t	          j        t                    5  d|d<   d d d            n# 1 swxY w Y   |                     dd          }d|d<   | d                                         dk    sJ t	          j        t                    5  |                     dd           d d d            d S # 1 swxY w Y   d S )Nr7   r   FT)rr   writable)r   r   rF   r]   r.   r/   rt   r'   )r"   ri   np_arr2s      r   test_to_numpy_writabler      s]   
(599

C\\^^F 
z	"	"  q	               ll%$l??GGAJq6<<>>Q 
z	"	" 9 9D48889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s$   A!!A%(A%C&&C*-C*unit)smsusnstzUTCc                     t          j        g dt          j        | |                    }t          j        g dd|  d          }|                                }t          j                            ||           d S )Nr   r   zdatetime64[]r|   )r   r   	timestampre   r]   rg   rh   )r   r   r"   r=   ri   s        r   test_to_numpy_datetime64r     sw     (999bl4B777
8
8Cx			)>t)>)>)>???H\\^^FJ!!&(33333r   c                     t          j        g dt          j        |                     }t          j        g dd|  d          }|                                }t          j                            ||           d S )Nr   ztimedelta64[r   r|   )r   r   durationre   r]   rg   rh   )r   r"   r=   ri   s       r   test_to_numpy_timedelta64r     sr     (999bk$//
0
0Cx			)?)?)?)?@@@H\\^^FJ!!&(33333r   c                      t          j        g d                                          } t          j        g dt                    }|                     d          }t          j                            ||           d S )N)abr   r|   Frq   )r   r   dictionary_encodere   r   r]   rg   rh   )r"   r=   ri   s      r   test_to_numpy_dictionaryr     sl     (???
#
#
5
5
7
7Cxv666H\\\//FJ!!&(33333r   c                  .   dd l } t          j        t          d                    }t          d          D ]0}|                                }t          j        |          dv sJ d }1t          j        |          dv sJ t          d          D ]}t          j        t          d                    }|                                }d }|                                  t          j        |j        j	                  }|dk    sJ |
                                 d S )Nr   r7   )r   r   r   )rb   r   r   rF   	to_pandasr   getrefcountrc   valuesrd   sum)rb   r"   iseriesbase_refcounts        r   test_to_pandas_zero_copyr     s
   III
(599

C2YY   v&&&0000?36))))2YY  huRyy!!


 (:;;!!!!

 r   c                     t          j        t          d                    } t          j        d | D                       }|                                g dk    sJ |j        t          j        d          k    sJ t          |d         t           j        j	                  sJ t          j        |           }|                                g dk    sJ |j        t          j        d          k    sJ t          j        | d          }|                                g d	k    sJ t          j        g d
          } | j
        t          j                    k    sJ t          j        |           }|                                }|d d         g dk    sJ t          j        |d                   sJ |j        t          j        d          k    sJ t           j                            t          j        g d          t          j        g d                    } t          j        |           }|j        t          j        d          k    sJ |                                g dk    sJ d S )Nrm   c                     g | ]}|S r2   r2   ).0_s     r   
<listcomp>z test_asarray.<locals>.<listcomp>E  s    (((q(((r   r   r   r   r   Or   int64strr|   )0123)r   r   r   Nr   )              ?       @float64r   r   r   r   r   r   r   cr   )r   r   r   r   r   )r   r   rF   re   asarraytolistr}   r)   lib
Int64ValuerT   r   isnanDictionaryArrayfrom_arrays)r"   ri   ru   s      r   test_asarrayr   =  s6   
 (588

C Z((C((())F==??lll****<28C==((((fQi!233333 Z__F==??lll****<28G,,,,,, Z5)))F==??2222222 (???
#
#C8rxzz!!!!Z__F}}HBQB<<<<''''8HQK     <28I...... 

(
(
!!28OOO#<#<> >CZ__F<28H------==??777777777r   tyc                    t          j        d|           }t          j        g d|           }t          |          dk    sJ |                    |          sJ |  |j        t          j                    k    sJ d S |j        | k    sJ d S )Nr   rS   r{   )r   nullsr   r   equalsrT   nullr   r"   r=   s      r   
test_nullsr   e  s     (12


Cx***444Hs88q====::h	zx2799$$$$$$x2~~~~~~r   c                  j   t          j        d          } t          j                                        }t          j                                        }|                    | j                  }|                    | 	                    d                    }t          j
        d          }d dt          j        d g          fd dt          j        d          fddt          j        g d	t          j                    
          fddt          j        ddgt          j                    
          fddt          j        dgdz            ft          j        dt          j                    
          dt          j        dgdz  t          j                    
          ft          j        d           dt          j        g d          ft          j        d          dt          j        dgdz            f|dt          j        |gdz            f|dt          j        |gdz            f|dt          j        |gdz  t          j        d| 	                    d                    
          f|                                dt          j        |                                gdz            f|dt          j        |gdz            fddt          j        dgdz            fddgdt          j        ddgddgg          ft          j        ddgt          j        t          j                              
          dt          j        ddggdz  t          j        t          j                              
          fddddt          j        dddgdz            fg}|D ]\  }}}	t          j        ||          }
t/          |
          |k    sJ |
j                            |	j                  sJ |
                    |	          sJ |	j        t          j                    k    r|
j        |k    sJ |
j        dk    sJ d S )Npytz)tzinfoz
US/Easternr   )daysr7   r   )r   r   r   rS   gGz@r   stringrm         r{   TrW   r   r   	   Frn   r   r   r   )r.   importorskipdatetimedatetodaynowreplaceutc
astimezonetimezone	timedeltar   r   r   r   r   scalaruint8r   time
large_listint8repeatr   rT   r   r   
null_count)r   r   r   now_utcnow_with_tzonedaycasesvaluesizer=   r"   s              r   test_array_from_scalarr   x  s   v&&DM!!E




!
!Ckkk**G$$T]]<%@%@AAKQ'''F 
q"(D6""#	r28B<< 	QBHJJ7778	q"(D$<bjll;;;<	1bhzA~../Iabhjj)))HaS2XBHJJ///	

 
4!RX&8&8&899:	4"bhv{334	28UGaK(()	b"(C52:&&'H	A\$4==+F+FGGG  	
 
Q#((**!1223	BHfX\**+	28UGaK(()
QBHq!fq!f-../Ir1gBM"'))$<$<===Hr1gY]rwyy)A)ABBB	

 q		1bhaa(8(8'9A'=>>?A!EF "' ' 'tXit$$3xx4xx}-----zz(#####=BGII%%>T)))))>Q&&&&&' 'r   c                     g d} t           j                            g d|           }t          j        |d         d          }t           j                            dgdz  |           }|                    |          sJ t          j        |d         d          }t           j                            dgdz  |           }|                    |          sJ d S )Nr5   r6   baz)r   r   r   r   )
dictionaryr   rn   r   r   )r   r   r   r   r   )r   r"   r<   r=   s       r   !test_array_from_dictionary_scalarr     s    &&&J


(
(*
(
M
MCYs1vq!!F!--qcAg*-MMH=="""""Ys1vq!!F!--qcAg*-MMH=="""""""r   c                     t          j        t          dd                    } |                                 }t          t	          |            t	          |                     D ](}| |                                         ||         k    sJ )t          dt	          |           z  t	          |                      D ];}t          j        t                    5  | |          d d d            n# 1 swxY w Y   <t          t	          |           dt	          |           z            D ];}t          j        t                    5  | |          d d d            n# 1 swxY w Y   <d S )Nr7      r   )	r   r   rF   	to_pylistr   r'   r.   r/   
IndexErrorr"   lstidxs      r   test_array_getitemr     s   
(5R==
!
!C
--//Cc#hhYC)) , ,3x~~3s8+++++R#c((]SXXI..  ]:&& 	 	HH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	SXXq3s88|,,  ]:&& 	 	HH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 s$   	C))C-	0C-	=	EE	E	c                  >   t          j        t          dd                    } |                                 }t          t	          |            t	          |                     D ]:}| t          j        |                                                   ||         k    sJ ;d S )Nr7   r   )r   r   rF   r   r   re   int32r'   r   s      r    test_array_getitem_numpy_scalarsr     s    
(5R==
!
!C
--//Cc#hhYC)) 6 628C==!''))SX555556 6r   c                     t          j        t          d                    } |                     d          }t          j        t          dd                    }|                    |          sJ |                     dd          }t          j        t          dd                    }|                    |          sJ |                     d                              |           sJ t          |                     t          |                               dk    sJ t          |                     t          |           dz                       dk    sJ t          |                     t          |           dz   d                    dk    sJ t          j        t                    5  |                     d           d d d            n# 1 swxY w Y   t          j        t                    5  |                     dd           d d d            n# 1 swxY w Y   | dd                              |                     d                    sJ | dd                             |                     dd	                    sJ | d
d                              |                     t          |           dz
                      sJ t          |           }t          | dz  |dz            D ]}t          | dz  |dz            D ]}| ||         }|
                                 |                                 ||         }|                                |k    sJ t          ,|                                                                |k    sJ d S )Nr7   r   rm      r   rD   r   rn   r   )r   r   rF   rY   r   r   r.   r/   r   rt   validater   re   r]   r   )	r"   slicedr=   sliced2	expected2nstartstopr   s	            r   test_array_slicer    s   
(599

CYYq\\Fxa%%H=="""""ii1ooGq!%%I>>)$$$$$ 99Q<<s##### syyS""##q((((syySA&&''1,,,,syySAs++,,1111	z	"	"  		"               
z	"	"  		!R               qrr7>>#))A,,'''''qs8??399Q??+++++rss8??399SXX\2233333CArAvq1u%% ; ;1"q&!a%(( 	; 	;DeDj/CLLNNN}}uTz2H==??h....~||~~,,..(::::	;; ;s$   (G

GG.HHHc                  z   t          t          d                    } t          j        |           }t          j        |g          }t          d d d          t          d dd          t          ddd          t          dd d          t          ddd          t          ddd          t          d d d          t          ddd          t          d	d
d          t          ddd          g
}|D ]}||         }t          j        | |         |j                  }|                    |          sJ t          j        |gdg          |         }t          j        |gdg          }|                    |          sJ ||         }t          j        | |         g|j                  }|                    |          sJ d S )N   r   r   r   r7   r   r   r   r   iirS   f0names)	listrF   r   r   rs   rY   rT   r   record_batch)r   r"   rv   r   caser<   r=   s          r   test_array_slice_negative_stepr    s   %))__F
(6

C"C5))K 	dD"dArb!RaraRb!RdD!aQb#rc3E  ' 'T8F4Lsx888}}X&&&&&#tf555d;?H:dV<<<}}X&&&&&T"#VD\NBBB}}X&&&&&&' 'r   c            
         g d} | D ]v}t          j        | }|                    d           |                    t          j        t          t          |           t          j                                        sJ wt          j        ddt          j                              }|                    d           |                    t          j        t          t          dd                    t          j                                        sJ t          j
        t           j                  5  t          j        dd	d           d d d            d S # 1 swxY w Y   d S )
N))rn   g   )r      r   )rm   r  rn   )r7   ir   )rD   i)r   r   )r   r7   r   )r7   r   r   TfullrS   r   e   memory_poolr   r7   )r   rf   r   r   r   r
  rF   r   default_memory_poolr.   r/   ArrowInvalid)r   r  r<   s      r   test_aranger    s   	 	 	E  L LD!T"""}}RXd5$<&8&8rxzzJJJKKKKKK Yr3B,B,D,DEEEF
OOO==$uR~~"6"6RXZZHHHIIIII 
r	'	'  
	!R                 s   1EEEc                     t          j        dgt          j                              } t          j        g dt          j                              }t          j        g d          }t          j        g dgd gt          j        t          j                                        }t          j        g dt          j                              }t          j        ddgt          j                              }|                     |           dk    sJ |                     |          d	k    sJ |                     |                                          d
k    sJ |                     |                                          d
k    sJ |                     |                                          dk    sJ |                    |          dk    sJ |                    |          dk    sJ d S )Nr5   rS   r5   r6   Nr   r   )g      ?r   r   r   rA   z
@@ -1, +1 @@
+"bar"
+null
z'# Array types differed: string vs int64z3# Array types differed: string vs list<item: int64>z&
@@ -0, +0 @@
-1.5
+1
@@ -2, +2 @@
-6
)r   r   utf8list_r   float16diffstrip)arr1arr2arr3arr4arr5arr6s         r   test_array_diffr'  7  s   8UG"')),,,D8(((rwyy999D8IIID8R!dO"(28::*>*>???D8KKKbjll333D8QF...D99T??b    99T??     
 99T??  ""&OOOOO99T??  ""&OOOOO99T??  "" (; < < < <99T??b    99T??       r   c                      t          j        t          d                    } t          t          d          |           D ]\  }}||                                k    sJ  t          | t                    sJ d S )Nr7   )r   r   rF   zipr'   r)   r   )r"   r   js      r   test_array_iterr+  T  sm    
(599

CE"IIs##  1AGGII~~~~~c8$$$$$$$r   c                  F   t          j        t          j        dt          j                              t          j        dt          j                              g          } t          j        g d|           }|dd                                          dddd	d
dgk    sJ d S )Nr   r   r         @r         @)rn         @rS   r   r   r1  r   rn   r2  )r   structfieldr   float32r   r   )r   r"   s     r   test_struct_array_slicer6  ]  s    	BHS"')),,HS"*,,//1 
2 
2B
(111
;
;
;Cqrr7#5#5)*#5#5#7 7 7 7 7 7 7r   c                       G d d          } t          j         |             g          }t          j        t                    5  t          j        |           d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS )1test_array_factory_invalid_type.<locals>.MyObjectN)__name__
__module____qualname__r2   r   r   MyObjectr9  i  s        r   r=  re   r   r.   r/   rt   r   )r=  r"   s     r   test_array_factory_invalid_typer?  f  s            (HHJJ<
 
 C	z	"	"  
                 s   A&&A*-A*c                      t          j        g d          } t          j        |           }t	          j        |           }t          j        |           |dz   k    sJ d S )Nr   r   )re   r   r   r   r   )r"   refcountr"  s      r   test_array_ref_to_ndarray_baserB  q  sV    
(999

Cs##H8C==D?3HqL111111r   c                  t   t          j        g dt          j                              } t          j        g dt          j                              }t          j        g dt          j                              }| |k    du sJ | |k    du sJ | |k    du sJ | |k    du sJ | dk    du sJ | d k    du sJ d S )Nr   rS   TFr   )r   r   r   r   )r!  r"  r#  s      r   test_array_eqrD  z  s     8IIIBHJJ///D8IIIBHJJ///D8IIIBHJJ///DDLT!!!!DLU""""DLU""""DLT!!!!AI%DLU""""""r   c                     t          j        t          j        g d                    } t          j        t          j        dg                    }t           j                            t          j                    d|| g          }|j        t          j                    k    sJ |                                g dk    sJ t           j                            t          j                    dd | g          }|j        t          j                    k    sJ |                                g dk    sJ t           j                            t          j                    d|| gd          }|j        t          j                    k    sJ |                                g dk    sJ t          j
        t                    5  t           j                            t          j                    dd	d	gd           d d d            d S # 1 swxY w Y   d S )
Nrm   rn   r         rm   )rm   Nr   rG  r   r   offset)Nr   rG  rA   )r   	py_bufferre   int16r   r1   from_buffersrT   r   r.   r/   r0   )
values_buf	nulls_bufr"   s      r   test_array_from_buffersrP    s   bh|||4455JRXzl3344I
(



A	:/F
G
GC8rxzz!!!!==??ooo----
(



Aj/A
B
BC8rxzz!!!!==??lll****
(



A	:/F'(   * *C8rxzz!!!!==??lll****	y	!	! A A
bhjj!b"Xa@@@A A A A A A A A A A A A A A A A A As   57G99G= G=c                     t          j        g d          } |                                 }t           j                            t          |           |d         |d         |d         | j        | j                  }|                                g dk    sJ t           j	                            t          j
                    t          |           |                                 | j        | j                  }|                                g dk    sJ t           j                            t          |           |d         |d         |d                   }|                                g dk    sJ | dd          }|                                }t           j                            t          |          |d         |d         |d         d|j                  }|                                g dk    sJ |j        dk    sJ | dd          }|                                }t           j                            t          |          |d         |d         d d|j                  }|                                dd	gk    sJ |j        dk    sJ d S )
N)r   Nr   r   r   r   r   )   aN   b   cr   )Nr   r   r   r   )r   r   r^   StringArrayrM  r   r   rJ  r   r1   rR   )r   r^   copiedbinary_copyr   s        r   test_string_binary_from_buffersrX    s\   H***++EmmooG^((E

GAJ
GAJ8H F !6!6!66666(''	SZZ(-9I(-6 6K   ""&>&>&>>>>>^((E

GAJ
GAJ8 8F!6!6!66666122YFnnG^((FWQZWQZV]L LF!1!1!11111!!!! 122YFnnG^((FWQZT2v}F FF#s++++!!!!!!r   c                  \   t          j        g dt          j                              } |                                 }t           j                            t          j                    t          |           |          }|                    d           |                                g dk    sJ d}t          j
        t          |          5  t           j                            t          j                    t          |           |dd                    d d d            d S # 1 swxY w Y   d S )	N)z String longer than 12 charactersNshortzLength is 12rS   Tr  znumber of buffers is at least 2ro   r   r   )r   r   string_viewr^   StringViewArrayrM  r   r   r   r.   r/   rt   )r   r^   rV  rp   s       r   test_string_view_from_buffersr]    sn   H	
 	
 	

   " " "E mmooG,,
#e**g/ /F
OOO " " "     /E	z	/	/	/ 8 8
''Nc%jj'!A#,	8 	8 	88 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8s   AD!!D%(D%list_type_factoryc                 P    | t          j                              }t          j        g dd g g dg|          }|j        |k    sJ |                                }t          j        t                    5  t           j        	                    |d|d |j
                            d d d            n# 1 swxY w Y   t           j        	                    t          j                    d||j
        d                    }t           j        	                    |d|d |j
                 |g          }|                    |          sJ t          j        t                    5  t           j        	                    |d|d |j
                 ||g           d d d            d S # 1 swxY w Y   d S )Nr   r   r   )r   rm   rn   rS   rm   r   children)r   rL  r   rT   r^   r.   r/   rt   r1   rM  num_buffersr   )r^  r   r   r^   childrV  s         r   test_list_from_buffersre    s    
	28::	&	&BHiiir9995B???E:mmooG	z	"	" ? ?
b!W_bn_%=>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? H!!"(**a1IJJEX""2q'/2>/*BeW"UUF==	z	"	" 7 7
b!W_bn_%=(-u~ 	 	7 	7 	77 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7s$   5/B00B47B43FF"Fc            	         t          j        t          j        dt          j                              t          j        dt          j                              g          } t          j        dddd dddg|           }|                                }t          j        t                    5  t           j
                            | d	d |d
         g           d d d            n# 1 swxY w Y   t           j
                            t          j                    d	|d
d	                   t           j
                            t          j                    d	|d	d                    g}t           j
                            | d	|d d
         |          }|                    |          sJ t          j        t                    5  t           j
                            | d	|d         g|d d
                    d d d            d S # 1 swxY w Y   d S )Nr   r   r   r5   r   rn   rA   rS   r   r   ra  )r   r3  r4  rL  r  r   r^   r.   r/   rt   r1   rM  r   )r   r   r^   rb  rV  s        r   test_struct_from_buffersrg    s=   	BHS"(**--rxRWYY/G/GH	I	IBHAE**D2C2CD  EmmooG	z	"	" 9 9
b!dGAJ%78889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 %%bhjj!WQqS\BB%%bgiiGABBK@@BHX""2q'"1"+"IIF==	z	"	" 5 5
b!gaj\'/| 	 	5 	5 	55 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s$   +*C!!C%(C%;3G;;G?G?c            	         t          j        g dt          j                              } t          j        g d          }t          j        ddgd dd gg          }ddddgd	d
d d d	dddd gd	g}t           j                            | ||gg d	          }|j        t          j        d| j        fd|j        fd|j        fg          k    sJ |                                |k    sJ t          j	        t                    5  t           j                            | ||gddg           d d d            n# 1 swxY w Y   t           j                            g g           }|j        t          j        g           k    sJ |                                g k    sJ t          j        d| j        d          }t          j        d|j                  }t          j        d|j                  }t           j                            | ||g|||g          }|j        t          j        |||g          k    sJ |j        d         j        rJ |                                |k    sJ t          j        |||g          }t           j                            | ||g|          }|j        t          j        |||g          k    sJ |j        d         j        rJ |                                |k    sJ t          j	        t                    5  t           j                            | ||g||g           d d d            n# 1 swxY w Y   t           j                            g g           }|j        t          j        g           k    sJ |                                g k    sJ t          j        dt          j                              }	t          j	        t          d          5  t           j                            | ||g|	||g           d d d            n# 1 swxY w Y   | ||g}
|||g}t          j        g d          }t           j                            |
||          }|                                d g|dd          z   k    sJ t           j                            |
g d	|          }|                                d g|dd          z   k    sJ t          j	        t          d          5  t           j                            |
|g d           d d d            n# 1 swxY w Y   t          j	        t          d          5  t           j                            |
|t          j        g d                     d d d            n# 1 swxY w Y   t          j	        t          d          5  t           j                            |
|t          j        |g                     d d d            n# 1 swxY w Y   t           j                            g g |          }|                                |k    sJ |                                d i i gk    sJ d S )Nrm   rn   r   rS   )r6   NrA   r   r   r   rm   r6   r   rn   r   rA   r   r   r   Fnullable)fieldsr   zint64 vs int32ro   )TFF)rl  maskr	  rm  zMask must berm  znot contain nulls)TFN)r   r   r   StructArrayr   rT   r3  r   r.   r/   rt   r4  rk  r   r0   rs   is_null)r   r   r   expected_listr"   fafbfc
structtypefa2arraysrl  rm  s                r   test_struct_from_arraysry    s   
,,,A
"""##A
1a&$D	*++Ae1a&))d&&b4y))M .
$
$aAY
@
@C8ry
qvafQV}57 7 7 7 7 7==??m++++	z	"	" : :
""Aq!9sCj999: : : : : : : : : : : : : : : .
$
$R
,
,C8ry}}$$$$==??b     
#qv	.	.	.B	#qv		B	#qv		B
.
$
$aAYB|
$
D
DC8ry"b"......x{####==??m++++ BB<((J
.
$
$aAYZ
$
@
@C8ry"b"......x{####==??m++++	z	"	" ? ?
""Aq!9b"X">>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? .
$
$R
$
3
3C8ry}}$$$$==??b     (3


#
#C	z)9	:	:	: D D
""Aq!9c2r]"CCCD D D D D D D D D D D D D D D AYF"b\F8((())D
.
$
$VF
$
F
FC==??tf}QRR'888888
.
$
$V???
$
N
NC==??tf}QRR'888888 
y	7	7	7 N N
""668L8L8L"MMMN N N N N N N N N N N N N N N 
z)<	=	=	= @ @
""F*=*=*=!>!> 	# 	@ 	@ 	@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 
y	7	7	7 ; ;
""F!14&!9!9 	# 	; 	; 	;; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
 .
$
$R$
$
7
7C;;==D    ==??tRn,,,,,,sl   ?&D11D58D5 'L33L7:L7(PPP%%TTT<7U??VV%6W''W+.W+c                      t          j        g dg dg          } t          j        t          d          5  t           j                            | gdg           d d d            d S # 1 swxY w Y   d S )Nr   ri  zExpected Arrayro   r5   )r   rs   r.   r/   r0   rp  r   )rv   s    r   test_struct_array_from_chunkedr{  W  s     "IIIyyy#9::K	y(8	9	9	9 ; ;
""K=5':::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;s   #A&&A*-A*rJ  )r   r   c                     t          j        g d                                          }t           j                            |j        t          |          | z
  |j                                        |j	        |           }|| d          |k    sJ d S )N)onetwothreer~  r}  rI  )
r   r   r   r   rM  rT   r   indicesr^   r   )rJ  r   r   s      r   test_dictionary_from_buffersr  a  s    
66677IIKKA
''Av()	(9(9(;(;Q\/5 	( 	7 	7A VWW:??????r   c                     t          j        g dd          } t          j        g dt                    }t          j        g d          }t          j                            | |          }t          j                            | ||          }|j                                        | 	                                k    sJ |j                                        | 	                                k    sJ |j
                                        |	                                k    sJ |j
                                        |	                                k    sJ t          t          |                     D ]}||                                         || |                  k    sJ ||         r||                                         J S||                                         || |                  k    sJ d S )Nr`  r   r   r|   )FFTFFFro  re   r   r   r   r   r   r   r  r   r   r   rF   r   r'   )r  r   rm  d1d2r   s         r   test_dictionary_from_numpyr  j  s   i			1%%G///v>>>J8===>>D			'	'	<	<B			'	'$	'	G	GB:!!W^^%5%55555:!!W^^%5%55555=""$$
(9(9(;(;;;;;=""$$
(9(9(;(;;;;;3w<<   ; ;!u{{}}
71: 666667 	;a5;;==((((a5;;==Jwqz$::::::; ;r   c                     t          j        g d                              d          } t           j                            t          j        g d          t          j        ddg                    }t
          j                            |                    d          |            t          j	        t           j
                  5  |                    d           d d d            n# 1 swxY w Y   t           j                            t          j        g d          t          j        ddg                    }t          j        g d	                              d          } t
          j                            |                    d          |            t          j	        t           j
                  5  |                    d           d d d            n# 1 swxY w Y   t           j                            t          j        g d          t          j        d
dg                    }t          j        g d                                          } t
          j                            |                    d          |            t
          j                            |                    d          |            t           j                            t          j        g d          t          j        d
dg                    }t          j        g d                              d          } t
          j                            |                    d          | d           t           j                            t          j        g d          t          j        ddg                    }t          j        g d                              d          } t
          j                            |                    d          | d           d S )N)r5   r6   Nr5   Frq   )r   r   Nr   r5   r6   T)r   r   r   r   )r5   r6   r6   r5   ffffff+@      &@)r  r  r  r  )r  r  Nr  )	equal_nanrG  rW   )rG  rW   NrG  )r   r   r]   r   r   re   rg   rh   r.   r/   r  assert_allclose)r=   r   anonullsafloatafloat2aintss         r   test_dictionary_to_numpyr    s8   x### heh$$  	&&
!!
%  	 	A J!!!**E*"B"B"*, , , 
r	'	' ( ( 	


$
'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( !--

%   H x$$$ heh$$  J!!("3"35"3"I"I"*, , , 
r	'	' / /.../ / / / / / / / / / / / / / / ++

$ F x00011::<<HJ!!&///"F"F"*, , ,J!!&///"G"G"*, , ,  ,,
!!
$ G x    heh$$  J..     **
!!
!R E x((())22%2HHHJe,,      s$   C((C,/C,7GG!Gc                  X   t          j        g dd          } t          j        g dt                    }t	          j        |           }t	          j        |          }t          j                            ||          }|j                                        | 	                                k    sJ |j
                                        |	                                k    sJ t          t          |                     D ].}||                                         || |                  k    sJ /d S )Nr`  r   r   r|   r  )r  r   iarrdarrr  r   s         r   !test_dictionary_from_boxed_arraysr    s   i			1%%G///v>>>J8GD8JD			'	'd	3	3B:!!W^^%5%55555=""$$
(9(9(;(;;;;;3w<<   7 7!u{{}}
71: 6666667 7r   c                     t          j        g d          } t          j        g d          }t          j        g d          }t          j        g d          }t           j                            | |           t	          j        t           j                  5  t           j                            ||           d d d            n# 1 swxY w Y   t	          j        t           j                  5  t           j                            ||           d d d            n# 1 swxY w Y   t           j                            ||d           d S )Nr   r   r   r   r   r   )r   r   r   r   r   Fsafe)r   r   r   r   r.   r/   ArrowException)indices1indices2indices3r   s       r   'test_dictionary_from_arrays_boundscheckr    s   x***++Hx


##Hx%%H///00J ""8Z888	r(	)	) = =
&&x<<<= = = = = = = = = = = = = = = 
r(	)	) = =
&&x<<<= = = = = = = = = = = = = = =
 ""8Ze"DDDDDs$   !CCC-!DD!Dc                      t          j        g d          } t          j        g d          }t           j                            | |          }|j                            d           d S )Nr  r   Tr  )r   r   r   r   r  r   )r  r   r"   s      r   test_dictionary_indicesr    se    h)))**G///00J


(
(*
=
=CKd#####r   )list_array_typer^  c                    t          j        g dd          }t          j        |d          }g d}t          j        |d          }|                     ||          }t          j        |d d         |dd	         |d	d
         g |t          j                                        }|                    |          sJ  |t          j        dt          j                                        }|                     |||          }|j        |k    sJ |j        j        j	        dk    sJ g d}g d}|                     ||          }t          j        |d d         d |dd          g |t          j                                        }|                    |          sJ g d}	|                     |	|          }t          j        |d d         |dd          d g |t          j                                        }|                    |          sJ g d}t          j
        d	          }t          j        t                    5  |                     ||           d d d            n# 1 swxY w Y   g d}t          t          d                    }|                     ||          }t          j        t                    5  |                    d           d d d            n# 1 swxY w Y    |t          j                              }t          j        t"                    5  |                     |||           d d d            d S # 1 swxY w Y   d S )Nr   r   rn   r   i4r|   r   rS   rR  rS  rT     d   e   f   g   hrR   r   rn   r   namer   Nr   r   rR  rS  rT  r  r  r  )r   r   Nr   )r   r   r7   )r   r   r   r   r   Tr  )re   r   r   r   rR   r   r4  rT   value_fieldr  rf   r.   r/   rt   r
  rF   r   r0   )
r  r^  offsets_arroffsetspyvaluesr   r<   r=   typoffsets2s
             r   test_list_from_arraysr    s   
 (<<<t444Kh{111G???HXhX...F((&99Fx"1"x!}hqsmD..ry{{;;= = =H ==""""" 
BHVRY[[99
:
:C((&#>>F;#;"'61111 ooG111F((&99FxT6!"":6..ry{{;;= = =H ==""""" H((6::FxVABBZ6..ry{{;;= = =H==""""" jjGYq\\F	z	"	" 5 5##GV4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 llG%((^^F((&99F	z	"	" # #T"""# # # # # # # # # # # # # # # 
BIKK
(
(C	y	!	! ? ?##GV##>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?s6   I++I/2I/K((K,/K,(MMMr"   r   c                     t          j        | |t          j                                        }|                     |j        |j        |                                          }||k    sJ d S )Nro  )r   r   r   r   r  r   rq  )r  r^  r"   reconstructed_arrs       r   !test_list_array_types_from_arraysr  0  sm     (3))"'))44
5
5C'33SZckkmm 4 5 5#######r   c                    t          j        dgd dd gdgg |t          j                                        }t          j        g d          }|                     |j        |j                  }|                                dgg dd gdggk    sJ |                     ||j                  }||k    sJ |                     |j        |j        |                                          }||k    sJ t          j	        t          d          5  |                     ||j        |                                           d d d            n# 1 swxY w Y   |dd          }d}t          j	        t          |          5  |                     |j        |j        |                                           d d d            d S # 1 swxY w Y   d S )Nr   )r   Nr   r   rm   ro  zAmbiguous to specify both ro   r   -Null bitmap with offsets slice not supported.)r   r   r   r   r  r   r   rq  r.   r/   rt   NotImplementedError)r  r^  r"   r  r  	arr_slicerw   s          r   &test_list_array_types_from_arrays_failr  B  s    (QC4y1#.0A0A"'))0L0L
M
MCh)))**G (33CKLL&&((aS"q$i!,EEEEE (33GSZHH#####'33CK47J9< 4 H H ##### 
z)E	F	F	F M M##GSZckkmm#LLLM M M M M M M M M M M M M M M ABBI
9C	*#	6	6	6 K K##y/i6G6G6I6I 	$ 	K 	K 	KK K K K K K K K K K K K K K K K K Ks$   
0EE
E
85F::F>F>c                     t          j        t          j                    t          j                              } t          j        ddig|           }|                    t          j        t          j                    t          j                                        }t          j        t          j                    t          j                              }t          j        ddig|          }|                    |          sJ d S )Nr   r   rS   )r   map_r   r   castr   r   )tr"   r<   
t_expectedr=   s        r   test_map_castr  f  s    


BHJJ''A
(QF8!
$
$
$CXXbgbhjj"(**5566FRXZZ00Jx!Qz222H=="""""""r   c                     t          j        t          j        ddd          d          } t          j        ddgdgg| 	          }|j        j        t          j        dt          j                    d          k    sJ |j        j        t          j        d
t          j                              k    sJ t          |          dk    sJ d S )Nr  r   Frj  r   r   r   r   r   r   r   rS   r   r   )
r   r  r4  r   rT   	key_fieldr  
item_fieldr   r   )r  r"   s     r   test_map_labelledr  r  s    
E:::GDDA
(Xx(8*5A
>
>
>C8&"'))e!L!L!LLLLL8"(7BHJJ"?"?????s88q======r   c                  t   t          j        ddgdggt          j        t          j                    t          j                                        } t          j        dddddigt          j        t          j                    t          j                                        }|                     |          sJ d S )	Nr  r  r  r   r   r   r   r   )r   r   r  r   r   r   )tup_arrdict_arrs     r   test_map_from_dictr  {  s    h8,xj9wry{{BHJJ779 9Gxqq))C84	RXZZ88: :H >>(#######r   c                     t          j        g dd          } t          j        | d          }g d}t          t	          t          |                              }t          t          ||                    }|d d         |dd         |dd	         g}t          j        |d
          }t          j        |d          }t          j                            |||          }t          j        |t          j	        t          j
                    t          j                                        }	|                    |	          sJ g d}g d}g d}t          t          ||                    }|d d         d |dd          g}t          j        |d
          }t          j        |d          }t          j                            |||          }t          j        |t          j	        t          j
                    t          j                                        }	|                    |	          sJ t          j                            |||t          j	        |j        |j                            }|                    |	          sJ t          j        t          j        d          5  t          j                            |||t          j                               d d d            n# 1 swxY w Y   t          j        t          j        d          5  t          j                            |||t          j	        |j        t          j                                         d d d            n# 1 swxY w Y   t          j                            g d||t          j	        |j        |j                  t          j        g dt          j                                        }|j        dk    sJ |                    |	          sJ t          j                            g d||t          j        g dt          j                                        }|                    |	          sJ g d}d d |dd          g}t          j                            g d||t          j	        |j        |j                  t          j        g dt          j                                        }t          j        |t          j	        t          j
                    t          j                                        }	|j        dk    sJ |                    |	          sJ d}
t          j        t          j        |
          5  t          j                            |||t          j	        |j        |j                  t          j        g dt          j                                         d d d            n# 1 swxY w Y   d}t          j        g dt          j                              }t          j        t          j        |          5  t          j                            |                    d          ||t          j	        |j        |j                  t          j        g dt          j                                         d d d            n# 1 swxY w Y   g d}t          j        d          }t          j        d          }t          j                            |||          }t          j        t2                    5  t          j                            |dgz   ||           d d d            n# 1 swxY w Y   t          j        t2                    5  t          j                            ||t          j        ||g                     d d d            n# 1 swxY w Y   t          |          d d         d gz   }t          |          t          |          k    sJ t          j        t2                    5  t          j                            |||           d d d            n# 1 swxY w Y   t          j        |t          j                              }t          j                            |                    d          ||          }t          j                            g d||          }	|                    |	          sJ |j        dk    sJ |	j        dk    sJ t          j        g dt          j                              }t          j                            |                    d          t          j        g t          j                              t          j        g t          j                                        }t          j                            g dt          j        g t          j                              t          j        g t          j                                        }	|                    |	          sJ |j        dk    sJ |	j        dk    sJ d S ) Nr  r  r|   r   rS   r  r   rn   r   rR   r  r  )r   r   r   Nrm   rn   zExpected map type, got stringro   zMismatching map items typer   r   r   r   FTFro  r   )r   NNr   )TTFz=Ambiguous to specify both validity map and offsets with nullsr  )r   r   r   rn   r   r   r   r   rn   r   )r   r   r   r   r   r   )r   r   r   r   r   )re   r   r   r
  rF   r   r)  MapArrayr   r  rR   r   r   rT   r.   r/   ArrowTypeErrorr   r   bool_r   r  ArrowNotImplementedErrorrY   rf   rt   concatenaterJ  )r  r  pykeyspyitemspypairs	pyentrieskeysitemsr<   r=   msg1msg2r   keys_with_nulls                 r   test_map_from_arraysr    s
   (<<<t444Kh{111G===F5V%%&&G3vw''((G!gaclGAaCL9I8F***DHW4(((E[$$WdE::Fx		RXZZ(H(HIIIH==""""" ooG111F###G3vw''((G!dGABBK0I8F***DHW4(((E[$$WdE::Fx		RXZZ(H(HIIIH==""""" [$$WdE27	
< <  F ==""""" 
r(0O	P	P	P C C
ubikkBBBC C C C C C C C C C C C C C C 
r(0L	M	M	M  
ubgIHJJ7
 7
 	 	 	               [$$\\\4	
A A X***<<< %  F
 !!!!==""""" [$$\\\4*,(3G3G3G8:

+D +D +D % ' 'F ==""""" !  GtWQRR[)I[$$\\\4	
A A X)))

;;; %  F
 x		RXZZ(H(HIIIH!!!!==""""" KD	rd	3	3	3 
 

ubgIJ7 7 ...RXZZ@@@ 	  	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 ;Dh|||RXZZ00G	r2$	?	?	? 
 

a 0 0$rwIJ@ @ ...RXZZ@@@ 	  	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 llG9Q<<DIaLLE
u55A 
z	"	" < <
1#tU;;;< < < < < < < < < < < < < < < 
z	"	" O O
r~uen/M/MNNNO O O O O O O O O O O O O O O $ZZ_v-N~#e**,,,,	z	"	" @ @
???@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ hw

++G[$$W]]1%5%5tUCCF{&&yyy$>>H=="""""=A?ah)))28::66G[$$a
RY[[!!
RY[[!! F
 {&&
RY[[!!
RY[[!! H
 =="""""=A?as   (4K((K,/K,AM++M/2M/3A)W((W,/W,=A<[[	[	6&]((],/],6___/"aa!$a!c                  	   t          j        t          d          t          j                              } t           j                            | d          }|                                g dg dg dgk    sJ |j                            t          j	        t          j                    d                    sJ t          j	        t          j
        dt          j                              d          }t           j                            | |          }|                                g dg dg dgk    sJ |j                            |          sJ |j        j        j        dk    sJ t           j                            | |t          j        g d          	          }|                                g dd g dgk    sJ t           j                            | dt          j        g d          
          }|                                g dd g dgk    sJ t          j        t                    5  t           j                            | d           d d d            n# 1 swxY w Y   t          j        t                    5  t           j                            t          j        g t          j                              d           d d d            n# 1 swxY w Y   t          j        t                    5  t           j                            | d           d d d            n# 1 swxY w Y   t          j	        t          j                    d          }t          j        t                    5  t           j                            | |           d d d            n# 1 swxY w Y   t          j	        t          j                    d          }t          j        t"                    5  t           j                            | |           d d d            n# 1 swxY w Y   t          j        t                    5  t           j                            |            d d d            n# 1 swxY w Y   t          j	        t          j                    d          }t          j        t                    5  t           j                            | d|           d d d            d S # 1 swxY w Y   d S )N   rm   r   rF  )r   r   r7   rW   r  rS   r  rT   rm  )	list_sizerm  r   rn   )r  rT   )r   r   rF   r   FixedSizeListArrayr   r   rT   r   r  r4  r  r  r.   r/   rt   r   r0   )r   r<   r  s      r    test_fixed_size_list_from_arraysr    s   XeBii,,F"..vq99F,,,nnn!MMMMM;bhrxzz15566666
(28FBHJJ//
3
3C"..vC.@@F,,,nnn!MMMMM;c""""";"'61111"..v4746H=Q=Q=Q4R4R / T TF ,,,nnn!EEEEE"..v9:46H=Q=Q=Q4R4R / T TF ,,,nnn!EEEEE 
z	"	" 6 6
))&"5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 
z	"	" G G
))"(2rxzz*B*BAFFFG G G G G G G G G G G G G G G 
z	"	" 5 5
))&!4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 (28::q
!
!C	z	"	" < <
))&s);;;< < < < < < < < < < < < < < < (2:<<
#
#C	y	!	! < <
))&s);;;< < < < < < < < < < < < < < < 
z	"	" 2 2
))&1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 (28::q
!
!C	z	"	" I I
))&AC)HHHI I I I I I I I I I I I I I I I I Is   .!II"I?AKKK4!L!!L%(L%+"NN N#"PPP5 Q!!Q%(Q%+#SS"Sc                     t          j        g dt          j                              } t          j        g d          }t           j                            ||           }|                                ddgddggk    sJ |j                            t          j        t          j                                        sJ t          j        g d          }t           j                            ||           }|                                ddgd ddggk    sJ t          j
        t                    5  t           j                            t          j        g d          |            d d d            n# 1 swxY w Y   t          j
        t                    5  t           j                            t          j        g d	          |            d d d            d S # 1 swxY w Y   d S )
Nr   r   r   rm   )r   r   rm   r   r   r   rm   )r   Nr   rm   )r   r   rm   )r   r   rn   )r   r   r   	ListArrayr   r   rT   r   r  r.   r/   rt   )r   r  r<   s      r   test_variable_list_from_arraysr  F  s   XlllBHJJ//Fhyyy!!G\%%gv66F1a&1a&!11111;bhrxzz2233333h''G\%%gv66F1a&$A!77777 
z	"	" ? ?
  ***!5!5v>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 
z	"	" > >
  )))!4!4f===> > > > > > > > > > > > > > > > > >s$   .5E//E36E35GGGc            
         t          j        g dd          t          j        g dd          t          j        g dd          } t          j        g dd          }t          j        g d	d
          g dfd} |t           j                            | g          ddgddg|             |t           j                            | gddg          ddgddg|             |t           j                            |gddg          ddgddg|            |t           j                            |gddgddg          ddgddg|           t           j                            |g          }t	          j        t           j                  5  |                    d           d d d            n# 1 swxY w Y   t           j                            | gddg          }t	          j        t           j                  5  |                    d           d d d            n# 1 swxY w Y   t          j        g dd
          }t           j                            | |g          }t	          j        t           j                  5  |                    d           d d d            d S # 1 swxY w Y   d S )NrR  rS  rT  r  rR   rS   r   r   r   r   r   r   r   r   r   r   rW   rH  rW   rW   rH  rH  rW   )r   r   r   r   r   r   r   r   rR  r   rS  rT  r   r   r  c                 >                          d            fdt           j        j                  D             }||k    sJ  j        j        dk    sJ  j        j        |k    sJ                                  k    sJ |                     j                  sJ                      j                  sJ  	                    d                                        sJ  	                    d                                        sJ t          j        t                    5   	                    d           d d d            n# 1 swxY w Y   t          j        t                    5   	                    d           d d d            d S # 1 swxY w Y   d S )	NTr  c                 4    g | ]}j         |         j        S r2   rT   r  r   r   r<   s     r   r   z?test_union_from_dense.<locals>.check_result.<locals>.<listcomp>d  8     F F F"# %k!n1 F F Fr   denser   r   r   r   )r   rF   rT   
num_fieldsmode
type_codesr   r   r  r4  r.   r/   KeyError)	r<   expected_field_namesexpected_type_codesexpected_type_code_valuesactual_field_namesrR   r   py_valuevalue_offsetss	   `    r   check_resultz+test_union_from_dense.<locals>.check_resulta  s,   T"""F F F F',V[-C'D'DF F F!%99999{7****{%)<<<<<!!X----(//0ABBBBB##FN33333||A%%f-----||A%%e,,,,,]8$$ 	 	LL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]8$$ 	 	LLOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   )EEE/FFFr   r   r   r   r  r  r  binintrW   rH  r  Tr  )r   r   r   r   r   r   rm   )r   r   
UnionArray
from_denser.   r/   r  r   )	typeslogical_typesr   r"   bad_offsetsrR   r   r  r  s	        @@@@r   test_union_from_denser
  Y  s   X...X>>>FHYYYW---EH***888EH999GGGMH222AAAM000H       & L))%+15/; ;'*Cj&'V+0	2 2 2 2 L))%+15/+0%.: : (-en&'V+02 2 2 2 L))-+15/68"X * ? ? (+Cj&("X+8: : : : L))-+15/+0%.2r(D D (-en&("X+8: : : : -
"
"=-$*E?4 4C	r	'	'    $                             
-
"
"5-&%/12h # 8 8C	r	'	'    $                              (000w???K
-
"
"5+
G
GC	r	'	'    $                                   s6   'G

GGH==II!KK	K	c            	         t          j        g dd          t          j        g dd          t          j        g dd          } t          j        g dd          }g d	fd
} |t           j                            | g          ddgddg|             |t           j                            | gddg          ddgddg|             |t           j                            |gddg          ddgddg|            |t           j                            |gddgddg          ddgddg|           t           j                            |g          }t	          j        t           j                  5  |                    d           d d d            n# 1 swxY w Y   t           j                            | gddg          }t	          j        t           j                  5  |                    d           d d d            n# 1 swxY w Y   t	          j        t           j                  5  t           j                            |dd          g          }d d d            d S # 1 swxY w Y   d S )N)rR      rS  rT  r  r  r  rR   rS   )r   r   r   r   r   r   r   r   r  r   r  r  c                                           d                                            k    sJ  fdt           j        j                  D             }||k    sJ  j        j        dk    sJ  j        j        |k    sJ |                     j                  sJ                      d                                        sJ                      d                                        sJ t          j
        t          j                  5   j         d d d            n# 1 swxY w Y   t          j
        t                    5                       d           d d d            n# 1 swxY w Y   t          j
        t                    5                       d           d d d            d S # 1 swxY w Y   d S )	NTr  c                 4    g | ]}j         |         j        S r2   r  r  s     r   r   z@test_union_from_sparse.<locals>.check_result.<locals>.<listcomp>  r  r   sparser   r   r   r   )r   r   rF   rT   r  r  r  r   r4  r.   r/   r   r  r  r  )r<   r  r  r  r  rR   r   r  s   `    r   r   z,test_union_from_sparse.<locals>.check_result  s   T"""!!X----F F F F',V[-C'D'DF F F!%99999{8++++{%)<<<<<(//0ABBBBB||A%%f-----||A%%e,,,,,]2,-- 	 	NN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]8$$ 	 	LL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]8$$ 	 	LLOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s6   D&&D*-D*
E,,E03E0F33F7:F7r   r   r   r   r  r  r  rW   rH  r  Tr  )r   r   r  from_sparser.   r/   r  r   )r  r  r   r"   rR   r   r  s       @@@r   test_union_from_sparser    s   X@@@#% % %FH***999EH***888EH999GGGM000H      ( L**565/BB'*Cj&'V+02 2 2 2 L**565/,15>; ;',en&'V+0	2 2 2 2 L**=65/792h + @ @'*Cj&("X+8	: : : : L**=65/,15>,.85 5 (-en&("X+8: : : : -
#
#MFE?
C
CC	r	'	'    $                             
-
#
#EFE?02Bx $ 9 9C	r	'	'    $                              
r	'	' L Lm''abb	7JKKL L L L L L L L L L L L L L L L L Ls6   F++F/2F/:HH!$H!+I>>JJc            	         t           j                            t          j        g dt          j                              t          j        g d          t          j        g d          g          } |                                 g dk    sJ t           j                            t          j        g dt          j                              t          j        g dt          j                              t          j        g d          t          j        g d	          g          } |                                 g d
k    sJ d S )N)r   r   r   r   r   rS   )r   皙?Nffffff
@g@)TNFTF)r   NNr  F)r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r  Nr  )TNF)r   Tr  Nr  NF)r   r  r  r   r   r   r  r   r+   s    r   %test_union_array_to_pylist_with_nullsr    s.   
-
#
#
rwyy111H///00H55566	
 C ==??;;;;;;;
-
"
"
&&&RWYY777
&&&RXZZ888H***++H((())	
 C ==??FFFFFFFFFr   c                  0   t           j                            t          j        g dt          j                              t          j        g d          t          j        g d          g          } | dd                                          g dk    sJ t          j        g dd          }t          j        g d	d
          }t          j        g dd          }t          j        g dd          }t           j                            ||||g          } |                                 }t          t          |                     D ]L}t          |t          |                     D ],}| ||                                         |||         k    sJ -Md S )N)r   r   r   r   rS   )r   r   r   dr  r   )r   r   rm   r  rR   r   r   r  r   )r   r   r   r   r   r   r   r   )	r   r  r  r   r   r   r  rF   r   )r"   rR   r   r  r  r   r   r*  s           r   test_union_array_slicer    s   
-
#
#BH\\\		$J$J$J%'X.B.B.B%C%C%'Xlll%;%;%=> >C qrr7+++----X...X>>>FHYYYW---EH***888EH222AAAM
-
"
"5-&%
I
IC
--//C3s88__ 4 4q#c((## 	4 	4Aqs8%%''3qs833333	44 4r   Tr  check_array_constructionc                    | \  }}}}t          |t          j                  r|j        |k    sJ |}nt          j        ||          }t          |t          j                  r|j        |k    sJ |}nt          j        ||          }|                    ||          }	|	                    d           |	                    |          sJ |r.t          j        |||          }|                    |          sJ d S d S )NrS   r  Tr  rT   r  )r)   r   r1   rT   r   r  r   r   )
r  r  r  in_datain_typeout_dataout_typer=   in_arrcasteds
             r   _check_cast_caser#    s   +/(GWh(BH%% 5}((((8H8444 '28$$ 1|w&&&&'000[[[--F
OOO=="""""   ''t<<<}}X&&&&&' '&&r   c            	         t          j        g dd          dt          j        g dd          t          j                    ft          j        g dd          dt          j        g dd          t          j                    ft          j        g dd          dt          j        g dd          t          j                    ft          j        g dd          dt          j        g dd          t          j                    fg} | D ]}t          |           t          j        d	gd          d
dft          j        dgd          d
dft          j        dgd          d
dft          j        d	gd          ddfg}|D ]g\  }}}t          j        ||          }t          j	        t          j
                  5  |                    |           d d d            n# 1 swxY w Y   hd S )Nr   i1r|   r   r  u4u1f8P  r   rL  p uint16r   u2rS   )re   r   r   r   r+  r   r   r#  r.   r/   r  r  )
safe_casesr  unsafe_casesr  r  r   r!  s          r   test_cast_integers_safer/  *  s>    
,,,d	+	+	+V	,,,d	+	+	+RXZZ	9	,,,d	+	+	+V	,,,d	+	+	+RY[[	:	,,,d	+	+	+V	,,,d	+	+	+RXZZ	9	,,,d	+	+	+V	,,,d	+	+	+RZ\\	;	J    
5'	&	&	&9	5'	&	&	&:	2$d	#	#	#Wh7	5'	&	&	&':	L '3 " ""('000]2?++ 	" 	"KK!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"" "s   G##G'	*G'	c                      t          j        g d          } t          j        t                    5  |                     d            d d d            d S # 1 swxY w Y   d S r   )r   r   r.   r/   r0   r  r+   s    r   test_cast_noner1  G  s    
(999

C	y	!	!                   s   AAAc                     t          j        ddgddgg          } t          j        t                    5  |                     t          j                               d d d            n# 1 swxY w Y   t          j        ddgdggt          j        t          j                                        } t          j        t                    5  |                     t          j                               d d d            d S # 1 swxY w Y   d S )Nr   r   r   rm   rR  rS  rT  )	r   r   r.   r/   r  r  r   r  rR   r+   s    r   test_cast_list_to_primitiver3  O  sW   
(QFQF#
$
$C	*	+	+                 (T4L4&)28BIKK+@+@
A
AC	*	+	+                   s#   'A''A+.A+'C<<D D c                      t          j        g d          } | j        dk    sJ | d d          }|                    |           sJ | d d          d S )Nr   rS   r   rn   )r   rs   
num_chunksr   )r"   r<   s     r   $test_slice_chunked_array_zero_chunksr6  Z  sb    

2F
+
+
+C>QVF== GGGGr   c                  F   t          j        g d          t          j        g d          g} t          j        |           }t          j                    |                              }t          j        fd| D                       }|                    |          sJ d S )Nr   ri  c                 :    g | ]}|                               S r2   )r  )r   xtargets     r   r   z+test_cast_chunked_array.<locals>.<listcomp>l  s#     @ @ @A @ @ @r   )r   r   rs   r   r  r   )rx  carrr"  r=   r:  s       @r   test_cast_chunked_arrayr<  f  s    hyyy!!28III#6#67FF##DZ\\FYYvF @ @ @ @ @ @ @AAH=="""""""r   c                     t          j        t          j                    t          j                              t          j                    ft          j                    t          j                    ffD ]]\  } }t          j        g |           }|                    |          }t          j        g |          }|                    |          sJ ^d S NrS   )	r   r   r   r   r   r   rs   r  r   )typ1typ2r"   r<   r=   s        r   test_cast_chunked_array_emptyrA  p  s    bgii==ry{{K

BHJJ/1 ' '
d r---$#BT222}}X&&&&&&' 'r   c                      t          j        t                    5  t          j        g g          j        } d d d            n# 1 swxY w Y   t          | t          j                  sJ d S N)r.   warnsFutureWarningr   rs   ra   r)   ChunkedArray)r   s    r   test_chunked_array_data_warnsrG  {  s    	m	$	$ * *t$$)* * * * * * * * * * * * * * *c2?+++++++s   AAAc                     t          j        dgd          dt          j        dg                              d          t          j                    ft          j        dgd          dt          j        dg                              d          t          j                    ft          j        dgd          dt          j        dg                              d          t          j                    ft          j        dgd          t          j                    t          j        dg                              d          t          j                    fg} | D ]}t          |d	
           d S )Nr)  r  r|   r   i2r*  r,  r   Fr  )re   r   astyper   rL  r+  r#  r.  r  s     r   test_cast_integers_unsaferL    sL    
5'	&	&	&	5'			!	!	!	-	-rxzz	;	5'	&	&	&	5'			!	!	!	-	-ry{{	<	2$d	#	#	#W	2$		T		*	*BIKK	9	5'	&	&	&		5'			!	!	!	-	-rxzz	;	L  + +E*****+ +r   c                     t          j        g dd          dt          j        g dd          t          j                    ft          j        g dd          dt          j        g dd          t          j                    ft          j        g dd          dt          j        g dd          t          j                    fg} | D ]}t	          |d	
           d S )Nr   r         @r5  r|   r   r  r   )g      $g      4@g      >ir  iTr  )re   r   r   r   r#  r-  r  s     r   !test_floating_point_truncate_saferR    s     
///	3	3	3Y	)))4	(	(	("(**	6	///	3	3	3Y	)))4	(	(	("(**	6	&&&i	8	8	8)	...	-	-	-rxzz	;J  * *D)))))* *r   c                  T   t          j        g dd          dt          j        g dd          t          j                    ft          j        g dd          dt          j        g dd          t          j                    ft          j        g dd          dt          j        g dd          t          j                    fg} | D ]\}t	          j        t          j        d	
          5  t          |d           d d d            n# 1 swxY w Y   t          |d           ]d S )N)r  g@r  r5  r|   r   r  r   )g333333$g3333334@gL>rP  	truncatedro   Tr  F)re   r   r   r   r.   r/   r  r#  rK  s     r   #test_floating_point_truncate_unsaferU    sq    
///	3	3	3Y	)))4	(	(	("(**	6	///	3	3	3Y	)))4	(	(	("(**	6	&&&i	8	8	8)	...	-	-	-rxzz	;L  + +]2?+>>> 	. 	.T----	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	E*****+ +s   -DD	D	c                     dddddd ddt          d          g	} t          j        | t          j                    	          }|j        t          j                    k    sJ |                                dddddd d
dt          d          g	k    sJ t          |          dk    sJ d}t          j        t          j	        |          5  t          j        g dt          j                    	          }d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r   g1@gS?infrS   g     @g     ?z@[
  -5,
  0,
  1,
  2,
  3,
  null,
  12344,
  1.234375,
  inf
]z@Could not convert 'a' with type str: tried to convert to float16ro   )r   r   N)
floatr   r   r  rT   r   r   r.   r/   r  )valsr"   r  s      r   !test_half_float_array_from_pythonrZ    sP   3Qj(E%LLID
(4bjll
+
+
+C8rz||####==??r1c34'u7 7 7 7 7s88 2 3 3 3 3MD	rd	3	3	3 : :h~~~BJLL999: : : : : : : : : : : : : : : : : :s   *C<<D D c                  @   t          j        d          d t          j        d          gt          j        dd          g dt          j                    ft          j        d          d t          j        d          gt          j        dd	          g d
t          j                    ft          j        d          d t          j        d          gt          j        dd	          g dt          j                    fg} | D ]"}t          |           t          |d           #d S )N123456z-912345    rn   @ Ni'1234-9123   r7   i  Ni]123z-91{   NiTr  )decimalDecimalr   
decimal128r   rL  r   r#  rQ  s     r   test_decimal_to_int_saferj    s    _X&&goi.H.HIM"a  ###HJJ		
 _V$$dGOG,D,DEM"b!!HJJ		
 _U##T7?5+A+ABM"b!!GII		
J(  * *D)))))* *r   c                     t          j        t          j        d          d t          j        d          g          t	          j        dd          g dt	          j                    ft          j        d          d t          j        d          gt	          j        dd          g dt	          j                    ft          j        d	          d t          j        d
          gt	          j        dd          g dt	          j                    fg} | D ][}t          j
        t          j        d          5  t          |           d d d            n# 1 swxY w Y   t          |dd           \d S )N1234567890123z-912345678901234r]  rn   )iqNir\  z
-912345678)i@Nir`  ra  )iN]   zInteger value out of boundsro   Fr  )re   r   rg  rh  r   ri  r   rL  r   r.   r/   r  r#  )out_of_bounds_casesr  s     r   'test_decimal_to_int_value_out_of_boundsro    s    H00 233  
 M"a  ***HJJ		
 _X&&gol.K.KLM"a  !!!HJJ		
 _V$$dGOG,D,DEM"a  OOGII		
#2 $ K K]2?!>@ @ @ 	# 	#T"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	EEJJJJJK Ks   /EE	E	c                     t          j        d          d t          j        d          gt          j        dd          g dt          j                    ft          j        d          d t          j        d          gt          j        dd	          g d
t          j                    ft          j        d          d t          j        d          gt          j        dd	          g dt          j                    fg} | D ]\}d}t          j        t          j	        |          5  t          |           d d d            n# 1 swxY w Y   t          |d           ]d S )Nz	123456.21z
-912345.13r]  rn   r^  z1234.134z-9123.1rb  r7   rc  z123.1451z-91.21re  -Rescaling Decimal value would cause data lossro   Fr  )rg  rh  r   ri  r   rL  r   r.   r/   r  r#  )non_integer_casesr  
msg_regexps      r   test_decimal_to_int_non_integerrt    s    ,,--
 M"a  ###HJJ		
 _Z(($	0J0JKM"b!!HJJ		
 _Z(($0I0IJM"b!!GII		
#2 " + +D
]2?*=== 	# 	#T"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	E*****+ +s   D;;D?	D?	c                     t          j        t          j        d          d gt          j        dd                    } |                     t          j        dd                    }t          j        t          j        d          d gt          j        dd                    }|                    |          sJ d}t          j        t           j	        |          5  |                     t          j        d	d
                    }d d d            n# 1 swxY w Y   |                     t          j        d	d
          d          }t          j        t          j        d          d gt          j        d	d
                    }|                    |          sJ t          j        t           j	        d          5  |                     t          j        dd                    }d d d            d S # 1 swxY w Y   d S )Nz1234.12rb  r7   rS   r   r   rq  ro   r   r   Fr  z1234.1z'Decimal value does not fit in precisionrn   r   )
r   r   rg  rh  ri  r  r   r.   r/   r  )r"   r<   r=   rs  s       r   test_decimal_to_decimalrv  (  sM   
(		#	#T*]2r""  C XXbmB**++Fx		#	#T*]2q!!  H =="""""@J	rj	9	9	9 / /"-1--../ / / / / / / / / / / / / / / XXbmAq))X66Fx		"	"D)]1a    H =="""""	rF
H 
H 
H / /"-1--../ / / / / / / / / / / / / / / / / /s$   )DDD:)G00G47G4c                     t          j        t          j        dg          } t	          j        t           j        d          5  |                     t          j                    d           d d d            d S # 1 swxY w Y   d S )Nr   rT  ro   Tr  )	r   r   re   nanr.   r/   r  r  r   r+   s    r    test_safe_cast_nan_to_int_raisesry  D  s    
(BFB<
 
 C	rk	:	:	: ( ($'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s   )A77A;>A;c                  ~   t          j        g dd          t          j                    t          j        g dd          t          j                    ft          j        g dd          t          j                    t          j        g dd          t          j                    fg} | D ]}t          |           d S )Nr   r%  r|   r'  rI  r,  )re   r   r   r   r+  r#  rQ  s     r   test_cast_signed_to_unsignedr{  L  s     
,,,d	+	+	+RXZZ	,,,d	+	+	+RXZZ	9	,,,d	+	+	+RY[[	,,,d	+	+	+RY[[	:J    r   c                  D   d gdz  } t          j                    }t          j                    t          j                    t          j                    t          j                    t          j                    t          j        d          t          j        t          j                              t          j        t          j                    d          t          j	        t          j                              t          j
        dd          t          j        d          t          j        dd          t          j        dd          t          j        d          t          j                    t          j        t          j        d	t          j                              t          j        d
t          j        t          j                                        t          j        dt          j                              g          t          j        t          j                    t          j                              g}|D ]}t'          | || |f           t          j        t          j        d	t          j        d                    t          j        d
t          j                              gt           j        j                  t          j        t          j        d	t          j        d                    t          j        d
t          j                              gt           j        j                  g}t          j        | t          j                              }|D ]H}t3          j        t6                    5  |                    |           d d d            n# 1 swxY w Y   Id S )Nr   r7   rm   rb  r   r   r   zEurope/Parisr   r   r   )r  rS   )r   r   r   r  r  rR   r  rL  r   r   ri  r   r   month_day_nano_intervalr3  r4  r   r   r   r#  unionr   UnionMode_DENSEUnionMode_SPARSEr   r.   r/   r  r  )r  r  	out_typesr   r!  s        r   test_cast_from_nullr  Y  s   fqjGgiiG
		





		
	
	"

Q
bhjj!!
b!
T
Te$$$
Tn---
D
"$$
	28C,,8C"'))!4!4558C--/ 	0 	0 	bhjj")++..'I*  @ @'7GX>???? 	"(3	"..(3	,,.46F4J	L 	L 	L
"(3	"..(3	,,.46F4K	M 	M 	M	I XgBGII...F " "].// 	" 	"KK!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"" "s   2NN	N	c                  6   t          j        g d          t          j        g dt          j                              ft          j        d dg          t          j        d dgt          j                              fg} | D ]\  }}|                    |j        d          }|                    d           |                    |          sJ |                    |j        d          }|                    d           |                    |          sJ d S )	N)r   127z-128)r      irS   18446744073709551615l    Tr  r  )r   r   r   uint64r  rT   r   r   )r   r!  r=   r"  casted_backs        r   $test_cast_string_to_number_roundtripr    s#   	&&&	'	'	...rwyy	1	1	1	3	4/0	1	1	4-.RY[[	A	A	A	CE " * *X]66T"""}}X&&&&&kk&+Dk99$'''!!&))))))* *r   c            	         t          j        g dt          j        t          j                    t          j                                        } t          j        g d          }| j        t          j        t          j                    t          j                              k    sJ |                     t          j                              |k    sJ t          j                    t          j                    t          j	                    fD ]}t          j        |t          j                              }t          j        g dt          j        |t          j                                        }|                     |          |k    sJ t          j        t           j                  5  |                     t          j	                               d d d            d S # 1 swxY w Y   d S )Nr  rS   )r   r   r   r   r   rT   r  r   rL  r   r.   r/   r  )r"   r=   key_typer  s       r   test_cast_dictionaryr    s   
(]28::ry{{33  C x,,,--H8r}RXZZ======88BIKK  H,,,, WYY

BHJJ7 ) )mHbikk228   x55
 
 
 xx}}((((( 
r	'	'                   s   ('GG #G c                  t   t          j        g dt          j                              } t          j        g dt          j                              }|                     t          j                                                  |          sJ |                     d                              |          sJ d S )Nr   rS   rR   )r   r   r  rR   viewr   r"   r=   s     r   	test_viewr    s    
((((rwyy
9
9
9Cx---BIKK@@@H88BIKK  ''1111188H$$X.......r   c                  6   t          j        g d          t          j        g d          ft          j        g d          t          j        g d          ft          j        g dt          j                              t          j        g dt          j                              fg} | D ]n\  }}|                                }|                    |          sJ t          j        |g                                          }|                    |          sJ od S )Nr   r   r   r   r   r   r   r5   Nr6   r5   r5   Nr6   )r   r   rU   uniquer   rs   r   r"   r=   r<   s       r   test_unique_simpler    s   	$$$	%	%rx			':':;	---	.	.	&&&	'	'	)	---r/@/@	A	A	&&&(9(9	:	:	<	E  ' 'X}}X&&&&&!3%((//11}}X&&&&&&	' 'r   c                  2   t          j        g d          t          j        g d          t          j        g dt          j                              ft          j        g d          t          j        g d          t          j        g dt          j                              ft          j        g dt          j                              t          j        g dt          j                              t          j        g dt          j                              fg} | D ]\  }}}|t          j        |g          fD ]}|                                }|j                            t          j        t          j	        d|j                  t          j	        d	t          j                              g                    sJ |	                    d                              |          sJ |	                    d	                              |          sJ ׌d S )
Nr  r   r   r   r   rS   r  r  )r   r   r   r   counts)
r   r   r   rU   rs   value_countsrT   r   r3  r4  )r   r"   expected_valuesexpected_countsarr_inr<   s         r   test_value_counts_simpler    s   	$$$	%	%	)))			)))"(**	-	-	-	/ 
---	.	.	&&&	'	'	)))"(**	-	-	-	/ 
---r/@/@	A	A	&&&(9(9	:	:	)))"(**	-	-	-	/
E 27 B B-_oB,cU334 	B 	BF((**F;%%	28Hch778Hbhjj99; < <= = = = = <<))00AAAAA<<))00AAAAAA	BB Br   c                     t          j        g d          } t          j        g d          }t           j                            | |          }|                                }t           j                            |                                 |          }|                    |          sJ |                                }|                    d                              |          sJ |                    d                              t          j        g dd                    sJ t           j                            t          j        g d          |          }|                                }t           j                            t          j        g d          t          j        g d                    }|                    |          sJ |                                }|                    d                              |          sJ |                    d                              t          j        g d                    sJ d S )	N)r   r   r   r   r   r   r   r   r   r   r   r   )r5   r6   r   quxr   r  )r   rn   rm   r   rS   r  )r   r   r   r   r  r   r  r4  )r  r   r"   unique_resultr=   r<   s         r   (test_unique_value_counts_dictionary_typer    s   h;;;<<G66677J


(
(*
=
=CJJLLM!--gnn.>.>
KKH)))))F<<!!((77777<<!!(()))')J)J)JKKKKK


(
(
'"""J0 0CJJLLM!--bhr.H.H.H.0hr.G.G.GI IH)))))F<<!!((77777<<!!(("7)C)C)CDDDDDDDr   c                     t          j        g d          t           j                            t          j        g dd          g d          ft          j        g d          t           j                            t          j        g dd          dd	g          ft          j        g dt          j                              t           j                            t          j        g dd          t          j        dd	gt          j                                        fg} | D ]\  }}|                                }|                    |          sJ t          j        |g                                          }|j        d
k    sJ |	                    d                              |          sJ t          j        g |j
                                                  }|j        dk    sJ |j
        |j
        k    sJ d S )Nr   r   r   Nr   r   r   r   r   r   Nr   r   r   r   rS   r   r  r   Nr   r   r5   r6   r   r   )r   r   r   r   rU   r   r   rs   r5  chunkrT   r  s       r   test_dictionary_encode_simpler    s   	***	+	+			'	'X...W===YY
 
	 
---	.	.			'	'XoooG444U^
 
	 
---BO4E4E	F	F	F			'	'XoooG444Xuen2?+<+<===
? 
?	@E  , ,X&&((}}X&&&&&!3%((::<< A%%%%||A%%h/////!"38444FFHH A%%%%{hm+++++, ,r   c                     t          j        g d          dd         t           j                            t          j        g dd          g d          ft          j        g d          dd         t           j                            t          j        g d	d          d
dg          ft          j        g dt          j                              dd         t           j                            t          j        g d	d          t          j        d
dgt          j                                        fg} | D ]\  }}|                                }|                    |          sJ t          j        |g                                          }|j        dk    sJ |j	        |j	        k    sJ |
                    d                              |          sJ t          j        g |j	                                                  }|j        dk    sJ |j	        |j	        k    sJ t          j        g d          }|                    d                                           d S )Nr  r   r   )r   r   Nr   r   r   rS   )r   r   r   )Nr5   r6   r5   xyzzyr   r   r   r5   r6   r   r   )r   r   r   r   large_stringr   r   rs   r5  rT   r  rY   )r   r"   r=   r<   r   s        r   test_dictionary_encode_slicedr    sp   	***	+	+AbD	1			'	'X(((w777YY
 
	 
666	7	7"	=			'	'Xiiig...U^
 
	 
666((
* 
* 
**+B$
0			'	'Xiiig...Xuen2?+<+<===
? 
?	@E  	, 	,X&&((}}X&&&&&!3%((::<< A%%%%{hm++++||A%%h/////!"38444FFHH A%%%%{hm+++++ H***++E	KKNN$$&&&&&r   c                      t          j        g t          j                              } |                                 }t	          |j                  dk    sJ |                    d           d S )NrS   r   Tr  )r   r   r   r   r   r   r   )r"   encodeds     r   "test_dictionary_encode_zero_lengthr  +  sf    
(2BIKK
(
(
(C##%%Gw!""a''''$r   c                     t          j        g d          t           j                            t          j        g dd          g d          ft          j        g d          t           j                            t          j        g dd          dd	g          ft          j        g dt          j                              t           j                            t          j        g dd          t          j        dd	gt          j                                        fg} | D ]0\  }}|                                }|                    |          sJ 1d S )
Nr  r  r   rS   r   r  r  r5   r6   )r   r   r   r   rU   dictionary_decoder   )r   r=   r"   r<   s       r   test_dictionary_decoder  3  sd   	***	+	+			'	'X...W===YY
 
	 
---	.	.			'	'XoooG444U^
 
	 
---BO4E4E	F	F	F			'	'XoooG444Xuen2?+<+<===
? 
?	@E  ' '#&&((}}X&&&&&&' 'r   c                  
   t          j        t          j        g dd          t          j        d                    } t          j        g dd          }|                     d          }|                    |          sJ d S )Nr`  r   r|   r   rS   r  )r   r   re   time32r  r   r"   r=   r<   s      r   test_cast_time32_to_intr  G  s}    
(28IIIW555	#( ( (Cx			---HXXd^^F=="""""""r   c                  
   t          j        t          j        g dd          t          j        d                    } t          j        g dd          }|                     d          }|                    |          sJ d S Nr`  r   r|   r   rS   i8)r   r   re   time64r  r   r  s      r   test_cast_time64_to_intr  Q  s}    
(28IIIW555	$) ) )Cx			---HXXd^^F=="""""""r   c                  
   t          j        t          j        g dd          t          j        d                    } t          j        g dd          }|                     d          }|                    |          sJ d S r  )r   r   re   r   r  r   r  s      r   test_cast_timestamp_to_intr  [  s    
(28IIIW555T**, , ,Cx			---HXXd^^F=="""""""r   c            	         t          j        g dd          } |                     d          }|                    d          }t          j        t          j        ddd          t          j        ddd          t          j        ddd          g                              d          }|                    |          sJ |                    |           sJ d S )	Nr`  r  rS   date32  r   r   r   )r   r   r  r   r   r   )r"   result1result2	expected1s       r   test_cast_date32_to_intr  e  s    
(9994
(
(
(Chhx  Gll4  GdAq!!dAq!!dAq!!   tH~~	  >>)$$$$$>>#r   c                  
   t          j        t          j        g dd          t          j        d                    } t          j        g dd          }|                     d          }|                    |          sJ d S r  )r   r   re   r   r  r   r  s      r   test_cast_duration_to_intr  u  s    
(28IIIW555D))+ + +Cx			---HXXd^^F=="""""""r   c                  >   t          j        g dt          j                              } |                     t          j                              }t          j        g dt          j                              }|                    |          sJ d                    d          g}t          j        |          }|j        t          j                    k    sJ t          j	        t                    5  |                    t          j                               d d d            n# 1 swxY w Y   t          j        |t          j        dg          t          j                              }|                    t          j                              }|j        dk    sJ d S )	N)s   foos   bars   bazrS   r      mañana	utf-16-leTrm  rT   r   )r   r   rR   r  r  r   encoderT   r.   r/   rt   r   re   r   )
binary_arrutf8_arrr=   non_utf8_valuesnon_utf8_binarynon_utf8_all_nullr"  s          r   test_cast_binary_to_utf8r    s   222EEEJrwyy))Hx---BGII>>>H??8$$$$$!))+667Oh//O29;;....	z	"	" * *RY[[)))* * * * * * * * * * * * * * * rx7G7G&(ikk3 3 3 ##BIKK00F!!!!!!s   1'D$$D(+D(c                     t          j        t          j        g dd          t          j                              } t          j        g dd          }|                     d          }|                    |          sJ d S )Nr`  r   r|   rS   r  )r   r   re   date64r  r   r  s      r   test_cast_date64_to_intr    s{    
(28IIIW555	% % %Cx			---HXXd^^F=="""""""r   c            	         t          j         ddddddd          } t          j         ddd          }t          j        | |gd          }t          j        |                                 |                                gd          }|                    |          sJ |                    d	          }|d
                                         |d                                         k    sJ d S )N  r   r  "   8   r_  r  rS   r   r   )r   r   r   r   r   r  r'   )val1val2r<   r  as_i8s        r   !test_date64_from_builtin_datetimer    s    T1aRV<<DT1a((DXtTl222Fh		TYY[[1AAAG==!!!!!KK  E8>>uQx~~////////r   c            
      `   t          j        g dg dt          j                              } t          j        t          j        ddd          t          j        ddd          d t          j        ddd          gt          j                              }|                     |          sJ t          j        t          j        ddd          t          j        ddd	          d t          j        ddd
          gt          j                              }|j        dk    sJ |d	                                         J t          j        g dg dt          j                              }t          j        t          j        ddd          t          j        ddd	          d t          j        ddd
          gt          j                              }|                    |          sJ t          j        t          j        ddd          t          j        ddd	          d t          j        ddd
          gt          j                              }|j        dk    sJ |d	                                         J t          j        g dg dt          j                              }|j        d
k    sJ d S )N)r   r   r   r   FFTFr  r  r   r   rS   i  r   rm   )r   i \&i L
i sr   TTTT)	r   r   r  r   r   r   r   r'   r  )
arr_date32expected_date32arr_date32_dates
arr_date64expected_date64arr_date64_datesarr_all_nulls          r   .test_create_date32_and_date64_arrays_with_maskr    s   ,,,:::!y{{, , ,J hdAq!!dAq!!dAq!!	 
 IKK  O _----- xdAq!!dAq!!dAq!!	!
 IKK   &!++++A$$&&... ===:::!y{{, , ,J hdAq!!dAq!!dAq!!	 
 IKK  O _----- xdAq!!dAq!!dAq!!	!
 IKK   &!++++A$$&&... 8LLL!9!9!9!#. . .L "a''''''r   )r   r   boolrz   r      r   r  r+  r7   rL  uint32r   r  r   rX  )r   g?g?doubler   r   rR   )rR  rS  rT  r   )s   abcs   bcds   cdec                     t          j        ||           }|                    |                               |          sJ d S r>  )r   r   r  r   )r   r   r"   s      r   test_cast_identitiesr    sB    " (6
#
#
#C88B<<s#######r   )ra   r  )TFTT)r   r   rm   r   )r   r/  N)r   Nr   r   rm   rn   r   r   r   r   ))r   r   )r   r   Nc                     t          j        | |          }t          d|j        dz             D ]B}|                    |                    ||                    }|                    |          sJ Cd S )NrS   r   r   )r   r   rF   HIGHEST_PROTOCOLloadsdumpsr   )ra   r  pickle_moduler   protor<   s         r   test_array_pickler  	  s     HT$$$Eq-81<== $ $$$]%8%8%F%FGG||F######$ $r   c                    t           j                            g dg d          }t          d| j        dz             D ]B}|                     |                     ||                    }|                    |          sJ Cd S )Nr   r   r   r   )r   r   r   rF   r  r  r  r   )r  r   r  r<   s       r   test_array_pickle_dictionaryr  	  s     **???OOOLLEq-81<== $ $$$]%8%8%F%FGG||F######$ $r   )suppress_health_check)	min_value	max_valuer   c                     |                      |          }|                     |          }|                    |          sJ d S rC  )r  r  r   )r  r"   ra   restoreds       r   test_picklingr  	  sH     s##D""4((H::hr   c                    t          j        | |          }d |                                D             }t          d|j        dz             D ]u}g }|                    |||j                  }|                    ||          }|                    |          sJ d |                                D             }	|	|k    sJ vd S )NrS   c                 $    g | ]}||j         ndS Nr   r_   r   bufs     r   r   z/test_array_pickle_protocol5.<locals>.<listcomp>-	  s2     - - - !$Q - - -r   rn   r   )buffer_callback)r^   c                 $    g | ]}||j         ndS r  r  r  s     r   r   z/test_array_pickle_protocol5.<locals>.<listcomp>6	  s2     9 9 9 # ,/?CKK 9 9 9r   )	r   r   r^   rF   r  r  appendr  r   )
ra   r  r  r   	addressesr  r^   pickledr<   result_addressess
             r   test_array_pickle_protocol5r  )	  s     HT$$$E- -!MMOO- - -I q-81<== - -%%eUGN%SS$$Wg$>>||F#####9 9'-~~'7'79 9 99,,,,,- -r   c                     t          j        dt           j                  t          j        dt           j                  t          j        dt           j                  t          j        dt           j                  t          j        dt           j                  t          j        dt           j                  t          j        dt           j                  t          j        dt           j	                  t          j        dt           j
                  t          j        dt           j                  t          j        dt           j                  fD ]3} t          j        |           }| j        |                                j        k    sJ t           j                            | |                                           t           j                            | d d         |d d                                                    t           j                            | dd          |dd                                                     t           j                            | dd         |dd                                                    5d S )Nr7   r|   r   r   )re   rf   r   r   rL  r   r  r  r+  r   r   r5  r  r   r   r}   r]   rg   rh   )narrr"   s     r   test_to_numpy_roundtripr  ;	  s    		"BH%%%
	"BH%%%
	"BH%%%
	"BG$$$
	"BI&&&
	"BI&&&
	"BI&&&
	"BH%%%
	"BJ'''
	"BJ'''
	"BJ''' F F htnnzS\\^^11111

%%dCLLNN;;;

%%d2A2hBQB0@0@0B0BCCC

%%d122hABB0@0@0B0BCCC

%%d1Q3iQqS1B1B1D1DEEEE%F Fr   c                      t          j        dgt          j                              } t          j        t          j        dgd                    }|                     |          sJ d S )N            rS   u8r|   )r   r   r  re   r   r  s     r   $test_array_uint64_from_py_over_ranger  R	  s\    
(G929;;
/
/
/Cx'$77788H::hr   c                     t          j        g dd          } t          j        |           }t	          j        |           }t          j        |           |dz   k    sJ |j        dk    sJ dD ]`}t	          j        t          j        dt           j        ddt           j        dg|          |	          }|j        |k    sJ |j        d
k    sJ ad S )Nr  r   r|   r   )r  r5  r   r   r   rm   rS   r   )re   r   r   r   r   rT   rx  r   )r"   rA  r"  r   r#  s        r   )test_array_conversions_no_sentinel_valuesr  Y	  s    
(<<<v
.
.
.Cs##H8C==D?3HqL11119/ $ $x!RVQ261!=RHHH! ! !yB!#####	$ $r   c                     t          j        g dt          j        d                    } t          j        t          j        d          t          j        d          d gt          j        d                    }|                     |          sJ t          j        g dt          j        d                    } t          j        t          j        d	          t          j        d
	          d gt          j        d                    }|                     |          sJ t          j        g dt          j        d                    } t          j        t          j        d	          t          j        d	          d gt          j        d                    }|                     |          sJ t          j        g dt          j        d                    } t          j        t          j        d	          t          j        d	          d gt          j        d                    }|                     |          sJ d S )Nr~   r   rS   r   )secondr   r     )microsecondr  r   )r  r  Nr   )r   r   r  r   r   r   r  )r<   r=   s     r   test_time32_time64_from_integerr  i	  s   Xlll3888Fxa000!a000$8Ys^^- - -H =="""""Xlll4999Fx4888!4888$@Yt__. . .H =="""""Xlll4999Fx1555!1555t=Yt__. . .H =="""""X(((ry???Fx1555!1555t=Yt__. . .H =="""""""r   c                  8    d }  | d            | d           d S )Nc                     t          j        dt          j        g| d          }t          j        dd g|           }|                    |          sJ d S )Nr   TrT   from_pandasrS   )r   r   re   rx  r   r   s      r   _check_casez=test_binary_string_pandas_null_sentinels.<locals>._check_case	  sV    h"&)EEE8Xt,2666zz(#######r   rR   r  r2   )r  s    r   (test_binary_string_pandas_null_sentinelsr   	  s9    $ $ $ KKr   c                  V   d t           j        gdfdt           j        gdfdt           j        gdfdt           j        gdfdt           j        gdfdt           j        gt          j        d          fd	t           j        gt          j                    ft          j        d
          t           j        gt          j        dd          fdt           j        gt          j                    fdt           j        gt          j                    fdt           j        gt          j	                    fdt           j        gt          j
        d          fdt           j        gt          j        d          fdt           j        gt          j        d          fdt           j        gt          j        d          fg} | D ]\  }}t          j        t           t"          f          5  t          j        ||           d d d            n# 1 swxY w Y   t          j        ||d	          }|j        |dk    rdndk    sJ d S )Nr   r   rR   r  rU   
large_utf8s   stringr   Tr   r  r   r   r   r   rS   r  r   )re   rx  r   rR   r  rg  rh  ri  r  r  r  r  r   r   r.   r/   rt   r0   r   r   )r   r  r   r<   s       r   &test_pandas_null_sentinels_raise_errorr#  	  s     
BF	X&
BF	V$
BF	^,
BF	\*
RV	bill+
$
/#

	'r1)=)=>
RVbikk"
RVbikk"
RVbikk"
RVbinn%
RVbioo&
RVbl4(()
RVbk$''(E"  ? ?b]J	233 	$ 	$HT####	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ $RT::: ",,QQA>>>>>? ?s   G11G5	8G5	c                      dd l } |                     ddt          j        gt                    }t          j        |          }t          j        ddt          j        gd          }|                    |          sJ d S )Nr   r   r   r|   T)r  )pandasIndexre   rx  r   r   r   r   )pdr   r<   r=   s       r    test_pandas_null_sentinels_indexr(  	  st     
((Aq"&>(
0
0CXc]]FxArvD999H=="""""""r   c                     t          j        d t          j        ddd          gd          } t	          j        |           }t	          j        d t          j        ddd          gt	          j                              }|                    |          sJ |                    d          }t           j        	                    ||            |j
        | j
        k    sJ d S )N  rm   zdatetime64[D]r|   rS   Frq   )re   r   r   r   r   r  r   r]   rg   rh   r}   r;   s      r   )test_array_roundtrip_from_numpy_datetimeDr+  	  s    
(D(-a334O
L
L
LCXc]]Fxx}T1a889	LLLH=="""""__E_22FJ!!&#...<39$$$$$$r   c                      t          j        d t          j        dddddd          t          j        ddddd	d          g          } | j        t          j        d
d           k    sJ d S )Nr*  rm   r  rW   r7     r   r   r   r   r   )r   r   r   rT   r   r+   s    r   test_array_from_naive_datetimesr.  	  su    
($1b"b11$1aA..  C
 8r|DT222222222r   )r}   rT   datetime64[s]r   datetime64[ms]r   zdatetime64[us]r   zdatetime64[ns]r   c           
         d t          j         dddddd          t          j         ddddd	d          g}t          j        t          j        || 
                    }t          j        ||          }|                    |          sJ t          j        t          t          j        || 
                              }|                    |          sJ d S )Nr*  rm   r  rW   r7   r-  r   r   r   r|   rS   )r   r   r   re   r   r
  )r}   rT   ra   r"   r=   s        r   test_array_from_numpy_datetimer2  	  s     	$1b"b11$1aA..D (28D...
/
/Cx4(((H::h (4U33344
5
5C::hr   c            
         d t          j         dddddd          t          j         ddddd	d          g} t          j        | d
          }t          j        | d          }t          |d d	                   t          |d	d                    z   } t	          j        t          j        d          5  t          j        |            d d d            d S # 1 swxY w Y   d S )Nr*  rm   r  rW   r7   r-  r   r   r   r/  r|   r0  z*Cannot mix NumPy datetime64 units s and msro   )r   re   r   r
  r.   r/   r   r  )ra   r   r   s      r   5test_array_from_different_numpy_datetime_units_raisesr4  	  s!    	$1b"b11$1aA..D
 	_---A	$.	/	/	/B"1";;bf%D	rI
K 
K 
K  
                 s   /CCC)YMWhmpsfsasc                    t          j        dd          g}t          j        d|           g}||z   }t          j        t          j        d|            5  t	          j        |           d d d            d S # 1 swxY w Y   d S )Nz
2020-01-01r   2020z(Cannot mix NumPy datetime64 units s and ro   re   
datetime64r.   r/   r   r  r   )r   s_dataunsupported_datara   s       r   5test_array_from_unsupported_numpy_datetime_unit_namesrC  	  s     mL#../Ffd334 $$D	rNNN
P 
P 
P  
                 s   A77A;>A;)r   r   r   r   c                 x   t          j        d|           }t          j        d|           }t          j        d|           }t          j        |||g          }t          j        |||gt          j        |                     }|j        |j        k    sJ |j        j        | k    sJ |d         |d         k    sJ d S )NNaT2017-01-01 01:01:01.1111111112018-11-22 12:24:48.111111111rS   r   )re   r@  r   r   r   rT   r   )r   r  r9  ya1a2s         r   "test_array_from_list_of_timestampsrK  
  s     	eT""A
5t<<A
5t<<A	1a)		B	1a)",t"4"4	5	5	5B7bg7<4a5BqE>>>>>>r   c                     t          j        d          } t          j        d          }t          j        d          }t          j        t          j        d          5  t	          j        | ||g           d d d            d S # 1 swxY w Y   d S )NrE  rF  rG  z!Cannot mix NumPy datetime64 unitsro   r?  )r  r9  rH  s      r   +test_array_from_timestamp_with_generic_unitrM  
  s    
eA
566A
566A	r@
B 
B 
B  
!Q                 s   BB	Bztimedelta64[s]ztimedelta64[ms]ztimedelta64[us]ztimedelta64[ns]c                 Z   d t          j        d          t          j        dd          g}t          j        ||           }t	          j        |          }t          |t          j                  sJ |j        |k    sJ t	          j        ||          }|                    |          sJ |	                                |k    sJ t	          j        t          t          j        ||                               }|                    |          sJ |	                                |k    sJ d S )Nr   r   r|   rS   )r   r   re   r   r   r)   DurationArrayrT   r   r   r
  )r}   rT   ra   ri   r"   r=   s         r   test_array_from_numpy_timedeltarP  &
  s!    	11a  D Xd%(((F
(6

Cc2+,,,,,8tx4(((H::h==??d"""" (4U33344
5
5C::h==??d""""""r   c                     t          j        d          } | gt          j        | g          fD ]G}t          j        t
                    5  t          j        |           d d d            n# 1 swxY w Y   Ht          j        dd          } | gt          j        | g          fD ]G}t          j        t
                    5  t          j        |           d d d            n# 1 swxY w Y   Hd S )Nr   r6  )re   timedelta64r   r.   r/   r  r   )tdra   s     r   .test_array_from_numpy_timedelta_incorrect_unitrT  C
  sX    
		Brx~~&  ].// 	 	HTNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 
3		Brx~~&  ].// 	 	HTNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 s$   A))A-	0A-	=CC"	%C"	binary_typec                    | pt          j                    }t          j        g dd          }t          j        ||           }|j        |k    sJ t          j        g d|          }|                    |          sJ t          j        g d          }t          j        || |          }t          j        g d|          }|                    |          sJ t          j        g ddz  d          d d d	         }t          j        g ddz            d d d	         }t          j        || |          }t          j        g d
|          }|                    |          sJ t          j        g dd          }t          j        ||           }t          j        g d|          }|                    |          sJ d S )NabcdeabcrA   z|S5r|   rS   r  ro  rX  NrA   rn   r   rX  rA   NrX  rA   NrX  rA   rA   rA   rA   z|S0)r   rR   re   r   rT   r   )rU  expected_typer"   	arrow_arrr=   rm  s         r   test_array_from_numpy_asciir_  S
  s     .29;;M
('''u
5
5
5Ck**I>]****x,,,=AAAHH%%%%%8((())Dk555Ix+++-@@@HH%%%%% ('''!+5
9
9
9##A#
>C8(((1,--ccc2Dk555IxKKK*, , ,HH%%%%% (<<<u
-
-
-Ck**Ix=999HH%%%%%%%r   c                     d t          j        ddddddd          g} t          j        | t          j                              }t          |t          j                  sJ |j        t          j                    k    sJ d t          j        ddt          j        ddddd          t          j        d          z  dz  g          g}t          j        |          }|	                    |          sJ |
                                |k    sJ d S )Nr   )r   secondsmicrosecondsmillisecondsminuteshoursweeksr   r   )ra  rb  rc  rd  re  rb  r  )r   r   r   r   r}  r)   MonthDayNanoIntervalArrayrT   MonthDayNanor   r   ra   r"   rr  r=   s       r   "test_interval_array_from_timedeltark  y
  s9   11()1AQ	H 	H 	HID (4355
6
6Cc27888888r1333333
A",QQ:;Q346 6 6 #,!<<<= AEEF 	G 	GHM x&&H::h==??m++++++r   c                  "   ddl m}  ddlm} d  | ddddddddd	  	        g}t	          j        |          }t          |t          j                  sJ |j        t	          j	                    k    sJ d t	          j
        ddt          j        dddd          t          j        d	          z  d
z  g          g}t	          j        |          }|                    |          sJ |                                                                d  |ddt          j        dddd          t          j        d	          z  d          gk    sJ t!          j        t$                    5  t	          j         |dd          g           d d d            n# 1 swxY w Y   t!          j        t$                    5  t	          j         |dd          g           d d d            n# 1 swxY w Y   t!          j        t$                    5  t	          j         |dd          g           d d d            n# 1 swxY w Y   t!          j        t$                    5  t	          j         |d	          g           d d d            d S # 1 swxY w Y   d S )Nr   )relativedelta
DateOffsetr   )	yearsmonthsr   ra  rb  rd  re  rf  leapdaysrH  r   ra  rb  rd  re  rg  r  rq  r   rb  nanosecondsiUUUrD   )rp  rq  i$I$)rf  r   l   	z )ra  ru  l   \kpz)dateutil.relativedeltarm  r%  ro  r   r   r)   rh  rT   r}  ri  r   r   r   r   r   r.   r/   rt   )rm  ro  ra   r"   rr  r=   s         r   &test_interval_array_from_relativedeltarw  
  s)    544444!!!!!!AaaaqA	? 	? 	?@D (4..Cc27888888r1333333
Q",QQ56aA A A",!<<<=@DEF 	G 	GHM x&&H::h==??!!##jj%/89D D D%/Q???@ &'( ( (() ) ) ) ) 
z	"	" D D
**OSAAABCCCD D D D D D D D D D D D D D D	z	"	" A A
**N#>>>?@@@A A A A A A A A A A A A A A A	z	"	" . .
**&=)*, , , - 	. 	. 	.. . . . . . . . . . . . . . . 
z	"	" @ @
**+;===>???@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @sH   $!FFF5!G""G&)G&!H33H7:H7 JJJc                     d dg} t          j        | t          j                              }t          |t           j                  sJ |j        t          j                    k    sJ d t          j        g d          g}t          j        |          }|                    |          sJ |                                |k    sJ d S )N)r   r   r  )	r   r   r}  r)   rh  rT   ri  r   r   rj  s       r   test_interval_array_from_tuplery  
  s    *D (4355
6
6Cc27888888r1333333



##%M x&&H::h==??m++++++r   c                  \   ddl m}  d  | ddddddddd	  	         |             g}t          j        |          }t	          |t          j                  sJ |j        t          j                    k    sJ d t          j        g d          t          j        g d          g}t          j        |          }|	                    |          sJ d  | ddt          j        dddd	          t          j        d
          z  d           | dddd          g}|                                                                |k    sJ t          j        |g                                                                          }t          |          dk    sJ t          |d                   |k    sJ d S )Nr   rn  r   )	rp  rq  r   ra  rb  rd  re  rf  ru  )rH  r   l   E5IQ)r   r   r   rH  r   rs  rg  rt  )pandas.tseries.offsetsro  r   r   r)   rh  rT   r}  ri  r   r   r   r   r   r   r
  )ro  ra   r"   rr  r=   expected_from_pandasactual_lists          r   #test_interval_array_from_dateoffsetr~  
  s   111111
111AQA	? 	? 	? 	
D (4..Cc27888888r1333333
...//
			""$M x&&H::hjj%/89D D D%/Q???@ &'( ( ( 	
!!!CCCE ==??!!##';;;;; (D6"",,..5577K{q    A#7777777r   string_typec                    | pt          j                    }ddg}|D ]T}t          j        g d|          }t          j        ||           }|j        |k    sJ t          j        g d|          }|                    |          sJ t          j        g d          }t          j        || |          }t          j        g d|          }|                    |          sJ t          j        g dd	z  |          d d d
         }t          j        g dd	z            d d d
         }t          j        || |          }t          j        g d|          }|                    |          sJ Vt          j        g dd          }t          j        ||           }t          j        g d|          }|                    |          sJ d S )Nz<U5z>U5rW  r|   rS   r  ro  rZ  rn   r   r[  r\  z<U0)r   r  re   r   rT   r   )r  r]  dtypesr}   r"   r^  r=   rm  s           r   test_array_from_numpy_unicoder  
  s     ,2799MU^F * *h+++5999HS+..	~....8000}EEE)))))x,,,--HS+D999	8///mDDD))))) h+++a/u===cccBx,,,q011##A#6HS+D999	8 * * *0=? ? ?)))))) (<<<u
-
-
-Ck**Ix=999HH%%%%%%%r   c                      t          j        t                    5  t          j        t          j        g d          t          j                               d d d            d S # 1 swxY w Y   d S Nr   rS   )r.   r/   r0   r   r   re   r   r2   r   r   !test_array_string_from_non_stringr    s     
y	!	! 8 8
)))$$29;;77778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8s   <A##A'*A'c                     t          j        d d gt                    } t          j        | t          j                              }|j        dk    sJ t          j        t           j        t           j        gd          } t          j        t                    5  t          j        | t          j                               d d d            n# 1 swxY w Y   t          j        | t          j                    d          }|j        dk    sJ d S )Nr|   rS   r   r   Tr  )
re   r   r   r   r   r   rx  r.   r/   r0   )rY  r"   s     r   test_array_string_from_all_nullr    s    8T4L///D
(4bikk
*
*
*C>Q8RVRV$I666D	y	!	! ) )
BIKK(((() ) ) ) ) ) ) ) ) ) ) ) ) ) )
(4bikkt
<
<
<C>Qs   (CCCc                     t           j                            g ddg d          } t          j        |           }t          j        g dd          }|                    |          sJ t          j        t          d          5  t          j        | t          j        g d	          
           d d d            d S # 1 swxY w Y   d S )Nr  r   r  )r}   rm  r   r   Nrm   rS   z Cannot pass a numpy masked arrayro   )TFFFro  )re   mar   r   r   r.   r/   rt   r  r<   r=   s      r   test_array_from_maskedr  +  s   	\\\555 
 
7 
7BXb\\Fxg666H??6"""""	z)K	L	L	L A A
"(#>#>#>??@@@@A A A A A A A A A A A A A A A A A As   +B==CCc                      t           j                            dgd          } t          j        |           }t          j        dgd          }|                    |          sJ d S )Nr   r   r|   rS   )re   r  r   r   r   r  s      r   test_array_from_shrunken_maskedr  7  s\    	aS	(	(BXb\\Fx'***H??6"""""""r   c                     d} t          j        g dg dg          }t          j        t          |           5  t          j        |           d d d            n# 1 swxY w Y   t          j        d          }t          j        t          |           5  t          j        |           d d d            d S # 1 swxY w Y   d S )Nz only handle 1-dimensional arraysr   ri  ro   r   r>  )rw   arr2darr0ds      r   "test_array_from_invalid_dim_raisesr  ?  s/   
,CHiii+,,E	z	-	-	-  
               HQKKE	z	-	-	-  
                 s#   AA AB55B9<B9c                  h   t          j        dt                    } t          j        | d d df                   }t          j        g d          }|                    |          sJ t          j        | dd d f                   }t          j        ddg          }|                    |          sJ d S )N)r   r   r|   r   )TTTT)re   onesr  r   r   r   r;   s      r   test_array_from_strided_boolr  K  s     '&
%
%
%CXc!!!Q$i  Fx***++H=="""""Xc!QQQ$i  Fxt%%H=="""""""r   c            	      v   g dt          j                    t          j        d          ffg dt          j                    t          j                    t          j                    t          j                    ffg dt          j                    t          j                    ffg dt          j                    ffg} | D ]|\  }}t          j
        |          }|D ]`}d t          j
        ddg          fD ]E}t          j
        |d d d         ||          }|d d d         |                                k    sJ Fa}d S )N   abs   cd   efr   r   rN  )abcdefFro  )r   rR   r   rL  r   r   r5  r   r  re   r   r   )pydatar   r  nparraypatyperm  arrow_arrays          r   test_array_from_stridedr  W  sF    
		bill ;<	RWYY

BHJJ

CD	2:<<67			bgii]+	F ! > >(6"" 	> 	>Frx778 > > hwsss|V,02 2 2ccc{k&;&;&=&======>	>> >r   c                  l    t          j        g ddz            } | j        dk    sJ | j        dk    sJ d S )N)TTNFNTr  i  )r   r   
true_countfalse_countr+   s    r   #test_boolean_true_count_false_countr  i  sI    
(8884?
@
@C>T!!!!?d""""""r   c                     t          j        g dt          j                              } |                                 }t	          |          dk    sJ |d                                         }dt	          |          cxk    rdk    sn J t          |          d         dk    sJ | dd          }|                                }|j        dk     t	          |          dk    sJ |d                                         }dt	          |          cxk    rdk    sn J t          |          d         dk    sJ t          j	        d|d                                                   d	k    sJ t          j        t          j        g d
                    } |                                 }t	          |          dk    sJ |d         J t          j	        d|d                                                   d
k    sJ t          j        g d          } |                                 }t	          |          dk    sJ |d                                         }t          |          d         dk    sJ |d                                         }t          j	        d|          dk    sJ |d                                         }|dk    sJ d S )Nr  rS   r   r   r   @   rW   hhxxh)r   r   rm   ri  3b)s   foo!Ns   bar!!r   rn   4i)r   rm   rm   r   s	   foo!bar!!)r   r   rL  r^   r   
to_pybytes	bytearrayrJ  r3  unpackre   r   )r   r^   null_bitmapa_slicedr  r   s         r   test_buffers_primitiver  p  s   
rxzz222AiikkGw<<1!*''))KK  &&&&B&&&&&&[!!!$
2222 uH  GOqw<<1!*''))KK  &&&&B&&&&&&[!!!$
2222='!*"7"7"9"9::iGGGG
##$$AiikkGw<<11:=wqz4466779DDDD
***++AiikkGw<<1!*''))K[!!!$
2222aj##%%G=w''<7777QZ""$$F\!!!!!!r   c                     t          j        ddgd g dgt          j        t          j                                        } |                                 }t          |          dk    sJ |d                                         }t          |          d         dk    sJ |d                                         }t          j	        d|          d	k    sJ |d                                         }t          |          d         d
k    sJ |d                                         }t          j	        d|          dk    sJ t          j        g dt          j        t          j
        dt          j                              t          j
        dt          j                              g                    } |                                 }t          |          dk    sJ |d                                         }t          |          d         dk    sJ |d                                         }t          |          d         dk    sJ |d                                         }t          j	        d|          dk    sJ |d                                         }t          |          d         dk    sJ |d                                         }t          j	        d|          dk    sJ d S )Nr   r   r   Nrm   rn   rS   rm   r   rn   r  r  7   r   qqq8xqq)r   r   r   rm   rn   ))*   NN)N+   r   r   bxx)r  r   4xh)r  )r   r   r  r   r^   r   r  r  r3  r  r4  r   rL  )r   r^   r  r  r   s        r   test_buffers_nestedr    s   
1a&$0rx

7K7KLLLAiikkGw<<1!*''))K[!!!$
2222aj##%%G=w''<7777!*''))K[!!!$
2222QZ""$$F=F++>>>>
///i#rwyy!9!9!##rxzz!:!:!< = =	> 	> 	>A iikkGw<<1!*''))K[!!!$
2222!*''))K[!!!$
2222QZ""$$F=''50000!*''))K[!!!$
2222QZ""$$F=''5000000r   c            	      x   t          j        t          j        g dd                    } | j        dk    sJ |                                 dk    sJ t          j        |           t                              |           | j        z   k    sJ t          j        g dd          } | j        dk    sJ |                                 dk    sJ t          j        |           t                              |           | j        z   k    sJ t          j        dd	gd g d
gt          j	        t          j
                                        } | j        dk    sJ |                                 dk    sJ t          j        |           t                              |           | j        z   k    sJ t          j        g dgddgggt          j	        t          j	        t          j                                                  } |                                 dk    sJ | j        dk    sJ t          j        dd	gddggg dd dggddgggt          j	        t          j	        t          j                                                  } |                     dd	          }|j        dk    sJ |                                dk    sJ d S )Nri  r   r|      r   Nr   rS      r   r   r  >   B   )rn   r   rG  r   r7         r   rm   r      r  )r   r   re   nbytesget_total_buffer_sizer   	getsizeofr   
__sizeof__r  r   r   rY   )r   rI  s     r   test_total_buffer_sizer    s   
)))733344A8u""$$----=v0033ah>>>>>
G,,,A8w""$$////=v0033ah>>>>>
1a&$0rx

7K7KLLLA8r>>>>""$$(======v0033ah>>>>>
999+By)"'))9L9L0M0MNNNA""$$(CCCCC8r>>>>
Aq6Aq6"YYYqc$:aWIFhrx		2233	5 	5 	5A	
AB977777##%%)IIIIIIIr   c                      t          j        t          j        g dt          j                              t          j        g dt          j                              g          } | j        dk    sJ d S )Nr  rS   ri  rH  )r   rs   r   rL  r  )r   s    r   test_nbytes_sizer    sf    
"(<<<bhjjAAA(99928::>>>@ 	A 	AA8r>>>>>>r   c                      t          j        t                    5  t          t	          j        dg                     d d d            d S # 1 swxY w Y   d S )Nr   )r.   r/   r0   reprr   Tensorr2   r   r   $test_invalid_tensor_constructor_reprr    s    	y	!	!  RYs^^                    #A

AAc                      t          j        t                    5  t          j                     d d d            d S # 1 swxY w Y   d S rC  )r.   r/   r0   r   r  r2   r   r    test_invalid_tensor_constructionr    s    	y	!	!  
	                 s   ;??)offset_typer^  c           
      h    | |t          j                                        }t          j        d g dd ddggg g ddgd gddggg|          }t          j        g d	|           } |t          j                              }t          j        g dd ddgg ddgd ddgg|          }t          j        g d
|           }t          j        g dt          j                              }|                                                    |          sJ |j                            |          sJ |j                            |          sJ |                                                    |          sJ |j                            |          sJ |j                            |          sJ |                                                                                    |          sJ |j        j                            |          sJ |                    d                              |          sJ d S )Nr&   r   rm   rn   r   rG  r   rS   )r   r   r   r   r   rG  )r   r   r   rn   rn   rG  rG  r   	r   Nr   r   rm   rn   r   rG  r   T)r   r   r   flattenr   r  r   )	r  r^  r@  r"  r  r?  r!  offsets1arr0s	            r   test_list_array_flattenr    s    HJJ	
 	
 D
 8LLF	

 	F	
 F	
  !  D" x***===HRXZZ((D8	
A
	
A	
A   D x000{CCCH8   
 HJJ  D <<>>  &&&&&<x(((((;d#####<<>>  &&&&&<x(((((;d#####<<>>!!##**400000;$$T*****<<$$T*******r   	list_typer  c                     t          j        ddgd d d gddgg|           }t          j        g dt          j                              }|                                                    |          sJ d S )Nr   r   r   rm   rS   )r   r   r   r   r   r   )r   r   r   value_parent_indicesr   )r  r"   r=   s      r   test_list_value_parent_indicesr    s    
 (F4LF		

   C x***<<<H##%%,,X6666666r   )r  r  c                 X   t          |dd           r9t          j        ddgd d d gddgg|          }t          j        g d|           }n6t          j        g dd g ddgg|          }t          j        g d	|           }|                                                    |          sJ d S )
Nr  r   r   r   rm   rS   )r   Nr   r   r`  )r   Nr   r   )getattrr   r   value_lengthsr   )r  r  r"   r=   s       r   test_list_value_lengthsr  +  s     y+t,, ?hAtA	
    8OOO+>>> h		A	
    8OOO+>>>%%h///////r   c                     | t          j                              }t          j        dgddgg dg|          }|                                d d         }t          j        d          |d<   |                    |j        t          |          ||j        g          }|	                                dgd g dgk    sJ |j
        	                                g d	k    sJ |                                }|                    d
           |j        |j        k    sJ |	                                g dk    sJ |j        	                                g dk    sJ d S )Nr   r   r   ri  rS      r   ra  )r   r   r   r   Tr  )r   rm   rn   r   r   r   r   rm   rn   r   )r   r   r   r^   rK  rM  rT   r   r   r   r  r  r   
value_type)r^  r  r"   r^   	flatteneds        r   %test_list_array_flatten_non_canonicalr  K  sa    
BHJJ
'
'C
(QC!Q+#
6
6
6CkkmmBQBGg&&GAJ


38SXXw#*

N
NC==??sD)))44444;  ""lll2222ID!!!>S^++++  LLL0000 :!!%7%7%7777777r   klassc                    |                      g dg d          }|j                                        g dk    sJ |j                                        g dk    sJ |dd          }|j                                        g dk    sJ |j                                        g dk    sJ |                                                                g dk    sJ |j        d                                         }|j        d                                         }|d                                         |j        ||                                         cxk    rdgk    sn J d S )	N)r   r   rm   r   r  )r  r   r   )r   rm   r   ri  r   rm   r   r   r   r  r  r'   )r  r"   r"  r   r*  s        r   %test_list_array_values_offsets_slicedr  _  so    

LLL9K9K9K

L
LC:!!%7%7%77777;  ""lll2222
 qrr7D;  ""&8&8&88888<!!##yyy0000<<>>##%%2222QAQA7==??dk!A#.88::AAAAqcAAAAAAAAr   c            	          t          j        t          j        t          j                    d          d          } t          j        ddgddgddggd dd gd dd	ggg| 
          }|j                            |           sJ t          j        t          j                    d          }t          j        ddgddgddgdd gd dd	gg|
          }|j                            |          sJ |                                                    |          sJ t          j                    }t          j        g d|
          }|j                            |          sJ |                                                    |          sJ |                                                                                    |          sJ |                                                    |          sJ |                    d                              |          sJ d S )Nr   r   r   rm   rn   r   rG  r   r   rS   )
r   r   r   rm   rn   r   rG  Nr   r   T)r   r  r   r   rT   r   r  )r@  r"  r?  r!  typ0r  s         r   "test_fixed_size_list_array_flattenr  r  s    8BHRXZZ++Q//D8FFF	

 	IF	
   D 9D!!!!!8BHJJ""D8	
AAA	
D	4!Q   D 9D!!!!!<<>>  &&&&&8::D8     D 9D!!!!!<<>>  &&&&&<<>>!!##**400000<<>>  &&&&&<<$$T*******r   c                     t          j        dgdgdggt          j        t          j                    d                    } | dd                                          t          j        dgt          j                              k    sJ d S )Nr   r   r   r  rS   )r   r   r  r   r  )r   s    r   -test_fixed_size_list_array_flatten_with_slicer    s    HqcA3_(2:<<1===? ? ?E9"(A3RZ\\"B"B"BBBBBBBr   c            	         t          j        t          j                    t          j                              } t          j        t          j        dt          j                    d          t          j        dt          j                              g          }t          j        ddgdgg|           }|j        j        	                    |          sJ |j        t          j        d	d
dddddddg|          k    sJ |j
        	                    t          j        g d                    sJ |j        	                    t          j        g dt          j                                        sJ t           j                            |j        |j
                  	                    t          j        d	dgdgg                    sJ t           j                            |j        |j                  	                    t          j        d
dgdggt          j        t          j                                                  sJ t!          j        t$                    5  |                                 d d d            d S # 1 swxY w Y   d S )NkeyFrj  r   r  r  r  rS   r   r   )r  r   r   r   r   r   r   r   )r   r  r  r   r3  r4  r   r   rT   r   r  r  r  r   r  r  r.   r/   r  r  )r   	ty_valuesr   s      r   test_map_array_values_offsetsr    s   	BHJJ	'	'B	28E2799uEEE8GRXZZ88: ; ;I
8X&
3"===A8=	*****8rxa  a  a  ! 	      
 6==///22333337>>"(99928::>>>?????<##AIqv66==
3*se$%%' ' ' ' '<##AIqw77>>
1a&1#RXbhjj%9%9:::< < < < < 
*	+	+  			                 s   J  JJc                  *   t          j        t          j        dt          j                              t          j        dt          j                              g          } t          j        g d|           }|                                \  }}|j        t          j                    k    sJ |j        t          j                    k    sJ |                                g dk    sJ |                                g dk    sJ |dd                                          \  }}|                                dd	gk    sJ |                                d
dgk    sJ t          j        g d|           }|                                \  }}|                                g dk    sJ |                                g dk    sJ |dd                                          \  }}|                                d dgk    sJ |                                d d
gk    sJ t          j        g d|           }|                                \  }}|                                g dk    sJ |                                g dk    sJ |dd                                          \  }}|                                dd gk    sJ |                                dd
gk    sJ t          j        g d|           }|                                \  }}|                                g dk    sJ |                                g dk    sJ |dd                                          \  }}|                                d d gk    sJ |                                d dgk    sJ d S )Nr9  rH  r-  rS   r  r/  r1  r2  r   r   rn   r1  r2  )r.  Nr0  r  )r/  Nr1  )r   N)r         @)Nr1  r~   )Nr  r1  r   r  )r  N)Nr/  )r   NN)NNr/  r/  )	r   r3  r4  rL  r5  r   r  rT   r   )r   r   xsyss       r   test_struct_array_flattenr    sf   	BHS"(**--HS"*,,//1 
2 
2B
///b999AYY[[FB7bhjj    7bjll""""<<>>YYY&&&&<<>>___,,,,qrrU]]__FB<<>>aV####<<>>c3Z''''
+++"555AYY[[FB<<>>\\\))))<<>>-------qrrU]]__FB<<>>dAY&&&&<<>>dC[((((
333"===AYY[[FB<<>>\\\))))<<>>-------qrrU]]__FB<<>>aY&&&&<<>>c3Z''''
///b999AYY[[FB<<>>___,,,,<<>>.......qrrU]]__FB<<>>dD\))))<<>>dC[((((((r   c                  
   t          j        t          j        dt          j                              t          j        dt          j                              g          } t          j        g d|           }|                    d          }|                    d          }|                    d          }|                    d          }|                    d          }|                    d          }t          |t           j        j                  sJ t          |t           j        j	                  sJ |
                    t          j        g d	t          j                                        sJ |
                    t          j        g d
t          j                                        sJ |
                    |          sJ |
                    |          sJ |
                    |          sJ |
                    |          sJ d t          j                    fD ]H}t          j        t                    5  |                    |           d d d            n# 1 swxY w Y   IdD ]H}t          j        t                    5  |                    |           d d d            n# 1 swxY w Y   IdD ]H}	t          j        t                    5  |                    |	           d d d            n# 1 swxY w Y   Id S )Nr9  rH  r-  rS   r   r   r   r   r  r  r   r  zrA   )r   r3  r4  rL  r5  r   r)   r   
Int16Array
FloatArrayr   r.   r/   r0   r   r  
r   r   x0y0x1y1x2y2invalid_indexinvalid_names
             r   test_struct_array_fieldr
    sP   	BHS"(**--HS"*,,//1 
2 
2B
///b999A	
B	
B	
B	
B	
B	
Bb"&+,,,,,b"&+,,,,,99RXiiibhjj999:::::99RXoooBJLLAAABBBBB99R===99R===99R===99R===

+ # #]9%% 	# 	#GGM"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# ! # #]:&& 	# 	#GGM"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# " " "]8$$ 	" 	"GGL!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"" "s6   ?I!!I%	(I%	
J,,J0	3J0	K77K;	>K;	c                  4   t          j        t          j        dt          j                              t          j        dt          j                              g          } t          j        g d| t          j        g d                    }|                    d          }|                    d          }|                    d          }|                    d	          }|                    d          }|                    d          }t          |t           j        j	                  sJ t          |t           j        j
                  sJ |                    t          j        g d
t          j                                        sJ |                    t          j        g dt          j                                        sJ |                    |          sJ |                    |          sJ |                    |          sJ |                    |          sJ d t          j                    fD ]H}t          j        t                    5  |                    |           d d d            n# 1 swxY w Y   IdD ]H}t          j        t                    5  |                    |           d d d            n# 1 swxY w Y   IdD ]H}	t          j        t                     5  |                    |	           d d d            n# 1 swxY w Y   Id S )Nr9  rH  r-  r  r  r   r   r   r   )r   Nrn   rS   )r/  Nr2  r  r  )r   r3  r4  rL  r5  r   _flattened_fieldr)   r   r  r   r   r.   r/   r0   r   r  r  s
             r   !test_struct_array_flattened_fieldr    s   	BHS"(**--HS"*,,//1 
2 
2B
///bh33344	6 	6 	6A 
		A		B	
		A		B	
		B		B	
		B		B	
		C	 	 B	
		C	 	 Bb"&+,,,,,b"&+,,,,,99RXlll<<<=====99RX...RZ\\BBBCCCCC99R===99R===99R===99R===

+ . .]9%% 	. 	.}---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. ! . .]:&& 	. 	.}---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. " - -]8$$ 	- 	-|,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-- -s6   I66I:	=I:	KK	K	*LL	L	c                  l   t          j                    t          j                    t          j                    t          j                    t          j                    t          j                    t          j                    t          j                    t          j	                    t          j
                    t          j                    t          j                    t          j                    t          j                    t          j                    t          j                    t          j        d          t          j                    g} t%          j        | |           D ]U\  }}	 t          j        g |                              |           0# t           j        j        t           j        f$ r Y Rw xY wd S )Nrm   )lengthrS   )r   r   r  r   rL  r   r   r   r+  r  r  r  r5  r   r  r  rR   r   	itertoolsproductr   r  r   r  r  )r  t1t2s      r   test_empty_castr    s7   
		



		












	
	
	






	
	
	
	
	%E* %eU33  R	 HRb!!!&&r****/A 	 	 	H	 s   $)F F10F1c                     t           j                            g dddg          } t           j                            g d|           }|                                ddgdggk    sJ t           j                            g dddg          } t           j                            g d|           }|                                g dk    sJ d S )Nr  r   r   )r   r   r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r  r   )r  list_arr	dict_arr2s      r   test_nested_dictionary_arrayr  >  s    !--iii#sDDH|''			8<<HS#J#66666!--iii#sDDH"..III  $=$=$=======r   c                     t          j        ddg          } t          j        ddgt                    }t          j        | t          j                              }t          j        |t          j                              }t          j        ddg          }|                    |          sJ |                    |          sJ t          j        ddgt                    }t          j        | t          j                    |          }|                    |          sJ t          j        d                    d          g          } t          j	        t                    5  t          j        | t          j                               d d d            n# 1 swxY w Y   t          j	        t                    5  t          j        | t          j                    t          j        dg                     d d d            d S # 1 swxY w Y   d S )Ntototatar|   Fro  r  r  )re   r   r   r   r   r   r  r  r.   r/   rt   )vecvec2r"   r"  r=   rm  s         r   test_array_from_numpy_str_utf8r  H  s/    (FF#
$
$C8VV$F333D
(3	
$
$C8D")++&&Dx())H::h;;x      8UEN$///D
(3	$
/
/
/C::h (Y&&{334
5
5C	z	"	" # #
bikk"""# # # # # # # # # # # # # # # 
z	"	" ; ;
bikk%(9(9::::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;s$   !'FFF8<HHHlarge_typesFc                    dg}dg}d t          d          D             d                                 D             |fdt          d          D             z  }|fdt          d          D             z  }| rt          j                    nt          j                    }| rt          j                    nt          j                    }||f||ffD ]%\  }}t          j        |          }t          j        ||          }d }|j	        |k    sJ | rdt          |t          j                  sJ t          t          |                    D ]*}	||	         }
|
                                ||	         k    sJ +t          |t          j                  sJ |j        d	k    sJ d
}t          |j                  D ]A}	|                    |	          }|D ]'}
|
                                ||         k    sJ |dz  }(B'd S )N   xr9  c                 f    i | ].}|d dz  t          |dz                                d          z   /S )r!  i r7   r  )r   r  r   r   s     r   
<dictcomp>z9test_numpy_binary_overflow_to_chunked.<locals>.<dictcomp>o  sL        	
4=!CBKK$6$6v$>$>>  r   r7   c                 @    i | ]\  }}||                     d           S )r  )decode)r   r   r9  s      r   r$  z9test_numpy_binary_overflow_to_chunked.<locals>.<dictcomp>s  s@     B B B"&!Q  &!1!1 B B Br   c                 &    g | ]}|d z           S r7   r2   )r   r   unique_stringss     r   r   z9test_numpy_binary_overflow_to_chunked.<locals>.<listcomp>u  s"    >>>!~a"f%>>>r   i   c                 &    g | ]}|d z           S r(  r2   )r   r   unicode_unique_stringss     r   r   z9test_numpy_binary_overflow_to_chunked.<locals>.<listcomp>v  s2     0 0 0 .a"f5 0 0 0r      r   r   )rF   r  r   rU   rR   r"  r  re   r   rT   r)   r1   r   r'   rF  r5  r  )r  r   unicode_valuesrU  r  r  ex_typer"   r^  r   valvalue_indexr  r+  r)  s                @@r   %test_numpy_binary_overflow_to_chunkedr1  c  so    VFUN r  NB B*8*>*>*@*@B B B
>>>>uW~~>>>>F 0 0 0 0 %g0 0 0 0N (3C"/###	K%0?"-///bgiiK!;/);79 % %ghtnnHS'**	~(((( 	%i222223y>>** . .lyy{{d1g-----. i99999 '3....K9/00 % %!**  % %C99;;${*;;;;;1$KK%%+% %r   c                     d} d}| gg|dz
  z  }t          j        |          }t          |t           j                  sJ t	          |          |dz
  k    sJ | gg|z  }t          j        |          }t          |t           j                  sJ t	          |          |k    sJ t	          |                    d                    |dz
  k    sJ t	          |                    d                    dk    sJ d S )N   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxi    r   r   )r   r   r)   r1   r   rF  r  )kilobyte_stringtwo_megarY  r"   s       r   #test_list_child_overflow_to_chunkedr6    s     OH(Q,/D
(4..Cc28$$$$$s88x!|####)D
(4..Cc2?+++++s88xsyy||1,,,,syy||!!!!!!r   c                  P   t          j        g dg d          } | t          j                    k    sJ t          j        g dt          j        g d                    } | t          j                    k    sJ t          j        g g           t          j                    k    sJ d S )N)r5   r6   Nr   FFFTro  r  )r   
infer_typer  re   r   r   )r   s    r   test_infer_type_maskedr:    s     
...777
9 
9 
9B???? 
...H%=%=%=>>
@ 
@ 
@B???? ="%%%222222r   c                  V   t          j        g dt          j        g d                    } | j        t          j                    k    sJ t          j        t          j        g dd          t          j        g d                    } | j        t          j                    k    sJ d S )Nrm   Nrm   rO  FTFTro  r   r|   )r   r   re   rT   r   r+   s    r   test_array_maskedr>    s     (###!;!;!;<<> > >C8rxzz!!!! (28,,,C888!;!;!;<<> > >C8rxzz!!!!!!r   c                  t   t          j        g dt          j        g d                    } |                                 g dk    sJ t          j        g dt          j        g d                    } |                                 g dk    sJ t          j        g dg d          } |                                 g dk    sJ t          j        g dg d          } |                                 g dk    sJ t	          j        t           j                  5  t          j        g dt          j        g d                    } d d d            n# 1 swxY w Y   t	          j        t           j                  5  t          j        g dg d          } d d d            n# 1 swxY w Y   t	          j        t           j                  5  t          j        g dt          j        g d                    } d d d            n# 1 swxY w Y   t	          j        t           j                  5  t          j        g dt          j        g dt          j        g d	                              } d d d            n# 1 swxY w Y   t	          j        t           j                  5  t          j        g dt          j        g d
                    } d d d            n# 1 swxY w Y   t	          j        t                    5  t          j        t          j        g d          g d          } d d d            n# 1 swxY w Y   t	          j        t                    5  t          j        t          j        g d          t          j        g d                    } d d d            d S # 1 swxY w Y   d S )Nr<  r=  ro  )rm   Nrm   N)rm   Nrm   r   )rm   r   Nr   )rm   NNN)r   r   rO  g      @r  )FNFTTFTF)r   r   re   r   r.   r/   r  r0   r+   s    r   test_array_supported_masksrA    s    (###!;!;!;<<> > >C==??0000000
(???!;!;!;<<> > >C==??0000000
(???2224 4 4C==??0000000
(???2224 4 4C==??3333333 
r(	)	) < <hH%9%9%9::< < << < < < < < < < < < < < < < < 
r(	)	) 2 2h0002 2 22 2 2 2 2 2 2 2 2 2 2 2 2 2 2 
r(	)	) < <hH%9%9%9::< < << < < < < < < < < < < < < < < 
r(	)	) O OhH%?%?%?*,(3K3K3K*L*LN N NO O OO O O O O O O O O O O O O O O
 
r(	)	) B BhH%?%?%?@@B B BB B B B B B B B B B B B B B B
 
y	!	! 8 8hrx 0 0 0116668 8 88 8 8 8 8 8 8 8 8 8 8 8 8 8 8 
y	!	! B Bhrx 0 0 011H%?%?%?@@B B BB B B B B B B B B B B B B B B B B Bs   -EEE=F$$F(+F(-HH
H
/AI>>JJ'-K  K$'K$-L==MM!?N--N14N1c                      dd l } t          j        |                     ddgdd          |                     ddgd	          
          }|                                d dgk    sJ d S )Nr   r   r   r   )r  r}   TFr  r|   ro  )r%  r   r   Seriesr   )r%  r"   s     r   !test_array_supported_pandas_masksrD    sv    MMM
(6==!Qc=AAtUm6BBD D DC==??tQi''''''r   c                     t          j        dgt          j        d          t          j        dg                    } dg|                                 k    sJ t          j        t          j        dg          t          j        d          t          j        dg                    }dg|                                k    sJ t          j        t          j        dg          t          j        d          t          j        dg                    }d g|                                k    sJ t          j        t          j        dg          t          j                    t          j        dg                    }dg|                                k    sJ t          j        t          j        dg          t          j                    t          j        dg                    }d g|                                k    sJ t          j        g ddz            }t          j        |t          j        d          t          j        g d	dz                      }d
||dk    <   g ddz  |                                k    sJ d S )Nr  r   Fr  T)s   aaa   bbbs   cccr7   r   )FFFs   XXXrF  )r   r   rR   re   r   )masked_basicmaskedmasked_nullsnpar  s        r   test_binary_array_maskedrK    s]    8WIBIaLL!#5'!2!24 4 4L9..000000 Xbhy))	!8UG,,. . .F9((******8BHgY//bill!#4&!1!13 3 3L6\++------ Xbhy))	8UG,,. . .F9((******8BHgY//bikk!#4&!1!13 3 3L6\++------ (+++B.
/
/C(3RYq\\ ")>)>)>r)A B BD D DKCv$$$R'K,A,A,C,CCCCCCCr   c                     t          j        g d          } t          j        | d d d         t          j        d          t          j        ddg                    }ddg|                                k    sJ t          j        g d          } t          j        | d d d         t          j        d                    }ddg|                                k    sJ d S )Nr  r   Fro  r  r  )re   r   r   rR   r   )r  r  s     r   test_binary_array_stridedrM  "  s     h,,,--G(733Q3<1 "% 8 8: : :K5>[22444444 h,,,--G(733Q3<166K5>[2244444444r   c            
         ddgt          j        ddgd          t          dfddgt          j        dgdgg          t          j        dfg dt          j        ddg          t          j        d	ft          j        ddg          t          j        ddgd          t          dft          j        ddg          t          j        dgdgg          t
          dft          j        g d          t          j        ddg          t
          d	fg} | D ]K\  }}}}t          j        ||
          5  t          j        ||           d d d            n# 1 swxY w Y   Ld S )Nr   r   Fr   r|   zmust be boolean dtypezmust be 1D arrayr   zdifferent lengthro   ro  )re   r   r0   r   r  rt   r.   r/   )r   objrm  exrw   s        r   test_array_invalid_mask_raisesrQ  0  s    Q5%.444	+	- QE7UG,--	,	. 
BHeU^,,	,	. 
1a&		28UEN#>>>	+	- 
1a&		28eWug$677	'	) 
)))		bhu~66	'	)!E& $ % %T2s]2S))) 	% 	%HSt$$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%% %s   *EE	E	c                      t          j        t                    5  t          j        t          d          g           d d d            d S # 1 swxY w Y   d S )Nr  )r.   r/   OverflowErrorr   r   r  r2   r   r   test_array_from_large_pyintsrT  K  s    	}	%	% ! !
#g,,   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !r  c                     t          j        g d          } t          j        |           }t          j        g dd          }t          j                            ||           t          j        | d          }t          j                            ||           t          j        | dd          }t          j                            ||           t          j        g d          } t          j        dd	t          j        gd
          }t          j        |           }t          j                            ||           t          t          j                  t          d          k     rnt          j        | d          }t          j                            ||           t          j        | d
d          }t          j                            ||           nt          j
        t          d          5  t          j        | d           d d d            n# 1 swxY w Y   t          j        g d          } t          j
        t                    5  t          j        | d
d           d d d            n# 1 swxY w Y   t          j        g d          } |                     d          }|j        j        sJ t          j        g d          } |                     t          j        d
          d          }|j        d
k    sJ d S )Nr   r   r|   F)copy)r}   rV  r~   r   r   r   z
2.0.0.dev0zUnable to avoid a copyro   T)r   r   re   r   rg   rh   rx  r   __version__r.   r/   rt   	__array__flags	writeabler}   r;   s      r   test_numpy_array_protocolr[  R  s    (999

CZ__Fx			111HJ!!&(333 Xc&&&FJ!!&(333Xcu555FJ!!&(333 (<<<
 
 CxArvi888HZ__FJ!!&(333r~!6!666#E***

%%fh777#YU;;;

%%fh7777 ]:-EFFF 	& 	&HSu%%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& hyyy!!]:&& 	7 	7HS	6666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 (999

C]]]%%F<!!!!
(999

C]])!4!44]@@F<9$$$$$$s$   0HHHI11I58I5c                      G d d          }  | t          j        g dd                    }t          j        |          }t          j        g dt          j                              }|                    |          sJ t          j        |t          j                              }t          j        g dt          j                              }|                    |          sJ t          j        |t          j                              }t          j        g dt          j                              }|                    |          sJ t          j        t                    5  t          j        |t          j        g d                     d d d            n# 1 swxY w Y   t          j        t                    5  t          j        |d	
           d d d            n# 1 swxY w Y    G d d          } |t          j        g dd                    }t          j        t                    5  t          j        |           d d d            n# 1 swxY w Y    G d d          } |t          j        g dd                    }t          j        |          }t          j        g dt          j                              }|                    |          sJ  G d d          }t          j        g dd          } |||          }t          j        |          }t          j
        g dg dgt          j                              }|                    |          sJ d S )Nc                       e Zd Zd ZddZdS )$test_array_protocol.<locals>.MyArrayc                     || _         d S rC  ra   selfra   s     r   __init__z-test_array_protocol.<locals>.MyArray.__init__      DIIIr   Nc                 8    t          j        | j        |          S r>  )r   r   ra   rb  rT   s     r   __arrow_array__z4test_array_protocol.<locals>.MyArray.__arrow_array__  s    8DID1111r   rC  r:  r;  r<  rc  rg  r2   r   r   MyArrayr^    s7        	 	 		2 	2 	2 	2 	2 	2r   ri  r   r   r|   rS   rz   ro  r   r  c                       e Zd Zd ZddZdS )+test_array_protocol.<locals>.MyArrayInvalidc                     || _         d S rC  r`  ra  s     r   rc  z4test_array_protocol.<locals>.MyArrayInvalid.__init__  rd  r   Nc                 4    t          j        | j                  S rC  )re   r   ra   rf  s     r   rg  z;test_array_protocol.<locals>.MyArrayInvalid.__arrow_array__  s    8DI&&&r   rC  rh  r2   r   r   MyArrayInvalidrk    s7        	 	 		' 	' 	' 	' 	' 	'r   rn  c                       e Zd Zd ZddZdS )%test_array_protocol.<locals>.MyArray2c                     || _         d S rC  r`  ra  s     r   rc  z.test_array_protocol.<locals>.MyArray2.__init__  rd  r   Nc                 :    t          j        | j        g|          S r>  )r   rs   ra   rf  s     r   rg  z5test_array_protocol.<locals>.MyArray2.__arrow_array__  s    #TYKd;;;;r   rC  rh  r2   r   r   MyArray2rp    s7        	 	 		< 	< 	< 	< 	< 	<r   rs  c                       e Zd Zd ZddZdS )%test_array_protocol.<locals>.MyArray3c                 "    || _         || _        d S rC  )data1data2)rb  rw  rx  s      r   rc  z.test_array_protocol.<locals>.MyArray3.__init__  s    DJDJJJr   Nc                 F    t          j        | j        | j        g|          S r>  )r   rs   rw  rx  rf  s     r   rg  z5test_array_protocol.<locals>.MyArray3.__arrow_array__  s!    #TZ$<4HHHHr   rC  rh  r2   r   r   MyArray3ru    s=        	 	 		I 	I 	I 	I 	I 	Ir   rz  )re   r   r   r   r   r   r.   r/   rt   r0   rs   )ri  r"   r<   r=   rn  rs  rz  ri   s           r   test_array_protocolr{    s3   2 2 2 2 2 2 2 2 '"(999G444
5
5CXc]]Fx			

333H=="""""Xc

+++Fx			

333H=="""""Xc
---Fx			
555H==""""" 
z	"	" : :
28$7$7$7889999: : : : : : : : : : : : : : :	z	"	"  
1              ' ' ' ' ' ' ' ' .)))7;;;
<
<C	y	!	!  
              
< < < < < < < < (28IIIW555
6
6CXc]]Fx			

333H=="""""I I I I I I I I Xiiiw///F
(66
"
"CXc]]FIII 6RXZZHHHH=="""""""s6   *+F!!F%(F%G((G,/G,:II"Ic                       e Zd Zd ZddZdS )ArrayWrapperc                     || _         d S rC  r`  ra  s     r   rc  zArrayWrapper.__init__      			r   Nc                 6    | j                             |          S rC  )ra   __arrow_c_array__)rb  requested_schemas     r   r  zArrayWrapper.__arrow_c_array__  s    y**+;<<<r   rC  )r:  r;  r<  rc  r  r2   r   r   r}  r}    s7          = = = = = =r   r}  c                       e Zd Zd ZddZdS )ArrayDeviceWrapperc                     || _         d S rC  r`  ra  s     r   rc  zArrayDeviceWrapper.__init__  r  r   Nc                 (     | j         j        |fi |S rC  )ra   __arrow_c_device_array__)rb  r  kwargss      r   r  z+ArrayDeviceWrapper.__arrow_c_device_array__  s     1ty12BMMfMMMr   rC  )r:  r;  r<  rc  r  r2   r   r   r  r    s=          N N N N N Nr   r  wrapper_classc                 X    | t          j        g dt          j                                        }t          j        |          }||j        k    sJ t          j        |t          j                              }|t          j        g dt          j                              k    sJ d S r  )r   r   r   ra   r   )r  r"   r<   s      r   test_c_array_protocolr    s     -<<<
=
=CXc]]FSX Xc

+++FRXiiibhjj999999999r   c                     t          j        g dt          j                              } t          j        t
          d          5  |                     d           d d d            n# 1 swxY w Y   |                     d           }d S )Nr   rS   z7Received unsupported keyword argument\(s\): \['other'\]ro   znot-none)other)r   r   r   r.   r/   r  r  )r"   r   s     r   0test_c_array_protocol_device_unsupported_keywordr    s    
(99928::
.
.
.C	H
 
 
 7 7 	$$:$666	7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 	$$4$00AAAs   A((A,/A,c                      t          j        t          j        ddg          t          j        ddg          g          } |                     t          j        g d                    sJ d S )Nr   r   r   rm   r  )r   concat_arraysr   r   )concatenateds    r   test_concat_arrayr    sf    #	1a&		28QF++,. .Lrx556666666r   c                      t          j        t          j                  5  t          j        t          j        dg          t          j        dg          g           d d d            d S # 1 swxY w Y   d S )Nr   r   )r.   r/   r   r  r  r   r2   r   r   !test_concat_array_different_typesr    s    	r	'	' : :
"(A3--2$8999: : : : : : : : : : : : : : : : : :s   =A))A-0A-c                  Z   t          j        t          d          5  t          j        d g           d d d            n# 1 swxY w Y   t          j        ddgddgg          } t          j        t          d          5  t          j        |            d d d            d S # 1 swxY w Y   d S )Nzshould contain Array objectsro   r   r   r   rm   )r.   r/   r0   r   r  rs   r+   s    r   test_concat_array_invalid_typer    s,    
y(F	G	G	G ! !
$   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 
QFQF+
,
,C	y(F	G	G	G  
                 s!   >AA>B  B$'B$c                     t          j        g dt          j        dd                    } |                                 }|j        j        J t          j        | g          } |                                 }|j        j        J d S )Nr   r   zEurope/Brusselsr   rS   )r   r   r   r   dtr   rs   )r"   r   s     r   test_to_pandas_timezoner    s~     (9992<8I#J#J#J
K
K
KCA47

C5
!
!CA47r   c                  ,   t          j        d          gt          j        d          gt          j        d          gg} t          j        |           }|                                }|d         j        dk    sJ |                                | k    sJ d S )Nr   r   r   r   r  )re   r  r   r   r   r}   r   )r=   r"   r<   s      r   test_to_pandas_float16_listr    s     A"*Q--2:a==/BH
(8

C]]__F!9?i''''==??h&&&&&&r   c                  n   t          j        g dt          j                              } |                     d          }|                                g dk    sJ t          j        g dg dg          } |                     d          }|                                g dk    sJ t          j        g dt          j                              } |                     dd	
          }|                                g dk    sJ |                     dd
          }|                                g dk    sJ d S )N)rn   rG  #   rS   
descending)r  rG  rn   r   ri  )r   rn   rm   r   r   r   )rn   rG  r  Nat_end)null_placement)r  rG  rn   Nat_start)Nr  rG  rn   )r   r   r   sortr   rs   )r"   
sorted_arrs     r   test_array_sortr    s=   
(:::BHJJ
/
/
/C,''J!!ZZZ////

IIIyyy1
2
2C,''J!!%7%7%77777
(###"(**
5
5
5C,x@@J!!%5%5%55555,zBBJ!!%5%5%5555555r   c                     t           j                            t          j        g dt          j                              t          j        g d          gddg          } |                     dd          }|                                d	d
ddddddddddgk    sJ |                                 }|                                dddddddddd	d
dgk    sJ t           j                            t          j        g dt          j                              t          j        g d          gddgt          j        g d                    }|                    ddd          }|                                d d	d
dddddddgk    sJ |                    ddd          }|                                d	d
dddddddd gk    sJ d S )N)rn   rG  rG  r  rS   )r5   carr6   foobarr   r   r  r  )byr  r  r   rG  r  r6   rn   r5   r  rn  r  )r  r  r  )r   rp  r   r   r   r  r   )r"   r  arr_with_nullss      r   test_struct_array_sortr  +  s   
.
$
$
RXZZ000
00011& 3Z %  C
 ,3//J!!x  eee	&     J!!eeex  	&     ^//
RXZZ000
000111 3Zbh'B'B'BCC 0 E EN
  $$Z % 9 9J!!x  ee	&      $$X % 7 7J!!x  ee	&      r   c                  n   t          j        g d          } t          j        |           }| |k    sJ t          j        | t          j                              }t          j        g dt          j                              }||k    sJ |j        t          j                    k    sJ t          j        dgt          j                              } t          j        t           j                  5  t          j        | t          j                               d d d            n# 1 swxY w Y   t          j        dgt          j                              }t          j        | t          j                    d          }||k    sJ t          j        | t          j	                              }| |k    sJ d S )Nr   rS   l    r   Fr  r  )
r   r   r   rT   r   r.   r/   r  r   r  r;   s      r    test_array_accepts_pyarrow_arrayr  Y  s   
(999

CXc]]F&==== Xc

+++Fx			

333Hv=BHJJ&&&& (K=rxzz
2
2
2C	r	'	' ' '
28::&&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' x28::...HXc

777FX Xcr'='?'?@@@F&======s   /(D##D'*D'c                    | j                                         |k    sJ | j                                        |k    sJ t          |           |k    sJ |                                 |k    sJ |                                 |k    sJ d S rC  )run_endsr   r   r   find_physical_lengthfind_physical_offset)	ree_arrayr  r   logical_lengthphysical_lengthphysical_offsets         r   check_run_end_encodedr  s  s    ''))X5555%%''61111y>>^++++))++>>>>))++>>>>>>r   c                     g d}g d}t           j                            |||           }t          |||ddd           d S Nr   rn   r7   rb  r   r   r   r   rb  rm   r   )r   RunEndEncodedArrayr   r  )ree_typer  r   r  s       r   +check_run_end_encoded_from_arrays_with_typer  |  sL    ~~H\\F%11(FHMMI)Xvr1a@@@@@r   c                     g d}g d}t          j        || j                  }t          j        || j                  }t           j                            ||          }|j        | k    sJ t          |||ddd           d S r  )r   r   run_end_typer  r  r   rT   r  )r  r  r   typed_run_endstyped_valuesr  s         r   'check_run_end_encoded_from_typed_arraysr    s    ~~H\\FXh(=>>N8FH$788L%11.,OOI>X%%%%)Xvr1a@@@@@r   c                     t                       t          j                    t          j                    t          j                    fD ]} t          j                    t          j                    t          j                    t          j                    fD ]5}t          j        | |          }t          |           t          |           6d S rC  )	r  r   rL  r   r   r  r  run_end_encodedr  )r  r  r  s      r    test_run_end_encoded_from_arraysr    s    /111RXZZ< > >9;;

BIKKL 	> 	>J),
CCH7AAA3H====	>> >r   c            	         g d} g d}t          j        t          j                    t          j                              }d}d g}d}d}| |g}t           j                            ||||||          }t          || |ddd           t           j                            ||g |||          }t          || |ddd           t           j                            |||d||          }t          || |ddd           t           j                            ||dz
  ||d|          }t          || ||dz
  dd	           t          j        t                    5  t           j                            ||d d g|||           d d d            n# 1 swxY w Y   t          j        t                    5  t           j                            |||||d            d d d            n# 1 swxY w Y   t          j        t                    5  t           j                            |||||| g           d d d            n# 1 swxY w Y   t          j        t                    5  t           j                            |||d	||           d d d            d S # 1 swxY w Y   d S )
Nr  r  )r  r  rb  r   rm   r   r   r   )
r   r  r   r   r  rM  r  r.   r/   rt   )	r  r   r  r  r^   r   rJ  rb  r  s	            r   !test_run_end_encoded_from_buffersr    s   ~~H\\F!rxzzbhjjQQQHFfGJF&!H%228VW3=v3;= =I )Xvr1a@@@%228VR3=v3;= =I )Xvr1a@@@%228VW35v3;= =I )Xvr1a@@@%228VaZ3=q(L LI)Xvvz1aHHH	z	"	" I I
**8VdD\+5vx	I 	I 	II I I I I I I I I I I I I I I 
z	"	" E E
**8VW+5vt	E 	E 	EE E E E E E E E E E E E E E E 
z	"	" K K
**8VW+5vz	K 	K 	KK K K K K K K K K K K K K K K 
z	"	" @ @
**8VW+,fh	@ 	@ 	@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @sH   'F  FF$%GGG9&H++H/2H/%JJJc                  l   g d} g d}t          j        t          j                    t          j                              }t           j                            | ||          }g d}t          j        ||          }|                    |          sJ t          j        t          j        |          |          }|                    |          sJ t          j        t          j	                    t          j
                              }t          j        ||          }|                    |          rJ t           j                            | ||          }|                    |          sJ g d} g d}t           j                            | ||          }g d}t          j        ||          }|                    |          sJ g d} g d	}t           j                            | ||          }t          j        g d
          }t          j        |||          }|                    |          sJ d S )N)r   r   r   r   r   r   r   r   r   r   rS   )r   r   rn   r   )r   r   r   N)r   r   r   r   r   N)r   r   rm   rn   r   )r   r   Nr   N)FFFTFTr  )r   r  r   r   r  r   r   r   re   rL  r5  )	r  r   r  r=   r"   r<   
ree_type_2
expected_2rm  s	            r   )test_run_end_encoded_from_array_with_typer    s(   yyHYYF!"(**bhjj99H$00619; ;H 

CXc)))F=="""""Xbhsmm(333F=="""""#BHJJ
==JXc
+++F}}X&&&&&&228V3=? ?J==$$$$$||H__F$00619; ;H  

CXc)))F=="""""H"""F$00619; ;H 8<<<==DXct444F=="""""""r   c                     g d} t          j        | t          j        t          j                    t          j                                        }t          j        |           }t
          j                            |                    d          |           t          j
        t           j                  5  |                                 d d d            d S # 1 swxY w Y   d S )Nr  Frq   )r   r   r  r   r   re   rg   rh   r]   r.   r/   r  )r"   r  r=   s      r   test_run_end_encoded_to_numpyr    s    


Cb0RXZZHHIIIx}}HJ!!)"4"4E"4"J"JHUUU	r	'	'                   s   5CCCc                     g d} t          j        | t          j        t          j                    t          j                                        }|                                                                | k    sJ t          j        t           j	                  5  |                    d           d d d            d S # 1 swxY w Y   d S )Nr  Trq   )
r   r   r  r   r   r   r   r.   r/   r  )r"   r  s     r   test_run_end_encoded_to_pandasr    s    


Cb0RXZZHHIII  ''))S0000	r	'	' 1 140001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s   B==CCc                    g d}g d}g d}|                      |||          }|                                ddgddgdd	gd d
ggk    sJ |j                                        |k    sJ |j                                        |k    sJ |j                                        |k    sJ  |t          j        dt          j                                        }|                      ||||          }|j        |k    sJ |j        j	        j
        dk    sJ  |t          j                              }t          j        t                    5  |                      ||||           d d d            n# 1 swxY w Y   g d}g d}g d}|                      |||          }|                                ddgddgddggk    sJ |j                                        |k    sJ |j                                        |k    sJ |j                                        |k    sJ g }dd g}ddg}|                      |||          }|                                g d gk    sJ |j                                        |k    sJ |j                                        ddgk    sJ |j                                        |k    sJ g }ddg}d dg}|                      |||          }|                                d g gk    sJ |j                                        |k    sJ |j                                        |k    sJ |j                                        ddgk    sJ ddg}g d}g d}t          j        g d          }|                      ||||          }|                                dgd dggk    sJ |j                                        |k    sJ |j                                        |k    sJ |j                                        |k    sJ d S )N)r   r   r   rm   rn   r   NrG  )r   r   rm   r   )r   r   r   r   r   r   r   rm   rn   r   rG  r  rS   r  )r   r   r   r  r   )r   r   r   )r   r   r   r  ro  )r   r   r   r  sizesr   r4  r   rT   r  r  rR   r.   r/   r0   r   )	r  r^  r   r  r  r   r  r<   rm  s	            r   test_list_view_from_arraysr    s   
 )((FllGLLE''??E??!Q!Q!Q$ CCCCC<!!##v----=""$$////;  ""e++++ 
BHVRXZZ88
9
9C((%EEF;#;"'61111 
BIKK
(
(C	y	!	! F F##GUF#EEEF F F F F F F F F F F F F F F \\FiiGIIE''??E??!Q!Q!Q 88888<!!##v----=""$$////;  ""e++++ F$iGFE''??E??T
****<!!##v----=""$$A....;  ""e++++ F!fG1IE''??E??r
****<!!##v----=""$$////;  ""q!f,,,, VFiiGIIE8((())D''T'JJE??!dQC 00000<!!##v----=""$$////;  ""e++++++s   E--E14E1c                 ,   ddg}g d}g d}t          j        g d          }t          j        t           j        j                  5  |                     ||||           d d d            n# 1 swxY w Y   g d}|                     ||||          }|dd          }t          j        t           j        j                  5  |                     |j        |j        |j	        |
                                           d d d            d S # 1 swxY w Y   d S )Nr   r   )r   r   N)r   r   r   )FFTro  )r   r   r   )r   r   r.   r/   r   r  r   r  r  r   rq  )r  r^  r   r  r  rm  r   array_slices           r    test_list_view_from_arrays_failsr  L  s    VFllGIIE8((())D 
rv*	+	+ G G##GUF#FFFG G G G G G G G G G G G G G G iiG''T'JJE)K 
rv*	+	+ < <##!2[%8%8%:%: 	$ 	< 	< 	<< < < < < < < < < < < < < < < < < <s$   A,,A03A0;D		DD)r  r^  r  c           
         t          j        g dt          j                              } |t          j                              }t          j        g dd ddgg ddgd dd	gg|          }t          j        g d
|          }t          j        g d|          } | |t          j                                        }t          j        d g dd ddggg g ddgd gdd	ggg|          }	t          j        g d|          }
t          j        g d|          }|                                                    |          sJ |j                            |          sJ |j                            |          sJ |j                            |          sJ |	                                                    |          sJ |	j                            |
          sJ |	j                            |          sJ |	j                            |          sJ |	                                                                                    |          sJ |	j        j                            |          sJ |	                    d                              |          sJ g d}g d}g d}|                     |||          }|                                	                                g dk    sJ t          j        g d          }|                     ||||          }|                                	                                g dk    sJ |j        	                                g dk    sJ d S )Nr  rS   r&   r   rm   rn   r   rG  r   )r   r   r   rn   rn   rG  rG  )r   r   r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   Tr  )r   r   r   r   )r   r   r   r   )rm   r   r   r   r8  ro  )rm   r   r   )
r   r   r   r  r   r  r  r   r   r   )r  r^  r  r  r?  r!  r  sizes1r@  r"  r  sizes2r   r  r  r   rm  s                    r   test_list_view_flattenr  d  s    8   
 HJJ  D RXZZ((D8	
A
	
A	
A   D x---K@@@HX++++>>>FHJJ	
 	
 D
 8LLF	

 	F	
 F	
  !  D" xk:::HXoooK888F<<>>  &&&&&<x(((((:V$$$$$;d#####<<>>  &&&&&<x(((((:V$$$$$;d#####<<>>!!##**400000;$$T*****<<$$T***** \\FllGLLE''??E==??$$&&,,,6666 8///00D''T'JJE==??$$&&)))3333<!!##|||333333r   list_view_typec                 D   |                      g dg dg d          }|dd          }|j                                        g dk    sJ |j                                        ddgk    sJ |                                                                g dk    sJ |j        d	                                         }|j        d                                         }|d	                                         |j        ||                                         cxk    rdgk    sn J d S )
N)r   r   rm   )r   r   r   r  )r  r  r   r   r   rm   ri  r   r  )r  r   sliced_arrayr   r*  s        r   test_list_view_slicer    sM    &&yyy A0 A0 A08J8J8J ' L LE9L((**.@.@.@@@@@))++1v5555!!++--::::Q%%''AQ%%''A?  ""l&9!A#&>&H&H&J&JQQQQqcQQQQQQQQr   numpy_native_dtype)r,  r  r(  c                    t          j        |                                           }t          j        d|          }t	          j        t          j                  5  t          j        |           d d d            n# 1 swxY w Y   t	          j        t          j                  5  t          j        |t          j	                               d d d            n# 1 swxY w Y   t	          j        t          j                  5  t          j        |g           d d d            n# 1 swxY w Y   t	          j        t          j                  5  t          j
                            |gdg           d d d            d S # 1 swxY w Y   d S )Nr7   r|   rS   r   r  )re   r}   newbyteorderrf   r.   r/   r   r  r   r   rp  r   )r  numpy_swapped_dtyperi   s      r   test_swapped_byte_order_failsr    sI   
 (#566CCEEYr!4555F 
r2	3	3  
               
r2	3	3 , ,
bjll++++, , , , , , , , , , , , , , , 
r2	3	3  
&               
r2	3	3 : :
""F8C5"999: : : : : : : : : : : : : : : : : :sH   A<<B B %(CC CD$$D(+D($E>>FFc                     t          j        d          } |                     d          }t          j        dt          j                  }t          j        g dt          j                  }|                    |          }|                    |          }t          j
                            t          j                    dd |g          }t          j
                            t          j                    dd |g          }t          j
                            t          j                    d||g          }|                                 |j        dk    sJ |                                d |gk    sJ |j        t          j        j        k    sJ |j        du sJ t'          |          dk    sJ |                    dd          j        dk    sJ t+          |          sJ t-          |          sJ t          j        t0                    5  |                                 d d d            n# 1 swxY w Y   t          j        t0                    5  |                                 d d d            n# 1 swxY w Y   t          j        t0                    5  |                    |           d d d            n# 1 swxY w Y   t          j        t0                    5  |                    t          j                               d d d            n# 1 swxY w Y   t          j        t0                    5  |                    t          j                               d d d            n# 1 swxY w Y   t          j        t0                    5  |                                 d d d            n# 1 swxY w Y   t          j        t0                    5  |                                  d d d            n# 1 swxY w Y   t          j        t0                    5  |!                                 d d d            n# 1 swxY w Y   t          j        t0                    5  |"                                 d d d            n# 1 swxY w Y   t          j        t0                    5  |j#         d d d            n# 1 swxY w Y   t          j        t0                    5  |j$         d d d            n# 1 swxY w Y   t          j        t0                    5  |%                                 d d d            n# 1 swxY w Y   t          j        t0                    5  d tM          |          D              d d d            n# 1 swxY w Y   t          j        t0                    5  ||k     d d d            n# 1 swxY w Y   t          j        t0                    5  |'                                 d d d            n# 1 swxY w Y   t          j        t0                    5  |(                                 d d d            n# 1 swxY w Y   t          j        t0                    5  |)                                 d d d            n# 1 swxY w Y   t          j        t0                    5  |*                    d           d d d            n# 1 swxY w Y   t          j        t0                    5  |d          d d d            n# 1 swxY w Y   t          j        t0                    5  |+                    dg           d d d            n# 1 swxY w Y   t          j        t0                    5  |,                                 d d d            n# 1 swxY w Y   t          j        t0                    5  |-                    g d	           d d d            n# 1 swxY w Y   t          j        t0                    5  |.                    d           d d d            n# 1 swxY w Y   t          j        t0                    5  |/                                 d d d            n# 1 swxY w Y   t          j        t0                    5  |0                                 d d d            n# 1 swxY w Y   t          j        t0                    5  |1                                 d d d            n# 1 swxY w Y   t          j        t0                    5  |2                                 d d d            n# 1 swxY w Y   t          j        t0                    5  |                    d
           d d d            d S # 1 swxY w Y   d S )Nzpyarrow.cudar   rm   r|   r@  Fr   c                     g | ]}|S r2   r2   r#  s     r   r   z&test_non_cpu_array.<locals>.<listcomp>  s    qr   )TTFFTr  )3r.   r   Contextre   rf   r   r   r  buffer_from_datar   r1   rM  r   rJ  r^   device_typeDeviceAllocationTypeCUDAis_cpur   rY   r  r   r/   r  
__dlpack____dlpack_device__r  r  r   r  r   r  r   r  r   r  r  iterrq  is_nanr(   	fill_nulltake	drop_nullfilterindexr  rX  r]   r   )	cudactxra   validitycuda_data_bufcuda_validity_bufr"   r"  r  s	            r   test_non_cpu_arrayr    s   ~..D
,,q//C9Qbh'''Dx222"(CCCH((..M,,X66
(



Am/D
E
EC8  Q}0EFFDX**


A)=9; ;N LLNNN:????;;==T=11111?b5::::::s88q====99Q??!Q&&&&999s88OO8 
*	+	+                	*	+	+                                  
*	+	+                	*	+	+                	*	+	+                	*	+	+  			              	*	+	+  

              	*	+	+                                 	*	+	+                	*	+	+ " "!!" " " " " " " " " " " " " " "	*	+	+  

              	*	+	+ $ $!!###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $	*	+	+  DII              	*	+	+  t              	*	+	+                	*	+	+  

              	*	+	+                	*	+	+  a              	*	+	+  A              	*	+	+  !              	*	+	+                	*	+	+ / /

---.../ / / / / / / / / / / / / / /	*	+	+  		!              	*	+	+  


              	*	+	+                	*	+	+                	*	+	+  

              	*	+	+    $                                   s  H((H,/H,I--I14I1J33J7:J7'L

LL.'M!!M%(M%N&&N*-N*
O++O/2O/P00P47P4Q55Q9<Q9R--R14R1S%%S),S)	T**T.1T.U44U8;U8V++V/2V/W00W47W4X55X9<X9Y::Y>Y>[  [[$	[99[= [=]  ]]$^^	^	)___1```7aaa<bb!$b!c""c&)c&d''d+.d+e//e36e3rC  (  collections.abcr   r   rg  
hypothesisr8  hypothesis.strategies
strategiesstr  r.   r3  r	   r   r    numpyre   ImportErrorpyarrowr   pyarrow.tests.strategiestestspastpyarrow.vendored.versionr   mark	processesr   r$   r,   r3   r>   rB   rG   rJ   rM   rP   r[   rk   rx   r   r   parametrizer   r   r   r%  r   nopandasr   r   r   r   r   r   r   r   r   r  r  r  r'  r+  r6  r?  rB  rD  rP  rX  r]  r  r   	list_viewlarge_list_viewre  rg  ry  r{  r  r  r  r  r  r  r  LargeListArrayr  r  r  r  r  r  r  r  r  r
  r  r  r  r#  r/  r1  r3  r6  r<  rA  rG  rL  rR  rU  rZ  rj  ro  rt  rv  ry  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rF   rR   r  r  r   r   rL  r4  pickle_test_parametrizer  r  settingsHealthChecktoo_slowgivenrx  	all_typesintegersr  r  r  r  r  r  r   r#  r(  r+  r.  r   r2  r4  rC  rK  rM  r   rP  rT  rU   binary_viewr_  rk  rw  ry  r~  r  r"  r[  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r
  r  r  r  r  slowlarge_memoryr1  r6  r:  r>  rA  rD  rK  rM  rQ  rT  r[  r{  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  ListViewArrayLargeListViewArrayr  r  r  r  r  r  r2   r   r   <module>r     s  $ % $ $ $ $ $       " " " " " "           



    	BBB     ' ' ' ' ' ' ' ' ' , , , , , , - - -  . . .    B	 	 	        	; 	; 	; 4 4 4& 4 4 4   4 9 9 9" !8!8!899e}--4 4 .- :9 4 !8!8!8994 4 :9 4 4 4 4   : #8 #8  #8L BGIIBGIIBIKK	   
 
 
4' 4' 4'n
# 
# 
#   6 6 6&; &; &;R' ' 'B  4  :% % %7 7 7    2 2 2# # #  A A A( "  "  "F8 8 84 ,HbmR\2+=/? @ @7 7@ @7*5 5 5*L- L- L-^; ; ; 6**  +* ; ; ;, C C CL 7 7 7 E E E*$ $ $ A<2,bm<>? ?3? 3?? ? 3?l A\28&D   	A3K	At9qcS1#J!  
$ $ 	 $ A\28&D  K K	 K@	# 	# 	#  $ $ $ I  I  I X1I 1I 1Ih> > >&G  G  G TBL BL BLJG G G,4 4 4& $($ ' ' ' ' '2 " " "8    	 	 	# # #' ' ', , , + + +( 
* 
* 
* + + +$: : :* * *4 "K "K "KJ +  +  +F/ / /8 ( ( ( 	 	 	%" %" %"P* * *   0/ / /' ' 'B B B,E E E4, , ,4' ' '@     ' ' '( # # # # # # # # #    # # # " " "( # # #	0 	0 	01( 1( 1(h )   !eeAsmmUU1c]]uuQ||eeArlluuQ||eeArlluuQ||eeArllooo!!!"RYq\\+++,,   $ $!  $
 !+11	"	"	"HBHJJ/	xrxzz"			:2:<<(			929;;'	T
a&1#,,-a&1#hbhjj112%Sz	"HBHYRY[[$9$9:a&1#XRXZZ001a&1#**828::667%Sz	"LBL$=$=>	#	#	#BIxrxXRXZZ00("(3		2L2LMNN	P  ( $ $ $$ $ $ 1=#9";<<<DKR[1333        =<   - - -" F F F,       $ $ $# # #6    ? ? ?: # # # % % %3 3 3 *lbl3''(|r|D))*|r|D))*|r|D))*	-        "     	" 	" 	" 	 		 		 	 	 !8!8!899
 
 :9 
    *{r{3''(D))*D))*D))*	-  # #  #,    BIKKBOBN	)  
& &  &@, , ,, &@ &@ &@R, , ,  8  8  8F BGIIBMOOBN	)  
 &  &   &F 8 8 8    A A A # # #    # # # > > >"# # # "" "" ""J 1  1  1F J J J.      
 =#28::rx0828::r}2MNP P4+ 4+P P4+n BHXRXZZBHXRXZZ1%%%BM("(**'    	7 	7	   	7 5#28::xrx

';';<#28::xrx

a'H'H'HI#28::}r}XRXZZ'@'@A#28::|r|HBHJJ'?'?@#28::'9r'9("(**'E'EF	HI I0 0I I04 ,rx.GHH8 8 IH8& 2<1B"CDDB B EDB$!+ !+ !+HC C C  0#) #) #)L" " "D -  -  -F  >> > > ; ; ;4 66-% -% 76   -%` " " "" 3 3 3 	" 	" 	" /B /B /Bd ( ( ( D D D@ 
5 
5 
5 % % %4! ! ! +% +% +%\ @# @# @#F= = = = = = = =N N N N N N N N <9K*LMM	: 	: NM	:1 1 17 7 7: : :
      ' ' '6 6 6 + + +\  4? ? ?A A A AA A A> > >,@ ,@ ,@^ $# $# $#N    1 1 1 A+R\:0"2DEGH HB, B,H HB,J A+R\:0"2DEGH H< <H H<* P+R\828::F0"2DhbhjjQST TG4 G4T TG4T )B,<b>S+TUUR R VUR& -/A/A/ABB: : CB :.R  R  R  R  R s   7 A A