+
    nDj                    6   ^ RI Ht ^ RIHt ^ RIt^ RIt ^ RIt^ RI	t	^ RI
t^ RIHt ^ RIHt ^ RIHt R tR tR tR	 t]	P.                  P                  R
 4       tR tR t]	P.                  P                  R 4       tR tR tR t]	P.                  P?                  R. RO]P@                  ! 4       3. RO]PB                  ! 4       3. RO]PD                  ! 4       3. RO]PF                  ! 4       3. ]PH                  ! ]PJ                  ! 4       4      3^^.^..]PH                  ! ]PB                  ! 4       4      3R.RRR..]PH                  ! ]PF                  ! 4       4      3. RO]PL                  ! ]PN                  ! R]PB                  ! 4       4      ]PN                  ! R]PF                  ! 4       4      .4      3.4      R 4       t(]	P.                  PR                  R 4       t*]	P.                  PR                  R 4       t+]	P.                  PR                  R 4       t,]	P.                  PR                  R 4       t-]	P.                  PR                  R 4       t.]	P.                  PR                  ]	P.                  P^                  R 4       4       t0R t1R t2R t3R t4R t5 ! R  R!4      t6 ! R" R#4      t7]	P.                  P?                  R$]6]7.4      R% 4       t8R& t9]	P.                  P?                  R$]6]7.4      R' 4       t:R( t;R) t<R* t=R+ t>R, t?R- t@R. tAR/ tBR0 tCR1 tDR2 tER3 tFR4 tGR5 tHR6 tIR7 tJR8 tKR9 tLR: tMR; tNR< tOR= tPR> tQR? tR]	P.                  P                  ]	P.                  P?                  R@. RO4      RA 4       4       tS]	P.                  P                  RB 4       tT]	P.                  P                  RC 4       tU]	P.                  P                  RD 4       tV]	P.                  P                  RE 4       tW]	P.                  P                  RF 4       tX]	P.                  P                  RG 4       tYRH tZRI t[RJ t\RK t]]	P.                  PR                  RL 4       t^]	P.                  P                  RM 4       t_RN t`RO taRP tb]	P.                  PR                  RQ 4       tc]	P.                  P?                  RR]P                  ]P                  .4      RS 4       tfRT tgRU thRV tiRW tjRX tkRY tlRZ tmR[ tn]	P.                  P?                  RR]P                  ]P                  .4      R\ 4       to]	P.                  P?                  RR]P                  ]P                  .4      R] 4       tp]	P.                  P?                  RR]P                  ]P                  .4      R^ 4       tqR_ tr]	P.                  P?                  RR]P                  ]P                  .4      R` 4       ts]	P.                  P?                  RR]P                  ]P                  .4      Ra 4       ttRb tuRc tv]	P.                  P?                  RR]P                  ]P                  .4      Rd 4       tw]	P.                  P?                  RR]P                  ]P                  .4      Re 4       txRf tyRg tzRh t{Ri t|Rj t}Rk t~Rl tRm t]	P.                  PR                  Rn 4       tRo tRp tRq tRr tRs tRt tRu t]	P.                  P?                  RR]P                  ]P                  .4      Rv 4       t]	P.                  P?                  RR]P                  ]P                  .4      Rw 4       t]	P.                  P?                  RR]P                  ]P                  .4      Rx 4       t]	P.                  P                  Ry 4       t]	P.                  P?                  Rz. RO. RO3]3. RO. RO3]EP                  3R{.R|R}..R~.RR..3]EP                  3.4      R 4       t]	P.                  P?                  RR]P                  ]P                  .4      R 4       t]	P.                  P?                  Rz. RO. RO3]EP                  3R{.R|R}..R~.RR..3]EP                  3.4      R 4       t]	P.                  P?                  Rz. RO. RO3]3. RO. RO3]EP                  3R{.R|R}..R~.RR..3]EP                  3.4      R 4       t]	P.                  P?                  RR]P                  ]P                  .4      R 4       t]	P.                  PR                  R 4       t]	P.                  PR                  R 4       tR t]	P.                  PR                  R 4       tR tR tR tR tR tR tR tR tR tR t]	P.                  EPF                  R 4       t]	P.                  EPF                  R 4       t]	P.                  EPF                  R 4       tR t]	P.                  EPF                  R 4       t]	P.                  EPF                  R 4       t]	P.                  EPF                  R 4       t]	P.                  EPF                  ]	P.                  P?                  RR]P                  ]P                  .4      R 4       4       t]	P.                  EPF                  R 4       t]	P.                  EPF                  R 4       t]	P.                  EP\                  R 4       t]	P.                  EP\                  R 4       t]	P.                  EP\                  R 4       t]	P.                  EP\                  R 4       t]	P.                  EP\                  R 4       t]	P.                  EP\                  R 4       t]	P.                  EP\                  R 4       t]	P.                  P?                  RR]P                  ]P                  .4      R 4       t]	P.                  P?                  RR]P                  ]P                  .4      R 4       t]	P.                  P                  ]	P.                  P?                  R]EPp                  ]EPr                  .4      R 4       4       t]	P.                  P                  ]	P.                  P?                  R]EPp                  ]EPr                  .4      R 4       4       t]	P.                  EPF                  R 4       t]	EPz                  R 4       t]	EPz                  R 4       t]	EPz                  R 4       t]	EPz                  R 4       t]	EPz                  R 4       t]	EPz                  R 4       t]	EPz                  R 4       t]	EPz                  R 4       t]	EPz                  R 4       t]	EPz                  R 4       t]	EPz                  R 4       t]	EPz                  R 4       tR tR tR tR tR tR#   ] d    Rt EL}i ; i)    )OrderedDict)IterableN)from_dataframe)Versionc                     \         P                  ! . \         P                  ! 4       R 7      p V P                  \         P                  ! 4       8X  g   Q hV P	                  4       . 8X  g   Q hV P                  4        \         P                  ! . RR 7      pVP                  \         P                  ! 4       8X  g   Q h\        P                  ! \        4      ;_uu_ 4        \         P                  ! . 4       RRR4       \         P                  ! . RO. R	O. R
O.4      p \        V P                  \        4      '       g   Q h\        ;QJ d&    R V P                   4       F  '       d   K   RM	  RM! R V P                   4       4      '       g   Q h\        ;QJ d*    R V P                  4        4       F  '       d   K   RM	  RM! R V P                  4        4       4      '       g   Q h\        V P                  4      ^8X  g   Q hV P!                  4       \#        R V P                  4        4       4      8X  g   Q h\$        P&                  ! V 4      \(        P+                  V 4      V P!                  4       ,           8  g   Q hV P,                  ^H8X  g   Q hV P                  4        \.        P0                  ! V 4      pV! 4       f   Q h? V! 4       e   Q hR#   + '       g   i     EL; i)typebinaryNc              3   j   "   T F)  p\        V\        P                  P                  4      x  K+  	  R # 5iN
isinstancepalib
Int64Array.0cs   & R/data/cameron/venvs/s3viz/lib/python3.14/site-packages/pyarrow/tests/test_table.py	<genexpr>,test_chunked_array_basics.<locals>.<genexpr>4   s$     EAz!RVV..//   13FTc              3   j   "   T F)  p\        V\        P                  P                  4      x  K+  	  R # 5ir   r   r   s   & r   r   r   5   s&     K9JAz!RVV..//9Jr   c              3   B   "   T F  pVP                  4       x  K  	  R # 5ir   )get_total_buffer_sizer   s   & r   r   r   7   s$      /K8I1 01/F/F/H/H8Is                           	   )r   chunked_arraystringr	   	to_pylistvalidater
   pytestraises
ValueErrorr   chunkslistall
iterchunkslenr   sumsys	getsizeofobject
__sizeof__nbytesweakrefref)datadata2wrs      r   test_chunked_array_basicsr?   "   s   BRYY[1D99		###>>r!!!MMORh/E::$$$	z	"	"
 
#  D
 dkk4((((3EE333EEEEEE3K9JK333K9JKKKKKt{{q   %%'3 /K8<8I/K ,K K K K==&"3"3#**,#- - - -;;)###MMO	T	B44<<- 
#	"	"s   K		K	c                  4   \         P                  ! . RO. RO. RO.4      p V P                  \         P                  ! 4       8X  g   Q h\	        V 4      ^	8X  g   Q h\	        V P
                  4      ^8X  g   Q h\         P                  ! . RO. RO. RO.4      p V P                  \         P                  ! 4       8X  g   Q h\	        V 4      ^	8X  g   Q h\	        V P
                  4      ^8X  g   Q h\         P                  ! . RO. RO. RO.\         P                  ! 4       R7      p V P                  \         P                  ! 4       8X  g   Q h\	        V 4      ^	8X  g   Q h\	        V P
                  4      ^8X  g   Q h\         P                  ! . RO. .4      p V P                  \         P                  ! 4       8X  g   Q h\	        V 4      ^8X  g   Q h\	        V P
                  4      ^8X  g   Q hRp\        P                  ! \        VR7      ;_uu_ 4        \         P                  ! . 4      '       g   Q h RRR4       \         P                  ! . \         P                  ! 4       R7      P                  \         P                  ! 4       8X  g   Q h\         P                  ! . .4      P                  \         P                  ! 4       8X  g   Q h\         P                  ! . .\         P                  ! 4       R7      P                  \         P                  ! 4       8X  g   Q hR#   + '       g   i     L; i)	r   r   z@cannot construct ChunkedArray from empty vector and omitted typematchNr   r    r$         @      @g      @)r   r(   r	   int64r3   r/   int8r,   r-   r.   r)   null)arrmsgs     r   test_chunked_array_constructionrK   D   sB   


 C
 88rxxz!!!s8q==szz?a


 C
 88rxxz!!!s8q==szz?a


 GGI	C
 88rwwy   s8q==szz?a



 C 88rxxz!!!s8q==szz?a
LC	z	-	-#### 
. BRYY[166"))+EEERD!&&"'')333RDryy{388BIIKGGG 
.	-s   LL	c                      \         P                  ! ^^.4      p \         P                  ! W .4      pVP                  4       p\         P                  ! . RO4      pVP	                  V4      '       g   Q hR# )r   Nr   r   r   r   )r   arrayr(   combine_chunksequals)rI   chunked_arrresexpecteds       r   test_combine_chunksrT   q   sW    
((Aq6
C""C:.K

$
$
&Cxx%H::h    c                     \         P                  ! . \         P                  ! 4       R 7      P                  4       \         P                  ! . \         P                  ! 4       R 7      8X  g   Q h\         P                  ! \         P                  ! . \         P                  ! 4       R 7      .\         P                  ! 4       R 7      P                  4       \         P                  ! . \         P                  ! 4       R 7      8X  g   Q hR# )r   N)r   r(   bool_rO   rN    rU   r   4test_chunked_array_can_combine_chunks_with_no_chunksrY   z   s    BRXXZ0??ARXX
F    	"288:	&'bhhjn"((2BHHJ78 8 8rU   c                  2   \         P                  ! . RO. RO. .4      p \        P                  ! V 4      pV P	                  4       p\        V\        P                  4      '       g   Q hVP                  R8X  g   Q h\        P                  ! W4      '       g   Q hR# )r   Nr   r    )r#   )	r   r(   npasarrayto_numpyr   ndarrayshapearray_equal)r<   arr1arr2s      r   test_chunked_array_to_numpyrc      sy    
 D
 ::dD==?DdBJJ''''::>>$%%%%rU   c            	         R p \         P                  ! \        V R7      ;_uu_ 4        \        P                  ! \        P
                  ! . RO4      \        P
                  ! . RO4      .4       RRR4       \         P                  ! \        V R7      ;_uu_ 4        \        P                  ! \        P
                  ! . RO4      .\        P                  ! 4       R7       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)zchunks must all be same typerA   Nr   r         ?       @      @)r,   r-   	TypeErrorr   r(   rN   float64)rJ   s    r   !test_chunked_array_mismatch_typesrk      s    
(C	y	,	,
HHYHH\"
 	 
- 
y	,	,
"((9-.RZZ\B 
-	, 
-	, 
-	,	,s   AC%AC8%C5	8D		c                      \         P                  ! . RO4      \         P                  ! . RO4      .p \         P                  ! V 4      p \        V 4      R8X  g   Q hR# )r   z<[
  [
    1,
    2,
    3
  ],
  [
    4,
    5,
    6
  ]
]Nr   r    )r   rN   r(   strr<   s    r   test_chunked_array_strro      sN    

D D!Dt9    rU   c                     \         P                  ! . RO4      \         P                  ! . RO4      .p \         P                  ! V 4      p V ^,          P                  4       ^8X  g   Q hV R,          P                  4       ^8X  g   Q hV R,          P                  4       ^8X  g   Q h\        P
                  ! \        4      ;_uu_ 4        V ^,           RRR4       \        P
                  ! \        4      ;_uu_ 4        V R,           RRR4       V \        P                  ! ^4      ,          P                  4       ^8X  g   Q hV R,          pVP                  4       ^^.8X  g   Q hV ^R pVP                  4       ^.8X  g   Q hV R,          pVP                  V P                  8X  g   Q hVP                  4       . 8X  g   Q hR#   + '       g   i     L; i  + '       g   i     L; i)	r   Nr   r!   N:c   rr   Nr   r    ii)r   rN   r(   as_pyr,   r-   
IndexErrorr[   int32r*   r	   )r<   
data_slices     r   test_chunked_array_getitemrx      si    	
D D!D7==?a8>>q   8>>q   	z	"	"Q 
#	z	"	"R 
# ""$)))cJ!aV+++aJ!aS(((eJ??dii'''!R''' 
#	"	"	"s   
F97
G9G		G	c                  "   \         P                  ! . RO4      \         P                  ! . RO4      .p \         P                  ! V 4      p V P                  \	        V 4      4      pVP
                  V P
                  8X  g   Q hVP                  4       . 8X  g   Q hV P                  \	        V 4      ^
,           4      pVP
                  V P
                  8X  g   Q hVP                  4       . 8X  g   Q h\         P                  P                  V .R.R7      pVP                  \	        V4      4      p\	        V4      ^ 8X  g   Q h\         P                  P                  V .R.R7      pVP                  \	        V4      ^
,           4      p\	        V4      ^ 8X  g   Q hR# )r   anamesNr   r    )	r   rN   r(   slicer3   r	   r*   Tablefrom_arrays)r<   rw   tabletable_slices       r   test_chunked_array_slicer      s=   

D D!DCI&J??dii'''!R'''CIN+J??dii'''!R'''HH  $u 5E++c%j)K{q   HH  $u 5E++c%j2o.K{q   rU   c                     \         P                  ! ^ .4      \         P                  ! . RO4      \         P                  ! . RO4      \         P                  ! . RO4      .p \         P                  ! V 4      p\        \	        ^
4      V4       F  w  r#W#P                  4       8X  d   K  Q h	  \        V\        4      '       g   Q hR# )r   Nr   r    r$   )r   rN   r(   ziprangert   r   r   )r<   rI   ijs       r   test_chunked_array_iterr      s    
!


	D 

4
 CE"Is#GGI~~ $ c8$$$$rU   c                     R  p R pV ! \         P                  ! . \         P                  ! 4       R7      \         P                  ! . \         P                  ! 4       R7      4       V! \         P                  ! . \         P                  ! 4       R7      \         P                  ! . \         P                  ! 4       R7      4       \         P                  ! ^ ^.\         P                  ! 4       R7      p\         P                  ! ^ ^.\         P                  ! 4       R7      p\         P                  ! ^ ^.\         P                  ! 4       R7      p\         P                  ! . RO\         P                  ! 4       R7      pV ! V.V.4       V! V.V.4       V ! W$.W$.4       V ! W$.V.4       V! WB.W$.4       \         P                  ! . \         P                  ! 4       R7      P                  R4      '       d   Q hR# )c                    \        V \        P                  4      '       d   T pM\        P                  ! V 4      p\        V\        P                  4      '       d   TpM\        P                  ! V4      pVP	                  V4      '       g   Q hVP	                  V4      '       g   Q hW#8X  g   Q hV\        V4      8w  g   Q hR # r   )r   r   ChunkedArrayr(   rP   rm   xarrsyarrsxys   &&  r   eq%test_chunked_array_equals.<locals>.eq   s    eR__--A  'AeR__--A  'Axx{{{xx{{{vvCF{{rU   c                 ^   \        V \        P                  4      '       d   T pM\        P                  ! V 4      p\        V\        P                  4      '       d   TpM\        P                  ! V4      pVP	                  V4      '       d   Q hVP	                  V4      '       d   Q hW#8w  g   Q hR # r   )r   r   r   r(   rP   r   s   &&  r   ne%test_chunked_array_equals.<locals>.ne  s{    eR__--A  'AeR__--A  'A88A;;88A;;vvrU   r   N)r   r   r   r   )r   r(   rv   rF   rN   rP   )r   r   rz   br   ds         r   test_chunked_array_equalsr      sL    r,	,.r,	,. 	!Qbhhj)A
!Qbhhj)A
!Qbhhj)A
BHHJ/AsQCLsQCLvvvsOvv 4;;DAAAAArU   rz   r   r   c                 l   . pV '       d:   VP                  \        P                  ! V R ,          VR7      4       V R,          p KA  \        P                  ! W1R7      pVP	                  4        VP                  VP                  V4      4      pVP	                  4        VP                  V4      '       g   Q hR# )Nr   Nr   r   NNN)appendr   rN   r(   r+   loadsdumpsrP   )r<   typpickle_modulearraysrN   results   &&&   r   test_chunked_array_pickler   (  s     F
bhhtBxc23BxV.E	NN  !4!4U!;<F
OO==rU   c                     ^ RI p \        P                  ! . RO4      .p\        P                  ! VR.R7      pVP	                  ^ 4      p\        V\        P                  4      '       g   Q hVP                  4       p\        W@P                  4      '       g   Q hVP                  R8X  g   Q hV^ ,          R8X  g   Q hVP                  R8X  g   Q hR# )r   Nrz   r{   r   r   r"   
   )r"   )pandasr   rN   r   columnr   r   	to_pandasSeriesr_   name)pdr<   r   colseriess        r   test_chunked_array_to_pandasr   B  s     	$%D HHT#'E
,,q/Cc2??++++]]_Ffii((((<<4!9;;#rU   c                     ^ RI p ^ RIHp \        P                  ! . R	O4      \        P                  ! V P                  . R
O4      4      \        P                  ! V P                  R^R7      4      \        P                  ! V P                  R^RR7      4      \        P                  ! . R	O\        P                  ! R4      4      \        P                  ! . R	O\        P                  ! RR4      4      3 F  p\        P                  ! RV/4      pVP                  R4      P                  4       pVP                  R8X  g   Q hV P                  VP                  4       RR7      pVP                  WE4       K  	  R# )r   N2012)periodszEurope/Brussels)r   tzmsr   )r   r   rz   r   rz   )r   pandas.testingtestingr   rN   Categorical
date_range	timestampr   r   r   r   r   assert_series_equal)r   tmr<   r   r   rS   s         r   *test_chunked_array_to_pandas_preserve_namer   S  s     HHYHHR^^O45HHR]]61]56HHR]]619J]KLHHYT 23HHYT3D EFH &$(f%//1{{f$$$99T^^-F9;
v0HrU   c                     ^ RI p V P                  V P                  ^ ^
^4      R7      p\        P                  ! V4      pVP                  4       pVP                  ^
8X  g   Q hVP                  R8X  g   Q hVP                  R8X  g   Q hVP                  P                  VP                  4      '       g   Q hV P                  V P                  ^ ^
^4      R7      p\        P                  ! V4      pVP                  4       pVP                  ^8X  g   Q hVP                  R8X  g   Q hVP                  R8X  g   Q hVP                  P                  VP                  4      '       g   Q hR# r   N)index)r   r   )r!   r   )
r   	DataFrame
RangeIndexr   r   r   num_rowsr_   r   rP   )r   r<   r   r   s       r   .test_table_roundtrip_to_pandas_empty_dataframer   g  s   
 <<bmmAr15<6DHHTNE__F>>R::   <<7"""<<tzz****<<bmmAr15<6DHHTNE__F>>Q::<<6!!!<<tzz****rU   c                     ^ RI p V P                  V P                  ^ ^
^4      R7      p\        P                  P                  V4      pVP                  4       pVP                  ^
8X  g   Q hVP                  R8X  g   Q hVP                  R8X  g   Q hVP                  P                  VP                  4      '       g   Q hV P                  V P                  ^ ^
^4      R7      p\        P                  P                  V4      pVP                  4       pVP                  ^8X  g   Q hVP                  R8X  g   Q hVP                  R8X  g   Q hVP                  P                  VP                  4      '       g   Q hR# r   )r   r   r   r   RecordBatchfrom_pandasr   r   r_   r   rP   )r   r<   batchr   s       r   4test_recordbatch_roundtrip_to_pandas_empty_dataframer     s+   
 <<bmmAr15<6DNN&&t,E__F>>R::   <<7"""<<tzz****<<bmmAr15<6DNN&&t,E__F>>Q::<<6!!!<<tzz****rU   c                  2   ^ RI p ^ RIHp V P                  R^^.RRR./4      p\        P
                  ! V4      pVP                  P                  4       P                  4       pVP                  R8X  g   Q hVP                  WBP                  R,          4       R# )r   Nrz   r   g?g?Nr   Nr   r   )r   r   r   r   r   r   schemaempty_tabler   r_   assert_frame_equaliloc)r   r   dfr   r   s        r   test_to_pandas_empty_tabler     sy     	sQFC#s4	5BHHRLE\\%%'113F<<6!!!&''"+.rU   c                     \         P                  ! ^ .4      \         P                  ! . R	O4      .p \         P                  ! V 4      p\        P                  ! V4      pVP                  4       . R
O8X  g   Q hVP                  \        P                  ! R4      8X  g   Q h\        P                  ! VRR7      pVP                  4       . RO8X  g   Q h\         P                  ! ^R.4      \         P                  ! . R	O4      .p \         P                  ! V 4      p\        P                  ! V4      pVP                  4       pV^ ,          R8X  g   Q h\        P                  ! V^,          4      '       g   Q hVR,          . RO8X  g   Q hVP                  \        P                  ! R4      8X  g   Q h\         P                  P                  \         P                  ! . RO4      \         P                  ! . RO4      4      p\         P                  ! WD.4      p\        P                  ! V4      pVP                  \        P                  ! R4      8X  g   Q hVP                  4       . RO^,          8X  g   Q hR# )r   rF   rm   dtypeNrf   r   rj   r7   r   )r   r   r   r   )0123re   )r   r   r   r   r   rz   r   r   )rz   r   r   rz   r   )
r   rN   r(   r[   r\   tolistr   isnanDictionaryArrayr   )r<   rQ   np_arrelementsrI   s        r   test_chunked_array_asarrayr     s    	!
D ""4(KZZ$F==?l***<<288G,,,, ZZ51F==?2222 	!T
D ""4(KZZ$F}}HA;"88HQK    B<<'''<<288I.... 


(
(
!288O#<>C""C:.KZZ$F<<288H----==?7!;;;;rU   c            	         \         P                  ! \         P                  ! R \         P                  ! 4       4      \         P                  ! R\         P                  ! 4       4      .4      p \         P
                  ! . ROV R7      p\         P                  ! V4      pVP                  4       w  r4VP                  \         P                  ! \         P
                  ! . RO\         P                  ! 4       R7      4      4      '       g   Q hVP                  \         P                  ! \         P
                  ! . RO\         P                  ! 4       R7      4      4      '       g   Q h\         P
                  ! . V R7      p\         P                  ! V4      pVP                  4       w  r4VP                  \         P                  ! \         P
                  ! . \         P                  ! 4       R7      4      4      '       g   Q hVP                  \         P                  ! \         P
                  ! . \         P                  ! 4       R7      4      4      '       g   Q hR# )r   r   r   N)r         @r         @)r"         @)r   r   r"   )r   r   r   )	r   structfieldint16float32rN   r(   flattenrP   )tyrz   carrr   r   s        r   test_chunked_array_flattenr     sp   	BHHS"((*-HHS"**,/1 
2B
/b9AAD<<>DA88B$$RXXibhhj%IJKKKK88B$$RXXo35::<&A B C C C C 	"AAD<<>DA88B$$RXXbrxxz%BCDDDD88B$$RXXbrzz|%DEFFFFrU   c                  0   \         P                  ! \         P                  ! . RO4      P                  4       \         P                  ! . RO4      P                  4       .4      p V P	                  ^ 4      P
                  P                  \         P                  ! R R.4      4      '       g   Q hV P	                  ^4      P
                  P                  \         P                  ! RR .4      4      '       g   Q hV P                  4       p \         P                  ! . RO4      pV P	                  ^ 4      P
                  P                  V4      '       g   Q hV P	                  ^4      P
                  P                  V4      '       g   Q hV P                  4       . RO8X  g   Q hR# )foobarNquuxr   r   Nr   )r   Nr   r   r   r   )r   r   Nr   r   Nr   )	r   r(   rN   dictionary_encodechunk
dictionaryrP   unify_dictionariesr*   )rI   expected_dicts     r   %test_chunked_array_unify_dictionariesr     s%   



,-??A
&'99; C 99Q<""))"((E5>*BCCCC99Q<""))"((FE?*CDDDD

 
 
"CHH34M99Q<""))-888899Q<""))-8888==?NNNNrU   c                      \         P                  ! \        R R7      ;_uu_ 4        \        P                  ! 4        RRR4       R#   + '       g   i     R# ; i)r   rA   N)r,   r-   ri   r   r   rX   rU   r   test_recordbatch_dunder_initr     s,    	y	6	6
 
7	6	6	6   AA	c                      ! R  R4      p \         P                  ! . RO\         P                  ! 4       4      p\         P                  ! V.4      pV ! V4      p\         P                  ! V4      pWB8X  g   Q h\         P                  ! V\         P                  ! 4       R7      pWBP                  \         P                  ! 4       4      8X  g   Q hR# )c                   0   a  ] tR tRt o R tRR ltRtV tR# ):test_chunked_array_c_array_interface.<locals>.ArrayWrapperi  c                    Wn         R # r   rN   )selfrN   s   &&r   __init__Ctest_chunked_array_c_array_interface.<locals>.ArrayWrapper.__init__  s    JrU   Nc                8    V P                   P                  V4      # r   )rN   __arrow_c_array__r  requested_schemas   &&r   r	  Ltest_chunked_array_c_array_interface.<locals>.ArrayWrapper.__arrow_c_array__  s    :://0@AArU   r  r   __name__
__module____qualname____firstlineno__r  r	  __static_attributes____classdictcell____classdict__s   @r   ArrayWrapperr    s     		B 	BrU   r  r   Nr   )r   rN   rF   r(   r   cast)r  r<   chunkedwrapperr   s        r   $test_chunked_array_c_array_interfacer    s    B B 88Irxxz*Dv&G4 G g&F gBHHJ7F\\"((*----rU   c                  H    ! R  R4      p \         P                  ! . RO. RO.4      pV ! V4      p\         P                  ! V4      pW18X  g   Q h\         P                  ! V\         P                  ! 4       R7      pW1P                  \         P                  ! 4       4      8X  g   Q hR# )c                   0   a  ] tR tRt o R tRR ltRtV tR# )Btest_chunked_array_c_stream_interface.<locals>.ChunkedArrayWrapperi  c                    Wn         R # r   r  )r  r  s   &&r   r  Ktest_chunked_array_c_stream_interface.<locals>.ChunkedArrayWrapper.__init__      "LrU   Nc                8    V P                   P                  V4      # r   )r  __arrow_c_stream__r
  s   &&r   r#  Utest_chunked_array_c_stream_interface.<locals>.ChunkedArrayWrapper.__arrow_c_stream__  s    <<223CDDrU   r  r   r  r  r  r  r  r#  r  r  r  s   @r   ChunkedArrayWrapperr    s     	#	E 	ErU   r&  Nr   r   )r!   Nr#   )r   r(   r   r  )r&  r<   r  r   s       r   %test_chunked_array_c_stream_interfacer'    s    E E Y56D!$'G g&F>> gBHHJ7FYYrxxz****rU   c                   0   a  ] tR tRt o R tRR ltRtV tR# )BatchWrapperi   c                    Wn         R # r   r   r  r   s   &&r   r  BatchWrapper.__init__!      
rU   Nc                8    V P                   P                  V4      # r   )r   r	  r
  s   &&r   r	  BatchWrapper.__arrow_c_array__$  s    zz++,<==rU   r+  r   r  r  s   @r   r)  r)     s     > >rU   r)  c                   0   a  ] tR tRt o R tRR ltRtV tR# )BatchDeviceWrapperi(  c                    Wn         R # r   r+  r,  s   &&r   r  BatchDeviceWrapper.__init__)  r.  rU   Nc                <    V P                   P                  ! V3/ VB # r   )r   __arrow_c_device_array__)r  r  kwargss   &&,r   r6  +BatchDeviceWrapper.__arrow_c_device_array__,  s    zz223CNvNNrU   r+  r   )r  r  r  r  r  r6  r  r  r  s   @r   r2  r2  (  s     O OrU   r2  wrapper_classc                 "   \         P                  ! \         P                  ! . RO\         P                  ! 4       R7      .R.R7      pV ! V4      p\         P                  ! V4      pW18X  g   Q h\         P                  ! \         P
                  ! R\         P                  ! 4       4      .4      p\         P                  ! W$R7      p\         P                  ! \         P                  ! . RO\         P                  ! 4       R7      .R.R7      pW58X  g   Q hR# r   r   rz   r{   r   Nr   )r   record_batchrN   rF   r   r   rv   )r9  r<   r  r   castable_schemarS   s   &     r   "test_recordbatch_c_array_interfacer?  0  s    ??
,UD D!G __W%F>> ii
bhhj!! O __W=F
, UH rU   c                  X   \         P                  ! \         P                  ! . R	O\         P                  ! 4       R7      .R.R7      p \        P
                  ! \        RR7      ;_uu_ 4        V P                  RR7       RRR4       V P                  RR7      pR#   + '       g   i     L$; i)
r   r   rz   r{   z7Received unsupported keyword argument\(s\): \['other'\]rA   znot-none)otherNr   )r   r=  rN   rF   r,   r-   NotImplementedErrorr6  )r<   _s     r   =test_recordbatch_c_array_interface_device_unsupported_keywordrD  F  s|    ??	)"((*	-.seD 
H
 
 	%%J%7	
 	%%D%1A
 
s   *BB)	c                 ^   \         P                  ! \         P                  ! . RO\         P                  ! 4       R7      .R.R7      pV ! V4      p\         P                  ! V4      p\         P
                  P                  V.4      pW48X  g   Q h\         P                  ! \         P                  ! R\         P                  ! 4       4      .4      p\         P                  ! W%R7      p\         P                  ! R\         P                  ! . RO\         P                  ! 4       R7      /4      pW48X  g   Q hR# r;  )
r   r=  rN   rF   r   r~   from_batchesr   r   rv   )r9  r<   r  r   rS   r>  s   &     r   test_table_c_array_interfacerG  V  s    ??
,UD D!G XXgFxx$$dV,H ii
bhhj!! O XXg6FxxRXXibhhj1 H rU   c                  n    ! R  R4      p \         P                  ! \         P                  ! . R	O\         P                  ! 4       R7      .R.R7      \         P                  ! \         P                  ! . R
O\         P                  ! 4       R7      .R.R7      .pV ! V4      p\         P                  ! V4      p\         P
                  P                  V4      pW48X  g   Q h\         P                  ! W!^ ,          P                  R7      pW48X  g   Q h\         P                  ! \         P                  ! R\         P                  ! 4       4      .4      p\         P                  ! W%R7      pW4P                  V4      8X  g   Q h\        P                  ! \         P                  P                  RR7      ;_uu_ 4        \         P                  ! V\         P                  ! \         P                  ! R\         P                  ! \         P                  ! 4       4      4      .4      R7       RRR4       R#   + '       g   i     R# ; i)c                   0   a  ] tR tRt o R tRR ltRtV tR# )4test_table_c_stream_interface.<locals>.StreamWrapperin  c                    Wn         R # r   batches)r  rM  s   &&r   r  =test_table_c_stream_interface.<locals>.StreamWrapper.__init__o  r!  rU   Nc                    \         P                  P                  V P                  ^ ,          P                  V P                  4      pVP                  V4      # )r   )r   RecordBatchReaderrF  rM  r   r#  )r  r  readers   && r   r#  Gtest_table_c_stream_interface.<locals>.StreamWrapper.__arrow_c_stream__r  sA    ))66Q&&6F,,-=>>rU   rL  r   r%  r  s   @r   StreamWrapperrJ  n  s     	#	? 	?rU   rS  r   rz   r{   r<  zField 0 cannot be castrA   Nr   r    )r   r=  rN   rF   r   r~   rF  r   r   rv   r  r,   r-   r   ArrowTypeErrorlist_)rS  r<   r  r   rS   good_schemas         r   test_table_c_stream_interfacerW  m  su   ? ? 	)"((*=>seL
)"((*=>seLD D!G XXgFxx$$T*H XXg1gnn5F ))RXXc288:678KXXg2F]];//// 

%=
 
 	BIIrxxRXXbhhj5I'J&KL	

 
 
 
s   /A*H##H4	c                     \         P                  ! \        ^4      RR7      \         P                  ! . R	ORR7      .p \         P                  ! V RR.4      p. pVP	                  4        F  pVP                  V4       K  	  VP                  V8X  g   Q hV\         P                  ! W!P                  R7      8X  g   Q hV\         P                  ! VR,          VP                  R,          R7      8w  g   Q hW8w  g   Q hR# )
r"   r   r   Nrv   c0c1r{   r   NNr   r   r   Nr   )r   rN   r   r=  itercolumnsr   columnscolumn_names)r<   r   r^  r   s       r   test_recordbatch_itercolumnsr`    s    
q(
'g6D OOD4,/EG  "s # ==G###BOOG3E3EFFFFBOOGBKu7I7I"7MNNNNrU   c                      \         P                  ! \        ^4      RR7      \         P                  ! . RORR7      .p \         P                  ! . RO4      \         P                  ! R.R.R..4      .pRR	.p\         P                  ! W4      pV\         P                  ! W4      8X  g   Q hVP	                  \         P                  ! W4      4      '       g   Q hV\         P                  ! W4      8w  g   Q hVP	                  \         P                  ! W4      4      '       d   Q h\         P                  ! WR
R/R7      pVP	                  V4      '       g   Q hVP	                  VRR7      '       d   Q hVP	                  R4      '       d   Q hVR8w  g   Q hR# )r"   r   r   Nrv   r   efrY  rZ  keyvaluer|   metadataTcheck_metadatar   r\  r   )r   rN   r   r=  rP   )data1r=   r_  r   
batch_metas        r   test_recordbatch_equalsrl    sI   
q(
'g6E
 	!
3%#&'E $<LOOE0EBOOE8888<<<====BOOE8888||BOOE@AAAA+0'*:<JU####  t <<<< ||D!!!!E>>rU   c            	      6   \         P                  ! \         P                  ! . RO4      \         P                  ! . RO4      .RR.4      p V P                  \         P                  ! ^^.4      4      P	                  V P                  ^^4      4      '       g   Q hV P                  \         P                  ! ^R.4      4      P	                  \         P                  ! \         P                  ! ^R.4      \         P                  ! RR.4      .RR.4      4      '       g   Q hR# )r   Nr   f1f2r   r   r   Nr"   rz   r   r   r   rb  )r   r=  rN   takerP   r}   r+  s    r   test_recordbatch_takers    s    OO	$	%	+	,	.	tE ::bhh1v&'..u{{1a/@AAAA::bhh4y)*11
1d),bhhT{.CDt	&' ' ' 'rU   c                      \         P                  ! \         P                  ! . RO4      .R.R7      p V ^ ,          P                  R8X  g   Q hR# r   a0r{   Nr   r   r   r!   )r   r=  rN   _name)rbs    r   )test_recordbatch_column_sets_private_namerz    s6    	"((<01$	@Ba5;;$rU   c            	         \         P                  ! ^^.4      p \         P                  ! \         P                  ! R\         P                  ! \         P
                  ! 4       4      4      .4      p\        P                  ! \        4      ;_uu_ 4        \         P                  ! V .VR7       RRR4       R#   + '       g   i     R# ; i)r   f0r<  N)
r   rN   r   r   rU  utf8r,   r-   rB  r=  )rI   r   s     r   ,test_recordbatch_from_arrays_validate_schemar~    sn    
((Aq6
CYYrxx	':;<=F	*	+	+
f- 
,	+	+	+   B22C	c                  @   \         P                  ! ^.4      \         P                  ! . RO4      \         P                  ! R.4      .p \        P                  ! \        4      ;_uu_ 4        \         P
                  ! V . RO4       RRR4       R#   + '       g   i     R# ; i)r   derekN)tokyolikehappy)idtagsr   )r   rN   r,   r-   r.   r=  rn   s    r   -test_recordbatch_from_arrays_validate_lengthsr    s_    HHaSM288$>?HHgY!D 
z	"	"
45 
#	"	"	"s   (BB	c                      \         P                  ! . . 4      p \        V 4      ^ 8X  g   Q hV P                  ^ 8X  g   Q hV P                  ^ 8X  g   Q hR# )r   N)r   r=  r3   r   num_columnsr+  s    r   test_recordbatch_no_fieldsr    sH    OOB#Eu:??>>Q!!!rU   c                     \         P                  ! \        ^4      4      \         P                  ! . RO4      .p \        P                  ! \
        4      ;_uu_ 4        \         P                  ! V . ROR7       RRR4       \        P                  ! \
        4      ;_uu_ 4        \         P                  ! V R.R7       RRR4       R#   + '       g   i     LV; i  + '       g   i     R# ; ir"   rz   r{   Nr   r   )r   rN   r   r,   r-   r.   r=  rn   s    r   *test_recordbatch_from_arrays_invalid_namesr    s    
q
$%D 
z	"	"
O4 
# 
z	"	"
SE* 
#	" 
#	" 
#	"	"s   CCC	C'	c                      \         P                  ! \        ^4      4      \         P                  ! . RO4      .p \         P                  ! V RR.4      pVP                  P
                  e   Q hR# )r"   rY  rZ  Nr   )r   rN   r   r=  r   rg  r<   r   s     r   test_recordbatch_empty_metadatar    sR    
q
$%D
 OOD4,/E<<  (((rU   c                    \         P                  ! \        ^4      RR7      \         P                  ! . RORR7      .p\         P                  ! R\         P                  ! 4       4      \         P                  ! R\         P
                  ! 4       4      .p\         P                  ! VRR/R7      p\         P                  ! WR	7      pV P                  V P                  V4      4      pVP                  V4      '       g   Q hVP                  V8X  g   Q hR
# )r"   rG   r   r   intsfloats   foo   barrg  r<  Nr   )r   rN   r   r   rG   r   r   r=  r   r   rP   )r   r<   fieldsr   r   r   s   &     r   test_recordbatch_pickler    s    
q'
$95D
 	#
2::<(F YYv(89FOOD0E  !4!4U!;<F====F"""rU   c                     \         P                  ! \        ^4      4      \         P                  ! . RO4      \         P                  ! \        ^^
4      4      .p \         P                  P	                  V RR7      pVP                  R4      P                  VP                  P                  R4      4      '       g   Q hVP                  ^ 4      P                  VP                  P                  R4      4      '       g   Q h\        P                  ! \        4      ;_uu_ 4        VP                  R4       RRR4       \        P                  ! \        4      ;_uu_ 4        VP                  R4       RRR4       \        P                  ! \        4      ;_uu_ 4        VP                  ^4       RRR4       R#   + '       g   i     L; i  + '       g   i     La; i  + '       g   i     R# ; ir"   rz   r{   r   Nr   r   )r   rN   r   r   r   r   rP   r   r,   r-   KeyErrorri   ru   r  s     r   test_recordbatch_get_fieldr    s4   
q
$%
q"D
 NN&&t?&CE;;s""5<<#5#5c#:;;;;;;q>  !3!3C!89999	x	 	 C 
! 
y	!	!D 
" 
z	"	"A 
#	" 
!	  
"	! 
#	"	"$   F0GG0G 	G	G'	c                  B   \         P                  ! \        ^4      4      \         P                  ! . RO4      \         P                  ! \        ^^
4      4      .p \         P                  P	                  V RR7      pVP                  R4      P                  VP                  ^ 4      4      '       g   Q h\        P                  ! \        RR7      ;_uu_ 4        VP                  R4       RRR4       \        P                  ! \        4      ;_uu_ 4        VP                  R4       RRR4       \        P                  ! \        4      ;_uu_ 4        VP                  ^4       RRR4       R#   + '       g   i     L; i  + '       g   i     La; i  + '       g   i     R# ; i	r"   rz   r{   z"Field "d" does not exist in schemarA   r   Nr   r   )r   rN   r   r   r   r   rP   r,   r-   r  ri   ru   r  s     r   test_recordbatch_select_columnr  '  s   
q
$%
q"D
 NN&&t?&CE<<##ELLO4444	@
B 
BS
B 
y	!	!T 
" 
z	"	"Q 
#	"
B 
B 
"	! 
#	"	"$   E'E:F'E7	:F
	F	c                     \         P                  ! . RO4      p \         P                  ! . RO4      p\         P                  ! ^^.^^.^^.R^	^
..4      p\         P                  ! WV.. RO4      pVP                  R.4      p\         P                  ! V .R.4      pVP	                  V4      '       g   Q hVP                  RR.4      p\         P                  ! W!.RR.4      pVP	                  V4      '       g   Q hVP                  ^ .4      p\         P                  ! V .R.4      pVP	                  V4      '       g   Q hVP                  ^^.4      p\         P                  ! W!.RR.4      pVP	                  V4      '       g   Q hVP                  RR/4      pVP                  RR.4      pRVP                  P                  9   g   Q h\        P                  ! \        RR	7      ;_uu_ 4        VP                  R
.4       RRR4       \        P                  ! \        RR	7      ;_uu_ 4        VP                  ^.4       RRR4       VP                  RR.4      p\         P                  ! W.RR.4      pVP	                  V4      '       g   Q h\         P                  ! WV.. RO4      p\        P                  ! \        RR	7      ;_uu_ 4        VP                  R.4       RRR4       VP                  R.4      p\         P                  ! V.R.4      pVP	                  V4      '       g   Q hR#   + '       g   i     EL6; i  + '       g   i     EL; i  + '       g   i     L~; ir   Nrz   rn  ro  f3test   azField "f5" does not existrA   f5zindex out of boundszField "f1" exists 2 timesrp  rq  )rn  ro  r  )rn  ro  rn  )r   rN   r=  selectrP   replace_schema_metadatar   rg  r,   r-   r  ru   )a1a2a3r   r   rS   batch2s          r   test_recordbatch_selectr  <  s   	$	%B	+	,B	Aq6Aq6Aq64!R9	:BOORRL*<=E \\4&!FtdV,H==""""\\4,'Fx$6H=="""" \\1#FtdV,H==""""\\1a&!Fx$6H=="""" **C=9F]]D$<(F6==))))) 
x'B	C	CdV 
D 
z)>	?	?aS 
@ \\4,'Fx$6H=="""" OORRL*<=E	x'B	C	CdV 
D \\4&!FtdV,H==""""% 
D	C	C 
@	?	? 
D	C$   *L*)L>	M*L;	>M	M"	c            	          \         P                  ! \        4      ;_uu_ 4        \        P                  P                  \        P                  ! \        ^4      4      4       RRR4       R#   + '       g   i     R# ; i)r"   N)r,   r-   ri   r   r   from_struct_arrayrN   r   rX   rU   r   *test_recordbatch_from_struct_array_invalidr  o  s?    	y	!	!
((%();< 
"	!	!	!s   =A**A;	c            
      "   \         P                  ! R ^/RR/.\         P                  ! R \         P                  ! 4       3R\         P                  ! 4       3.4      R7      p \         P
                  P                  V 4      pVP                  \         P
                  P                  \         P                  ! ^R.\         P                  ! 4       R7      \         P                  ! RR.\         P                  ! 4       R7      .R R.4      4      '       g   Q hR# r  r  rf   r   N)	r   rN   r   rv   r   r   r  rP   r   struct_arrayr   s     r   "test_recordbatch_from_struct_arrayr  t  s    88
!xo&YY,x.FGHL ^^--l;F==33HHaYRXXZ0HHdC[rzz|4	
 H	    rU   c                     \         P                  P                  \         P                  ! ^R.\         P                  ! 4       R7      \         P                  ! RR.\         P
                  ! 4       R7      .RR.4      p V P                  4       pVP                  \         P                  ! R^/RR/.\         P                  ! R\         P                  ! 4       3R\         P
                  ! 4       3.4      R7      4      '       g   Q hR# r   Nr   rf   r  r  )	r   r   r   rN   rv   r   to_struct_arrayrP   r   )r   r   s     r    test_recordbatch_to_struct_arrayr    s    NN&&HHaYRXXZ0HHdC[rzz|4	
 H	E ""$F==
!xo&YY,x.FGH    rU   c            	          \         P                  ! \        R R7      ;_uu_ 4        \        P                  P                  \        P                  ! \        ^4      4      4       RRR4       R#   + '       g   i     R# ; i)z*Argument 'struct_array' has incorrect typerA   N)r,   r-   ri   r   r~   r  rN   r   rX   rU   r   $test_table_from_struct_array_invalidr    sC    	y(T	U	U
""288E!H#56 
V	U	U	Us   =A,,A=	c            
      "   \         P                  ! R ^/RR/.\         P                  ! R \         P                  ! 4       3R\         P                  ! 4       3.4      R7      p \         P
                  P                  V 4      pVP                  \         P
                  P                  \         P                  ! ^R.\         P                  ! 4       R7      \         P                  ! RR.\         P                  ! 4       R7      .R R.4      4      '       g   Q hR# r  )	r   rN   r   rv   r   r~   r  rP   r   r  s     r   test_table_from_struct_arrayr    s    88
!xo&YY,x.FGHL XX''5F==--HHaYRXXZ0HHdC[rzz|4	
 H	    rU   c            
      $   \         P                  ! R ^/RR/..\         P                  ! R \         P                  ! 4       3R\         P                  ! 4       3.4      R7      p \         P
                  P                  V 4      pVP                  \         P
                  P                  \         P                  ! ^R.\         P                  ! 4       R7      \         P                  ! RR.\         P                  ! 4       R7      .R R.4      4      '       g   Q hR# r  )
r   r(   r   rv   r   r~   r  rP   r   rN   )chunked_struct_arrayr   s     r   *test_table_from_struct_array_chunked_arrayr    s    ++1+#	'(YY,x.FGH XX''(<=F==--HHaYRXXZ0HHdC[rzz|4	
 H	    rU   c                     \         P                  P                  \         P                  ! ^R.\         P                  ! 4       R7      \         P                  ! RR.\         P
                  ! 4       R7      .RR.4      p V P                  4       pVP                  \         P                  ! R^/RR/..\         P                  ! R\         P                  ! 4       3R\         P
                  ! 4       3.4      R7      4      '       g   Q hR# r  
r   r~   r   rN   rv   r   r  rP   r(   r   r   r   s     r   test_table_to_struct_arrayr    s    HH  HHaYRXXZ0HHdC[rzz|4	
 H	E ""$F==))1+#	'(YY,x.FGH    rU   c                     \         P                  P                  \         P                  ! ^R.\         P                  ! 4       R7      \         P                  ! RR.\         P
                  ! 4       R7      .RR.4      p V P                  ^R7      pVP                  \         P                  ! R^/.RR/..\         P                  ! R\         P                  ! 4       3R\         P
                  ! 4       3.4      R7      4      '       g   Q hR# )r   Nr   rf   r  r  max_chunksizer  r  s     r   -test_table_to_struct_array_with_max_chunksizer    s    HH  HHaYRXXZ0HHdC[rzz|4	
 H	E """3F==))1+(C)*YY,x.FGH    rU   c                     \         P                  P                  \         P                  ! . \         P                  ! 4       R 7      \         P                  ! . \         P
                  ! 4       R 7      .RR.4      p V P                  4       pVP                  \         P                  ! . \         P                  ! R\         P                  ! 4       R\         P
                  ! 4       /4      R 7      4      '       g   Q hR# )r   r  r  Nr  r  s     r   *test_table_to_struct_array_for_empty_tabler    s    HH  HHRbhhj)HHRbjjl+	
 H	E ""$F==
FBHHJ"**,GH	
   rU   c                     V P                  V4      '       g   Q hV P                  V8X  g   Q hV P                  V8X  g   Q hV P                  VP                  8X  g   Q hV P                  VP                  8X  g   Q hR # r   )rP   sizer	   r_   strides)tensorexpected_tensorr	   r  s   &&&&r   check_tensorsr    sk    ==))));;$;;$<<?00000>>_44444rU   typ_strc           
         \         P                  ! V 4      p. ROp. R	Op. R
Op\        P                  P	                  \        P
                  ! V\        P                  ! V4      R7      \        P
                  ! V\        P                  ! V4      R7      \        P
                  ! V\        P                  ! V4      R7      .. RO4      pVP                  RR7      p\         P                  ! W#V.4      P                  VRR7      p\        P                  P                  V4      p\        Wh\        P                  ! V4      ^4       VP                  4       p\         P                  ! W#V.4      P                  VRR7      p\        P                  P                  V4      p\        Wh\        P                  ! V4      ^4       VP                  ^4      p	. ROp. ROp. ROpV	P                  RR7      p\         P                  ! W#V.4      P                  VRR7      p\        P                  P                  V4      p\        Wh\        P                  ! V4      ^4       V	P                  4       p\         P                  ! W#V.4      P                  VRR7      p\        P                  P                  V4      p\        Wh\        P                  ! V4      ^4       VP                  ^^4      p
. ROp. ROp. ROpV
P                  RR7      p\         P                  ! W#V.4      P                  VRR7      p\        P                  P                  V4      p\        Wh\        P                  ! V4      ^4       V
P                  4       p\         P                  ! W#V.4      P                  VRR7      p\        P                  P                  V4      p\        Wh\        P                  ! V4      ^4       R# )r   r   F	row_majorForderCN	r   r   r   r!   r"   r#   r%   r&   r'   	r         (   2   <   F   P   Z   	d   r  r  r  r  r  r  r  r  r   )r   r   r!   r"   r#   r%   r&   r'   )r  r  r  r  r  r  r  r  )r  r  r  r  r  r  r  r  )r   r   r!   r"   r#   )r  r  r  r  r  )r  r  r  r  r  )r[   r   r   r   r   rN   from_numpy_dtype	to_tensorcolumn_stackastypeTensor
from_numpyr  r}   )r  r   ra   rb   arr3r   r   r   rS   batch1r  s   &          r   'test_recordbatch_to_tensor_uniform_typer    s    ((7
C&D/D8DNN&&HHT 3 3C 89HHT 3 3C 89HHT 3 3C 89	
 E __u_-F
T*+223c2BAyy##A&H&B$7$7$<bA__F
T*+223c2BAyy##A&H&B$7$7$<bA [[^F#D+D3D.F
T*+223c2BAyy##A&H&B$7$7$<bAF
T*+223c2BAyy##A&H&B$7$7$<bA[[AFDD$D.F
T*+223c2BAyy##A&H&B$7$7$<bAF
T*+223c2BAyy##A&H&B$7$7$<bArU   c                  R   . R	Op . R
Op. ROp\         P                  P                  \         P                  ! \        P                  ! V \        P
                  R7      \         P
                  ! 4       R7      \         P                  ! \        P                  ! V\        P
                  R7      \         P
                  ! 4       R7      \         P                  ! \        P                  ! V\        P
                  R7      \         P
                  ! 4       R7      .. RO4      pVP                  RR7      p\        P                  ! WV.4      P                  \        P
                  RR7      p\         P                  P                  V4      p\        WF\         P
                  ! 4       ^4       VP                  4       p\        P                  ! WV.4      P                  \        P
                  RR7      p\         P                  P                  V4      p\        WF\         P
                  ! 4       ^4       R# )r   r   r   Fr  r  r  r  Nr  r  r  r   )r   r   r   rN   r[   float16r  r  r  r  r  r  ra   rb   r  r   r   r   rS   s          r   +test_recordbatch_to_tensor_uniform_float_16r  "  sP   &D/D8DNN&&HHRXXd"**5BJJLIHHRXXd"**5BJJLIHHRXXd"**5BJJLI	
 E __u_-F
T*+222::S2IAyy##A&H&BJJL"5__F
T*+222::S2IAyy##A&H&BJJL"5rU   c            	         . ROp . ROp^d^R\         P                  RRRRR.	p\        P                  P	                  \        P
                  ! V \        P                  ! 4       R7      \        P
                  ! V\        P                  ! 4       R7      .RR	.4      pVP                  R
R7      p\         P                  ! W.4      P                  \         P                  RR7      p\        P                  P                  V4      p\        WF\        P                  ! 4       ^4       VP                  4       p\         P                  ! W.4      P                  \         P                  RR7      p\        P                  P                  V4      p\        WF\        P                  ! 4       ^4       \        P                  P	                  \        P
                  ! V \        P                  ! 4       R7      \        P
                  ! V\        P                  ! 4       R7      \        P
                  ! V\        P                  ! 4       R7      .. RO4      pVP                  R
R7      p\         P                  ! WV.4      P                  \         P                   RR7      p\        P                  P                  V4      p\         P"                  P%                  VP'                  4       V4       VP(                  ^8X  g   Q hVP*                  \        P                   ! 4       8X  g   Q hVP,                  VP,                  8X  g   Q hVP.                  VP.                  8X  g   Q hVP                  4       p\         P                  ! WV.4      P                  \         P                   RR7      p\        P                  P                  V4      p\         P"                  P%                  VP'                  4       V4       VP(                  ^8X  g   Q hVP*                  \        P                   ! 4       8X  g   Q hVP,                  VP,                  8X  g   Q hVP.                  VP.                  8X  g   Q hR# )r   ,    X         r   rz   r   Fr  r  r  r  Nr  r  r   )r[   nanr   r   r   rN   uint16r   r  r  r  rv   r  r  r  r   rj   r   assert_equalr]   r  r	   r_   r  r  s          r   %test_recordbatch_to_tensor_mixed_typer  :  s    'D/Dc2663S#s;DNN&&HHT		,HHT
+	
 :	E __u_-F
%,,RXXS,AAyy##A&H&BHHJ3__F
%,,RXXS,AAyy##A&H&BHHJ3 NN&&HHT		,HHT
+HHT

-	
 E __u_-F
T*+222::S2IAyy##A&HJJFOO-q1;;";;"**,&&&<<8>>)))>>X-----__F
T*+222::S2IAyy##A&HJJFOO-q1;;";;"**,&&&<<8>>)))>>X-----rU   c            
      H   . ROp . ROp. ROp\         P                  P                  \         P                  ! V \         P                  ! 4       R7      \         P                  ! \
        P                  ! V\
        P                  R7      \         P                  ! 4       R7      \         P                  ! V\         P                  ! 4       R7      .. R	O4      p\        P                  ! \        RR7      ;_uu_ 4        VP                  4        RRR4       R#   + '       g   i     R# ; i)
r   r   r   z.Casting from or to halffloat is not supported.rA   Nr  r  )	r     r  i  r  r  r  r  r  r   )r   r   r   rN   r  r[   r  r   r,   r-   rB  r  )ra   rb   r  r   s       r   >test_recordbatch_to_tensor_unsupported_mixed_type_with_float16r  n  s    &D/D8DNN&&HHT		,HHRXXd"**5BJJLIHHT

-	
 E 
>
 
 		
 
 
 
s   5DD!	c            	      f   ^^^^\         P                  ^^^^	.	p ^
^^^(^2^<^F\         P                  ^Z.	p\        P                  P	                  \        P
                  ! V \        P                  ! 4       R7      \        P
                  ! V\        P                  ! 4       R7      .RR.4      pVP                  RR7      p\         P                  ! W.4      P                  \         P                  RR7      p\        P                  P                  V4      p\         P                  P                  VP                  4       V4       VP                  ^8X  g   Q hVP                   \        P                  ! 4       8X  g   Q hVP"                  VP"                  8X  g   Q hVP$                  VP$                  8X  g   Q hR# )	r   r   rz   r   Fr  r  r  N)r[   r  r   r   r   rN   r   r  r  r  r  r  r   r  r]   r  r	   r_   r  ra   rb   r   r   r   rS   s         r   test_recordbatch_to_tensor_nanr    sA   q!Q1a+DBBB3DNN&&HHT

-HHT

-	
 :	E __u_-F
%,,RZZs,CAyy##A&HJJFOO-q1;;";;"**,&&&<<8>>)))>>X-----rU   c                  	   . ROp . ROp\         P                  P                  \         P                  ! V \         P                  ! 4       R7      \         P                  ! V\         P
                  ! 4       R7      .RR.4      p\        P                  ! \         P                  RR7      ;_uu_ 4        VP                  4        RRR4       VP                  RRR	7      p\        P                  ! W.4      P                  \        P                  R
R7      p\         P                  P                  V4      p\        P                   P#                  VP%                  4       V4       VP&                  ^8X  g   Q hVP(                  \         P                  ! 4       8X  g   Q hVP*                  VP*                  8X  g   Q hVP,                  VP,                  8X  g   Q h\         P                  P                  \         P                  ! V \         P                  ! 4       R7      \         P                  ! V\         P                  ! 4       R7      .RR.4      pVP                  RRR	7      p\        P                   P#                  VP%                  4       V4       VP&                  ^8X  g   Q hVP(                  \         P                  ! 4       8X  g   Q hVP*                  VP*                  8X  g   Q hVP,                  VP,                  8X  g   Q h\         P                  P                  \         P                  ! V \         P.                  ! 4       R7      \         P                  ! V\         P.                  ! 4       R7      .RR.4      pVP                  RRR	7      p\        P                  ! W.4      P                  \        P
                  R
R7      p\         P                  P                  V4      p\        P                   P#                  VP%                  4       V4       VP&                  ^8X  g   Q hVP(                  \         P
                  ! 4       8X  g   Q hVP*                  VP*                  8X  g   Q hVP,                  VP,                  8X  g   Q hR#   + '       g   i     EL; i)r   Nr   rz   r   z-Can only convert a RecordBatch with no nulls.rA   TF)null_to_nanr  r  r  )	r   r   r   r!   Nr#   r%   r&   r'   )	r   r  r  r  r  r  r  Nr  )r   r   r   rN   rv   r   r,   r-   rT  r  r[   r  r  rj   r  r  r   r  r]   r  r	   r_   r  rG   r  s         r   test_recordbatch_to_tensor_nullr    s4   )D1DNN&&HHT
+HHT

-	
 :	E 

=
 
 		
 ___?F
%,,RZZs,CAyy##A&HJJFOO-q1;;";;"**,&&&<<8>>)))>>X----- NN&&HHT
+HHT
+	
 :	E ___?FJJFOO-q1;;";;"**,&&&<<8>>)))>>X----- NN&&HHT	*HHT	*	
 :	E ___?F
%,,RZZs,CAyy##A&HJJFOO-q1;;";;"**,&&&<<8>>)))>>X-----a
 
 
s   -Q::R	c                     \         P                  P                  \         P                  ! . \         P                  ! 4       R 7      \         P                  ! . \         P                  ! 4       R 7      .RR.4      p V P                  4       p\        P                  ! . . .4      P                  \        P                  RR7      p\         P                  P                  V4      pVP                  VP                  8X  g   Q hVP                  \         P                  ! 4       8X  g   Q hVP                  VP                  8X  g   Q hVP                  R8X  g   Q hR# )r   rz   r   r  r  N)r!   r!   )r   r   r   rN   r   r  r[   r  r  r  r  r  r	   r_   r  )r   r   r   rS   s       r    test_recordbatch_to_tensor_emptyr	    s    NN&&HHRbjjl+HHRbjjl+	
 :	E __F
R!((3(?Ayy##A&H;;(--''';;"**,&&&<<8>>)))>>V###rU   c                     . ROp . ROp\         P                  P                  \         P                  ! V \         P                  ! 4       R7      \         P                  ! V\         P
                  ! 4       R7      .RR.4      p\        P                  ! \         P                  RR7      ;_uu_ 4        VP                  4        RRR4       R#   + '       g   i     R# ; i)	r   rz   r   r   zDataType is not supportedrA   Nr  )	rz   r   r   rz   r   r   rz   r   r   )
r   r   r   rN   rv   r}  r,   r-   rT  r  )ra   rb   r   s      r   &test_recordbatch_to_tensor_unsupportedr    s    &D8DNN&&HHT
+HHT	*	
 :	E 

)
 
 		
 
 
 
s   -CC	c           	         \         P                  ! \        ^4      4      \         P                  ! . R	O4      .pRR.pV ! WR7      pVP                  ^4      pVP                  ^8X  g   Q hT ! V Uu. uF  qUP                  ^4      NK  	  upVR7      pVP                  V4      '       g   Q hVP                  ^^4      pT ! V Uu. uF  qUP                  ^^4      NK  	  upVR7      pVP                  V4      '       g   Q hVP                  ^ 4      P                  V4      '       g   Q h\        VP                  \        V4      4      4      ^ 8X  g   Q h\        P                  ! \        4      ;_uu_ 4        VP                  R
4       RRR4       VP                  ^ ^ 4      P                  VR,          4      '       g   Q hVP                  ^ ^4      P                  VR,          4      '       g   Q hVP                  ^^4      P                  VR,          4      '       g   Q hVP                  ^\        V4      ^,
          4      P                  VR,          4      '       g   Q hVP                  \        V4      ^,
          ^4      P                  VRR 4      '       g   Q hVP                  \        V4      ^,
          ^4      P                  VRR 4      '       g   Q hR# u upi u upi   + '       g   i     ELe; i)r"   rY  rZ  r{   Nr   r   rq   r   r   rs   )
r   rN   r   r}   r   rP   r3   r,   r-   ru   )	factoryr<   r|   objslicedr   rS   sliced2	expected2s	   &        r   _table_like_slice_testsr    sN   
q
$%D 4LE
$
$CYYq\F??aD1Dq
D1?H==""""ii1oG51A5UCI>>)$$$$ 99Q<s#### syyS"#q(((	z	"	"		" 
# 99Q?!!#b'****99Q?!!#b'****99Q?!!#c(++++99QC1%,,SW555599SX\1%,,SX666699SX\1%,,SBZ8888- 2 6 
#	"	"s   /KK2K  K1	c                  H    \        \        P                  P                  4      # r   )r  r   r   r   rX   rU   r   test_recordbatch_slice_getitemr    s    "2>>#=#=>>rU   c                  4    \        \        P                  4      # r   )r  r   r   rX   rU   r   test_table_slice_getitemr  !  s    "288,,rU   c            	      p   \         P                  ! R \         P                  ! . \         P                  ! R4      R7      /4      p V P	                  ^ ^ 4      pVP                  4        \         P                  ! R \         P                  ! . \         P                  ! 4       R7      /4      p V P                  4        R# )rz   usr   N)r   r   rN   r   r}   r   r(   r)   )r   r   s     r   test_slice_zero_length_tabler  %  sw     HHc288BR\\$-?@ABE++a#KHHc2++BRYY[ABCE	OOrU   c                     \         P                  ! ^.RR7      p \         P                  ! RR.RR7      p\        P                  ! \        P                  ! V 4      .R.4      p\        P                  ! \        P                  ! V4      .R.4      p\        P
                  ! \        P                  4      ;_uu_ 4        \        P                  P                  W#.4       RRR4       R#   + '       g   i     R# ; i)r   uint32r   rD   rE   rj   rZ  N)	r[   rN   r   r=  r,   r-   ArrowInvalidr~   rF  )r  r  r  r  s       r   "test_recordbatchlist_schema_equalsr  0  s    	1#X	&B	3*I	.B__bhhrl^dV4F__bhhrl^dV4F	r	'	'
v./ 
(	'	'	's   :!C%%C6	c                      \         P                  ! \         P                  ! . RO4      .R.R7      p V ^ ,          P                  R8X  g   Q hR# ru  )r   r   rN   rx  ts    r   #test_table_column_sets_private_namer#  ;  s6    
"((<()$8AQ4::rU   c                  \   \         P                  P                  . . R 7      p V P                  V 4      '       g   Q hV P                  R4      '       d   Q h\         P                  P                  . . RR/R7      pV P                  VRR7      '       d   Q hV P                  V4      '       g   Q hR# )r{   Nrd  re  rf  Trh  )r   r~   r   rP   )r   rA  s     r   test_table_equalsr%  A  s    HH  2 .E<< ||D!!!!HH  28H IE||E$|7777<<rU   c                  "   \         P                  ! \         P                  ! R \         P                  ! 4       4      \         P                  ! R\         P                  ! 4       4      .4      p \         P
                  ! \         P                  ! ^.4      \         P                  ! R.4      .R R.R7      p\         P                  P                  V.V 4      pVP                  P                  V 4      '       g   Q hVP                  ^ 4      \         P                  ! ^..4      8X  g   Q hVP                  ^4      \         P                  ! R..4      8X  g   Q h\         P                  ! \         P                  ! R \         P                  ! 4       4      .4      p\        P                  ! \         P                  4      ;_uu_ 4        \         P                  P                  V.V4       RRR4       \         P
                  ! \         P                  ! ^.4      .R .4      p\        P                  ! \         P                  4      ;_uu_ 4        \         P                  P                  V.V 4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)rz   r   gQ	@r{   N)r   r   r   rF   rj   r=  rN   r~   rF  rP   r   r(   r,   r-   r  )r   r   r   incompatible_schemaincompatible_batchs        r   "test_table_from_batches_and_schemar)  M  s   YY
bhhj!
bjjl# F OORXXqc]BHHdV,<=#&*.EHH!!5'62E<<v&&&&<<?b..u5555<<?b..x8888))RXXc288:%>$?@	r	'	'
ug':; 
( "((A3-3%@	r	'	'
12F; 
(	'	 
(	' 
(	'	's   :"I*>"I=*I:	=J	c            	      r   ^ RI Hp  ^ RIpVP                  R\	        \        ^
4      4      /4      pVP                  R\	        \        ^
^4      4      /4      p\        P                  P                  VRR7      p\        P                  P                  VRR7      p\        P                  P                  WEV.4      pVP                  W#V.RR7      pVP                  4       p\        V4      ^8X  g   Q hV ! \        P                  P                  V4      P                  4       V4       VP                  ^R7      p\	        \        \        V4      4      . R	O8X  g   Q hV ! VP                  4       V4       V ! \        P                  P                  V4      P                  4       V4       \        P                  P                  \!        WEV.4      4      p	VP#                  V	4      '       g   Q h\$        P&                  ! \(        4      ;_uu_ 4        VP                  ^ R7       RRR4       R#   + '       g   i     R# ; i)
r   )r   Nrz   F)preserve_indexT)ignore_indexr  )r      r"   r   )r   r   r   r   r0   r   r   r   r   r~   rF  concat
to_batchesr3   r   mapiterrP   r,   r-   r.   )
r   r   df1df2r  r  r   expected_dfrM  table_from_iters
             r   test_table_to_batchesr6  b  s   1
,,T%)_-
.C
,,T%B-01
2C^^''E'BF^^''E'BFHH!!66":;E))SsO$)?K Gw<1rxx,,W5??A"$ R0GC!"o555u(+6rxx,,W5??A"$ hh++D&&1I,JKO<<((((	z	"	"q) 
#	"	"	"s   H%%H6	clsc                    \         P                  ! \        ^4      RR7      \         P                  ! . RORR7      .pV P                  VRR7      pVP	                  4        VP
                  P                  '       d   Q h\        V4      ^8X  g   Q hVP                  ^8X  g   Q hVP                  \        V4      8X  g   Q hVP                  R8X  g   Q hVP                  4       ^8X  g   Q hVP                  ^8X  g   Q h\        P                  ! V4      \        P!                  V4      VP                  4       ,           8  g   Q hVP#                  4       pV\%        R. RO3R. RO3.4      8X  g   Q h\'        V\(        4      '       g   Q hW P+                  W2P
                  R7      8X  g   Q h\,        P.                  ! \0        4      ;_uu_ 4        V^,           RRR4       . pVP3                  4        EF  pV \         P4                  J d   \7        V4      \         P8                  J g   Q hVP;                  4        F	  pVe   K	  Q h	  \,        P.                  ! \0        4      ;_uu_ 4        VP=                  R4       RRR4       \,        P.                  ! \0        4      ;_uu_ 4        VP=                  VP>                  4       RRR4       M+\A        \7        V4      \         PB                  4      '       g   Q hVPE                  V4       EK  	  VPF                  V8X  g   Q hW P                  WBPH                  R7      8X  g   Q hW P                  VR	,          VPH                  R	,          R7      8w  g   Q hW$8w  g   Q h\         P
                  ! \         PJ                  ! R
\         PL                  ! 4       RR/R7      \         PJ                  ! R\         PN                  ! 4       4      .RR/R7      pV P                  WR7      pVP
                  V8X  g   Q h\P        PR                  ! V4      pV! 4       f   Q h?V! 4       e   Q hR#   + '       g   i     ELm; i  + '       g   i     EL; i  + '       g   i     EL; i)r"   r   r   Nrv   rz   r   r{   r<  r[  rY  rd  re  r  rZ  r  r  r\  rz   r   r"   r   )r   r   r   r   r!   rs   )*r   rN   r   r   r+   r   rg  r3   r   r  r_   r   r9   r5   r6   r7   r8   	to_pydictr   r   dictfrom_pydictr,   r-   ru   r]  r~   r	   r   r2   r   
num_chunks
issubclassArrayr   r^  r_  r   r   rv   r:   r;   )	r7  r<   r   pydictr^  r   r   r   r>   s	   &        r   test_table_basicsrB    s    	q(
'g6D OOD
O3E	NN||$$$$$u:??>>QD	)));;&   &&(,AAAA<<0000==6#4#4$,,.$/ / / / __F[	o	$%"     fd####OOF<<O@@@@	z	"	"a 
# G  ""((?9///)((( * z**		" + z**		#..) +* d3i2222s# #& ==G###OOG3E3EOFFFFOOGBKu7I7I"7MONNNN YYrxxz+0'*:<rxxz24 "( 02F OODO0E<<6!!!	U	B44<<Q 
#	"	" +** +**s$   
P6"Q
Q6Q	
QQ/c                      \         P                  ! \        R R7      ;_uu_ 4        \        P                  ! 4        RRR4       R#   + '       g   i     R# ; i)r~   rA   N)r,   r-   ri   r   r~   rX   rU   r   test_table_dunder_initrD    s+    	y	0	0

 
1	0	0	0r   c            	          \         P                  ! ^^.4      p \         P                  ! ^^.4      p\         P                  ! R\         P                  ! 4       \	        RRR7      R7      p\         P                  ! R\         P                  ! 4       RR7      p\         P
                  P                  W.\         P                  ! W#.4      R	7      pR
VP                  ^ 4      P                  9   g   Q hVP                  ^4      P                  RJ g   Q hR# )r   field1ABr9  r  field2Fnullabler<  r  N)
r   rN   r   rF   r<  r~   r   r   rg  rK  )arr0ra   field0rF  r   s        r   0test_table_from_arrays_preserves_column_metadatarN    s    88QFD88QFDXXh
TC35GHFXXh
U;FHH  $(*		62B(C ! EE5;;q>*****;;q>""e+++rU   c                     \         P                  ! \        ^4      4      \         P                  ! . RO4      .p \        P                  ! \
        4      ;_uu_ 4        \         P                  P                  V . ROR7       RRR4       \        P                  ! \
        4      ;_uu_ 4        \         P                  P                  V R.R7       RRR4       R#   + '       g   i     L_; i  + '       g   i     R# ; ir  )r   rN   r   r,   r-   r.   r~   r   rn   s    r   $test_table_from_arrays_invalid_namesrP    s    
q
$%D 
z	"	"
T9 
# 
z	"	"
T#/ 
#	" 
#	" 
#	"	"s   $C(#C(C%	(C9	c                  R   \        \        ^4      4      . RO.p \        P                  ! V RR.R7      p\        P                  P                  V RR.R7      pVP                  V4      '       g   Q h\        P                  ! \        P                  ! R\        P                  ! 4       4      \        P                  ! R\        P                  ! 4       4      .4      p\        P                  ! WR7      p\        P                  P                  WR7      pVP                  V4      '       g   Q hR# )r"   rz   r   r{   r<  Nr   )r0   r   r   r   r~   r   rP   r   r   r  rF   )r<   r   rS   r   s       r   test_table_from_listsrR    s    U1XD
 XXd3*-Fxx##Dc
#;H==""""YY
biik"
bhhj! F XXd*Fxx##D#8H==""""rU   c                 n   \         P                  ! ^^.^^..\         P                  ! 4       R7      \         P                  ! . R	O.\         P                  ! 4       R7      .p\         P                  ! \         P
                  ! R\         P                  ! 4       4      \         P
                  ! R\         P                  ! 4       4      .RR/R7      p\         P                  P                  WR7      pV P                  V P                  V4      4      pVP                  4        VP                  V4      '       g   Q hR# )
r   r   Nr  strsr  r  r  r<  )somestringsN )r   r(   r  r)   r   r   r~   r   r   r   r+   rP   )r   r<   r   r   r   s   &    r   test_table_picklerX    s    
1a&1a&)		<
78ryy{KD YY557!' 02F HH   5E  !4!4U!;<F
OO==rU   c                     \         P                  ! \        ^4      4      \         P                  ! . RO4      \         P                  ! \        ^^
4      4      .p \         P                  P	                  V RR7      pVP                  R4      P                  VP                  P                  R4      4      '       g   Q hVP                  ^ 4      P                  VP                  P                  R4      4      '       g   Q h\        P                  ! \        4      ;_uu_ 4        VP                  R4       RRR4       \        P                  ! \        4      ;_uu_ 4        VP                  R4       RRR4       \        P                  ! \        4      ;_uu_ 4        VP                  ^4       RRR4       R#   + '       g   i     L; i  + '       g   i     La; i  + '       g   i     R# ; ir  )r   rN   r   r~   r   r   rP   r   r,   r-   r  ri   ru   r<   r   s     r   test_table_get_fieldr[    s4   
q
$%
q"D
 HH  _ =E;;s""5<<#5#5c#:;;;;;;q>  !3!3C!89999	x	 	 C 
! 
y	!	!D 
" 
z	"	"A 
#	" 
!	  
"	! 
#	"	"r  c                  B   \         P                  ! \        ^4      4      \         P                  ! . RO4      \         P                  ! \        ^^
4      4      .p \         P                  P	                  V RR7      pVP                  R4      P                  VP                  ^ 4      4      '       g   Q h\        P                  ! \        RR7      ;_uu_ 4        VP                  R4       RRR4       \        P                  ! \        4      ;_uu_ 4        VP                  R4       RRR4       \        P                  ! \        4      ;_uu_ 4        VP                  ^4       RRR4       R#   + '       g   i     L; i  + '       g   i     La; i  + '       g   i     R# ; ir  )r   rN   r   r~   r   r   rP   r,   r-   r  ri   ru   rZ  s     r   test_table_select_columnr]  &  s   
q
$%
q"D
 HH  _ =E<<##ELLO4444	xA
C 
CS
C 
y	!	!T 
" 
z	"	"Q 
#	"
C 
C 
"	! 
#	"	"r  c                  h   \         P                  ! \         P                  ! . RO4      \         P                  ! . RO4      \         P                  ! . RO4      .. R	OR7      p \        P                  ! \
        RR7      ;_uu_ 4        V P                  R4       RRR4       R#   + '       g   i     R# ; i)
r   rz   r{   z"Field "a" exists 2 times in schemarA   Nr   r    r$   r   )r   r   rN   r,   r-   r  r   r   s    r   !test_table_column_with_duplicatesr`  ;  s{    HHbhhy)hhy)hhy)+2ACE 
xA
C 
CS
C 
C 
C 
Cs   B  B1	c                    \         P                  ! \        ^4      4      \         P                  ! . RO4      \         P                  ! \        ^^
4      4      .pV P                  VRR7      p\         P                  ! RV^,          P
                  4      pVP                  ^W1^,          4      pVP                  W1^,          4      pV P                  W^,          .,           RR7      pVP                  V4      '       g   Q hVP                  V4      '       g   Q hVP                  ^ W1^,          4      pV P                  V^,          .V,           RR7      pVP                  V4      '       g   Q hR# )r"   r{   r   Nr   r   )rz   r   r   r   )r   rz   r   r   )	r   rN   r   r   r   r	   
add_columnappend_columnrP   )r7  r<   r   	new_fieldt2t3rS   t4s   &       r   test_table_add_columnrh  F  s)    	q
$%
q"D
 OODO8Ed1gll+I			!YQ	0B			YQ	0BtAwi/%9  ;H99X99X			!YQ	0BQy4/%9  ;H99XrU   c                    \         P                  ! \        ^4      4      \         P                  ! . RO4      \         P                  ! \        ^^
4      4      .pV P                  VRR7      p\         P                  ! RV^,          P
                  4      pVP                  ^ W1^,          4      p\        V4      pV^,          V^ &   V P                  VRR7      pVP                  V4      '       g   Q hR# )r"   r{   r   Nr   r   )r   r   r   )	r   rN   r   r   r   r	   
set_columnr0   rP   )r7  r<   r   rd  re  expected_datarS   s   &      r   test_table_set_columnrl  d  s     	q
$%
q"D
 OODO8Ed1gll+I			!YQ	0BJMAwM!}%4  6H99XrU   c                   \         P                  ! \        ^4      4      p\         P                  ! . RO4      p\         P                  ! \        ^^
4      4      pV P                  WV.R	R7      pVP	                  RR.4      pVP	                  R4      pV P                  V.R
R7      pVP                  V4      '       g   Q hV P                  W#.RR7      pVP                  V4      '       g   Q h\        P                  ! \        RR7      ;_uu_ 4        VP	                  R.4       RRR4       R#   + '       g   i     R# ; i)z%drop one or more columns given labelsrz   r   r{   Column 'd' not foundrA   r   Nr   r   r   r   r   )	r   rN   r   r   drop_columnsrP   r,   r-   r  )	r7  rz   r   r   r   re  rf  exp_t2exp_t3s	   &        r   test_table_drop_columnsrt  }  s     	qA
$%A
q"AOOQ1I_O=E			S#J	'B			C	 B__aS_/F==__aV;_7F== 
x'=	>	>C5! 
?	>	>	>s   D,,D=	c                    \         P                  ! \        ^4      4      p \         P                  ! . RO4      p\         P                  ! \        ^^
4      4      p\         P                  P	                  WV.R	R7      pVP                  RR.4      pVP                  R4      p\         P                  P	                  V.R
R7      pVP                  V4      '       g   Q h\         P                  P	                  W.RR7      pVP                  V4      '       g   Q h\        P                  ! \        RR7      ;_uu_ 4        VP                  R.4       RRR4       R#   + '       g   i     R# ; i)z+verify the alias of drop_columns is workingrz   r   r{   rn  rA   r   Nr   r   ro  rp  )
r   rN   r   r~   r   droprP   r,   r-   r  )rz   r   r   r   re  rf  rr  rs  s           r   test_table_droprw    s   
qA
$%A
q"AHH  !/ BE	S#J	B	CBXX!!1#V!4F==XX!!1&!<F== 
x'=	>	>

C5 
?	>	>	>s   9EE'	c                    \         P                  ! \        ^4      4      \         P                  ! . RO4      \         P                  ! \        ^^
4      4      .pV P                  VRR7      pVP	                  ^ 4      pVP                  4        V P                  VR,          RR7      pVP                  V4      '       g   Q hR# )r"   r{   r[  Nr   r   rp  )r   rN   r   r   remove_columnr+   rP   )r7  r<   r   re  rS   s   &    r   test_table_remove_columnrz    s     	q
$%
q"D
 OODO8E			Q	BKKMtBxz:H99XrU   c                    \         P                  ! \        ^4      4      .pV P                  VR.R7      pVP	                  ^ 4      pVP                  4        \        V4      \        V4      8X  g   Q hVP                  ^ VP                  ^ 4      V^ ,          4      pVP                  4        VP                  V4      '       g   Q hR# )r"   rz   r{   N)
r   rN   r   r   ry  r+   r3   rb  r   rP   )r7  r<   r   re  rf  s   &    r   test_table_remove_column_emptyr|    s     	qD OODO.E			Q	BKKMr7c%j   	q%++a.%(	3BKKM99UrU   c                      . p R R.pRp\         P                  ! \        VR7      ;_uu_ 4        \        P                  P                  WR7       RRR4       R#   + '       g   i     R# ; i)rz   r   z?Length of names [(]2[)] does not match length of arrays [(]0[)]rA   r{   N)r,   r-   r.   r   r~   r   )r<   r|   messages      r   test_empty_table_with_namesr    sM    D#JEI 	z	1	1
T/ 
2	1	1	1s   !AA)	c                      \         P                  ! . 4      p V P                  . 8X  g   Q hV P                  \         P                  P                  . . 4      4      '       g   Q hR # r   )r   r   r_  rP   r~   r   r_  s    r   test_empty_tabler    sI    HHRLE###<<,,R45555rU   c                    \         P                  ! \        ^4      4      \         P                  ! . RO4      \         P                  ! \        ^^
4      4      .pV P                  V. ROR7      pVP                  . RO8X  g   Q hV P                  V. ROR7      pVP                  . RO4      pVP                  4        VP                  . RO8X  g   Q hVP                  V4      '       g   Q hVP                  R4      pVP                  4        VP                  . RO8X  g   Q hVP                  V4      '       g   Q hRp\        P                  ! \        VR7      ;_uu_ 4        VP                  R4       RRR4       R#   + '       g   i     R# ; i)	r"   r{   z.names must be a list or dict not <class 'str'>rA   z
not a listNr   r   )ehbeesea)r   rN   r   r   r_  rename_columnsr+   rP   r,   r-   ri   )r7  r<   r   rS   re  rf  r~  s   &      r   test_table_rename_columnsr    s0    	q
$%
q"D
 OODO8E000t+?@H 
		2	3BKKM??222299X 
		2	3BKKM??222299X>G	y	0	0\* 
1	0	0	0s   E88F		c                    \         P                  ! \        ^4      4      \         P                  ! . R
O4      \         P                  ! \        ^^
4      4      .pV P                  V. ROR7      pVP                  . RO8X  g   Q hV P                  V. ROR7      pVP                  RRRR/4      pVP                  4        WC8X  g   Q hV P                  V. ROR7      pV P                  V. ROR7      pVP                  RRRR/4      pVP                  4        WS8X  g   Q h\        P                  ! \        RR7      ;_uu_ 4        VP                  RRRR/4       R	R	R	4       R	#   + '       g   i     R	# ; i)r"   rz   r   r{   r  r  rn  rA   r   Nr   r   )r  r   r  )rz   rz   r   )r  r  r  )
r   rN   r   r   r_  r  r+   r,   r-   r  )r7  r<   r   rS   t1re  s   &     r   !test_table_rename_columns_mappingr    s/    	q
$%
q"D
 OODO8E000t+=>H			sD#u5	6BKKM>> OODO8Et+>?H			sD#u5	6BKKM>> 
x'>	?	?c4e45 
@	?	?	?s   >EE/	c            	         \         P                  ! \         P                  ! R \         P                  ! 4       4      \         P                  ! R\         P                  ! 4       4      .4      p \         P                  ! \         P                  ! RV 4      .4      p\         P
                  ! R
R.V R7      p\         P
                  ! RR.VR7      p\         P
                  ! RR.\         P                  ! 4       R7      p\         P                  P                  W#V.. ROR7      pVP                  4       pVP                  4        \         P                  P                  \         P
                  ! ^^.\         P                  ! 4       R7      \         P
                  ! RR.\         P                  ! 4       R7      \         P
                  ! RR.V R7      V.. ROR7      pVP                  V4      '       g   Q hR	# )r   r   nestr   r   r   FTr{   Nr   r      g      )@)r     g      -@)r  r   )za.xza.yzb.nestr   )r   r   r   r   r   rN   rW   r~   r   r   r+   rP   )ty1ty2rz   r   r   r   re  rS   s           r   test_table_flattenr  -  sM   
))RXXc288:.XXc2::<02 3C
))RXXfc*+
,C
(H%C0A
-/c:A
%RXXZ0AHH  !/ BE	BKKMxx##
!Qbhhj)
#s"**,/
*j)4		%
 , $ -H 99XrU   c                     \         P                  ! \         P                  ! ^.4      \         P                  ! R.4      .RR.R7      p \         P                  ! \         P                  ! ^.4      \         P                  ! R.4      .RR.R7      p\         P                  P	                  W.4      pVP                  4       pVP                  4        VP                  V4      '       g   Q hVP                   F  pVP                  ^8X  d   K  Q h	  R# )r   rz   rn  ro  r{   r   N)
r   r=  rN   r~   rF  rO   r+   rP   r^  r>  )r  r  r   combinedr   s        r   test_table_combine_chunksr  A  s    __bhhsmRXXse_=$($<1F__bhhsmRXXse_=$($<1FHH!!6"23E##%H??5!!!!||q    rU   c                  D   \         P                  ! \         P                  ! . RO4      P                  4       \         P                  ! . RO4      P                  4       \         P                  ! . RO4      .. ROR7      p \         P                  ! \         P                  ! . RO4      P                  4       \         P                  ! . RO4      P                  4       \         P                  ! . RO4      .. ROR7      p\         P                  P                  W.4      pVP                  R
R/4      pVP                  ^ 4      P                  ^ 4      P                  P                  \         P                  ! R R.4      4      '       g   Q hVP                  ^ 4      P                  ^4      P                  P                  \         P                  ! R	R .4      4      '       g   Q hVP                  ^4      P                  ^ 4      P                  P                  \         P                  ! . RO4      4      '       g   Q hVP                  ^4      P                  ^4      P                  P                  \         P                  ! RR.4      4      '       g   Q hVP                  \         P                  ! 4       4      p\         P                  ! . RO4      p\         P                  ! . RO4      pVP                  ^ 4      P                  ^ 4      P                  P                  V4      '       g   Q hVP                  ^ 4      P                  ^4      P                  P                  V4      '       g   Q hVP                  ^4      P                  ^ 4      P                  P                  V4      '       g   Q hVP                  ^4      P                  ^4      P                  P                  V4      '       g   Q hVP                  4       R. ROR. ROR. RO/8X  g   Q hVP                  P                  R
R/8X  g   Q hR# )r   r   N    rz   r   r   r{   r   s   key1s   value1r   ){   r  r  r  )TFNNr   )r   r   Nr   )r  r  r  N)FNNT)r  r  r  r   )r   r   Nr   r   r   Nr   )r  r  r  r  r  r  r  N)TFNNFNNT)r   r=  rN   r   r~   rF  r  r   r   r   rP   r   default_memory_poolr;  r   rg  )r  r  r   expected_dict_0expected_dict_1s        r   test_table_unify_dictionariesr  N  s3   __
,-??A
%&88:
*+- 5DEF __
./AAC
&'99;
*+- 5DEF
 HH!!6"23E))7I*>?E<<?  #..55
% " " " "<<?  #..55
&%!# # # #<<?  #..55
!# # # #<<?  #..55
#s    $$R%;%;%=>Ehh56Ohh/O<<?  #..55oFFFF<<?  #..55oFFFF<<?  #..55oFFFF<<?  #..55oFFFF??E6?!   
 <<  Wi$8888rU   c                     \         P                  ! R ^R^/R^/.\         P                  ! \         P                  ! 4       \         P                  ! 4       4      R7      .p \         P
                  P                  V R.R7      pVP                  RR7      pRV9   g   Q hVR,          p\        V4      ^8X  g   Q hVR ^R^/R^/.8X  g   Q hVP                  RR7      p\        V4      ^8X  g   Q hVRR ^R^//RR^//.8X  g   Q hR# )	r   r   zr   rz   r{   strict)maps_as_pydictsN)
r   rN   map_r)   rv   r~   r   r;  r3   r*   )r   r   
table_dictcolumn_list
table_lists        r   test_table_maps_as_pydictsr  s  s   
1c1Qx(bhhj1	
F HH  u 5E:J*S/K{q   CC+c1X6666:Jz?a3aa 01C#q?CCCCrU   c            
         \        \        ^4      4      . RO.p \        \        ^^
4      4      . RO.p\        P                  P	                  V  Uu. uF  p\        P
                  ! V4      NK  	  upRR7      p\        P                  P	                  V Uu. uF  p\        P
                  ! V4      NK  	  upRR7      p\        P                  ! W4.4      pVP                  4        \        V4      ^
8X  g   Q h\        P                  P	                  \        W4       UUu. uF!  w  r&\        P
                  ! W&,           4      NK#  	  uppRR7      pVP                  V4      '       g   Q hR# u upi u upi u uppi r"   r{   N)g      $g      g        rE   g      $@rf   rg   rh   rD   rE   r9  )r0   r   r   r~   r   rN   concat_tablesr+   r3   r   rP   r<   r=   r   r  re  r   r   rS   s           r   test_concat_tablesr    s<   U1X D
 	U1b\E
 
		D9Dqrxx{D9$. 
 
0B			E:Eqrxx{E:$. 
 
0B rh'F
OOv;"xx##14T1A%C1A &(XXae_1A%C*4 $ 6H =="""" ::%C   E(E-'E2
c                     \         P                  P                  \        \	        ^
4      4      .RR7      p \         P                  P                  \        R4      .RR7      p\
        P                  ! \         P                  RR7      ;_uu_ 4        \         P                  ! W.RR7      pRRR4       R#   + '       g   i     R# ; i)	r   r{   z@Unable to merge: Field a has incompatible types: int64 vs stringrA   
permissivepromote_optionsNrz   r   )	r   r~   r   r0   r   r,   r-   rT  r  )r  re  rC  s      r   test_concat_tables_permissiver    s    			tE"I/v		>B			tO45V		DB	T
V 
V bX|D
V 
V 
V 
Vr  c                  "   \         P                  P                  \        \	        ^
4      4      .RR7      p \
        P                  ! \        RR7      ;_uu_ 4        \         P                  ! W .RR7       RRR4       R#   + '       g   i     R# ; i)r   r{   z Invalid promote_options: invalidrA   invalidr  Nr  )	r   r~   r   r0   r   r,   r-   r.   r  r!  s    r   !test_concat_tables_invalid_optionr    sZ    
d59o.f=A	z)K	L	L
!; 
M	L	L	Ls   A==B	c                      \         P                  ! \        4      ;_uu_ 4        \        P                  ! R .4       R R R 4       R #   + '       g   i     R # ; ir   )r,   r-   AttributeErrorr   r  rX   rU   r   test_concat_tables_none_tabler    s0    	~	&	&
$  
'	&	&	&   AA	c                     ^ RI p \        P                  ! \        P                  ! R\        P                  ! 4       4      \        P                  ! R\        P                  ! 4       4      .4      p\        R4      pV P                  RVRV/4      pV P                  R\        P                  .^,          RV/4      p\        P                  P                  W1RR7      p\        P                  P                  WARR7      pVP                  P                  VP                  4      '       g   Q hVP                  P                  VP                  RR7      '       d   Q h\        P                  ! WV.4      pVP                  P                  VP                  RR7      '       g   Q hVP                  P                  VP                  4      '       g   Q hR# )	r   Nrz   r   abcdefghF)r   r+  Trh  )r   r   r   r   r)   r0   r   r[   r  r~   r   rP   r  )r   r   valuesr2  r3  table1table2table3s           r   1test_concat_tables_with_different_schema_metadatar    sO   YY
biik"
biik" F
 *F
,,VS&1
2C
,,bffX\37
8CXX!!#U!KFXX!!#U!KF==....}}##FMM$#GGGGv./F==dCCCC==....rU   c            
         \         P                  P                  \         P                  ! ^^.\         P                  ! 4       R7      .R.4      p \         P                  P                  \         P                  ! RR.\         P
                  ! 4       R7      .R.4      p\        P                  ! \        4      ;_uu_ 4        \         P                  ! W.RR7      pRRR4       XP                  \         P                  P                  \         P                  ! . RO\         P                  ! 4       R7      \         P                  ! . RO\         P
                  ! 4       R7      .RR.4      4      '       g   Q h\         P                  P                  \         P                  ! ^^.\         P                  ! 4       R7      .R	.4      p \         P                  P                  \         P                  ! ^^.\         P
                  ! 4       R7      .R	.4      p\        P                  ! \         P                  R
R7      ;_uu_ 4        \        P                  ! \        4      ;_uu_ 4        \         P                  ! W.RR7       RRR4       RRR4       R#   + '       g   i     EL; i  + '       g   i     L.; i  + '       g   i     R# ; i)r   r   int64_fieldrf   rg   float_fieldT)promoteNrc  z Schema at index 1 was different:rA   Fr   r   NNNNrf   rg   )r   r~   r   rN   rF   r   r,   warnsFutureWarningr  rP   r-   r  r  re  r   s      r   &test_concat_tables_with_promote_optionr    s   				1a&rxxz	*+m_
>B				3*2::<	01M?
DB 
m	$	$!!2(D9 
% ==--
#"((*5
'bjjl;/ 	}%' ( ( ( (
 
			1a&rxxz	*+cU
4B				1a&rzz|	,-u
6B 
r.P	Q	Q\\-((bXu5 ) 
R	Q 
%	$	$ )( 
R	Q	Qs0   =J8#J.J	5J.J	J+&J..J?	c            
      "   \         P                  P                  \         P                  ! ^^.\         P                  ! 4       R7      .R.4      p \         P                  P                  \         P                  ! RR.\         P
                  ! 4       R7      .R.4      p\         P                  ! W.RR7      pVP                  \         P                  P                  \         P                  ! . R
O\         P                  ! 4       R7      \         P                  ! . RO\         P
                  ! 4       R7      .RR.4      4      '       g   Q h\         P                  P                  \         P                  ! ^^.\         P                  ! 4       R7      .R.4      p\         P                  ! W.R	R7      pVP                  \         P                  P                  \         P                  ! . RO\         P                  ! 4       R7      .R.4      4      '       g   Q hR# )r   r   r  rf   rg   r  defaultr  Nr  r  r  rM   )	r   r~   r   rN   rF   r   r  rP   rv   )r  re  r   rf  s       r   !test_concat_tables_with_promotionr    sz   				1a&rxxz	*+m_
>B				3*2::<	01M?
DB rh	BF==--
#"((*5
'bjjl;/ 	}%' ( ( ( (
 
			1a&rxxz	*+m_
>B	,0F==--
BHHJ//    rU   c                     \         P                  P                  \         P                  ! ^^.\         P                  ! 4       R7      .R.4      p \         P                  P                  \         P                  ! ^^.\         P
                  ! 4       R7      .R.4      p\        P                  ! \         P                  RR7      ;_uu_ 4        \         P                  ! W.RR7       RRR4       R#   + '       g   i     R# ; i)r   r   rc  zUnable to merge:rA   r  r  N)
r   r~   r   rN   rF   r   r,   r-   rT  r  r  re  s     r   'test_concat_tables_with_promotion_errorr    s    				1a&rxxz	*+cU
4B				1a&rzz|	,-u
6B 
r((0B	C	C
"9= 
D	C	C	Cs   	C--C>	c                  z   \         P                  ! \        ^4      4      \         P                  ! . RO4      \         P                  ! . RO4      \         P                  ! . RO4      .p \         P                  P	                  V \        R4      R7      pVR,          P                  V^,          4      '       g   Q hVR	,          P                  V^,          4      '       g   Q hVR
,          P                  V^,          4      '       g   Q hVR,          P                  V^ ,          4      '       g   Q h\        P                  ! \        4      ;_uu_ 4        VR,           RRR4       \        P                  ! \        4      ;_uu_ 4        V^,           RRR4       R#   + '       g   i     LF; i  + '       g   i     R# ; i)r"   abcdr{   Nr   r   r  abbccddeefrs   r  r  )
r   rN   r   r~   r   tuplerP   r,   r-   ru   rZ  s     r   test_table_negative_indexingr    s+   
q
$%
*+
/0	D HH  U6] ;E9E!H%%%%9E!H%%%%9E!H%%%%9E!H%%%%	z	"	"b	 
# 
z	"	"a 
#	" 
#	" 
#	"	"s   
F
F)F&	)F:	c            
         \        \        ^4      4      . RO.p \        \        ^^
4      4      . RO.p\        P                  P	                  V  Uu. uF  p\        P
                  ! V4      NK  	  upRR7      p\        P                  P	                  V Uu. uF  p\        P
                  ! V4      NK  	  upRR7      p\        P                  ! W4.4      pVP                  4        \        V4      ^
8X  g   Q h\        P                  P	                  \        W4       UUu. uF!  w  r&\        P
                  ! W&,           4      NK#  	  uppRR7      pVP                  V4      '       g   Q hR# u upi u upi u uppi r  )r0   r   r   r   r   rN   concat_batchesr+   r3   r   rP   r  s           r   test_concat_batchesr    s=   U1X D
 	U1b\E
 
	#	#$$?$QRXXa[$$?*4 
$ 
6B		#	#%$@%QRXXa[%$@*4 
$ 
6B x(F
OOv;"~~))7:47G+I7Gtq ,.88AE?7G+I0: * <H =="""" %@$@+Ir  c                     \         P                  P                  \         P                  ! ^^.\         P                  ! 4       R7      .R.4      p \         P                  P                  \         P                  ! ^^.\         P
                  ! 4       R7      .R.4      p\        P                  ! \         P                  RR7      ;_uu_ 4        \         P                  ! W.4       RRR4       R#   + '       g   i     R# ; i)r   r   rc  z$not match index 0 recordbatch schemarA   N)
r   r   r   rN   rF   r   r,   r-   r  r  r  s     r   $test_concat_batches_different_schemar  6  s    		#	#	1a&rxxz	*+cU
4B		#	#	1a&rzz|	,-u
6B 
rC
E 
E
2(#
E 
E 
E 
Es   	C++C<	c                      \         P                  ! \        4      ;_uu_ 4        \        P                  ! R .4       R R R 4       R #   + '       g   i     R # ; ir   )r,   r-   r  r   r  rX   rU   r    test_concat_batches_none_batchesr  A  s0    	~	&	&
4&! 
'	&	&	&r  c                 ~   \         P                  ! \        ^4      4      \         P                  ! . RO4      .pV P                  V\	        R4      R7      p\         P
                  ! \         P                  ! R\         P                  ! 4       4      \         P                  ! R\         P                  ! 4       4      .4      p\         P
                  ! \         P                  ! R\         P                  ! 4       4      .4      pV \         P                  J d   RpMRpRV R	2p\        P                  ! \        VR
7      ;_uu_ 4        VP                  V4       RRR4       \        P                  ! \        VR
7      ;_uu_ 4        VP                  V4       RRR4       R#   + '       g   i     LP; i  + '       g   i     R# ; i)r"   r  r{   rG  r   rz   r   zrecord batchz1Target schema's field names are not matching the z's field names:.*rA   Nr   )r   rN   r   r   r  r   r   rv   r   r~   r,   r-   r.   r  )r7  r<   r   target_schema1target_schema2cls_namer~  s   &      r   &test_table_cast_to_incompatible_schemar  G  s)    	q
$%D OODdO4EYY
bhhj!
bhhj!  N YY
bhhj!  N bhh!B,.G 
z	1	1

>" 
2	z	1	1

>" 
2	1 
2	1	1	1	1s   >F<F+F(	+F<	c           
      "   \         P                  ! \        ^4      \         P                  ! 4       R7      \         P                  ! . R	O\         P                  ! 4       R7      \         P                  ! . R
O\         P
                  ! 4       R7      \         P                  ! . RO\         P                  ! 4       R7      .pV P                  V\        R4      R7      p\         P                  ! \        ^4      \         P                  ! 4       R7      \         P                  ! . R	O\         P                  ! 4       R7      \         P                  ! . RO\         P                  ! 4       R7      \         P                  ! . RO\         P                  ! 4       R7      .pV P                  V\        R4      R7      p\         P                  ! \         P                  ! R\         P                  ! 4       4      \         P                  ! R\         P                  ! 4       4      \         P                  ! R\         P                  ! 4       4      \         P                  ! R\         P                  ! 4       4      .4      pVP                  V4      pVP                  V4      '       g   Q hR# )r"   r   r  r{   rz   r   r   r   Nr   r  r  r   r   r   r!   r"   )r   rN   r   rF   rv   rj   r)   r   r  r   r   r   r  rP   r7  r<   r   rk  expected_tabletarget_schemacasted_tables   &      r   test_table_safe_castingr  j  s{    	q
+
$288:6
*>
/biikB	D OODfO6E 	q
+
$288:6
rxxz2
/biikB	M __]%-_HNII
bhhj!
bhhj!
bhhj!
biik"	 M ::m,L~....rU   c           
         \         P                  ! \        ^4      \         P                  ! 4       R7      \         P                  ! . RO\         P                  ! 4       R7      \         P                  ! . RO\         P
                  ! 4       R7      \         P                  ! . RO\         P                  ! 4       R7      .pV P                  V\        R4      R7      p\         P                  ! \        ^4      \         P                  ! 4       R7      \         P                  ! . RO\         P                  ! 4       R7      \         P                  ! . RO\         P                  ! 4       R7      \         P                  ! . RO\         P                  ! 4       R7      .pV P                  V\        R4      R7      p\         P                  ! \         P                  ! R\         P                  ! 4       4      \         P                  ! R\         P                  ! 4       4      \         P                  ! R\         P                  ! 4       4      \         P                  ! R\         P                  ! 4       4      .4      p\        P                  ! \         P                  RR	7      ;_uu_ 4        VP                  V4       R
R
R
4       VP                  VRR7      pVP!                  V4      '       g   Q hR
#   + '       g   i     L>; i)r"   r   r  r{   rz   r   r   r   	truncatedrA   NF)safer   )g?g@gffffff
@g@g      @r  r  )r   rN   r   rF   rv   rj   r)   r   r  r   r   r   r,   r-   r  r  rP   r  s   &      r   test_table_unsafe_castingr    s    	q
+
$288:6
*>
/biikB	D OODfO6E 	q
+
$288:6
rxxz2
/biikB	M __]%-_HNII
bhhj!
bhhj!
bhhj!
biik"	 M 
rk	:	:

=! 
; ::m%:8L~....	 
;	:s   KK+	c                     \         P                  ! ^ ^.\         P                  R7      p \        P                  ! 4       p\        P                  ! WR7      \        P                  ! V R,          VR7      .p\        P
                  ! \        P                  P                  4      ;_uu_ 4        \        P                  P                  VRR.R7       RRR4       R#   + '       g   i     R# ; i)r   r   r   r[  r  r  r{   N)
r[   rN   uint8r   r,   r-   r   r  r~   r   )rN   u8r   s      r   test_invalid_table_constructr    s    HHaV288,E	Bhhu&r(DEF	rvv**	+	+
VD$<8 
,	+	+	+s   *$CC)	zdata, klassrW  r   r   r   rE   c                    V! V ^ ,          4      V! V ^,          4      .p \         P                  ! R\         P                  ! 4       3R\         P                  ! 4       3.4      p\         P                  P                  WR7      pVP                  ^8X  g   Q hVP                  ^8X  g   Q hVP                  V8X  g   Q h\         P                  ! R\         P                  ! 4       3.4      p\        P                  ! \        4      ;_uu_ 4        \         P                  P                  WR7       RRR4       \         P                  ! R\         P                  ! 4       3R\         P                  ! 4       3.4      p\         P                  P                  WR7      p\         P                  P                  VP                  R4      P                  4      '       g   Q hVP                  ^8X  g   Q hVP                  ^8X  g   Q hVP                  V8X  g   Q h\         P                  ! R\         P                  ! 4       3R\         P                  ! R4      3.4      p\        P                  ! \         \"        34      ;_uu_ 4        \         P                  P%                  WR7       RRR4       \        P                  ! \        4      ;_uu_ 4        \         P                  P                  WRR.R7       RRR4       \        P                  ! \        4      ;_uu_ 4        \         P                  P                  WRR/R	7       RRR4       R#   + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)
r   rT  r  r<  Ns)r   r|   r  r  r   rg  )r   r   r}  r   r~   r   r  r   r,   r-   r.   types
is_float32r   r	   r   rB  ri   r=  r<   klassr   r   s   &&  r   test_from_arrays_schemar     so    $q'NE$q'N+DYY+h

-EFGFHH   5E!!!>>Q<<6!!! YY+,-F	z	"	"
T1 
# YY+h

-EFGFHH   5E88u||H5::;;;;!!!>>Q<<6!!! YY+hS8I-JKLF	+Y7	8	8
T1 
9 
z	"	"
T8JK 
# 
z	"	"
TFF;KL 
#	") 
#	"	" 
9	8 
#	" 
#	"	"s0   !L>7!M$M%$M8>M	M"	%M5	8N		c                    V P                  / 4      pVP                  ^ 8X  g   Q hVP                  ^ 8X  g   Q hVP                  \        P                  ! . 4      8X  g   Q hVP                  4       / 8X  g   Q h\        P                  ! R\        P                  ! 4       3R\        P                  ! 4       3.4      p\        R. RO3R. RO3.4      pV P                  V4      pVP                  ^8X  g   Q hVP                  ^8X  g   Q hVP                  V8X  g   Q hVP                  4       V8X  g   Q hRR/pVP                  V4      pV P                  W4R7      pVP                  V8X  g   Q hVP                  P                  V8X  g   Q hVP                  4       V8X  g   Q hV P                  W2R7      pVP                  V8X  g   Q hVP                  P                  V8X  g   Q hVP                  4       V8X  g   Q h\        P                  ! \        4      ;_uu_ 4        V P                  W2VR7       RRR4       \        P                  ! \        4      ;_uu_ 4        V P                  R	. RO/\        P                  ! R	\        P                  ! 4       3.4      R7       RRR4       \        P                  ! \         R
R7      ;_uu_ 4        V P                  R. ROR. RO/\        P                  ! R\        P"                  ! 4       3R\        P$                  ! 4       3R\        P&                  ! 4       3.4      R7       RRR4       \        P                  ! \        4      ;_uu_ 4        V P                  R. RO// R7       RRR4       R#   + '       g   i     EL_; i  + '       g   i     EL; i  + '       g   i     L|; i  + '       g   i     R# ; i)r   rT  r  Nr  r  r  r<  r  rY  zdoesn't contain.* c, drA   rz   r   r   r   rW  r   r   r   r"   N)r   r   r   r   )r   r!   r"   )r=  r  r   r   r   r;  r}  rj   r   with_metadatarg  r,   r-   r.   ri   r)   r  rF   rv   r   )r7  r   r   r<   rg  s   &    r   test_table_from_pydictr    s    OOBE!!!>>Q<<299R=(((??"""YY+h

-EFGF !34!>24 5DOOD!E!!!>>Q<<6!!!??$$$ H!!(+FOODO4E<<6!!!<<  H,,,??$$$ OODO0E<<6!!!<<  H,,,??$$$ 
z	"	"h? 
# 
y	!	!y)!yy4*=)>? 	 	A 
"
 
x'@	A	A)S),99bhhj!bhhj!bhhj!  	 	
 
B 
y	!	!i(4 
"	!) 
#	"	" 
"	!	!
 
B	A 
"	!	!s2   NANA2N)N<N	N&	)N9	<O	c                 H   \        R V! V ^ ,          4      3RV! V ^,          4      3.4      p \        P                  ! R \        P                  ! 4       3R\        P                  ! 4       3.4      p\        P
                  P                  V 4      pVP                  ^8X  g   Q hVP                  ^8X  g   Q hVP                  V8X  g   Q h\        P
                  P                  WR7      pVP                  ^8X  g   Q hVP                  ^8X  g   Q hVP                  V8X  g   Q h\        P                  ! R \        P                  ! 4       3R\        P                  ! 4       3.4      p\        P
                  P                  WR7      p\        P                  P                  VP                  R4      P                  4      '       g   Q hVP                  ^8X  g   Q hVP                  ^8X  g   Q hVP                  V8X  g   Q h\        P                  ! R \        P                  ! 4       3R\        P                  ! R4      3.4      p\        P                   ! \"        \$        34      ;_uu_ 4        \        P
                  P                  WR7       RRR4       R#   + '       g   i     R# ; i)rT  r  r<  r  N)r   r   r   r}  rj   r~   r=  r  r   r   r  r  r   r	   r   r,   r-   rB  ri   r  s   &&  r   #test_table_from_pydict_arrow_arraysr  %	  s    
 tAw08U47^2LMNDYY+h

-EFGF HH  &E!!!>>Q<<6!!! HH   5E!!!>>Q<<6!!! YY+h

-EFGFHH   5E88u||H5::;;;;!!!>>Q<<6!!! YY+hS8I-JKLF	+Y7	8	8
T1 
9	8	8	8s   %!JJ!	c                    \        R V! V ^ ,          4      3RV! V ^,          4      3.4      p \        P                  ! R \        P                  ! 4       3R\        P                  ! 4       3R\        P
                  ! 4       3.4      p\        P                  ! \        RR7      ;_uu_ 4        \        P                  P                  WR7       RRR4       \        P                  ! R \        P                  ! 4       3.4      p\        P                  P                  WR7      pVP                  ^8X  g   Q hVP                  V8X  g   Q hVP                  R .8X  g   Q hR#   + '       g   i     L; i)rT  r  r  rA   r<  N)r   r   r   r}  rj   rF   r,   r-   r  r~   r=  r  r_  r  s   &&  r   test_table_from_pydict_schemar	  G	  s    tAw08U47^2LMND YY+h

-E,. /F	xv	.	.
T1 
/ YY+,-FHH   5E!!!<<6!!!&))) 
/	.s   (!EE)	c           
      d	   V P                  . 4      pVP                  ^ 8X  g   Q hVP                  ^ 8X  g   Q hVP                  \        P                  ! . 4      8X  g   Q hVP                  4       . 8X  g   Q h\        P                  ! R\        P                  ! 4       3R\        P                  ! 4       3.4      pRRRR/RRR^/RRRR/.pV P                  V4      pVP                  ^8X  g   Q hVP                  ^8X  g   Q hVP                  V8X  g   Q hVP                  4       V8X  g   Q hRR	/pVP                  V4      pV P                  W4R
7      pVP                  V8X  g   Q hVP                  P                  V8X  g   Q hVP                  4       V8X  g   Q hV P                  W2R7      pVP                  V8X  g   Q hVP                  P                  V8X  g   Q hVP                  4       V8X  g   Q h\        P                  ! \        4      ;_uu_ 4        V P                  W2VR7       RRR4       \        P                  ! \        4      ;_uu_ 4        V P                  R^ /R^/R^/.\        P                  ! R\        P                  ! 4       3.4      R7       RRR4       \        P                  ! R\        P                  ! 4       3R\        P                   ! 4       3R\        P"                  ! 4       3.4      pV P                  R^R^/R^R^/R^R^/.VR7      pR^RRRR/R^RRRR/R^RRRR/.pVP                  V8X  g   Q hVP                  4       V8X  g   Q h\        P                  ! \        4      ;_uu_ 4        V P                  R^/R^/R^/./ R7       RRR4       RRRR/R^/RR/.pRRRR/RRR^/RRRR/.pV P                  V4      pVP                  ^8X  g   Q hVP                  ^8X  g   Q hVP                  4       V8X  g   Q hRR/RRR^/RR/.pRR/RR/RR/.pV P                  V4      pVP                  ^8X  g   Q hVP                  ^8X  g   Q hVP                  4       V8X  g   Q hR#   + '       g   i     ELX; i  + '       g   i     EL; i  + '       g   i     EL; i)r   rT  r  rW  r   r   r   Nr  r  r  r<  r  rY  rz   r   r   r   )from_pylistr  r   r   r   r*   r}  rj   r  rg  r,   r-   r.   ri   r)   rF   rv   r   )r7  r   r   r<   rg  r=   s   &     r   test_table_from_pylistr  _	  s    OOBE!!!>>Q<<299R=(((??"""YY+h

-EFGF R3'UHa(UHd+-D OOD!E!!!>>Q<<6!!!??$$$ H!!(+FOODO4E<<6!!!<<  H,,,??$$$ OODO0E<<6!!!<<  H,,,??$$$ 
z	"	"h? 
# 
y	!	!$T1Iay9!yy4*=)>? 	 	A 
"
 YYbhhj)bhhj)bhhj) F OO
q#q	CC+c1c1-=>  E !S$T*!S$T*!S$T*,D <<6!!!??$$$ 
y	!	!#qC8c1X6rB 
" R3'qMUOD b(C(dHa(eXt,.E OOD!E!!!>>Q??%%%RLUHa(tD b\e_d^E OOD!E!!!>>Q??%%%a 
#	"	" 
"	!	!( 
"	!	!s%   Q6AR
=R6R	
R	R/	c                     ^ RI p V P                  \        R. RO3R. R	O3.4      4      p\        P                  ! R\        P
                  ! 4       3R\        P                  ! 4       3.4      p\        P                  P                  WR7      p\        P                  P                  VP                  R4      P                  4      '       g   Q hVP                  P                  4       V8X  g   Q h\        P                  ! R\        P
                  ! 4       3R\        P                  ! R4      3.4      p\        P                   ! \"        \$        34      ;_uu_ 4        \        P                  P                  WR7       RRR4       \        P                  ! R\        P
                  ! 4       3R\        P&                  ! 4       3R\        P(                  ! 4       3.4      p\        P                   ! \*        RR7      ;_uu_ 4        \        P                  P                  WR7       RRR4       \        P                  ! R\        P
                  ! 4       3.4      p\        P                  P                  WR7      pVP,                  ^8X  g   Q hVP                  P                  4       V8X  g   Q hVP.                  R.8X  g   Q hR#   + '       g   i     ELL; i  + '       g   i     L; i)
r   NrT  r  r<  r  r  rA   r  r  )r   r   r   r   r   r}  r   r~   r   r  r  r   r	   remove_metadatar   r,   r-   rB  ri   rj   rF   r  r  r_  )r   r   r   r   s       r   test_table_from_pandas_schemar  	  s    	kF,>#?$,n#=#? @ 
AB YY+h

-EFGFHH   3E88u||H5::;;;;<<'')V333 YY+hS8I-JKLF	+Y7	8	8
R/ 
9 YY+h

-E,. /F	xv	.	.
R/ 
/ YY+,-FHH   3E!!!<<'')V333&))) 
9	8	8 
/	.s   !J;<!K;K	K	c                     ^ RI p \        R. RO3R. R	O3.4      pR\        P                  ! . RORR7      R\        P                  ! . R	ORR7      /p\        P                  ! R\        P
                  ! 4       3R\        P                  ! 4       3.4      pV P                  V4      p\        P                  ! V4      p\        P                  P                  V4      pVP                  V4      '       g   Q h\        P                  ! WCR7      p\        P                  P                  WCR7      pVP                  V4      '       g   Q h\        P                  ! V4      p\        P                  P                  V4      pVP                  V4      '       g   Q h\        P                  ! WR7      p\        P                  P                  WR7      pVP                  V4      '       g   Q hR# )
r   Nr   rz   r)   r   rv   r<  r   r   )r   r   r   rN   r   rv   r)   r   r   r~   r   rP   r=  )r   r   
d_explicitr   r   r  r  s          r   test_table_factory_functionr  	  sb    	c?+c9-=>?Arxxh?rxx	8:J YYbhhj)C+=>?F	aBXXb\FXX!!"%F==    XXb(FXX!!"!4F==    XXj!FXX!!*-F==     XXa'FXX!!!!3F==    rU   c                  @   \         P                  ! \        4      ;_uu_ 4        \        P                  ! R . RO/R .R7       RRR4       \        P
                  ! R \        P                  ! 4       3.4      p \        P                  ! R \        P                  ! . RO\        P                  ! 4       R7      /V 4      pVP                  R 4      P                  \        P                  ! 4       8X  g   Q h\        P                  ! . RORR7      .pR .p\        P                  ! W#4      pVP                  V8X  g   Q h\        P
                  ! R \        P                  ! 4       3.4      p \        P                  ! W 4      pVP                  V8X  g   Q hR#   + '       g   i     ELT; i)rz   r{   Nr   rF   r   )r,   r-   r.   r   r   r   rv   rN   rF   r   r	   r_  )r   r   r<   r|   s       r    test_table_factory_function_argsr  	  s   	z	"	"
#y!#/ 
# YYbhhj)*+FHHc288IBHHJ?@&IE<<!!RXXZ/// HHYW-.DEEHHT!E&&&YYbhhj)*+FHHT"E&&& 
#	"	"s   FF	c            	         ^ RI p \        P                  ! \        4      ;_uu_ 4        \        P
                  ! V P                  R. RO/4      R.R7       RRR4       \        P                  ! \        4      ;_uu_ 4        \        P
                  ! V P                  R. RO/4      RR/R7       RRR4       \        P                  ! R\        P                  ! 4       3.4      p\        P
                  ! V P                  R. RO/4      V4      pVP                  R4      P                  \        P                  ! 4       8X  g   Q hR#   + '       g   i     L; i  + '       g   i     L; i)r   Nrz   r{   r  r  r  r   )r   r,   r-   r.   r   r   r   r   rv   r   r	   )r   r   r   s      r   'test_table_factory_function_args_pandasr  
  s     
z	"	"
sI./u= 
# 
z	"	"
sI./66:JK 
# YYbhhj)*+FHHR\\3	"23V<E<<!!RXXZ/// 
#	" 
#	"s   -E>.EE	E$	c                  `   \         P                  ! \        R R7      ;_uu_ 4        \        P                  ! R4       RRR4       \         P                  ! \        RR7      ;_uu_ 4        \        P
                  ! R4       RRR4       R#   + '       g   i     LU; i  + '       g   i     R# ; i)z!Expected pandas DataFrame, pythonrA   zinvalid inputNzExpected pandas DataFrame)r,   r-   ri   r   r   r=  rX   rU   r   $test_factory_functions_invalid_inputr  
  sf    	y(K	L	L
! 
M 
y(C	D	D
( 
E	D 
M	L 
E	D	Ds   B	(B	B	B-	c                  4   \         P                  ! \         P                  ! R \         P                  ! 4       RR/R7      \         P                  ! R\         P                  ! 4       4      .RR/R7      p \         P
                  ! \         P                  ! . RORR7      \         P                  ! . ROR	R7      .V R
7      p\        V4      R8X  g   Q hVP                  RR7      R8X  g   Q hVP                  ^R7      R8X  g   Q hVP                  ^R7      R8X  g   Q hR# )rY  rd  re  r  rZ  r  r  r   r   rv   r<  zJpyarrow.Table
c0: int16
c1: int32
----
c0: [[1,2,3,4]]
c1: [[10,20,30,40]]Tshow_metadatazhpyarrow.Table
c0: int16
  -- field metadata --
  key: 'value'
c1: int32
-- schema metadata --
foo: 'bar'preview_colsz:pyarrow.Table
c0: int16
c1: int32
----
c0: [[1,2,3,4]]
...Nrw  r   r  r  r  )	r   r   r   r   rv   r   rN   rm   	to_stringr   tabs     r   test_table_repr_to_stringr"  '
  s   YYrxxz+0'*:<rxxz24 "( 02F
 ((BHH\8HH-G<>FLNCs8     ==t=, 1    ==a=( -    ==a=( -   rU   c                     \         P                  ! \         P                  ! R \         P                  ! 4       RR/R7      \         P                  ! R\         P                  ! 4       4      .RR/R7      p \         P
                  ! \         P                  ! . RO^
,          RR7      \         P                  ! . RO^
,          R	R7      .V R
7      p\        V4      R8X  g   Q hR# )rY  rd  re  r  rZ  r  r  r   r   rv   r<  zppyarrow.Table
c0: int16
c1: int32
----
c0: [[1,2,3,4,1,...,4,1,2,3,4]]
c1: [[10,20,30,40,10,...,40,10,20,30,40]]Nrw  r  )r   r   r   r   rv   r   rN   rm   r   s     r   "test_table_repr_to_string_ellipsisr$  Q
  s    YYrxxz+0'*:<rxxz24 "( 02F
 ((BHH\"_7;HH-b0w?A "C s8 - - - -rU   c                  4   \         P                  ! \         P                  ! R \         P                  ! 4       RR/R7      \         P                  ! R\         P                  ! 4       4      .RR/R7      p \         P
                  ! \         P                  ! . RORR7      \         P                  ! . ROR	R7      .V R
7      p\        V4      R8X  g   Q hVP                  RR7      R8X  g   Q hVP                  ^R7      R8X  g   Q hVP                  ^R7      R8X  g   Q hR# )rY  rd  re  r  rZ  r  r  r   r   rv   r<  zLpyarrow.RecordBatch
c0: int16
c1: int32
----
c0: [1,2,3,4]
c1: [10,20,30,40]Tr  znpyarrow.RecordBatch
c0: int16
  -- field metadata --
  key: 'value'
c1: int32
-- schema metadata --
foo: 'bar'r  z>pyarrow.RecordBatch
c0: int16
c1: int32
----
c0: [1,2,3,4]
...Nrw  r  )	r   r   r   r   rv   r=  rN   rm   r  r   r   s     r    test_record_batch_repr_to_stringr'  c
  s   YYrxxz+0'*:<rxxz24 "( 02F
 OORXXlAXX&6WEG#)+E u:     ???. 3    ???* /    ???* /   rU   c                     \         P                  ! \         P                  ! R \         P                  ! 4       RR/R7      \         P                  ! R\         P                  ! 4       4      .RR/R7      p \         P
                  ! \         P                  ! . RO^
,          RR7      \         P                  ! . RO^
,          R	R7      .V R
7      p\        V4      R8X  g   Q hR# )rY  rd  re  r  rZ  r  r  r   r   rv   r<  zpyarrow.RecordBatch
c0: int16
c1: int32
----
c0: [1,2,3,4,1,2,3,4,1,2,...,3,4,1,2,3,4,1,2,3,4]
c1: [10,20,30,40,10,20,30,40,10,20,...,30,40,10,20,30,40,10,20,30,40]Nrw  r  )r   r   r   r   rv   r=  rN   rm   r&  s     r   )test_record_batch_repr_to_string_ellipsisr)  
  s    YYrxxz+0'*:<rxxz24 "( 02F
 OORXXl2oGDXX&6r&9HJ#)+E u: I I I IrU   c                     R p Rp\        V. RO3V . RO3.4      p\        P                  ! V \        P                  ! 4       3V\        P                  ! 4       3.4      p\        P
                  ! W#R7      pV^ ,          P                  ^ 4      P                  \        P                  ! . RORR7      4      '       g   Q hV^,          P                  ^ 4      P                  \        P                  ! . RORR7      4      '       g   Q hR# )	u   ääähu   öööfr<  rv   r   r)   Nr   r   )	r   r   r   rv   r)   r   r   rP   rN   )col_acol_br   r   r   s        r   "test_table_function_unicode_schemar-  
  s    EE 	e_-y/ABCAYY
+eRYY[-ABCFXXa'F!9??1$$RXXig%FGGGG!9??1$$RXXoH%MNNNNrU   c                  0   \         P                  ! \         P                  ! . RO4      \         P                  ! . RO4      .RR.4      p V P                  \         P                  ! ^^.4      4      P	                  V P                  ^^4      4      '       g   Q hR# )r   Nrn  ro  rp  rq  )r   r   rN   rr  rP   r}   r_  s    r   %test_table_take_vanilla_functionalityr/  
  sp    HH	$	%	+	,	.	tE
 ::bhh1v&'..u{{1a/@AAAArU   c                     \         P                  ! \         P                  ! . RO4      \         P                  ! . RO4      .RR.4      p \         P                  ! \         P                  ! ^R.4      \         P                  ! RR.4      .RR.4      pV P                  \         P                  ! ^ R.4      4      P	                  V4      '       g   Q hR# )r   Nrz   rn  ro  rp  rq  r   r   rN   rr  rP   )r   result_with_null_indexs     r   test_table_take_null_indexr3  
  s    HH	$	%	+	,	.	tE
  XX	1d)		3+		 	t
 ::bhh4y)*112HIIIIrU   c                     \         P                  ! \         P                  ! . RO4      \         P                  ! . RO4      .RR.4      p \         P                  ! \         P                  ! ^R.4      \         P                  ! RR.4      .RR.4      pV P                  \         P                  ! ^^.4      4      P	                  V4      '       g   Q hR# )r   Nr   r   rn  ro  rp  rq  r1  )r   result_non_consecutives     r   test_table_take_non_consecutiver6  
  s    HH	$	%	+	,	.	tE
  XX	1d)		3*			t
 ::bhh1v&'../EFFFFrU   c                     \         P                  ! . RO4      p \         P                  ! . RO4      p\         P                  ! ^^.^^.^^.R^	^
..4      p\         P                  ! WV.. RO4      pVP                  R.4      p\         P                  ! V .R.4      pVP	                  V4      '       g   Q hVP                  RR.4      p\         P                  ! W!.RR.4      pVP	                  V4      '       g   Q hVP                  ^ .4      p\         P                  ! V .R.4      pVP	                  V4      '       g   Q hVP                  ^^.4      p\         P                  ! W!.RR.4      pVP	                  V4      '       g   Q hVP                  RR/4      pVP                  RR.4      pRVP                  P                  9   g   Q h\        P                  ! \        RR	7      ;_uu_ 4        VP                  R
.4       RRR4       \        P                  ! \        RR	7      ;_uu_ 4        VP                  ^.4       RRR4       VP                  RR.4      p\         P                  ! W.RR.4      pVP	                  V4      '       g   Q h\         P                  ! WV.. RO4      p\        P                  ! \        RR	7      ;_uu_ 4        VP                  R.4       RRR4       VP                  R.4      p\         P                  ! V.R.4      pVP	                  V4      '       g   Q hR#   + '       g   i     EL6; i  + '       g   i     EL; i  + '       g   i     L~; ir  )r   rN   r   r  rP   r  r   rg  r,   r-   r  ru   )r  r  r  r   r   rS   r  s          r   test_table_selectr8  
  s   	$	%B	+	,B	Aq6Aq6Aq64!R9	:BHHbb\#56E \\4&!Fxxtf%H==""""\\4,'Fxx4,/H=="""" \\1#Fxxtf%H==""""\\1a&!Fxx4,/H=="""" **C=9F]]D$<(F6==))))) 
x'B	C	CdV 
D 
z)>	?	?aS 
@ \\4,'Fxx4,/H=="""" HHbb\#56E	x'B	C	CdV 
D \\4&!Fxxtf%H==""""% 
D	C	C 
@	?	? 
D	Cr  c                  ,
   R  p \         P                  ! \         P                  ! . RO4      \         P                  ! . RO4      \         P                  ! . RO4      \         P                  ! . RO4      .. ROR7      pVP                  R4      P	                  R.4      pV ! VP                  4       4      R. ROR. RO/8X  g   Q hVP                  R4      P	                  RR.4      pV ! VP                  4       4      R. ROR. ROR. RO/8X  g   Q hVP                  R4      P	                  R.4      pV ! VP                  4       4      R. ROR. RO/8X  g   Q hVP                  R4      P	                  RR .4      pV ! VP                  4       4      R. ROR	. R!OR
. R"O/8X  g   Q hVP                  R4      P	                  R#R.4      pV ! VP                  4       4      R. ROR. ROR. R$O/8X  g   Q hVP                  RR.4      P	                  R.4      pV ! VP                  4       4      R. R%OR. R&OR. R'O/8X  g   Q hVP                  R4      P	                  RR R#. R3R.4      pV ! VP                  4       4      R. ROR	. R!OR
. R"OR. R$OR. ROR. RO/8X  g   Q h\         P                  ! \         P                  ! . R(O4      \         P                  ! . R)O4      .RR.R7      pVP                  R.4      P	                  RR\        P                  ! RR7      3.4      pVP                  4       RR.R^./8X  g   Q hVP                  R.4      P	                  RR\        P                  ! RR7      3.4      pVP                  4       RR.R^./8X  g   Q hVP                  R.4      P	                  RR\        P                  ! RR7      3.4      pVP                  4       RR.R^./8X  g   Q hVP                  R.4      P	                  . R3RR\        P                  ! RR7      3.4      pVP                  4       RR.R^.R^./8X  g   Q hVP                  R.4      P	                  . R3.4      pVP                  4       RR.R^./8X  g   Q h\         P                  ! R. R*OR\        ^4      /4      p\         P                  P                  VP                  ^R7      4      pVP                  R4      P	                  R.4      pV ! VP                  4       4      RRR.R^^	./8X  g   Q hR# )+c                 f   R V 9   d%   \        \        V R,          V R ,          4      4      pM	V R,          p\        V4      pR\        V R,          4      /pV  FW  pVR8X  d   K  \        \        WV,          4      4      pV F*  pVP	                  V. 4      P                  WV,          4       K,  	  KY  	  V# )keys2keys)r  r   sortedr<  
setdefaultr   )r   r<  sorted_keyssorted_dentryr  ks   &      r   sorted_by_keys+test_table_group_by.<locals>.sorted_by_keys  s    a<QvY'
34DV9DTlF1V9-.E#deH-.F ##E2.55fi@ !	  rU   rz   r   r<  r;  r  r{   
values_sumvalues_count
values_maxbigvalues_sumbigvalues_max	count_allNcountr1   )mode	only_null
only_validr  rz   rz   r   r   r   )XrP  YZrR  r  )r   r  r  r  r  )r<  r;  r  	bigvalues)r  hash_sumr   )r   r%   r"   )r  
hash_count)r   r   r   )r  r4   )r  max)rS  r4   )r   r!   r"   )r  r  r  )rS  rV  )r  r  r  )rz   r   r   r   )rP  rQ  rR  rR  )r   r   r!   r"   )rz   rz   rz   )r   NN)rz   r   rz   r   rz   r   )r   r   rN   group_by	aggregater;  pcCountOptionsr   r~   rF  r/  )rC  r   rtable_with_nullstable_with_chunkss        r   test_table_group_byr^    s     HH
*+
*+
!
%&	
 67E 	v((* 	A !++-(i-   
 	v(( * 	A !++-(i	-    	v((* 	A !++-(i-   
 	v((* 	A !++-(i-    	v((* 	A !++-(i-    	()335 	A !++-($%l-    	v((	[* 	A !++-(iYi-    xx
!
!! h!
 	!!6(+55	7BOO787 	A ;;=   
 	!!6(+55	7BOO=>7 	A ;;=   
 	!!6(+55	7BOO>?7 	A ;;=   
 	!!6(+55	[	7BOO>?7 	A ;;=aS    	!!6(+55	[7 	A ;;=aS   
 HH.%( E --q)+""6*446G5HIA!++-(c
q!f-   rU   c                  :   \         P                  ! R . RORR R.^,          /4      p \         P                  ! R . RORRR .^,          /4      p\         P                  ! W.4      p\        P                  ! \
        4      ;_uu_ 4        VP                  R4      P                  R.4       RRR4       VP                  RRR7      P                  R.4      p\         P                  ! RR R.R^^./4      pVP                  V4      '       g   Q hR#   + '       g   i     Ll; i)rz   r   NF)use_threadsa_firstrw  )rz   first)	r   r   r  r,   r-   rB  rW  rX  rP   )r  r  r   r   rS   s        r   test_table_group_by_firstrc    s     XXsL#SzA~>?FXXsL#SzA~>?Ff-.E	*	+	+s%%~&67 
, ^^CU^3==~>NOFxxsCj)aV<=H=="""" 
,	+s   "D

D	c                     \         P                  ! R . ROR. ROR. RO/4      p \        P                  ! \        RR7      ;_uu_ 4        V P                  R 4      P                  R.4       RRR4       V P                  R 4      P                  R.4      p\         P                  ! R . ROR	/ / / ./4      pVP                  V4      '       g   Q h\        P                  ! RR
7      pV P                  R 4      P                  RRV3.4      p\         P                  ! R . ROR	R^
R^(/R^R^2/R^R^</./4      pVP                  V4      '       g   Q hR#   + '       g   i     L; i)grouprd  hwre  z accepts 3 arguments but 2 passedrA   pivot_widerNkey_value_pivot_wider)	key_names)r   r   r   r   r   r   )rf  rf  rf  rg  rg  rg  )r   r  r  r  r  r  )rd  rh  rd  re  )rk  rh  r   )rf  rg  )
r   r   r,   r-   r.   rW  rX  rP   rY  PivotWiderOptions)r   r   rS   optionss       r   test_table_group_by_pivot_widerrn    sO   HHg1;79 :E 
z)K	L	Lw))+A*BC 
M
 ^^G$..0Q/RSFxx)02r2,@ AH==""""""Z8G^^G$..
M7	346Fxx	)	 2sB#r3!3c2sB5G#I	JKH ==""""# 
M	Ls   "EE	c                  z   \         P                  P                  R . RO/4      p V P                  4       pV P                  VP                  8X  g   Q hWP                  4       8X  g   Q hV P                  ^R7      pVP                  4       P                  ^8X  g   Q hVP                  4       P                  ^8X  g   Q hR# )r   r  Nr   )r   r~   r=  	to_readerr   read_allread_next_batchr   )r   rQ  s     r   test_table_to_recordbatchreaderrs    s    HH  #y!12E__F<<6==(((OO%%%%__1_-F!!#,,111!!#,,111rU   c            
         \         P                  ! R . ROR. RO/4      p \         P                  ! R. R	OR. R
O/4      pV P                  VR R4      pVP                  4       \         P                  ! R . ROR. ROR. RO/4      8X  g   Q hV P                  VR RRR7      pVP                  4       P	                  R 4      \         P                  ! R . ROR. ROR. RO/4      8X  g   Q hR# )colAcol2colBcol3N
full outer	join_typer   r   r#   rz   r   rc  rr   r   r   rR  rH  rG  rG  rH  Nr   r   r#   rr   rz   r   rc  NrG  rH  NrR  r   r   joinrO   sort_byr  s      r   test_table_joinr    s    		 
B
 

 
B
 WWR(F  "bhh	 0 '    WWR<W@F  "**62bhh%%@ 7   rU   c            
         \         P                  ! R . ROR. RO/4      p \         P                  ! R . R	OR. R
O/4      pV P                  VR 4      pVP                  4       \         P                  ! R . ROR. ROR. RO/4      8X  g   Q hV P                  VR RRR7      pVP                  4       P	                  R 4      \         P                  ! R . ROR. ROR. RO/4      8X  g   Q hR# )ru  rv  rx  Nry  _r)r{  right_suffixr|  r}  r~  r  r  r  r  r  r  r  s      r   test_table_join_unique_keyr    s    		 
B
 

 
B
 WWR F  "bhh	 0 '    WWR<dWKF  "**62bhh%%@ 7   rU   c            	      P   \         P                  ! R . ROR. ROR. R	O/4      p \         P                  ! R . R
OR. ROR. RO/4      pV P                  VR RR7      pVP                  4       P	                  R 4      \         P                  ! . RO. RO. RO. RO. RO.. ROR7      8X  g   Q hR# )ru  rw  colValsry  rz  Nr{   r|  r   r  r  r}  r~  rr   r  r   r  r  )r   r  r  Nr  )r   r  Nrr   r  )ru  rw  r  rw  r  r  r  s      r   test_table_join_collisionsr    s    		? 
B 

? 
B WWR<W8F  "**62bhh@ <7= = = =rU   c           
          V P                  R . ROR. ROR. RO/4      pVP                  \        P                  ! R4      ^28  4      pW P                  R ^^.R^
^.RRR./4      8X  g   Q hR# )	ru  rw  Nr  rz   r   )r   r   r   r#   )r   r  Nr  )rz   r   r   rc  )r=  filterrY  r   )r7  r  r   s   &  r   test_table_filter_expressionr  %  s     
"' 
B YYrxx'",-F__ARC:&    rU   c            
      z   \         P                  ! R . ROR. ROR. RO/4      p \         P                  ! R . ROR. ROR. R	O/4      p\         P                  ! W.4      pVP                  \        P
                  ! R 4      ^
8  4      pVP                  4       \         P                  ! R . R
OR. ROR. RO/4      8X  g   Q hR# )ru  rw  r  Nr|  r  r}  r~  r  r  )r   r   r#   r   r   )r   r  r  r  r   )rz   r   rc  rH  rG  )r   r   r  r  rY  r   rO   )r  re  rf  r   s       r   #test_table_filter_expression_chunksr  6  s    		? 
B
 

? 
B 
		2(	#BYYrxx'",-F  "bhh$,0 '   rU   c                  (   \         P                  ! R . ROR. RO/4      p \         P                  ! R. ROR. ROR. ROR. ROR. ROR. RO/4      pV P                  VR R4      pVP                  4       \         P                  ! R . ROR. ROR. ROR. ROR. ROR. ROR. RO/4      8X  g   Q hV P                  VR RR	R
7      pVP                  4       P	                  R 4      \         P                  ! R . ROR. ROR. ROR. ROR. ROR. ROR. RO/4      8X  g   Q hR# )ru  rv  rw  rx  col4col5col6col7Nry  rz  r|  r}  r~  r  r  r  r  r  r  r  s      r   test_table_join_many_columnsr  M  s1   		 
B
 

 
B WWR(F  "bhh	     0 '    WWR<W@F  "**62bhh%%%%%%@ 7   rU   c            
      F   \         P                  P                  R . ROR. RO/4      p \         P                  P                  R. R	OR. R
OR. RO/4      pV P                  VR R^RRR7      pVP	                  4       \         P
                  ! R . ROR. ROR. RO/4      8X  g   Q hR# )ru  rv  rw  rx  colConby	toleranceright_onright_byN)r   r   r"   r#   r%   )rz   r   rz   r   rc  )r   r'   r-  )rz   r   g)rf   rh   rE   )rf   NNNN)r   r~   r=  	join_asofrO   r   )r  re  r[  s      r   test_table_join_asofr  t  s    			) 
B
 
		
 
B 	
v&A& 	 	A ),+ "   rU   c                  <   \         P                  ! R . ROR. ROR. RO/4      p \         P                  ! R. R	OR. R
OR . ROR. RO/4      pV P                  VRR R.^R7      pVP                  R 4      \         P                  ! R . ROR. ROR. ROR. RO/4      8X  g   Q hR# )ru  rw  r  r  r  r  r  Nr|  r  r   r  r  r~  r   r   r!   )NrH  N)r   r   r  r  r  s      r    test_table_join_asof_multiple_byr    s    		i 
B 
?
i	 
B \\
t(A  F >>&!RXX	i$	/ &   rU   c                      \         P                  ! R . RO/4      p \         P                  ! R. ROR . RO/4      pV P                  VR . ^R7      pV\         P                  ! R . ROR. RO/4      8X  g   Q hR# )r  r  r  Nr   r  r  )rR  rR  rH  )r   r   r  r  s      r   test_table_join_asof_empty_byr    s    	i 
B 
?i 
B
 \\
ta  F RXXi?    rU   c                  b   \         P                  ! R . R	OR. R
OR. ROR. RO/4      p \         P                  ! R. ROR. ROR. ROR . ROR. RO/4      pRp\        P                  ! \        VR7      ;_uu_ 4        V P                  VRR R.^RR R.R7       RRR4       R#   + '       g   i     R# ; i)ru  rw  r  r  colUniqzXColumns {'colVals'} present in both tables. AsofJoin does not support column collisions.rA   r  Nr|  r  r   r}  r  r  r  r   r  r~  r  )r   r   r,   r-   r.   r  r  re  rJ   s      r   test_table_join_asof_collisionsr    s    		i?	 
B 
??
i 
B	7  
z	-	-
4VV,VV$4 	 	
 
.	-	-	-s   7BB.	c                  x   \         P                  ! R . R	OR. R
OR. RO/4      p \         P                  ! R. ROR. ROR . ROR. RO/4      pRp\        P                  ! \         P                  P
                  VR7      ;_uu_ 4        V P                  VRR R.^RR .R7       RRR4       R#   + '       g   i     R# ; i)ru  rw  r  r  r  z)inconsistent size of by-key across inputsrA   r  Nr|  r  r   r  r  r~  r  r   r   r,   r-   r   r  r  r  s      r   'test_table_join_asof_by_length_mismatchr    s    		i 
B 
??
i	 
B 6C	rvv**#	6	6
4VV,VH 	 	
 
7	6	6	6s   B((B9	c                  n   \         P                  ! R . ROR. R	O/4      p \         P                  ! R. R
OR. ROR . ROR. RO/4      pRp\        P                  ! \         P                  P
                  VR7      ;_uu_ 4        V P                  VRR .^RR .R7       RRR4       R#   + '       g   i     R# ; i)ru  r  r  r  zCExpected by-key type int64 but got double for field colA in input 1rA   r  Nr|  r   r  r  )g     X@rg   rf   r  r  r  s      r   %test_table_join_asof_by_type_mismatchr    s    		i 
B
 
??i	 
B PC	rvv**#	6	6
4VHVH 	 	
 
7	6	6	6   ?B##B4	c                  n   \         P                  ! R . ROR. R	O/4      p \         P                  ! R. R
OR. ROR . ROR. RO/4      pRp\        P                  ! \         P                  P
                  VR7      ;_uu_ 4        V P                  VRR .^RR .R7       RRR4       R#   + '       g   i     R# ; i)ru  r  r  r  zAExpected on-key type int64 but got double for field on in input 1rA   r  Nr|  r   r  r  r~  )rg   rh   rD   r  r  s      r   %test_table_join_asof_on_type_mismatchr    s    		i 
B
 
??
l	 
B NC	rvv**#	6	6
4VHVH 	 	
 
7	6	6	6r  c           	         V P                  R R^.RRR./4      p\        P                  ! \        P                  ! R RRR7      \        P                  ! RRRR7      .4      p\        P
                  ! \        4      ;_uu_ 4        VP                  V4       RRR4       V P                  R R^.RRR./4      pVP                  V4      P                  V8X  g   Q hR#   + '       g   i     LM; i)rz   Nr   TrF   rJ  boolF)r=  r   r   r   r,   r-   r.   r  )r7  r   
new_schemas   &  r   test_table_cast_invalidr    s     OOS4)S4,?@EBHHS'DAHHS&5AC DJ	z	"	"

: 
# OOS4)S5$-@AE::j!((J666	 
#	"s   CC)	c                    V P                  \        P                  ! . RO4      \        P                  ! . R	O4      .RR.R7      pVP                  R4      P	                  4       R. R
OR. RO/8X  g   Q hVP                  R.4      P	                  4       R. ROR. RO/8X  g   Q hV P                  \        P                  ! . RO\        P
                  ! 4       R7      \        P                  ! . RO4      .RR.R7      pVP                  R.4      pVP	                  4       pVR,          . RO8X  g   Q hVR,          . RO8X  g   Q hVP                  R.4      pVP	                  4       pVR,          . RO8X  g   Q hVR,          . RO8X  g   Q hR# )r   r   rz   r  r<  r{   r   N)r   r   r!   r   r"   )r   rz   r   rz   r   rO  r  )r  
descending)r   r   r   rz   rz   )r"   r!   r   r   r   )r"   r%   r%   #   )r   carr   foobar)rz   r  )r  r%   r%   r"   )r  r  r   r   )rz   	ascending)r   r   rN   r  r;  rF   )r7  r   r!  
sorted_tabsorted_tab_dicts   &    r   test_table_sort_byr  ,  s    OO
!
*+   !E
 ==",,.)/3   
 ==234>>@)/E   
 //
RXXZ0
01 3Z  C
 123J **,O3=0003#BBBB012J **,O3=0003#BBBBrU   constructorc                 P   V ! . RO. R	O.RR.R7      p\         P                  ! V4      p\         P                  ! ^^.^^.^^..RR7      p\         P                  P	                  W#4       \         P                  ! VRR7      p\         P                  P	                  W#4       VP
                  R8X  g   Q hVP                  . 4      p\         P                  ! V4      p\         P                  ! R
4      p\         P                  P	                  W#4       VP
                  R8X  g   Q h\         P                  ! VRR7      p\         P                  P	                  W#4       VP
                  R8X  g   Q hVP                  ^ ^ 4      p\         P                  ! V4      p\         P                  ! R4      p\         P                  P	                  W#4       VP
                  R8X  g   Q h\         P                  ! VRR7      p\         P                  P	                  W#4       VP
                  R8X  g   Q hR# )r   rz   r   r{   rj   r   rv   Nr   rC   )r   r   r   )	r[   r\   rN   r   assert_allcloser   r  emptyr}   )r  r   r   rS   r  r  s   &     r   test_numpy_asarrayr  S  s    O4S#JGEZZFxx!Q!Q!Q0	BHJJv0ZZW-FJJv0<<7""" \\"FZZFxxHJJv0<<9$$$ZZg.FJJv0<<7""" [[AFZZFxxHJJv0<<9$$$ZZg.FJJv0<<7"""rU   c                    V ! . RO. RO.RR.R7      p\         P                  ! ^^.^^.^^..RR7      p\        \         P                  4      \        R4      8  d:   \         P                  ! VRR7      p\         P                  P                  W24       R# \        P                  ! \        R	R
7      ;_uu_ 4        \         P                  ! VRR7       RRR4       R#   + '       g   i     R# ; i)r   rz   r   r{   rj   r   z
2.0.0.dev0F)copyzUnable to avoid a copyrA   Nr   rC   )	r[   rN   r   __version__r   assert_array_equalr,   r-   r.   )r  r   rS   r   s   &   r   test_numpy_array_protocolr  t  s     O4S#JGExx!Q!Q!Q0	BHr~~!66%e,


%%f7 ]]:-EFFHHU' GFFFs   8CC,	c                  |   ^p \         P                  P                  R\        V 4      R\        V 4       UUu. uF  p\        ^4       Uu. uF  q"NK  	  upNK  	  upp/4      p\         P                  P                  R\        V 4      R\        V 4       Uu. uF  qNK  	  up/4      p\        P
                  ! \         P                  P                  4      ;_uu_ 4       pVP                  VRRR7       RRR4       RpV\        XP                  4      9   g   Q h\        P
                  ! \         P                  P                  4      ;_uu_ 4       pVP                  VRRR7       RRR4       V\        VP                  4      9   g   Q hR# u upi u uppi u upi   + '       g   i     L; i  + '       g   i     LQ; i)r  r  array_columnre  innerrz  NzOData type list<item: int64> is not supported in join non-key field array_column)r   r~   r=  r   r,   r-   r   r  r  rm   re  )	NUM_ITEMSr   r  r  re  excinfoexp_error_msgs          r   test_invalid_non_join_columnr    sT   I			eIi8HI8H1U1X.X!X.8HI 
B 
		eIU9-.-!-. 
B 
rvv**	+	+w
DG, 
,/MC.... 
rvv**	+	+w
DG, 
,C....# /I / 
,	+ 
,	+s5   F
FF
FFF+FF(	+F;	c                  P    \         P                  ! R 4      p V P                  ^ 4      # )zpyarrow.cuda)r,   importorskipContext)cudas    r   cuda_contextr    s     ~.D<<?rU   c                      \         P                  ! \         P                  ! R \         P                  ! 4       4      \         P                  ! R\         P                  ! 4       4      .4      # )rY  rZ  )r   r   r   rv   rX   rU   r   r   r     s8    99bhhtRXXZ0"((42LMNNrU   c                     \         P                  ! . ROV P                  ^ 4      P                  4      \         P                  ! . ROV P                  ^4      P                  4      .# )r   r  r\  )r   rN   r   r	   r<  s   &r   
cpu_arraysr    sG    HH_fll1o&:&:;HH+V\\!_-A-ABD DrU   c                 `    V Uu. uF  q"P                  V P                  4      NK  	  up# u upi r   copy_tomemory_manager)r  r  rI   s   && r   cuda_arraysr    s'    @JK
KK334
KKKs   #+c                 V    \         P                  ! V 4      pVP                  R J g   Q hV# )Tr   r(   is_cpu)r  r(   s   & r   cpu_chunked_arrayr    s,    $$Z0M4'''rU   c                 V    \         P                  ! V 4      pVP                  R J g   Q hV# Fr  )r  r(   s   & r   cuda_chunked_arrayr    s,    $$[1M5(((rU   c                 b    \         P                  ! W,           4      pVP                  R J g   Q hV# r  r  )r  r  r(   s   && r   cpu_and_cuda_chunked_arrayr    s/    $$Z%=>M5(((rU   c                 0    \         P                  ! WR 7      # r<  )r   r=  )r  r   s   &&r   cpu_recordbatchr    s    ??:55rU   c                 8    VP                  V P                  4      # r   r  )r  r  s   &&r   cuda_recordbatchr    s    ""<#>#>??rU   c                 4    \         P                  ! W.V R 7      # r  r   r   )r   r  s   &&r   	cpu_tabler    s    88&:6JJrU   c                 4    \         P                  ! W.V R 7      # r  r  )r   r  s   &&r   
cuda_tabler    s    88'<VLLrU   c                 4    \         P                  ! W.V R 7      # r  r  )r   r  r  s   &&&r   cpu_and_cuda_tabler    s    88&;FKKrU   c                 n   VP                   VP                   8X  g   Q hVP                  4       VP                  4       8X  g   Q h\        V4      \        V4      8X  g   Q h\        V4      \        V4      9   g   Q hVP	                  4        \
        P                  ! \        4      ;_uu_ 4        VP	                  R R7       RRR4       \
        P                  ! \        4      ;_uu_ 4        VP                   RRR4       \
        P                  ! \        4      ;_uu_ 4        VP                   RRR4       \
        P                  ! \        4      ;_uu_ 4        VP                  4        RRR4       \
        P                  ! \        4      ;_uu_ 4        V^ ,           RRR4       \
        P                  ! \        4      ;_uu_ 4        VP                  4        RRR4       \
        P                  ! \        4      ;_uu_ 4        VP                  4        RRR4       \
        P                  ! \        4      ;_uu_ 4        VP                  4        RRR4       \
        P                  ! \        4      ;_uu_ 4        VP                  ^ 4       RRR4       \
        P                  ! \        4      ;_uu_ 4        W"8H   RRR4       \
        P                  ! \        4      ;_uu_ 4        VP                  4        RRR4       \
        P                  ! \        4      ;_uu_ 4        VP!                  4        RRR4       \
        P                  ! \        4      ;_uu_ 4        VP#                  4        RRR4       \
        P                  ! \        4      ;_uu_ 4        VP%                  4        RRR4       \
        P                  ! \        4      ;_uu_ 4        VP'                  4        RRR4       \
        P                  ! \        4      ;_uu_ 4        VP)                  4        RRR4       \
        P                  ! \        4      ;_uu_ 4        VP+                  4        RRR4       \
        P                  ! \        4      ;_uu_ 4        VP-                  4        RRR4       \
        P                  ! \        4      ;_uu_ 4        VP/                  4        RRR4       \
        P                  ! \        4      ;_uu_ 4        VP1                  . RO4       RRR4       \
        P                  ! \        4      ;_uu_ 4        VP3                  ^4       RRR4       VP5                  ^^4       \
        P                  ! \        4      ;_uu_ 4        VP7                  ^.4       RRR4       \
        P                  ! \        4      ;_uu_ 4        VP9                  4        RRR4       \
        P                  ! \        4      ;_uu_ 4        VP;                  4        RRR4       \
        P                  ! \        4      ;_uu_ 4        VP=                  4        RRR4       VP>                  VP>                  8X  g   Q h\A        VPB                  4      \A        VPB                  4      8X  g   Q hVPE                  ^ 4      pVPF                  \H        PJ                  PL                  8X  g   Q h\
        P                  ! \        4      ;_uu_ 4        VPO                  4        RRR4       \
        P                  ! \        4      ;_uu_ 4        VPQ                  4        RRR4       \
        P                  ! \        4      ;_uu_ 4        VPS                  4        RRR4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELe; i  + '       g   i     ELE; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELf; i  + '       g   i     EL?; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL|; i  + '       g   i     ELU; i  + '       g   i     EL.; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELz; i  + '       g   i     ELS; i  + '       g   i     EL,; i  + '       g   i     EL}; i  + '       g   i     ELV; i  + '       g   i     R# ; i)TfullNTFTFT)*r	   lengthrm   reprr+   r,   r-   rB  
null_countr9   r   is_nullis_nanis_valid	fill_nullr   r]   	__array__r  r   r   rO   uniquevalue_countsr  r   r}   rr  	drop_nullsortr   r>  r3   r/   r   device_typer   DeviceAllocationTypeCUDAr*   r#  
__reduce__)r  r  r  r  r   s   &&&& r   test_chunked_array_non_cpur    s7    ""&7&<&<<<< $$&*;*B*B*DDDD !"c*;&<<<< !"d+=&>>>> !	*	+	+###. 
, 
*	+	+%% 
, 
*	+	+!! 
, 
*	+	+002 
, 
*	+	+1 
, 
*	+	+""$ 
, 
*	+	+!!# 
, 
*	+	+##% 
, 
*	+	+$$Q' 
, 
*	+	+0 
, 
*	+	+$$& 
, 
*	+	+##% 
, 
*	+	+$$& 
, 
*	+	+! 
, 
*	+	+,,. 
, 
*	+	+""$ 
, 
*	+	+))+ 
, 
*	+	+!!# 
, 
*	+	+'') 
, 
*	+	+!!"BC 
, 
*	+	+  # 
, Q" 
*	+	+$ 
, 
*	+	+$$& 
, 
*	+	+! 
, 
*	+	+--/ 
, ((,=,H,HHHH !(()S1B1I1I-JJJJ $$Q'E 7 7 < <<<< 
*	+	+$$& 
, 
*	+	+--/ 
, 
*	+	+%%' 
,	+s 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+sP  +^(^^/_
__+ _?;`6`'2`;!aa#a7bbb3c>c9c/4d2d d+=d?8e3e'6e;1f,f#^	^,	/_ 	_	_(	+_<	?`	`$	'`8	;a	a 	#a4	7b	b	b0	3c	c	c,	/d 	d	d(	+d<	?e	e$	'e8	;f	f 	#f4	c                    V P                  4        V P                  \        P                  P                  8X  g   Q hV P
                  R J g   Q hV P                  \        VP                  4      8X  g   Q hV P                  VP                  8X  g   Q h\        V 4      \        V 4      9   g   Q hV P                   F.  pVP                  \        P                  P                  8X  d   K.  Q h	  V P                  V8X  g   Q hR# FN)r+   r
  r   r  r  r  r  r3   r|   r_  rm   r  r^  r   )r   expected_schemar   s   && r   verify_cuda_recordbatchr  n  s    	NN 7 7 < <<<<<<5   O$9$9 ::::!6!6666u:e$$$]]}} 7 7 < <<<< <<?***rU   c                    \        W$R 7       VP                  pVP                  R8X  g   Q h\        VP                  4      ^8X  g   Q hVP
                  VP                  3 F  p\        P                  ! . RO\        P                  ! 4       4      P                  V P                  4      pV! ^RV4      p\        WP                  \        P                  ! R\        P                  ! 4       4      4      R 7       Rp	\        P                  ! \         V	R7      ;_uu_ 4        V! ^R^.V,          4       RRR4       K  	  VP#                  ^4      p\        WP%                  ^4      R 7       VP'                  R.4      p\        WP%                  ^4      R 7       VP'                  RR.4      p
\        V
P                  4      ^ 8X  g   Q hV
P(                  \        P*                  P,                  8X  g   Q hVP/                  R.4      p\        WP%                  ^4      R 7       \        P0                  ! \        P                  ! R\        P2                  ! 4       4      \        P                  ! R\        P2                  ! 4       4      .4      p\        P                  ! \4        4      ;_uu_ 4        VP7                  V4       RRR4       \        P                  ! ^.V,          . ROR7      P                  V P                  4      pVP                  ^RV4      p\        P                  ! \4        4      ;_uu_ 4        VP9                  4        RRR4       \        P                  ! \4        4      ;_uu_ 4        VP;                  R.V,          4       RRR4       \        P                  ! \4        4      ;_uu_ 4        VP=                  ^ .4       RRR4       \        P                  ! \4        4      ;_uu_ 4        VP?                  R4       RRR4       VP                  ^ 4      VP                  ^ 4      8X  g   Q hVP                  ^4      VP                  ^4      8X  g   Q hVP                  V P                  4      p\        P                  ! \4        4      ;_uu_ 4        VPA                  V4      RJ g   Q h RRR4       \        PB                  PE                  VRR.4      p\        WR 7       VP                  \        PF                  ! 4       4      PA                  V4      '       g   Q h\        PB                  PI                  RV^ ,          RV^,          /4      p\        WR 7       VP                  \        PF                  ! 4       4      PA                  V4      '       g   Q h\K        \        VPL                  4      4       Uu. uF  qP                  V4      NK  	  pp\        PN                  PE                  W?R	7      p\        P                  ! \4        4      ;_uu_ 4        \        PB                  PQ                  V4       RRR4       \        P                  ! \4        4      ;_uu_ 4        VPR                  '       g   Q h RRR4       \        P                  ! \4        4      ;_uu_ 4        VPU                  4       '       g   Q h RRR4       \        P                  ! \4        4      ;_uu_ 4        VPW                  4        RRR4       \        P                  ! \4        4      ;_uu_ 4        VPY                  4        RRR4       \        P                  ! \4        4      ;_uu_ 4        VP[                  4        RRR4       \        P                  ! \4        4      ;_uu_ 4        VP]                  4        RRR4       \        P                  ! \4        4      ;_uu_ 4        VP_                  4        RRR4       \        P                  ! \4        4      ;_uu_ 4        VPa                  4        RRR4       VPc                  ^^4      p\        WR 7       VP                  ^8X  g   Q hVP                  \        PF                  ! 4       4      pVVPc                  ^^4      8X  g   Q hVPe                  R
R/4      p\        WR 7       VP0                  Pf                  R
R/8X  g   Q hVPi                  RR.4      p\        P0                  ! \        P                  ! RVP                  ^ 4      Pj                  4      \        P                  ! RVP                  ^4      Pj                  4      .4      p\        VVR 7       VPm                  4        \        P                  ! \4        4      ;_uu_ 4        VPm                  RR7       RRR4       \        P                  ! \4        4      ;_uu_ 4        VPo                  4        RRR4       \        P                  ! \4        4      ;_uu_ 4        VPq                  4        RRR4       \        P                  ! \4        4      ;_uu_ 4        VPs                  4        RRR4       \        P                  ! \4        4      ;_uu_ 4        \u        VPw                  4       4       RRR4       R#   + '       g   i     E
KR  ; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELc; i  + '       g   i     EL:; i  + '       g   i     EL; i  + '       g   i     ELz; iu upi   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELc; i  + '       g   i     EL<; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELN; i  + '       g   i     EL'; i  + '       g   i     EL ; i  + '       g   i     EL; i  + '       g   i     R# ; i)r  c2z`Got column on device <DeviceAllocationType.CPU: 1>, but expected <DeviceAllocationType.CUDA: 2>.rA   NrZ  rY  Tmaskr     key   valuecol0col1r  r:  )r  rs   r   r   r   r  )<r  r   r_   r3   r^  rb  rj  r   rN   rG   r  r  r   r   r,   r-   ri   ry  removerq  r
  r  r  r  r   rF   rB  r  r  r  rr  r  rP   r   r   default_cpu_memory_managerr=  r   r|   StructArrayr  r9   r   r;  r*   r   r  r  	serializer}   r  rg  r  r	   r+   r  r	  r#  r   __dataframe__)r  r  r  r  r   Nfnr   	new_batcherr_msgempty_batchr  null_colcuda_recordbatch_with_nullsr   r  r  	cpu_batchr  s   &&&&&              r   test_recordbatch_non_cpur*  z  s   ,E!!A !!V+++ ''(A---  **,<,G,GHhh("'')  !<!<= 	q$$	}}RXXdBGGI5N'O	QB]]9G44q$a  54 I !..q1II}}Q7GH !--tf5II}}Q7GH"//t=K{""#q(((""b&=&=&B&BBBB !''/II}}Q7GH BHHT288:6rxxz8RSTJ	*	+	+j) 
, xxa&FGOO##%H"2"="=ax"P	*	+	+#--/ 
, 
*	+	+
+ 
, 
*	+	+qc" 
, 
*	+	+  & 
, !!!$Q777!!!$Q777  ''(C(CDI	*	+	+&&y1T999 
, **;tEII>R::<=DD_UUUU **D+a.$TU+WXII>R::<=DD_UUUU (-S->'?@'?!ll1o'?F@>>--k-IL	*	+	+
((6 
, 
*	+	+&&&&& 
, 
*	+	+557777 
, 
*	+	+""$ 
, 
*	+	+""$ 
, 
*	+	+""$ 
, 
*	+	+""$ 
, 
*	+	+((* 
, 
*	+	+""$ 
, !&&q!,II>"""!!""?"?"ABI--a3333 !88&(9KLII>$$(:::: !//0@AIii	&&,,q/..	/	&&,,q/..	/	12O IG 	*	+	+!!t!, 
, 
*	+	+""$ 
, 
*	+	+**, 
, 
*	+	+++- 
, 
*	+	+'5578 
,	+Q 544( 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ A	+	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+0 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+s  j $j5.k	)k-k1*ll1l- l2mmm.nnn*n>oo&o:pp"<p6 j25k		k	k.	1l	l	l*	2m	m	m+	.m?	n	n'	*n;	>o	o#	&o7	:p	p	"p3	6q	c                    V P                  4        V P                  R J g   Q hV P                  \        VP                  4      8X  g   Q hV P
                  VP                  8X  g   Q h\        V 4      \        V 4      9   g   Q hV P                   Fi  pVP                  R J g   Q hVP                  4        F@  pVP                  R J g   Q hVP                  \        P                  P                  8X  d   K@  Q h	  Kk  	  V P                  V8X  g   Q hR# r  )r+   r  r  r3   r|   r_  rm   r  r^  r2   r
  r   r  r  r   )r   r  r   r   s   &&  r   verify_cuda_tabler,    s    	NN<<5   O$9$9 ::::!6!6666u:e$$$]]xx5   \\^E<<5((($$(?(?(D(DDDD $ 
 <<?***rU   c                    \        W%R 7       VP                  pVP                  R8X  g   Q h\        VP                  4      ^8X  g   Q hVP
                  VP                  3 EF  p\        P                  ! ^.V,          \        P                  ! 4       4      pVP                  V P                  4      p	V! ^RV	4      p
\        WP                  \        P                  ! R\        P                  ! 4       4      4      R 7       V! ^RV4      p
V
P                  RJ g   Q hV
P                  ^ 4      P                  RJ g   Q hV
P                  ^4      P                  RJ g   Q hV
P                  ^4      P                  RJ d   EK  Q h	  VP!                  ^4      p
\        WP#                  ^4      R 7       VP%                  R.4      p
\        WP#                  ^4      R 7       VP%                  RR.4      p
\        V
P                  4      ^ 8X  g   Q hV
P                  '       g   Q hVP'                  R.4      p
\        WP#                  ^4      R 7       \        P(                  ! \        P                  ! R\        P*                  ! 4       4      \        P                  ! R\        P*                  ! 4       4      .4      p\,        P.                  ! \0        4      ;_uu_ 4        VP3                  V4       RRR4       \        P                  ! ^.V,          R.V,          R7      P                  V P                  4      pVP                  ^RV4      p\,        P.                  ! \0        4      ;_uu_ 4        VP5                  4        RRR4       \,        P.                  ! \0        4      ;_uu_ 4        VP7                  R.V,          4       RRR4       \,        P.                  ! \0        4      ;_uu_ 4        VP9                  ^ .4       RRR4       \,        P.                  ! \0        4      ;_uu_ 4        VP;                  R4       RRR4       VP                  ^ 4      VP                  ^ 4      8X  g   Q hVP                  ^4      VP                  ^4      8X  g   Q h\,        P.                  ! \0        4      ;_uu_ 4        VP=                  V4      '       g   Q h RRR4       \        P>                  PA                  VRR.4      p
\        WR 7       \        P>                  PC                  RV^ ,          RV^,          /4      p
\        WR 7       \E        \        VPF                  4      4       Uu. uF  qP                  V4      NK  	  pp\        PH                  PA                  W?R7      p\,        P.                  ! \0        4      ;_uu_ 4        \        P>                  PK                  V4       RRR4       \        P>                  PM                  WD.V4      p
\        WR 7       \,        P.                  ! \0        4      ;_uu_ 4        VPN                  '       g   Q h RRR4       \,        P.                  ! \0        4      ;_uu_ 4        VPQ                  4       '       g   Q h RRR4       \,        P.                  ! \0        4      ;_uu_ 4        VPS                  4        RRR4       \,        P.                  ! \0        4      ;_uu_ 4        VPU                  4        RRR4       \,        P.                  ! \0        4      ;_uu_ 4        VPW                  4        RRR4       \,        P.                  ! \0        4      ;_uu_ 4        VPY                  4        RRR4       VP[                  ^R	7      pV F;  p\,        P.                  ! \\        4      ;_uu_ 4        \_        VVR 7       RRR4       K=  	  VPa                  ^R	7      pV F;  p\,        P.                  ! \\        4      ;_uu_ 4        \_        VVR 7       RRR4       K=  	  VPc                  ^^4      p
\        WR 7       V
P                  ^8X  g   Q hVPe                  R
R/4      p
\        WR 7       V
P(                  Pf                  R
R/8X  g   Q hVPi                  RR.4      p
\        P(                  ! \        P                  ! RVP                  ^ 4      Pj                  4      \        P                  ! RVP                  ^4      Pj                  4      .4      p\        V
VR 7       VPm                  4        \,        P.                  ! \0        4      ;_uu_ 4        VPm                  RR7       RRR4       \,        P.                  ! \0        4      ;_uu_ 4        VPo                  4        RRR4       \,        P.                  ! \0        4      ;_uu_ 4        VPo                  4        RRR4       \,        P.                  ! \0        4      ;_uu_ 4        VPq                  4        RRR4       \,        P.                  ! \0        4      ;_uu_ 4        VPs                  R4       RRR4       \,        P.                  ! \0        4      ;_uu_ 4        VPu                  VR4       RRR4       \,        P.                  ! \0        4      ;_uu_ 4        VPw                  VRR^ 4       RRR4       \,        P.                  ! \0        4      ;_uu_ 4        VPy                  4        RRR4       \,        P.                  ! \0        4      ;_uu_ 4        VP{                  4        RRR4       \,        P.                  ! \0        4      ;_uu_ 4        \}        VP                  4       4       RRR4       \,        P.                  ! \0        4      ;_uu_ 4        VP                  4        RRR4       R#   + '       g   i     EL; i  + '       g   i     ELx; i  + '       g   i     ELH; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELx; iu upi   + '       g   i     EL; i  + '       g   i     EL(; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL\; i  + '       g   i     EK]  ; i  + '       g   i     EK  ; i  + '       g   i     EL; i  + '       g   i     EL}; i  + '       g   i     ELV; i  + '       g   i     EL/; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELe; i  + '       g   i     EL5; i  + '       g   i     R# ; i)r  r  FTrZ  rY  Nr  r  r  r  r  r  r  r  )r   r   )Ar,  r   r_   r3   r^  rb  rj  r   rN   rG   r  r  r   r   r  r   ry  r  rq  r  r   rF   r,   r-   rB  r  r  r  rr  r  rP   r~   r   r=  r   r|   r  r  rF  r9   r   r;  r*   r   r  r/  AssertionErrorr  rp  r}   r  rg  r  r	   r+   r   r   rW  r  r  r  r#  r   r!  r  )r  r  r  r  r  r   r"  r#  cpu_colcuda_col	new_tabler  r'  cuda_table_with_nullsr   r  r  rM  r   rQ  r  s   &&&&&&               r   test_table_non_cpur3  (  s	   j9A w&&& z!!"a''' $$j&;&;<((A37BGGI.??<#>#>?q$)	)]]HHT2779%6' 	(q$(	5((("))U222"))U222"))T111 = ((+Iiq1AB ''/Iiq1AB''t5Iy  !Q&&& !!4&)Iiq1AB BHHT288:6rxxz8RSTJ	*	+	+
# 
, xxatfqj199,:U:UVH&11!T8D	*	+	+'') 
, 
*	+	+4&1*% 
, 
*	+	+ 
, 
*	+	+4  
, A&,,q/111A&,,q/111 
*	+	+  ++++ 
, $$[4,?Ii8 $$dKND+a.%QRIi8 (-S->'?@'?!ll1o'?F@>>--k-IL	*	+	+
""<0 
, %%'7&JFSIi8 
*	+	+      
, 
*	+	+//1111 
, 
*	+	+ 
, 
*	+	+ 
, 
*	+	+ 
, 
*	+	+""$ 
, ##!#4G]]>**#E6B +*  !!!2F]]>**#E6B +*    A&Ii8""" 22FH3EFIi8$$(:::: ))66*:;Iii	&&,,q/..	/	&&,,q/..	/	12O iA 	*	+	+& 
, 
*	+	+ 
, 
*	+	+ 
, 
*	+	+%%' 
, 
*	+	+D! 
, 
*	+	+
D) 
, 
*	+	+ZtQ7 
, 
*	+	+ 
, 
*	+	+%%' 
, 
*	+	+z//12 
, 
*	+	+ 
,	+a 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ A	+	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ +** +**, 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+ 
,	+	+s>  o%o% o9$p!p!+p5q	6 q-q"-q61r
,r'r2"s4ss/ttt,	u u u(=u<<v7v$2v86wo"	%o6	9p
	p	!p2	5q	q	"q3	6r	
r	r/	2s	s	s,/tt	t)	,t=	 u	u%	(u9	<v	v!	$v5	8w		w	)r<   r   )TFTT)r   r   r!   r#   )rf   r   N)rz   Nr   ))r   rz   )r   r   N)
r  r  r  uint64rG   r   rv   rF   r   rj   r  r  )collectionsr   collections.abcr   r5   r:   numpyr[   ImportErrorr,   pyarrowr   pyarrow.computecomputerY  pyarrow.interchanger   pyarrow.vendored.versionr   r?   rK   rT   rY   markrc   rk   ro   rx   r   r   r   parametrizerW   rF   rj   r)   rU  r  r   r   r   r   r   r   r   r   r   nopandasr   r   r   r   r  r'  r)  r2  r?  rD  rG  rW  r`  rl  rs  rz  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r  r  r#  r%  r)  r6  r~   r   rB  rD  rN  rP  rR  rX  r[  r]  r`  rh  rl  rt  rw  rz  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  r0   rN   r(   r   r  r  r	  r  r  r  r  r  r  r"  r$  r'  r)  r-  r/  r3  r6  r8  aceror^  rc  rn  rs  r  r  r  r  r  r  datasetr  r  r  r  r  r  r  r  r  r   r=  r  r  r  fixturer  r   r  r  r  r  r  r  r  r  r  r  r  r  r*  r,  r3  rX   rU   r   <module>rD     s  $ $ $ 
     . ,D*HZ 8 & &C( ( (6!0%-B` 	"BHHJ/	rxxz"	2::<(	299;'	RXXbhhj!"a&1#,-%Sz	"BHHRYY[$9:	#IIrxxRXXZ0"((3		2LMN	P
	 	     1 1& + +2 + +2 	/ 	/ %<  %<PG$O
.*+(> >O O <9K*LM N*2  <9K*LM N,$
N"8'.6"	+)#"**0#f=
7
 5  % 
4B 4Bn 6 6. 0. 0.f  & . .( 9. 9.x $ $$""9J?-   0 0	<* * *D 
		CCL
	,	0#& ** 
		. 
		$ 
		""(( 
		 
		 06 
		++8 
		664(
!"9JD(#4E<! / /,60,>*#4$" 
		##8 
		//8 
		//> 9 9 .)40.)2884
teU^ur4j12B4D4DE) 
 M
 MF 
		6565r .)2884
teU^ur4j12B4D4DE) 2	2< .)40.)2884
teU^ur4j12B4D4DE) 
*
*& 
		R&R&j * *@ ! !:'( 0 0 )'T-$(VI$OBJG0#f Y Yx # # # #22  4  4 = =. "((bnn >? @   , # #L  .  2  & 
 
6 
 
, 
 
* 
 
* 
			7	7 
		CC@ 2??(CD# E #> 2??(CD( E ( / /0  
 O O D D
 L L       6 6 @ @ K K M M L LJ(Z	+]9@+z _x  	Bs   v 	vv