K iWb ddlZddlZddlZddlZddlZddlZddlmZddl m Z m Z m Z m Z m Z ddlZddlmZddlZ ddlZddlmZ ej2ZddlmZm Z ddl!m"Z"m#Z#m$Z$ddl%m&cmZ'ddl!m&cm(Z)ddl*m+Z+ddl,Z- ddl,m.Z/ ddl0Z1ddl2mZ3d d l4m5Z5m6Z6ejnj`Z8dd Z9 dd Z:dd Z; ddZGddZ?ejnjdgddZAejnjdgddZBGddZCGddZDGddZEGddZFGd d!ZGGd"d#ZHd$ZId%ZJGd&d'ZKd(ZLd)ZMejnjd*d+gd,gfd-ZNd.ZOd/ZPd0ZQeje'je'jd1ZUd2ZVd3ZWd4ZXd5ZYd6ZZd7Z[d8Z\d9Z]d:Z^d;Z_d<Z`d=Zad>Zbd?Zcd@ZddAZedBZfdCZgdDZhejnjdEe-jdFfe-jdGfe-jdHfe-jdIfe-jdJfe-jdKfe-jdLfe-jdMfe-jdNfe-jdOfe-jdPfe-jdQfe-jdRfe-jdSfe-jdSfe-jdTfe-jdUVdTfe-jdWfe-je-je-jdXfe-jdYdZd[fe-jd\d]fe-jd^d_d`fe-jdadbfe-jd^dbfgdcZddZdeZdfZdgZdhZdiZdjZdkZdlZdmZdnZdoZdpZdqZdrZddsZdtZduZdvZdwZdxZdyZGdzd{e-j,Zdd|Zd}Zd~ZdZGdde-j,ZdZdZdZdZdZejnjddddggdZdZejnj`dZdZdZdZdZdZejnj\dZdZejnjdgdejnjdddgejnjde dd d e dd d gdZdZejnj\dZdZdZdZdZdZdZdZdZejnjpdZdZejnj\dZy#e$r ddlmZYwxYw#e$rdZYwxYw#e$rYwxYw#e$rYwxYw)N) OrderedDict)datedatetimetime timedeltatimezone)VisibleDeprecationWarning)get_logical_type _pandas_api) invoke_script random_asciirands)Version)parquet)dataframe_with_arraysdataframe_with_listsc tjidtj|tjdtj|tj dtj|tj dtj|tjdtj|tjdtj|tjdtj|tjd tj|tjd tj|tjd tj|tjd tjj|d kDdtjd|ddtjd|ddtjd|ddtjd|ddtjd |ddtjd |dtjd |dtjd |dt|Dcgc] }t!|c}dgt|dz Dcgc] }t!|c}zdgzdg|zdScc}wcc}w)Nuint8dtypeuint16uint32uint64int8int16int32int64float32float64boolrz datetime[s]2016-01-01T00:00:00.001 datetime64[s]z datetime[ms]datetime64[ms]z datetime[us]datetime64[us]z datetime[ns]datetime64[ns]ztimedelta64[s]ztimedelta64[ms]timedelta64[us]timedelta64[ns])r'r(strstr_with_nulls empty_str)pd DataFramenparangerrrrrrrrr randomrandnranger+)sizexs _/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pyarrow/tests/test_pandas.py_alltypes_exampler8Cs` <<4rxx0"))D 2 "))D 2 "))D 2   $bhh/  4rxx0  4rxx0 4rxx0 299T4 299T4  %) ryy!:D'68  ";T(8:  ";T(8:!$  ";T(8:%( "))At3CD)* 299Q4EF+,99Q4EF99Q4EF %d ,1A,&E$(O#DqCF#DDvMTD[5 0-#Ds K'Kc<|rtjntj}|j||||rdnd} | j |} |r| j j |sJ|M|}|jD]<} || jdk(s|| jtjdi|| <>tj5tjddtt!j"| |||rdnd dddy#1swYyxYw) Nr)r)schemapreserve_indexnthreads use_threadsobjectignoreelementwise comparison failedequivF) check_dtypecheck_index_type)pa RecordBatchTable from_pandas to_pandasr:equalscolumnsrreplacer0nanwarningscatch_warningsfilterwarningsDeprecationWarningtmassert_frame_equal) dfexpectedr>expected_schemarCr:r;as_batchklasstableresultcols r7_check_pandas_roundtripr\bs 'BNNBHHE   b-;,7qQ  @E___ 5F||""?333## FC}""h. ( 5 5rvvtn E  F  "= 57I K fhK;I5: ====s 9DDctj|d|}|||}||j|k(sJtj|j |j }tj||y)NTrHtypename) rEarrayr_r.SeriesrIrarRassert_series_equal)stype_expected_pa_typearrrZs r7_check_series_roundtriprisi ((1$U 3C -5 #xx++++ YYs}}QVV 4F1f%c\tj|d||}|j}tj|}||j |j k(s$J|j ||zj k(sJ|~|tj|}n6tj|j}d||j<|jdk(r!|jtjdi}tjtj||dy)NT)rHmaskr_r?F check_names)rErbrIr.isnull null_countsumrccopyrrLr0rMrRrd)valuesrUrlr_rhrZ values_nullss r7_check_array_roundtriprus ((6t$T BC ]]_F99V$L |~~!1!1!3333~~$"5!:!:!<<<< <yy(Hyy(--/H$(HTYY[ ! >>X %''7H299V,hEJrjctj|d|}|j}tj||y)NTr^rErbrInptassert_array_equal)np_arrayr_rhrZs r7"_check_array_from_pandas_roundtripr{s/ ((8D 9C ]]_F68,rjceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZej*j-ddZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#d Z$d!Z%d"Z&d#Z'd$Z(ej*jSd%e*jVe*jXe*jZe*j\gd&Z/d'Z0d(Z1d)Z2d*Z3d+Z4y,)-TestConvertMetadataz9 Conversion tests for Pandas metadata & indices. ctjdgdi}tjj |}|j dj dk(sJy)Nrrr)0)r.r/rErGrHfieldraselfrTrYs r7test_non_string_columnsz+TestConvertMetadata.test_non_string_columnssD \\1i. )$$R({{1~""c)))rjc.tjgdgdd}|jd}tjt 5t jj|}|jdjdk(sJ ddd|j}t|jj|j_ tjt 5t||ddddy#1swYxxYw#1swYyxYw)N?@@)@@@)rrr1TrUr;)r.r/ set_indexpytestwarns UserWarningrErGrHrrarrr+indexr\)rrTrYrUs r7"test_non_string_columns_with_indexz6TestConvertMetadata.test_non_string_columns_with_indexs \\o/B C \\!_\\+ & .HH((,E;;q>&&#- -- .779!(.."5"56 \\+ & 9 #B37 9 9 9 . . 9 9sAC?'D ?D Dctjgdgdgddddg}tjj |ddg}tjj |ddg}|j |sJtj j |ddg}tj j |ddg}|j |sJy)Nr)rrr)r)rrr)rrrK)r.r/rErGrHrJrF)rrTrYrUrecord_batch_tablerecord_batch_expecteds r7test_from_pandas_with_columnsz1TestConvertMetadata.test_from_pandas_with_columnss \\iI)D#$a&*$$R!Q$888''Aq6 3u%%%^^77QF7K " : :2q!f: F$++,>???rjcttjdgdi}dg|j_t |dy)NdataraTr;)r.r/rKnamesr\rrTs r7%test_column_index_names_are_preservedz9TestConvertMetadata.test_column_index_names_are_preserveds- \\69- .5 48rjc tjtjj ddtj dddd}t |d y) Nrrz 2021-01-0150DCET)periodsfreqtzrTr)r.r/r0r2r3 date_ranger\rs r7test_column_index_names_with_tzz3TestConvertMetadata.test_column_index_names_with_tzsB\\ IIOOAq !MM,%P  48rjc ~tjtjdtjdggtjj tjdgtjdtjdggtjdg}t |d y) Nrrr)rr)rKrTr)r.r/decimalDecimal MultiIndex from_productr\rs r7$test_column_index_names_with_decimalz8TestConvertMetadata.test_column_index_names_with_decimals \\ooa '//!"4 5 6MM..//!$%(:GOOA i( , \\8' J48rjc tjdgtjdgt}t |dtjdgtjdgt}t |dtjdgtjt dddgd}t |dy) NrrrTr皙?r?)r.r/Indexr?r\rrs r7(test_multiindex_with_column_dtype_objectz--++eU^c3Z,HI \\8' J48rjcNtjjddgddgg}tjgd|}t j 5t j dt jd d tt|d dddy#1swYyxYw) Nrrrrrrrrr@rTr) r.rrr/rNrOrrPrQr\rs r7test_multiindex_doesnt_warnz/TestConvertMetadata.test_multiindex_doesnt_warnMs--++eU^c3Z,HI \\8' J  $ $ & =  ! ! 1  # #46H  $Bt < = = =s ?BB$cLtjgd}t|dy)NrTrr.r/r\rs r7test_integer_index_columnz-TestConvertMetadata.test_integer_index_column\s \\8 948rjcptjgddtjg}t |dy)Nr?rTr)r.r/r0rMr\rs r7$test_float_column_index_with_missingz8TestConvertMetadata.test_float_column_index_with_missing`s% \\83- P48rjz?ignore:The DataFrame has column names of mixed type:UserWarningcTtjgdddg}t|dy)NrArTrrrs r7%test_string_column_index_with_missingz9TestConvertMetadata.test_string_column_index_with_missingds#\\83+ N48rjc:tjgdtjjgdgdgddggd}t j r"t jj|d }nCtjt5t jj|d }dddjj}|d \}}}}}|d d k(sJ|d |d k(sJt j r$tj|d sJ|d dk(sJ|d J|d dk(sJ|d dk(sJ|d |d k(sJ|d\} } | dk(sJ|d | k(sJ|d J| dk(sJ|d | k(sJ|d | k(sJy#1swYxYw)N))rr@)r)rg@)rrg?)rrr)rr)rrr)rN__index_level_0__)rrKTrrKrar field_namerMNoner index_columns)r.r/rrr uses_string_dtyperErGrHrrrr:pandas_metadatar0isnan) rrTtjscol1col2col3idx0r idx0_descr foo_descrs r7test_index_metadata_field_namez2TestConvertMetadata.test_index_metadata_field_nameks \\ 9--++ ),Um,5    ( ( *$$R$=Ak* BHH((D(A B XX % %&(m#dD$F|s"""F|tL1111  ( ( *88DL) )) %. ..<' '' %/ //F|2222F|tL1111 "? 3 I0000L!Z///F|###E!!!< I---6{i'''5 B Bs "FFcTtjgdtjtdd}tj j |d}|jj}|d\}|d J|d d k(sJ|d d k(sJ|d}|ddk(sJ|ddusJy)N)rrr)r)rr)rrrdefcategoryrrTrcolumn_indexesra pandas_type categorical numpy_typermetadatanum_categoriesrorderedF) r.r/rlistrErGrHr:rrrTrrrmds r7test_categorical_column_indexz1TestConvertMetadata.test_categorical_column_indexs \\ 9HHT%[ ;  HH D 9 XX % %-.f%---m, ===l+v555 J '"#q((()}%%%rjctjgdtjtdd}tj j |d}|jj}|d\}|d dk(sJ|d |d k(sJ|d tjrd nd k(sJ|ddk(sJ|d}t|dk(sJ|ddk(sJy)Nr rstringzr`rTrrrarrr+r?runicoderrencodingUTF-8) r.r/rrrErGrHr:rr rrrs r7test_string_column_indexz,TestConvertMetadata.test_string_column_indexs \\ 9HHT%[y9  HH D 9 XX % %-.f%222f% )EEEEl+ 224E(   m, 999 J '2w!||*~(((rjc2tjgdtjddd}tjj |d}|j j}|d \}|d J|d d k(sJ|d dk(sJ|d}|ddk(sJy)Nr  2017-01-01rAmerica/New_YorkstartrrrTrrrar datetimetzrr&rr)r.r/rrErGrHr:rrs r7test_datetimetz_column_indexz0TestConvertMetadata.test_datetimetz_column_indexs \\ 9MM"A2D  HH D 9 XX % %-.f%---m, <<<l+/???? J '*~!3333rjctjdtjdddi}|jd}t |dy)Nrr"rr#r$Tr)r.r/rrr\rs r7test_datetimetz_row_indexz-TestConvertMetadata.test_datetimetz_row_indexsE \\ "A2D   \\# 48rjctjgdgdd}|jjd|d<|j d}t |dy)NrrrrrTr)r.r/rastyperr\rs r7test_categorical_row_indexz.TestConvertMetadata.test_categorical_row_indexsC \\ : ;$$++j)3 \\# 48rjctjddgtd}tjt 5t jj|dddy#1swYyxYw)Nrraar) r.r/rrraises ValueErrorrErGrHrs r7*test_duplicate_column_names_does_not_crashz>TestConvertMetadata.test_duplicate_column_names_does_not_crashsN \\8X.T C ]]: & % HH  $ % % %s A%%A.cddgddgg}|D]}tjj|dgd}tjj|gdg}tjj |||g}t jt5|jdddt jt5|jdddy#1swY>xYw#1swYxYw)NrrrFsafer) rEDictionaryArrayrrFrG from_batchesrr0 IndexErrorrI)rindicesindsrhbatchrYs r7#test_dictionary_indices_boundscheckz7TestConvertMetadata.test_dictionary_indices_boundschecksq6Ar7# "D$$00u50ICNN..uug>EHH))5%*?@Ez*   z* "! " " "    " "sCC(C% (C1 cTtjddgidg}t|dy)NrruうrTrrrs r7*test_unicode_with_unicode_column_and_indexz>TestConvertMetadata.test_unicode_with_unicode_column_and_indexs% \\55'*5' :48rjc*tjddgddgd}ddgddgdd gfD]}tj|t |_t j t5tjj|ddd|j}|jjjt|_t j t5t||d dddy#1swYzxYw#1swYxYw) Nrr)rrr+ra2rrTr)r.r/rr?rKrrrrErGrHrrrsr,r+r\)rrTcolsrUs r7test_mixed_column_namesz+TestConvertMetadata.test_mixed_column_namess \\AaV4 5T]QHq#h7 =D$f5BJk* )$$R( )wwyH!zz0077#BC D$$R( \\ ) )b   mA& =)W444<(H444rjc@tjgdgddgd}tjj |}|j d}|j |jjj }tj||y)NrrrPbazr+)rrthreerT)ignore_metadata) r.r/rErGrHrIcastr:remove_metadatarRrS)rrTrYrZrUs r7test_ignore_metadataz(TestConvertMetadata.test_ignore_metadata/sv \\ 0EF 79$$R(6JJu||;;=>Y[  fh/rjc tjddggddgdzgi}tjtjdtj tj g}tjj||}|jj}d|vsJ|d d }|d d k(sJ|d dk(sJy)Nrrr)rrrrr_r:rXrKrrz list[int64]rr?) r.r/rEr:rlist_rrGrHr)rrTr:rYrr[s r7test_list_metadataz&TestConvertMetadata.test_list_metadata:s \\6QCQC!G#<= >BHHV"((288:2FGHI$$R$7 \\ ) )b   mA& =)]:::<(H444rjctjdddddddgi}tjj |}|j j }|ddd d k(sJy) Ndictsrr)r+rrrKrrr?rZ)rrTrYrs r7test_struct_metadataz(TestConvertMetadata.test_struct_metadataDsd \\711%5QQ7G$HI J$$R(,,66y)!,];xGGGrjcLtjdtjdtjd gi}tj j |}|jj}d|vsJ|dd}|ddk(sJ|d d k(sJ|d d d dk(sJy)Ndecimals394092382910493.12341234678z314292388910493.12343437128rXrKrrrrr?r  precisionscale) r.r/rrrErGrHr:r)rrUrYrr[s r7test_decimal_metadataz)TestConvertMetadata.test_decimal_metadataJs<<  =>!>??!   $$X. \\ ) )b   mA& =)Y666<(H444:&R*HHHHrjtypc ftjdtjdgi}t j t j d|ddg}tjj||}|j jdd}|d d k(sJ|d ddd k(sJy) Nr3.14rr)rgrhrKrrrrrs) r.r/rrrEr:rrGrHr)rrwrTr:rYcol_metas r7test_decimal_other_bitwidtsz/TestConvertMetadata.test_decimal_other_bitwidtsYs\\3!8 9: ;BHHSs1ay9:;$$R$7<<// :1= &)333 #Q'CCCCrjcdtjgddtjdddfD]}tjgdgd d | }tj j |}|jd }|j}|d g}t|jtjrd|j_ tj|||jd }|j}tj||d gjdy)Nrrrrr`r"rEurope/Brusselsrrr皙?皙?333333?r+rrrTdrop)r.rrr/rErGrH remove_columnrIrrrrrRrS reset_index)rrrTrY table_subsetrZrU table_subset2s r7!test_table_column_subset_metadataz5TestConvertMetadata.test_table_column_subset_metadatagsw7 lA:KLN LEI$029>@BHH((,E ..q1L!++-F3%yH"((B$4$45 $  ! !&( 3(66q9M",,.F  ! !&"cU)*?*?T*?*J K! Lrjctjttdttdt j dd}t jj|jddg}|jddg}|j}|ddgjd}tj||y)Nr)firstsecondvaluerrr)r.r/rr4r0r1rErGrHrselectrIrRrS)rrTrYsubsetrZrUs r7'test_to_pandas_column_subset_multiindexz;TestConvertMetadata.test_to_pandas_column_subset_multiindex|s \\58nE!H~iil $  $$R\\7H2E%FGw01!!#w()33G< fh/rjc Rdgddgdg}gggg}tdtj|tjtjfdtj|tjtjfg}tj j t|jt|j}tjj|g}|j}tjj|}|jj}|j} t!j"td|fd|fg} t%j&| | |dddddd d ddddd d gk(sJy) Ntestrrc1rgc2rKr?z list[unicode])rarrrrz list[empty])rrErbristringrFrrrskeysrGr8rIrHr:rr.r/rRrS) rrrarraysrbtblrTtbl2md2rrUs r7test_empty_list_metadataz,TestConvertMetadata.test_empty_list_metadatasqhc D )"b\ 288BRXXbiik%:; < 288BRXXbiik%:; <  ^^ ' '  !   hh##RD)]]_xx##B'kk))nn<< dBZ$,D EF c8,9~" &.  " &,  "    rjctjgdgdd}tjj |}|j j dJy)Nrr+pandas_versionrZrs r7test_metadata_pandas_versionz0TestConvertMetadata.test_metadata_pandas_versionsE \\ : ;$$R(||++,<=IIIrjctjdtjddi}tjj |}|dj tjdd}|jdtjd|j|}tjdtjddfg}tjj || }|j}|djjd|d<||fD]@}|jjJ|j!} t#j$| |By) Nrz 2020-01-01rrnsUTCrrrh)r.r/rrErGrHrb timestamp set_columnrr_r:rrdt tz_localizerrIrRrS) rrTrYnew_col new_table1r: new_table2rU new_tablerZs r7test_mismatch_metadata_schemaz1TestConvertMetadata.test_mismatch_metadata_schemas/ \\:r}}\1'MN O$$R( #((du)EF%% rxx GLL17 Zdu)EFGHXX))"V)< 779' 366BB5I$j1 4I##33? ??((*F  ! !&( 3  4rjN)5__name__ __module__ __qualname____doc__rrrrrrrrrrrrrrrrrmarkrPrr rr r'r)r-r2r=r?rDrNrUr\rdrjrmrv parametrizerE decimal32 decimal64 decimal128 decimal256r{rrrrrrjr7r}r}s:* 9 @9 9 9*6 , =9 99$9 =99 [[I99'(R&")*4$99% "9 ="$& 95 05H I [[U    % D  DL* 0* XJ 4rjr}ceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZy)TestConvertPrimitiveTypesz> Conversion tests for primitive (e.g. numeric) types. ci}g}dtjfdtjfdtjfg}d}|D]]\}}tj j |}|j|||<|jtj||_tj|}tj|} t|| y)Nf2f4f8drV)rEfloat16rr r0r2r3r,appendrr.r/r:r\) rrfieldsdtypes num_values numpy_dtype arrow_dtypersrTr:s r7test_float_no_nullsz-TestConvertPrimitiveTypes.test_float_no_nullss&&&( (. > $KYY__Z0F & k :D  MM"((; < = > \\$ 6"F;rjc|d}tjjdd|dk}dtjfdtj fdtj fg}gd }g}g}g}|D]\}} tjj|j|} tj| d | } |j| |jtj|| tj| |<|j| tjtt!||| } tj"j%||} | j&j)tj&|sJ| j+}t-j.|| y) Nrr r5rrrr)rrrT)rHrlr)r0r2randintrErrr r3r,rbrrrMr.r/dictziprGrr:rJrIrRrS)rr null_maskrr expected_colsrrrarrsrhex_framerYrZs r7test_float_nullsz*TestConvertPrimitiveTypes.test_float_nullssf II%%a*%=A &&&(# !' ) D+YY__Z077=F((6t)DC MM#  MM"((45 6 "F9    ( )<<S %> ?(-/$$VU3||""299V#4555" fh/rjctjdddtjgi}t j t j dt jdg}tjj||d}|djgd k(sJtj||jy) NrrrTnullableFr:r6rrr)N)r.r/r0rMrEr:rrrGrH to_pylistrRrSrIrrTr:rYs r7test_float_nulls_to_intsz2TestConvertPrimitiveTypes.test_float_nulls_to_ints s \\3c266 23 4BHHS"((*tDEF$$RU$CQx!!#|333 b%//"34rjctjgd}tjgd}t||tjy)N)rrNg)FTTNTrUr_)r.rcrurEbool_rrerUs r7test_float_nulls_to_booleanz5TestConvertPrimitiveTypes.test_float_nulls_to_booleans2 II1 299<=q8"((*Erjctjdtjg}t j |d}|j dk(sJtj|djsJy)NrFrHrr) r.rcr0rMrErbrpras_py)rrerhs r7'test_series_from_pandas_false_respectedzATestConvertPrimitiveTypes.test_series_from_pandas_false_respectedsV IIsBFFm $hhqe,~~"""xxA '''rjc (t}g}dtjfdtjfdtjfdtj fdtj fdtjfdtjfdtjfd tj fd tjfg }d }|D]\}}tj|}tjjt|jtjtj jt|jtjtj j|| }|j#|||<|j%tj&||t)j*|} tj,|} t/| | y)Ni1i2i4i8u1u2u4u8longlong ulonglongrr5rr)rrErrrrrrrrr0iinfor2rmaxminint_r,rrr.r/r:r\) rrr numpy_dtypesrrrinforsrTr:s r7test_integer_no_nullsz/TestConvertPrimitiveTypes.test_integer_no_nulls!sy}2779 bhhj1 288: rxxz 2 288: ryy{ 3 299; $ !4  ${BIIK&@   ". 8 E;88E?DYY&&s488RXXbgg5F5J5J'K'*488RXXbgg5F5J5J'K,6e'EF!--.DK MM"((5+6 7  8\\$ 6"F;rjc<t}gd}|D]}tjd|||<tj|}t ||j D]:}tj|}|j|jk(r:Jy)N)rrrrrrrrbyteubyteshortushortintcuintcruintrr r) rr0r1r.r/r\rsrErbrtolist)rrrrrTnp_arrrhs r7test_all_integer_typesz0TestConvertPrimitiveTypes.test_all_integer_types:s}A " 5E))Be4DK 5 \\$ #kkm 6F((6"C==?fmmo5 55 6rjc gd}|D]}dD]}tjgd||z}||dddfD]}|jjr9t j|}|j |j k(rPJtjt5t j|}dddy#1swYxYw)Nrrrrrrrrz=<>)rr)*rr)) r0rbrisnativerErrrr0NotImplementedError)r int_dtypesrorderrrrhs r7test_integer_byteorderz0TestConvertPrimitiveTypes.test_integer_byteorderKsE  1B 1xx %"*=#T#A#Y/1Fzz** hhtn"}}$++-???#]]+>?1"$((4.C11 1 1 111s C C cNgd}d}tjjdd|dk}g}g}|D]}tjjdd|}tj||}|j ||j d} tj| |<|j | tjtt||| } tjj||} | j} tj | | y) Nrrrrrrrlrr)r0r2rrErbrr,rMr.r/rrrGrrIrRrS) rr rrrrrarsrhrUrrYrZs r7test_integer_with_nullsz1TestConvertPrimitiveTypes.test_integer_with_nullsYsF  II%%a*%=A   +DYY&&q#J&?F((6 2C MM# }}T*H"$&&HY    * +<<S]%C D(24$$VZ8" fh/rjctjdd}tj}tj||}tj|j d}|j |sJy)Nrrrrgr)r0r1rErrbr,rJ)rrh target_typerZrUs r7 test_array_from_pandas_type_castz:TestConvertPrimitiveTypes.test_array_from_pandas_type_castvsVii'*ggi #K088CJJv./}}X&&&rjcJd}tjjdtjdtjj |dkDi}t jdt j}t j|g}t||y)Nrrboolsr) r0r2seedr.r/r3rErrr:r\)rrrTrr:s r7test_boolean_no_nullsz/TestConvertPrimitiveTypes.test_boolean_no_nullssl  q \\7BIIOOJ$?!$CD E"((*-E7#F;rjcd}tjjdtjjdd|dk}tjjdd|dk}t j ||}|j t}d||<t jdt j}t j|g}tjd|i}tjj|gdg} | jj|sJ| j!} t#j$| |y) Nrrrrrrrr)r0r2rrrErbr,r?rrr:r.r/rGrrJrIrRrS) rrrlrsrhrUrr:rrYrZs r7test_boolean_nullsz,TestConvertPrimitiveTypes.test_boolean_nullss  qyy  BZ 81<""1bz":Q>hhvD)==("((*-E7#<<( 34$$cUWI6||""6***" fh/rjctjgddz}tjgddz}t||tjy)NTTFTTr)rrrrrr)r.rcrurErrs r7test_boolean_to_intz-TestConvertPrimitiveTypes.test_boolean_to_ints; II59 :99_q01q8"((*Erjc0tjgddzt}tjgddz}d}tjt j |5t||t jdddy#1swYyxYw)Nrr)rrzExpected integer, got boolmatchr) r.rcr?rr0rEArrowTypeErrorrur)rrerU expected_msgs r7test_boolean_objects_to_intz5TestConvertPrimitiveTypes.test_boolean_objects_to_intso II59 H99_q013 ]]2,,L A J "1xbhhj I J J Js "!B  Bctjgddz}tjgddz}t||tjy)N)TTFNTr))rrrNrr)r.rcrurEr rs r7test_boolean_nulls_to_floatz5TestConvertPrimitiveTypes.test_boolean_nulls_to_floats< II59 :997!;<q8"**,Grjcvtjtjddddg}t |y)N)rr)r!rrrr)r.r/r0onesr\rs r7test_boolean_multiple_columnsz7TestConvertPrimitiveTypes.test_boolean_multiple_columnss) \\"''&7#s L#rjctjddtjdgdzt}t j d|i}t j dt j |i}tjdtj}tj|g}t|||y)Nrg @rrfloatsrUrV) r0rbr r?r.r/ to_numericrErr:r\rrhrTrUrr:s r7test_float_object_nullsz1TestConvertPrimitiveTypes.test_float_object_nullsshhc2::c?3a7vF \\8S/ *<<2==+= >?2::<0E7#X06 8rjc Ftjtjddtjg}t j t j t jt jt jt jt jt jg}|D]}t j||}t jgd|}|j|sJtjd|i}t j t j"d|g}tj$j'||d}|dj)dj|rJy) Nrrrg)Nrr)N has_nullsFr:r;r)r.rcr0rMrErrrrrrrrrbrJr/r:rrGrHchunk)rretypestyrZrUrTr:s r7test_float_with_null_as_integerz9TestConvertPrimitiveTypes.test_float_with_null_as_integers IIrvvr2rvv. /BHHJ BHHJRYY["))+ryy{D 7BXXab)Fxx 2*@F!9??1%,,X6 66 7rjctjddtjdgdzt}t j d|i}t j dt j |i}tjdtj}tj|g}t|||y)Nrrrrintsr*) r0rbrr?r.r/r+rErr:r\r,s r7test_int_object_nullsz/TestConvertPrimitiveTypes.test_int_object_nullsshha!-1@ \\63- (<<s); <=,E7#X06 8rjctjgddzt}tjd|i}t j dt j}t j|g}t||y)N)FNTrrrr) r0rbr?r.r/rErrr:r\)rrhrTrr:s r7test_boolean_object_nullsz3TestConvertPrimitiveTypes.test_boolean_object_nullssZhh*S0? \\7C. )"((*-E7#F;rjctjdgtfd}|tj|tj y)Nrctj|}|j|k(sJ|djJy)Nrgr)rErbr_r)ra2rhs r7 _check_typezJTestConvertPrimitiveTypes.test_all_nulls_cast_numeric.._check_types9#A&B77a< <a5;;=( ((rj)r0rbr?rErr )rr=rhs @r7test_all_nulls_cast_numericz5TestConvertPrimitiveTypes.test_all_nulls_cast_numerics8hhvV, ) BHHJBJJL!rjctjdtjgtj}t j|t j}|j \}}t |tsJ|dk(sJt |tsJtj|sJt j|t jd}|j \}}t |tsJ|dk(sJ|Jy)NrrrgTr_rH) r0rbrMrrErrfloatr)rrhrr6ys r7test_half_floats_from_numpyz5TestConvertPrimitiveTypes.test_half_floats_from_numpyshhRVV}BJJ7 HHSrzz| ,{{}1!U###Cxx!U###xx{{ HHSrzz| >{{}1!U###CxxyyrjN)rrrrrrrrrrrr rrrrrr"r$r'r-r4r7r9r>rCrrjr7rrsy<"0<5F (<26" 10:'<0.F JH $ 87"8< " rjrrrc|d}tjjdd|dk}tjjdd||}tj||}|j r|j d}d||<n|}|jd }tjj||y NrrrrrrrOTinteger_object_nulls) r0r2rrErbanyr,rItesting assert_equal)rrrrsrbrUrZs r7&test_array_integer_object_nulls_optionrLsJ !!!Rj!9A=I YY  q#Je  DF HHV) ,E}}==%" __$_ 7FJJFH-rjcd}tjjdd|dk}tjjdd||}tj||}|j r|j d}d||<n|}tj||i}tjj|g|g}|jd }tj||yrE)r0r2rrErbrIr,r.r/rGrrIrRrS)rrrrsrbrUrYrZs r7&test_table_integer_object_nulls_optionrNsJ !!!Rj!9A=I YY  q#Je  DF HHV) ,E}}==%"||UH-.H HH %5' 2E __$_ 7F&(+rjc8eZdZdZdZdZejjdgddZ dZ dZ e jejej"ze j$d d Zd Zd ZdZdZejjdd gdgdZejjdddgdZejjdddgdZejjdej8ej:ej<dej<dej<dej<dej<ddej<ddej<ddej<ddg dZejjdej8ej:ej<dej<dej<dej<dej<ddej<ddej<ddej<ddg d Z d!Z!d"Z"d#Z#d$Z$d%Z%d&Z&d'Z'd(Z(d)Z)d*Z*d+Z+ejjd,ej8ej:gd-Z,d.Z-ejj]e/d uxr,e0d/e0e/jbcxkxr e0d0kncd12d3Z2ejjdgdd4Z3ejjdgdd5Z4d6Z5y )7TestConvertDateTimeLikeTypeszQ Conversion tests for datetime- and timestamp-like types (date64, etc.). ctjdtjgddi}t j dt j d}t j|g}t||y)N datetime64)2007-07-13T01:23:34.1234567892006-01-13T12:34:56.4325397842010-08-13T05:46:57.437699912r&rrr r.r/r0rbrErrr:r\rrTrr:s r7#test_timestamps_notimezone_no_nullsz@TestConvertDateTimeLikeTypes.test_timestamps_notimezone_no_nulls0f \\ "(($1' (  r||D'9:E7# " rjctjdtjgddi}t j dt j d}t j|g}t||y)NrR)rSNrUr&rrrrVrWs r7 test_timestamps_notimezone_nullsz=TestConvertDateTimeLikeTypes.test_timestamps_notimezone_nulls?rYrjunit)remsusrc ttjtdkr|dk7rtjdtj dt jgdd|di}|djjd |d<t|t|dtj dt jgd d|di}|djjd |d<t|y) NrFrz0pandas < 2.0 only supports nanosecond datetime64rR)2007-07-13T01:23:34.1232006-01-13T12:34:56.4322010-08-13T05:46:57.437z datetime64[]r US/EasternrSNrTrU) rr.rIrrJr/r0rbrrr\ri)rr\rTs r7test_timestamps_with_timezonez:TestConvertDateTimeLikeTypes.test_timestamps_with_timezoneNs 2>> "WW%5 5$$, KKJ K \\ "(($+$D6+ -  l+..::<H<#< 01\\ "(($1 $D6+ -  l+..::<H<#rjctdDcgc]#}tjt|z%}}t j dt j |ti}tjj|}t|djdtjsJ|j}t j dt j |di}tj ||ycc}w)Nr)daysrrrr%)r4rtodayrr.r/rcr?rErGrHrr1TimestampArrayrIrRrS)rr6 date_arrayrTrYrZ expected_dfs r7test_python_datetimez1TestConvertDateTimeLikeTypes.test_python_datetimeksDI"INqhnn&)::N N \\  *F;  $$R(%(..+R->->???"ll  *4DE$   k62Os(Dc tjd}|j|jd|j dfD]7}t dddddd|g}t jd |i}t|9y) Npytzrdrrr-tzinfor) r importorskiputcr FixedOffsetrr.r/r\)rrorrsrTs r7%test_python_datetime_with_pytz_tzinfozBTestConvertDateTimeLikeTypes.test_python_datetime_with_pytz_tzinfo~st""6*88T]]<8$:J:J1:MN (BtQ2r2bABFz623B #B ' (rjN)deadlinec t|dvrtjdtdddddd|g}t j d |i}t |d y) N)zbuild/etc/localtimeFactoryz Localtime timezone not supportedrrrrprqrrrFrC)r+rrJrr.r/r\)rrrsrTs r7'test_python_datetime_with_pytz_timezonezDTestConvertDateTimeLikeTypes.test_python_datetime_with_pytz_timezonesT r78 8 KK: ;4Ar2r"=> \\:v. /6rjc tjd}ddlm}tdddddd|j g}t j d |i| }t|d d}|t|}|j|dz}tdddddd| g}tdddddd| g}t j d |i| }t j d |i| } t|| d y)Nror)rrrrrprqrrrrTr)hours<r) rrtrrrur.r/r\rrv) rrorrsrTr~ tz_timezonetz_pytz values_expdf_exps r7)test_python_datetime_with_timezone_tzinfozFTestConvertDateTimeLikeTypes.test_python_datetime_with_timezone_tzinfos""6*%4Ar2r(,,GH \\:v.f =48yu56 ""52:.4Ar2r+FGtQ2r2gFG \\:v.f =z:6jIVDIrjcGddt}|ddddddg}tjdtj|ti}t j j|}t|djdt jsJ|j}tjdtj|di}tj|d|d<tj||y) NceZdZdZy)NTestConvertDateTimeLikeTypes.test_python_datetime_subclass..MyDatetimerN)rrr nanosecondrrjr7 MyDatetimersJrjrrrrrr%)rr.r/rcr?rErGrHrr1rjrI to_datetimerRrS)rrrkrTrYrZrls r7test_python_datetime_subclassz:TestConvertDateTimeLikeTypes.test_python_datetime_subclasss  !q!Q156 \\:ryy6'JK L$$R(%(..+R->->???" ll :5EF GI #%..Z1H"I J k62rjc Gddt}|dddg}tjdtj|ti}t j j|}t|djdt jsJ|j}tjdtjtdddgti}tj||y)Nc eZdZy)FTestConvertDateTimeLikeTypes.test_python_date_subclass..MyDateNrrrrrjr7MyDaters rjrrrrrr)rr.r/rcr?rErGrHrr1 Date32ArrayrIr0rbrRrS)rrrkrTrYrZrls r7test_python_date_subclassz6TestConvertDateTimeLikeTypes.test_python_date_subclasss T T1a() \\6299Zv#FG H$$R(%(..+R^^<<<"ll RXXtD!Q/0? @  k62rjc>tjtddddg}tj|g}|j }tj j |tj}|j|jdsJy)Nrrprgdate32) rErbr chunked_arrayrIArrayrHrrJrb)rrhrrearr2s r7test_datetime64_to_date32z6TestConvertDateTimeLikeTypes.test_datetime64_to_date32suhhT2r*D12   cU # KKMxx##ABIIK#8{{388H-...rjrl)TFFTFFc |rtj|}tjgd}tj j |t j|}tjtdddtdddtdddtdddtdddtdddg}t j||t j}|j|sJy) N)z2018-05-10T00:00:00z2018-05-11T00:00:00z2018-05-12T00:00:00z2018-05-10T10:24:01z2018-05-11T10:24:01z2018-05-12T10:24:01r_rlrrrrrrrlr_) r0rbr.rrErrHdate64rrJ)rrlrerhrrUs r7test_pandas_datetime_to_date64z;TestConvertDateTimeLikeTypes.test_pandas_datetime_to_date64s 88D>D NN  hh""1299;T"Bxx q"  q"  q"  q"  q"  q"    88Dt"))+>zz(###rjzcoerce_to_ns,expected_dtype)Fr$)Tr&ctddddtdddtdddg}tjgdd }ttj td krd }tjgd| }t j|t j|gg}|D]}|j| }|jt} |j| jk(sJtj|| |jd |}|j|jk(sJtj||y)Nrrr)rq) 2000-01-01Nz 1970-01-01z 2040-02-26 datetime64[D]rrFr&coerce_temporal_nanosecondsFdate_as_objectr)rr0rbrr.rIrErrIr,r?rrxry) r coerce_to_nsexpected_dtyper expected_daysrUobjectsobjrZ expected_objs r7test_array_types_date_as_objectz> "WW%5 5-N88+2@B88D>##TF+- 5C]]|]LF(//7L<<<#5#55 55  " "6< 8]]%?K#MF<<8>>1 11  " "68 4 5rjzcoerce_to_ns,expected_typec tjdtddddtdddtdddgi}tjj |d }|j d| }|j }tj|j||d tj||d y) Nrrrrrr)rqFrrTr{) r.r/rrErGrHrIrRrSr,)rr expected_typerTrY df_datetime df_objects r7!test_table_convert_date_as_objectz>TestConvertDateTimeLikeTypes.test_table_convert_date_as_objects\\ T$1%$1%$2&()* $$R$>ooUBN&P OO%  bii 6 *. 0 b)>rj arrow_typerer]r^rrctdddtdddg}tj|}t j |j |}|jdd}d}t|dr|jd}t jd |j}tj||j|y) NrrTFrrrrr)rrr.rcrErbrbrIhasattrrrto_pandas_dtyperRrdr,)rrrrUrhrZ expected_tzrs r7&test_array_coerce_temporal_nanosecondszCTestConvertDateTimeLikeTypes.test_array_coerce_temporal_nanoseconds'sT1a (4A"6799T?hhtn!!*-(,UD :t $)BK T;7GGI  vx}'EFrjctdddtdddg}tjtjd|g}t j d|i}tjtj|g|}|jdd}d}t|d r|jd }tjd |j}tj||j!|y) NrrrrrhTFrrrr)rrrEr:rr.r/rYrbrIrrrrrRrSr,) rrrr:rlrY result_dfrrs r7&test_table_coerce_temporal_nanosecondszCTestConvertDateTimeLikeTypes.test_table_coerce_temporal_nanoseconds9sT1a (4A"67BHHVZ89:llFD>2 "((4.)&9OO(,U$D  :t $)BK T;7GGI  i););M)JKrjc tjdtddddtdddtdddgi}tjj |d }tj dtj}tj|g|jj }|jj|sJ|j}tj||y) Nrrrrrr)rqFrr)r.r/rrErGrHrrr:rrJrIrRrS)rrTrYrrVrZs r7test_date_inferz,TestConvertDateTimeLikeTypes.test_date_inferLs \\ T$1%$1%$2&()* $$R$>-))UGell6K6KL||""?333" fb)rjcZtjtdddtdddgd}ddg}tj|tj|}tjdtdddgd}tj|d }|j |sJy) NrrrrrTFrr)r0rbrrErJ)rrhrlrZrUs r7test_date_maskz+TestConvertDateTimeLikeTypes.test_date_mask\shhT1a($tQ*:;,.e}#BHHTN388T4a#34OL88H$7v&&&rjc dtjtddddtdddtdddgt}tjgdd}|j dd z}tjgd }t j }t j}t j|| }t j|| }t j||| } t j||| } |j| sJ|j| sJd dg} t jj||g| } tjgdd} tjj| d<| j d}tj||d| }| jd}t!j"||| j}| j d}tj||d| }t!j"||y)Nrrrrr)kCr4lCmCrr\&)FTFFrgrrr)z 2017-04-03 2017-04-04rz 2017-04-05rrr$)rrrF)rr?)r0rbrr?r,rErrrJrGrr.NaTrr/rIrRrS)rrharr_i4arr_i8rlt32t64a32a64 a32_expected a64_expectedcolnamesrY ex_valuesex_datetime64msexpected_pandas table_pandastable_pandas_objects ex_objectsexpected_pandas_objectss r7test_date_objects_typedz4TestConvertDateTimeLikeTypes.test_date_objects_typedeshh q!   q!  q!  &, - 37Cw'(2xx34iikiikhhs%hhs%xxT< xxT< zz,'''zz,'''h'$$c3Z:XX-$35 vv|| ! $**+;<,,/2A(C/79e<  lO<$0%%h/ "$,,*:D0F7?#A 25 7rjcttdd}tjt dddtj |gt }tjt dddddgt }tj|d}tj|d}|j|sJ|jdk(sJtjtj gdjtjk(sJtj|gdjtjk(sJy)NNArrrTrr)) getattrr.r0rbrrr?rErJrpr_null)rpd_NArsvalues_with_nonerZrUs r7test_pandas_null_valuesz4TestConvertDateTimeLikeTypes.test_pandas_null_valuessD$'8D!Q/?vN88XdAq%94$F*02&d388,$?}}X&&&  A%%%xxd388BGGIEEExxT2772779DDDrjctj}tj}tjgdd}|j ddz}tj||}tj||}t ddd }|d j|k(sJ|d j|k(sJy) N)rrrrrrrrgrrrr)rErrr0rbr,rr)rt1t2rhra1r<rUs r7test_dates_from_integersz5TestConvertDateTimeLikeTypes.test_dates_from_integerss YY[ YY[hh,G<zz'"X- XXc # XXd $a#!u{{}(((!u{{}(((rjc:tddddtddddg}tjd}tj|dgzt }tj|}|j |k(sJ|d j|d k(sJ|dj|dk(sJ|djJtjd |i}tjj|}|d j|sJtj|Dcgc] }t|c}d }tj|tjd } | d j|d k(sJtj|dztjd } | d j|d k(sJtj|dz jdtjd } | d j|d j!dk(sJtj|dz jdtjd } | d j|d j!d k(sJycc}w)Nrr)rLrrrr^rrtimesrrgrrr] microsecond@Bre)rrEtime64r0rbr?r_rr.r/rFrHrJ_pytime_to_microsr,time32rL) rpytimesraobjsparrrTr<vrhrr<a3a4s r7test_pytime_from_pandasz4TestConvertDateTimeLikeTypes.test_pytime_from_pandass61a&1a&(YYt_D6)8xxyyBAw}}'!*,,,Aw}}'!*,,,Aw}}&&&\\7E* +**2.Qxt$$$hhg>)!,>$&XXc $ 0!u{{} *** XXcDjryy 7!u{{} *** XXsTz))$/99T?,!u{{} 2 2t 2 DDDD XXsW},,T299S>+!u{{} 2 2q 2 AAAA?s!Jctddddtddddtdddg}tj|dddgz}tj|ddDcgc]}|jd c}dgz}tj|ddDcgc]}|jd c}dgz}tj|Dcgc] }t |c}d }tj|Dcgc] }t |c}d }tjgd t }t j||t jd} t j|d z|t jd} t j|d z jd|t jd} t j|dz jd|t jd} gd} t jj| | | | g| }| |f| |f| |f| |ffD]4\}}|j}|j|k(jr4J|j}tj ||||d| }t#j$||ycc}wcc}wcc}wcc}w)Nrr)rrrrrrrrrrFFTr^rrrr]rre) time64[us]z time64[ns] time32[ms]z time32[s]r)rr0rbrLrr!rErr,rrFrrIrsallr.r/rRrS)rrrUr6 expected_ms expected_srrhrrr<rrrr<expected_values result_pandasrTrls r7test_arrow_time_to_pandasz6TestConvertDateTimeLikeTypes.test_arrow_time_to_pandass1a&1a&1a="88GBQK4&01hh)0! 6$%!" d ; 6 $v &' XX(/ 5#$ !yyQy75#f%& hhg>)!,>$&hhg>)!,>$&HH1> XXc  $ @ XXcDjy99T?,XXsTz))$/i99T?, XXsW},,T299S>+H**BB+;UC&((^&((^&(+%6&(*%5%7 C C MMOM!((O;@@B BB  C__ ll(2:2=1;$=,1 2 b+.Q 65?>sJ5J: J?:Kc$tjgdd}t|tjgdd}t|tjgdd}t|tjgdd }t|y) Nrer&r)z2007-07-13T01:23:34.123456Nz2006-01-13T12:34:56.432539z2010-08-13T05:46:57.437699r%)r`Nrarbr$)z2007-07-13T01:23:34Nz2006-01-13T12:34:56z2010-08-13T05:46:57r#r0rbr{)r datetime64_ns datetime64_us datetime64_ms datetime64_ss r7test_numpy_datetime64_columnsz:TestConvertDateTimeLikeTypes.test_numpy_datetime64_columnss"- # $ +=9"* # $ +=9"' # $ +=9xx!# " # +<8rjcttjtdk\rtjdt j gdt jd}tjtjgdd}|j}tj||t j|g}|j}tj||y)NrFz0pandas >= 2.0 supports non-nanosecond datetime64rr])r\)rr.rIrrJrErbrrcrrIrRrdr)rrhrUres r7&test_timestamp_to_pandas_coerces_to_nszCTestConvertDateTimeLikeTypes.test_timestamp_to_pandas_coerces_to_ns)s 2>> "gg&6 6 KKJ Khhy",,t"4599R^^IDAB MMO q(+u% MMO q(+rjc dD]U}dD]L}tjtdddgtj||}tjd|i}d}t j t|5|jd dddt j t|5|jd dddt j t|5|jdjd ddd|jd d |jd d |jdjd d OXy#1swYxYw#1swYxYw#1swYpxYw) Nrer]r^)Nr#rrrz'would result in out of bounds timestamprTrF)r6r) rErbrrrYrr0r1rIcolumn)rr\rrhrYmsgs r7&test_timestamp_to_pandas_out_of_boundszCTestConvertDateTimeLikeTypes.test_timestamp_to_pandas_out_of_bounds6sW& BD0 BhhAq 12BLL"4MN#s,?]]:S9DMMdMCD]]:S9FOOOEF]]:S9RLL%//D/QR  5d KUM S!++D,B' B B DDFFRRs$8E.E)$"E5E& )E2 5E> c &tjdtjgtjdi}|j }t j dt jgdi}tj||y)Nrr^rgr%r) rErYrrrIr.r/rcrRrS)rrYrZrUs r7&test_timestamp_to_pandas_empty_chunkedzCTestConvertDateTimeLikeTypes.test_timestamp_to_pandas_empty_chunkedQsf#r//d9KLMN"<<bii:J&K LM fh/rjrcPtjgdd}t||y)N) 2007-07-13Nz 2006-01-15z 2010-08-19rrrgr)rr datetime64_ds r7test_numpy_datetime64_day_unitz;TestConvertDateTimeLikeTypes.test_numpy_datetime64_day_unitXs&xx! " # +> "WW%5 5D \\ 288$E,8a*@B   D(9:E7# " rjc Nttjtdkrd}tjdt j gdd|di}t jdt j|}t j|g}t||y) NrFrr!)rNr"r#rcrrr$r&s r7test_timedeltas_nullsz2TestConvertDateTimeLikeTypes.test_timedeltas_nullss 2>> "WW%5 5D \\ 288$<,8a*@B   D(9:E7# " rjc ddlm}tjdd|ddddgi}t j dt j fg}t||y) Nr) DateOffset date_offsetiriX)rhmonths microseconds nanosecondsr)pandas.tseries.offsetsr+r.r/rEr:month_day_nano_intervalr\)rr+rTr:s r7test_month_day_nano_intervalz9TestConvertDateTimeLikeTypes.test_month_day_nano_intervalsb5 \\ D&DA3689   ]B,F,F,HIJK " $rj)6rrrrrXr[rrrrfrmrwhgivenstnonepast timezonessettingsr|rrrrrrrrErrrrrrrrrrrrr r rrrrskipifr0rrIrr'r)r2rrjr7rPrP+s     [[V%<=$>$83&( QWWWRWWY '(QZZ7)7J&323"/ [[V 0&$ $2 [[:7689595: [[97689?9?" [[\'biik9299;  S8I*bll40,",,t2D*bll40,",,sE2J*bll47dE9R*bll47 9: G : G [[\'biik9299;  S8I*bll40,",,t2D*bll40,",,sE2J*bll47dE9R*bll47 9: L : L* '/7b E )#BJ./`9B ,B60 [[Wyryy{IBIIK&@AEBE = [[ $ 078, NN10%h/046 7 6 7 [[V%<=  >   [[V%<=  >   $rjrPcleZdZdZdZej jdZej jej jdddgdZ dZ d Z d Z d Zd Zd ZdZdZdZdZdZdZej jdej0ej2ej4gdZej jdej0ej2ej4gdZdZdZdZy)TestConvertStringLikeTypescd}ddddtjg}tjd||zi}t j dt jrt jnt j}t j|g}gd}tjd||zi}t|||y)NrrrPmañanastrings)rNrPr>Nr*) r0rMr.r/rErr r large_stringrr:r\)rrepeatsrsrTrr:rrUs r7test_pandas_unicodez.TestConvertStringLikeTypes.test_pandas_unicodesui8 \\9fw&67 8 !,!>!>!@BOO biik E7#9 <<I,? @AXvNrjcHdddtddtjg}tjd|i}t j j|}|djt jk(sJgd}tjd|i}t||y)Nquxfoobarzr?r)quxrENrFrGN) bytearrayr0rMr.r/rErGrHr_binaryr\)rrsrTrYvalues2rUs r7test_bytes_to_binaryz/TestConvertStringLikeTypes.test_bytes_to_binarysy'95"&&I \\9f- .$$R(Qx}} +++?<<G 45H-rjcXddz}ddz}tjd|gdz|gzdgdzzi}tj|d}t |tj sJ|j dk(sJd}tjj|}|dj dk(sJy) Nxkr?r6r)r) r.r/rErbr ChunkedArray num_chunksrGrH)rv1v2rTrhrYs r7test_bytes_exceed_2gbz0TestConvertStringLikeTypes.test_bytes_exceed_2gbs I  I \\ tbyB4'3%"*4  hhr)}%#r///~~"""$$R(Qx""a'''rjcharr6rMc|dz}|dz}tjd|ggdz|ggzdggzi}tj|dd}|j dt |tj sJ|jd k(sJt|jd d k(sJt|jd d k(sJy) NrNrOr?rPrMTrfullr)rr) r.r/rErbvalidaterrQrRrr1)rrVrSrTrTrhs r7+test_auto_chunking_pandas_series_of_stringszFTestConvertStringLikeTypes.test_auto_chunking_pandas_series_of_stringssI  I  \\ v{rdV+vh6  hhr)}$7 $ #r///~~"""399Q< B&&&399Q< A%%%rjcddtddddg}tjd|i}tjtj dtj dg}tjj||}|jdj|djk(sJ|jdj|djk(sJ|j}tj||y)NrEbarheyr?rrhr)rHr.r/rEr:rrIrGrHr_rarIrRrS)rrsrTr:rYrZs r7test_fixed_size_bytesz0TestConvertStringLikeTypes.test_fixed_size_bytess$ & 14vF \\9f- .BHHY ! =>?$$R$7||A##vay~~555||A##vay~~555" fb)rjcfgd}tjd|i}tjtjdtj dg}t jtj5tjj||dddy#1swYyxYw)N)rENsbaNNr_r?rrh) r.r/rEr:rrIrr0 ArrowInvalidrGrH)rrsrTr:s r75test_fixed_size_bytes_does_not_accept_varying_lengthszPTestConvertStringLikeTypes.test_fixed_size_bytes_does_not_accept_varying_lengthssz: \\9f- .BHHY ! =>? ]]2?? + 4 HH F 3 4 4 4s <"B''B0cptjgd}t|tjy)N123rjrANrf)r.rcrirErIrres r7test_variable_size_bytesz3TestConvertStringLikeTypes.test_variable_size_bytess! II/ 05rjctjtdtdtddg}t|t j t|t j y)NrfrjrArgrg)r.rcrHrirErIrhs r7test_binary_from_bytearrayz5TestConvertStringLikeTypes.test_binary_from_bytearraysM IIy()C.)D/  5BIIK@rjctjgd}t|tjtj d|i}t |tjdtjfgyNrergrrh)r.rcrirE large_binaryr/r\r:rrerTs r7test_large_binaryz,TestConvertStringLikeTypes.test_large_binary sY II/ 0):; \\3( # ryy3(9":!;< >rjctjgd}t|tjtj d|i}t |tjdtjfgyN)123r*rNrgrrh)r.rcrirEr@r/r\r:rps r7test_large_stringz,TestConvertStringLikeTypes.test_large_stringsY II, -):; \\3( # ryy3(9":!;< >rjctjgd}t|tjtj d|i}t |tjdtjfgyrn)r.rcrirE binary_viewr/r\r:rps r7test_binary_viewz+TestConvertStringLikeTypes.test_binary_viewsY II/ 0)9: \\3( # ryy3(8"9!:; =rjctjgd}t|tjtj d|i}t |tjdtjfgyrs)r.rcrirE string_viewr/r\r:rps r7test_string_viewz+TestConvertStringLikeTypes.test_string_viewsY II, -)9: \\3( # ryy3(8"9!:; =rjc"gd}tjd|i}tjdtj}tj |g}tj j||}|jd}tjd|i}tj||d|jd}tjdtj|i} tj|| dy)Nr*r*r*r*r*r?rhFstrings_to_categoricalTr{) r.r/rErrr:rGrHrIrRrS Categorical) rrsrTrr:rYresult1 expected1r expected2s r7test_table_empty_strz/TestConvertStringLikeTypes.test_table_empty_str%s% \\9f- .BIIK0E7#$$R$7///?LL)V!45  gydC///>LL)R^^F-C!DE  gydCrjcgd}tjd|i}tjdtj}tj |g}tj j||}tjd|i}tjdtj|i}|jdg}tj||d|jg} tj| |d|jd} tj| |d|jt} tj| |dy)Nr}r?rh categoriesTr{)r?) r.r/rErrr:rGrHrrIrRrStuple) rrsrTrr:rY expected_str expected_catrrresult3result4s r7test_selective_categoricalsz6TestConvertStringLikeTypes.test_selective_categoricals4s% \\9f- .BIIK0E7#$$R$7||Y$78 ||Yv0F$GH //i[/9 g|F//R/0 g|F//\/: g|F//UW/5 g|Frjctjgtj}tjj |gdg}|j dgy)Nrgr[rrr)rErbrrGrrI)rrbrYs r7&test_to_pandas_categorical_zero_lengthzATestConvertStringLikeTypes.test_to_pandas_categorical_zero_lengthFsE"((*-$$UGE7$C E7+rjctjgdj}tjj |gdg}|j dg}|j j |sJy)N)rrrrPr[rr)rErbdictionary_encoderGrrIrJ)rrbrYrZs r7,test_to_pandas_categories_already_dictionaryzGTestConvertStringLikeTypes.test_to_pandas_categories_already_dictionaryMsd56HHJ$$UGE7$CUG4 ''///rj string_typecXgd}tjd|i}tjd|}tj|g}tj j ||}|jd}tjdtj|i}tj||dtjtj5|jddddd|djd}tjtj|d}tj||tjtj5|djdddddy#1swYxYw#1swYyxYw) N)rrrrrr?rhTr~r{rzero_copy_onlyr`)r.r/rErr:rGrHrIrrRrSrr0rbrcrd rrrsrTrr:rYrZrUs r7(test_table_str_to_categorical_without_nazCTestConvertStringLikeTypes.test_table_str_to_categorical_without_naTsX+ \\9f- .K0E7#$$R$7=<<BNN6,B CD fhDA ]]2?? + 1 OO4+/  1 1 y!++4+H99R^^F3)D vx0 ]]2?? + < )  & &d6: ' < < < 1 1 < >== DG$,0 [[  _R__%68HI<<0 [[  _R__%68HI<<2-I -rjr<c zeZdZdZej dej dgZej dej dgZej dej dgZe jjde jee jd d d e jee jd dd e jee jddd gdZe jjde jed e jed e jed gdZdZdZdZdZdZe jjde j e je je j*gdZy)TestConvertDecimalTypesz, Conversion test for decimal types. z -1234.123z1234.439z-129934.123331z 129534.123731rpz-314292388910493.12343437128)rsrrrr)idrrrrqrrrc2tjd|i}tjj |d}tj d|}tj |g|j j}|j j|sJy)NroFrr) r.r/rErGrHrr:rrJ)rrsrrUrYrrVs r7test_decimal_from_pandasz0TestConvertDecimalTypes.test_decimal_from_pandassv <<V 45$$Xe$D]3))UGell6K6KL||""?333rjrsctjd|i}tjj |}|j }t j||y)Nro)r.r/rErGrHrIrRrS)rrsrUrrTs r7test_decimal_to_pandasz.TestConvertDecimalTypes.test_decimal_to_pandassI <<V 45HH((2  " b(+rjctjdg}tjdd}t j tj 5tj||dddtjdg}tjdd}t j tj 5tj||dddy#1swYyxYw#1swYyxYw)Nz1.234rr)rgz1.2345r)rrrErrr0rbrb)rdata1type1data2type2s r7"test_decimal_fails_with_truncationz:TestConvertDecimalTypes.test_decimal_fails_with_truncations)* b!$ ]]2?? + ( HHU ' (*+ b!$ ]]2?? + ( HHU ' ( (  ( (  ( (sC ?C, C),C5ctjdtjdg}tj|}t j |}|j |k(sJ|jt jddk(sJt j |t jdd}tjdtjdg}|j |k(sJy) Nz0.01z0.001rrrrgz0.01000z0.00100) rrr.rcrErbrr_r)rrseriesrbrUs r7&test_decimal_with_different_precisionsz>TestConvertDecimalTypes.test_decimal_with_different_precisionss OOF # OOG $ 4  D(((zzR]]1a0000BMM"a$89OOI. 0JK H,,,rjctjtjddg}t |t j ddtjdgdz}t |t j ddy)Nryrrrgr)r.rcrrrirErrrs r7$test_decimal_with_None_explicit_typezddgdgdgddgdgfgdZ d Z!d!Z"d"Z#d#Z$d$Z%ej4jLd%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-ej4j7d,ej\ej^gd-Z0ej4j7d,ej\ej^gd.Z1ej4j7d,ej\ej^gd/Z2ej4j7d,ej\ej^gd0Z3ej4j7d,ej\ej^gd1Z4y)2TestConvertListTypesz, Conversion tests for list<> types. czt\}}t|||tjj ||d}|j |j j}|j j|sJ|jD]-}|j|}t|||j/yNr:rVFr0rg) rr\rErGrH with_metadatar:rrJrKrrur_rrTr:rYrVrrs r7test_column_of_arraysz*TestConvertListTypes.test_column_of_arrayss*, F66J$$Ru$M!..u||/D/DE||""?333jj @FLL(E "2f:EJJ ? @rjc Dd}tjtjd|tjd|dtjd|gt}t j t j }t j||}|djttdk(sJ|djttdk(sJ|djJ|d jdgk(sJy) Nrrrrrrgrr)r) r0rbr1r?rErirrrr4)rrrhrfrs r7test_column_of_arrays_to_pyz0TestConvertListTypes.test_column_of_arrays_to_py*shh IIb & IIau %  IIau %    #xx%(Aw}}$uRy/111Aw}}$uQx.000Aw}}&&&Aw}}1#%%%rjctjddgdggtjtj}tjj |gdg}|j }tjdddgdggi}tj|||dj }tjtj||ddy)NTFrgrrrrm) rErbrirrGrrIr.r/rRrSrdrc)rrbrYrTrlres r7test_column_of_boolean_listz0TestConvertListTypes.test_column_of_boolean_list;s4-$0rxx 7KL$$eWVH$= __ llFdE]TF,C#DE  b+. !H    ryy|RZUKrjc 8tjtjdtjdgtjdggtjtj dd}tj j|gdg}|j}tjdtjdtjdgtjdggi}tj||y) NrrBz3.3r)rrgrr) rErbrrrirrGrrIr.r/rRrS)rrbrYrTrls r7test_column_of_decimal_listz0TestConvertListTypes.test_column_of_decimal_listGs7??3/1EF"??5124 hhr}}Q':;=$$eWVH$= __ ll ws+W__S-ABu-.0 12  b+.rjctjtjtjtjgt }t jt jt jt jt jt jddgfD]}t j||}t jddg|}|j|sJtjt5t j|j |dddy#1swYxYw)Nrf0rrg)r.rcr0rbrMr?rErir large_liststructrrJrr0 TypeErrorrs)rrer3rZrUs r7+test_nested_types_from_ndarray_null_entriesz@TestConvertListTypes.test_nested_types_from_ndarray_null_entriesSs IIbhh/v> ?88BHHJ'==,99bhhtW5679 ,BXXab)Fxxt 26H==* **y) ,+ , , , , ,s #"EE czt\}}t|||tjj ||d}|j |j j}|j j|sJ|jD]-}|j|}t|||j/yr) rr\rErGrHrr:rrJrKrrur_rs r7test_column_of_listsz)TestConvertListTypes.test_column_of_listsas)+ F66J$$Ru$M!..u||/D/DE||""?333jj @FLL(E "2f:EJJ ? @rjc :ggdgdgdgg}tj|Dcgc]}tj|tc}}t j|}tj|j }tj||ycc}w)Nrf)rrrrr)r) r.rcr0rbrArErIrRrd)r num_listsrerrhrZs r7 test_column_of_lists_first_emptyz5TestConvertListTypes.test_column_of_lists_first_emptynspL"qc: iHBHHQe4HIhhv3==?+ vv.Is"Bc ,tjdtjddgdddgddgddgd d ggt i}t j t jdt jt jg}t jj|dd| }t jj|dd| }t j||g}|j}tj||y) Nlistsrr)rrrrrr rrh)r.r/r0rbr?rEr:rrirrGrH concat_tablesrIrRrS)rrTr:rrrYrZs r7test_column_of_lists_chunkedz1TestConvertListTypes.test_column_of_lists_chunkedvs \\ RXXAAAAA     HHWbhhrxxz2 3  XX ! !"Ra& ! 8 XX ! !"QR& ! 8  "b*" fb)rjc tjdtjgti}t j t jdt jt jg}t jj||}|j}tj||y)Nrrrh)r.r/r0rbr?rEr:rrirrGrHrIrRrS)rrTr:rYrZs r7"test_empty_column_of_lists_chunkedz7TestConvertListTypes.test_empty_column_of_lists_chunkeds \\ RXXb/   HHWbhhrxxz2 3  $$R$7" fb)rjc ddgddgddgddgd d gd d gd dgddgg}ddgddgg}tj|}tj|}tjj|gdg}tjj|gdg}tj||g}|j }t jd||zi} tj|| y)Nrrr)rrrrrrrrr rrrr) rErbrGrrrIr.r/rRrS) rrrrr<rr concatenatedrZrUs r7test_column_of_lists_chunked2z2TestConvertListTypes.test_column_of_lists_chunked2sQ!Q!Q!Q"bbB8b"X/Q"b" XXe_ XXe_ XX ! !2$se ! 4 XX ! !2$se ! 4''R1 '')<<eem 45 fh/rjct\}}tj|gdzd}|djddd}|jddk7sJt |y)NrT) ignore_indexrrrr)rr.concatrsstridesru)rrTr:rhs r7test_column_of_lists_stridedz1TestConvertListTypes.test_column_of_lists_stridedsZ)+ F YYtaxd 3k  1%{{1~"""s#rjc <tjddgdgt}tj|}tjt |}|j |sJ|j tjtjk(sJtjddddgtjddgtgt}tj|}tjddddgddgg}|j |sJy)Nr) r0rbr?rErrJr_rir)rrrhrUrs r7test_nested_lists_all_nonez/TestConvertListTypes.test_nested_lists_all_nonesxx$t,F;hhtn88DJ'zz(###xx288BGGI....$tTl((D$@%'hhuo88T4$d|DEzz(###rjc,tjgggg}tj|}tjt |}|j |sJ|j tjtjk(sJyN) r.rcrErbrrJr_rirrrrhrUs r7test_nested_lists_all_emptyz0TestConvertListTypes.test_nested_lists_all_emptyshyy"b"&hhtn88DJ'zz(###xx288BGGI....rjc,tjgdgg}tj|}tjt |}|j |sJ|j tjtjk(sJy)Nr) r.rcrErbrrJr_rirrs r7test_nested_list_first_emptyz1TestConvertListTypes.test_nested_list_first_emptyshyy"se%hhtn88DJ'zz(###xx288BIIK0000rjctjtjgdddg}t j|}t j|j }t jgddgt j t j}|j|sJ|j|sJtjtjgdddg}t j|}t jgddgt j t j}|j|sJy)Nrrrrgr) r.rcr0rbrErsrirrJr)rrrZrrUdata3r expected3s r7test_nested_smaller_intsz-TestConvertListTypes.test_nested_smaller_intssyy"((9D94@A$((4;;'88Y-BHHRWWY4GH}}X&&&~~h''' 288IT:DAB((5/HHi.RXXbjjl5KL ~~i(((rjctdtjdgddggfdddgddggfdddgd d ggfd ddgd d ggdgfg}tj|}t j t jdt jt jt jdt jt jt jdt jt jt jd t jt jt jg}t|| y) Nnan_intsrr)rr6rstrsrrd nested_strsr) rr0rMr.r/rEr:rrirrr\rrrTrVs r7test_infer_listsz%TestConvertListTypes.test_infer_listss 2661+1v. / q!fq!f% & tSkC:. / tSkC:6= >    \\$ )) HHZ"((*!5 6 HHVRXXbhhj1 2 HHVRXXbiik2 3 HH]BHHRXXbiik-B$C D %   ODrjctjtjd}tjtj}gddgdgdg}tj||}tj||}|j }|j }t ||D]!\}} || Jt j|| #y)Nr) list_size)rrr)rr)rrrrrrg)rErirrbrIrrxry) rfixed_ty variable_tyr fixed_arr variable_arrrZrUleftrights r7test_fixed_size_listz)TestConvertListTypes.test_fixed_size_lists88BHHJ!4hhrxxz* dL.AHHT1 xx;7 $$&))+vx0 0KD%|}$}  " "4 / 0rjc tdtjddgtjtjddgtjgfg}t j |}t jt jdt jt jg}t||y)Nr6rrrr)rr) rr0rbrr.r/rEr:rrir\rs r7test_infer_numpy_arrayz+TestConvertListTypes.test_infer_numpy_array s !Qrxx0!Qrxx0    \\$ )) HHVRXXbhhj1 2%   ODrjctjgdtj}tjddgddgddggtjtj}tj j ||gdd g}tjj gd |}tjd ddgd gd ddgd dddgd gg}tj|j}tj5tjddttj ||dddy#1swYyxYw)Nrrrrreff1r)rrrr)rrr)rr@rA)rErbrrir StructArrayr ListArrayr.rcrIrNrOrPrQrRrd)rr6r?structsrrUrs r7test_to_list_of_structs_pandasz3TestConvertListTypes.test_to_list_of_structs_pandas s xx 288:.((S#Jc S#J?88BIIK02..,,dG_tTlK||'' 7;99c3Z ( )c3Z (c3Z ( *   4>>+, $ $ & 5  # #H.M$6 8  " "68 4 5 5 5s 2EEc ttjtdk\r:ttjtdkrt j ddddgfddd gfggd gfd d dd gfgdddgfggg}t j|t jt jt jt jt j}|j}tj|}tj5tjddt t#j$||dddy#1swYyxYw)N 1.25.0.dev0rF$Regression in pandas with numpy 1.25rrrrPrrr_rDNquuxrquzrgr@rA)rr0rIr.rrJrErbrimap_utf8rIrcrNrOrPrQrRrd)rrrhrrUs r7test_to_list_of_maps_pandasz0TestConvertListTypes.test_to_list_of_maps_pandas- s& R^^ $ (> >(77+;; KK> ?sCj!EC:#6 7 8bk=6D#;*? @ECQT:CVBW X hhtRXXbggbggi"'')9L&MNO99T? $ $ & 5  # #H.M$6 8  " "68 4 5 5 5s ,2E''E0c ttjtdk\r:ttjtdkrt j dt jgdjdd}t jdgdgdd gd d ggd d d ggt jt jjdd}t jjgd||}t jjgd|}|j}tjddd gfdd d gfggdgfdggg}|jddj}tjdgfdggg}t!j"5t!j$ddt&t)j*||t)j*||d d d y #1swYy xYw)zL A slightly more rigorous test for chunk/slice combinations rrFr)r@rrPr_rDrr@rrr@rrrrNrr)rr)rrrrPr_rrA)rr0rIr.rrJrErbslicerirMapArrayrrrIrcrNrOrPrQrRrd) rritemsmaprhrrU series_slicedexpected_sliceds r7"test_to_list_of_maps_pandas_slicedz7TestConvertListTypes.test_to_list_of_maps_pandas_slicedB s R^^ $ (> >(77+;; KK> ?xx23385A; Z(c3Z#sRc{ S HHRYY[ !  %1+ kk%%iu=ll&&y#699sCj!EC:#6 7 8bk= ) *    !Q113 ))bk= ) *%    $ $ & C  # #H.M$6 8  " "68 4  " "=/ B  C C Cs ,AG==Hzt,data,expectedrr)rNaaabbrcdtjgd}tj|}tj j ||t j|}tj j |t j|j|sJy)Nrrrg) r0rbr.rcrErrHrirJ)rrrrUrrerZs r7,test_array_from_pandas_typed_array_with_maskzATestConvertListTypes.test_array_from_pandas_typed_array_with_maski s$ HH( ) IIdO%%aabhhqsm%Dxx##H)+!#$88>vG GGrjc@tjdt}|jgt j tj gd|d}tjj|}|j}tj||y)N)rr)rrB3r+) r0emptyr?fillr.r/rbrErGrHrIrRrS)rempty_list_arrayrTrrZs r7test_empty_list_roundtripz.TestConvertListTypes.test_empty_list_roundtrip sq88D7b! \\ 9 023hh""2& fb)rjc8t\}}|D]}||jj}tjt ||j }tj|}|j |j k(sJ|j|rJy)Nrg)rrarsrErbrr_rJ)rrTr:rrhrUrZs r7test_array_from_nested_arraysz2TestConvertListTypes.test_array_from_nested_arrays s}*, F +EUZZ.''CxxS  ;HXXc]F;;%**, ,,==* **  +rjc tjgddggdgtjtjtjj }t j 5t jddtt jddttj|tjgddggdgtd dddy#1swYyxYw) Nrrrgr@z&Creating an ndarray from ragged nestedrArFrm)rErbrrrIrNrOrP_np_VisibleDeprecationWarningrQrRrdr.rcr?rhs r7test_nested_large_listz+TestConvertListTypes.test_nested_large_list s XX A3'.==rxxz)BCEik  $ $ & #  # #H$L$A C  # #H.M$6 8  " "299y1#.5VD! #  # # #s 9A/C11C:c &tjtjfD]}tjddgddggg|tjj }t j|tjddgddgggd tjddgddggg|tjj }t j|tjddgddgggd y) Nr/r.ccrgsaasbbsccFrm) rErirrbrorIrRrdr.rcr@)rlist_type_factoryres r7test_large_binary_listz+TestConvertListTypes.test_large_binary_list s"$((BMM!: # D$<vr:01BCE)+   " "299uendUGR@A! #D$<vr:01BCE)+   " "299tTlD4&"=>! # #rjctjgdj}tjj gd|}t j |j}tj|j||jgd}d|d<tj|j|y)N)rrPNr)rrrrr)rrNrr)) rErbrrrr.rcrrRrdrItake)rchildrhrUs r7test_list_of_dictionaryz,TestConvertListTypes.test_list_of_dictionary s45GGIll&&>99S]]_- s}}9hh'  s}}9rjcd}tjjtt j |dfdt |d}tjj|}|jd|d}|jd k(sJt|jdd k(sJt|jd d k(sJy) Ni irrr+TrXrr)ir)r.r/rrr0zerosr4rErGrHr[rRrr1)rnrTrYcolumn_as r7#test_auto_chunking_on_list_overflowz8TestConvertListTypes.test_auto_chunking_on_list_overflow s  \\ # #bhh5z9:q%  $$R( D!8""a'''8>>!$%2228>>!$%***rjcddgdggddgg}tjd|i}tjdtjtj tj fg}t||y)NrArbr)crdrer)frgrr)rh)r.r/rEr:r!rIrr\)rrrTr:s r7test_map_array_roundtripz-TestConvertListTypes.test_map_array_roundtrip siI& 1  \\5$- (UBGGBIIK$DEFG62rjc vddgdggddgg}|Dcgc]}|Dcgc] \}}||dzfc}}}}}}tj|tjtjtj}tj|tjtjtj}tj ||g}t j||z} |j} tj| | d ycc}}wcc}}}w) NrJrKrMrOrUr)rgFrm) rErbr!rIrrr.rcrIrRrd) rrrowkrrarr1rrhrUactuals r7test_map_array_chunkedz+TestConvertListTypes.test_map_array_chunked sY'2:???#-A1a!e*-??xxBGGBIIK$DExxBGGBIIK$DEd|,99UU]+ vxUC.?s D4D.D4.D4c ddgdgddgg}|Dcgc]*}|$|Dcgc]\}}|| t|ndfc}}nd,}}}}tj|}tj|tj tj tj}|j}tj||dycc}}wcc}}}w)NrJrK)rPrR)rTNrUrgFrm) rAr.rcrErbr!rIrrIrRrd)rrrYrZrrUrhr\s r7test_map_array_with_nullsz.TestConvertListTypes.test_map_array_with_nulls sI&4 =ABB58sKNN$!QaQ]q=N,01BB99X&hht"''"))+rxxz"BC vxUC OBs CCCCc tjgd}tjgdj}tjtt t |}tj j|||}tjgdddgg}|j}tj||dy)Nrrr)rrrrr))rr)rr)r)r)rr)rrFrm) rErbrrr4rr'rr.rcrIrRrd)roffsetsr(rrhrUr\s r7!test_map_array_dictionary_encodedz6TestConvertListTypes.test_map_array_dictionary_encoded s((9%23EEGxxU3u:./0kk%%gtU;99 +h-A BD vxUCrjc tjddggddddgddgg}tj|jdd|jddg}|j }t jd d ggd dd t j ggd }t||D]%\}}|||k(rJtj||'t jd d dddd t j gg}tj|dj||jddj }t jgdddt j ggd }t||D]%\}}|||k(rJtj||'t jdddd t j gg}tj|dj|y)Nrr))rrrrrrrrrr)rrrrr?rrrr) rErbrr&to_numpyr0rMrrxrybase) rrh chunked_arrrrUr r expected_base np_arr_sliceds r7test_list_no_duplicate_basez0TestConvertListTypes.test_list_no_duplicate_base shhA 4!TQFCD&& !Q1a'IJ %%'88b"X|TL*19;vx0 4KD%}u}$}&&tU3  4 2r2r2r266"B!CD  vay~~}=#))!Q/88: 88Yq"&&k:(K}h7 4KD%}u}$}&&tU3  4 2r2r266":!;<  }Q/44mDrjctjjtjgdtjgdtjgd}|j d}t jddgdd t j ggd }t||D]%\}}|||k(rJtj||'y) Nrr)rr)rr)crmrNr)rbrsrlFrrrrr?r) rErrrbrer0rMrrxry)rrhrrUr rs r7test_list_values_behind_nullz1TestConvertListTypes.test_list_values_behind_null' sll&&HH\*8834./'  U388b"Xtb"&&\:(Kvx0 4KD%}u}$}&&tU3  4rjrXc2|jtjgdtjgdtjgd}|j}t j ddgddgd d gg}t j||y) Nr%r)r)r)rr)rrrrrbsizesrsrr)rrrrrrErbrIr.rcrRrdrrXrhr\rUs r7.test_list_view_to_pandas_with_in_order_offsetszCTestConvertListTypes.test_list_view_to_pandas_with_in_order_offsets6 zHHY'((9%88./   99q!fq!fq!f56 vx0rjc2|jtjgdtjgdtjgd}|j}t j ddgddgd d gg}t j||y) N)r)rrrqrrrsrrrrrr)rurvs r72test_list_view_to_pandas_with_out_of_order_offsetszGTestConvertListTypes.test_list_view_to_pandas_with_out_of_order_offsetsC rxrjc2|jtjgdtjgdtjgd}|j}t j gdgdgdg}t j||y)Nr)rrrrrrsr)r)rrr)rrrrrurvs r71test_list_view_to_pandas_with_overlapping_offsetszFTestConvertListTypes.test_list_view_to_pandas_with_overlapping_offsetsP snHHY'((9%88./   99lL,GH vx0rjc r|jtjgdtjgdtjddgtjgd}|j}t j dt jggdg}tj||y)N)rr)r))r)rrrrrbrtrsrl) rrErbrIr.rcr0rMrRrdrvs r7)test_list_view_to_pandas_with_null_valuesz>TestConvertListTypes.test_list_view_to_pandas_with_null_values] sHHY'((9%88QI&./   99q"&&k2t45 vx0rjc tjtj}|j tj gdtj gdtj gd}|j tj gdtj gdtj gdtj gd }tj ||g}|j}tjd d gd d gd d ggdddtjgdg}tj||~~~~tj}||k(sJy)N)r)rrrqrrs)rrr)rrr)rrrNrr~rrr)r)rrrrr)gccollectrEtotal_allocated_bytesrrbrrIr.rcr0rMrRrd) rrX bytes_startr[rrhr\rU bytes_ends r7(test_list_view_to_pandas_multiple_chunksz=TestConvertListTypes.test_list_view_to_pandas_multiple_chunksk s% ..0   HHY'((9%88L)!    HHY'((9%88O,./ !  d|,99q!fq!fq!fi!QQUVW vx0    ,,. K'''rj)5rrrrrrrrrrrrrrrrrrrrrrrr#r,rrrrErrrr0r6r8r;r?rCrrHrWr]r_rcrjro ListViewArrayLargeListViewArrayrwrzr|rrrrjr7rrs @&" L / , @/*2 *0$$ $/1 )E$0" E5,5*%CN [[. HHVaS$  A3  IIT]SE4 ( C5$  GGD\D64 ( D64  1"G#"G *+ # # : [[ + + 3 D D DE< 4 [[Wr'7'79N9N&OP 1Q 1 [[Wr'7'79N9N&OP 1Q 1 [[Wr'7'79N9N&OP 1Q 1 [[Wr'7'79N9N&OP 1Q 1 [[Wr'7'79N9N&OP(Q(rjrceZdZdZdZdZdZdZdZe jje jjdZ dZd Zd Zy ) TestConvertStructTypesz, Conversion tests for struct types. c "tjdddddddgi}tjdtjdtj fdtj fgfg}t || t ||| y) Nrlrr)r+rrrrrr)r.r/rEr:rrr\)rrTrVs r7test_pandas_roundtripz,TestConvertStructTypes.test_pandas_roundtrip s \\711%5QQ7G$HI J)) bii#rxxz!2S"((*4E FG H%   OD  Irjc tjgdtj}tjgdtj}tjgdtj}tj j |||ggd}tjddddddd dd d ddg}tj|j}tj||y) N)Nr)rrg)rNr)TFN)r6rrrTr)Frr) rErbrrrrrr.rcrIrRrd)rr6rrrhrUrs r7test_to_pandasz%TestConvertStructTypes.test_to_pandas sxx 288:6xx(ryy{;,288:>nn(( 4  %'993 6u 5d 3   3==?+ vx0rjctjtj}tjdgtj }tjdgtj }tj j|gdg}tj j|gdg}tj||g}tjddiddig}tj|j}tj||~~~~~~tj} | |k(sJy)Nrrgr)r6)rrrErrbrrrrr.rcrIrRrd) rrints1ints2r[rrhrUrrs r7test_to_pandas_multiple_chunksz5TestConvertStructTypes.test_to_pandas_multiple_chunks s ..0 !288:.!288:.~~))5'F8<~~))5'F8<d|,99 QK QK   3==?+ vx0      ,,. K'''rjcNtjdtjfdtjfg}t j t j dt jt j dt jg}tjg|}t j||}|jgk(sJtjddg|}t j||}|jdd d d d d gk(sJt j|tjd d g| }|jdd d dgk(sJtjg}t j g}tjg|}t j||}|jgk(sJtjddg|}t j||}|jiigk(sJy)Nr6)y_titlerBrBrrg)rT)+FrT)r6rBrFrr) r0rrrrErrrbrrrr3rrhs r7test_from_numpyz&TestConvertStructTypes.test_from_numpy s XXRXX("((356 YYbhhj1bhhj134xx"%hht"%}}"$$$xx[1<hht"%}}$#7)+%#8#:: ::hht"((E4="9C}}$#7">>>>XXb\ YYr]xx"%hht"%}}"$$$xxR+hht"%}}2r(***rjc tjdtjdtjfdtjfgfdtjfdtj fg}|j tjdkDrdndk(sJtjtjdtjtjdtjtjdtjgtjdtjtjdtjg}tjg| }tj|| }|jgk(sJtjd d g| }tj|| }|jd dddddddddddgk(sJy)Nr6xxyyrBzlrrrrg))rTr)r))rFrrPrT)rrr)r)r6rBrrFrrP)r0rrrrobject_itemsizesysmaxsizerErrrrbrrs r7test_from_numpy_nestedz-TestConvertStructTypes.test_from_numpy_nested s XXRXXbgg(,bhh'7'9:;RXXRZZ(*+ {{S[[5%8ra@@@ YYbii$ 1J13$ 1K1M'NObhhj1biik245 xx"%hht"%}}"$$$xx ! "$+-/hht"%}}$'ae <%(qu =#?? ??rjc d}tjdtjfdg}d|jz }d|z}|||jzz}tj||}tj j ||d<||d<tj|d|ddk<tjtjdtjtjdtjg}tj||d }|jd |jd k(sJd d fd } | ||~tj j |dk} tj||| d }|jd |jd k(sJ| ||| ~y)Nlr6)rBr?i.rrBrTr@rXr)c3NK|jD] }|Ed{y7wr) iterchunks)rhr1s r7iter_chunked_arrayzHTestConvertStructTypes.test_from_numpy_large..iter_chunked_array s() !    ! s %#%cZt|t|k(sJ|d}|d}t |D]Y\}} |j}| ||r|:J||}tj|r|d J|d|k(sJ|d||k(sJ[y#t $rt d|wxYw)Nr6rBzFailed at index)r enumeraterr0r Exceptionprint) rhrrlxsysirrr6rs r7checkz;TestConvertStructTypes.test_from_numpy_large..check ss8s4y( ((cBcB#$6s$;< 3  A'DG y(yqE88A;#$S6>1>#$S6Q;.; vA. !+Q/s ABB*)r_rlrHr)r0rr rrEr2 random_samplerMrErrrIrbr[rR) r target_sizerbsblockrFrr3rhrrlrs @r7test_from_numpy_largez,TestConvertStructTypes.test_from_numpy_large s~" XXRZZ(/: ; R[[ r  B, -xx$II++A.S S %'VVS $s)c/" YYbjjl3biik245hht"$7 $ ~~""" ! ( c4 yy&&q)C/hht"4TB $ ~~""" c4 rjctjtjdtjtjdtjg}t j dt jfdt jfg}t jg|}tjtd5tj||dddt jg}tjtd5tj||dddy#1swYZxYw#1swYyxYw) Nr6rBrrzMissing field 'y'rrgzExpected struct array) rErrrrr0rrbrr0r1r)rr3rrs r7test_from_numpy_bad_inputz0TestConvertStructTypes.test_from_numpy_bad_input9 s YYbhhj1bhhj134 XXRXXRXX()xx"% ]]:!46 $ HHT # $xx| ]]9!8: $ HHT # $ $  $ $ $ $s D>E >E Ectjdddgi}tjdddddddgi}tjd tjfd tjfg}t j |d}t||d| tjd|fg}t|||| y) Ntuples)rr)rrrr)r+rrrrr)rUr:rV) r.r/rErrr0asarrayrur:r\)rrTrl struct_typerhrVs r7test_from_tuplesz'TestConvertStructTypes.test_from_tuplesH s \\8ff%56 7ll aa(*:; <> ii#rxxz!2S"((*4E FG jjH& +h/k C))h %<$=> _+ -rjc 8ddg}tjgdjtjgdjg}tjj ||}t d|D}|Dcgc]}t t ||}}tj|}tj|j||jgd}d|d<tj|j|ycc}w) Nr6r)ir)rrNrc3<K|]}|jywr)r).0rBs r7 zCTestConvertStructTypes.test_struct_of_dictionary..` sGUu0Gs)rNr)r) rErbrrrrrr.rcrRrdrIrA)rrchildrenrhrows_as_tuplesrY rows_as_dictsrUs r7test_struct_of_dictionaryz0TestConvertStructTypes.test_struct_of_dictionaryY s HH_-??AHH12DDFHnn(((?GhGH:HI3c%o.I I99]+ s}}9hh|$  s}}9JsDN)rrrrrrrrrrrslowrrrrrrrjr7rr sa I1"(6+>?4 [[ [[55n $-":rjrcXeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd Zy)TestZeroCopyConversionz@ Tests that zero-copy conversion works with some types. ctjgdjd}tj|gdy)NrTrnrw)rrZs r7test_zero_copy_successz-TestZeroCopyConversion.test_zero_copy_successq s.)$..d.C vy1rjchtjjtjddgtjdgd}|j d}t jddg}tjt j|t j|dy) NrrrrTrnFrm) rEr7rr0rbrIr.rrRrdrc)rrhrZrss r7test_zero_copy_dictionariesz2TestZeroCopyConversion.test_zero_copy_dictionariesu s  ,, HHaV  HHaS (  d3A' ryy0"))F2C+0 2rjctjdgd}tj|jd}t j ||y)Nrr&rTrnr0rbrErIrxryrrhrZs r7test_zero_copy_timestampz/TestZeroCopyConversion.test_zero_copy_timestamp s@hh ~-=>#(((= vs+rjctjdgd}tj|jd}t j ||y)Nrr(rTrnrrs r7test_zero_copy_durationz.TestZeroCopyConversion.test_zero_copy_duration s@hhs"34#(((= vs+rjctjtj5|j ddddy#1swYyxYw)NTrn)rr0rErbrIrrhs r7check_zero_copy_failurez.TestZeroCopyConversion.check_zero_copy_failure s5 ]]2?? + / MMM . / / /s AA cP|jtjgdy)N)rBCrrErbrs r7&test_zero_copy_failure_on_object_typesz=TestZeroCopyConversion.test_zero_copy_failure_on_object_types s $$RXXo%>?rjcP|jtjgdy)N)rrNrrs r7*test_zero_copy_failure_with_int_when_nullszATestZeroCopyConversion.test_zero_copy_failure_with_int_when_nulls s $$RXXl%;%?@rjcP|jtjddgy)NTFrrs r7$test_zero_copy_failure_on_bool_typesz;TestZeroCopyConversion.test_zero_copy_failure_on_bool_types s $$RXXtUm%<=rjctjddgddggtjtj}|j |y)Nrr)rrrg)rErbrirrrs r7$test_zero_copy_failure_on_list_typesz;TestZeroCopyConversion.test_zero_copy_failure_on_list_types s<hhAA'bhhrxxz.BC $$S)rjc~tjddgd}|jtj|y)Nrr&rr0rbrrErs r7.test_zero_copy_failure_on_timestamp_with_nullszETestZeroCopyConversion.test_zero_copy_failure_on_timestamp_with_nulls s-hh4y(89 $$RXXc]3rjc~tjddgd}|jtj|y)Nrr(rrrs r7-test_zero_copy_failure_on_duration_with_nullszDTestZeroCopyConversion.test_zero_copy_failure_on_duration_with_nulls s-hh4y(9: $$RXXc]3rjN)rrrrrrrrrrrrrrrrrrjr7rrl sE2 2, , /@=A>*44rjrcNt}t|dt|ddy)NFr=Tr>rWr8r\rTs r7_non_threaded_conversionr s  BBE2BEDArjcNt}t|dt|ddy)NTr=rrrs r7_threaded_conversionr s  BBD1BD4@rjc2eZdZdZdej fdej fdejfdejfdejfdejfdejfd ejfd ejfd ejfd ejfd ej fd ej"fd ej"dfd ej$ejfgZdZdZdZdZej2j4ej2j6dZdZdZdZdZ ej2jCddgdiejDfdgdiejDfdddgiejDfdddgiejFfdddgiejFfdddgiejFfgdZ$dZ%d Z&d!Z'd"Z(d#Z)d$Z*d%Z+d&Z,d'Z-y())TestConvertMiscz) Miscellaneous conversion tests. rrrrrrrrrrr r?rcLtjdgdi}t|y)NrNNNrrs r7test_all_none_objectsz%TestConvertMisc.test_all_none_objects s \\3 23 4#rjcztjdgdi}|djd|d<t|y)Nrrr)r.r/r,r\rs r7test_all_none_categoryz&TestConvertMisc.test_all_none_category s4 \\3 23 4S'..,3#rjc|jD]<\}}tjgtj|}t ||>y)Nrrg) type_pairsr0rbrru)r dtype_strpa_typerhs r7test_empty_arraysz!TestConvertMisc.test_empty_arrays s="&// 6 Iw((2RXXi%89C "3W 5 6rjctyr)rrs r7test_non_threaded_conversionz,TestConvertMisc.test_non_threaded_conversion s "rjctjd} |jt|j |j y#|j |j wxYw)Nr))mpPoolapplyrclosejoin)rpools r7%test_threaded_conversion_multiprocessz5TestConvertMisc.test_threaded_conversion_multiprocess sKwwqz  JJ+ , JJL IIK JJL IIKs A "A/c d}ddddtjg}gd}ddddtjg}tj||ztj||zddg tj||ztj||ztj||zgd d ||z||z||z||z||zd }tj|}t ||D]}t ||y)NrrrPrD)rrrrrrEr^rGr)rPrDrTrr) cat_stringscat_strings_with_nacat_ints cat_binarycat_strings_orderedr6rr?strings2strings3)r0rMr.rr/r\ru)rrArSrTv3rrTrZs r7 test_categoryzTestConvertMisc.test_category sT5% 0 dFFBFF 3>>"w,7#%>>"w,>CU^$MrG|4..g6#%>>W )>$L'\G|W W  &\\& !# .A "6!9 - .rjcd}tjgdddgtjgdddgdg}|D] }|| y)Nctj|}|j}tjt j |t j |yr)rErbrIrRrdr.rc)rrhrZs r7_checkzBTestConvertMisc.test_category_implicit_from_pandas.._check s;((1+C]]_F  " "299V#4biil Crjr}rrrTr)r.r)rrrrhs r7"test_category_implicit_from_pandasz2TestConvertMisc.test_category_implicit_from_pandas sR D NN?Sz B NN?Sz#' )   C 3K rjcntjdtjgi}t|y)Ncat)r.r/rr\rs r7test_empty_categoryz#TestConvertMisc.test_empty_category s& \\5".."45 6#rjctjdftjdffD]\}}tjgtjtj |}|j }tjgtjg|}tjtj|tj|tjd|i}|j }tjd|i}tj ||y)Nr?rrrr)rErrr dictionaryrrIr.rr0rbrRrdrcrYr/rS)rrrrrZrUrYs r7test_category_zero_chunksz)TestConvertMisc.test_category_zero_chunks s " X6W8MN 4NGU  R]]2779g%FGA[[]F~~bRXXb5NOH  " "299V#4bii6I JHHc1X&E__&F||S(O4H  ! !&( 3 4rjzdata,error_typer)rrrrTrctj|}d}tj||5tj j |dddy#1swYyxYw)N/Conversion failed for column a with type objectr)r.r/rr0rErGrH)rr error_typerTrs r7test_mixed_types_failsz&TestConvertMisc.test_mixed_types_fails$ sL\\$ ? ]]:S 1 % HH  $ % % %s AA!c 2g}gd}d\}}tjj||jdz}gd}|D]T}t j 5t j d|j|j|dddV|jtjt||zDcgc] }tdc}tj||jtjgd|ztj||j} d| d <|j| |jtjd ||zd j||j|d kDjtddd f} |D]A} t!j"| | } | d} t%| t'| t'| | Cy#1swYxYwcc}w)Nr})rrr) rrrrrrrrrrr@rrrrr"r$rrrr)r0r2r3rrrNrOrrr,rbr4r r?reshaper1r!r.r/r\ru)rcasesrKNKrandom_numbersnumeric_dtypes type_namerboolean_objects strided_maskcaserTr[s r7test_strided_data_importz(TestConvertMisc.test_strided_data_import5 s!1A.335;&( ?I((* ?%%h/ ^229=> ? ? ?  RXXq1uFA|B/F$*,gamDDF , 88$7!$;6J#GAqM$$& " _% RYY8!a%%57gamDDF ,'*2248A>  ;DdG4BS'C #B ' "3 ' "3\ :  ;/ ? ? Gs6HH H cd}|tjdgdzt|tjtjgdzt|tjdtjdgty)Nctj|}t|tjsJt |dk(sJ|j dk(sJ|D]}|tj urJy)Nr)rErbr NullArrayrrpr)reritems r7 _check_seriesz5TestConvertMisc.test_all_nones.._check_seriesa sh Ii6 66y>Q& &&''1, ,,! %ruu}$} %rjrr)r.rcr?r0rM)rr,s r7test_all_noneszTestConvertMisc.test_all_nones` s] % bii &9:bii1 F;<biirvvt 4FCDrjctdgdfdtjgdtjfdgdfg}t j |}t jt jdt jt jdt jg}t|||ddg|y)Nr)rrr)rrr)irrrrr)r:rUrV) rr0rbrr.r/rEr:rrr\)rrrTpartial_schemas r7test_partial_schemaz#TestConvertMisc.test_partial_schemam s / " "((.bhh? @ % &   \\$  HHS"((* % HHS"((* %$   >)+S#J0> @rjcXtji}t|dt|ddtjtjg}t||dt||ddtjigd}t|dt|ddy) NrT)r;rWrFrr)rWr;)r.r/r\r)rrTrUrs r7 test_table_batch_empty_dataframez0TestConvertMisc.test_table_batch_empty_dataframe~ s| \\" 484$G<< 5HUCHUTRll2Y/D9d4Hrjc tjgtj}tjt jgt }tj|jtjt jgt jtjgtj}tj|j|tjgtjtj}tj|j|tjgtjtjdtjg}tj|j|y)Nrgrr)rErbrr.rcr0r?rRrdrIrrirr)rrh empty_objectss r7test_convert_empty_tablez(TestConvertMisc.test_convert_empty_table shhr + "((2V"<=  s}}!yy"BHH)EF Hhhr , s}} >hhr 45 s}} >hhr 288C+D*E FG s}} >rjctjdtjfdtjfg}tjddg|}|j dk(sJt j|dt j}|jdd gk(sJt j|dt j}|jd d gk(sJy ) zt ARROW-2172: converting from a Numpy array with a stride that's not a multiple of itemsize. r6rB)rr4)r)r)rrgrr8r4r)N)r0rrrrbrrEr)rrrrhs r7test_non_natural_stridez'TestConvertMisc.test_non_natural_stride s 3/C?;<xx8,E:||t###hhtCyrxxz2}}2s)+++hhtCyrxxz2}}2q')))rjc&tjddtjddd}tj|tj }tjgdtj }|j |y) Nrrrrr4r)rg)rrrg@)r0r1rrErbr rJ)rrpa_arrrUs r7#test_array_from_strided_numpy_arrayz3TestConvertMisc.test_array_from_strided_numpy_array s\1b 3AbF;&rzz|4880rzz|D hrjc|tjtdtjdddd}t j t jdt jt jdt jg}tjt5t jj||dddt jj||d }|jdj t jk(sJy#1swY^xYw) Nabcrrr)rrrrrhFr)r.r/rr0linspacerEr:rrrrr0r1rGrHrr_rs r7test_safe_unsafe_castsz&TestConvertMisc.test_safe_unsafe_casts s \\eQ1%    HHS"))+ & HHS"((* %   ]]: & 4 HH F 3 4$$RU$C||C %%333  4 4s 3"D22D;c  tjdtjjdtj dgi}tjtd5tjj|dddy#t $r>tjdtjdtj dgi}YwxYw#1swYyxYw)NrrrzSparse pandas datar) r.r/r SparseArrayr0rMAttributeErrorrr0rrErGrHrs r7test_error_sparsez!TestConvertMisc.test_error_sparse s EsBII$9$91bffa.$IJKB]]9,@ A % HH  $ % % EsBNNArvvq>$BCDB E % %sAB " C ACCCN).rrrrrErrrrrrrrrrr rrIrirrrrrrr processes threadingrr rrrrr rbrr'r-r1r3r6r9r<r@rDrrjr7rr s>  ("((* ("((* ("((* ("((* 9299; 9299; 9299; JBJJL! JBJJL! JBJJL! 9299; 9299; 9299R=! 8288HBHHJ'(#J($$ 6 # [[ [[.4 $ 4 [[= !2#4#4 5= !2#4#4 5At9 r00 1D#;  1As8_boo .C:  0   % % );V E@" I ? * 4$%rjrctjgd}tjj |tj d}tj gdtj }|j|sJy)N)rr)NrTr_r6rg)r.rcrErrHrrbrJ)rsrhrUs r7*test_safe_cast_from_float_with_nans_to_intrI s[YY 'F ((  vBHHJT  BCxxbhhj9H ::h  rjcLtjjtjddj dt j t jddgtdg}tjdd}||jd |jd |dddjd j djd ddgdztjddgdzjd jd d gdzt jjdt jjdddtj dddtj"dddd }tj$||S)Nrrrr)rrPrrrurdrTFrrr2013Mrrr)r%rr) rrr)rrrrrrrrr)r.rrrrepeatr0tilerbr?rr,rcrsr2r3r period_rangeinterval_ranger/)rrrs r7_fully_loaded_dataframe_examplerR sM MM % % lA.55a8 %v6:' E |R 0B >>% >>, ' cc7  u % , ,Q / 6 6z B 5>A  99eU^a' ( / / ; B B %=1  99??2  99  Q"  - ??62C 8   AAr : D <<E **rjrKrErc2tdttjcxkrtdkrnntjdtj |}t jj|}t jj|j}|j|sJ|jj|jsJ|jj|jjk(sJy)NrFrGrHr) rr.rIrrJr/rErGrHrIrJr:r)rKrTtable1table2s r7!test_roundtrip_with_bytes_unicoderV sw72>>2EWW5EE  01 g &B XX ! !" %F XX ! !&"2"2"4 5F ==  ==   .. . == ! !V]]%;%; ;; ;rjcZ|dz}|dz}|dz}|dz}|dz}|dz}t||||S)Nrr)r)valr.secondsminutesr~s r7_pytime_from_microsr[ sI=LGOCBhGBJCBhG 2IE w 66rjcz|jdz|jdzz|jdzz|jzS)Nl$'-ir)hourminuterr)pytimes r7rr sE KK* $ MMH $ % MMG # $     rjcGdd}tjd||gi}d}tjt|5t j j|dddy#1swYyxYw)Nc eZdZy)6test_convert_unsupported_type_error_message..ANrrrjr7rrb s rjrrrr)r.r/rr0r1rErGrH)rrTrs r7+test_convert_unsupported_type_error_messagerc sc   sQS!#J' (B ;C z -! R !!!s A44A=c|j}tj||jd}|j |sJy)NTr@)rIrErbr_rJ)rhrers r7test_array_to_pandas_roundtripre s5 Axxd;H ??3  rjcXt|Dcgc] }td}}||zScc}w)Nr)r4r)nuniquerAr unique_valuess r7_generate_dedup_exampleri& s-(-g71U2Y7M7 7 ""8s'c\t|Dchc] }t|c}|k(sJycc}wr)rr)rrUr6s r7_assert_nuniquerk+ s' s#!1# $ 00 0#s)ctjrtjdd}d}t ||}t j |t jt j |t jt j||gfD]A}t|j|t|jdt|Cy)NDpandas uses string dtype and not object dtype, keyword has no effectrrrgFdeduplicate_objects) r rrrJrirErbrIr"rrkrIr)rgrArsrhs r7.test_to_pandas_deduplicate_strings_array_typesrp/ s$$& R GG $Wg 6Fbiik2bggi0  &&!124L  1 % @#c(K Lrjctjrtjdd}d}t ||}t j |}t jj|gdg}t jj|g}||fD]G}t|jd|t|jddt|Iy)NrmrrrFrn)r rrrJrirErbrFrrGr8rkrIr)rgrArsrhrrrs r7.test_to_pandas_deduplicate_strings_table_typesrr? s$$& R GG $Wg 6F ((6 C  # #SEE7 3B ((   %CCy" .8 % @GC ""rjc&d}d}ttjjdd|}d||dz<t j ||z}t |jd|t |jdd |d z |zd zy) Nrriiʚ;rr)TrGF)rHror)rr0r2rrErbrkrI)rgrArhrhs r7.test_to_pandas_deduplicate_integers_as_objectsrtR sGG**8Zg*NOM"&M'Q, ((=7* +CCMMtM~> !, ,,??/=?J ) )rjctjgdtjddgd}t j t j dt jdt j dt jdg}tjt5tjj|| dddy#1swYyxYw) N)333333?g@rrrr+rFrrrh)r.r/r0rMrEr:rr r"rr0r1rGrH)rTr:s r7/test_table_from_pandas_checks_field_nullabilityr~~ s OVVXu57 8B YYbjjlUCbggi%@BCF z "0 R/000s ,"CC c  tjtdgdfdgdddgddgfdgdfg}|gd }tjdtj fdtj tj fdtjfg}tjdtjfdtj fdtj tj fg}tjj|d }tjj|d }|jj|sJ|jj|sJy) N partitionrrrrrrrrr)NNrgffffff @r)rrFr) r.r/rrEr:rrir rGrHrJ)df1rschema1schema2rTrUs r76test_table_from_pandas_keeps_column_order_of_dataframer sA ,,{ l# I1vtT23 )*$ C / 0Cii bhhj! 288BHHJ'( 2::< G ii 2::< bhhj! 288BHHJ'(G XX ! !#e ! ctjgdgdd}tjdtjfdtj fdtjfg}tj j|d}tjj|d| }|jjj|sJtjgdgddgd  }tj j|}tjj|| }|jjj|sJy) Nrrr+rrrTr)r;r:rrrh) r.r/rEr:rr SchemarHrGrcrJ)rTrVr:rYs r7:test_table_from_pandas_schema_index_columns__unnamed_indexrOs IO< =Bii bhhj bjjl bhhj)!O YY " "2d " ;F HH D HE << ' ' ) 0 0 AA A IO>  D (( (rjr_rUr3r!rrrrrrrrrrr rrYr)lengthrzlist[list[int16]]rrrr]rr^rr&rerc$t||k(sJyr)r rs r7test_logical_typers< D !X -- -rjcd}tjtj|tjtj j dd|jtj}tjtj}|j}tj||dzzk(sJd}tjtj|k(sJtjtj|tj}tj}|j}tj|k(sJy)N'rrr)rrr) rErbr0r1rr2rr,rrrrrI)rrhprior_allocationr6s r7test_array_uses_memory_poolrs  A ((299Qbhh/ ))!QQ)7>>rxxH JCJJL//1 A # # %*:QU*B CC C AJJL # # %)9 99 9 ((299Qbhh/ 0C//1 A # # %)9 99 9rjc~tjtjtjdtj gdg}t |dtj}|j}|djjjsJtj|kDsJy)NrrrT split_blocks) rErYrbr0r1r!_check_to_pandas_memory_unchangedrrI_valuesflags writeable)rrrZs r7test_singleton_blocks_zero_copyrs "((299T:;AU.UVVV'')-====rjc Ptjtjgddzdtjgddzdtjgddzdtjgddzdtjgddzdtjgddzdtjgddzdtjgddzdgtd Dcgc]}d | c}}t |d t |d ycc}w) NrrrrgrrrrrrTr)rErYrbr4_check_blocks_createdr)rrs r7test_to_pandas_split_blocksrs  $40 $40 $40 $40 $40 $40 $40 $40 q"A!A3" $A!Q%ad;#s6 D# c|ttjtdkr |jS|jS)Nz1.1.0)rr.rI_data_mgrrs r7_get_mgrr-s*r~~!11xxwwrjcn|jd}tt|j|k(sJy)NTr)rIrrblocks)rnumberr6s r7rr4s/  &A x{!! "f ,, ,rjcfdfd}|}t|dd|}t|dy)N2c tjtDcgc]:}tjtj j dddd<c}tDcgc]}d| c}Scc}wcc}w)Nrr)r)rErYr4rbr0r2r3)rr s r7 _make_tablez1test_to_pandas_self_destruct.._make_table<suxx1X  HHRYY__U+CaC0 1 #1X &asG & ( (  's ?A?, B T)r self_destruct)r)r)rrr s @r7test_to_pandas_self_destructr9s5 A(  A%ad$O  A%at88DG2::>@AI 99>> ;;rxx * ++ + ;;rxx * ++ +rjctj}tj|g}|jj djj d}tjdd}tjj||}|j|k(sJtjj|tjd}|dj|djk(sJ|dj|djk(sJtjdgdjtjd }tjd gdjtjd }|jtjd k(sJtjd }t!j"t$5|j|ddd|j|d }|j'|sJtjtj(dtj(dtj(dg} tjgdtjd}t!j"t$5tj| tjddddt!j"t$5tjj| tjddddtjj| tjdd }|j'|sJtj| tjdd }|j'|sJy#1swYxYw#1swYxYw#1swYxYw)Nz tzlocal()r#r^rrgrirr]{reFr5rrr)rrrrH)rnowr.rcrr tz_convertrErrrHr_r to_pydatetimerbrbrr0r1rJr) rXres_nyc us_with_tzrhrrUtargetrZrs r7test_cast_timestamp_unitrs ,,.C 3%A DD  [ ) , , 7 78J KEd'9:J ((  u:  6C 88z !! ! 88   T(:  ;D q6<<>U1X335 55 5 7==?ad002 22 2 ((F8' * / / T0B CCxxG,11",,s2CDH 88r||D) )) ) \\# F z " XXf5X )F == "" "YY Qb)92<<;MN OFxx  T(:;H z "2 bll4012 z "> V",,t*<=>XX ! !&r||D/A ! NF == "" " XXf2<<#5E BF == "" ")22>>s$4O +O'5O3O$'O03O<crtjj}|j}t j |gt j dd}tjj||gddg}|j}t j |}|j|sJy)Nr^r#rrgr%stop) r.rrrrErbrrrrIrJ)tsts_dtrhrrZrs r7(test_nested_with_timestamp_tz_round_triprs    B    E ((E7d7I!J KC ^^ ' 'c Wf4E FF    FxxH ??6 "" "rjctjj}|j}dD]}|dvrd}nd}t j |gt j |}t j |gt j |d}tjj||gdd g}tjj||gdd g}|j}t|d dtsJ|d djJt|d d tsJ|d d jJ|j}t|d dtsJ|d djJ|d djtj} || j!d ||k(sJt|d d tsJ|d d jJt j"d |ij}t|d d dtsJ|d d djJt|d d d tsJ|d d d jJt j"d |ij}t|d d dtsJ|d d djJt|d d d tsJ|d d d jJy) Nr)rer]c&|jdS)Nrr)rLr6s r7truncatez/test_nested_with_timestamp_tz..truncatesAII!I$<.truncatesAXrjrgr#rr%rrrrr)r.rrrrErbrrrrIrrrs astimezonerrurLrY) rrr\rrhrarr3arr4rZutc_dts r7test_nested_with_timestamp_tzrs     B    E"&9 ;  = %hht",,t"45xx2<<9K#LM~~))3*w6GH~~))4,&8IJ!&)G,h777ay!((000&)F+X666ay ''///!&)G,h777ay!((4447#..x||<''t'4GGG&)F+X666ay ''3333+&002&+a.18<<<c{1~g&--555&+a.0(;;;c{1~f%,,4443+&002&+a.18<<<c{1~g&--999&+a.0(;;;c{1~f%,,888M&9rjcDtjgdd}tjgdt}tjgd}dD]}|j |}t j j||}t j j|||}|dd k(r3tjt5|jddd|j}tjj|| }tj tj"|tj"||j} | j%j'd k(sJ|} |dd k(r|j |d d} tjjtj(|d | | } tj tj"| tj"| y#1swY?xYw) Nrr)r^r)FFTFFF)rrrrrrrrrrurrr4)r0rNrbr?r,rEr7rrr0rrIr.r from_codesrRrdrcrorqwhere) src_indicesrrl index_typer:d1d2pandas1 ex_pandas1pandas2signed_indices ex_pandas2s r7test_dictionary_with_pandasr s))Iq)K/v>J 88= >D*J $$Z0    + +GZ @    + +GZd + K a=C y)    ,,.^^..w:.N  ryy1299Z3HI,,.~~##%***! a=C $^^JqrN;N^^..rxxb8F0H:D/F  ryy1299Z3HI9J  s HH c<|/|tjjdt||}n;tjt |Dcgc] }t |c}t}|dkDr%d|tjj||k<|Scc}w)Nrrr) r0r2rrrbr4r r?rand)rF item_sizepct_nullrrZrs r7random_stringsr&sBII--aZq-IJE!HEq< 2E &(!|/3ryy~~a 8+, M FsBctjjdtjt ddd}tjt ddd}tjt ddd}tj jtjjd t|d d |}tj jtjjd t|d d |}tj jtjjd t|d d |}tjtjjd t|d d tjjd d k}tj j||}tj|||g}tj||||g} tj|jd|jd|jd|jdg} | j} | j} | jj |jk(j#sJ| j%d} d| | j'<t)j*| | y)Ni90r rrgrrrrrrrrrr+)r0r2rrErbrr7rrrr  concat_arraysrrbrIrrrr,rorRrd)rrd3rr<rrr expected_dictra_denserZ result_denseexpected_denses r7"test_variable_dictionary_to_pandasr3sJIINN5 .b) 9B .b) 9B .+( ;B   ' ' !SW4t<  B   ' ' !SW4t<  B   ' ' !SW4t > C C EE E]]5)N,0N<&&()<8rjcxtjgdj}tjj gd|}|j }t jtjgdttjddgtg}tj||y)N)rrrrrra)rrrrr) rErbrrrrIr.rcr0r?rRrd)rBrhrZrUs r7(test_dictionary_encoded_nested_to_pandasr_s HH. / A A CE ,, " "9e 4C ]]_Fyy"((?&A((C:V<>?H68,rjctjgd}tjtjt j rtjntj}tj|}|jgdk(sJ|jj|sJtjgd}tj|}|jgdk(sJ|jj|sJtj|tjgd}|jgdk(sJ|jj|sJy)N)rrr)rrNr)FFFTr)rrNN)r.rrErrr rr@rrbrr_rJr0)rrrZs r7test_dictionary_from_pandasrls .. )CMM  (::<"))+M XXc]F     00 0 ;;  m ,, , ... /C XXc]F    !6 66 6 ;;  m ,, ,XXc)D E FF    !7 77 7 ;;  m ,, ,rjctjjtjddgdtjddgt }t jt jt j}t j||}|jj|sJ|jddgk(sJt jt jt j}tj t j"5t j||}dddt jt jt jd }d }tj t$| 5t j||}ddd|jddgk(sJt jt jt j}t j||tjd d g}|jj|sJ|jddgk(sJtjg}t jt jt j}t j||}|jj|sJ|jgk(sJt jt jt j}t j||}|jj|sJ|jgk(sJtjddg}t j|t j}t jddgt j}|j|sJ|jddgk(sJy#1swYxYw#1swY}xYw)Nrrrrrr)r value_typergT)rrrz4The 'ordered' flag of the passed categorical values rFr)r.rrr0rbr?rErrrr_rJrrrrr0rbr1)rrwrZrrUs r7*test_dictionary_from_pandas_specified_typers .. # # !Qv&#s6(J LC --288:"))+ FC XXc $F ;;  c "" "    #s ++ + --2779 DC r ')#C() --779d DC @C z -)#C()    #s ++ + --288:"))+ FC XXc"((E4=*A BF ;;  c "" "    #t ,, , .. C --2779 EC XXc $F ;;  c "" "     ## # --2779 DC XXc $F ;;  c "" "     ## # ..#s $C XXc ,Fxxc 5H == "" "    #s ++ +E))))s7P60Q6QQ c^ttjtdkrtjdtj dgdid}|j d}tj|djj}tj|djjj}t|tjsJtjj|d}tj j#||}||k(sJy)Nz1.3.0z:PyArrow backed string data type introduced in pandas 1.3.0r6rrPrzstring[pyarrow]rr)rr.rIrrJr/r,rErbrcodesrrsrrrHr7r)rTr:rrUrZs r7:test_convert_categories_to_array_with_string_pyarrow_dtyper#sr~~!11 PQ s12:K LB : Bhhr#w{{(()G"S'++00778J j"(( ++ +xx##BsG,H    + +GZ @F X  rjctjdtjgddi}tj|}tj gdtj }|djdj|sJtjdtjfg}tj||}tj gdtj}|djdj|sJtj |d}|j|sJtj |dtj}|j|sJtj |dj}|j|sJtj |djtj}|j|sJy)NrrInt64rrrhrg) r.r/rcrErYrbrr1rJr:r rs)rTrZrUr:rs r7test_array_protocolr&sw sBIIl'BC DB XXb\Fxx bhhj1H !9??1  $ $X .. .YYbjjl+, -F XXb (Frzz|4I !9??1  $ $Y // /XXbg F == "" " XXbgBJJL 1F == ## #XXbgnn %F == "" " XXbgnn2::< 8F == ## #rjc4eZdZfdZdZedZxZS)DummyExtensionTypecJt|tjdy)Nz,pyarrow.tests.test_pandas.DummyExtensionTypesuper__init__rErr __class__s r7r,zDummyExtensionType.__init__s G IrjcyNrjrrs r7__arrow_ext_serialize__z*DummyExtensionType.__arrow_ext_serialize__rjcP|dk(sJ|tjk(sJ|Sr0)rEr)cls storage_type serializeds r7__arrow_ext_deserialize__z,DummyExtensionType.__arrow_ext_deserialize__s+S   rxxz)))u rj)rrrr,r1 classmethodr7 __classcell__r.s@r7r(r(s"Irjr(ctjgdtj}tjj t |S)Nrrg)rErbrExtensionArray from_storager()rr_storages r7PandasArray__arrow_array__r?s7hhyrxxz2G   ) )*<*> HHrjctjgdtj}tjj t |}|j tjjdtd|j tjjdtdtjddd jtjd d jfD]}tj|}|j|sJtjtj|}|j|sJtjtj |}|j|sJtj"tj$d |ij'd j)d }|j|rJy)Nrrg__arrow_array__F)raising 2012-01-01rDrMrrrr)rErbrr<r=r(setattrr.r PeriodArrayr? IntervalArrayrPrQrJrcrrYr/rr1) monkeypatchr>rUrhrZs r7*test_array_protocol_pandas_extension_typesrIsuhhyrxxz2G  --.@.BGLH --/@2EC //1B2EC acBHH!!!Q'--/ '#}}X&&&"))C.)}}X&&&"((3-(}}X&&&",,Sz23::3?EEaH}}X&&& 'rjc\t|tjr|}n|jd}|j }t j |dd|j|jt|z}|d}|Ttjjtjt|d|g}t j|}n$t jt|t}tj j#|j%|d}|S)Nrr4rrF)rr)rrErr1buffersr0 frombufferoffsetr BooleanArray from_buffersrrr&r!r.r IntegerArrayrr)rrbrhbuflistrbitmaskrlint_arrs r7_Int64Dtype__from_arrow__rTs%"kk!nkkmG ==G 4 3::C( *DajG++ HHJC4/3zz$wws3xt,ii$$TYY[4%e$DG Nrjcztjgdtjgddgdd}tj|}|j }t |jdjjtjdk(sJt |jd jjtjk(sJtj||tjd tjgd di}tj|}|j }t |jdjjtjk(sJtj||ttjtd kr?|j!tj"j$j&j(d n>|j!tj"j$j&j*d |j }t-t |jd k(sJt |jdjjtjdk(sJy)Nrrfr%r)rrrr}rrrrr 1.3.0.dev__from_arrow__)r.r/rbrErYrIrrrsrr0 Int64DtyperRrSrrIdelattrcorerinteger _IntegerDtype NumericDtyper)rHrTrYrZrrUs r7test_convert_to_extension_arrayr^1s bhhy@  B HHRLE__ F F  " "1 % , , 2 2bhhw6G GG G F  " "1 % , , 2 2bmmo EE E&"% ,,RXXl'BC DC XXc]F    F F  " "1 % , , 2 2bmmo EE E&#&r~~!55 GGNN " " 0 02B D  GGNN " " / /1A C__ F x&& '1 ,, , F  " "1 % , , 2 2bhhw6G GG Grjc*eZdZfdZdZdZxZS)MyCustomIntegerTypecJt|tjdy)Nz-pyarrow.tests.test_pandas.MyCustomIntegerTyper*r-s r7r,zMyCustomIntegerType.__init__Vs H Jrjcyr0rrs r7r1z+MyCustomIntegerType.__arrow_ext_serialize__Zr2rjc*tjSr)r.rXrs r7rz#MyCustomIntegerType.to_pandas_dtype]s}}rj)rrrr,r1rr9r:s@r7r`r`TsJrjr`ctjgdtj}tjj t |}tj d|i}|j}t|jdjjtjk(sJtjgdd}tj |||j}t|jdjjtjk(sJtj"dtjgddi}tj$||t'tj(t'dkr?|j+tj,j.j0j2dn>|j+tj,j.j0j4d|j}t|jdjjt7jdk(sJtjgd}tj ||t9j:t<5|jdddy#1swYyxYw) Nrrrr%rrVrWr)rErbrr<r=r`rYrIrrrsrr.rXrcrRrdr/rSrrIrYrZrr[r\r]r0rr0r1)rHr>rhrYrZrUs r7/test_conversion_extensiontype_to_extensionarrayreashh|RXXZ0G   ( ()<)> HC HHc3Z E]]_F F  " "1 % , , 2 2bmmo EE EyyW5H68, __ F F  " "1 % , , 2 2bmmo EE E||S"(( acBHH!!!Q'--/1#((*99S> vx05#,'.88:99Su- vx01rjc tjtjdd}tj|}t tj t dkDr9tj|jj|jytj|jjtjdddddddddgd y) Nrr)r%endrz1.0r)r rr)r?r) r.r/rQrErYrrIrRassert_index_equalrIrrrTrYs r75test_roundtrip_empty_table_with_extension_dtype_indexrvs B--A1= >B HHRLEr~~/ eoo/55rxx@ eoo/55 hhQ(?12Q(?12Q(?(A.67 8rjrrrcttjtdkrtjdtj ddgddgddgd tj tj j|}|j}tj|}|jtj }tj||y) Nz1.5.0zArrowDtype missingrr)rrrrr}rrg)rr.rIrrJr/rlrErrrrrYrIrRrS)rrTrUrYrZs r7!test_to_pandas_types_mapper_indexrxsr~~!11 () QQQ mmBHHJ'  iwwyH HHRLE __"--_ 8F&(+rjcttjtdkrtjdt j gdt j}t jtjij}|j|}|jtjk(sJt jdij}|j|}|jtjdk(sJt jtjij}|j|}|jtjdk(sJyNz1.2.0z$Float64Dtype extension dtype missingrrgr)rr.rIrrJrErbrrXrrIrr0r Float64DtyperrhrZs r7!test_array_to_pandas_types_mapperr}sr~~!11 :; 88Irxxz *DHHJ 044L ^^^ 6F <<2==? ** *HHJ%))L ^^^ 6F <<288G, ,, ,JJL"//"3488L ^^^ 6F <<288G, ,, ,rjcvttjtdkrtjdt j t jgdt jg}t|t jsJt jtjij}|j|}|jtjk(sJt jdij}|j|}|jtjdk(sJt j tj"ij}|j|}|jtjdk(sJyrz)rr.rIrrJrErrbrrrQrXrrIrr0r r{r|s r7)test_chunked_array_to_pandas_types_mapperrs2r~~!11 :;  RXXi<= >D dBOO ,, ,HHJ 044L ^^^ 6F <<2==? ** *HHJ%))L ^^^ 6F <<288G, ,, ,JJL"//"3488L ^^^ 6F <<288G, ,, ,rjcFgd}gd}tj|d}tj|d}tjgdd}d}d}tjd |itjd d d d }tj j ||gd d g}|jdtjd gddddddidgd d ddddd d ddddgddi}|j} tj| |tjd |itjd d d d } tj j ||gd |g} | jdtj|gddddddidgd d ddddd |ddddgddi} | j} tj| | tjd |itjd d d d} tj j ||gd |g}|jdtj|gddddddidgd d ddddd|ddddgddi}|j}tj|| tjd |itjd d d d |g}tj j |||gd d |g}|jdtjd |gddddddidgd d ddddd d ddddd|ddddgddi}|j}tj||tjd |itjd d d d|g}tj j |||gd ||g}|jdtj||gddddddidgd d ddddd|ddddd|ddddgddi}|j}tj||y)N)rrPNr_)rrrrr"rgrlrr__index_level_1__rrrr)rDrrrpandasrr?rr)rarrrrz0.23.4)rrrKr) rErbr.r/rrGrreplace_schema_metadatajsondumpsrIrRrS)a_valuesb_valuesa_arrowb_arrowrng_index_arrow gen_name_0 gen_name_1e1rr1e2rr2e3t3r3e4t4r4e5t5r5s r7)test_metadata_compat_range_index_pre_0_12rs\+H#Hhhxf-Ghhxf-Ghh|':O$J$J  X ]]1aae 4 6B   w8%(%L  2B # #4::$g)-/309/7.8'-B !D E #&(+)2(0&* , #((-)0(/&* , - (! ) %  B( B"b!  x ]]1aae 4 6B   w8%*J$7  9B # #4::)l)-/309/7.8'-B !D E #&(+)2(0&* , #((2)0(/&* , - (! ) %  B( B"b!  X ]]1aad 3 5B   w8%(*$5  7B # #4::)l)-/309/7.8'-B !D E #&(+)2(0&* , #'(2)0(/&* , - (! ) %  B( B"b!  XmmAqqu5x @ BB   wA%(%$<  >B # #4::$j1)-/309/7.8'-B !D E #&(+)2(0&* , #((-)0(/&* , #'(2)2(0&* ,- (+ ) %  B2 B"b!  XmmAqqt4h ? AB   wA%(*j$A  CB # #4::):6)-/309/7.8'-B !D E #&(+)2(0&* , #'(2)0(/&* , #'(2)2(0&* ,- (+ ) %  B2 B"b!rjc gd}gd}tj|d}tj|d}tj||dtjddd d  }tj ||d}|j d tjddddddgddddddddddgdd dd ddgddi}|j}tj||y)Nr)rrrrrrgr"r+rrr)rDrrrr?z mixed-integer)rrrarrr)rrarrrrr4)kindrar%rrz0.25.0)rrKrr) rErbr.r/rrYrrrrIrRrS)rrrrrUrYrZs r7'test_metadata_compat_missing_field_namers H#Hhhxg.Ghhxf-G||  ]]1aae 46H HH71 2E  ) )4::#!' / 1"& ')"' )+ ! '3( +  E:__ F&(+rjc tjd}tjt j t j dd|}|jj}|ddddk(sJy) Nrrrr`rrra6) r0rrErYr.r/rr:rrarYrs r7.test_metadata_index_name_not_json_serializablers_ 88A;D HHR\\ a(FG HE||++H O $Q ' /3 66 6rjc d}tjtjtjdd|}|j j }|ddddk(sJy)Nrrrr`rrra)rErYr.r/rr:rrs r7-test_metadata_index_name_is_json_serializablersW D HHR\\ a(FG HE||++H O $Q ' /1 44 4rjc ftjtjddtjddtjddtjddgtjddtjddtjddtjddgd }|d j d |d <|j j |jj ftj d tj d fk(sJ|S)Nz0001-01-01 00:00r]z2012-05-02 12:35z2012-05-03 15:42z3000-05-03 15:42z1991-01-01 00:00rz2050-05-03 15:42) dateTimeMs dateTimeNsrr?rFzM8[ns])r.r/r0rRr,rrrrs r7make_df_with_timestampsrs  MM,d 3 MM,d 3 MM,d 3 MM,d 3   MM,d 3 MM,d 3 MM,d 3 MM,d 3    B,'..x8B| MM  !4!4 5  rxx):   Irjct}tjj|}|dz }t j ||t j |}|jd}tj||y)Nztimestamps_from_pandas.parquetTtimestamp_as_object) rrErGrHpq write_table read_tablerIrRrS)tempdirrTrYfilenamerZrs r7 test_timestamp_as_object_parquetrsj ! "B HH  $E99HNN5(# ]]8 $F   t  4C"c"rjct}tjj|}|j d}t j ||y)NTr)rrErGrHrIrRrS)rTrYrs r7%test_timestamp_as_object_out_of_ranger+s@ ! "B HH  $E //d/ 3C"c"rj resolutionrrr#riictj|gtj||}tjd|i}|j d|j ddfD]{}|j t k(sJt|dtsJ|r0|djJ|djj|}n|djJ|}|d|k(r{Jy)NrrgrTrr) rErbrrYrIrr?rrrsfromutc)rrrrhrYrZrUs r7'test_timestamp_as_object_non_nanosecondr4s ((B4bll:"= >C HHc3Z E $ / D1#6 %||v%%%&)X... !9##/ //ay''//3H!9##+ ++HayH$$$ %rjc Rtjd}ddl}|jd}|j|jddddd}t j d t j|gi}|jd }t j ||k(sJy) Nrorxirrr9 timestamp_colTr) rrtrrvlocalizerErYrbrI)rorrrrYrZs r7%test_timestamp_as_object_fixed_offsetrMs   v &D$H   ,8,,T1b"bA BB HHorxx~6 7E ___ 6F 88F u $$ $rjctdy)Nzpandas_threaded_import.py)r rrjr7test_threaded_pandas_importrYs -.rjctjd}tjtj|k(sJtjdtjgi}t j j|}|jtjtj|k(sJy)Nm8r) r0rr!r.r/rErGrHrI)rUrTrs r7$test_does_not_mutate_timedelta_dtyper^sxx~H 88BNN #x // / sR^^-./ 0B R AKKM 88BNN #x // /rjcddlm}d|ddig}|ddd g}tj||d }|j }|d dj |dk(sJy) Nr)r timedelta_1rr)rYr.r(rp)r~rZrY)r timedelta_2r)rrrErYrIto_pytimedelta)rrrrYrTs r7%test_does_not_mutate_timedelta_nestedrjsp#!9Ra#HIJK1b"=>K HH[M NE  B m Q  . . 0KN BB Brjctjtjdtjtjtj tj tjdtjgg}tjdggddddifgdddifdddifgggg| }tjddggddddifgdddifdddifgggi}tjdd digddddiiddiddid ggi}|j}|jd }tj||tj||tjj|| }|j!|sJtjj|| }|j!|sJy)Nrr)rNr)sabcrrsdefrhrrstrictmaps_as_pydicts)rEr:rrir!rrrIrYr.r/rIrRrSrGrHrJ)r:rYexpected_default_dfexpected_as_pydicts_df default_df as_pydicts_dftable_default_roundtriptable_as_pydicts_roundtrips r7,test_roundtrip_nested_map_table_with_pydictsrws YY   HH 299bhhsBIIK.H-I#JK  F HH   #v  #t C=1 2  E,,  }dq3-&8%9'(3+&6S&M8J%K%MN O \\ YK #v c4[c6]!C D  "JOOHO=M*&9:-)?@ hh22:f2M <</ 00 0!#!5!5mF!5!S <<2 33 3rjc tjddg}tjgd}tjgtj}tjddgddggtjtj}tjgddd gd d ggtjtj}tjgtjtj}tjj d d g||}tjj gd||}tjj d d g||}tj tjj d dg|jd tjj d dg|jdjd tjj d d g|jd g} | j} tjdddgfdddgfggdd d gfgggg} | jd} tjddgddgdgdd d giggg} | jdd}|j}tjdd d gfgggg}|jd}tjdd d giggg}tj5tjddtt!j"| | t!j"| | t!j"||t!j"||dddtjtj$tjtjtjdtjddffd }|| | || | ||||||y#1swYxYw)z= Slightly more robust test with chunking and slicing rrP)r_rDrrrrrrNrrr rr))rrrrrrrrrPrr@rArreturnctjtjj|}|j d|j |sJy)NrgTrX)rErrrHr[rJ)rrarray_roundtripr3s r7assert_roundtripzMtest_roundtrip_nested_map_array_with_pydicts_sliced..assert_roundtripsJ**288+?+?R+?+PQ  d +{{?+++rj)rErbrrir'rrrr&rIr.rcrNrOrPrQrRrdr!)keys_1keys_2keys_3items_1items_2items_3 map_chunk_1 map_chunk_2 map_chunk_3rseries_defaultexpected_series_defaultseries_pydictsexpected_series_pydictsslicedseries_default_slicedexpected_series_default_slicedseries_pydicts_slicedexpected_series_pydicts_slicedrr3s @r73test_roundtrip_nested_map_array_with_pydicts_slicedrsXXuen %F XX3 4F XXb"))+ &Fhh sc3Z  Ghh TD#;c + Ghh  G ++))1a&&'BK++)))VWEK++))1a&&'BK$$   !Q5;;A>   !Q):):1)=>DDQG   !Q5;;A>&M #,,.N ii 3* Sz2 34 3*   ) #,,X,FN iisS#J /0 #s  )  A &F",,.%'YY 3*   0&" #,,X,F%'YY #s  0&"  "V*I 2 4 ~/FG ~/FG 46TU 46TU V "''"))+rxx '<= >B,,T, ^]3^]3*F3*F3%VVs %A4P>>Qc$tjgd}tjddgddgddggtjtj}dd g}tjj |||}tj tjtjtj}tjtjj5|jd ddd|jd }tjddgddgd g}|jtjj!||rJ|j}tjdddgfdddgfdddgfgg}|jtjj!||sJt#|t#|k(sJt%||D]y\} } t#| t#| k(sJt%| j'| j'D]0\} } | d| dk(sJt)j*| d| dr0J{t#|t#|k(sJt%||D]]\} } t#| t#| k(sJt%| | D]0\} } | d| dk(sJt)j*| d| dr0J_y#1swYxYw)Nr!rrrrrrBrrrrlossyrrgrrPr)rErbrirr'rr!rr0rArrowExceptionrIr.rcrJrrHrrr(r0 array_equal) rr(rbmapsr3rrrrrow1row2tup1tup2s r74test_roundtrip_map_array_with_pydicts_duplicate_keysrs 88) *D HH sc3Z#s,  E!fG ;; " "7D% 8D bhhryy{3 4B rvv,, -1 x01^^G^ >> >.*AB4 d4yCI%%%dD/ 4JD$7d1g% %%>>$q'473 33 44C11s ;LLc tjddgddggdgddgddggtjtj}tjgd }gd }tjj |||}t jt5|jd ddd|j}tjddgd fddgdfggdfdgdfddgdfddgdfgg}t|t|k(sJt||D]]\}}t|t|k(sJt||D]0\}} tj|d| dsJ|d| dk(r0J_y#1swYxYw)Nrrrrrrr r3)rrPr_rDrr)rr)rrrrrPr_rDrrrr)rErbrirr'rrr0rrIr.rcrrr0r) rr(rbrrrrrrrs r7%test_unhashable_map_keys_with_pydictsr&s 88 sc3ZcUT3K#sD  D HH@ AEG ;; " "7D% 8D y !0 w/0 ^^ F ii *e Sz512 euenc{F&;sCj%=PQ) v;#56 66 6&"9:& d4yCI%%%dD/ &JD$>>$q'473 337d1g% %% &&00s FF cBtjtjdddd}tjdtj |i}|j d}|j}|jdk(sJtj||y)N2012r)r~rdatetime_columnr`) r.rcrrErYrbrrIrarRrd)rrY table_colrZs r7)test_table_column_conversion_for_datetimerGs YYr}}VQ;LM-/F HH'&)9: ;E ./I  "F ;;+ ++ +66*rjctjtjddd}tj|}|j }t j||y)Nrr)r~r)r.rcrrErbrIrRrd)rrhrZs r7"test_array_conversion_for_datetimerVsI YYr}}VQ;LM NF ((6 C ]]_F66*rjc d d}ddz}|tjd|||gid|i}|tjd|||gi|g}|tjd|||gi|g}|tjd|||gid|i}|tjd |||gid |i}tjtjtj tj dtjfg}tjd |fg}|tjd |||gi| y)Nctjj||}|jd|j dj }|dkDsJt j|jdd|y)NrhTrXrrr)rr) rErGrHr[rrRrRrSrI)rTr:tabrRs r7 roundtripz-test_nested_chunking_valid..roundtriphsrhh""2f"5 $ ZZ]-- A~~ cmm$r%s$   #>>"   (*(D(D%@AA''&&, % L [[   > &8< $K0- j4j4ZbbJ IK.K.&IK,K,,} $} $H~-~-Be1e1Pn (n (b`:`:F9494xB A Q%Q%h +.fXw$78 <9 <7  !$ T11 23 4 # 1 L "&1")60)4/0)6A" 5WGtB*9,J ((0) G V F W W W W h h h y! y! y! f f g ! g& i ("((8288:& ')<= r1 y) d Z( dE "L1 3 4&!1:.;:.:4 9 ><"- =$:* 0 0",*.#b#-9h!JH )9X --02,j ($: ))  I'4, HF "** !H92,2 1 83c "34,5,"-.--8f"R0,f756 # ##'89&89:q! 4htQ6JKL%M;:%* %// 0 C*4ZK4\14h&B + +##L(..[c      B    sS X  W9X X%9 XX XX XXX"!X"%X.-X.