
    <>i$;                    +   S SK Jr  S SKrS SKrS SKrS SKJr  S SK	r	S SK
r
S SKrS SKrS SKrS SKr S SKrS SKrS SKJs  Jr  S SKJr  \
R2                  R4                  S 5       rS rS rS rS rS	 r S
 r!S r"S r#S r$S r%\
R2                  R                  S 5       r&\
R2                  R                  S 5       r'\
R2                  R                  S 5       r(\
R2                  R                  S 5       r)\
R2                  R                  \
R2                  RU                  S/ SQ5      \
R2                  RU                  SSS/5      S 5       5       5       r+\
R2                  R                  \
R2                  RU                  S/ SQ5      S 5       5       r,\
R2                  R                  S 5       r-\
R2                  R\                  S 5       r/\
R2                  R`                  \
R2                  R\                  S 5       5       r1\
R2                  RU                  SS\Rd                  " 5       \Rf                  " 5       \Rh                  " 5       /5      S 5       r5S r6S r7S  r8\
R2                  R                  S! 5       r9S" r:S# r;S$ r<S% r=S& r>S' r?\
R2                  R                  S( 5       r@\
R2                  R                  S) 5       rAS* rB\
R2                  R                  S+ 5       rCS, rDS- rE\
R2                  RU                  S.\R                  \R                  \R                  \R                  /5      S/ 5       rJS0 rKS1 rLS2 rM\
R2                  RU                  S3S45      S5 5       rN\
R2                  R                  S6 5       rO\
R2                  R                  S7 5       rP\
R2                  R                  S8 5       rQS9 rRS: rS\
R2                  R                  \
R2                  RU                  S;\R                  \R                  4\R                  \R                  4/5      S< 5       5       rV\
R2                  RU                  S;\R                  \R                  4\R                  \R                  445      \
R2                  RU                  S=SS //SS S/S //S /S>//45      S? 5       5       rW\
R2                  RU                  S;\R                  \R                  4\R                  \R                  445      S@ 5       rXSA rYSB rZSC r[\
R2                  R                  SD 5       r\SE r]SF r^SG r_SH r`SI raSJ rbSKSKSL.SM jrc\
R2                  R                  SN 5       rdSO reSP rfSQ rgSR rhSS riST rj\
R2                  R                  SU 5       rk\
R2                  R                  SV 5       rl\
R2                  R                  SW 5       rmSX rnSY ro\
R2                  R                  SZ 5       rpS[ rqS\ rr\
R2                  R                  S] 5       rs\
R2                  R                  S^ 5       rtS_ ruS` rvSa rwSb rxSc rySd rzSe r{Sf r|Sg r}Sh r~Si r\
R2                  R                  Sj 5       r\
R2                  R                  Sk 5       r\
R2                  R                  Sl 5       rSm r\
R2                  R                  Sn 5       r\
R2                  R                  So 5       r\
R2                  R                  Sp 5       rSq rSr r\
R2                  RU                  SsSt/ SuQ4Sv\" S Sw5      4Sx\" S Sy5      4Sz\" S S{5      4S|\" S S{5      4S}\" S S{5      4S~\" S S{5      4S\" S S{5      4S\" S S{5      4S/ SQ4S/ SQ4S/ SQ4S/ SQ4\GR                  " S5      / SQ4/5      S 5       r\
R2                  RU                  S/ SQ\GR                  " 5       4/ SQ\GR                  " 5       4/ SQ\GR                  " 5       4/ SQ\Rh                  " 5       4/ S4S>S/S//\R                  " \GR                  " 5       5      4SS/S//\R                  " \GR                  " 5       5      4S/SSS//\R                  " \Rh                  " 5       5      4S>S/S//\R                  " \GR                  " 5       5      4SS/S//\R                  " \GR                  " 5       5      4S/SSS//\R                  " \Rh                  " 5       5      4/ SQ\R                  " \GR                   " S\GR                  " 5       5      \GR                   " S\Rh                  " 5       5      /5      4/5      r\S 5       rS r\
R2                  R                  \GR(                  " \GR*                  GR,                  4S9\GR.                  " \GR0                  " \GR2                  \GR4                  " S S{S9S95      S 5       5       5       r\S 5       r\
R2                  R                  S 5       r\
R2                  R                  S 5       r\
R2                  R                  S 5       rS r\
R2                  R                  S 5       r\
R2                  R                  S 5       r\
R2                  R\                  S 5       r\
R2                  R                  S 5       rS r\
R2                  R                  \
R2                  RU                  SS\GRL                  " S5      4S\GRL                  " S5      4S\GRL                  " S5      4S\GRL                  " S5      4/5      S 5       5       r\
R2                  R                  S 5       r\
R2                  R                  \
R2                  RU                  S/ SQ5      S 5       5       r\
R2                  R                  \
R2                  RU                  S/ SQ5      S 5       5       r\
R2                  R                  S 5       r\
R2                  R                  \
R2                  RU                  SS\GRX                  " S5      4S\GRX                  " S5      4S\GRX                  " S5      4S\GRX                  " S5      4/5      S 5       5       r\
R2                  R                  S 5       r\
R2                  R                  \
R2                  RU                  SS\GR                  " 5       \GR^                  " 5       \GR`                  " 5       /5      S 5       5       rS r\
R2                  R\                  S 5       rS r\
R2                  R\                  S 5       r\
R2                  R                  \
R2                  RU                  SS\GRl                  " 5       \GRn                  " 5       \GRp                  " 5       /5      S 5       5       r\
R2                  R                  S 5       r\
R2                  R                  S 5       r\
R2                  R                  S 5       r\
R2                  R                  S 5       r\
R2                  R                  S 5       r\
R2                  R                  S 5       r\
R2                  R                  S 5       rS r\
R2                  R                  S 5       rS r\
R2                  R                  S 5       rS rS rS r\
R2                  RU                  S\GR                  " 5       \R                  4\GR                  " 5       \R                  4/5      S 5       r\
R2                  RU                  S\R                  " \GR                  " 5       5      \R                  " \GR                  " 5       SS9\R                  " \GR                  " 5       5      /5      S 5       r\
R2                  RU                  S\GR                  " 5       \R                  " \GR                  " 5       5      4\GR                  " 5       \R                  " \GR                  " 5       SS94\GR                  " 5       \R                  " \GR                  " 5       5      4\GR                  " 5       \R                  " \GR                  " 5       5      4\GR                  " 5       \R                  " \GR                  " 5       5      4/5      S 5       r\
R2                  RU                  S.\R                  \R                  /5      S 5       r\
R2                  RU                  S\R                  \R                  /5      S 5       rS rS rS rS rS rS rS rS r\
R2                  R                  S 5       r\
R2                  R                  \
R2                  GR                  \
R2                  GR                  \
R2                  RU                  SSSK/5      S 5       5       5       5       r\
R2                  GR                  S 5       r\
R2                  R                  S 5       r\
R2                  R                  S 5       r\
R2                  R                  S 5       r\
R2                  R\                  S 5       r\
R2                  R                  S 5       r\
R2                  R                  S 5       r\
R2                  R                  S 5       rS r\
R2                  R                  S 5       r\
R2                  R                  S 5       r " S S5      r " S S5      r\
R2                  RU                  S\\/5      S 5       rS rS rS rS r\
R2                  R\                  S 5       r\
R2                  R\                  GS  5       rGS rGS rGS rGS rGSGS jrGS rGS rGS r\
R2                  R                  GS	 5       r\
R2                  R                  GS
 5       r\
R2                  R\                  GS 5       r\
R2                  RU                  S;\GR                  \R                  4\GR                  \R                  4/5      GS 5       r\
R2                  RU                  S;\GR                  \R                  4\GR                  \R                  4/5      GS 5       r\
R2                  RU                  GS\GR                  \R                  \GR                  " 5       4\GR                  \R                  \GR                  " 5       4/5      GS 5       r\
R2                  RU                  GS\GR                  \GR                  /5      GS 5       r\
R2                  R                  \
R2                  RU                  GS/ GSQ5      GS 5       5       rGS Gr g! \ a    Sr GNHf = f(      )IterableN)Versionc                  H   Sn [         R                  " [        R                  SU /S[         R                  S9nUR
                  S:w  a2  [        UR                  [        R                  S9  UR                  5         [        UR                  R                  5       5      S:X  d   eg )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     W/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pyarrow/tests/test_array.pytest_total_bytes_allocatedr   (   sz    D
 ..#..$5,0JC
~~cjjszz*szz$$&'1,,,    c                      [         R                  " / SQ5      n [        R                  " U 5      nU" 5       c   eA U" 5       b   eg N         )paarrayweakrefref)arrwrs     r   test_weakrefr$   7   s;    
((9
C	S	B44<<r   c                      [         R                  " / SQ5      n U S   R                  5       b   eU S   R                  SL d   e[	        U S   [         R
                  5      (       d   eg )Nr   Nr   r   F)r   r   as_pyis_valid
isinstanceInt64Scalarr"   s    r   test_getitem_NULLr,   ?   sW    
((<
 Cq6<<>!!!q6??e###c!fbnn----r   c                      [         R                  " [        5         [        R                  " SS/5        S S S 5        g ! , (       d  f       g = f)Nr   r   )pytestraises	TypeErrorr   Array r   r   test_constructor_raisesr3   F   s,     
y	!
!Q 
"	!	!s	   =
Ac                      [         R                  " S/S / SQ/5      n U R                  5       nSnX:X  d   eU R                  SS9nSnX:X  d   eg )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D
EC]]_FH ]]b]1FH r   c                  f    [         R                  " / SQ5      n U R                  5       nSnX:X  d   eg )N Nr5   z[
  "",
  null,
  "foo"
]r9   r;   s      r   test_string_formatrB   n   s1    
(($
%C]]_FH r   c                  r    [         R                  " [        S5      5      n U R                  SS9nSnX:X  d   eg )Nd   r   )windowz[
  0,
  1,
  ...
  98,
  99
])r   r   ranger:   r;   s      r   test_long_array_formatrG   z   s9    
((5:
C]]!]$FH r   c                  d    [         R                  " / SQ5      n U R                  SS9nSnX:X  d   eg )Nr@   r   )indentz[
 "",
 null,
 "foo"
]r9   r;   s      r   test_indented_string_formatrJ      s2    
(($
%C]]!]$F+Hr   c                  d    [         R                  " / SQ5      n U R                  SS9nSnX:X  d   eg )Nr@   r   )top_level_indentz [
   "",
   null,
   "foo"
 ]r9   r;   s      r   %test_top_level_indented_string_formatrM      s2    
(($
%C]]A].F3Hr   c                  f    [         R                  " / SQ5      n U R                  5       nSnX:X  d   eg )N)    r   Ns   foos   z([
  00,
  ,
  null,
  01666F6F,
  80FF
]r9   r;   s      r   test_binary_formatrP      s1    
((@
AC]]_FH r   c                  0   [         R                  " / SQSS9n [         R                  " / SQSS9nU R                  S:X  d   eU R                  SS5      R                  S:X  d   eUR                  S:X  d   eUR                  SS5      R                  S:X  d   eg )	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I,.I ""b(((99Q?.."444((B...??1a 44:::r   c                     [         R                  " [        S5      5      n U R                  5       nU R	                  5       S   nUR
                  UR                  R                  :X  d   eS n SS KnUR                  5         UR                  c   e[        R                  " S5      n[        R                  R                  X5        g )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9
C\\^F a I 2 2222
CJJL ;;"""yy}HJJ!!&3r   c                  .   / SQ/ SQ/n [         R                  " U 5      nSn[        R                  " [        US9   UR                  SS9  S S S 5        UR                  5       n/ SQn[        R                  R                  X45        g ! , (       d  f       NB= f)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      su    ;'H""8,K
JC	z	-D1 
. !!#F#HJJ!!&3 
.	-s   B
Bc                  J   [         R                  " / SQ5      n [        R                  " [        5         U R                  5         S S S 5        U R                  SS9n[        R                  " / SQ5      n[        R                  R                  X5        [         R                  " / SQ5      n[        R                  " [        5         UR                  5         S S S 5        UR                  SS9n[        R                  " / SQ[        S9n[        R                  R                  X5        [         R                  " / SQ5      n[        R                  " [        SS9   UR                  5         S S S 5        g ! , (       d  f       GN4= f! , (       d  f       N= f! , (       d  f       g = f)	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      s    xx+,H	z	" 
# e4Fxx+,HJJ!!&3xx*+H	z	" 
# e4Fxx*&9HJJ!!&3
((<
 C	z	8 
9	8% 
#	" 
#	" 
9	8s#   E1FF1
F 
F
F"c                     [         R                  " [        S5      5      n U R                  5       n[        R
                  " [        5         SUS'   S S S 5        U R                  SSS9nSUS'   U S   R                  5       S:X  d   e[        R
                  " [        5         U R                  SSS9  S S S 5        g ! , (       d  f       Np= f! , (       d  f       g = f)Nr7   r   FT)rr   writable)r   r   rF   r]   r.   r/   rt   r'   )r"   ri   np_arr2s      r   test_to_numpy_writabler      s    
((59
C\\^F 
z	"q	 
# ll%$l?GGAJq6<<>Q 
z	"D48 
#	" 
#	" 
#	"s   
B: C:
C
Cunit)smsusnstzUTCc                     [         R                  " / SQ[         R                  " XS95      n[        R                  " / SQSU  S3S9nUR	                  5       n[        R
                  R                  XC5        g )Nr   r   zdatetime64[]r|   )r   r   	timestampre   r]   rg   rh   )r   r   r"   r=   ri   s        r   test_to_numpy_datetime64r     sS     ((9bll47
8Cxx	;tfA)>?H\\^FJJ!!&3r   c                     [         R                  " / SQ[         R                  " U 5      5      n[        R                  " / SQSU  S3S9nUR	                  5       n[        R
                  R                  X25        g )Nr   ztimedelta64[r   r|   )r   r   durationre   r]   rg   rh   )r   r"   r=   ri   s       r   test_to_numpy_timedelta64r     sS     ((9bkk$/
0Cxx	<vQ)?@H\\^FJJ!!&3r   c                      [         R                  " / SQ5      R                  5       n [        R                  " / SQ[        S9nU R                  SS9n[        R                  R                  X!5        g )N)abr   r|   Frq   )r   r   dictionary_encodere   r   r]   rg   rh   )r"   r=   ri   s      r   test_to_numpy_dictionaryr     sM     ((?
#
5
5
7Cxxv6H\\\/FJJ!!&3r   c                  ,   SS K n [        R                  " [        S5      5      n[        S5       H1  nUR	                  5       n[
        R                  " U5      S;   d   eS nM3     [
        R                  " U5      S;   d   e[        S5       H  n[        R                  " [        S5      5      nUR	                  5       nS nU R                  5         [
        R                  " UR                  R                  5      nUS:X  d   eUR                  5         M     g )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    
((59
C2Y v&&000  ??36)))2YhhuRy!


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

 r   c                     [         R                  " [        S5      5      n [        R                  " U  Vs/ s H  oPM     sn5      nUR                  5       / SQ:X  d   eUR                  [        R                  " S5      :X  d   e[        US   [         R                  R                  5      (       d   e[        R                  " U 5      nUR                  5       / SQ:X  d   eUR                  [        R                  " S5      :X  d   e[        R                  " U SS9nUR                  5       / SQ:X  d   e[         R                  " / S	Q5      n U R                  [         R                  " 5       :X  d   e[        R                  " U 5      nUR                  5       nUS S
 / SQ:X  d   e[        R                  " US
   5      (       d   eUR                  [        R                  " S5      :X  d   e[         R                  R                  [         R                  " / SQ5      [         R                  " / SQ5      5      n [        R                  " U 5      nUR                  [        R                  " S5      :X  d   eUR                  5       / SQ:X  d   eg s  snf )Nrm   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   =  s   
 ((58
C ZZC(CqC()F==?l***<<288C=(((fQi!2!23333 ZZ_F==?l***<<288G,,,, ZZ5)F==?2222 ((?
#C88rxxz!!!ZZ_F}}HBQ<<'''88HQK    <<288I.... 


(
(
!288O#<>CZZ_F<<288H----==?7777; )s   J
tyc                 $   [         R                  " SU S9n[         R                  " / SQU S9n[        U5      S:X  d   eUR	                  U5      (       d   eU c&  UR
                  [         R                  " 5       :X  d   eg UR
                  U :X  d   eg )Nr   rS   r{   )r   nullsr   r   equalsrT   nullr   r"   r=   s      r   
test_nullsr   e  sw     ((12
Cxx*4Hs8q==::h	zxx2779$$$xx2~~r   c                     [         R                  " S5      n [        R                  R	                  5       n[        R                  R                  5       nUR                  U R                  S9nUR                  U R                  S5      5      n[        R                  " SS9nS S[        R                  " S /5      4S S[        R                  " S5      4SS[        R                  " / S	Q[        R                  " 5       S
94SS[        R                  " SS/[        R                  " 5       S
94SS[        R                  " S/S-  5      4[        R                   " S[        R"                  " 5       S
9S[        R                  " S/S-  [        R"                  " 5       S
94[        R                   " S 5      S[        R                  " / SQ5      4[        R                   " S5      S[        R                  " S/S-  5      4US[        R                  " U/S-  5      4US[        R                  " U/S-  5      4US[        R                  " U/S-  [        R$                  " SU R                  S5      S9S
94UR'                  5       S[        R                  " UR'                  5       /S-  5      4US[        R                  " U/S-  5      4SS[        R                  " S/S-  5      4SS/S[        R                  " SS/SS//5      4[        R                   " SS/[        R(                  " [        R*                  " 5       5      S
9S[        R                  " SS//S-  [        R(                  " [        R*                  " 5       5      S
94SSS.S[        R                  " SSS./S-  5      4/nU H  u  pxn	[        R,                  " Xx5      n
[/        U
5      U:X  d   eU
R0                  R3                  U	R0                  5      (       d   eU
R3                  U	5      (       d   eU	R0                  [        R4                  " 5       :X  a  U
R6                  U:X  d   eM  U
R6                  S:X  a  M   e   g )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  sf   v&DMM!E





!Ckkk*G$$T]]<%@AKQ'F 
q"((D6"#	r288B< 	QBHHJ78	q"((D$<bjjl;<	1bhhzA~./IIabhhj)HHaS2XBHHJ/	

 
4!RXX&89:	4"bhhv{34	288UGaK()	b"((C52:&'HH	A\\$4==+FG	
 
Q#((*!123	BHHfX\*+	288UGaK()
QBHHq!fq!f-./IIr1gBMM"'')$<=HHr1gY]rwwy)AB	

 q	1bhhaa(8'9A'=>?A!EF "'Xii$3x4xxx}}----zz(####==BGGI%>>T)))>>Q&&& "'r   c                     / SQn [         R                  R                  / SQU S9n[         R                  " US   S5      n[         R                  R                  S/S-  U S9nUR	                  U5      (       d   e[         R                  " US   S5      n[         R                  R                  S/S-  U S9nUR	                  U5      (       d   eg )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



(
(*
(
MCYYs1vq!F!!--qcAg*-MH==""""YYs1vq!F!!--qcAg*-MH==""""r   c                  j   [         R                  " [        SS5      5      n U R                  5       n[        [	        U 5      * [	        U 5      5       H  nX   R                  5       X   :X  a  M   e   [        S[	        U 5      -  [	        U 5      * 5       H*  n[        R                  " [        5         X     S S S 5        M,     [        [	        U 5      S[	        U 5      -  5       H*  n[        R                  " [        5         X     S S S 5        M,     g ! , (       d  f       M  = f! , (       d  f       MP  = f)Nr7      r   )	r   r   rF   	to_pylistr   r'   r.   r/   
IndexErrorr"   lstidxs      r   test_array_getitemr     s    
((5R=
!C
--/Cc#hYC)x~~38+++ *R#c(]SXI.]]:&H '& / SXq3s8|,]]:&H '& - '& '&s   0D?D#
D 	#
D2	c                     [         R                  " [        SS5      5      n U R                  5       n[        [	        U 5      * [	        U 5      5       H2  nU [
        R                  " U5         R                  5       X   :X  a  M2   e   g )Nr7   r   )r   r   rF   r   r   re   int32r'   r   s      r    test_array_getitem_numpy_scalarsr     sb    
((5R=
!C
--/Cc#hYC)288C=!'')SX555 *r   c                  :   [         R                  " [        S5      5      n U R                  S5      n[         R                  " [        SS5      5      nUR	                  U5      (       d   eU R                  SS5      n[         R                  " [        SS5      5      nUR	                  U5      (       d   eU R                  S5      R	                  U 5      (       d   e[        U R                  [        U 5      5      5      S:X  d   e[        U R                  [        U 5      S-   5      5      S:X  d   e[        U R                  [        U 5      S-   S5      5      S:X  d   e[        R                  " [        5         U R                  S5        S S S 5        [        R                  " [        5         U R                  SS5        S S S 5        U SS  R	                  U R                  S5      5      (       d   eU SS R	                  U R                  SS	5      5      (       d   eU S
S  R	                  U R                  [        U 5      S-
  5      5      (       d   e[        U 5      n[        U* S-  US-  5       H  n[        U* S-  US-  5       Hl  nXU nUR                  5         U R                  5       Xg nUR                  5       U:X  d   e[        c  MH  UR                  5       R                  5       U:X  a  Ml   e   M     g ! , (       d  f       GNx= f! , (       d  f       GNU= f)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    sk   
((59
CYYq\Fxxa%H==""""ii1oGq!%I>>)$$$$ 99Q<s#### syyS"#q(((syySA&'1,,,syySAs+,111	z	"		" 
# 
z	"		!R 
# qr7>>#))A,''''q8??399Q?++++rs8??399SX\23333CArAvq1u%1"q&!a%(DD/CLLN}}u2H==?h...~||~,,.(::: ) & 
#	" 
#	"s   6K9*L9
L
Lc                     [        [        S5      5      n [        R                  " U 5      n[        R                  " U/5      n[        S S S5      [        S SS5      [        SSS5      [        SS S5      [        SSS5      [        SSS5      [        S S S5      [        SSS5      [        S	S
S5      [        SSS5      /
nU H  nX   n[        R                  " X   UR                  S9nUR                  U5      (       d   e[        R                  " U/S/S9U   n[        R                  " U/S/S9nUR                  U5      (       d   eX$   n[        R                  " X   /UR                  S9nUR                  U5      (       a  M   e   g )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
    sf   %)_F
((6
C""C5)K 	dD"dArb!RaraRb!RdD!aQb#rc3E 88FLsxx8}}X&&&&#tf5d;??H:dV<}}X&&&&"##V\NB}}X&&&& r   c            
         / SQn U  Hr  n[         R                  " U6 nUR                  SS9  UR                  [         R                  " [        [        U6 5      [         R                  " 5       S95      (       a  Mr   e   [         R                  " SS[         R                  " 5       S9nUR                  SS9  UR                  [         R                  " [        [        SS5      5      [         R                  " 5       S95      (       d   e[        R                  " [         R                  5         [         R                  " SS	S5        S S S 5        g ! , (       d  f       g = f)
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 D!T"}}RXXd5$<&8rxxzJKKKK  YYr3B,B,B,DEF
OOO==$uR~"6RXXZHIIII 
r	'
		!R 
(	'	's   *E
Ec                     [         R                  " S/[         R                  " 5       S9n [         R                  " / SQ[         R                  " 5       S9n[         R                  " / SQ5      n[         R                  " / S/S /[         R                  " [         R                  " 5       5      S9n[         R                  " / SQ[         R
                  " 5       S9n[         R                  " SS/[         R
                  " 5       S9nU R                  U 5      S:X  d   eU R                  U5      S	:X  d   eU R                  U5      R                  5       S
:X  d   eU R                  U5      R                  5       S
:X  d   eU R                  U5      R                  5       S:X  d   eUR                  U5      S:X  d   eUR                  U5      S:X  d   eg )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  sj   88UG"''),D88(rwwy9D88ID88R!dO"((288:*>?D88Kbjjl3D88QF.D99T?b   99T?    
 99T?  "&OOOO99T?  "&OOOO99T?  " (; < < <99T?b   99T?    r   c                      [         R                  " [        S5      5      n [        [        S5      U 5       H  u  pXR	                  5       :X  a  M   e   [        U [        5      (       d   eg )Nr7   )r   r   rF   zipr'   r)   r   )r"   r   js      r   test_array_iterr(  T  sP    
((59
CE"Is#GGI~~ $ c8$$$$r   c                  D   [         R                  " [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " 5       5      /5      n [         R
                  " / SQU S9nUSS  R                  5       SSS.S	S
S./:X  d   eg )Nr   r   r         @r         @)rn         @rS   r   r   r.  r   rn   r/  )r   structfieldr   float32r   r   )r   r"   s     r   test_struct_array_slicer3  ]  s    	BHHS"''),HHS"**,/1 
2B
((1
;Cqr7#5)*#5#7 7 7 7r   c                       " S S5      n [         R                  " U " 5       /5      n[        R                  " [        5         [
        R                  " U5        S S S 5        g ! , (       d  f       g = f)Nc                       \ rS rSrSrg)1test_array_factory_invalid_type.<locals>.MyObjectii  r2   N)__name__
__module____qualname____firstlineno____static_attributes__r2   r   r   MyObjectr6  i  s    r   r<  re   r   r.   r/   rt   r   )r<  r"   s     r   test_array_factory_invalid_typer>  f  sC      ((HJ<
 C	z	"
 
#	"	"s   A!!
A/c                      [         R                  " / SQ5      n [        R                  " U 5      n[        R                  " U 5      n[        R                  " U 5      US-   :X  d   eg )Nr   r   )re   r   r   r   r   )r"   refcountr  s      r   test_array_ref_to_ndarray_baserA  q  sF    
((9
Cs#H88C=D??3HqL111r   c                  p   [         R                  " / SQ[         R                  " 5       S9n [         R                  " / SQ[         R                  " 5       S9n[         R                  " / SQ[         R                  " 5       S9nX:H  SL d   eX:g  SL d   eX:H  SL d   eX:g  SL d   eU S:H  SL d   eU S :H  SL d   eg )Nr   rS   TFr   )r   r   r   r   )r  r  r   s      r   test_array_eqrC  z  s     88IBHHJ/D88IBHHJ/D88IBHHJ/DLT!!!LU"""LU"""LT!!!AI%DLU"""r   c                  0   [         R                  " [        R                  " / SQ5      5      n [         R                  " [        R                  " S/5      5      n[         R
                  R                  [         R                  " 5       SX/5      nUR                  [         R                  " 5       :X  d   eUR                  5       / SQ:X  d   e[         R
                  R                  [         R                  " 5       SS U /5      nUR                  [         R                  " 5       :X  d   eUR                  5       / SQ:X  d   e[         R
                  R                  [         R                  " 5       SX/SS9nUR                  [         R                  " 5       :X  d   eUR                  5       / SQ:X  d   e[        R                  " [        5         [         R
                  R                  [         R                  " 5       SS	S	/SS9  S S S 5        g ! , (       d  f       g = f)
Nrm   rn   r         rm   )rm   Nr   rF  r   r   offset)Nr   rF  rA   )r   	py_bufferre   int16r   r1   from_buffersrT   r   r.   r/   r0   )
values_buf	nulls_bufr"   s      r   test_array_from_buffersrO    sb   bhh|45JRXXzl34I
((


A	/F
GC88rxxz!!!==?o---
((


Aj/A
BC88rxxz!!!==?l***
((


A	/F'(   *C88rxxz!!!==?l***	y	!
bhhj!b"Xa@ 
"	!	!s   6H
Hc                     [         R                  " / SQ5      n U R                  5       n[         R                  R	                  [        U 5      US   US   US   U R                  U R                  5      nUR                  5       / SQ:X  d   e[         R                  R	                  [         R                  " 5       [        U 5      U R                  5       U R                  U R                  5      nUR                  5       / SQ:X  d   e[         R                  R	                  [        U 5      US   US   US   5      nUR                  5       / SQ:X  d   eU SS  nUR                  5       n[         R                  R	                  [        U5      US   US   US   SUR                  5      nUR                  5       / SQ:X  d   eUR                  S:X  d   eU SS  nUR                  5       n[         R                  R	                  [        U5      US   US   S SUR                  5      nUR                  5       SS	/:X  d   eUR                  S:X  d   eg )
N)r   Nr   r   r   r   r   )   aN   b   cr   )Nr   r   r   r   )r   r   r^   StringArrayrL  r   r   rI  r   r1   rR   )r   r^   copiedbinary_copyr   s        r   test_string_binary_from_buffersrW    s   HH*+EmmoG^^((E
GAJ
GAJ8H8HF !6666((''		SZ(-9I9I(-6K   "&>>>>^^((E
GAJ
GAJ8F!666612YFnnG^^((FWQZWQZV]]LF!1111!!! 12YFnnG^^((FWQZT2v}}FF#s+++!!!r   c                  *   [         R                  " / SQ[         R                  " 5       S9n U R                  5       n[         R                  R                  [         R                  " 5       [        U 5      U5      nUR                  SS9  UR                  5       / SQ:X  d   eSn[        R                  " [        US9   [         R                  R                  [         R                  " 5       [        U 5      USS 5        S S S 5        g ! , (       d  f       g = f)	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^   StringViewArrayrL  r   r   r   r.   r/   rt   )r   r^   rU  rp   s       r   test_string_view_from_buffersr\    s    HH	

  "E mmoG,,
#e*g/F
OOO "    /E	z	/
''NNc%j'!A,	8 
0	/	/s   :AD
Dlist_type_factoryc                 L   U " [         R                  " 5       5      n[         R                  " / SQS / / SQ/US9nUR                  U:X  d   eUR	                  5       n[
        R                  " [        5         [         R                  R                  USUS UR                   5        S S S 5        [         R                  R                  [         R                  " 5       SX1R                  S  5      n[         R                  R                  USUS UR                   U/S9nUR                  U5      (       d   e[
        R                  " [        5         [         R                  R                  USUS UR                   XD/S9  S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr   r   r   )r   rm   rn   rS   rm   r   children)r   rK  r   rT   r^   r.   r/   rt   r1   rL  num_buffersr   )r]  r   r   r^   childrU  s         r   test_list_from_buffersrd    s7    
288:	&BHHir95B?E::mmoG	z	"
b!W_bnn%=> 
# HH!!"((*a1IJEXX""2q'/2>>*BeW"UF==	z	"
b!W_bnn%=(-~ 	 	7 
#	" 
#	" 
#	"s   5/F/F
F
F#c            	         [         R                  " [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " 5       5      /5      n [         R
                  " SSS.S SSS./U S9nUR                  5       n[        R                  " [        5         [         R                  R                  U S	S US
   /5        S S S 5        [         R                  R                  [         R                  " 5       S	US
S	 5      [         R                  R                  [         R                  " 5       S	US	S  5      /n[         R                  R                  U S	US S
 US9nUR                  U5      (       d   e[        R                  " [        5         [         R                  R                  U S	US   /US S
 S9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       g = f)Nr   r   r   r5   r   rn   rA   rS   r   r   r`  )r   r0  r1  rK  r  r   r^   r.   r/   rt   r1   rL  r   )r   r   r^   ra  rU  s        r   test_struct_from_buffersrf    sn   	BHHS"((*-rxxRWWY/GH	IBHHAE*D2CDEmmoG	z	"
b!dGAJ%78 
# %%bhhj!WQq\B%%bggiGABK@BHXX""2q'"1+"IF==	z	"
b!gaj\'/| 	 	5 
#	" 
#	" 
#	"s   1'G#(G&
G#&
G4c            	         [         R                  " / SQ[         R                  " 5       S9n [         R                  " / SQ5      n[         R                  " SS/S SS //5      nSSSS/S	.S
S S S	.SSSS /S	./n[         R                  R	                  XU// S	Q5      nUR
                  [         R                  " SU R
                  4SUR
                  4SUR
                  4/5      :X  d   eUR                  5       U:X  d   e[        R                  " [        5         [         R                  R	                  XU/SS/5        S S S 5        [         R                  R	                  / / 5      nUR
                  [         R                  " / 5      :X  d   eUR                  5       / :X  d   e[         R                  " SU R
                  SS9n[         R                  " SUR
                  5      n[         R                  " SUR
                  5      n[         R                  R	                  XU/XVU/S9nUR
                  [         R                  " XVU/5      :X  d   eUR
                  S   R                  (       a   eUR                  5       U:X  d   e[         R                  " XVU/5      n[         R                  R	                  XU/US9nUR
                  [         R                  " XVU/5      :X  d   eUR
                  S   R                  (       a   eUR                  5       U:X  d   e[        R                  " [        5         [         R                  R	                  XU/XV/S9  S S S 5        [         R                  R	                  / / S9nUR
                  [         R                  " / 5      :X  d   eUR                  5       / :X  d   e[         R                  " S[         R                  " 5       5      n	[        R                  " [        SS9   [         R                  R	                  XU/XU/S9  S S S 5        XU/n
XVU/n[         R                  " / SQ5      n[         R                  R	                  XUS9nUR                  5       S /USS  -   :X  d   e[         R                  R	                  U
/ S	QUS9nUR                  5       S /USS  -   :X  d   e[        R                  " [        SS9   [         R                  R	                  X/ SQS9  S S S 5        [        R                  " [        SS9   [         R                  R	                  X[         R                  " / SQ5      S9  S S S 5        [        R                  " [        SS9   [         R                  R	                  X[         R                  " U/5      S9  S S S 5        [         R                  R	                  / / US9nUR!                  5       U:X  d   eUR                  5       S 0 0 /:X  d   eg ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN?= f! , (       d  f       N= f! , (       d  f       N= f)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)rk  maskr  rl  zMask must berl  znot contain nulls)TFN)r   r   r   StructArrayr   rT   r0  r   r.   r/   rt   r1  rj  r   r0   rs   is_null)r   r   r   expected_listr"   fafbfc
structtypefa2arraysrk  rl  s                r   test_struct_from_arraysrx    s   
,A
"#A
1a&$D	*+Ae1a&)d&b4y)M ..
$
$aAY
@C88ryy
qvvaffQVV}57 7 7 7==?m+++	z	"
""A!9sCj9 
# ..
$
$R
,C88ryy}$$$==?b    
#qvv	.B	#qvv	B	#qvv	B
..
$
$aAY|
$
DC88ryy""....xx{####==?m+++ BB<(J
..
$
$aAYZ
$
@C88ryy""....xx{####==?m+++	z	"
""A!9bX"> 
# ..
$
$R
$
3C88ryy}$$$==?b    ((3

#C	z)9	:
""A!9cr]"C 
; AYFb\F88()D
..
$
$V
$
FC==?tf}QR'88888
..
$
$V?
$
NC==?tf}QR'88888 
y	7
""68L"M 
8 
z)<	=
""*=!> 	# 	@ 
> 
y	7
""!1!14&!9 	# 	; 
8
 ..
$
$R$
$
7C;;=D   ==?tRn,,,y 
#	". 
#	" 
;	: 
8	7 
>	= 
8	7sH   %W81"X
8#X!X.5Y -4Y8
X

X
X+.
X= 
Y
Yc                      [         R                  " / SQ/ SQ/5      n [        R                  " [        SS9   [         R
                  R                  U /S/5        S S S 5        g ! , (       d  f       g = f)Nr   rh  zExpected Arrayro   r5   )r   rs   r.   r/   r0   ro  r   )rv   s    r   test_struct_array_from_chunkedrz  W  sL     ""Iy#9:K	y(8	9
""K=5': 
:	9	9s   #A""
A0rI  )r   r   c                    [         R                  " / SQ5      R                  5       n[         R                  R	                  UR
                  [        U5      U -
  UR                  R                  5       UR                  U S9nXS  U:X  d   eg )N)onetwothreer}  r|  rH  )
r   r   r   r   rL  rT   r   indicesr^   r   )rI  r   r   s      r   test_dictionary_from_buffersr  a  sp    
67IIKA
''Av()		(9(9(;Q\\/5 	( 	7A W:??r   c                  p   [         R                  " / SQS5      n [         R                  " / SQ[        S9n[         R                  " / SQ5      n[        R
                  R                  X5      n[        R
                  R                  XUS9nUR                  R                  5       U R                  5       :X  d   eUR                  R                  5       U R                  5       :X  d   eUR                  R                  5       UR                  5       :X  d   eUR                  R                  5       UR                  5       :X  d   e[        [        U 5      5       H]  nX5   R                  5       XU      :X  d   eX%   (       a  XE   R                  5       b   eM@  XE   R                  5       XU      :X  a  M]   e   g )Nr_  r   r   r|   )FFTFFFrn  re   r   r   r   r   r   r   r  r   r   r   rF   r   r'   )r  r   rl  d1d2r   s         r   test_dictionary_from_numpyr  j  sU   ii	1%G/v>J88=>D				'	'	<B				'	'$	'	GB::!W^^%5555::!W^^%5555==""$
(9(9(;;;;==""$
(9(9(;;;;3w< u{{}
1: 666675;;=(((5;;=Jqz$:::: !r   c                     [         R                  " / SQ5      R                  SS9n [         R                  R	                  [         R                  " / SQ5      [         R                  " SS/5      5      n[
        R                  R                  UR                  SS9U 5        [        R                  " [         R                  5         UR                  SS9  S S S 5        [         R                  R	                  [         R                  " / SQ5      [         R                  " SS/5      5      n[         R                  " / S	Q5      R                  SS9n [
        R                  R                  UR                  SS9U 5        [        R                  " [         R                  5         UR                  SS9  S S S 5        [         R                  R	                  [         R                  " / SQ5      [         R                  " S
S/5      5      n[         R                  " / SQ5      R                  5       n [
        R                  R                  UR                  SS9U 5        [
        R                  R                  UR                  SS9U 5        [         R                  R	                  [         R                  " / SQ5      [         R                  " S
S/5      5      n[         R                  " / SQ5      R                  SS9n [
        R                  R                  UR                  SS9U SS9  [         R                  R	                  [         R                  " / SQ5      [         R                  " SS/5      5      n[         R                  " / SQ5      R                  SS9n [
        R                  R                  UR                  SS9U SS9  g ! , (       d  f       GN= f! , (       d  f       GN(= f)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_nanrF  rW   )rF  rW   NrF  )r   r   r]   r   r   re   rg   rh   r.   r/   r  assert_allclose)r=   r   anonullsafloatafloat2aintss         r   test_dictionary_to_numpyr    s   xx#heh$  	&&
!
% 	A JJ!!!**E*"B"*, 
r	' 	


$
' 
( !!--

% H xx$heh$  JJ!!("3"35"3"I"*, 
r	'. 
( ++

$F xx01::<HJJ!!&///"F"*,JJ!!&///"G"*,   ,,
!
$G xx heh$  JJ.   **
!
!RE xx()22%2HHJJe,  i 
(	'$ 
(	's   N<O<
O
Oc                  *   [         R                  " / SQS5      n [         R                  " / SQ[        S9n[        R                  " U 5      n[        R                  " U5      n[        R
                  R                  X#5      nUR                  R                  5       U R                  5       :X  d   eUR                  R                  5       UR                  5       :X  d   e[        [        U 5      5       H   nXE   R                  5       XU      :X  a  M    e   g )Nr_  r   r   r|   r  )r  r   iarrdarrr  r   s         r   !test_dictionary_from_boxed_arraysr    s    ii	1%G/v>J88GD88JD				'	'	3B::!W^^%5555==""$
(9(9(;;;;3w< u{{}
1: 6666 !r   c                     [         R                  " / SQ5      n [         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  R                  X5        [        R
                  " [         R                  5         [         R                  R                  X5        S S S 5        [        R
                  " [         R                  5         [         R                  R                  X#5        S S S 5        [         R                  R                  XSS9  g ! , (       d  f       Ny= f! , (       d  f       N>= f)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    xx*+Hxx
#Hxx%H/0J ""88	r((	)
&&x< 
* 
r((	)
&&x< 
*
 ""8e"D 
*	) 
*	)s   $ D70 E7
E
Ec                      [         R                  " / SQ5      n [         R                  " / SQ5      n[         R                  R                  X5      nUR                  R                  SS9  g )Nr  r   Tr  )r   r   r   r   r  r   )r  r   r"   s      r   test_dictionary_indicesr    sK    hh)*G/0J



(
(
=CKKd#r   )list_array_typer]  c                 4   [         R                  " / SQSS9n[        R                  " USS9n/ SQn[        R                  " USS9nU R                  X55      n[        R                  " US S USS	 US	S
 /U" [        R                  " 5       5      S9nUR                  U5      (       d   eU" [        R                  " S[        R                  " 5       5      5      nU R                  X5U5      nUR                  U:X  d   eUR                  R                  R                  S:X  d   e/ SQn/ SQnU R                  X55      n[        R                  " US S S USS  /U" [        R                  " 5       5      S9nUR                  U5      (       d   e/ SQn	U R                  X5      n[        R                  " US S USS  S /U" [        R                  " 5       5      S9nUR                  U5      (       d   e/ SQn[         R                  " S	5      n[        R                  " [        5         U R                  X55        S S S 5        / SQn[        [        S5      5      nU R                  X55      n[        R                  " [        5         UR!                  SS9  S S S 5        U" [        R                  " 5       5      n[        R                  " ["        5         U R                  X5US9  S S S 5        g ! , (       d  f       N= f! , (       d  f       Nn= f! , (       d  f       g = f)Nr   r   rn   r   i4r|   r   rS   rQ  rR  rS     d   e   f   g   hrR   r   rn   r   namer   Nr   r   rQ  rR  rS  r  r  r  )r   r   Nr   )r   r   r7   )r   r   r   r   r   Tr  )re   r   r   r   rR   r   r1  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4Khh{1G?HXXhX.F((9Fxx"1x!}hqmD.ryy{;=H =="""" BHHVRYY[9
:C((#>F;;#;;""''6111 G1F((9FxxT6!":6.ryy{;=H =="""" H((:FxxVABZ6.ryy{;=H=="""" GYYq\F	z	"##G4 
# G%(^F((9F	z	"T" 
# BIIK
(C	y	!##G##> 
"	! 
#	" 
#	"
 
"	!s$   #K' K8L	'
K58
L	
Lr"   r   c                     [         R                  " X!" [         R                  " 5       5      5      nU R                  UR                  UR
                  UR                  5       S9nX#:X  d   eg )Nrn  )r   r   r   r   r  r   rp  )r  r]  r"   reconstructed_arrs       r   !test_list_array_types_from_arraysr  0  sW     ((3)"'')4
5C'33SZZckkm 4 5###r   c                 t   [         R                  " S/S SS /S//U" [         R                  " 5       5      5      n[         R                  " / SQ5      nU R                  UR                  UR
                  5      nUR                  5       S// SS /S//:X  d   eU R                  X2R
                  5      nX$:X  d   eU R                  UR                  UR
                  UR                  5       S9nX$:X  d   e[        R                  " [        SS9   U R                  X2R
                  UR                  5       S9  S S S 5        USS  nSn[        R                  " [        US9   U R                  UR                  UR
                  UR                  5       S9  S S S 5        g ! , (       d  f       Nk= f! , (       d  f       g = f)Nr   )r   Nr   r   rm   rn  zAmbiguous to specify both ro   r   -Null bitmap with offsets slice not supported.)r   r   r   r   r  r   r   rp  r.   r/   rt   NotImplementedError)r  r]  r"   r  r  	arr_slicerw   s          r   &test_list_array_types_from_arrays_failr  B  s    ((QC4y1#.0A"'')0L
MChh)*G (33CKKL&&(aS"q$i!,EEEE (33GZZH###'33CKK47JJ9< 4 H ### 
z)E	F##GZZckkm#L 
G ABI
9C	*#	6##y//i6G6G6I 	$ 	K 
7	6 
G	F 
7	6s   
)F4F)
F&)
F7c                      [         R                  " [         R                  " 5       [         R                  " 5       5      n [         R                  " SS0/U S9nUR	                  [         R                  " [         R
                  " 5       [         R                  " 5       5      5      n[         R                  " [         R
                  " 5       [         R                  " 5       5      n[         R                  " SS0/US9nUR                  U5      (       d   eg )Nr   r   rS   )r   map_r   r   castr   r   )tr"   r<   
t_expectedr=   s        r   test_map_castr  f  s    

BHHJ'A
((QF8!
$CXXbggbhhj"((*56FRXXZ0Jxx!Qz2H==""""r   c                     [         R                  " [         R                  " SSSS9S5      n [         R                  " SS/S//U S	9nUR                  R
                  [         R                  " S[         R                  " 5       SS9:X  d   eUR                  R                  [         R                  " S
[         R                  " 5       5      :X  d   e[        U5      S:X  d   eg )Nr  r   Fri  r   r   r   r   r   r   r   rS   r   r   )
r   r  r1  r   rT   	key_fieldr  
item_fieldr   r   )r  r"   s     r   test_map_labelledr  r  s    
E:GDA
((Xx(8*5A
>C88&"'')e!LLLL88"((7BHHJ"????s8q==r   c                     [         R                  " SS/S//[         R                  " [         R                  " 5       [         R                  " 5       5      5      n [         R                  " SSS.SS0/[         R                  " [         R                  " 5       [         R                  " 5       5      5      nU R                  U5      (       d   eg )	Nr  r  r  r   r   r   r   r   )r   r   r  r   r   r   )tup_arrdict_arrs     r   test_map_from_dictr  {  s    hh8,xj9wwryy{BHHJ79Gxxqq)C84		RXXZ8:H >>(####r   c                  >   [         R                  " / SQSS9n [        R                  " U SS9n/ SQn[        [	        [        U5      5      5      n[        [        X#5      5      nUS S USS USS	 /n[        R                  " US
S9n[        R                  " USS9n[        R                  R                  XU5      n[        R                  " U[        R                  " [        R                  " 5       [        R                  " 5       5      S9n	UR                  U	5      (       d   e/ SQn/ SQn/ SQn[        [        X#5      5      nUS S S USS  /n[        R                  " US
S9n[        R                  " USS9n[        R                  R                  XU5      n[        R                  " U[        R                  " [        R                  " 5       [        R                  " 5       5      S9n	UR                  U	5      (       d   e[        R                  R                  XU[        R                  " UR                  UR                  5      5      nUR                  U	5      (       d   e[        R                  " [        R                   SS9   [        R                  R                  XU[        R"                  " 5       5        S S S 5        [        R                  " [        R                   SS9   [        R                  R                  XU[        R                  " UR                  [        R$                  " 5       5      5        S S S 5        [        R                  R                  / SQXg[        R                  " UR                  UR                  5      [        R                  " / SQ[        R&                  " 5       S9S9nUR(                  S:X  d   eUR                  U	5      (       d   e[        R                  R                  / SQXg[        R                  " / SQ[        R&                  " 5       S9S9nUR                  U	5      (       d   e/ SQnS S USS  /n[        R                  R                  / SQXg[        R                  " UR                  UR                  5      [        R                  " / SQ[        R&                  " 5       S9S9n[        R                  " U[        R                  " [        R                  " 5       [        R                  " 5       5      S9n	UR(                  S:X  d   eUR                  U	5      (       d   eSn
[        R                  " [        R*                  U
S9   [        R                  R                  XU[        R                  " UR                  UR                  5      [        R                  " / SQ[        R&                  " 5       S9S9  S S S 5        Sn[        R                  " / SQ[        R                  " 5       5      n[        R                  " [        R,                  US9   [        R                  R                  UR/                  S5      Xg[        R                  " UR                  UR                  5      [        R                  " / SQ[        R&                  " 5       S9S9  S S S 5        / SQn[         R0                  " S5      n[         R0                  " S5      n[        R                  R                  XU5      n[        R                  " [2        5         [        R                  R                  US/-   Xg5        S S S 5        [        R                  " [2        5         [        R                  R                  X[         R4                  " Xw/5      5        S S S 5        [        U5      S S S /-   n[        U5      [        U5      :X  d   e[        R                  " [2        5         [        R                  R                  XU5        S S S 5        [        R                  " U[        R                  " 5       5      n[        R                  R                  UR/                  S5      Xg5      n[        R                  R                  / SQXg5      n	UR                  U	5      (       d   eUR6                  S:X  d   eU	R6                  S:X  d   e[        R                  " / SQ[        R                  " 5       5      n[        R                  R                  UR/                  S5      [        R                  " / [        R"                  " 5       5      [        R                  " / [        R"                  " 5       5      5      n[        R                  R                  / SQ[        R                  " / [        R"                  " 5       5      [        R                  " / [        R"                  " 5       5      5      n	UR                  U	5      (       d   eUR6                  S:X  d   eU	R6                  S:X  d   eg ! , (       d  f       GNo= f! , (       d  f       GN= f! , (       d  f       GN~= f! , (       d  f       GN= f! , (       d  f       GN1= f! , (       d  f       GN= f! , (       d  f       GN= f) 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   FTFrn  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   concatenaterI  )r  r  pykeyspyitemspypairs	pyentrieskeysitemsr<   r=   msg1msg2r   keys_with_nulls                 r   test_map_from_arraysr    s\   ((<t4Khh{1G=F5V%&G3v'(G!galGAaL9I88F*DHHW4(E[[$$WE:Fxx			RXXZ(HIH=="""" G1F#G3v'(G!dGABK0I88F*DHHW4(E[[$$WE:Fxx			RXXZ(HIH=="""" [[$$WE277		

< F =="""" 
r((0O	P
ubiikB 
Q 
r((0L	M
ubggIIHHJ7
 	 
N [[$$\4		

A XX*< % F
 !!!=="""" [[$$\4*,((3G8:
+D % 'F =="""" !GtWQR[)I[[$$\4		

A XX)
; % F
 xx			RXXZ(HIH!!!=="""" KD	rd	3
ubggIIJJ7 .RXXZ@ 	  	
 
4 ;Dhh|RXXZ0G	r22$	?
a 0$rwwIIJJ@ .RXXZ@ 	  	
 
@ G99Q<DIIaLE
u5A 
z	"
1#t; 
# 
z	"
r~~un/MN 
# $Z_v-N~#e*,,,	z	"
? 
# hhw
+G[[$$W]]1%5tCF{{&&y$>H==""""==A??ahh)288:6G[[$$a
RYY[!
RYY[!F
 {{&&
RYY[!
RYY[!H
 ==""""==A??aI 
Q	P 
N	ML 
4	3 
@	? 
#	" 
#	" 
#	"sW   5h!$Ah3A2i'Bi%i)!6i;%!j!
h03
i
i
i&)
i8;
j

jc                  (
   [         R                  " [        S5      [         R                  " 5       5      n [         R                  R                  U S5      nUR                  5       / SQ/ SQ/ SQ/:X  d   eUR                  R                  [         R                  " [         R                  " 5       S5      5      (       d   e[         R                  " [         R                  " S[         R                  " 5       5      S5      n[         R                  R                  XS9nUR                  5       / SQ/ SQ/ SQ/:X  d   eUR                  R                  U5      (       d   eUR                  R                  R                  S:X  d   e[         R                  R                  U U[         R                  " / SQ5      S	9nUR                  5       / SQS / SQ/:X  d   e[         R                  R                  U S[         R                  " / SQ5      S
9nUR                  5       / SQS / SQ/:X  d   e[        R                  " [        5         [         R                  R                  U S5        S S S 5        [        R                  " [        5         [         R                  R                  [         R                  " / [         R                  " 5       5      S5        S S S 5        [        R                  " [        5         [         R                  R                  U S5        S S S 5        [         R                  " [         R                  " 5       S5      n[        R                  " [        5         [         R                  R                  XS9  S S S 5        [         R                  " [         R                   " 5       S5      n[        R                  " ["        5         [         R                  R                  XS9  S S S 5        [        R                  " [        5         [         R                  R                  U 5        S S S 5        [         R                  " [         R                  " 5       S5      n[        R                  " [        5         [         R                  R                  U SUS9  S S S 5        g ! , (       d  f       GN@= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN^= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       g = f)N   rm   r   rE  )r   r   r7   rW   r  rS   r  rT   rl  )	list_sizerl  r   rn   )r  rT   )r   r   rF   r   FixedSizeListArrayr   r   rT   r   r  r1  r  r  r.   r/   rt   r   r0   )r   r<   r  s      r    test_fixed_size_list_from_arraysr    sd   XXeBi,F""..vq9F,n!MMMM;;bhhrxxz156666
((288FBHHJ/
3C""..v.@F,n!MMMM;;c"""";;""''6111""..v4746HH=Q4R / TF ,n!EEEE""..v9:46HH=Q4R / TF ,n!EEEE 
z	"
))&"5 
# 
z	"
))"((2rxxz*BAF 
# 
z	"
))&!4 
# ((288:q
!C	z	"
))&); 
# ((2::<
#C	y	!
))&); 
" 
z	"
))&1 
# ((288:q
!C	z	"
))&AC)H 
#	"3 
#	" 
#	" 
#	"
 
#	"
 
"	! 
#	" 
#	"sU   >!RA	R*,!R<SS  S2/ T
R'*
R9<
S
S 
S/2
T 
Tc                     [         R                  " / SQ[         R                  " 5       5      n [         R                  " / SQ5      n[         R                  R	                  X5      nUR                  5       SS/SS//:X  d   eUR                  R                  [         R                  " [         R                  " 5       5      5      (       d   e[         R                  " / SQ5      n[         R                  R	                  X5      nUR                  5       SS/S SS//:X  d   e[        R                  " [        5         [         R                  R	                  [         R                  " / SQ5      U 5        S S S 5        [        R                  " [        5         [         R                  R	                  [         R                  " / S	Q5      U 5        S S S 5        g ! , (       d  f       Nh= f! , (       d  f       g = f)
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  sE   XXlBHHJ/Fhhy!G\\%%g6F1a&1a&!1111;;bhhrxxz23333hh'G\\%%g6F1a&$A!7777 
z	"
  *!5v> 
# 
z	"
  )!4f= 
#	" 
#	" 
#	"s   77G7G!
G!
G/c            
      ^  ^^^^ [         R                  " / SQSS9m[         R                  " / SQSS9m[         R                  " / SQSS9n [         R                  " / SQSS9n[         R                  " / S	QS
S9m/ SQmUUUU4S jnU" [         R                  R                  U TTT/5      SS/SS/U S9  U" [         R                  R                  U TTT/SS/5      SS/SS/U S9  U" [         R                  R                  UTTT/SS/S9SS/SS/US9  U" [         R                  R                  UTTT/SS/SS/5      SS/SS/US9  [         R                  R                  UTTT/5      n[        R
                  " [         R                  5         UR                  SS9  S S S 5        [         R                  R                  U TTT/SS/S9n[        R
                  " [         R                  5         UR                  SS9  S S S 5        [         R                  " / SQS
S9n[         R                  R                  XTT/5      n[        R
                  " [         R                  5         UR                  SS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)NrQ  rR  rS  r  rR   rS   r   r   r   r   r   r   r   r   r   r   rW   rG  rW   rW   rG  rG  rW   )r   r   r   r   r   r   r   r   rQ  r   rR  rS  r   r   r  c                   > U R                  SS9  [        U R                  R                  5       Vs/ s H  nU R                  U   R                  PM     nnXQ:X  d   eU R                  R
                  S:X  d   eU R                  R                  U:X  d   eU R                  5       T:X  d   eUR                  U R                  5      (       d   eT	R                  U R                  5      (       d   eU R                  S5      R                  T5      (       d   eU R                  S5      R                  T5      (       d   e[        R                  " [        5         U R                  S5        S S S 5        [        R                  " [        5         U R                  S5        S S S 5        g s  snf ! , (       d  f       NH= f! , (       d  f       g = f)NTr  denser   r   r   r   )r   rF   rT   
num_fieldsr  mode
type_codesr   r   r  r1  r.   r/   KeyError)
r<   expected_field_namesexpected_type_codesexpected_type_code_valuesr   actual_field_namesrR   r   py_valuevalue_offsetss
         r   check_result+test_union_from_dense.<locals>.check_resulta  sl   T"',V[[-C-C'DF'D! %kk!n11'D 	 F!999{{7***{{%%)<<<<!X---(//0A0ABBBB##FNN3333||A%%f----||A%%e,,,,]]8$LL %]]8$LLO %$F %$$$s   #F'F,F=,
F:=
Gr   r   r   r   r  r  r  binintrW   rG  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  sh   XX.X>FHHYW-EHH*8EHH9GMHH2AM0H & ))%+15/;'*Cj&'V+0	2 ))%+15/+0%.: (-en&'V+02 ))-+15/68"X * ? (+Cj&("X+8: ))-+15/+0%.2r(D (-en&("X+8: --
"
"=-$*E?4C	r	'$ 
(
--
"
"5-&%/12h # 8C	r	'$ 
( ((0w?K
--
"
"5
GC	r	'$ 
(	' 
(	' 
(	' 
(	's$   I<.J#J<
J

J
J,c            	        ^^^ [         R                  " / SQSS9m[         R                  " / SQSS9m[         R                  " / SQSS9n [         R                  " / SQSS9n/ S	QmUUU4S
 jnU" [         R                  R                  U TT/5      SS/SS/U S9  U" [         R                  R                  U TT/SS/5      SS/SS/U S9  U" [         R                  R                  UTT/SS/S9SS/SS/US9  U" [         R                  R                  UTT/SS/SS/5      SS/SS/US9  [         R                  R                  UTT/5      n[        R
                  " [         R                  5         UR                  SS9  S S S 5        [         R                  R                  U TT/SS/S9n[        R
                  " [         R                  5         UR                  SS9  S S S 5        [        R
                  " [         R                  5         [         R                  R                  UTTSS  /5      nS S S 5        g ! , (       d  f       N= f! , (       d  f       Nr= f! , (       d  f       g = f)N)rQ      rR  rS  r  r  r  rR   rS   )r   r   r   r   r   r   r   r   r  r   r  r  c                   > U R                  SS9  U R                  5       T:X  d   e[        U R                  R                  5       Vs/ s H  nU R                  U   R
                  PM     nnXQ:X  d   eU R                  R                  S:X  d   eU R                  R                  U:X  d   eUR                  U R                  5      (       d   eU R                  S5      R                  T5      (       d   eU R                  S5      R                  T5      (       d   e[        R                  " [        R                  5         U R                    S S S 5        [        R                  " [        5         U R                  S5        S S S 5        [        R                  " [        5         U R                  S5        S S S 5        g s  snf ! , (       d  f       N|= f! , (       d  f       NY= f! , (       d  f       g = f)NTr  sparser   r   r   r   )r   r   rF   rT   r  r  r  r  r   r1  r.   r/   r   r  r  r  )	r<   r  r  r  r   r  rR   r   r  s	         r   r  ,test_union_from_sparse.<locals>.check_result  sv   T"!X---',V[[-C-C'DF'D! %kk!n11'D 	 F!999{{8+++{{%%)<<<<(//0A0ABBBB||A%%f----||A%%e,,,,]]2,,-NN .]]8$LL %]]8$LLO %$F .-$$$$s*   #F> G/G#G%
G
G"%
G3r   r   r   r   r  r  r  rW   rG  r   Tr  )r   r   r  from_sparser.   r/   r  r   )r  r  r  r"   rR   r   r  s       @@@r   test_union_from_sparser    s&   XX@#%FHH*9EHH*8EHH9GM0H( **565/B'*Cj&'V+02 **565/,15>;',en&'V+0	2 **=65/792h + @'*Cj&("X+8	: **=65/,15>,.85 (-en&("X+8: --
#
#MFE?
CC	r	'$ 
(
--
#
#EFE?02Bx $ 9C	r	'$ 
( 
r	'mm''ab	7JK 
(	' 
(	' 
(	' 
(	's$   0H:I&I:
I
I
I*c            	         [         R                  R                  [         R                  " / SQ[         R                  " 5       S9[         R                  " / SQ5      [         R                  " / SQ5      /5      n U R                  5       / SQ:X  d   e[         R                  R                  [         R                  " / SQ[         R                  " 5       S9[         R                  " / SQ[         R                  " 5       S9[         R                  " / SQ5      [         R                  " / S	Q5      /5      n U R                  5       / S
Q:X  d   eg )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    
--
#
#
rwwy1HH/0HH56	
C ==?;;;;
--
"
"
&RWWY7
&RXXZ8HH*+HH()	
C ==?FFFFr   c                     [         R                  R                  [         R                  " / SQ[         R                  " 5       S9[         R                  " / SQ5      [         R                  " / SQ5      /5      n U SS  R                  5       / SQ:X  d   e[         R                  " / SQSS9n[         R                  " / S	QS
S9n[         R                  " / SQSS9n[         R                  " / SQSS9n[         R                  R                  X4X/5      n U R                  5       n[        [        U 5      5       H9  n[        U[        U 5      5       H  nXU R                  5       XVU :X  a  M   e   M;     g )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   
--
#
#BHH\	$J%'XX.B%C%'XXl%;%=>C qr7+---XX.X>FHHYW-EHH*8EHH2AM
--
"
"5&
IC
--/C3s8_q#c(#A8%%'38333 $ r   Tr  check_array_constructionc                   U u  p4pV[        U[        R                  5      (       a  UR                  U:X  d   eUnO[        R                  " XVS9n[        U[        R                  5      (       a  UR                  U:X  d   eUnO[        R                  " X4S9nUR                  XaS9n	U	R                  SS9  U	R                  U5      (       d   eU(       a.  [        R                  " X6US9nUR                  U5      (       d   eg g )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    +/(Gh(BHH%%}}(((88H4 '288$$||w&&&'0[[[-F
OOO==""""  't<}}X&&&&  r   c            
         [         R                  " / SQSS9S[         R                  " / SQSS9[        R                  " 5       4[         R                  " / SQSS9S[         R                  " / SQSS9[        R                  " 5       4[         R                  " / SQSS9S[         R                  " / SQSS9[        R
                  " 5       4[         R                  " / SQSS9S[         R                  " / SQSS9[        R                  " 5       4/n U  H  n[        U5        M     [         R                  " S	/SS9S
S4[         R                  " S/SS9S
S4[         R                  " S/SS9S
S4[         R                  " S	/SS9SS4/nU HX  u  p4n[        R                  " X4S9n[        R                  " [        R                  5         UR                  U5        S S S 5        MZ     g ! , (       d  f       Ml  = f)Nr   i1r|   r   r  u4u1f8P  r   rK  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	+RXXZ	9	,d	+V	,d	+RYY[	:	,d	+V	,d	+RXXZ	9	,d	+V	,d	+RZZ\	;	J   
5'	&9	5'	&:	2$d	#Wh7	5'	&':	L '3"('0]]2??+KK! ,+ '3 ,+s   G  
G/	c                      [         R                  " / SQ5      n [        R                  " [        5         U R                  S 5        S S S 5        g ! , (       d  f       g = fr   )r   r   r.   r/   r0   r  r+   s    r   test_cast_noner-  G  s3    
((9
C	y	! 
"	!	!s   A
Ac                  "   [         R                  " SS/SS//5      n [        R                  " [        5         U R                  [         R                  " 5       5        S S S 5        [         R                  " SS/S//[         R                  " [         R                  " 5       5      5      n [        R                  " [        5         U R                  [         R                  " 5       5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr   r   r   rm   rQ  rR  rS  )	r   r   r.   r/   r  r  r   r  rR   r+   s    r   test_cast_list_to_primitiver/  O  s    
((QFQF#
$C	*	+ 
, ((T4L4&)288BIIK+@
AC	*	+ 
,	+	 
,	+ 
,	+s   %C/%D /
C= 
Dc                      [         R                  " / SS9n U R                  S:X  d   eU S S  nUR                  U 5      (       d   eU S S   g )Nr   rS   r   rn   )r   rs   
num_chunksr   )r"   r<   s     r   $test_slice_chunked_array_zero_chunksr2  Z  sO    


2F
+C>>QVF== Gr   c                     [         R                  " / SQ5      [         R                  " / SQ5      /n [         R                  " U 5      n[         R                  " 5       nUR	                  U5      n[         R                  " U  Vs/ s H  oDR	                  U5      PM     sn5      nUR                  U5      (       d   eg s  snf )Nr   rh  )r   r   rs   r   r  r   )rw  carrtargetr  xr=   s         r   test_cast_chunked_arrayr7  f  s    hhy!288I#67FF#DZZ\FYYvF @A @AH=="""" !As   B;c                     [         R                  " [         R                  " 5       [         R                  " 5       5      [         R                  " 5       4[         R                  " 5       [         R
                  " 5       44 HX  u  p[         R                  " / U S9nUR                  U5      n[         R                  " / US9nUR                  U5      (       a  MX   e   g NrS   )	r   r   r   r   r   r   rs   r  r   )typ1typ2r"   r<   r=   s        r   test_cast_chunked_array_emptyr<  p  s    bggi=ryy{K
BHHJ/1
 r-$##BT2}}X&&&&1r   c                      [         R                  " [        5         [        R                  " / /5      R
                  n S S S 5        [        W [        R                  5      (       d   eg ! , (       d  f       N0= fN)r.   warnsFutureWarningr   rs   ra   r)   ChunkedArray)r   s    r   test_chunked_array_data_warnsrB  {  sK    	m	$t$)) 
%c2??++++ 
%	$s   "A''
A5c            	         [         R                  " S/SS9S[         R                  " S/5      R                  SS9[        R                  " 5       4[         R                  " S/SS9S[         R                  " S/5      R                  SS9[        R
                  " 5       4[         R                  " S/SS9S[         R                  " S/5      R                  SS9[        R
                  " 5       4[         R                  " S/SS9[        R
                  " 5       [         R                  " S/5      R                  SS9[        R                  " 5       4/n U  H  n[        US	S
9  M     g )Nr%  r  r|   r   i2r&  r(  r   Fr  )re   r   astyper   rK  r'  r  r*  r	  s     r   test_cast_integers_unsaferG    s    
5'	&	5'		!	!	!	-rxxz	;	5'	&	5'		!	!	!	-ryy{	<	2$d	#W	2$		T		*BIIK	9	5'	&			5'		!	!	!	-rxxz	;	L E* r   c            	         [         R                  " / SQSS9S[         R                  " / SQSS9[        R                  " 5       4[         R                  " / SQSS9S[         R                  " / SQSS9[        R                  " 5       4[         R                  " / SQSS9S[         R                  " / SQSS9[        R                  " 5       4/n U  H  n[	        US	S
9  M     g )Nr   r         @r2  r|   r   r  r   )g      $g      4@g      >ir  iTr  )re   r   r   r   r  r)  r	  s     r   !test_floating_point_truncate_saferM    s     
/	3Y	)4	("((*	6	/	3Y	)4	("((*	6	&i	8)	.	-rxxz	;J D) r   c            	      H   [         R                  " / SQSS9S[         R                  " / SQSS9[        R                  " 5       4[         R                  " / SQSS9S[         R                  " / SQSS9[        R                  " 5       4[         R                  " / SQSS9S[         R                  " / SQSS9[        R                  " 5       4/n U  HC  n[        R
                  " [        R                  S	S
9   [        USS9  S S S 5        [        USS9  ME     g ! , (       d  f       N= f)N)r  g@r  r2  r|   r   r  r   )g333333$g3333334@gL>rK  	truncatedro   Tr  F)re   r   r   r   r.   r/   r  r  rF  s     r   #test_floating_point_truncate_unsaferP    s     
/	3Y	)4	("((*	6	/	3Y	)4	("((*	6	&i	8)	.	-rxxz	;L ]]2??+>T- ? 	E* >>s   1D
D!	c                  
   SSSSSS SS[        S5      /	n [        R                  " U [        R                  " 5       S	9nUR                  [        R                  " 5       :X  d   eUR                  5       SSSSSS S
S[        S5      /	:X  d   e[        U5      S:X  d   eSn[        R                  " [        R                  US9   [        R                  " / SQ[        R                  " 5       S	9nS S S 5        g ! , (       d  f       g = f)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_pythonrU    s    3Qj(E%LID
((4bjjl
+C88rzz|###==?r1c34'u7 7 7 7s8 2 3 3 3MD	rd	3hh~BJJL9 
4	3	3s    +C44
Dc                  `   [         R                  " S5      S [         R                  " S5      /[        R                  " SS5      / SQ[        R                  " 5       4[         R                  " S5      S [         R                  " S5      /[        R                  " SS	5      / S
Q[        R
                  " 5       4[         R                  " S5      S [         R                  " S5      /[        R                  " SS	5      / SQ[        R                  " 5       4/n U  H  n[        U5        [        USS9  M     g )N123456z-912345    rn   @ Ni'1234-9123   r7   i  Ni]123z-91{   NiTr  )decimalDecimalr   
decimal128r   rK  r   r  rL  s     r   test_decimal_to_int_safere    s     __X&gooi.HIMM"a #HHJ		
 __V$dGOOG,DEMM"b!HHJ		
 __U#T7??5+ABMM"b!GGI		
J( D) r   c                     [         R                  " [        R                  " S5      S [        R                  " S5      /5      [        R
                  " SS5      / SQ[        R                  " 5       4[        R                  " S5      S [        R                  " S5      /[        R
                  " SS5      / SQ[        R                  " 5       4[        R                  " S	5      S [        R                  " S
5      /[        R
                  " SS5      / SQ[        R                  " 5       4/n U  HE  n[        R                  " [        R                  SS9   [        U5        S S S 5        [        USSS9  MG     g ! , (       d  f       N= f)N1234567890123z-912345678901234rX  rn   )iqNirW  z
-912345678)i@Nir[  r\  )iN]   zInteger value out of boundsro   Fr  )re   r   rb  rc  r   rd  r   rK  r   r.   r/   r  r  )out_of_bounds_casesr	  s     r   'test_decimal_to_int_value_out_of_boundsrj    s    HH0 23 
 MM"a *HHJ		
 __X&gool.KLMM"a !HHJ		
 __V$dGOOG,DEMM"a GGI		
#2 $]]2??!>@T"@ 	EEJ $@ @s   E11
E?	c                     [         R                  " S5      S [         R                  " S5      /[        R                  " SS5      / SQ[        R                  " 5       4[         R                  " S5      S [         R                  " S5      /[        R                  " SS	5      / S
Q[        R
                  " 5       4[         R                  " S5      S [         R                  " S5      /[        R                  " SS	5      / SQ[        R                  " 5       4/n U  HF  nSn[        R                  " [        R                  US9   [        U5        S S S 5        [        USS9  MH     g ! , (       d  f       N= f)Nz	123456.21z
-912345.13rX  rn   rY  z1234.134z-9123.1r]  r7   r^  z123.1451z-91.21r`  -Rescaling Decimal value would cause data lossro   Fr  )rb  rc  r   rd  r   rK  r   r.   r/   r  r  )non_integer_casesr	  
msg_regexps      r   test_decimal_to_int_non_integerro    s    ,-
 MM"a #HHJ		
 __Z($	0JKMM"b!HHJ		
 __Z($0IJMM"b!GGI		
#2 "D
]]2??*=T" > 	E* " >=s   ;E
E,	c                  
   [         R                  " [        R                  " S5      S /[         R                  " SS5      S9n U R                  [         R                  " SS5      5      n[         R                  " [        R                  " S5      S /[         R                  " SS5      S9nUR                  U5      (       d   eSn[        R                  " [         R                  US9   U R                  [         R                  " S	S
5      5      nS S S 5        U R                  [         R                  " S	S
5      SS9n[         R                  " [        R                  " S5      S /[         R                  " S	S
5      S9nUR                  U5      (       d   e[        R                  " [         R                  SS9   U R                  [         R                  " SS5      5      nS S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nz1234.12r]  r7   rS   r   r   rl  ro   r   r   Fr  z1234.1z'Decimal value does not fit in precisionrn   r   )
r   r   rb  rc  rd  r  r   r.   r/   r  )r"   r<   r=   rn  s       r   test_decimal_to_decimalrq  (  sw   
((		#T*]]2r"C XXbmmB*+Fxx		#T*]]2q!H ==""""@J	rj	9"--1-. 
: XXbmmAq)X6Fxx		"D)]]1a H ==""""	rF
H"--1-.
H 
H 
:	9
H 
Hs   $'G#3'G4#
G14
Hc                     [         R                  " [        R                  S/5      n [        R
                  " [         R                  SS9   U R                  [         R                  " 5       SS9  S S S 5        g ! , (       d  f       g = f)Nr   rO  ro   Tr  )	r   r   re   nanr.   r/   r  r  r   r+   s    r    test_safe_cast_nan_to_int_raisesrt  D  sL    
((BFFB<
 C	rk	:$' 
;	:	:s   
$A77
Bc                     [         R                  " / SQSS9[        R                  " 5       [         R                  " / SQSS9[        R                  " 5       4[         R                  " / SQSS9[        R                  " 5       [         R                  " / SQSS9[        R                  " 5       4/n U  H  n[        U5        M     g )Nr   r!  r|   r#  rD  r(  )re   r   r   r   r'  r  rL  s     r   test_cast_signed_to_unsignedrv  L  s     
,d	+RXXZ	,d	+RXXZ	9	,d	+RYY[	,d	+RYY[	:J  r   c                     S /S-  n [         R                  " 5       n[         R                  " 5       [         R                  " 5       [         R                  " 5       [         R                  " 5       [         R
                  " 5       [         R
                  " S5      [         R                  " [         R                  " 5       5      [         R                  " [         R                  " 5       S5      [         R                  " [         R                  " 5       5      [         R                  " SS5      [         R                  " S5      [         R                  " SSS9[         R                  " SSS9[         R                  " S5      [         R                  " 5       [         R                  " [         R                  " S	[         R                  " 5       5      [         R                  " S
[         R                  " [         R                   " 5       5      5      [         R                  " S[         R"                  " 5       5      /5      [         R$                  " [         R                  " 5       [         R"                  " 5       5      /nU H  n['        XX45        M     [         R(                  " [         R                  " S	[         R
                  " S5      5      [         R                  " S
[         R"                  " 5       5      /[         R*                  R,                  S9[         R(                  " [         R                  " S	[         R
                  " S5      5      [         R                  " S
[         R"                  " 5       5      /[         R*                  R.                  S9/n[         R0                  " U [         R                  " 5       S9nU H7  n[2        R4                  " [6        5         UR9                  U5        S S S 5        M9     g ! , (       d  f       MK  = f)Nr   r7   rm   r]  r   r   r   zEurope/Parisr   r   r   )r  rS   )r   r   r   r  r  rR   r  rK  r   r   rd  r   r   month_day_nano_intervalr0  r1  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  sJ   fqjGggiG
	





	
		
		"

Q
bhhj!
b!
T
Te$
Tn-
D
""$
		288C,88C"'')!4588C-/ 	0 	bhhj"))+.'I* 'G>? 
 	"((3		".((3		,.46FF4J4J	L
"((3		".((3		,.46FF4K4K	M	I XXgBGGI.F]]./KK! 0/ //s   	O((
O7	c                  &   [         R                  " / SQ5      [         R                  " / SQ[         R                  " 5       S94[         R                  " S S/5      [         R                  " S S/[         R                  " 5       S94/n U  H  u  pUR	                  UR
                  SS9nUR                  SS9  UR                  U5      (       d   eUR	                  UR
                  SS9nUR                  SS9  UR                  U5      (       a  M   e   g )	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    	&	'	.rwwy	1	3	4/0	1	4-.RYY[	A	CE "X]]6T"}}X&&&&kk&++Dk9$'!!&)))) "r   c            	         [         R                  " / SQ[         R                  " [         R                  " 5       [         R                  " 5       5      S9n [         R                  " / SQ5      nU R
                  [         R                  " [         R                  " 5       [         R                  " 5       5      :X  d   eU R                  [         R                  " 5       5      U:X  d   e[         R                  " 5       [         R                  " 5       [         R                  " 5       4 H  n[         R                  " U[         R                  " 5       5      n[         R                  " / SQ[         R                  " U[         R                  " 5       5      S9nU R                  U5      U:X  a  M   e   [        R                  " [         R                  5         U R                  [         R                  " 5       5        S S S 5        g ! , (       d  f       g = f)Nr  rS   )r   r   r   r   r   rT   r  r   rK  r   r.   r/   r  )r"   r=   key_typer  s       r   test_cast_dictionaryr    s,   
((]]288:ryy{3C xx,-H88r}}RXXZ====88BIIK H,,, WWY
BHHJ7mmHbiik288 x5
 xx}((( 8 
r	' 
(	'	's   %G99
Hc                  n   [         R                  " / SQ[         R                  " 5       S9n [         R                  " / SQ[         R                  " 5       S9nU R	                  [         R                  " 5       5      R                  U5      (       d   eU R	                  S5      R                  U5      (       d   eg )Nr   rS   rR   )r   r   r  rR   viewr   r"   r=   s     r   	test_viewr    sv    
(((rwwy
9Cxx-BIIK@H88BIIK ''111188H$$X....r   c                  R   [         R                  " / SQ5      [         R                  " / SQ5      4[         R                  " / SQ5      [         R                  " / SQ5      4[         R                  " / SQ[         R                  " 5       5      [         R                  " / SQ[         R                  " 5       5      4/n U  Hj  u  pUR                  5       nUR	                  U5      (       d   e[         R
                  " U/5      R                  5       nUR	                  U5      (       a  Mj   e   g )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    	$	%rxx	':;	-	.	&	'	)	-r/@	A	&(9	:	<	E }}X&&&&!!3%(//1}}X&&&&	 r   c                  ~   [         R                  " / SQ5      [         R                  " / SQ5      [         R                  " / SQ[         R                  " 5       S94[         R                  " / SQ5      [         R                  " / SQ5      [         R                  " / SQ[         R                  " 5       S94[         R                  " / SQ[         R                  " 5       5      [         R                  " / SQ[         R                  " 5       5      [         R                  " / SQ[         R                  " 5       S94/n U  GH  u  pnU[         R                  " U/5      4 H  nUR                  5       nUR                  R                  [         R                  " [         R                  " SUR                  5      [         R                  " S	[         R                  " 5       5      /5      5      (       d   eUR                  S5      R                  U5      (       d   eUR                  S	5      R                  U5      (       a  M   e   GM     g )
Nr  r   r   r   r   rS   r  r  )r   r   r   r   counts)
r   r   r   rU   rs   value_countsrT   r   r0  r1  )r   r"   expected_valuesexpected_countsarr_inr<   s         r   test_value_counts_simpler    s   	$	%	)		)"((*	-	/ 
-	.	&	'	)"((*	-	/ 
-r/@	A	&(9	:	)"((*	-	/
E 27-oB,,cU34F((*F;;%%		288Hchh788Hbhhj9; <= = = = <<)00AAAA<<)00AAAA 5 27r   c                  X   [         R                  " / SQ5      n [         R                  " / SQ5      n[         R                  R                  X5      nUR	                  5       n[         R                  R                  U R	                  5       U5      nUR                  U5      (       d   eUR                  5       nUR                  S5      R                  U5      (       d   eUR                  S5      R                  [         R                  " / SQSS95      (       d   e[         R                  R                  [         R                  " / SS9U5      nUR	                  5       n[         R                  R                  [         R                  " / SS9[         R                  " / SS95      nUR                  U5      (       d   eUR                  5       nUR                  S5      R                  U5      (       d   eUR                  S5      R                  [         R                  " / SS95      (       d   eg )	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  r1  )r  r   r"   unique_resultr=   r<   s         r   (test_unique_value_counts_dictionary_typer    s   hh;<G67J



(
(
=CJJLM!!--gnn.>
KH))))F<<!((7777<<!(()')JKKKK



(
(
'"J0CJJLM!!--bhhr.H.0hhr.GIH))))F<<!((7777<<!(("7)CDDDDr   c                  $   [         R                  " / SQ5      [         R                  R                  [         R                  " / SQSS9/ SQ5      4[         R                  " / SQ5      [         R                  R                  [         R                  " / SQSS9SS	/5      4[         R                  " / SQ[         R                  " 5       S9[         R                  R                  [         R                  " / SQSS9[         R                  " SS	/[         R                  " 5       S95      4/n U  H  u  pUR                  5       nUR                  U5      (       d   e[         R                  " U/5      R                  5       nUR                  S
:X  d   eUR                  S5      R                  U5      (       d   e[         R                  " / UR                  S9R                  5       nUR                  S:X  d   eUR                  UR                  :X  a  M   e   g )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   r1  chunkrT   r  s       r   test_dictionary_encode_simpler    s   	*	+				'	'XX.W=
	 
-	.				'	'XXoG4U^
	 
-BOO4E	F				'	'XXoG4XXuen2??+<=
?	@E &&(}}X&&&&!!3%(::<  A%%%||A%%h////!!"3884FFH  A%%%{{hmm+++ r   c                     [         R                  " / SQ5      SS [         R                  R                  [         R                  " / SQSS9/ SQ5      4[         R                  " / SQ5      SS [         R                  R                  [         R                  " / S	QSS9S
S/5      4[         R                  " / SQ[         R                  " 5       S9SS [         R                  R                  [         R                  " / S	QSS9[         R                  " S
S/[         R                  " 5       S95      4/n U  GH  u  pUR                  5       nUR                  U5      (       d   e[         R                  " U/5      R                  5       nUR                  S:X  d   eUR                  UR                  :X  d   eUR                  S5      R                  U5      (       d   e[         R                  " / UR                  S9R                  5       nUR                  S:X  d   eUR                  UR                  :X  a  GM   e   [         R                  " / SQ5      nUR                  S5      R                  5         g )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   r1  rT   r  rY   )r   r"   r=   r<   r   s        r   test_dictionary_encode_slicedr    s   	*	+Ab	1				'	'XX(w7
	 
6	7"	=				'	'XXig.U^
	 
6(
**+B
0				'	'XXig.XXuen2??+<=
?	@E &&(}}X&&&&!!3%(::<  A%%%{{hmm+++||A%%h////!!"3884FFH  A%%%{{hmm+++  HH*+E	KKN$$&r   c                      [         R                  " / [         R                  " 5       S9n U R                  5       n[	        UR
                  5      S:X  d   eUR                  SS9  g )NrS   r   Tr  )r   r   r   r   r   r   r   )r"   encodeds     r   "test_dictionary_encode_zero_lengthr  +  sP    
((2BIIK
(C##%Gw!!"a'''$r   c                     [         R                  " / SQ5      [         R                  R                  [         R                  " / SQSS9/ SQ5      4[         R                  " / SQ5      [         R                  R                  [         R                  " / SQSS9SS	/5      4[         R                  " / SQ[         R                  " 5       S9[         R                  R                  [         R                  " / SQSS9[         R                  " SS	/[         R                  " 5       S95      4/n U  H-  u  pUR                  5       nUR                  U5      (       a  M-   e   g )
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  s   	*	+				'	'XX.W=
	 
-	.				'	'XXoG4U^
	 
-BOO4E	F				'	'XXoG4XXuen2??+<=
?	@E &&(}}X&&&& r   c                      [         R                  " [        R                  " / SQSS9[         R                  " S5      S9n [         R                  " / SQSS9nU R	                  S5      nUR                  U5      (       d   eg )Nr_  r   r|   r   rS   r  )r   r   re   time32r  r   r"   r=   r<   s      r   test_cast_time32_to_intr  G  sZ    
((288IW5		#(Cxx	-HXXd^F==""""r   c                      [         R                  " [        R                  " / SQSS9[         R                  " S5      S9n [         R                  " / SQSS9nU R	                  S5      nUR                  U5      (       d   eg Nr_  r   r|   r   rS   i8)r   r   re   time64r  r   r  s      r   test_cast_time64_to_intr  Q  sZ    
((288IW5		$)Cxx	-HXXd^F==""""r   c                      [         R                  " [        R                  " / SQSS9[         R                  " S5      S9n [         R                  " / SQSS9nU R	                  S5      nUR                  U5      (       d   eg r  )r   r   re   r   r  r   r  s      r   test_cast_timestamp_to_intr  [  s[    
((288IW5T*,Cxx	-HXXd^F==""""r   c            	         [         R                  " / SQSS9n U R                  S5      nUR                  S5      n[         R                  " [        R                  " SSS5      [        R                  " SSS5      [        R                  " SSS5      /5      R                  S5      nUR                  U5      (       d   eUR                  U 5      (       d   eg )	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    
((94
(Chhx Gll4 GdAq!dAq!dAq!  tH~	  >>)$$$$>>#r   c                      [         R                  " [        R                  " / SQSS9[         R                  " S5      S9n [         R                  " / SQSS9nU R	                  S5      nUR                  U5      (       d   eg r  )r   r   re   r   r  r   r  s      r   test_cast_duration_to_intr  u  s[    
((288IW5D)+Cxx	-HXXd^F==""""r   c                  V   [         R                  " / SQ[         R                  " 5       S9n U R                  [         R                  " 5       5      n[         R                  " / SQ[         R                  " 5       S9nUR                  U5      (       d   eSR                  S5      /n[         R                  " U5      nUR                  [         R                  " 5       :X  d   e[        R                  " [        5         UR                  [         R                  " 5       5        S S S 5        [         R                  " U[        R                  " S/5      [         R                  " 5       S9nUR                  [         R                  " 5       5      nUR                  S:X  d   eg ! , (       d  f       N= f)	N)s   foos   bars   bazrS   r      mañana	utf-16-leTrl  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EJrwwy)Hxx-BGGI>H??8$$$$!))+67Ohh/O299;...	z	"RYY[) 
# rxx7G&(iik3 ##BIIK0F!!! 
#	"s   8%F
F(c                      [         R                  " [        R                  " / SQSS9[         R                  " 5       S9n [         R                  " / SQSS9nU R	                  S5      nUR                  U5      (       d   eg )Nr_  r   r|   rS   r  )r   r   re   date64r  r   r  s      r   test_cast_date64_to_intr    sX    
((288IW5		%Cxx	-HXXd^F==""""r   c            	         [         R                   " SSSSSSS5      n [         R                   " SSS5      n[        R                  " X/SS9n[        R                  " U R                  5       UR                  5       /SS9nUR	                  U5      (       d   eUR                  S	5      nUS
   R                  5       US   R                  5       :X  d   eg )N  r   r  "   8   rZ  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XXtl2Fhh		TYY[1AG==!!!!KK E8>>uQx~~////r   c            
         [         R                  " / SQ/ SQ[         R                  " 5       S9n [         R                  " [        R                  " SSS5      [        R                  " SSS5      S [        R                  " SSS5      /[         R                  " 5       S9nU R                  U5      (       d   e[         R                  " [        R                  " SSS5      [        R                  " SSS	5      S [        R                  " SSS
5      /[         R                  " 5       S9nUR                  S:X  d   eUS	   R                  5       b   e[         R                  " / SQ/ SQ[         R                  " 5       S9n[         R                  " [        R                  " SSS5      [        R                  " SSS	5      S [        R                  " SSS
5      /[         R                  " 5       S9nUR                  U5      (       d   e[         R                  " [        R                  " SSS5      [        R                  " SSS	5      S [        R                  " SSS
5      /[         R                  " 5       S9nUR                  S:X  d   eUS	   R                  5       b   e[         R                  " / SQ/ SQ[         R                  " 5       S9nUR                  S
:X  d   eg )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    sQ   ,:!yy{,J hhdAq!dAq!dAq!	 
 IIKO _---- xxdAq!dAq!dAq!	!
 IIK &&!+++A$$&... =:!yy{,J hhdAq!dAq!dAq!	 
 IIKO _---- xxdAq!dAq!dAq!	!
 IIK &&!+++A$$&... 88L!9!#.L ""a'''r   )r   r   boolrz   r      r   r  r'  r7   rK  uint32r   r  r   rS  )r   g?g?doubler   r   rR   )rQ  rR  rS  r   )s   abcs   bcds   cdec                 z    [         R                  " XS9nUR                  U 5      R                  U5      (       d   eg r9  )r   r   r  r   )r   r   r"   s      r   test_cast_identitiesr    s1    " ((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                     [         R                  " XS9n[        SUR                  S-   5       H;  nUR	                  UR                  X45      5      nUR                  U5      (       a  M;   e   g )NrS   r   r   )r   r   rF   HIGHEST_PROTOCOLloadsdumpsr   )ra   r  pickle_moduler   protor<   s         r   test_array_pickler  	  s^     HHT$Eq-881<=$$]%8%8%FG||F#### >r   c                     [         R                  R                  / SQ/ SQ5      n[        SU R                  S-   5       H;  nU R                  U R                  X5      5      nUR                  U5      (       a  M;   e   g )Nr   r   r   r   )r   r   r   rF   r  r  r  r   )r  r   r  r<   s       r   test_array_pickle_dictionaryr  	  sh     **?OLEq-881<=$$]%8%8%FG||F#### >r   )suppress_health_check)	min_value	max_valuer   c                 x    U R                  U5      nU R                  U5      nUR                  U5      (       d   eg r>  )r  r  r   )r  r"   ra   restoreds       r   test_picklingr  	  s9     s#D""4(H::hr   c                    [         R                  " XS9nUR                  5        Vs/ s H  nUb  UR                  OSPM     nn[	        SUR
                  S-   5       H|  n/ nUR                  X6UR                  S9nUR                  XS9n	UR                  U	5      (       d   eU	R                  5        Vs/ s H  nUb  UR                  OSPM     n
nX:X  a  M|   e   g s  snf s  snf )NrS   r   rn   r   )buffer_callback)r^   )
r   r   r^   r_   rF   r  r  appendr  r   )ra   r  r  r   buf	addressesr  r^   pickledr<   result_addressess              r   test_array_pickle_protocol5r  )	  s     HHT$E!MMO-+S !$Q6+  - q-881<=%%eGNN%S$$W$>||F#### (.~~'79'7 ,/?CKKA'7 	 9,,, >-9s   C5C#c                     [         R                  " S[         R                  S9[         R                  " S[         R                  S9[         R                  " S[         R                  S9[         R                  " S[         R
                  S9[         R                  " S[         R                  S9[         R                  " S[         R                  S9[         R                  " S[         R                  S9[         R                  " S[         R                  S9[         R                  " S[         R                  S9[         R                  " S[         R                  S9[         R                  " S[         R                  S94 GH  n [        R                  " U 5      nU R                  UR!                  5       R                  :X  d   e[         R"                  R%                  XR!                  5       5        [         R"                  R%                  U S S US S R!                  5       5        [         R"                  R%                  U SS  USS  R!                  5       5        [         R"                  R%                  U SS USS R!                  5       5        GM     g )Nr7   r|   r   r   )re   rf   r   r   rK  r   r  r  r'  r   r   r2  r  r   r   r}   r]   rg   rh   )narrr"   s     r   test_to_numpy_roundtripr  ;	  s    			"BHH%
		"BHH%
		"BHH%
		"BGG$
		"BII&
		"BII&
		"BII&
		"BHH%
		"BJJ'
		"BJJ'
		"BJJ' hhtnzzS\\^11111


%%dLLN;


%%d2AhBQ0@0@0BC


%%d12hAB0@0@0BC


%%d1QiQq1B1B1DE%r   c                      [         R                  " S/[         R                  " 5       S9n [         R                  " [        R                  " S/SS95      nU R	                  U5      (       d   eg )N            rS   u8r|   )r   r   r  re   r   r  s     r   $test_array_uint64_from_py_over_ranger	  R	  sJ    
((G9299;
/Cxx'$78H::hr   c                     [         R                  " / SQSS9n [        R                  " U 5      n[        R                  " U 5      n[        R                  " U 5      US-   :X  d   eUR
                  S:X  d   eS Hq  n[        R                  " [         R                  " S[         R                  SS[         R                  S/US9US	9nUR
                  U:X  d   eUR                  S
:X  a  Mq   e   g )Nr  r   r|   r   )r  r2  r   r   r   rm   rS   r   )re   r   r   r   r   rT   rs  r   )r"   r@  r  r   r   s        r   )test_array_conversions_no_sentinel_valuesr  Y	  s    
((<v
.Cs#H88C=D??3HqL11199/xx!RVVQ2661!=RH!yyB!###	 0r   c                     [         R                  " / SQ[         R                  " S5      S9n [         R                  " [        R                  " SS9[        R                  " SS9S /[         R                  " S5      S9nU R                  U5      (       d   e[         R                  " / SQ[         R                  " S5      S9n [         R                  " [        R                  " SS	9[        R                  " S
S	9S /[         R                  " S5      S9nU R                  U5      (       d   e[         R                  " / SQ[         R                  " S5      S9n [         R                  " [        R                  " SS	9[        R                  " SS	9S /[         R                  " S5      S9nU R                  U5      (       d   e[         R                  " / SQ[         R                  " S5      S9n [         R                  " [        R                  " SS	9[        R                  " SS	9S /[         R                  " S5      S9nU R                  U5      (       d   eg )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   XXl38Fxxa0!a0$8YYs^-H ==""""XXl49Fxx48!48$@YYt_.H ==""""XXl49Fxx15!15t=YYt_.H ==""""XX(ryy?Fxx15!15t=YYt_.H ==""""r   c                  *    S n U " S5        U " S5        g )Nc                     [         R                  " S[        R                  /U SS9n[         R                  " SS /U S9nUR	                  U5      (       d   eg )Nr   TrT   from_pandasrS   )r   r   re   rs  r   r   s      r   _check_case=test_binary_string_pandas_null_sentinels.<locals>._check_case	  sG    hh"&&)E88Xt,26zz(####r   rR   r  r2   )r  s    r   (test_binary_string_pandas_null_sentinelsr  	  s    $ r   c                     S [         R                  /S4S[         R                  /S4S[         R                  /S4S[         R                  /S4S[         R                  /S4S[         R                  /[        R                  " S5      4S	[         R                  /[        R                  " 5       4[
        R                  " S
5      [         R                  /[        R                  " SS5      4S[         R                  /[        R                  " 5       4S[         R                  /[        R                  " 5       4S[         R                  /[        R                  " 5       4S[         R                  /[        R                  " S5      4S[         R                  /[        R                  " S5      4S[         R                  /[        R                  " S5      4S[         R                  /[        R                  " S5      4/n U  Hq  u  p[        R                  " [         ["        45         [        R$                  " XS9  S S S 5        [        R$                  " XS	S9nUR&                  US:w  a  SOS:X  a  Mq   e   g ! , (       d  f       NB= f)Nr   r   rR   r  rU   
large_utf8s   stringr   Tr   r  r   r   r   r   rS   r  r   )re   rs  r   rR   r  rb  rc  rd  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     
BFF	X&
BFF	V$
BFF	^,
BFF	\*
RVV	biil+
$
//#
	'r1)=>
RVVbiik"
RVVbiik"
RVVbiik"
RVVbiin%
RVVbiio&
RVVbll4()
RVVbkk$'(E" ]]J	23HHT# 4 $T:  ",QA>>> 33s    I11
I?	c                      SS K n U R                  SS[        R                  /[        S9n[
        R                  " U5      n[
        R                  " SS[        R                  /SS9nUR                  U5      (       d   eg )Nr   r   r   r|   T)r  )pandasIndexre   rs  r   r   r   r   )pdr   r<   r=   s       r    test_pandas_null_sentinels_indexr  	  s_     
((Aq"&&>(
0CXXc]FxxArvvD9H==""""r   c                     [         R                  " S [        R                  " SSS5      /SS9n [        R                  " U 5      n[        R                  " S [        R                  " SSS5      /[        R
                  " 5       S9nUR                  U5      (       d   eUR                  SS9n[         R                  R                  X5        UR                  U R                  :X  d   eg )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4O
LCXXc]Fxxx}}T1a89		LH==""""__E_2FJJ!!&.<<399$$$r   c                      [         R                  " S [        R                  " SSSSSS5      [        R                  " SSSSS	S5      /5      n U R                  [         R                  " S
S S9:X  d   eg )Nr!  rm   r  rW   r7     r   r   r   r   r   )r   r   r   rT   r   r+   s    r   test_array_from_naive_datetimesr%  	  sg    
(($1b"b1$1aA. C
 88r||DT2222r   )r}   rT   datetime64[s]r   datetime64[ms]r   zdatetime64[us]r   zdatetime64[ns]r   c           
         S [         R                   " SSSSSS5      [         R                   " SSSSS	S5      /n[        R                  " [        R                  " X S
95      n[        R                  " X!S9nUR	                  U5      (       d   e[        R                  " [        [        R                  " X S
95      5      nUR	                  U5      (       d   eg )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_datetimer)  	  s     	$1b"b1$1aA.D ((288D.
/Cxx(H::h ((434
5C::hr   c            
         S [         R                   " SSSSSS5      [         R                   " SSSSS	S5      /n [        R                  " U S
S9n[        R                  " U SS9n[        US S	 5      [        US	S  5      -   n [        R
                  " [        R                  SS9   [        R                  " U 5        S S S 5        g ! , (       d  f       g = f)Nr!  rm   r  rW   r7   r$  r   r   r   r&  r|   r'  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_raisesr+  	  s     	$1b"b1$1aA.D
 	_-A	$.	/B"1;bf%D	rI
K

K 
K 
Ks   "C
C)YMWhmpsfsasc                    [         R                  " SS5      /n[         R                  " SU 5      /nX-   n[        R                  " [        R
                  SU  3S9   [        R                  " U5        S S S 5        g ! , (       d  f       g = f)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_namesr:  	  sp     mmL#./Ffd34 $D	rGvN
P

P 
P 
Ps   A;;
B	)r   r   r   r   c                    [         R                  " SU 5      n[         R                  " SU 5      n[         R                  " SU 5      n[        R                  " XU/5      n[        R                  " XU/[        R                  " U 5      S9nUR
                  UR
                  :X  d   eUR
                  R                  U :X  d   eUS   US   :X  d   eg )NNaT2017-01-01 01:01:01.1111111112018-11-22 12:24:48.111111111rS   r   )re   r7  r   r   r   rT   r   )r   r   r6  ya1a2s         r   "test_array_from_list_of_timestampsrB  
  s     	eT"A
5t<A
5t<A	1)	B	1)",,t"4	5B77bgg77<<4a5BqE>>r   c                  2   [         R                  " S5      n [         R                  " S5      n[         R                  " S5      n[        R                  " [        R
                  SS9   [        R                  " XU/5        S S S 5        g ! , (       d  f       g = f)Nr<  r=  r>  z!Cannot mix NumPy datetime64 unitsro   r6  )r   r6  r?  s      r   +test_array_from_timestamp_with_generic_unitrD  
  sg    
eA
56A
56A	r@
B
!
B 
B 
Bs   &B
Bztimedelta64[s]ztimedelta64[ms]ztimedelta64[us]ztimedelta64[ns]c           	      \   S [         R                  " S5      [         R                  " SS5      /n[        R                  " X S9n[        R                  " U5      n[        U[        R                  5      (       d   eUR                  U:X  d   e[        R                  " X!S9nUR                  U5      (       d   eUR                  5       U:X  d   e[        R                  " [        [        R                  " X S95      5      nUR                  U5      (       d   eUR                  5       U:X  d   eg )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_timedeltarG  &
  s     	11a D XXd(F
((6
Cc2++,,,,88txx(H::h==?d""" ((434
5C::h==?d"""r   c                     [         R                  " S5      n U /[         R                  " U /5      4 H<  n[        R                  " [
        5         [        R                  " U5        S S S 5        M>     [         R                  " SS5      n U /[         R                  " U /5      4 H<  n[        R                  " [
        5         [        R                  " U5        S S S 5        M>     g ! , (       d  f       M  = f! , (       d  f       Mb  = f)Nr   r-  )re   timedelta64r   r.   r/   r  r   )tdra   s     r   .test_array_from_numpy_timedelta_incorrect_unitrK  C
  s     
	Brxx~&]]./HHTN 0/ '
 
3	Brxx~&]]./HHTN 0/ ' 0/ 0/s   C#?C5#
C2	5
D	binary_typec                    U =(       d    [         R                  " 5       n[        R                  " / SQSS9n[         R                  " X 5      nUR                  U:X  d   e[         R                  " / SQUS9nUR                  U5      (       d   e[        R                  " / SQ5      n[         R                  " X US9n[         R                  " / SQUS9nUR                  U5      (       d   e[        R                  " / SQS-  SS9S S S	2   n[        R                  " / SQS-  5      S S S	2   n[         R                  " X US9n[         R                  " / S
QUS9nUR                  U5      (       d   e[        R                  " / SQSS9n[         R                  " X 5      n[         R                  " / SQUS9nUR                  U5      (       d   eg )NabcdeabcrA   z|S5r|   rS   r  rn  rO  NrA   rn   r   rO  rA   NrO  rA   NrO  rA   rA   rA   rA   z|S0)r   rR   re   r   rT   r   )rL  expected_typer"   	arrow_arrr=   rl  s         r   test_array_from_numpy_asciirV  S
  st     .299;M
(('u
5C*I>>]***xx,=AHH%%%%88()D5Ixx+-@HH%%%% (('!+5
9#A#
>C88(1,-cc2D5IxxK*,HH%%%% ((<u
-C*Ixx=9HH%%%%r   c                  6   S [         R                  " SSSSSSSS9/n [        R                  " U [        R                  " 5       5      n[        U[        R                  5      (       d   eUR                  [        R                  " 5       :X  d   eS [        R                  " SS[         R                  " SSSSSS9[         R                  " SS9-  S-  /5      /n[        R                  " U5      nUR                  U5      (       d   eUR                  5       U:X  d   eg )Nr   )r   secondsmicrosecondsmillisecondsminuteshoursweeksr   r   )rX  rY  rZ  r[  r\  rY  r  )r   r   r   r   rx  r)   MonthDayNanoIntervalArrayrT   MonthDayNanor   r   ra   r"   rq  r=   s       r   "test_interval_array_from_timedeltarb  y
  s   11()1AQ	HID ((4335
6Cc277888888r113333
A",,QQ:;Q346 #,,!<= AEEF 	GHM xx&H::h==?m+++r   c                     SSK Jn   SSKJn  S U " SSSSSSSSSS9	/n[        R
                  " U5      n[        U[        R                  5      (       d   eUR                  [        R                  " 5       :X  d   eS [        R                  " SS[        R                  " SSSSS9[        R                  " SS	9-  S
-  /5      /n[        R
                  " U5      nUR                  U5      (       d   eUR                  5       R                  5       S U" SS[        R                  " SSSSS9[        R                  " SS	9-  SS9/:X  d   e[         R"                  " [$        5         [        R
                  " U" SSS9/5        S S S 5        [         R"                  " [$        5         [        R
                  " U" SSS9/5        S S S 5        [         R"                  " [$        5         [        R
                  " U" SSS9/5        S S S 5        [         R"                  " [$        5         [        R
                  " U" SS	9/5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       No= f! , (       d  f       g = f)Nr   )relativedelta
DateOffsetr   )	yearsmonthsr   rX  rY  r[  r\  r]  leapdaysrG  r   rX  rY  r[  r\  r^  r  rh  r   rY  nanosecondsiUUUrD   )rg  rh  i$I$)r]  r   l   	z )rX  rl  l   \kpz)dateutil.relativedeltard  r  rf  r   r   r)   r_  rT   rx  r`  r   r   r   r   r   r.   r/   rt   )rd  rf  ra   r"   rq  r=   s         r   &test_interval_array_from_relativedeltarn  
  s    5!AaaaqA	?@D ((4.Cc277888888r113333
Q",,QQ56aA",,!<=@DEF 	GHM xx&H::h==?!!#j%//89D%//Q?@ &'(() ) ) ) 
z	"
*OSABC 
#	z	"
*N#>?@ 
#	z	"
*&=)*, - 	. 
# 
z	"
*+;=>? 
#	" 
#	"	"	"	"	" 
#	"s0    III$I5
I
I!$
I25
Jc                     S S/n [         R                  " U [         R                  " 5       5      n[        U[         R                  5      (       d   eUR
                  [         R                  " 5       :X  d   eS [         R                  " / SQ5      /n[         R                  " U5      nUR                  U5      (       d   eUR                  5       U:X  d   eg )N)r   r   r  )	r   r   rx  r)   r_  rT   r`  r   r   ra  s       r   test_interval_array_from_tuplerp  
  s    *D ((4335
6Cc277888888r113333

#%M xx&H::h==?m+++r   c                  $   SSK Jn   S U " SSSSSSSSSS9	U " 5       /n[        R                  " U5      n[	        U[        R
                  5      (       d   eUR                  [        R                  " 5       :X  d   eS [        R                  " / SQ5      [        R                  " / SQ5      /n[        R                  " U5      nUR                  U5      (       d   eS U " SS[        R                  " SSSSS	9[        R                  " SS
9-  SS9U " SSSSS9/nUR                  5       R                  5       U:X  d   e[        R                  " U/5      R                  5       R                  5       n[        U5      S:X  d   e[        US   5      U:X  d   eg )Nr   re  r   )	rg  rh  r   rX  rY  r[  r\  r]  rl  )rG  r   l   E5IQ)r   r   r   rG  r   rj  r^  rk  )pandas.tseries.offsetsrf  r   r   r)   r_  rT   rx  r`  r   r   r   r   r   r   r  )rf  ra   r"   rq  r=   expected_from_pandasactual_lists          r   #test_interval_array_from_dateoffsetru  
  s   1111AQA	? 	D ((4.Cc277888888r113333
./
	"$M xx&H::hj%//89D%//Q?@ &'( 	!!!CE ==?!!#';;;; ((D6",,.557K{q   A#7777r   string_typec                    U =(       d    [         R                  " 5       nSS/nU GHS  n[        R                  " / SQUS9n[         R                  " X@5      nUR                  U:X  d   e[         R                  " / SQUS9nUR                  U5      (       d   e[        R                  " / SQ5      n[         R                  " X@US9n[         R                  " / SQUS9nUR                  U5      (       d   e[        R                  " / SQS	-  US9S S S
2   n[        R                  " / SQS	-  5      S S S
2   n[         R                  " X@US9n[         R                  " / SQUS9nUR                  U5      (       a  GMT   e   [        R                  " / SQSS9n[         R                  " X@5      n[         R                  " / SQUS9nUR                  U5      (       d   eg )Nz<U5z>U5rN  r|   rS   r  rn  rQ  rn   r   rR  rS  z<U0)r   r  re   r   rT   r   )rv  rT  dtypesr}   r"   rU  r=   rl  s           r   test_array_from_numpy_unicodery  
  s     ,2779MU^Fhh+59HHS.	~~...880}E))))xx,-HHSD9	88/mD)))) hh+a/u=ccBxx,q01#A#6HHSD9	88 *0=?))))) . ((<u
-C*Ixx=9HH%%%%r   c                      [         R                  " [        5         [        R                  " [
        R                  " / SQ5      [        R                  " 5       S9  S S S 5        g ! , (       d  f       g = fNr   rS   )r.   r/   r0   r   r   re   r   r2   r   r   !test_array_string_from_non_stringr|    s9     
y	!
)$299;7 
"	!	!s   ?A##
A1c                  B   [         R                  " S S /[        S9n [        R                  " U [        R                  " 5       S9nUR
                  S:X  d   e[         R                  " [         R                  [         R                  /SS9n [        R                  " [        5         [        R                  " U [        R                  " 5       S9  S S S 5        [        R                  " U [        R                  " 5       SS9nUR
                  S:X  d   eg ! , (       d  f       NJ= f)Nr|   rS   r   r   Tr  )
re   r   r   r   r   r   rs  r.   r/   r0   )rT  r"   s     r   test_array_string_from_all_nullr~    s     88T4L/D
((4biik
*C>>Q88RVVRVV$I6D	y	!
BIIK( 
"
((4biikt
<C>>Q 
"	!s   #)D
Dc                     [         R                  R                  / SQS/ SQS9n [        R                  " U 5      n[        R                  " / SQSS9nUR	                  U5      (       d   e[
        R                  " [        SS9   [        R                  " U [         R                  " / S	Q5      S
9  S S S 5        g ! , (       d  f       g = f)Nr  r   r  )r}   rl  r   r   Nrm   rS   z Cannot pass a numpy masked arrayro   )TFFFrn  )re   mar   r   r   r.   r/   rt   r  r<   r=   s      r   test_array_from_maskedr  +  s    	\5 
 
7BXXb\Fxxg6H??6""""	z)K	L
"((#>?@ 
M	L	Ls   ,B77
Cc                      [         R                  R                  S/SS9n [        R                  " U 5      n[        R                  " S/SS9nUR	                  U5      (       d   eg )Nr   r   r|   rS   )re   r  r   r   r   r  s      r   test_array_from_shrunken_maskedr  7  sN    	aS	(BXXb\Fxx'*H??6""""r   c                     Sn [         R                  " / SQ/ SQ/5      n[        R                  " [        U S9   [
        R                  " U5        S S S 5        [         R                  " S5      n[        R                  " [        U S9   [
        R                  " U5        S S S 5        g ! , (       d  f       N]= f! , (       d  f       g = f)Nz only handle 1-dimensional arraysr   rh  ro   r   r=  )rw   arr2darr0ds      r   "test_array_from_invalid_dim_raisesr  ?  sz    
,CHHi+,E	z	-
 
. HHQKE	z	-
 
.	-	 
.	- 
.	-s   B&B7&
B47
Cc                  j   [         R                  " S[        S9n [        R                  " U S S 2S4   5      n[        R                  " / SQ5      nUR                  U5      (       d   e[        R                  " U SS S 24   5      n[        R                  " SS/5      nUR                  U5      (       d   eg )N)r   r   r|   r   )TTTT)re   onesr  r   r   r   r;   s      r   test_array_from_strided_boolr  K  s     ''&
%CXXc!Q$i Fxx*+H==""""XXc!Q$i Fxxt%H==""""r   c            	         / SQ[         R                  " 5       [         R                  " S5      44/ SQ[         R                  " 5       [         R                  " 5       [         R                  " 5       [         R
                  " 5       44/ SQ[         R                  " 5       [         R                  " 5       44/ SQ[         R                  " 5       44/n U  H}  u  p[        R                  " U5      nU H\  nS [        R                  " SS/5      4 H;  n[         R                  " US S S2   UUS9nUS S S2   UR                  5       :X  a  M;   e   M^     M     g )N   abs   cd   efr   r   rI  )abcdefFrn  )r   rR   r   rK  r   r   r2  r   r  re   r   r   )pydatar   rx  nparraypatyperl  arrow_arrays          r   test_array_from_stridedr  W  s     
biil ;<	RWWY
BHHJ
CD	2::<67	bggi]+	F !((6"Frxx78 hhwss|V,02cc{k&;&;&==== 9  !r   c                      [         R                  " / SQS-  5      n U R                  S:X  d   eU R                  S:X  d   eg )N)TTNFNTr  i  )r   r   
true_countfalse_countr+   s    r   #test_boolean_true_count_false_countr  i  s:    
((84?
@C>>T!!!??d"""r   c                     [         R                  " / SQ[         R                  " 5       S9n U R                  5       n[	        U5      S:X  d   eUS   R                  5       nS[	        U5      s=::  a  S::  d   e   e[        U5      S   S:X  d   eU SS  nUR                  5       nUR                  S:H    [	        U5      S:X  d   eUS   R                  5       nS[	        U5      s=::  a  S::  d   e   e[        U5      S   S:X  d   e[        R                  " SUS   R                  5       5      S	:X  d   e[         R                  " [        R                  " / S
Q5      5      n U R                  5       n[	        U5      S:X  d   eUS   b   e[        R                  " SUS   R                  5       5      S
:X  d   e[         R                  " / SQ5      n U R                  5       n[	        U5      S:X  d   eUS   R                  5       n[        U5      S   S:X  d   eUS   R                  5       n[        R                  " SU5      S:X  d   eUS   R                  5       nUS:X  d   eg )Nr  rS   r   r   r   @   rW   hhxxh)r   r   rm   rh  3b)s   foo!Ns   bar!!r   rn   4i)r   rm   rm   r   s	   foo!bar!!)r   r   rK  r^   r   
to_pybytes	bytearrayrI  r0  unpackre   r   )r   r^   null_bitmapa_slicedr  r   s         r   test_buffers_primitiver  p  s/   
rxxz2AiikGw<1!*'')KK &B&&&&&[!!$
222 uH GOOqw<1!*'')KK &B&&&&&[!!$
222=='!*"7"7"9:iGGG
#$AiikGw<11:==wqz44679DDD
*+AiikGw<1!*'')K[!!$
222aj##%G==w'<777QZ""$F\!!!r   c                     [         R                  " SS/S / SQ/[         R                  " [         R                  " 5       5      S9n U R	                  5       n[        U5      S:X  d   eUS   R                  5       n[        U5      S   S:X  d   eUS   R                  5       n[        R                  " SU5      S	:X  d   eUS   R                  5       n[        U5      S   S
:X  d   eUS   R                  5       n[        R                  " SU5      S:X  d   e[         R                  " / SQ[         R                  " [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " 5       5      /5      S9n U R	                  5       n[        U5      S:X  d   eUS   R                  5       n[        U5      S   S:X  d   eUS   R                  5       n[        U5      S   S:X  d   eUS   R                  5       n[        R                  " SU5      S:X  d   eUS   R                  5       n[        U5      S   S:X  d   eUS   R                  5       n[        R                  " SU5      S:X  d   eg )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  r0  r  r1  r   rK  )r   r^   r  r  r   s        r   test_buffers_nestedr    s/   
1a&$0rxx
7KLAiikGw<1!*'')K[!!$
222aj##%G==w'<777!*'')K[!!$
222QZ""$F==F+>>>
/ii#rwwy!9!##rxxz!:!< =	>A iikGw<1!*'')K[!!$
222!*'')K[!!$
222QZ""$F=='5000!*'')K[!!$
222QZ""$F=='5000r   c            	         [         R                  " [        R                  " / SQSS95      n U R                  S:X  d   eU R	                  5       S:X  d   e[
        R                  " U 5      [        R                  U 5      U R                  -   :  d   e[         R                  " / SQSS9n U R                  S:X  d   eU R	                  5       S:X  d   e[
        R                  " U 5      [        R                  U 5      U R                  -   :  d   e[         R                  " SS	/S / S
Q/[         R                  " [         R                  " 5       5      S9n U R                  S:X  d   eU R	                  5       S:X  d   e[
        R                  " U 5      [        R                  U 5      U R                  -   :  d   e[         R                  " / SQ/SS///[         R                  " [         R                  " [         R                  " 5       5      5      S9n U R	                  5       S:X  d   eU R                  S:X  d   e[         R                  " SS	/SS/// SQS S//SS///[         R                  " [         R                  " [         R                  " 5       5      5      S9n U R                  SS	5      nUR                  S:X  d   eUR	                  5       S:X  d   eg )Nrh  r   r|      r   Nr   rS      r   r   r  >   B   )rn   r   rF  r   r7         r   rm   r      r  )r   r   re   nbytesget_total_buffer_sizer   	getsizeofr   
__sizeof__r  r   r   rY   )r   r@  s     r   test_total_buffer_sizer    s5   
)734A88u""$---==v003ahh>>>>
G,A88w""$///==v003ahh>>>>
1a&$0rxx
7KLA88r>>""$(======v003ahh>>>>
9+By)"'')9L0MNA""$(CCCC88r>>
Aq6Aq6"Yqc$:aWIFhhrxx	23	5A	
AB997777##%)IIIIr   c                      [         R                  " [         R                  " / SQ[         R                  " 5       S9[         R                  " / SQ[         R                  " 5       S9/5      n U R                  S:X  d   eg )Nr  rS   rh  rG  )r   rs   r   rK  r  )r   s    r   test_nbytes_sizer    sP    
"((<bhhjA((9288:>@ 	AA88r>>r   c                      [         R                  " [        5         [        [        R
                  " S/5      5        S S S 5        g ! , (       d  f       g = f)Nr   )r.   r/   r0   reprr   Tensorr2   r   r   $test_invalid_tensor_constructor_reprr    s,    	y	!RYYs^ 
"	!	!   !A
Ac                      [         R                  " [        5         [        R                  " 5         S S S 5        g ! , (       d  f       g = fr>  )r.   r/   r0   r   r  r2   r   r    test_invalid_tensor_constructionr    s#    	y	!
		 
"	!	!s	   :
A)offset_typer]  c           
      |   U" U" [         R                  " 5       5      5      n[         R                  " S / SQS SS/// / SS/S /SS///US9n[         R                  " / S	QU S9nU" [         R                  " 5       5      n[         R                  " / SQS SS// SS/S SS//US9n[         R                  " / S
QU S9n[         R                  " / SQ[         R                  " 5       S9nUR                  5       R	                  U5      (       d   eUR
                  R	                  U5      (       d   eUR                  R	                  U5      (       d   eUR                  5       R	                  U5      (       d   eUR
                  R	                  U5      (       d   eUR                  R	                  U5      (       d   eUR                  5       R                  5       R	                  U5      (       d   eUR                  R                  R	                  U5      (       d   eUR                  S5      R	                  U5      (       d   eg )Nr&   r   rm   rn   r   rF  r   rS   )r   r   r   r   r   rF  )r   r   r   rn   rn   rF  rF  r   	r   Nr   r   rm   rn   r   rF  r   T)r   r   r   flattenr   r  r   )	r  r]  r;  r  r  r:  r  offsets1arr0s	            r   test_list_array_flattenr    s    HHJ	
D
 88F	

 	F	
 F	
  !D" xx*=HRXXZ(D88	
A
	
A	
A D xx0{CH88 
 HHJD <<>  &&&&<<x((((;;d####<<>  &&&&<<x((((;;d####<<>!!#**40000;;$$T****<<$$T****r   	list_typer  c                     [         R                  " SS/S S S /SS//U S9n[         R                  " / SQ[         R                  " 5       S9nUR                  5       R	                  U5      (       d   eg )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    sm    
 ((F4LF		

 C xx*<H##%,,X6666r   )r  r  c                 J   [        USS 5      (       a7  [        R                  " SS/S S S /SS//US9n[        R                  " / SQU S9nO4[        R                  " / SQS / SS//US9n[        R                  " / S	QU S9nUR                  5       R	                  U5      (       d   eg )
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,,hhAtA	
  88O+> hhA	
  88O+>%%h////r   c                    U " [         R                  " 5       5      n[         R                  " S/SS// SQ/US9nUR                  5       S S n[         R                  " S5      US'   UR                  UR                  [        U5      X2R                  /S9nUR                  5       S/S / SQ/:X  d   eUR                  R                  5       / S	Q:X  d   eUR                  5       nUR                  S
S9  UR                  UR                  :X  d   eUR                  5       / SQ:X  d   eUR                  R                  5       / SQ:X  d   eg )Nr   r   r   rh  rS      r   r`  )r   r   r   r   Tr  )r   rm   rn   r   r   r   r   rm   rn   r   )r   r   r   r^   rJ  rL  rT   r   r   r   r  r  r   
value_type)r]  r  r"   r^   	flatteneds        r   %test_list_array_flatten_non_canonicalr  K  s    BHHJ
'C
((QC!Q+#
6CkkmBQGg&GAJ


388SXw**

NC==?sD)4444;;  "l222ID!>>S^^+++ L000 ::!%7777r   klassc                    U R                  / SQ/ SQS9nUR                  R                  5       / SQ:X  d   eUR                  R                  5       / SQ:X  d   eUSS  nUR                  R                  5       / SQ:X  d   eUR                  R                  5       / SQ:X  d   eUR	                  5       R                  5       / SQ:X  d   eUR                  S   R                  5       nUR                  S   R                  5       nUS   R                  5       UR                  X4 R                  5       s=:X  a  S/:X  d   e   eg )	N)r   r   rm   r   r  )r  r   r   )r   rm   r   rh  r   rm   r   r   r   r  r  r'   )r  r"   r  r   r'  s        r   %test_list_array_values_offsets_slicedr  _  s    

L9K

LC::!%7777;;  "l222
 qr7D;;  "&8888<<!!#y000<<>##%222QAQA7==?dkk!.88:AqcAAAAAr   c            	      .   [         R                  " [         R                  " [         R                  " 5       S5      S5      n [         R                  " SS/SS/SS//S SS /S SS	///U S
9nUR                  R                  U 5      (       d   e[         R                  " [         R                  " 5       S5      n[         R                  " SS/SS/SS/SS /S SS	//US
9nUR                  R                  U5      (       d   eUR                  5       R                  U5      (       d   e[         R                  " 5       n[         R                  " / SQUS
9nUR                  R                  U5      (       d   eUR                  5       R                  U5      (       d   eUR                  5       R                  5       R                  U5      (       d   eUR                  5       R                  U5      (       d   eUR                  S5      R                  U5      (       d   eg )Nr   r   r   rm   rn   r   rF  r   r   rS   )
r   r   r   rm   rn   r   rF  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   88BHHRXXZ+Q/D88FFF	

 	IF	
 D 99D!!!!88BHHJ"D88	
AAA	
D	4!Q D 99D!!!!<<>  &&&&88:D88 D 99D!!!!<<>  &&&&<<>!!#**40000<<>  &&&&<<$$T****r   c                     [         R                  " S/S/S//[         R                  " [         R                  " 5       SS9S9n U SS  R	                  5       [         R                  " S/[         R                  " 5       S9:X  d   eg )Nr   r   r   r  rS   )r   r   r  r   r  )r   s    r   -test_fixed_size_list_array_flatten_with_slicer    sb    HHqcA3_((2::<1=?E9"((A3RZZ\"BBBBr   c            	         [         R                  " [         R                  " 5       [         R                  " 5       5      n [         R                  " [         R
                  " S[         R                  " 5       SS9[         R
                  " S[         R                  " 5       5      /5      n[         R                  " SS/S//U S9nUR                  R                  R                  U5      (       d   eUR                  [         R                  " S	S
S.SSS.SSS./US9:X  d   eUR                  R                  [         R                  " / SQ5      5      (       d   eUR                  R                  [         R                  " / SQ[         R                  " 5       S95      (       d   e[         R                  R                  UR                  UR                  5      R                  [         R                  " S	S/S//5      5      (       d   e[         R                  R                  UR                  UR                  5      R                  [         R                  " S
S/S//[         R                  " [         R                  " 5       5      S95      (       d   e[         R"                  " [$        5         UR'                  5         S S S 5        g ! , (       d  f       g = f)NkeyFri  r   r  r  r  rS   r   r   )r  r   r   r   r   r   r   r   )r   r  r  r   r0  r1  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   	BHHJ	'B		288E2779uE88GRXXZ8: ;I
8X&
3"=A88==	****88rxxa a a ! 	   
 66==/2333377>>"((9288:>????<<##AIIqvv6==
3*se$%' ' ' '<<##AIIqww7>>
1a&1#RXXbhhj%9:< < < < 
*	+			 
,	+	+s   $J>>
Kc                  X   [         R                  " [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " 5       5      /5      n [         R
                  " / SQU S9nUR                  5       u  p#UR                  [         R                  " 5       :X  d   eUR                  [         R                  " 5       :X  d   eUR                  5       / SQ:X  d   eUR                  5       / SQ:X  d   eUSS  R                  5       u  p#UR                  5       SS	/:X  d   eUR                  5       S
S/:X  d   e[         R
                  " / SQU S9nUR                  5       u  p#UR                  5       / SQ:X  d   eUR                  5       / SQ:X  d   eUSS  R                  5       u  p#UR                  5       S S/:X  d   eUR                  5       S S
/:X  d   e[         R
                  " / SQU S9nUR                  5       u  p#UR                  5       / SQ:X  d   eUR                  5       / SQ:X  d   eUSS  R                  5       u  p#UR                  5       SS /:X  d   eUR                  5       SS
/:X  d   e[         R
                  " / SQU S9nUR                  5       u  p#UR                  5       / SQ:X  d   eUR                  5       / SQ:X  d   eUSS  R                  5       u  p#UR                  5       S S /:X  d   eUR                  5       S S/:X  d   eg )Nr6  r?  r*  rS   r  r,  r.  r/  r   r   rn   r.  r/  )r+  Nr-  r  )r,  Nr.  )r   N)r         @)Nr.  r~   )Nr  r.  r   r  )r  N)Nr,  )r   NN)NNr,  r,  )	r   r0  r1  rK  r2  r   r  rT   r   )r   r   xsyss       r   test_struct_array_flattenr    s   	BHHS"((*-HHS"**,/1 
2B
/b9AYY[FB77bhhj   77bjjl"""<<>Y&&&<<>_,,,qrU]]_FB<<>aV###<<>c3Z'''
+"5AYY[FB<<>\)))<<>----qrU]]_FB<<>dAY&&&<<>dC[(((
3"=AYY[FB<<>\)))<<>----qrU]]_FB<<>aY&&&<<>c3Z'''
/b9AYY[FB<<>_,,,<<>....qrU]]_FB<<>dD\)))<<>dC[(((r   c                  >   [         R                  " [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " 5       5      /5      n [         R
                  " / SQU S9nUR                  S5      nUR                  S5      nUR                  S5      nUR                  S5      nUR                  S5      nUR                  S5      n[        U[         R                  R                  5      (       d   e[        U[         R                  R                  5      (       d   eUR                  [         R
                  " / S	Q[         R                  " 5       S95      (       d   eUR                  [         R
                  " / S
Q[         R                  " 5       S95      (       d   eUR                  U5      (       d   eUR                  U5      (       d   eUR                  U5      (       d   eUR                  U5      (       d   eS [         R                  " 5       4 H7  n[        R                  " [        5         UR                  U5        S S S 5        M9     S H7  n[        R                  " [        5         UR                  U5        S S S 5        M9     S H7  n	[        R                  " [        5         UR                  U	5        S S S 5        M9     g ! , (       d  f       M  = f! , (       d  f       M  = f! , (       d  f       Mo  = f)Nr6  r?  r*  rS   r   r   r   r   r  r  r   r  zrA   )r   r0  r1  rK  r2  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    s   	BHHS"((*-HHS"**,/1 
2B
/b9A	
B	
B	
B	
B	
B	
Bb"&&++,,,,b"&&++,,,,99RXXibhhj9::::99RXXoBJJLABBBB99R===99R===99R===99R===
+]]9%GGM" &% , !]]:&GGM" '& ! "]]8$GGL! %$ " &% '& %$s$   K)K;
L)
K8	;
L
	
L	c                  l   [         R                  " [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " 5       5      /5      n [         R
                  " / SQU [         R
                  " / SQ5      S9nUR                  S5      nUR                  S5      nUR                  S5      nUR                  S	5      nUR                  S5      nUR                  S5      n[        U[         R                  R                  5      (       d   e[        U[         R                  R                  5      (       d   eUR                  [         R
                  " / S
Q[         R                  " 5       S95      (       d   eUR                  [         R
                  " / SQ[         R                  " 5       S95      (       d   eUR                  U5      (       d   eUR                  U5      (       d   eUR                  U5      (       d   eUR                  U5      (       d   eS [         R                  " 5       4 H7  n[        R                  " [        5         UR                  U5        S S S 5        M9     S H7  n[        R                  " [        5         UR                  U5        S S S 5        M9     S H7  n	[        R                  " [         5         UR                  U	5        S S S 5        M9     g ! , (       d  f       M  = f! , (       d  f       M  = f! , (       d  f       Mo  = f)Nr6  r?  r*  r  r  r   r   r   r   )r   Nrn   rS   )r,  Nr/  r  r  )r   r0  r1  rK  r2  r   _flattened_fieldr)   r   r  r  r   r.   r/   r0   r   r  r  s
             r   !test_struct_array_flattened_fieldr    s;   	BHHS"((*-HHS"**,/1 
2B
/bhh34	6A 
		A	B	
		A	B	
		B	B	
		B	B	
		C	 B	
		C	 Bb"&&++,,,,b"&&++,,,,99RXXl<====99RXX.RZZ\BCCCC99R===99R===99R===99R===
+]]9%}- &% , !]]:&}- '& ! "]]8$|, %$ " &% '& %$s$   'L $L!L$ 
L	
L!	$
L3	c                     [         R                  " 5       [         R                  " 5       [         R                  " 5       [         R                  " 5       [         R
                  " 5       [         R                  " 5       [         R                  " 5       [         R                  " 5       [         R                  " 5       [         R                  " 5       [         R                  " 5       [         R                  " 5       [         R                  " 5       [         R                  " 5       [         R                  " 5       [         R                   " 5       [         R                   " SS9[         R"                  " 5       /n [$        R&                  " X 5       H*  u  p [         R(                  " / US9R+                  U5        M,     g ! [         R,                  R.                  [         R0                  4 a     M`  f = f)Nrm   )lengthrS   )r   r   r  r   rK  r   r   r   r'  r  r  r  r2  r   r  r  rR   r   	itertoolsproductr   r  r   r  r  )r  t1t2s      r   test_empty_castr    s   
	


	








		
		
		









		
		
		
		
		%E* %%e3	 HHRb!&&r*	 4
 //A 		s   $F//.G! G!c                     [         R                  R                  / SQSS/5      n [         R                  R                  / SQU 5      nUR	                  5       SS/S//:X  d   e[         R                  R                  / SQSS/5      n [         R                  R                  / SQU 5      nUR	                  5       / SQ:X  d   eg )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    !!--i#sDH||''	8<HS#J#6666!!--i#sDH""..II $====r   c                  F   [         R                  " SS/5      n [         R                  " SS/[        S9n[        R                  " U [        R                  " 5       5      n[        R                  " U[        R                  " 5       5      n[        R                  " SS/5      nUR                  U5      (       d   eUR                  U5      (       d   e[         R                  " SS/[        S9n[        R                  " U [        R                  " 5       US9nUR                  U5      (       d   e[         R                  " SR                  S5      /5      n [        R                  " [        5         [        R                  " U [        R                  " 5       5        S S S 5        [        R                  " [        5         [        R                  " U [        R                  " 5       [         R                  " S/5      S9  S S S 5        g ! , (       d  f       Np= f! , (       d  f       g = f)Ntototatar|   Frn  r  r  )re   r   r   r   r   r   r  r  r.   r/   rt   )vecvec2r"   r  r=   rl  s         r   test_array_from_numpy_str_utf8r  H  sd    ((FF#
$C88VV$F3D
((3		
$C88D"))+&Dxx()H::h;;x     88UEN$/D
((3		$
/C::h ((Y&&{34
5C	z	"
biik" 
# 
z	"
biik%(9: 
#	" 
#	" 
#	"s   ,+H9?H
H
H large_typesFc           	         S/nS/n[        S5       Vs0 s H'  nUSS-  [        US-  5      R                  S5      -   _M)     nnUR                  5        VVs0 s H  u  p5X5R	                  S5      _M     nnnU[        S5       Vs/ s H
  o4US-     PM     sn-  nU[        S5       Vs/ s H
  nXcS-     PM     sn-  nU (       a  [
        R                  " 5       O[
        R                  " 5       nU (       a  [
        R                  " 5       O[
        R                  " 5       nX4X(44 GH/  u  p[        R                  " U	5      n[
        R                  " X5      nS nUR                  U
:X  d   eU (       aZ  [        U[
        R                  5      (       d   e[        [        U5      5       H  nX   nUR!                  5       X   :X  a  M   e   M  [        U[
        R"                  5      (       d   eUR$                  S:X  d   eSn[        UR$                  5       H:  nUR'                  U5      nU H   nUR!                  5       X   :X  d   eUS	-  nM"     M<     GM2     g s  snf s  snnf s  snf s  snf )
N   xr6  r7   i r  i      r   r   )rF   r   r  r  decoder   rU   rR   r  r  re   r   rT   r)   r1   r   r'   rA  r1  r  )r  r   unicode_valuesr   unique_stringsr6  unicode_unique_stringsrL  rv  r	  ex_typer"   rU  valvalue_indexr  s                   r   %test_numpy_binary_overflow_to_chunkedr!  c  sA    VFUN
 rA 	
4=!CBK$6$6v$>>>  
 +9*>*>*@B*@$!  &!11*@  B
uW~>~!a"f%~>>F %g0 .1 ."f5 .0 0N (3"//#		K%0"--/bggiK!/)79hhtnHHS*	~~(((i22223y>*lyy{dg--- + i9999 ''3...K9//0!* C99;$*;;;;1$K ! 1+9B>0s   .II!I')I,c                     Sn SnU //US-
  -  n[         R                  " U5      n[        U[         R                  5      (       d   e[	        U5      US-
  :X  d   eU //U-  n[         R                  " U5      n[        U[         R
                  5      (       d   e[	        U5      U:X  d   e[	        UR                  S5      5      US-
  :X  d   e[	        UR                  S5      5      S:X  d   eg )N   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxi    r   r   )r   r   r)   r1   r   rA  r  )kilobyte_stringtwo_megarT  r"   s       r   #test_list_child_overflow_to_chunkedr&    s     OH(Q,/D
((4.Cc288$$$$s8x!|###)D
((4.Cc2??++++s8xsyy|1,,,syy|!!!r   c                  X   [         R                  " / SQ/ SQS9n U [         R                  " 5       :X  d   e[         R                  " / SQ[        R                  " / SQ5      S9n U [         R
                  " 5       :X  d   e[         R                  " / / S9[         R
                  " 5       :X  d   eg )N)r5   r6   Nr   FFFTrn  r  )r   
infer_typer  re   r   r   )r   s    r   test_infer_type_maskedr*    s~     
.7
9B?? 
.HH%=>
@B?? =="%222r   c                  r   [         R                  " / SQ[        R                  " / SQ5      S9n U R                  [         R                  " 5       :X  d   e[         R                  " [        R                  " / SQSS9[        R                  " / SQ5      S9n U R                  [         R                  " 5       :X  d   eg )Nrm   Nrm   rJ  FTFTrn  r   r|   )r   r   re   rT   r   r+   s    r   test_array_maskedr.    s}     ((#!;<>C88rxxz!!! ((288,C8!;<>C88rxxz!!!r   c                     [         R                  " / SQ[        R                  " / SQ5      S9n U R                  5       / SQ:X  d   e[         R                  " / SQ[         R                  " / SQ5      S9n U R                  5       / SQ:X  d   e[         R                  " / SQ/ SQS9n U R                  5       / SQ:X  d   e[         R                  " / SQ/ SQS9n U R                  5       / SQ:X  d   e[        R
                  " [         R                  5         [         R                  " / SQ[         R                  " / SQ5      S9n S S S 5        [        R
                  " [         R                  5         [         R                  " / SQ/ SQS9n S S S 5        [        R
                  " [         R                  5         [         R                  " / SQ[        R                  " / SQ5      S9n S S S 5        [        R
                  " [         R                  5         [         R                  " / SQ[         R                  " / SQ[         R                  " / S	Q5      S9S9n S S S 5        [        R
                  " [         R                  5         [         R                  " / SQ[         R                  " / S
Q5      S9n S S S 5        [        R
                  " [        5         [         R                  " [        R                  " / SQ5      / SQS9n S S S 5        [        R
                  " [        5         [         R                  " [        R                  " / SQ5      [         R                  " / SQ5      S9n S S S 5        g ! , (       d  f       GN-= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNT= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       g = f)Nr,  r-  rn  )rm   Nrm   N)rm   Nrm   r   )rm   r   Nr   )rm   NNN)r   r   rJ  g      @r  )FNFTTFTF)r   r   re   r   r.   r/   r  r0   r+   s    r   test_array_supported_masksr1    s|    ((#!;<>C==?0000
((?!;<>C==?0000
((?24C==?0000
((?24C==?3333 
r((	)hhHH%9:< 
* 
r((	)hh02 
* 
r((	)hhHH%9:< 
* 
r((	)hhHH%?*,((3K*LNO 
*
 
r((	)hhHH%?@B 
*
 
y	!hhrxx 0168 
" 
y	!hhrxx 01HH%?@B 
"	!5 
*	) 
*	) 
*	) 
*	)
 
*	)
 
"	! 
"	!sV   .M%+M71.N	AN:.N-
.N?AO%
M47
N	
N
N*-
N<?
O
Oc                      SS K n [        R                  " U R                  SS/SSS9U R                  SS/SS	9S
9nUR	                  5       S S/:X  d   eg )Nr   r   r   r   )r  r}   TFr  r|   rn  )r  r   r   Seriesr   )r  r"   s     r   !test_array_supported_pandas_masksr4    sU    
((6==!Qc=AtUm6BDC==?tQi'''r   c                     [         R                  " S/[         R                  " S5      [        R                  " S/5      S9n S/U R	                  5       :X  d   e[         R                  " [        R                  " S/5      [         R                  " S5      [        R                  " S/5      S9nS/UR	                  5       :X  d   e[         R                  " [        R                  " S/5      [         R                  " S5      [        R                  " S/5      S9nS /UR	                  5       :X  d   e[         R                  " [        R                  " S/5      [         R                  " 5       [        R                  " S/5      S9nS/UR	                  5       :X  d   e[         R                  " [        R                  " S/5      [         R                  " 5       [        R                  " S/5      S9nS /UR	                  5       :X  d   e[        R                  " / SQS-  5      n[         R                  " U[         R                  " S5      [        R                  " / S	QS-  5      S9nS
X3S:H  '   / SQS-  UR	                  5       :X  d   eg )Nr  r   Fr  T)s   aaa   bbbs   cccr7   r   )FFFs   XXXr6  )r   r   rR   re   r   )masked_basicmaskedmasked_nullsnpar  s        r   test_binary_array_maskedr;    s    88WIBIIaL!#5'!24L9..0000 XXbhhy)		!88UG,.F9((****88BHHgY/biil!#4&!13L6\++---- XXbhhy)		88UG,.F9((****88BHHgY/biik!#4&!13L6\++---- ((+B.
/C((3RYYq\ ")>r)A BDKCv$R'K,A,A,CCCCr   c                     [         R                  " / SQ5      n [        R                  " U S S S2   [        R                  " S5      [         R                  " SS/5      S9nSS/UR	                  5       :X  d   e[         R                  " / SQ5      n [        R                  " U S S S2   [        R                  " S5      5      nSS/UR	                  5       :X  d   eg )Nr  r   Frn  r  r  )re   r   r   rR   r   )r  r  s     r   test_binary_array_stridedr=  "  s     hh,-G((73Q3<1 "% 8:K5>[224444 hh,-G((73Q3<16K5>[224444r   c            
         SS/[         R                  " SS/SS9[        S4SS/[         R                  " S/S//5      [        R                  S4/ SQ[         R                  " SS/5      [        R                  S	4[         R                  " SS/5      [         R                  " SS/SS9[        S4[         R                  " SS/5      [         R                  " S/S//5      [
        S4[         R                  " / SQ5      [         R                  " SS/5      [
        S	4/n U  H7  u  pp4[        R                  " X4S
9   [        R                  " XS9  S S S 5        M9     g ! , (       d  f       MK  = f)Nr   r   Fr   r|   zmust be boolean dtypezmust be 1D arrayr   zdifferent lengthro   rn  )re   r   r0   r   r  rt   r.   r/   )r   objrl  exrw   s        r   test_array_invalid_mask_raisesrA  0  s<    Q5%.4	+	- QE7UG,-	,	. 
BHHeU^,	,	. 
1a&	288UEN#>	+	- 
1a&	288eWug$67	'	) 
)	bhhu~6	'	)!E& $2]]2)HHS$ *) $))s   7E
E(	c                      [         R                  " [        5         [        R                  " [        S5      /5        S S S 5        g ! , (       d  f       g = f)Nr  )r.   r/   OverflowErrorr   r   r  r2   r   r   test_array_from_large_pyintsrD  K  s,    	}	%
#g,  
&	%	%r  c                     [         R                  " / SQ5      n [        R                  " U 5      n[        R                  " / SQSS9n[        R                  R                  X5        [        R                  " U SS9n[        R                  R                  X5        [        R                  " U SSS9n[        R                  R                  X5        [         R                  " / SQ5      n [        R                  " SS	[        R                  /S
S9n[        R                  " U 5      n[        R                  R                  X5        [        [        R                  5      [        S5      :  aj  [        R                  " U SS9n[        R                  R                  X5        [        R                  " U S
SS9n[        R                  R                  X5        O[        R                  " [        SS9   [        R                  " U SS9  S S S 5        [         R                  " / SQ5      n [        R                  " [        5         [        R                  " U S
SS9  S S S 5        [         R                  " / SQ5      n U R                  SS9nUR                  R                  (       d   e[         R                  " / SQ5      n U R                  [        R                  " S
5      SS9nUR                  S
:X  d   eg ! , (       d  f       N= f! , (       d  f       N= f)Nr   r   r|   F)copy)r}   rF  r~   r   r   r   z
2.0.0.dev0zUnable to avoid a copyro   T)r   r   re   r   rg   rh   rs  r   __version__r.   r/   rt   	__array__flags	writeabler}   r;   s      r   test_numpy_array_protocolrK  R  s    ((9
CZZ_Fxx	1HJJ!!&3 XXc&FJJ!!&3XXcu5FJJ!!&3 ((<
 CxxArvvi8HZZ_FJJ!!&3r~~!66#E*


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


%%f7 ]]:-EFHHSu% G hhy!]]:&HHS	6 ' ((9
C]]]%F<<!!!!
((9
C]])!44]@F<<9$$$ GF '&s   *K,:K=,
K:=
Lc                      " S S5      n U " [         R                  " / SQSS95      n[        R                  " U5      n[        R                  " / SQ[        R                  " 5       S9nUR	                  U5      (       d   e[        R                  " U[        R                  " 5       S9n[        R                  " / SQ[        R                  " 5       S9nUR	                  U5      (       d   e[        R                  " U[        R
                  " 5       S9n[        R                  " / SQ[        R
                  " 5       S9nUR	                  U5      (       d   e[        R                  " [        5         [        R                  " U[         R                  " / SQ5      S9  S S S 5        [        R                  " [        5         [        R                  " US	S
9  S S S 5         " S S5      nU" [         R                  " / SQSS95      n[        R                  " [        5         [        R                  " U5        S S S 5         " S S5      nU" [         R                  " / SQSS95      n[        R                  " U5      n[        R                  " / SQ[        R                  " 5       S9nUR	                  U5      (       d   e " S S5      n[         R                  " / SQSS9nU" Xw5      n[        R                  " U5      n[        R                  " / SQ/ SQ/[        R                  " 5       S9nUR	                  U5      (       d   eg ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN8= f)Nc                   $    \ rS rSrS rSS jrSrg)$test_array_protocol.<locals>.MyArrayi  c                     Xl         g r>  ra   selfra   s     r   __init__-test_array_protocol.<locals>.MyArray.__init__      Ir   Nc                 @    [         R                  " U R                  US9$ r9  )r   r   ra   rR  rT   s     r   __arrow_array__4test_array_protocol.<locals>.MyArray.__arrow_array__  s    88DIID11r   rP  r>  r7  r8  r9  r:  rS  rX  r;  r2   r   r   MyArrayrN    s    		2r   r[  r   r   r|   rS   rz   rn  r   r  c                   $    \ rS rSrS rSS jrSrg)+test_array_protocol.<locals>.MyArrayInvalidi  c                     Xl         g r>  rP  rQ  s     r   rS  4test_array_protocol.<locals>.MyArrayInvalid.__init__  rU  r   Nc                 B    [         R                  " U R                  5      $ r>  )re   r   ra   rW  s     r   rX  ;test_array_protocol.<locals>.MyArrayInvalid.__arrow_array__  s    88DII&&r   rP  r>  rZ  r2   r   r   MyArrayInvalidr]    s    		'r   rb  c                   $    \ rS rSrS rSS jrSrg)%test_array_protocol.<locals>.MyArray2i  c                     Xl         g r>  rP  rQ  s     r   rS  .test_array_protocol.<locals>.MyArray2.__init__  rU  r   Nc                 B    [         R                  " U R                  /US9$ r9  )r   rs   ra   rW  s     r   rX  5test_array_protocol.<locals>.MyArray2.__arrow_array__  s    ##TYYKd;;r   rP  r>  rZ  r2   r   r   MyArray2rd    s    		<r   ri  c                   $    \ rS rSrS rSS jrSrg)%test_array_protocol.<locals>.MyArray3i  c                     Xl         X l        g r>  data1data2)rR  rn  ro  s      r   rS  .test_array_protocol.<locals>.MyArray3.__init__  s    JJr   Nc                 X    [         R                  " U R                  U R                  /US9$ r9  )r   rs   rn  ro  rW  s     r   rX  5test_array_protocol.<locals>.MyArray3.__arrow_array__  s"    ##TZZ$<4HHr   rm  r>  rZ  r2   r   r   MyArray3rk    s    		Ir   rs  )re   r   r   r   r   r   r.   r/   rt   r0   rs   )r[  r"   r<   r=   rb  ri  rs  ri   s           r   test_array_protocolrt    s>   2 2 "((9G4
5CXXc]Fxx	
3H==""""XXc
+Fxx	
3H==""""XXc

-Fxx	

5H=="""" 
z	"
288$789 
#	z	"
1 
#' ' )7;
<C	y	!
 
"
< < 288IW5
6CXXc]Fxx	
3H==""""I I XXiw/F
6
"CXXc]FI 6RXXZHH==""""W 
#	"	"	" 
"	!s$   .,L?<MM#?
M
M #
M2c                   $    \ rS rSrS rSS jrSrg)ArrayWrapperi  c                     Xl         g r>  rP  rQ  s     r   rS  ArrayWrapper.__init__      	r   Nc                 8    U R                   R                  U5      $ r>  )ra   __arrow_c_array__)rR  requested_schemas     r   r{  ArrayWrapper.__arrow_c_array__  s    yy**+;<<r   rP  r>  )r7  r8  r9  r:  rS  r{  r;  r2   r   r   rv  rv    s    =r   rv  c                   $    \ rS rSrS rSS jrSrg)ArrayDeviceWrapperi  c                     Xl         g r>  rP  rQ  s     r   rS  ArrayDeviceWrapper.__init__  ry  r   Nc                 <    U R                   R                  " U40 UD6$ r>  )ra   __arrow_c_device_array__)rR  r|  kwargss      r   r  +ArrayDeviceWrapper.__arrow_c_device_array__  s    yy112BMfMMr   rP  r>  )r7  r8  r9  r:  rS  r  r;  r2   r   r   r  r    s    Nr   r  wrapper_classc                 b   U " [         R                  " / SQ[         R                  " 5       S95      n[         R                  " U5      nX!R                  :X  d   e[         R                  " U[         R                  " 5       S9nU[         R                  " / SQ[         R                  " 5       S9:X  d   eg r{  )r   r   r   ra   r   )r  r"   r<   s      r   test_c_array_protocolr    ss     <
=CXXc]FXX XXc
+FRXXibhhj9999r   c                      [         R                  " / SQ[         R                  " 5       S9n [        R                  " [
        SS9   U R                  SS9  S S S 5        U R                  S S9ng ! , (       d  f       N= f)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    sb    
((9288:
.C	H
 	$$:$6	
 	$$4$0A
 
s   A,,
A:c                      [         R                  " [         R                  " SS/5      [         R                  " SS/5      /5      n U R                  [         R                  " / SQ5      5      (       d   eg )Nr   r   r   rm   r  )r   concat_arraysr   r   )concatenateds    r   test_concat_arrayr    sT    ##	1a&	288QF+,.Lrxx56666r   c                     [         R                  " [        R                  5         [        R                  " [        R
                  " S/5      [        R
                  " S/5      /5        S S S 5        g ! , (       d  f       g = f)Nr   r   )r.   r/   r   r  r  r   r2   r   r   !test_concat_array_different_typesr    sE    	r	'
"((A3-2$89 
(	'	's   AA11
A?c                  b   [         R                  " [        SS9   [        R                  " S /5        S S S 5        [        R
                  " SS/SS//5      n [         R                  " [        SS9   [        R                  " U 5        S S S 5        g ! , (       d  f       Nc= f! , (       d  f       g = f)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
$  
H 

QFQF+
,C	y(F	G
 
H	G	 
H	G 
H	Gs   B/B 
B 
B.c                  *   [         R                  " / SQ[         R                  " SSS9S9n U R                  5       nUR                  R
                  c   e[         R                  " U /5      n U R                  5       nUR                  R
                  c   eg )Nr   r   zEurope/Brusselsr   rS   )r   r   r   r   dtr   rs   )r"   r   s     r   test_to_pandas_timezoner    sp     ((92<<8I#J
KCA4477


C5
!CA4477r   c                  .   [         R                  " S5      /[         R                  " S5      /[         R                  " S5      //n [        R                  " U 5      nUR	                  5       nUS   R
                  S:X  d   eUR                  5       U :X  d   eg )Nr   r   r   r   r  )re   r  r   r   r   r}   r   )r=   r"   r<   s      r   test_to_pandas_float16_listr    sq     A"**Q-2::a=/BH
((8
C]]_F!9??i'''==?h&&&r   c                  (   [         R                  " / SQ[         R                  " 5       S9n U R                  S5      nUR	                  5       / SQ:X  d   e[         R
                  " / SQ/ SQ/5      n U R                  S5      nUR	                  5       / SQ:X  d   e[         R                  " / SQ[         R                  " 5       S9n U R                  SS	S
9nUR	                  5       / SQ:X  d   eU R                  SSS
9nUR	                  5       / SQ:X  d   eg )N)rn   rF  #   rS   
descending)r  rF  rn   r   rh  )r   rn   rm   r   r   r   )rn   rF  r  Nat_end)null_placement)r  rF  rn   Nat_start)Nr  rF  rn   )r   r   r   sortr   rs   )r"   
sorted_arrs     r   test_array_sortr    s    
((:BHHJ
/C,'J!Z///


Iy1
2C,'J!%7777
((#"((*
5C,x@J!%5555,zBJ!%5555r   c                  Z   [         R                  R                  [         R                  " / SQ[         R                  " 5       S9[         R                  " / SQ5      /SS/S9n U R                  SSS9nUR                  5       S	S
S.SSS.SSS.SSS./:X  d   eU R                  5       nUR                  5       SSS.SSS.SSS.S	S
S./:X  d   e[         R                  R                  [         R                  " / SQ[         R                  " 5       S9[         R                  " / SQ5      /SS/[         R                  " / SQ5      S9nUR                  SSSS9nUR                  5       S S	S
S.SSS.SSS./:X  d   eUR                  SSSS9nUR                  5       S	S
S.SSS.SSS.S /:X  d   eg )N)rn   rF  rF  r  rS   )r5   carr6   foobarr   r   r  r  )byr  r  r   rF  r  r6   rn   r5   r  rm  r  )r  r  r  )r   ro  r   r   r   r  r   )r"   r  arr_with_nullss      r   test_struct_array_sortr  +  s   
..
$
$
RXXZ0
01& 3Z % C
 ,3/J!x eee	&    J!eeex 	&    ^^//
RXXZ0
011 3Zbhh'BC 0 EN
  $$Z % 9J!x ee	&     $$X % 7J!x ee	&   r   c                     [         R                  " / SQ5      n [         R                  " U 5      nX:X  d   e[         R                  " U [         R                  " 5       S9n[         R                  " / SQ[         R                  " 5       S9nX!:X  d   eUR                  [         R                  " 5       :X  d   e[         R                  " S/[         R                  " 5       S9n [
        R                  " [         R                  5         [         R                  " U [         R                  " 5       S9  S S S 5        [         R                  " S/[         R                  " 5       S9n[         R                  " U [         R                  " 5       SS9nX:X  d   e[         R                  " U [         R                  " 5       S9nX:X  d   eg ! , (       d  f       N= f)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(   
((9
CXXc]F== XXc
+Fxx	
3H==BHHJ&&& ((K=rxxz
2C	r	'
288:& 
( xx288:.HXXc
7F XXcr'='='?@F== 
(	's   )F;;
G	c                     U R                   R                  5       U:X  d   eU R                  R                  5       U:X  d   e[        U 5      U:X  d   eU R	                  5       U:X  d   eU R                  5       U:X  d   eg r>  )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%%'6111y>^+++))+>>>))+>>>r   c                 r    / SQn/ SQn[         R                  R                  XU 5      n[        X1USSS5        g Nr   rn   r7   r]  r   r   r   r   r]  rm   r   )r   RunEndEncodedArrayr   r  )ree_typer  r   r  s       r   +check_run_end_encoded_from_arrays_with_typer  |  s4    HF%%11(HMI)vr1a@r   c                    / SQn/ SQn[         R                  " XR                  5      n[         R                  " X R                  5      n[         R                  R                  X45      nUR                  U :X  d   e[        XQUSSS5        g 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    sl    HFXXh(=(=>N88F$7$78L%%11.OI>>X%%%)vr1a@r   c                     [        5         [        R                  " 5       [        R                  " 5       [        R                  " 5       4 H  n [        R
                  " 5       [        R                  " 5       [        R                  " 5       [        R                  " 5       4 H/  n[        R                  " X5      n[        U5        [        U5        M1     M     g r>  )	r  r   rK  r   r   r  r  run_end_encodedr  )r  r  r  s      r    test_run_end_encoded_from_arraysr    sw    /1RXXZ<99;
BIIKLJ)),CH7A3H= M =r   c            	         / SQn / SQn[         R                  " [         R                  " 5       [         R                  " 5       S9nSnS /nSnSnX/n[         R                  R                  X#UXVU5      n[        XUSSS5        [         R                  R                  X#/ XVU5      n[        XUSSS5        [         R                  R                  X#USUU5      n[        XUSSS5        [         R                  R                  X#S-
  UUSU5      n[        XXS-
  SS	5        [        R                  " [        5         [         R                  R                  X#S S /XVU5        S S S 5        [        R                  " [        5         [         R                  R                  X#UXVS 5        S S S 5        [        R                  " [        5         [         R                  R                  X#UXVU /5        S S S 5        [        R                  " [        5         [         R                  R                  X#US	Xg5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nv= f! , (       d  f       g = f)
Nr  r  )r  r  r]  r   rm   r   r   r   )
r   r  r   r   r  rL  r  r.   r/   rt   )	r  r   r  r  r^   r   rI  ra  r  s	            r   !test_run_end_encoded_from_buffersr    s   HF!!rxxzbhhjQHFfGJF!H%%228W3=3;=I )vr1a@%%228R3=3;=I )vr1a@%%228W35v3;=I )vr1a@%%228aZ3=q(LI)vz1aH	z	"
**8dD\+5x	I 
# 
z	"
**8W+5t	E 
# 
z	"
**8W+5z	K 
# 
z	"
**8W+,f	@ 
#	" 
#	" 
#	" 
#	" 
#	"s0   5%H3<#I$I#I&3
I
I
I#&
I4c                  |   / SQn / SQn[         R                  " [         R                  " 5       [         R                  " 5       5      n[         R                  R                  XU5      n/ SQn[         R                  " XBS9nUR                  U5      (       d   e[         R                  " [        R                  " U5      US9nUR                  U5      (       d   e[         R                  " [         R                  " 5       [         R                  " 5       5      n[         R                  " XFS9nUR                  U5      (       a   e[         R                  R                  XU5      nUR                  U5      (       d   e/ SQn / SQn[         R                  R                  XU5      n/ SQn[         R                  " XBS9nUR                  U5      (       d   e/ SQn / S	Qn[         R                  R                  XU5      n[         R                  " / S
Q5      n[         R                  " XBUS9nUR                  U5      (       d   eg )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   rK  r2  )	r  r   r  r=   r"   r<   
ree_type_2
expected_2rl  s	            r   )test_run_end_encoded_from_array_with_typer    s   HF!!"((*bhhj9H$$0019;H CXXc)F==""""XXbhhsm(3F==""""##BHHJ

=JXXc+F}}X&&&&&&2283=?J==$$$$HF$$0019;H  CXXc)F==""""H"F$$0019;H 88<=DXXct4F==""""r   c                     / SQn [         R                  " U [         R                  " [         R                  " 5       [         R                  " 5       5      5      n[
        R                  " U 5      n[
        R                  R                  UR                  SS9U5        [        R                  " [         R                  5         UR                  5         S S S 5        g ! , (       d  f       g = f)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0RXXZHIIxx}HJJ!!)"4"4E"4"JHU	r	' 
(	'	's   >C
C&c                     / SQn [         R                  " U [         R                  " [         R                  " 5       [         R                  " 5       5      5      nUR                  5       R                  5       U :X  d   e[        R                  " [         R                  5         UR                  SS9  S S S 5        g ! , (       d  f       g = f)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0RXXZHII '')S000	r	'40 
(	'	's   B88
Cc                    / SQn/ SQn/ SQnU R                  X4U5      nUR                  5       SS/SS/SS	/S S
//:X  d   eUR                  R                  5       U:X  d   eUR                  R                  5       U:X  d   eUR                  R                  5       U:X  d   eU" [
        R                  " S[
        R                  " 5       5      5      nU R                  X4X&5      nUR                  U:X  d   eUR                  R                  R                  S:X  d   eU" [
        R                  " 5       5      n[        R                  " [        5         U R                  X4X&S9  S S S 5        / SQn/ SQn/ SQnU R                  X4U5      nUR                  5       SS/SS/SS//:X  d   eUR                  R                  5       U:X  d   eUR                  R                  5       U:X  d   eUR                  R                  5       U:X  d   e/ nSS /nSS/nU R                  X4U5      nUR                  5       / S /:X  d   eUR                  R                  5       U:X  d   eUR                  R                  5       SS/:X  d   eUR                  R                  5       U:X  d   e/ nSS/nS S/nU R                  X4U5      nUR                  5       S / /:X  d   eUR                  R                  5       U:X  d   eUR                  R                  5       U:X  d   eUR                  R                  5       SS/:X  d   eSS/n/ SQn/ SQn[
        R                  " / SQ5      nU R                  X4X(S9nUR                  5       S/S S//:X  d   eUR                  R                  5       U:X  d   eUR                  R                  5       U:X  d   eUR                  R                  5       U:X  d   eg ! , (       d  f       GN= f)N)r   r   r   rm   rn   r   NrF  )r   r   rm   r   )r   r   r   r   r   r   r   rm   rn   r   rF  r  rS   r  )r   r   r   r  r   )r   r   r   )r   r   r   r  rn  )r   r   r   r  sizesr   r1  r   rT   r  r  rR   r.   r/   r0   r   )	r  r]  r   r  r  r   r  r<   rl  s	            r   test_list_view_from_arraysr    s   
 )FGE''?E??!Q!Q!Q$ CCCC<<!!#v---==""$///;;  "e+++ BHHVRXXZ8
9C((EF;;#;;""''6111 BIIK
(C	y	!##GF#E 
" FGE''?E??!Q!Q!Q 8888<<!!#v---==""$///;;  "e+++ F$iGFE''?E??T
***<<!!#v---==""$A...;;  "e+++ F!fG1IE''?E??r
***<<!!#v---==""$///;;  "q!f,,, VFGE88()D'''JE??!dQC 0000<<!!#v---==""$///;;  "e+++] 
"	!s   O""
O1c                 :   SS/n/ SQn/ SQn[         R                  " / SQ5      n[        R                  " [         R                  R
                  5         U R                  X4X%S9  S S S 5        / SQnU R                  X4X%S9nUSS  n[        R                  " [         R                  R
                  5         U R                  UR                  UR                  UR                  UR                  5       S9  S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr   r   )r   r   N)r   r   r   )FFTrn  )r   r   r   )r   r   r.   r/   r   r  r   r  r  r   rp  )r  r]  r   r  r  rl  r   array_slices           r    test_list_view_from_arrays_failsr  L  s     VFGE88()D 
rvv**	+##GF#F 
, G'''JE)K 
rvv**	+##!2!2[%8%8%: 	$ 	< 
,	+ 
,	+ 
,	+s   C;3?D;
D	
D)r  r]  r  c           
         [         R                  " / SQ[         R                  " 5       S9nU" [         R                  " 5       5      n[         R                  " / SQS SS// SS/S SS	//US9n[         R                  " / S
QUS9n[         R                  " / SQUS9nU" U" [         R                  " 5       5      5      n[         R                  " S / SQS SS/// / SS/S /SS	///US9n	[         R                  " / SQUS9n
[         R                  " / SQUS9nUR                  5       R	                  U5      (       d   eUR
                  R	                  U5      (       d   eUR                  R	                  U5      (       d   eUR                  R	                  U5      (       d   eU	R                  5       R	                  U5      (       d   eU	R
                  R	                  U
5      (       d   eU	R                  R	                  U5      (       d   eU	R                  R	                  U5      (       d   eU	R                  5       R                  5       R	                  U5      (       d   eU	R                  R                  R	                  U5      (       d   eU	R                  S5      R	                  U5      (       d   e/ SQn/ SQn/ SQnU R                  XU5      nUR                  5       R                  5       / SQ:X  d   e[         R                  " / SQ5      nU R                  XUUS9nUR                  5       R                  5       / SQ:X  d   eUR                  R                  5       / SQ:X  d   eg )Nr  rS   r&   r   rm   rn   r   rF  r   )r   r   r   rn   rn   rF  rF  )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   r(  rn  )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   rl  s                    r   test_list_view_flattenr  d  s    88 
 HHJD RXXZ(D88	
A
	
A	
A D xx-K@HXX++>FHHJ	
D
 88F	

 	F	
 F	
  !D" xxk:HXXoK8F<<>  &&&&<<x((((::V$$$$;;d####<<>  &&&&<<x((((::V$$$$;;d####<<>!!#**40000;;$$T****<<$$T**** FGE''?E==?$$&,666 88/0D''T'JE==?$$&)333<<!!#|333r   list_view_typec                     U R                  / SQ/ SQ/ SQS9nUSS  nUR                  R                  5       / SQ:X  d   eUR                  R                  5       SS/:X  d   eUR	                  5       R                  5       / SQ:X  d   eUR                  S	   R                  5       nUR                  S   R                  5       nUS	   R                  5       UR                  X4 R                  5       s=:X  a  S/:X  d   e   eg )
N)r   r   rm   )r   r   r   r  )r  r  r   r   r   rm   rh  r   r  )r  r   sliced_arrayr   r'  s        r   test_list_view_slicer    s     &&y A08J ' LE9L((*.@@@@))+1v555!++-:::Q%%'AQ%%'A?  "l&9&9!&>&H&H&JQqcQQQQQr   numpy_native_dtype)r(  r  r$  c                 P   [         R                  " U 5      R                  5       n[         R                  " SUS9n[        R
                  " [        R                  5         [        R                  " U5        S S S 5        [        R
                  " [        R                  5         [        R                  " U[        R                  " 5       S9  S S S 5        [        R
                  " [        R                  5         [        R                  " U/5        S S S 5        [        R
                  " [        R                  5         [        R                  R                  U/S/S9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N~= f! , (       d  f       g = f)Nr7   r|   rS   r   r  )re   r}   newbyteorderrf   r.   r/   r   r  r   r   ro  r   )r  numpy_swapped_dtyperi   s      r   test_swapped_byte_order_failsr    s   
 ((#56CCEYYr!45F 
r22	3
 
4 
r22	3
bjjl+ 
4 
r22	3
& 
4 
r22	3
""F8C5"9 
4	3 
4	3 
4	3 
4	3 
4	3s0   E$!)E56F:!F$
E25
F
F
F%c                  T   [         R                  " S5      n U R                  S5      n[        R                  " S[        R
                  S9n[        R                  " / SQ[        R                  S9nUR                  U5      nUR                  U5      n[        R                  R                  [        R
                  " 5       SS U/5      n[        R                  R                  [        R
                  " 5       SS U/5      n[        R                  R                  [        R
                  " 5       SXT/5      nUR                  5         UR                  S:X  d   eUR                  5       S U/:X  d   eUR                  [        R                   R"                  :X  d   eUR$                  SL d   e['        U5      S:X  d   eUR)                  SS5      R                  S:X  d   e[+        U5      (       d   e[-        U5      (       d   e[         R.                  " [0        5         UR3                  5         S S S 5        [         R.                  " [0        5         UR5                  5         S S S 5        [         R.                  " [0        5         UR7                  U5        S S S 5        [         R.                  " [0        5         UR9                  [        R:                  " 5       5        S S S 5        [         R.                  " [0        5         UR=                  [        R:                  " 5       5        S S S 5        [         R.                  " [0        5         UR?                  5         S S S 5        [         R.                  " [0        5         URA                  5         S S S 5        [         R.                  " [0        5         URC                  5         S S S 5        [         R.                  " [0        5         URE                  5         S S S 5        [         R.                  " [0        5         URF                    S S S 5        [         R.                  " [0        5         URH                    S S S 5        [         R.                  " [0        5         URK                  5         S S S 5        [         R.                  " [0        5         [M        U5       V	s/ s H  oPM       n	S S S 5        [         R.                  " [0        5         Xg:H    S S S 5        [         R.                  " [0        5         URO                  5         S S S 5        [         R.                  " [0        5         URQ                  5         S S S 5        [         R.                  " [0        5         URS                  5         S S S 5        [         R.                  " [0        5         URU                  S5        S S S 5        [         R.                  " [0        5         US     S S S 5        [         R.                  " [0        5         URW                  S/5        S S S 5        [         R.                  " [0        5         URY                  5         S S S 5        [         R.                  " [0        5         UR[                  / SQ5        S S S 5        [         R.                  " [0        5         UR]                  S5        S S S 5        [         R.                  " [0        5         UR_                  5         S S S 5        [         R.                  " [0        5         URa                  5         S S S 5        [         R.                  " [0        5         URc                  5         S S S 5        [         R.                  " [0        5         URe                  5         S S S 5        [         R.                  " [0        5         UR                  S	S
9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       GNj= f! , (       d  f       GNH= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN{= f! , (       d  f       GNZ= f! , (       d  f       GN== f! , (       d  f       GN = f! , (       d  f       GN= fs  sn	f ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNa= f! , (       d  f       GN?= f! , (       d  f       GN)= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN~= f! , (       d  f       GN]= f! , (       d  f       GN<= f! , (       d  f       GN= f! , (       d  f       g = f)Nzpyarrow.cudar   rm   r|   r0  Fr   )TTFFTr  )3r.   r   Contextre   rf   r   r   r  buffer_from_datar   r1   rL  r   rI  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  iterrp  is_nanr(   	fill_nulltake	drop_nullfilterindexr  rH  r]   r   )
cudactxra   validitycuda_data_bufcuda_validity_bufr"   r  r  r   s
             r   test_non_cpu_arrayr    s   ~.D
,,q/C99Qbhh'Dxx2"((CH((.M,,X6
((


Am/D
EC88  Q}0EFDXX**

A)9;N LLN::??;;=T=1111??b55:::::::s8q==99Q?!!Q&&&999s88O8 
*	+ 
,	*	+ 
, 
*	+ 
,	*	+ 
,	*	+ 
,	*	+	 
,	*	+

 
,	*	+ 
,	*	+ 
,	*	+!! 
,	*	+

 
,	*	+!!# 
,	*	+IIqI 
,	*	+ 
,	*	+ 
,	*	+

 
,	*	+ 
,	*	+a 
,	*	+A 
,	*	+! 
,	*	+ 
,	*	+

-. 
,	*	+		! 
,	*	+
 
,	*	+ 
,	*	+ 
,	*	+

 
,	*	+$ 
,	+q 
,	+	+	+ 
,	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+ 	 
,	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+sb  ^._ ?_3%_$:%_6`4`'`,`>a<a"+a4b,b7bbb/5c(cc%c77d	,dd-d?	e<e#/e5"ff.
^= 
_
_!$
_36
`
`
`),
`;>
a
a"
a14
bb
b
b,/
b>
c
c"%
c47
d	
d
d*-
d<?
e
e #
e25
f
f
f'r>  (  collections.abcr   r   rb  
hypothesisr/  hypothesis.strategies
strategiesstr  r.   r0  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(  r3  r>  rA  rC  rO  rW  r\  r  r   	list_viewlarge_list_viewrd  rf  rx  rz  r  r  r  r  r  r  r  LargeListArrayr  r  r  r  r  r  r  r  r  r  r  r  r  r  r+  r-  r/  r2  r7  r<  rB  rG  rM  rP  rU  re  rj  ro  rq  rt  rv  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   rK  r1  pickle_test_parametrizer  r  settingsHealthChecktoo_slowgivenrw  	all_typesintegersr  r  r  r	  r  r  r  r  r  r"  r%  r   r)  r+  r:  rB  rD  r   rG  rK  rU   binary_viewrV  rb  rn  rp  ru  r  r  rZ  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  slowlarge_memoryr!  r&  r*  r.  r1  r4  r;  r=  rA  rD  rK  rt  rv  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  $ %    "     
   ' ' , - -.B		; 4 4& 4 4  4 9 9" !89e}-4 . : 4 !894 : 4 4 4  : #8  #8L GGIGGIIIK	  

4'n
# 6 6&;R'B4:%7   2 2#  A A( "F84 ,HHbmmR\\2+=+=/? @7@7*5*L-^; 6* + ; ;, C CL 7 7 E*$ A<<2,,bmm<>?3?? 3?l A\\288&D  	A3K	At9qcS1#J! 
$	$ A\\288&D K	K@	#$ I  I X1Ih>&G TBLJG,4& $($ '2 " "8	#', + +( 
* 
* + +$:*4 "K "KJ +F/8 ( ( 	 	%"P* 0/'B,E4,4'@ '( # # # # # #  # # " "( # #	01(h ) !eAsmU1c]uQ|eArluQ|eArluQ|eArlo!"YYq\+,,  $! $
 !++11	"BHHJ/	rxxz"	2::<(	299;'	T
a&1#,-a&1#bhhj12%Sz	"BHHRYY[$9:a&1#RXXZ01a&1#**288:67%Sz	"BLL$=>	#IIrxxRXXZ0"((3		2LMN	P ( $ $$ 1==#9#9";<KK[[13  =   - -" F F,     $ $#6   ? ?: # # % %3 *bll3'(r||D)*r||D)*r||D)*	-    "    	" 			 	 !89
 : 
   *r{{3'(D)*D)*D)*	- # #,   IIKOONN	) 
& &@,, &@ &@R,  8  8F GGIMMONN	) 
 &  &F 8 8   A A # #   # # > >"# "" ""J 1F J J.
 =88:rxx0288:r}}2MNP4+P4+n HHRXXZHHRXXZ1%MM"((*'  	7	 	7 588:rxx
';<88:rxx
a'HI88:r}}RXXZ'@A88:r||BHHJ'?@88:r'9'9"((*'EF	HI0I04 ,rxx.GH8 I8& 2<<1B1B"CDB EB$!+HC0#)L"D -F>> ; ;4 6-% 7   -%` " "" 3 3 	" 	" /B /Bd ( ( D D@ 
5 
5 % %4! +% +%\ @# @#F= =N N <9K*LM	: N	:17:
   ' '6 +\4?AA>,@^ $# $#N   1 1 A++R\\:00"2D2DEGHB,HB,J A++R\\:00"2D2DEGH<H<* P++R\\288:F00"2D2DbhhjQSTG4TG4T )B,<,<b>S>S+TUR VR& -/AB: C :.R }E  	Bs   AU3 U3AU?U>AU?