K i0ddlmZddlmZddlZddlZ ddlZddl Z ddl Z ddl m ZddlmZddlmZdZdZdZd Ze j.j d Zd Zd Ze j.j d ZdZdZdZe j.j?dgde j@fgde jBfgde jDfgde jFfge jHe jJfddgdgge jHe jBfdgdddgge jHe jFfgde jLe jNde jBe jNde jFgfgdZ(e j.jRdZ*e j.jRdZ+e j.jRd Z,e j.jRd!Z-e j.jRd"Z.e j.jRe j.j^d#Z0d$Z1d%Z2d&Z3d'Z4d(Z5Gd)d*Z6Gd+d,Z7e j.j?d-e6e7gd.Z8d/Z9e j.j?d-e6e7gd0Z:d1Z;d2Zd5Z?d6Z@d7ZAd8ZBd9ZCd:ZDd;ZEd<ZFd=ZGd>ZHd?ZId@ZJdAZKdBZLdCZMdDZNdEZOdFZPdGZQdHZRe j.j e j.j?dIgdJdKZSe j.j dLZTe j.j dMZUe j.j dNZVe j.j dOZWe j.j dPZXe j.j dQZYdRZZdSZ[dTZ\dUZ]e j.jRdVZ^e j.j dWZ_dXZ`dYZadZZbe j.jRd[Zce j.j?d\e je jgd]Zfd^Zgd_Zhd`ZidaZjdbZkdcZlddZmdeZne j.j?d\e je jgdfZoe j.j?d\e je jgdgZpe j.j?d\e je jgdhZqdiZre j.j?d\e je jgdjZse j.j?d\e je jgdkZtdlZudmZve j.j?d\e je jgdnZwe j.j?d\e je jgdoZxdpZydqZzdrZ{dsZ|dtZ}duZ~dvZdwZe j.jRdxZdyZdzZd{Zd|Zd}Zd~ZdZe j.j?d\e je jgdZe j.j?d\e je jgdZe j.j?d\e je jgdZe j.j dZe j.j?dgdgdfefgdgdfe jfdgddggdgddggfe jfgdZe j.j?d\e je jgdZe j.j?dgdgdfe jfdgddggdgddggfe jfgdZe j.j?dgdgdfefgdgdfe jfdgddggdgddggfe jfgdZe j.j?d\e je jgdZe j.jRdZe j.jRdZdZe j.jRdZdZdZdZdZdZdZdZdZdZdZe j.jFdZe j.jFdZe j.jFdZdZe j.jFdZe j.jFdZe j.jFdZe j.jFe j.j?d\e je jgdZe j.jFdZe j.jFdZe j.j\dZe j.j\dZe j.j\dZe j.j\dZe j.j\dZe j.j\dZe j.j\dZe j.j?d\e je jgdZe j.j?d\e je jgdZe j.j e j.j?de jpe jrgdZe j.j e j.j?de jpe jrgdZe j.jFdZe jzdZe jzdZe jzdZe jzdZe jzdZe jzdZe jzdZe jzdZe jzdZe jzdZe jzdZe jzdZd„ZdÄZdĄZdńZdƄZy#e$rdZY zwxYw)) OrderedDict)IterableN)from_dataframe)Versionc~tjgtj}|jtjk(sJ|j gk(sJ|j tjgd}|jtj k(sJtjt5tjgdddtjgdgdgdg}t|jtsJtd|jDsJtd|jDsJt|jdk(sJ|j!t#d |jDk(sJt%j&|t(j+||j!zk\sJ|j,d k(sJ|j t/j0|}|J~|Jy#1swYYxYw) Ntypebinary c3dK|](}t|tjj*ywN isinstancepalib Int64Array.0cs ^/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pyarrow/tests/test_table.py z,test_chunked_array_basics..4s!EAz!RVV../E.0c3dK|](}t|tjj*ywrrrs r!r"z,test_chunked_array_basics..5s!KAz!RVV../Kr#rc3<K|]}|jywr)get_total_buffer_sizers r!r"z,test_chunked_array_basics..7s#/K3401/F/F/H/KsH)r chunked_arraystringr to_pylistvalidater pytestraises ValueErrorrchunkslistall iterchunkslenr&sumsys getsizeofobject __sizeof__nbytesweakrefref)datadata2wrs r!test_chunked_array_basicsr?"s  BRYY[ 1D 99 ## # >> r !! !MMO   Rh /E :: $$ $ z "     D dkk4 (( ( EE EE E K9JK KK K t{{ q   % % '3/K8<8I/K,K KK K == &"3"3 #**,#- -- - ;;) ## #MMO T B 4   4<<-s H22H<ctjgdgdgdg}|jtjk(sJt |dk(sJt |j dk(sJtjgdgdgdg}|jtjk(sJt |dk(sJt |j dk(sJtjgdgdgdgtj }|jtj k(sJt |dk(sJt |j dk(sJtjgdgg}|jtjk(sJt |dk(sJt |j dk(sJd }tjt| 5tjgsJ dddtjgtjjtjk(sJtjggjtjk(sJtjggtjjtjk(sJy#1swYxYw) Nr rrrr@@g@rr z@cannot construct ChunkedArray from empty vector and omitted typematch) rr(r int64r3r/int8r,r-r.r)null)arrmsgs r!test_chunked_array_constructionrKDsC   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"))+ EE E  RD ! & &"'') 33 3  RDryy{ 3 8 8BIIK GG G $$s KKctjddg}tj||g}|j}tjgd}|j |sJy)Nr r r r r r )rarrayr(combine_chunksequals)rI chunked_arrresexpecteds r!test_combine_chunksrTqsV ((Aq6 C""C:.K  $ $ &Cxx %H ::h  ctjgtjjtjgtjk(sJtjtjgtjgtjjtjgtjk(sJy)Nr)rr(bool_rOrNrUr!4test_chunked_array_can_combine_chunks_with_no_chunksrYzs  BRXXZ 0 ? ? ARXX F      "288: &'bhhj n"((2BHHJ7 88 8rUctjgdgdgg}tj|}|j }t |tj sJ|jdk(sJtj||sJy)Nr r)r) rr(npasarrayto_numpyrndarrayshape array_equal)r<arr1arr2s r!test_chunked_array_to_numpyrcsu    D ::d D ==?D dBJJ '' ' ::   >>$ %% %rUcd}tjt|5tjtj gdtj gdgdddtjt|5tjtj gdgtj dddy#1swYmxYw#1swYyxYw)Nzchunks must all be same typerDr ?@@r)r,r- TypeErrorrr(rNfloat64)rJs r!!test_chunked_array_mismatch_typesrks (C y ,   HHY  HH\ "    y ,C "((9-.RZZ\BCC  CCsAC AC CC!ctjgdtjgdg}tj|}t|dk(sJy)Nr rz<[ [ 1, 2, 3 ], [ 4, 5, 6 ] ])rrNr(strr<s r!test_chunked_array_strrosN   D   D !D t9    rUctjgdtjgdg}tj|}|djdk(sJ|djdk(sJ|djdk(sJt j t 5|ddddt j t 5|dddd|tjdjdk(sJ|dd }|jd d gk(sJ|d d}|jd gk(sJ|d d }|j|jk(sJ|jgk(sJy#1swYxYw#1swYxYw) Nr rr r riirrrc) rrNr(as_pyr,r- IndexErrorr[int32r*r )r< data_slices r!test_chunked_array_getitemrwsw   D   D !D 7==?a   8>> q  8>> q  z " Q z " R   " " $ )) )aJ    !aV ++ +aJ    !aS (( (bJ ??dii '' '    !R '' 's%E2 E>2E;>Fctjgdtjgdg}tj|}|jt |}|j |j k(sJ|j gk(sJ|jt |dz}|j |j k(sJ|j gk(sJtjj|gdg}|jt |}t |dk(sJtjj|gdg}|jt |dz}t |dk(sJy)Nr r anamesr) rrNr(slicer3r r*Table from_arrays)r<rvtable table_slices r!test_chunked_array_slicers=   D   D !DCI&J ??dii '' '    !R '' 'CIN+J ??dii '' '    !R '' ' HH $u 5E++c%j)K { q  HH $u 5E++c%j2o.K { q  rUchtjdgtjgdtjgdtjgdg}tj|}tt d|D]\}}||j k(rJt |tsJy)Nrr rrry)rrNr(ziprangersrr)r<rIijs r!test_chunked_array_iterrs !      D  4 CE"Is#1AGGI~~ c8 $$ $rUcd}d}|tjgtjtjgtj|tjgtjtjgtjtjddgtj}tjddgtj}tjddgtj}tjgdtj}||g|g||g|g|||g||g|||g|g|||g||gtjgtjj drJy)NcFt|tjr|}ntj|}t|tjr|}ntj|}|j |sJ|j |sJ||k(sJ|t |k7sJyr)rr ChunkedArrayr(rPrmxarrsyarrsxys r!eqz%test_chunked_array_equals..eqs eR__ -A  'A eR__ -A  'Axx{{xx{{Av vCF{{rUc&t|tjr|}ntj|}t|tjr|}ntj|}|j |rJ|j |rJ||k7sJyr)rrrr(rPrs r!nez%test_chunked_array_equals..ness eR__ -A  'A eR__ -A  'A88A;88A;Av vrUrrr r)rr rr)rr(rurFrNrP)rrrzbr ds r!test_chunked_array_equalsrsS  r, ,.r, ,. !Qbhhj)A !Qbhhj)A !Qbhhj)A BHHJ/AsQCLsQCL1v1v1vsO1v1v4;;DAA AArU)r<typ)TFTT)r r rr)rf@N)rzNrr r rrzrr ))r rz)r r NcBg}|r1|jtj|dd||dd}|r1tj||}|j |j |j |}|j |j|sJy)Nr r)appendrrNr(r+loadsdumpsrP)r<r pickle_modulearraysrNresults r!test_chunked_array_pickler(sF  bhhtBQxc23ABx    V# .E NN  !4!4U!; >R   ::  <<7 "" " <<  tzz ** * <>Q   ::   <<6 !! ! <<  tzz ** *rUcddl}|j|jddd}tjj |}|j }|jdk(sJ|jdk(sJ|jdk(sJ|jj|jsJ|j|jddd}tjj |}|j }|jdk(sJ|jdk(sJ|jdk(sJ|jj|jsJyr) rrrr RecordBatch from_pandasrrr_rrP)rr<batchrs r!4test_recordbatch_roundtrip_to_pandas_empty_dataframers%  <>R   ::  <<7 "" " <<  tzz ** * <>Q   ::   <<6 !! ! <<  tzz ** *rUc"ddl}ddlm}|jddgddgd}t j |}|j jj}|jdk(sJ|j||jddy)Nrr r g?g?rzrrr ) rrrrrrschema empty_tablerr_assert_frame_equaliloc)rrdfrrs r!test_to_pandas_empty_tablersy QF#s4 5B HHRLE \\ % % ' 1 1 3F <<6 !! !&"''"1+.rUcdtjdgtjgdg}tj|}tj|}|j gdk(sJ|j tj dk(sJtj|d}|j gdk(sJtjddgtjgdg}tj|}tj|}|j }|dd k(sJtj|dsJ|d dgd k(sJ|j tj d k(sJtjjtjgd tjgd}tj||g}tj|}|j tj dk(sJ|j gdd zk(sJy)Nrr )rr r rrFrmdtype)0123r rfr rerj)rr r rr rzrr r7)rzrr rzr) rrNr(r[r\tolistrisnanDictionaryArrayr)r<rQnp_arrelementsrIs r!test_chunked_array_asarrayrs !   D""4(K ZZ $F ==?l ** * <<288G, ,, ,ZZ 5 1F ==?2 22 2 !T  D""4(K ZZ $F}}H A;"   88HQK  AB<< '' ' <<288I. .. .   ( ( !288O#< >C""C:.K ZZ $F <<288H- -- - ==?7!; ;; ;rUc :tjtjdtjtjdtjg}tj gd|}tj |}|j\}}|jtj tj gdtjsJ|jtj tj gdtjsJtj g|}tj |}|j\}}|jtj tj gtjsJ|jtj tj gtjsJy)Nrr)r rr@)r@r)r rr)rrr) rstructfieldint16float32rNr(flattenrP)tyrzcarrrrs r!test_chunked_array_flattenrse BHHS"((*-HHS"**,/1 2B /b9A  A D <<>DAq 88B$$RXXibhhj%IJ KK K 88B$$RXXo35::<&AB CC C "A  A D <<>DAq 88B$$RXXbrxxz%BC DD D 88B$$RXXbrzz|%DE FF FrUctjtjgdjtjgdjg}|j dj j tjddgsJ|j dj j tjddgsJ|j}tjgd}|j dj j |sJ|j dj j |sJ|jgd k(sJy) NfoobarNr)quuxNrrrrr rrrr)rrNrrNr) rr(rNdictionary_encodechunk dictionaryrPunify_dictionariesr*)rI expected_dicts r!%test_chunked_array_unify_dictionariesrs   ,-??A &'99; C 99Q< " " ) )"((E5>*B CC C 99Q< " " ) )"((FE?*C DD D "CHH34M 99Q< " " ) )- 88 8 99Q< " " ) )- 88 8 ==?N NN NrUctjtd5tjdddy#1swYyxYw)NrrD)r,r-rirrrXrUr!test_recordbatch_dunder_initrs/ y 6  :AcGdd}tjgdtj}tj|g}||}tj|}||k(sJtj|tj}||j tjk(sJy)NceZdZdZddZy):test_chunked_array_c_array_interface..ArrayWrapperc||_yr)rN)selfrNs r!__init__zCtest_chunked_array_c_array_interface..ArrayWrapper.__init__s DJrUNc8|jj|Sr)rN__arrow_c_array__rrequested_schemas r!rzLtest_chunked_array_c_array_interface..ArrayWrapper.__arrow_c_array__s:://0@A ArUr__name__ __module__ __qualname__rrrXrUr! ArrayWrapperrs   BrUr r r)rrNrFr(rcast)r r<chunkedwrapperrs r!$test_chunked_array_c_array_interfacer sBB 88Irxxz *Dv&G4 G  g &F W    gBHHJ 7F W\\"((*- -- -rUc8Gdd}tjgdgdg}||}tj|}||k(sJtj|tj}||jtjk(sJy)NceZdZdZddZy)Btest_chunked_array_c_stream_interface..ChunkedArrayWrapperc||_yr)r )rr s r!rzKtest_chunked_array_c_stream_interface..ChunkedArrayWrapper.__init__ "DLrUNc8|jj|Sr)r __arrow_c_stream__rs r!rzUtest_chunked_array_c_stream_interface..ChunkedArrayWrapper.__arrow_c_stream__s<<223CD DrUrrrrrrrXrUr!ChunkedArrayWrapperr s  # ErUrr )rNrr)rr(rr )rr<r rs r!%test_chunked_array_c_stream_interfacer sEE   Y 5 6D!$'G  g &F T>>  gBHHJ 7F TYYrxxz* ** *rUceZdZdZddZy) BatchWrapperc||_yrrrrs r!rzBatchWrapper.__init__!  rUNc8|jj|Sr)rrrs r!rzBatchWrapper.__arrow_c_array__$szz++,<==rUrrrXrUr!rr s >rUrceZdZdZddZy)BatchDeviceWrapperc||_yrrrs r!rzBatchDeviceWrapper.__init__)rrUNc <|jj|fi|Sr)r__arrow_c_device_array__)rrkwargss r!r#z+BatchDeviceWrapper.__arrow_c_device_array__,s2tzz223CNvNNrUr)rrrrr#rXrUr!r r (s OrUr  wrapper_classctjtjgdtjgdg}||}tj|}||k(sJtjtj dtj g}tj||}tjtjgdtj gdg}||k(sJyNr rrzr{r)r record_batchrNrFrrru)r%r<r rcastable_schemarSs r!"test_recordbatch_c_array_interfacer+0s ?? ,U DD!G__W %F T>>ii bhhj!!O__W_ =F , UH X  rUc0tjtjgdtjgdg}t j t d5|jdddd|jd}y#1swYxYw) Nr rrzr{z7Received unsupported keyword argument\(s\): \['other'\]rDznot-none)other)rr)rNrFr,r-NotImplementedErrorr#)r<_s r!=test_recordbatch_c_array_interface_device_unsupported_keywordr0Fs| ?? )"((* -.se D H 8 %%J%7 8 %%D%1A88s B  BcDtjtjgdtjgdg}||}tj|}tj j |g}||k(sJtjtjdtjg}tj||}tjdtjgdtji}||k(sJyr') rr)rNrFrr~ from_batchesrrru)r%r<r rrSr*s r!test_table_c_array_interfacer3Vs ?? ,U DD!GXXg Fxx$$dV,H X  ii bhhj!!OXXgo 6Fxx RXXibhhj 1H X  rUc Gdd}tjtjgdtjgdgtjtjgdtjgdgg}||}tj|}tj j |}||k(sJtj||dj }||k(sJtjtjdtjg}tj|| }||j|k(sJtjtjjd 5tj|tjtjdtjtjg dddy#1swYyxYw) NceZdZdZddZy)4test_table_c_stream_interface..StreamWrapperc||_yr)batches)rr8s r!rz=test_table_c_stream_interface..StreamWrapper.__init__orrUNctjj|jdj|j}|j |SNr)rRecordBatchReaderr2r8rr)rrreaders r!rzGtest_table_c_stream_interface..StreamWrapper.__arrow_c_stream__rsA))66 Q&& 6F,,-=> >rUrrrXrUr! StreamWrapperr6ns  # ?rUr=r rrzr{rrr(zField 0 cannot be castrD)rr)rNrFrr~r2rrrur r,r-rArrowTypeErrorlist_)r=r<r rrS good_schemas r!test_table_c_stream_interfacerAmsz?? )"((*=>seL )"((*=>seL DD!GXXg Fxx$$T*H X  XXgd1gnn 5F X  ))RXXc288:678K XXgk 2F X]];/ // /  %=    BIIrxxRXXbhhj5I'J&KL    s A%HH ctjtddtjgddg}tj|ddg}g}|j D]}|j ||j |k(sJ|tj||jk(sJ|tj|d d|jd dk7sJ||k7sJy) NrrrrrrNryruc0c1r{r )rrNrr) itercolumnsrcolumns column_names)r<rrGrs r!test_recordbatch_itercolumnsrIs q( 'g6 D OOD4, /EG  "s ==G ## # BOOG53E3EF FF F BOOGABKu7I7I!"7MN NN N G  rUctjtddtjgddg}tjgdtjdgdgd ggg}d d g}tj||}|tj||k(sJ|j tj||sJ|tj||k7sJ|j tj||rJtj||d d i}|j |sJ|j |drJ|j drJ|dk7sJy)NrrrrCrurrefrDrEkeyvaluer|metadataTcheck_metadatar)rrNrr)rP)data1r=rHr batch_metas r!test_recordbatch_equalsrUsF q( 'g6 E ! 3%#&' E$>rUc  tjtjgdtjgdgddg}|jtjddgj |j ddsJ|jtjddgj tjtjddgtjddggddgsJy)Nr r rNrrzrr rrKf1f2r rr )rr)rNtakerPr}rs r!test_recordbatch_taker\s OO $ % + , . t  E ::bhh1v& ' . .u{{1a/@ AA A ::bhh4y) * 1 1 1d),bhhT{.CDt  & '' 'rUctjtjgdgdg}|djdk(sJyNr r rra0r{r)rr)rN_name)rbs r!)test_recordbatch_column_sets_private_namercs6 "((<01$ @B a5;;$  rUc \tjddg}tjtjdtjtj g}t jt5tj|g|dddy#1swYyxYw)Nr r f0r() rrNrrr?utf8r,r-r.r))rIrs r!,test_recordbatch_from_arrays_validate_schemargsq ((Aq6 C YYrxx ':;< =F * +. f-...s B""B+ctjdgtjgdtjdgg}tjt5tj |gddddy#1swYyxYw)Nr )tokyolikehappyderek)idtagsr)rrNr,r-r.r)rns r!-test_recordbatch_from_arrays_validate_lengthsrosb HHaSM288$>? HHgY  !D z "6 45666s A>>Bctjgg}t|dk(sJ|jdk(sJ|jdk(sJyr:)rr)r3r num_columnsrs r!test_recordbatch_no_fieldsrrsH OOB #E u:?? >>Q      !! !rUctjtdtjgdg}tjt 5tj |gddddtjt 5tj |dgdddy#1swYDxYw#1swYyxYwNrrrr{rz)rrNrr,r-r.r)rns r!*test_recordbatch_from_arrays_invalid_namesrus q $% D z "5 O45 z "+ SE*++55++sB, B8,B58Cctjtdtjgdg}tj|ddg}|jj Jy)NrrrDrE)rrNrr)rrPr<rs r!test_recordbatch_empty_metadatarxsR q $% D OOD4, /E << (( (rUctjtddtjgddg}tjdtjtjdtj g}tj |dd i }tj|| }|j|j|}|j|sJ|j |k(sJy) NrrGrrrintsfloatsfoobarrPr() rrNrrrGrrr)rrrP)rr<fieldsrrrs r!test_recordbatch_picklers q' $95 D # 2::<(FYYv(8 9F OOD 0E  !4!4U!; !3!3C!8 99 9 x  C y ! D z " A $F7F*FFFF&ctjtdtjgdtjtddg}tjj |d}|j dj |j dsJtjtd 5|j d dddtjt5|j ddddtjt5|j d dddy#1swYpxYw#1swYIxYw#1swYyxYw Nrrryrr{rzrz"Field "d" does not exist in schemarDrr) rrNrrrrrPr,r-rrirtrws r!test_recordbatch_select_columnr's q $% q" D NN & &t? & CE <<  # #ELLO 44 4  @ B S y ! T z " Q$E4E'EE EE#c tjgd}tjgd}tjddgddgddgdd d gg}tj|||ggd }|jd g}tj|gd g}|j |sJ|jd dg}tj||gd dg}|j |sJ|jdg}tj|gd g}|j |sJ|jddg}tj||gd dg}|j |sJ|j ddi}|jd dg}d|j jvsJtjtd5|jdgdddtjtd5|jdgddd|jddg}tj||gddg}|j |sJtj|||ggd}tjtd5|jd gddd|jdg}tj|gdg}|j |sJy#1swYxYw#1swYxYw#1swY`xYwNrWrXr r rrrrrry)rYrZf3rYrrZrrztestazField "f5" does not existrDf5zindex out of bounds)rYrZrYzField "f1" exists 2 times) rrNr)selectrPreplace_schema_metadatarrPr,r-rrt)a1a2a3rrrSbatch2s r!test_recordbatch_selectr<s $ %B + ,B Aq6Aq6Aq64!R9 :B OORRL*< =E\\4& !FtdV,H == "" " \\4, 'FBx$6H == "" "\\1# FtdV,H == "" " \\1a& !FBx$6H == "" " * *C= 9F ]]D$< (F 6==)) )) ) x'B C dV z)> ? aS\\4, 'FBx$6H == "" " OORRL*< =E x'B C dV\\4& !FtdV,H == "" "%$K!7K.K:!K+.K7:Lctjt5tjj tj tddddy#1swYyxYw)Nr)r,r-rirrfrom_struct_arrayrNrrXrUr!*test_recordbatch_from_struct_array_invalidrosB y != ((%();<===s >_44 44 4rUtyp_str) uint8uint16uint32uint64rGrrurFrrjc tj|}gd}gd}gd}tjj tj |tj |tj |tj |tj |tj |ggd}|jd}tj|||gj|d }tjj|}t||tj |d |j}tj|||gj|d }tjj|}t||tj |d |jd } gd }gd}gd}| jd}tj|||gj|d }tjj|}t||tj |d| j}tj|||gj|d }tjj|}t||tj |d|jd d} gd}gd}gd}| jd}tj|||gj|d }tjj|}t||tj |d| j}tj|||gj|d }tjj|}t||tj |dy)N r r rrrrrrr ry(2<FPZ drrrrrrrrrrF row_majorForderCr )r rrrrrrr)rrrrrrrr)rrrrrrrrr)r rrrr)rrrrr)rrrrr)r[rrrrrNfrom_numpy_dtype to_tensor column_stackastypeTensor from_numpyrr}) rrrarbarr3rrrrSbatch1rs r!'test_recordbatch_to_tensor_uniform_typers ((7 C &D /D 8D NN & & HHT 3 3C 8 9 HHT 3 3C 8 9 HHT 3 3C 8 9    E__u_ -F tT*+223c2BAyy##A&H&(B$7$7$gd}gd}gd}tjjtjt j|tj tj tjt j|tj tj tjt j|tj tj ggd}|j d}t j|||gjtj d }tjj|}t||tj d |j }t j|||gjtj d }tjj|}t||tj d y) NrrrrrrFrrrrr) rrrrNr[float16rrrrrrrarbrrrrrSs r!+test_recordbatch_to_tensor_uniform_float_16r"sX &D /D 8D NN & & HHRXXd"**5BJJL I HHRXXd"**5BJJL I HHRXXd"**5BJJL I    E__u_ -F tT*+222::S2IAyy##A&H&(BJJL"5 __ F tT*+222::S2IAyy##A&H&(BJJL"5rUc rgd}gd}dddtjdddd d g }tjj tj |tj tj |tj gd d g}|jd}tj||gjtjd}tjj|}t||tjd|j}tj||gjtjd}tjj|}t||tjdtjj tj |tj tj |tj tj |tj ggd}|jd}tj|||gjtj d}tjj|}tj"j%|j'||j(dk(sJ|j*tj k(sJ|j,|j,k(sJ|j.|j.k(sJ|j}tj|||gjtj d}tjj|}tj"j%|j'||j(dk(sJ|j*tj k(sJ|j,|j,k(sJ|j.|j.k(sJy)Nrrr,X rrzrFrrrrrr)r[nanrrrrNrrrrrrurrrrrjr assert_equalr]rr r_rrs r!%test_recordbatch_to_tensor_mixed_typer:s 'D /D c2663S#s ;D NN & & HHT , HHT +  :  E__u_ -F t %,,RXXS,AAyy##A&H&(BHHJ3 __ F t %,,RXXS,AAyy##A&H&(BHHJ3 NN & & HHT , HHT + HHT -    E__u_ -F tT*+222::S2IAyy##A&HJJFOO-q1 ;;"   ;;"**, && & <<8>> )) ) >>X-- -- - __ F tT*+222::S2IAyy##A&HJJFOO-q1 ;;"   ;;"**, && & <<8>> )) ) >>X-- -- -rUc gd}gd}gd}tjjtj|tjtjt j|t j tj tj|tjggd}tjtd5|jdddy#1swYyxYw) Nrr) rrrirrrrrrrrz.Casting from or to halffloat is not supported.rD) rrrrNrr[rrr,r-r.r)rarbrrs r!>test_recordbatch_to_tensor_unsupported_mixed_type_with_float16rns &D /D 8D NN & & HHT , HHRXXd"**5BJJL I HHT -    E >   s %C??Dc Jddddtjddddg }d d d d d ddtjdg }tjj tj |tj tj |tj gddg}|jd}tj||gjtj d}tjj|}tjj|j||jdk(sJ|j tj k(sJ|j"|j"k(sJ|j$|j$k(sJy)Nr r rrrrrrryrrrrrrrrrzrFrrrr)r[rrrrrNrrrrrrrrr]rr r_rrarbrrrrSs r!test_recordbatch_to_tensor_nanrsC q!Q1a +D BBB 3D NN & & HHT - HHT -  :  E __u_ -F t %,,RZZs,CAyy##A&HJJFOO-q1 ;;"   ;;"**, && & <<8>> )) ) >>X-- -- -rUcgd}gd}tjjtj|tjtj|tj gddg}t jtjd5|jddd|jdd }tj||gjtjd }tjj|}tj j#|j%||j&d k(sJ|j(tjk(sJ|j*|j*k(sJ|j,|j,k(sJtjjtj|tjtj|tjgddg}|jdd }tj j#|j%||j&d k(sJ|j(tjk(sJ|j*|j*k(sJ|j,|j,k(sJtjjtj|tj.tj|tj.gddg}|jdd }tj||gjtj d }tjj|}tj j#|j%||j&d k(sJ|j(tj k(sJ|j*|j*k(sJ|j,|j,k(sJy#1swYxYw)N) r r rrNrrrr) ryrrrrrrNrrrzrz-Can only convert a RecordBatch with no nulls.rDTF) null_to_nanrrrr)rrrrNrurr,r-r>rr[rrrjrrrrr]rr r_rrGrs r!test_recordbatch_to_tensor_nullrs3 )D 1D NN & & HHT + HHT -  :  E  =    ___ ?F t %,,RZZs,CAyy##A&HJJFOO-q1 ;;"   ;;"**, && & <<8>> )) ) >>X-- -- - NN & & HHT + HHT +  :  E___ ?FJJFOO-q1 ;;"   ;;"**, && & <<8>> )) ) >>X-- -- - NN & & HHT * HHT *  :  E___ ?F t %,,RZZs,CAyy##A&HJJFOO-q1 ;;"   ;;"**, && & <<8>> )) ) >>X-- -- -as Q  Qctjjtjgtjtjgtjgddg}|j }t jgggjt jd}tjj|}|j|jk(sJ|jtjk(sJ|j|jk(sJ|jdk(sJy)Nrrzrrr)rr)rrrrNrrr[rrrrrr r_r)rrrrSs r! test_recordbatch_to_tensor_emptyrs NN & & HHRbjjl + HHRbjjl +  :  E __ F R!((3(?Ayy##A&H ;;(-- '' ' ;;"**, && & <<8>> )) ) >>V ## #rUcgd}gd}tjjtj|tjtj|tj gddg}t jtjd5|jdddy#1swYyxYw)Nr) rzrr rzrr rzrr rrzrzDataType is not supportedrD) rrrrNrurfr,r-r>r)rarbrs r!&test_recordbatch_to_tensor_unsupportedrs &D 8D NN & & HHT + HHT *  :  E  )   s B::Cc tjtdtjgdg}ddg}|||}|jd}|jdk(sJ||Dcgc]}|jdc}|}|j |sJ|jdd}||Dcgc]}|jddc}|}|j |sJ|jdj |sJt |jt |dk(sJtjt5|jd ddd|jddj |ddsJ|jddj |ddsJ|jddj |dd sJ|jdt |dz j |ddsJ|jt |dz dj |d dsJ|jt |d z dj |d d sJycc}wcc}w#1swYxYw) NrrrDrEr{r rrrqr) rrNrr}rrPr3r,r-rt) factoryr<r|objslicedrrSsliced2 expected2s r!_table_like_slice_testsrs: q $% D4LE $e $C YYq\F ??a  D1q 1?H == "" "ii1oG51A5UCI >>) $$ $ 99Q<  s ## # syyS" #q (( ( z " "  99Q? ! !#bq' ** * 99Q? ! !#bq' ** * 99Q? ! !#a( ++ + 99QC1 % , ,SW 55 5 99SX\1 % , ,SX 66 6 99SX\1 % , ,SBZ 88 8-26s,I38I8I==JcHttjjSr)rrrrrXrUr!test_recordbatch_slice_getitemrs "2>>#=#= >>rUc4ttjSr)rrrrXrUr!test_table_slice_getitemr!s "288 ,,rUc btjdtjgtjdi}|j dd}|j tjdtj gtji}|j y)Nrzusrr)rrrNrr}rr(r))rrs r!test_slice_zero_length_tabler %sw HHc288BR\\$-?@A BE++a#K HHc2++BRYY[AB CE OOrUctjdgd}tjddgd}tjtj|gdg}tjtj|gdg}t j tj 5tjj||gdddy#1swYyxYw)Nr rrrBrCrjrE) r[rNrr)r,r- ArrowInvalidr~r2)rrrrs r!"test_recordbatchlist_schema_equalsr 0s 1#X &B 3*I .B __bhhrl^dV 4F __bhhrl^dV 4F r '0 vv./000s +"CCctjtjgdgdg}|djdk(sJyr^)rrrNrats r!#test_table_column_sets_private_namer;s6 "((<()$8A Q4::  rUc*tjjgg}|j|sJ|jdrJtjjggddi}|j|drJ|j|sJy)Nr{rMrNrOTrQ)rr~rrP)rr-s r!test_table_equalsrAs HH 2 .E <<  ||D!! ! HH 28H IE||E$|77 7 <<  rUctjtjdtjtjdtjg}tj tj dgtj dggddg}tjj|g|}|jj|sJ|jdtjdggk(sJ|jdtjdggk(sJtjtjdtjg}tjtj5tjj|g|dddtj tj dggdg}tjtj5tjj|g|dddy#1swYxYw#1swYyxYw)Nrzrr gQ @r{r)rrrrFrjr)rNr~r2rPrr(r,r-r )rrrincompatible_schemaincompatible_batchs r!"test_table_from_batches_and_schemarMs YY bhhj! bjjl#F OORXXqc]BHHdV,<=#&* .E HH ! !5'6 2E <<  v && & <<?b..u5 55 5 <<?b..x8 88 8))RXXc288:%>$?@ r '< ug':;<"((A3-3%@ r '< 12F;<< <<<"I >I Ic @ddlm}ddl}|jdt t di}|jdt t ddi}t jj|d}t jj|d}t jj|||g}|j|||gd }|j}t|d k(sJ|t jj|j||jd }t tt|gd k(sJ||j||t jj|j|t jjt!|||g} |j#| sJt%j&t(5|jd dddy#1swYyxYw)Nr)rrzryrF)preserve_indexT) ignore_indexrrr)ryrrry)rrrrr0rrrrr~r2concat to_batchesr3rmapiterrPr,r-r.) rrdf1df2rrr expected_dfr8table_from_iters r!test_table_to_batchesr#bs1 ,,T%)_- .C ,,T%B-01 2C ^^ ' 'E ' BF ^^ ' 'E ' BF HH ! !666": ;E))S#sO$)?K G w<1  rxx,,W5??A"$R0G C! "o 55 5u(+6rxx,,W5??A"$hh++D&&&1I,JKO << (( ( z "* q)***s 8HHclsctjtddtjgddg}|j|d}|j |j j rJt|dk(sJ|jdk(sJ|jt|k(sJ|jdk(sJ|jd k(sJ|jd k(sJtj|tj!||jzk\sJ|j#}|t%d gd fd gdfgk(sJt'|t(sJ||j+||j k(sJt-j.t05|ddddg}|j3D]}|tj4urt7|tj8usJ|j;D]}|Jt-j.t05|j=ddddt-j.t05|j=|j>dddn%tAt7|tjBsJ|jE||jF|k(sJ||j||jHk(sJ||j|dd|jHddk7sJ||k7sJtj tjJdtjLdditjJdtjNgddi}|j|| }|j |k(sJtQjR|}|J~|Jy#1swY*xYw#1swYxYw#1swYQxYw)NrrrrCrurr{rr rz)rr r rrrr(r rqr rDrMrNr~rEr|r})*rrNrrr+rrPr3rrqr_r&r9r5r6r7r8 to_pydictrrdict from_pydictr,r-rtrFr~r rr2r num_chunks issubclassArrayrrGrHrrrur:r;) r$r<rpydictrGrrrr>s r!test_table_basicsr/s q( 'g6 D OOD O 3E NN||$$$ $ u:?? >>Q     D )) ) ;;&   & & (,A AA A <<0 00 0 == 6#4#4 $,,.$/ // /__ F [ o $%"   fd ## # COOF5<** ** * ;;q> " "e ++ +rUctjtdtjgdg}tjt 5tj j|gddddtjt 5tj j|dgdddy#1swYNxYw#1swYyxYwrt)rrNrr,r-r.r~rrns r!$test_table_from_arrays_invalid_namesr=s q $% D z ": T9: z "0 T#/00::00s$C#C C  Cc.ttdgdg}tj|ddg}tjj |ddg}|j |sJtjtjdtjtjdtjg}tj||}tjj ||}|j |sJy)Nrrrzrr{r() r0rrrr~rrPrrrrF)r<rrSrs r!test_table_from_listsr?s U1X D XXd3* -Fxx##Dc #;H == "" " YY biik" bhhj!FXXd6 *Fxx##D#8H == "" "rUcPtjddgddggtjtjgdgtjg}tjtj dtjtj dtjgd d i }tj j|| }|j|j|}|j|j|sJy) Nr r rrr)somestringsNrzstrsr|r}r~r() rr(rr)rrr~rrrr+rP)rr<rrrs r!test_table_picklerEs 1a&1a&) < 78ryy{K DYY557!' 02F HH f 5E  !4!4U!; !3!3C!8 99 9 x  C y ! D z " A rctjtdtjgdtjtddg}tjj |d}|j dj |j dsJtjtd 5|j d dddtjt5|j ddddtjt5|j d dddy#1swYpxYw#1swYIxYw#1swYyxYwr) rrNrr~rrrPr,r-rrirtrGs r!test_table_select_columnrJ&s  q $% q" D HH _ =E <<  # #ELLO 44 4 xA C S y ! T z " Qrc<tjtjgdtjgdtjgdggd}tjt d5|j ddddy#1swYyxYw) Nr rrrr{z"Field "a" exists 2 times in schemarDrz)rrrNr,r-rrrs r!!test_table_column_with_duplicatesrM;sq HHbhhy)hhy)hhy)+2A CE xA C Ss 7BBcrtjtdtjgdtjtddg}|j|d}tjd|dj }|j d||d}|j||d}|j||dgzd }|j|sJ|j|sJ|j d ||d}|j|dg|zd }|j|sJy) Nrrryrr{rr r)rzrr rr)rrzrr ) rrNrrrr add_column append_columnrP)r$r<r new_fieldt2t3rSt4s r!test_table_add_columnrUFs( q $% q" D OODO 8Ed1gll+I   !YQ 0B   YQ 0BttAwi/%9;H 99X   99X     !YQ 0BQy4/%9;H 99X  rUctjtdtjgdtjtddg}|j|d}tjd|dj }|j d||d}t|}|d|d<|j|d }|j|sJy) Nrrryrr{rr r)rrr ) rrNrrrr set_columnr0rP)r$r<rrQrR expected_datarSs r!test_table_set_columnrYds q $% q" D OODO 8Ed1gll+I   !YQ 0BJMAwM!}%46H 99X  rUcBtjtd}tjgd}tjtdd}|j|||gd}|j ddg}|j d}|j|gd}|j |sJ|j||gd }|j |sJt jtd 5|j d gd d d y #1swYy xYw)z& drop one or more columns given labelsrrryrr{rzrr rr Column 'd' not foundrDrN) rrNrr drop_columnsrPr,r-r) r$rzrr rrRrSexp_t2exp_t3s r!test_table_drop_columnsra}s qA $%A q"A OOQ1I_O =E   S#J 'B   C B __aS_ /F ==   __aV;_ 7F ==   x'= >" C5!"""s 9DDctjtd}tjgd}tjtdd}tjj |||gd}|j ddg}|j d}tjj |gd}|j |sJtjj ||gd }|j |sJtjtd 5|j d gd d d y #1swYy xYw)z, verify the alias of drop_columns is workingrrryrr{rzrr[r\r]rDrN) rrNrr~rdroprPr,r-r)rzrr rrRrSr_r`s r!test_table_droprds qA $%A q"A HH !Q/ BE S#J B CB XX ! !1#V ! 4F ==   XX ! !1a& !  C5s #D??Ecdtjtdtjgdtjtddg}|j|d}|j d}|j |j|ddd}|j |sJy) Nrrryrr{rr r\)rrNrr remove_columnr+rP)r$r<rrRrSs r!test_table_remove_columnrgs q $% q" D OODO 8E   Q BKKMtABxz:H 99X  rUcntjtdg}|j|dg}|j d}|j t |t |k(sJ|jd|jd|d}|j |j|sJy)Nrrzr{r) rrNrrrfr+r3rOrrP)r$r<rrRrSs r!test_table_remove_column_emptyris q D OODO .E   Q BKKM r7c%j  q%++a.%( 3BKKM 99U  rUcg}ddg}d}tjt|5tjj ||dddy#1swYyxYw)Nrzrz?Length of names [(]2[)] does not match length of arrays [(]0[)]rDr{)r,r-r.rr~r)r<r|messages r!test_empty_table_with_namesrlsR D #JEI z 10 T/000s "AActjg}|jgk(sJ|jtjj ggsJyr)rrrHrPr~rrLs r!test_empty_tablernsF HHRLE    ## # <<,,R4 55 5rUctjtdtjgdtjtddg}|j|gd}|jgdk(sJ|j|gd}|j gd}|j |jgdk(sJ|j|sJ|j d}|j |jgdk(sJ|j|sJd}tjt|5|j d dddy#1swYyxYw) Nrrryrr{)ehbeeseaz.names must be a list or dict not rDz not a list) rrNrrrHrename_columnsr+rPr,r-ri)r$r<rrSrRrSrks r!test_table_rename_columnsrts- q $% q" D OODO 8E    00 0t+?@H   2 3BKKM ??2 22 2 99X     2 3BKKM ??2 22 2 99X  >G y 0+ \*+++s >EE"ctjtdtjgdtjtddg}|j|gd}|jgdk(sJ|j|gd}|j ddd }|j ||k(sJ|j|gd }|j|gd }|j ddd }|j ||k(sJtjtd 5|j ddddddy#1swYyxYw)Nrrryrr{)rprrrrprr)rzr )rzrzr )rprprrr]rD)rzr) rrNrrrHrsr+r,r-r)r$r<rrSt1rRs r!!test_table_rename_columns_mappingrw s) q $% q" D OODO 8E    00 0t+=>H   Du5 6BKKM >> OODO 8Et+>?H   Du5 6BKKM >> x'> ?6 4e45666s ,E  Ectjtjdtjtjdtjg}tjtjd|g}tj ddg|}tj ddg|}tj d d gtj }tjj|||ggd  }|j}|jtjjtj d dgtjtj ddgtjtj ddg||ggd }|j|sJy)Nrrnestrrr) g)@) g-@FTrr{r rrrrzr|)za.xza.yzb.nestr ) rrrrrrNrWr~rrr+rP)ty1ty2rzrr rrRrSs r!test_table_flattenr-sL ))RXXc288:.XXc2::<02 3C ))RXXfc*+ ,C (H%C0A -/c:A %RXXZ0A HH !Q/ BE BKKMxx## !Qbhhj) #s"**,/ *j)4 % , $-H 99X  rUctjtjdgtjdggddg}tjtjdgtjdggddg}tjj ||g}|j }|j |j|sJ|jD]}|jdk(rJy)Nr rzrYrZr{r r) rr)rNr~r2rOr+rPrGr+)rrrcombinedr s r!test_table_combine_chunksrAs __bhhsmRXXse_=$($<1F __bhhsmRXXse_=$($<1F HH ! !66"2 3E##%H  ??5 !! !   !||q   !rUctjtjgdjtjgdjtjgdggd}tjtjgdjtjgdjtjgdggd}tjj ||g}|j d d i}|jd jd jjtjd d gsJ|jd jdjjtjdd gsJ|jdjd jjtjgdsJ|jdjdjjtjddgsJ|jtj}tjgd}tjgd}|jd jd jj|sJ|jd jdjj|sJ|jdjd jj|sJ|jdjdjj|sJ|jgdgdgddk(sJ|jjd d ik(sJy)Nr){r)TFNNrr{)rrNr)rrrN)FNNTskey1svalue1rrrr r)rrrrrr)rrNrrrNr)rrrrrrrN)TFNNFNNT)rr)rNrr~r2rrrrrPrdefault_memory_poolr(rrP)rrrexpected_dict_0expected_dict_1s r!test_table_unify_dictionariesrNs  __ ,-??A %&88: *+-5DEF__ ./AAC &'99; *+-5DEF HH ! !66"2 3E  ) )7I*> ?E <<?  # . . 5 5 %  "" " <<?  # . . 5 5 &%! ## # <<?  # . . 5 5 ! ## # <<?  # . . 5 5 #s    $ $R%;%;%= >Ehh56Ohh/O <<?  # . . 5 5o FF F <<?  # . . 5 5o FF F <<?  # . . 5 5o FF F <<?  # . . 5 5o FF F ??  E 6 ?!   << Wi$8 88 8rUctjdddddigtjtjtjg}tj j |dg}|jd }d|vsJ|d}t|dk(sJ|dddddigk(sJ|jd }t|dk(sJ|ddddidddiigk(sJy) Nr r )rrzrrrzr{strict)maps_as_pydicts) rrNmap_r)rur~rr(r3r*)rr table_dict column_list table_lists r!test_table_maps_as_pydictsrss 1 Qx (bhhj1 F HH u 5E:J *  S/K { q  +c1X6 66 6:J z?a   3aa 01C#q?C CC CrUc ttdgdg}ttddgdg}tjj |Dcgc]}tj |c}d}tjj |Dcgc]}tj |c}d}tj ||g}|jt|dk(sJtjj t||Dcgc]\}}tj ||zc}}d}|j|sJycc}wcc}wcc}}wNr)g$ggrCg$@ryrfrgrhrBrCrr{) r0rrr~rrN concat_tablesr+r3rrPr<r=rrvrRrrrSs r!test_concat_tablesrs4 U1X  D U1b\ E   D9qrxx{9$.  0B   E:qrxx{:$.  0B  r2h 'F OO v;"  xx##14T51A%C)-A&(XXa!e_%C*4$6H == "" "::%CEE"E chtjjtt dgd}tjjtdgd}t j tjd5tj||gd}dddy#1swYyxYw) Nryrzr{rz@Unable to merge: Field a has incompatible types: int64 vs stringrD permissivepromote_options) rr~rr0rr,r-r>r)rvrRr/s r!test_concat_tables_permissivers   tE"I/v  >B   tO45V  DB    T VE   b"X| DEEEs B((B1ctjjtt dgd}t j td5tj||gddddy#1swYyxYw)Nryrr{z Invalid promote options: invalidrDinvalidr) rr~rr0rr,r-r.rrs r!!test_concat_tables_invalid_optionrs^ d59o.f=A z)K L< !Q;<<B    3*2::< 01M? DB m $:!!2r(D9: ==-- #"((*5 'bjjl;/ }%' (( (    1a&rxxz *+cU 4B    1a&rzz| ,-u 6B r.P Q6 \\- ( 6   b"Xu 5 666:: 6 666s00II2.I&I2I#&I/ +I22I;c tjjtjddgtjgdg}tjjtjddgtj gdg}tj ||gd }|jtjjtjgd tjtjgd tj gddgsJtjjtjddgtjgdg}tj ||gd }|jtjjtjgd tjgdgsJy)Nr r rrrfrgrdefaultrrrrrM) rr~rrNrFrrrPru)rvrRrrSs r!!test_concat_tables_with_promotionrst    1a&rxxz *+m_ >B    3*2::< 01M? DB  r2h BF ==-- #"((*5 'bjjl;/ }%' (( (    1a&rxxz *+m_ >B    R,0F ==-- BHHJ//  rUctjjtjddgtjgdg}tjjtjddgtj gdg}t jtjd5tj||gddddy#1swYyxYw) Nr r rrLzUnable to merge:rDrr) rr~rrNrFrr,r-r>rrvrRs r!'test_concat_tables_with_promotion_errorrs    1a&rxxz *+cU 4B    1a&rzz| ,-u 6B r((0B C> "b9=>>>s <CC(ctjtdtjgdtjgdtjgdg}tjj |t d}|dj |dsJ|d j |d sJ|d j |d sJ|d j |dsJtjt5|ddddtjt5|ddddy#1swY1xYw#1swYyxYw)Nrrrabbccddeefabcdr{rqrrr r rrrr) rrNrr~rtuplerPr,r-rtrGs r!test_table_negative_indexingrs& q $% *+ /0  D HH U6] ;E 9  E!H %% % 9  E!H %% % 9  E!H %% % 9  E!H %% % z " b  z " as D?0E ?E Ec ttdgdg}ttddgdg}tjj |Dcgc]}tj |c}d}tjj |Dcgc]}tj |c}d}tj ||g}|jt|dk(sJtjj t||Dcgc]\}}tj ||zc}}d}|j|sJycc}wcc}wcc}}wr) r0rrrrrNconcat_batchesr+r3rrPrs r!test_concat_batchesrs5 U1X  D U1b\ E  # #$$?QRXXa[$?*4 $ 6B  # #%$@QRXXa[$@*4 $ 6B  Bx (F OO v;"  ~~))7:47G+I/3q!,.88AE?+I0:*"# z 1# >"######s)E9F9FFc tjtdtjtjgdtjtjgdtj tjgdtj g}|j|td}tjtdtjtjgdtjtjgdtjtjgdtj g}|j|td}tjtjd tjtjd tjtjd tjtjd tj g}|j|}|j|sJy) Nrrrrrrr{r r rrrrzrr r)rrNrrFrurjr)rrrrrr rPr$r<rrXexpected_table target_schema casted_tables r!test_table_safe_castingrjsx q + $288:6 *> /biikB  D OODf O 6E q + $288:6 rxxz2 /biikB M __]%-_HNII bhhj! bhhj! bhhj! biik" M ::m,L   ~ .. .rUc |tjtdtjtjgdtjtjgdtj tjgdtj g}|j|td}tjtdtjtjgdtjtjgdtjtjgdtj g}|j|td}tjtjd tjtjd tjtjd tjtjd tj g}tjtjd 5|j|ddd|j|d}|j!|sJy#1swY0xYw)Nrrr)g?g@gffffff @g@g@rrr{rrzrr r truncatedrDF)safe)rrNrrFrurjr)rrrrrr,r-r r rPrs r!test_table_unsafe_castingrs q + $288:6 *> /biikB  D OODf O 6E q + $288:6 rxxz2 /biikB M __]%-_HNII bhhj! bhhj! bhhj! biik" M rk :" =!"::m%:8L   ~ .. . ""s 1J22J;ctjddgtj}tj}tj||tj|dd|g}t j tj j5tjj|ddgdddy#1swYyxYw)Nrr rrrrr{) r[rNrrr,r-rr r~r)rNu8rs r!test_invalid_table_constructrs HHaV288 ,E Bhhu2&qr(D EF rvv** +9 VD$<8999s $CCz data, klassrCrrrrNrCrrrrCcV||d||dg}tjdtjfdtjfg}tjj ||}|j dk(sJ|jdk(sJ|j|k(sJtjdtjfg}tjt5tjj ||dddtjdtjfdtjfg}tjj ||}tjj|jdjsJ|j dk(sJ|jdk(sJ|j|k(sJtjdtjfdtjdfg}tjt t"f5tjj%||dddtjt5tjj ||ddg dddtjt5tjj ||d d i dddy#1swYxYw#1swYxYw#1swYixYw#1swYyxYw) Nrr rDr{r(r rs)rr|r|r}rrP)rrrfrr~rrqrr,r-r.types is_float32rr rr.rir*r<klassrrs r!test_from_arrays_schemars $q'NE$q'N +D YY+h -EF GF HH f 5E    !! ! >>Q   <<6 !! !YY+, -F z "2 T&12YY+h -EF GF HH f 5E 88  u||H5:: ;; ;    !! ! >>Q   <<6 !! !YY+h S8I-JK LF +Y7 82 T&12 z "L T&8JKL z "M T&FF;KLMM)2222LLMMs0-"K:"L%L %L:LLLL(c |ji}|jdk(sJ|jdk(sJ|jt jgk(sJ|j ik(sJt jdt j fdt jfg}tdgdfdgdfg}|j|}|jdk(sJ|jdk(sJ|j|k(sJ|j |k(sJdd i}|j|}|j|| }|j|k(sJ|jj|k(sJ|j |k(sJ|j|| }|j|k(sJ|jj|k(sJ|j |k(sJtjt5|j||| dddtjt5|jd gdit jd t jfg dddtjt d5|jgdgddt jdt j"fdt j$fdt j&fg dddtjt5|jdgdii dddy#1swY5xYw#1swYxYw#1swY\xYw#1swYyxYw)NrrDr{rrr rr|r}r~r(rrD)rr r zdoesn't contain.* c, drDr )rrrrrzr r)r*rqrrrr(rfrjr with_metadatarPr,r-r.rir)rrFrur)r$rrr<rPs r!test_table_from_pydictrs OOB E    !! ! >>Q   <<299R= (( ( ??  "" " YY+h -EF GF !34!>24 5D OOD !E    !! ! >>Q   <<6 !! ! ??  $$ $H  ! !( +F OOD8O 4E <<6 !! ! << H ,, , ??  $$ $ OODO 0E <<6 !! ! << H ,, , ??  $$ $ z "@ Vh?@ y !A y)!yy4*=)>?  AA x'@ A  ) ,99bhhj!bhhj!bhhj!    y !5 i(455)@@AA   55s20L8&AM A-MM8MMMM&ctd||dfd||dfg}tjdtjfdtjfg}tj j |}|jdk(sJ|jdk(sJ|j|k(sJtj j ||}|jdk(sJ|jdk(sJ|j|k(sJtjdtjfdtjfg}tj j ||}tjj|jdjsJ|jdk(sJ|jdk(sJ|j|k(sJtjdtjfdtjdfg}tj t"t$f5tj j ||dddy#1swYyxYw) NrDrr{r r rr(r)rrrrfrjr~r*rqrrrrrr rr,r-r.rirs r!#test_table_from_pydict_arrow_arraysr% s tAw08U47^2LM ND YY+h -EF GF HH  &E    !! ! >>Q   <<6 !! ! HH f 5E    !! ! >>Q   <<6 !! !YY+h -EF GF HH f 5E 88  u||H5:: ;; ;    !! ! >>Q   <<6 !! !YY+h S8I-JK LF +Y7 82 T&1222s 5"I  I)ctd||dfd||dfg}tjdtjfdtjfdtj fg}t jtd5tjj||dddtjdtjfg}tjj||}|jdk(sJ|j|k(sJ|jdgk(sJy#1swYxYw)NrDrr{r rzrDr() rrrrfrjrFr,r-rr~r*rqrHrs r!test_table_from_pydict_schemarG s tAw08U47^2LM NDYY+h -E,./F xv .2 T&12YY+, -F HH f 5E    !! ! <<6 !! !   & )) )22s "D==Ec x|jg}|jdk(sJ|jdk(sJ|jt jgk(sJ|j gk(sJt jdt j fdt jfg}ddddddd ddg}|j|}|jd k(sJ|jd k(sJ|j|k(sJ|j |k(sJd d i}|j|}|j||}|j|k(sJ|jj|k(sJ|j |k(sJ|j||}|j|k(sJ|jj|k(sJ|j |k(sJtjt5|j|||dddtjt5|jddiddidd igt jdt jfgdddt jdt jfdt j fdt j"fg}|jdd dd ddd ddg|}ddddd dddd dddg}|j|k(sJ|j |k(sJtjt5|jddidd idd igiddddddddidd ig}ddddddd ddg}|j|}|jd k(sJ|jd k(sJ|j |k(sJddidddddig}ddiddiddig}|j|}|jdk(sJ|jd k(sJ|j |k(sJy#1swYxYw#1swYxYw#1swYxYw)NrrDr{rCr)rDr{rrrr rr|r}r~r(rrDr rzr rrr)rzr r) from_pylistrqrrrr*rfrjrrPr,r-r.rir)rFrur)r$rrr<rPr=s r!test_table_from_pylistr_ s OOB E    !! ! >>Q   <<299R= (( ( ??  "" " YY+h -EF GF3 'a (d + -D OOD !E    !! ! >>Q   <<6 !! ! ??  $$ $H  ! !( +F OOD8O 4E <<6 !! ! << H ,, , ??  $$ $ OODO 0E <<6 !! ! << H ,, , ??  $$ $ z "@ Vh?@ y !A $T1Iay9!yy4*=)>?  AA YYbhhj)bhhj)bhhj)F OOq +11-=>  E$T *$T *$T * ,D <<6 !! ! ??  $$ $ y !C #qC8c1X6rBC3 ' qM UO DC (a (t , .E OOD !E    !! ! >>Q   ??  %% % RLa ( t  Db\e_d^ E OOD !E    !! ! >>Q   ??  %% %a@@AA(CCs%)PAP#/P0P #P-0P9cVddl}|jtdgdfdgdfg}tjdtj fdtj fg}tjj||}tjj|jdjsJ|jj|k(sJtjdtj fdtjdfg}tj t"t$f5tjj||dddtjdtj fdtj&fdtj(fg}tj t*d 5tjj||dddtjdtj fg}tjj||}|j,d k(sJ|jj|k(sJ|j.dgk(sJy#1swY1xYw#1swYxYw) NrrDrr{rr(rrzrDr )rrrrrrfrr~rrrrr remove_metadatarr,r-r.rirjrFrrqrH)rrrrs r!test_table_from_pandas_schemar s kF,>#?$,n#=#?@ ABYY+h -EF GF HH F 3E 88  u||H5:: ;; ; << ' ' )V 33 3YY+h S8I-JK LF +Y7 80 R/0YY+h -E,./F xv .0 R/0YY+, -F HH F 3E    !! ! << ' ' )V 33 3   & )) )00 00s"J"JJJ(cddl}tdgdfdgdfg}tjgddtjgddd }tjdtj fdtj fg}|j|}tj|}tjj|}|j|sJtj|| }tjj|| }|j|sJtj|}tjj|}|j|sJtj|| }tjj|| }|j|sJy) Nrrrrzr r)rru)rrzr() rrrrNrrur)rrr~rrPr*)rr d_explicitrrrrs r!test_table_factory_functionr sZ c?+c9-=>?Axxh?xx 8:JYYbhhj)C+=> ?F aB XXb\F XX ! !" %F ==  XXb (F XX ! !"V ! 4F ==  XXj !F XX ! !* -F ==  XXa 'F XX ! !!F ! 3F ==  rUctjt5tjdgdidgdddtj dtj fg}tjdtjgdtji|}|jdjtj k(sJtjgddg}dg}tj||}|j|k(sJtj dtjfg}tj||}|j|k(sJy#1swY=xYw)Nrzr r{rrF) r,r-r.rrrrurNrFrr rH)rrr<r|s r! test_table_factory_function_argsr s z "0 #y!#/0YYbhhj)* +F HHc288IBHHJ?@& IE <<  ! !RXXZ // / HHYW - .D EE HHT5 !E    && & YYbhhj)* +F HHT6 "E    && &00s E22E<c|ddl}tjt5t j |j dgdidgdddtjt5t j |j dgdiddidddt jdt jfg}t j |j dgdi|}|jdjt jk(sJy#1swYxYw#1swYxYw)Nrrzr r{r|r}r~) rr,r-r.rrrrrurr )rrrs r!'test_table_factory_function_args_pandasr s z "> sI./u=> z "L sI./66:JKLYYbhhj)* +F HHR\\3 "23V >LLs,D&+-D2&D/2D;ctjtd5tjddddtjtd5tj ddddy#1swYCxYw#1swYyxYw)Nz!Expected pandas DataFrame, pythonrDz invalid inputzExpected pandas DataFrame)r,r-rirrr)rXrUr!$test_factory_functions_invalid_inputr si y(K L" !" y(C D) ())""))sA4B4A=B ctjtjdtjdditjdtjgddi}tj tj gdd tj gd d g| }t|dk(sJ|jddk(sJ|jddk(sJ|jddk(sJy)NrDrMrNr~rEr|r}r_rrryrrrrur(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'r preview_colsr z:pyarrow.Table c0: int16 c1: int32 ---- c0: [[1,2,3,4]] ...) rrrrrurrNrm to_stringrtabs r!test_table_repr_to_stringr' s  YYrxxz+0'*:<rxxz24"( 02F ((BHH\8HH-G<>FL NC s8   ==t= ,1   ==a= (-   ==a= (-  rUctjtjdtjdditjdtjgddi}tj tj gdd zd tj gd d zd g|}t|dk(sJy)NrDrMrNr~rEr|r}r_ryrrrrur(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]])rrrrrurrNrmr s r!"test_table_repr_to_string_ellipsisrQ s YYrxxz+0'*:<rxxz24"( 02F ((BHH\"_7;HH-b0w?A  "C s8- -- -rUctjtjdtjdditjdtjgddi}tj tj gdd tj gd d g| }t|dk(sJ|jddk(sJ|jddk(sJ|jddk(sJy)NrDrMrNr~rEr|r}r_rrrrur(zLpyarrow.RecordBatch c0: int16 c1: int32 ---- c0: [1,2,3,4] c1: [10,20,30,40]Trznpyarrow.RecordBatch c0: int16 -- field metadata -- key: 'value' c1: int32 -- schema metadata -- foo: 'bar'rr r z>pyarrow.RecordBatch c0: int16 c1: int32 ---- c0: [1,2,3,4] ...) rrrrrur)rNrmr rrs r! test_record_batch_repr_to_stringrc s YYrxxz+0'*:<rxxz24"( 02F OORXXlAXX&6WEG#) +E u:   ??? .3   ??? */   ??? */  rUctjtjdtjdditjdtjgddi}tj tj gdd zd tj gd d zd g|}t|dk(sJy)NrDrMrNr~rEr|r}r_ryrrrrur(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])rrrrrur)rNrmrs r!)test_record_batch_repr_to_string_ellipsisr s YYrxxz+0'*:<rxxz24"( 02F OORXXl2oGDXX&6r&9HJ#) +E u:I II IrUcd}d}t|gdf|gdfg}tj|tjf|tjfg}tj ||}|dj djtjgddsJ|d j djtjgdd sJy) Nuääähuöööfrr r(rrurr r)) rrrrur)rrrPrN)col_acol_brrrs r!"test_table_function_unicode_schemar s E E e_-y/ABCA YY +eRYY[-AB CF XXa 'F !9??1  $ $RXXig%F GG G !9??1  $ $RXXoH%M NN NrUctjtjgdtjgdgddg}|jtjddgj |j ddsJy)NrWrXrYrZr r)rrrNr[rPr}rLs r!%test_table_take_vanilla_functionalityr sm HH $ % + , . t  E ::bhh1v& ' . .u{{1a/@ AA ArUctjtjgdtjgdgddg}tjtjddgtjddggddg}|jtjddgj |sJy)NrWrXrYrZr rzrrrrNr[rP)rresult_with_null_indexs r!test_table_take_null_indexr s HH $ % + , . t  E  XX 1d)  3+  t  ::bhh4y) * 1 12H II IrUctjtjgdtjgdgddg}tjtjddgtjddggddg}|jtjdd gj |sJy) NrWrXrYrZr rrr rr)rresult_non_consecutives r!test_table_take_non_consecutiver" s HH $ % + , . t  E  XX 1d)  3*   t  ::bhh1v& ' . ./E FF FrUc tjgd}tjgd}tjddgddgddgdd d gg}tj|||ggd }|jd g}tj|gd g}|j |sJ|jd dg}tj||gd dg}|j |sJ|jdg}tj|gd g}|j |sJ|jddg}tj||gd dg}|j |sJ|j ddi}|jd dg}d|j jvsJtjtd5|jdgdddtjtd5|jdgddd|jddg}tj||gddg}|j |sJtj|||ggd}tjtd5|jd gddd|jdg}tj|gdg}|j |sJy#1swYxYw#1swYxYw#1swY`xYwr) rrNrrrPrrrPr,r-rrt)rrrrrrSrs r!test_table_selectr$ s $ %B + ,B Aq6Aq6Aq64!R9 :B HHb"b\#5 6E\\4& !Fxxtf%H == "" " \\4, 'FxxR4,/H == "" "\\1# Fxxtf%H == "" " \\1a& !FxxR4,/H == "" " * *C= 9F ]]D$< (F 6==)) )) ) x'B C dV z)> ? aS\\4, 'FxxR4,/H == "" " HHb"b\#5 6E x'B C dV\\4& !Fxxtf%H == "" "%rc  d}tjtjgdtjgdtjgdtjgdggd}|jdj d g}||j gd gd d k(sJ|jdj d d g}||j gd gd gddk(sJ|jdj dg}||j gd gd d k(sJ|jdj ddg}||j gd gdgddk(sJ|jdj ddg}||j gd gd gddk(sJ|jddgj dg}||j gdgdgddk(sJ|jdj dddgdfdg}||j gd gdgdgdgdgd dk(sJtjtjgd tjgd!gdd"g}|jdgj d"d#t jd$%fg}|j d&gd'gd(k(sJ|jdgj d"d#t jd)%fg}|j d&gd*gd(k(sJ|jdgj d"d#t jd+%fg}|j d&gd,gd(k(sJ|jdgj gdfd"d#t jd+%fg}|j d&gd'gd,gd-k(sJ|jdgj gdfg}|j d&gd'gd.k(sJtjgd/td0d1}tjj|jd'2}|jdj dg}||j d&d3gd0d4gd k(sJy)5Nc&d|vrtt|d|d}n|d}t|}dt|di}|D]K}|dk(r tt|||}|D]&}|j |gj ||(M|S)Nkeys2keys)rrsortedr) setdefaultr)rr( sorted_keyssorted_dentryrks r!sorted_by_keysz+test_table_group_by..sorted_by_keys s a<QvY' 34DV9DTl F1V9-. AE#dAeH-.F  A##E2.55fQi@ A  A rUrzrzrrr )Xr1YZr3r)ryrrrr)r(r'r bigvaluesr{r()rhash_sumr)rrr)r( values_sum)r hash_count)r r r )r(r6 values_count)rr4)rmax)r4r4)r rr)rrr)r( values_max bigvalues_sum)r4r9)rrr)r(r6 bigvalues_maxr')rzrrr )r1r2r3r3)rrrr)r(r'r6 count_all)r(r:r;r<r=r6)rzrzrz)r NNrcountr1)moderzr)r(r8 only_nullr only_validr )r(r=r8)r(r=)rzrrzrrzrrr(rrrr) rrrNgroup_by aggregater(pc CountOptionsrr~r2r)r/rrtable_with_nullstable_with_chunkss r!test_table_group_byrJ sV HH *+ *+ ! %&  6  7E v((* A !++- (-   v(( * A !++- (!-   v((* A !++- (-   v((* A !++- (%-   v((* A !++- (%-   ()335 A !++- ($%"-   v(( [ * A !++- (%% -  xx ! !!h ! !!6(+55 7BOO787 A ;;=   !!6(+55 7BOO=>7 A ;;=   !!6(+55 7BOO>?7 A ;;=   !!6(+55 [ 7BOO>?7 A ;;=S   !!6(+55 [7 A ;;=S   HH.( E-- q)+""6*446G5HIA !++- (c !f-  rUctjgdddgdzd}tjgdddgdzd}tj||g}tjt 5|j djdgddd|j ddjdg}tjddgd dgd }|j|sJy#1swY\xYw) Nr_rzrr r)rzfirstF) use_threadsr )ra_first) rrrr,r-r.rCrDrP)rrrrrSs r!test_table_group_by_firstrO sXXLSzA~> ?F XXLSzA~> ?F   ff- .E * +8 s%%~&678^^CU^ 3 = =~>N OFxxsCjaV<=H == "" " 88s /"C,,C5cltjgdgdgdd}tjtd5|j dj dgddd|j dj d g}tjgd iiigd }|j|sJtjd }|j dj dd|fg}tjgd ddd ddd ddd gd }|j|sJy#1swYxYw)N)r r rr r r)hrQrQwrRrR)ryrrrrr)grouprMrNz accepts 3 arguments but 2 passedrDrS)rM pivot_wider)rMrNrTr )rSkey_value_pivot_wider)rQrR) key_namesrUrTryrrrrr) rrr,r-r.rCrDrPrEPivotWiderOptions)rrrSoptionss r!test_table_group_by_pivot_widerrZ s2 HH1;79 :E z)K LD w))+A*BCD ^^G $ . .0Q/R SFxx)35r2,@AH == "" """Z8G ^^G $ . . M7 346FxxB r!32B5G#I JKH == "" "#DDs "D**D3cjtjjdgdi}|j}|j|jk(sJ||j k(sJ|jd}|j jdk(sJ|j jdk(sJy)Nrr r rr )rr~r* to_readerrread_allread_next_batchr)rr<s r!test_table_to_recordbatchreaderr_ s HH #y!1 2E __ F <<6== (( ( FOO% %% % __1_ -F  ! ! # , , 11 1  ! ! # , , 11 1rUctjgdgdd}tjgdgdd}|j|dd}|jtjgdgdgd d k(sJ|j|ddd }|jj dtjgd gdgdd k(sJy)Nr r rrzrrLcolAcol2rrr r r3r5r4)colBcol3rdrhr4r5Nrdreri full outer join_typer r rrrrzrrLNr4r5Nr3rrjoinrOsort_byrs r!test_table_joinru s  B  B WWR (F  "bhh 0'   WWR>& !RXX$ /&  rUctjdgdi}tjgdgdd}|j|dgd}|tjgdgdd k(sJy) Nrr rgr)r}rr r)r3r3r5)rr})rrrrs r!test_table_join_asof_empty_byr s}  i B " B \\ taF RXX"  rUc ,tjgdgdgdgdd}tjgdgdgdgd gd d }d }tjt| 5|j |dddgddddgdddy#1swYyxYw)Nrar{r rbrr~rgrrrrfr)rhr}colUniqrdrzXColumns {'colVals'} present in both tables. AsofJoin does not support column collisions.rDrrdrhr r)rrr,r-r.rrvrRrJs r!test_table_join_asof_collisionsr s "  B ""  B 7 z -  4VV,VV$4     s %B  Bc Ftjgdgdgdd}tjgdgdgdgdd }d }tjtjj | 5|j |d d dgdd d gdddy#1swYyxYw)Nrar{r rrgrrfrr}rrdrz)inconsistent size of by-key across inputsrDrrdrhr rrrr,r-rr rrs r!'test_table_join_asof_by_length_mismatchr s  B ""  B 6C rvv**# 6  4VV,VH     s 3BB c >tjgdgdd}tjgdgdgdgdd}d }tjtjj | 5|j |d d gd d d gdddy#1swYyxYw)Nrar rdrrgr)gX@rgrfrrzCExpected by-key type int64 but got double for field colA in input 1rDrrdr rrrs r!%test_table_join_asof_by_type_mismatchr s  B ""  B PC rvv**# 6  4VHVH     0BBc >tjgdgdd}tjgdgdgdgdd}d }tjtjj | 5|j |d d gd d d gdddy#1swYyxYw)Nrar rrgrrf)rgrhrBrzAExpected on-key type int64 but got double for field on in input 1rDrrdr rrrs r!%test_table_join_asof_on_type_mismatchr s  B ""  B NC rvv**# 6  4VHVH     rc|jddgddgd}tjtjdddtjddd g}t j t 5|j|ddd|jddgd dgd}|j|j|k(sJy#1swYBxYw) Nr TrrzrFr7rboolF)r*rrrr,r-r.r )r$r new_schemas r!test_table_cast_invalidr s OO4)4,? @EBHHS'DAHHS&5ACDJ z " : OO4)5$-@ AE ::j ! ( (J 66 6 s 5CCc|jtjgdtjgdgddg}|jdj gdgddk(sJ|jd gj gd gd dk(sJ|jtjgd tj tjgdgddg}|jdg}|j }|dgdk(sJ|dgdk(sJ|jdg}|j }|dgd k(sJ|dgdk(sJy)N)rr rr r)rrzrrzr rr(r{r0rrB)r descending)r rrrzrz)rrrr r )rrr#r)rcarrfoobarrzr)rzr)rrrr)rrrr)rz ascending)rrrNrtr(rF)r$rr  sorted_tabsorted_tab_dicts r!test_table_sort_byr, sz OO ! *+   !E == " , , .)!3   ==23 4 > > @)!E   // RXXZ0 013Z  C 123J **,O 3 = 00 0 3 #B BB B012J **,O 3 = 00 0 3 #B BB BrU constructorc4|gdgdgddg}tj|}tjddgdd gd d ggd }tjj ||tj|d }tjj |||j dk(sJ|j g}tj|}tjd}tjj |||j d k(sJtj|d }tjj |||j dk(sJ|jdd}tj|}tjd}tjj |||j d k(sJtj|d }tjj |||j dk(sJy)Nr rArzrr{r rr rrrrjrru)rrrr) r[r\rNrassert_allcloserremptyr})rrrrSrrs r!test_numpy_asarrayrS s O4S#J GE ZZ Fxx!Q!Q!Q0 BHJJvx0 ZZW -FJJvx0 <<7 "" "\\" F ZZ FxxHJJvx0 <<9 $$ $ ZZg .FJJvx0 <<7 "" "[[A F ZZ FxxHJJvx0 <<9 $$ $ ZZg .FJJvx0 <<7 "" "rUc|gdgdgddg}tjddgdd gd d ggd }ttjtdkr8tj|d}tjj ||yt jtd5tj|ddddy#1swYyxYw)Nr rArzrr{r rr rrrrjrz 2.0.0.dev0F)copyzUnable to avoid a copyrD) r[rNr __version__rassert_array_equalr,r-r.)rrrSrs r!test_numpy_array_protocolrt s O4S#J GExx!Q!Q!Q0 BHr~~!66%e, %%fh7]]:-E F ( HHU ' ( ( (s +C  Cc "d}tjjt|t|Dcgc]}tdDcgc]}|c}c}}d}tjjt|t|Dcgc]}|c}d}t j tj j5}|j|dddddd}|tjvsJt j tj j5}|j|ddddd|t|jvsJycc}wcc}}wcc}w#1swYxYw#1swY?xYw) Nrr)rm array_column)rmrNrminnerrmzOData type list is not supported in join non-key field array_column) rr~r*rr,r-rr rsrmrN) NUM_ITEMSrrrvrRexcinfo exp_error_msgs r!test_invalid_non_join_columnr sDI   I8=i8HI1U1X.!.I B   I"9-.!. B rvv** +-w DG,-/M C . .. . rvv** +-w DG,- C . .. .#/I/----s5E.  E)E.  E4 E92F)E. 9FFcNtjd}|jdS)Nz pyarrow.cudar)r, importorskipContext)cudas r! cuda_contextr s   ~ .D <<?rUctjtjdtjtjdtjgS)NrDrE)rrrrurXrUr!rr s8 99bhhtRXXZ0"((42LM NNrUctjgd|jdjtjgd|jdjgS)NrrrCr )rrNrr r(s r! cpu_arraysr sG HH_fll1o&:&: ; HH+V\\!_-A-A B DDrUc^|Dcgc]}|j|jc}Scc}wrcopy_tomemory_manager)rrrIs r! cuda_arraysr s%@J KCKK 33 4 KK Ks"*cPtj|}|jdusJ|S)NTrr(is_cpu)rr(s r!cpu_chunked_arrayr s,$$Z0M   4 '' ' rUcPtj|}|jdusJ|SNFr)rr(s r!cuda_chunked_arrayr s,$$[1M   5 (( ( rUcVtj||z}|jdusJ|Srr)rrr(s r!cpu_and_cuda_chunked_arrayr s1$$Z+%=>M   5 (( ( rUc0tj||SNr()rr))rrs r!cpu_recordbatchr s ??:f 55rUc8|j|jSrr)rrs r!cuda_recordbatchr s  " "<#>#> ??rUc4tj||g|Srrr)rrs r! cpu_tabler s 88&(9:6 JJrUc4tj||g|Srr)rrs r! cuda_tabler s 88');|j>k(sJtA|jBtA|jBk(sJ|jEd}|jFtHjJjLk(sJt j t5|jOdddt j t5|jQdddt j t5|jSdddy#1swYxYw#1swYxYw#1swYxYw#1swYgxYw#1swYMxYw#1swY(xYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYyxYw#1swYTxYw#1swY/xYw#1swY xYw#1swYxYw#1swYxYw#1swYxYw#1swYvxYw#1swYQxYw#1swY)xYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swY[xYw#1swYxYw#1swYxYw#1swYyxYw)NTfullrTFTFTrr r )*r lengthrmreprr+r,r-r. null_countr9r&is_nullis_nanis_valid fill_nullrr] __array__r rrrOunique value_countsrrr}r[ drop_nullsortrr+r3r/r device_typerDeviceAllocationTypeCUDAr*r __reduce__)rrrrrs r!test_chunked_array_non_cpur s\  " "&7&<&< << <  $ $ &*;*B*B*D DD D ! "c*;&< << < ! "d+=&> >> >! * +/###./ * +&%%& * +"!!" * +30023 * +1 * +%""$% * +$!!#$ * +&##%& * +($$Q'( * +1001 * +'$$&' * +&##%& * +'$$&' * +"!" * +/,,./ * +%""$% * +,))+, * +$!!#$ * +*'')* * +D!!"BCD * +$  #$Q" * +%$% * +'$$&' * +"!" * +0--/0  ( (,=,H,H HH H !(( )S1B1I1I-J JJ J  $ $Q 'E    7 7 < < << < * +'$$&' * +0--/0 * +(%%'((s//&&""33%%$$&&((11''&&''""//%%,,$$**DD$$%%''""00''00((sPY8 Z; Z)ZZ,Z94[&[[  [-2[:$\\\!:\.,\;]]]"4]/)]<.^ "^^#^0:^=,_ _8ZZZZ),Z69[[[ [*-[7:\\\!\+.\8;]]]"],/]9<^ ^^ #^-0^:=_ __ c|j|jtjjk(sJ|j dusJ|j t|jk(sJ|j|jk(sJt|t|vsJ|jD]+}|jtjjk(r+J|j|k(sJyr)r+rrrrrrqr3r|rHrmrrGr)rexpected_schemar s r!verify_cuda_recordbatchrns NN    7 7 < < << < <<5    O$9$9 : :: :   !6!6 66 6 u:e $$ $ ]]=}} 7 7 < <<<<= <, but expected .rDr rErDrrmaskTrDrErrkeyvaluecol0col1r)   R::< = D D_ UU U**+a. TU+WXIIv>   R::< = D D_ UU U(-S->'? @!fll1o @F @>>--k&-IL * +7 ((67 * +'&&&&' * +8557778 * +%""$% * +%""$% * +%""$% * +%""$% * ++((*+ * +%""$%!&&q!,IIv>    "" "!!""?"?"ABI --a3 33 3!88&(9KLIIv>    $ $(: :: :!//0@AIii &&,,q/.. / &&,,q/.. / 12OIG * +-!!t!,- * +%""$% * +-**,- * +.++-. * +9'557899Q ! !(**00,,##''::A77''88%%%%%%%%++%%0--%%--..99s ff%<f2.f?%g g1g&<g3 g8hh7h)h,h9 i?i1i +i-i:jj5j!f" %f/2f<?g  gg#&g08hhhh),h69iii i*-i7:jjj!j*c|j|jdusJ|jt|jk(sJ|j |jk(sJt |t|vsJ|jD]`}|jdusJ|jD];}|jdusJ|jtjjk(r;Jb|j|k(sJyr)r+rrqr3r|rHrmrrGr2rrrrr)rrr rs r!verify_cuda_tablers NN <<5    O$9$9 : :: :   !6!6 66 6 u:e $$ $ ]]Exx5   \\^ EE<<5( (($$(?(?(D(DD DD EE <jA|d d g} t| |tj>jC|d|dd } t| |tEt|jFDcgc]}|j|}}tjHjA|| }t-j.t05tj>jK|dddtj>jM||g|} t| |t-j.t05|jNsJ dddt-j.t05|jQsJ dddt-j.t05|jSdddt-j.t05|jUdddt-j.t05|jWdddt-j.t05|jYddd|j[d}|D]1}t-j.t\5t_||ddd3|jad}|D]1}t-j.t\5t_||ddd3|jcdd} t| || jdk(sJ|jeddi} t| || j(jfddik(sJ|jiddg} tj(tjd|jdjjtjd|jdjjg}t| ||jmt-j.t05|jmddddt-j.t05|jodddt-j.t05|jodddt-j.t05|jqdddt-j.t05|jsd dddt-j.t05|ju|d dddt-j.t05|jw|d d ddddt-j.t05|jydddt-j.t05|j{dddt-j.t05t}|jdddt-j.t05|jdddy#1swYxYw#1swYixYw#1swY?xYw#1swYxYw#1swYxYw#1swYxYwcc}w#1swYxYw#1swY>xYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swY{xYw#1swY@xYw#1swYxYw#1swYxYw#1swYxYw#1swYhxYw#1swYBxYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYzxYw#1swYyxYw)Nr)ryr r r rFrTrErDrr r rrrr r rrr)Arrr_r3rGrOrWrrNrGrrrrrrrfrr^rrrFr,r-r.r rrr[rtrPr~rr*rr|rrr2r9r&r(r*rrrAssertionErrorrr\r}rrPrsr r+rrrCrsrrrrrr)rrrrrrrrcpu_colcuda_col new_tablerrcuda_table_with_nullsrrrr8rr<rs r!test_table_non_cpur&(s j&9A   w && & z!! "a '' '$$j&;&;< 2((A37BGGI.??<#>#>?q$) )V]] HHT2779 %6' (q$( 5((("))U222"))U222"))T111 2((+Iiq1AB''/Iiq1AB''t 5I y  !Q && &    !!4&)Iiq1ABBHHT288:6rxxz8RSTJ * +$ #$xxatfqj199,:U:UVH&11!T8D * +*'')* * +&4&1*%& * + * +!4 !   A &,,q/ 11 1   A &,,q/ 11 1 * +,  +++,$$[4,?Ii8$$KN+a.%QRIi8(-S->'? @!fll1o @F @>>--k&-IL * +1 ""<01%%'79I&JFSIi8 * +!    ! * +2//1112 * + * + * + * +%""$%##!#4GC ]]> * C #E6 B C CC  ! ! ! 2FC ]]> * C #E6 B C CC   A&Ii8    "" "22FH3EFIi8    $ $(: :: :))66*:;Iii &&,,q/.. / &&,,q/.. / 12OiA * +'&' * + * + * +(%%'( * +"D!" * +* D)* * +8ZtQ78 * + * +(%%'( * +3z//123 * +   a$$ **&&!!,,A11!!22%% C C C C,''((""**88((33  s>.j,j$j1j> k k'k%; k*+k7lll5l+'l80m8m7m+m,m9nn4n (n-n:oo=o!j!$j.1j;>k kk"*k47llll(+l58mm m m),m69nnn n*-n7:ooo!o*) collectionsrcollections.abcrr5r:numpyr[ ImportErrorr,pyarrowrpyarrow.computecomputerEpyarrow.interchangerpyarrow.vendored.versionrr?rKrTrYmarkrcrkrorwrrr parametrizerWrFrjr)r?rrrrrrrrrrnopandasrrrrr rrr r+r0r3rArIrUr\rcrgrorrrurxrrrrrrrrrrrrrrrrrrrrrrrrrr r rrrr#r~rr/r1r;r=r?rErHrJrMrUrYrardrgrirlrnrtrwrrrrrrrrrrrrrrrrrrrrr0rNr(rrrrrrrrrrrrrrrrrr"r$acerorJrOrZr_ruryrrrrdatasetrrrrrrrrrrr)rrrfixturerrrrrrrrrrrrrrrrr&rXrUr!r6s$$$ .,D*HZ 8 & & C(((6!0 %-B` "HBHHJ/ xrxxz" :2::<( 9299;' XRXXhbhhj !" a&1#,- %Sz "HBHHYRYY[$9: # BIIxrxxXRXXZ0("((3  2LM N P          11&++2++2 / /%<%>OO<9K*LMN* 2 <9K*LMN,$ N"8' .6" +)#"**0#f=  7      5% 4B  4Bn66.0.0.f&..(9.9.x$$$""9J?-00 <***D  CCL , 0#&  **  .  $  ""((         06  ++8  664( !"9JD(#4E<! //,60,>*#4$"   ##8  //8  //>99.)40.)2884 teU^ur4j12B4D4DE) M  MF  6565r.)2884 teU^ur4j12B4D4DE)2 2<.)40.)2884 teU^ur4j12B4D4DE) *  *&  R&R&j**@!!:'( 0 0 )'T-$(VI$ OB J G0#fYYx # ###2244==."((bnn >? @ ,##L.2&  6  ,  *  *   7 7  CC@2??(CD#E#>2??(CD (E (//0 OODD LL   66@@KKMMLLJ(Z +]9@ +z _x Bsv vv