gL i.&dZddlmZddlmZmZmZmZddlmZddl m Z m Z ddl Z ddl Z ddlZddlZddlZddlmZddlmZdd lmZmZmZmZmZmZmZmZmZdd l m!Z!m"Z"ddl#Z$ddl%m&Z'dd l(m)Z)dd l*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1dd l2m3Z3ejhdZ5ddl6m7Z7ddl8m9Z9dZ:ejve'jxe=dZ>ejvdZ?ejvdZ@ejvddgdZAejvdZBejvdZCejvdZDejvdZEGdde3jZGGd d!ZHejjd"e'jd#ZLd$ZMd%ZNd&ZOd'ZPd(ZQejjd)gd*ejjd+d,d,d,ggd-ZRejjd.gd/d0dgggd1dgggd2d3g4d5ZSd6ZTejjd7e5jeVge5jd8eVge5jeVge5je=ge5je5je[ge5je5je[ge5je5je5je[ge5jd9e5jfd:e5jfgeage5je5je5je"gg d;Zcd<Zdd=Zed>Zfd?Zgd@ZhdAZidBZjdCZkdDZldEZmdFZndGZoejjdHejRejfdIgdJZqdKZrdLZsdMZtdNZudOZvdPZwdQZxdRZydSZzejjdTdUdVgdWZ{dXZ|ejjdYdZd[gd\d]gd^d_ggd`Z}daZ~ejjdbdcddddddedggdfdeddddddggdcdddedddedeggdgddddededggdhdeddedddgggdiZdjZejjdkdldcdgdmgdldnddgdogdpdndegdqgdpdrdgdmgdldsdgdtgdpdudgdtgdldvdgdwgdpdvdgdwggdxZejjdydzd{Zejjd|dTejdngd}e=gd~ddgddggdZejjddddddddggdddddddggddddeddgggdZdZdZdZejjddcddddedggdfdeddddggdrdeddddggdcdddededeggdgddddedggdhdeddddgggdZejjddUdddgdgddedgdgdrdedgdgdcdddgdgdVdddgdgdhdedgdgddddgdgddddgdgddedgdgddedgdgddedgdgddedgdgg dZejjddcddddge5jgdrddddge5jggdZdZdZdZdZejj#edejjdgdejjdgdejjdgddZdZejjddgdgdgdgdgdgdgdgd0gdggdZejj+dedZdZejjdddddcdggddddcdggddddrdggdddddgfgdZejjddddddggdddddggdddddgggdZejjdgd¢gdâgdĢgdŢgdƢgdǢgdȢgdɢgdʢgdˢgd̢gd͢gd΢gdϢgdТgdѢgdҢgdӢgdԄZejjdddgddgddgddgddgddggdZdZejjdgdgdgdgdgdgdgdZejjdddUgdZejjdddUgdZejjdddgejjdddgddggdZejjdddgdZejjdddgejjdddgdd0ggdZejjdddgdZejjdddgdd0ggdZdZdZdZdZejjddd gd Zd Zd Zd ZejjddeddgdZdZejjdgddZdZejjdddgddgddgddgddgddgddgddgdd0gd ddgd!d"gd#dgd$d%gd&dgd'd(gd)edddgd*edd0d(d"ggd+Zd,Zd-Zd.Zejjdd/d0gd1Zd2Zejjdd3d4gd5Zejjd6gd7d8Zd9ZejjdՐd:d;gd<d=ggd>Zd?Zejjdgd@dAZejjdgd@dBZejjdCgdDejjdgd@dEZdFZejjdGdHdIgdJZdKZdLZejjdd3d4gdMZejjdNdOedddPdQgdRe$jdSggdTZƐdUZǐdVZejjdd3d4gdWZejjdXdYdZgd[Zejjdd\dgd]dgd^dgd_d0ggd`ZːdaZ̐dbZ͐dcZejjdddeddgdeZϐdfZАdgZejjdXdhdigdjZGdkdle7ZӐdmZԐdnZejjdodpdqge5jfddnge5jfgdrZ֐dsZejjd"e'je'jzdtZejjd"e'jduZejjd"e'jdvZejjd"e'je'jzdwZސdxZߐdyZdzZejjd"e'je'jzd{Zejjd"e'je'jzd|Zejjd"e'je'jzd}Zejjd"e'je'jzd~Zejjd"e'je'jzdZejjd"e'je'jzdZdZejjd"e'je'jze4ejjdXdegdZdZdZdZdZejjd"e'jdZdZdZdZdZdZejjdXddgdZejjd"e'jdZejjd"e'jdZejjdXe'jdZejjdXgddZejjd"e'jdZejjdXddgdZejjdXddgdZdZejj#eddZdZdZdZdZy(ag This file contains a minimal set of tests for compliance with the extension array interface test suite, and should contain no other tests. The test suite for the full functionality of the array is located in `pandas/tests/arrays/`. The tests in this file are inherited from the BaseExtensionTests, and only minimal tweaks should be applied to get the tests passing (by overwriting a parent method). Additional tests should either be added to one of the BaseExtensionTests classes (if they are relevant for the extension interface for all dtypes), or be added to the array-specific tests in `pandas/tests/arrays/`. ) annotations)datedatetimetime timedelta)Decimal)BytesIOStringION)lib) timezones) PY311PY312is_ci_environmentis_platform_windowspa_version_under11p0pa_version_under13p0pa_version_under14p0pa_version_under20p0pa_version_under21p0) ArrowDtypeCategoricalDtypeType) no_default) is_bool_dtypeis_float_dtypeis_integer_dtypeis_numeric_dtypeis_signed_integer_dtypeis_string_dtypeis_unsigned_integer_dtype)basepyarrow)ArrowExtensionArray)ArrowPeriodTypectrLtrAtjj t j d}|j|yyy)Nz_TODO: Set ARROW_TIMEZONE_DATABASE environment variable on CI to path to the tzdata for pyarrow.raisesreason)rrpytestmarkxfailpa ArrowInvalid applymarker)requestr)s g/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/extension/test_arrow.py_require_timezone_databaser0HsK!2!4{{  ??;!  D!"5)paramsidsc.t|jS)N) pyarrow_dtype)rparam)r.s r/dtyper7Ts GMM 22r1c |j}tjj|rddgdzdgzddgdzzdgzddgz}ntjj |rddgdzdgzddgdzzdgzd d gz}n^tjj |rd d gdzdgzd dgdzzdgzd dgz}n!tjj |rd d gdzdgzdd gdzzdgzd dgz}ntjj|rTtdtdgdzdgztdtdgdzzdgztdtdgz}nqtjj|r`tdd d tdddgdzdgztdd d tdd d gdzzdgztdddtdddgz}ntjj|rjtdd d d d d d tdd d d d d d gdzdgztdd d d tdd d d gdzzdgztdd d tdd d gz}nitjj|rTtd td d gdzdgztdtd gdzzdgztdtdgz}ntjj|rYt!dd t!d dgdzdgzt!d d t!d d gdzzdgzt!d dt!dd gz}n~tjj#|rdd gdzdgzdd!gdzzdgzd"d#gz}nBtjj%|rd$d%gdzdgzd&d'gdzzdgzd(d)gz}nt&t)j*||*S)+NTF,?gg?gX@rc10.0z-2.0z-1.0z0.5z33.123 i ab2!>ab12!>r7)r5r+types is_boolean is_floatingis_signed_integeris_unsigned_integer is_decimalris_dater is_timestampr is_durationris_timer is_string is_binaryNotImplementedErrorpdarray)r7pa_dtypedatas r/rhrhYsf""H xx8$e}q D6)T5MB,>>$G4QV-W   h 'SzA~&$)::dVCsDkQ  # #H -1vzTF"b"X]2dV;q"gE  % %h /1vzTF"aVb[0D69QGC   X & S\75> *Q .f v025 6f u~wx01  2    ( # $1 tD"b1 2Q 6f D!QdAq!12R7 8f D"b!4b"#56  7    x ( dAq!Q1 -xaAq!Q/O PST Tf aA&q!Q(?@2E Ff a#XdAq%9:  ;    h ' q\9Q? +a /f }il+b0 1f ~y}-  .    ( # "a[$q"+ & *f Aqz41:&+ ,f Aqz41:&  '    H %SzA~&#sb8D6AS#JN   H %d|a4&(D$<"+<<vEt T!! 88D &&r1cXt|jd|dg|jS)zLength-2 array with [NA, Valid]NrrWtype_from_sequencer7)rhs r/ data_missingrms* : $ $dDG_DJJ $ GGr1rhrm)r2cH|jdk(r|S|jdk(r|Sy)zParametrized fixture returning 'data' or 'data_missing' integer arrays. Used to test dtype conversion with and without missing values. rhrmN)r6)r.rhrms r/all_dataros, }} . ( )r1c |j}tjj|rd}d}d}n#tjj |rd}d}d}ntjj |rd}d}d}ntjj |rd}d}d }ntjj|r)td d d }td dd}tddd}nftjj|r.td dddddd}tddd}tdddd}ntjj|r#td}td}tdd}ntjj|r%tdd}tdd }td d }ntjj|rd}d}d}nmtjj!|rd}d}d}nGtjj#|r"t%d}t%d}t%d}nt&t)j*||dd||||g|S)z Data for factorization, grouping, and unique tests. Expected to be like [B, B, NA, NA, A, A, B, C] Where A < B < C and NA is missing FTgr<g?r@rr>rJrFrGrHirErIr9rLrMcrQrRcz-1.1rDz1.1NrW)r5r+rXrYrZr[r\r^rr_rr`rrarrbrcr]rrdrerf)r7rgABCs r/data_for_groupingrvs""H xx8$      h '     # #H -     % %h /      ( # r2  q!  q!    x ( T1aAq! , T1a  T1a #   h ' bM aL aO   ( # AJ BK RL   H %      H %      X & FO EN EN!! 88Q4q!Q2% @@r1cft|j|d|d|dg|jS)zn Length-3 array with a known sort order. This should be three items [B, C, A] with A < B < C rr9rWrjrvs r/data_for_sortingrzF ! " 1 1 1 035Fq5IJ%% 2 r1cft|j|d|d|dg|jS)z{ Length-3 array with a known sort order. This should be three items [B, NA, A] with A < B and NA missing. rrBr9rWrjrys r/data_missing_for_sortingr}r{r1ct|jj}tjj |s]tjj |s>tjj |stjj|r%tjdgdz|jS|S)z3Length-100 array in which all the elements are two.rBdrW) r7r5r+rX is_integerrZr]r`rerfrhrgs r/ data_for_twosrs{zz''H H% 88   ) 88  x ( 88   )xxc 44 Kr1ceZdZdZej j dddgdZfdZfdZ dZ d Z d Z d Z d@d Zej j d ddgfdZd@dZdAdZej j d ddgfdZej j d ddgfdZdBdZej j d ddgfdZej j dgddZfdZfdZdZfdZfdZej j9dd fd!Zd"Zej j9d#d fd$Zej j9d#d fd%Z ej j d&d'e!gej j d(d)d*gd+Z"fd,Z#ej j d-d.d/gfd0Z$d1Z%d2Z&d3Z'dCd4Z(d5Z) dDd6Z*d7Z+fd8Z,fd9Z-d:Z.fd;Z/d<Z0ej j d=gd>d?Z1xZ2S)ETestArrowArrayc\tj|}|j||||dy)Nr)reSeries_compare_other)selfrh comparison_opsers r/test_compare_scalarz"TestArrowArray.test_compare_scalars'iio C}d1g>r1 na_actionNignorec|jjdvrA|jd|}|jt}t j ||y|jd|}|jdk(r"|jdtj}n|j}t j ||y) NmMc|SNxs r/z)TestArrowArray.test_map..r1rrWc|Srrrs r/rz)TestArrowArray.test_map..rr1float32[pyarrow]float64r7na_value) r7kindmapto_numpyobjecttmassert_numpy_array_equalnpnan)rrmrresultexpecteds r/test_mapzTestArrowArray.test_maps    " "d *!%%kY%GF#,,6,:H  ' ' 9!%%kY%GF!!%77'00y2660R'002  ' ' 9r1c|jj}tjj |r4|j t jjd|dn{|sytjj|r |jtjj|r/|j t jjdt|5|y)NzFor z .astype(str) decodes.r'z8pd.Timestamp/pd.Timedelta repr different from numpy repr)r7r5r+rXrcr-r(r)r*r_tzr`supertest_astype_str)rrhr.using_infer_stringrg __class__s r/rzTestArrowArray.test_astype_str"s::++ 88  h '    !!!(+AB"  $ XX " "8 ,1Dxx##H-    !!U"  %r1cx|jj}tjj |stjj |rVtjj |rd}nd|}|j tjj|t|-|y)Nz1ArrowDtype(pa.string()) != StringDtype('pyarrow')$pyarrow.type_for_alias cannot infer r) r7r5r+rXrbr]r-r(r)r*rtest_from_dtype)rrhr.rgr'rs r/rzTestArrowArray.test_from_dtype5s::++ 88  h '288+>+>x+Hxx!!(+L?zJ    !!!"  %r1ct|j|j|j}t j ||t |jtjsJt|j|jj|j}t j ||t |jtjsJyNrW) rkrl _pa_arrayr7rassert_extension_array_equal isinstancer+ ChunkedArraycombine_chunksrrhrs r/test_from_sequence_pa_arrayz*TestArrowArray.test_from_sequence_pa_arrayDsd**4>>*L ''5&**BOO<<<d** NN ) ) +4::+  ''5&**BOO<<>&&ryy{3d55hdjj5Q ''5**,d55hdjj5Q ''5r1ct|||}|jj}tjj |r6|j dk(rd}nd}|j|}|j|}|jd}t|jd||}tj||dy)Nskipna int32[pyarrow]int64[pyarrow]Float64F) check_dtype) getattrr7r5r+rX is_temporal bit_widthastyperassert_series_equal)rrop_namerrpa_typeint_typers r/check_accumulatezTestArrowArray.check_accumulatess&g&f5)))) 88   (  B&++**X&C]]8,Fy):73::i0':&I vxUCr1c|jj}tjj |stjj |r|dvryytjj |r|dk(ryytjj|r|dvryytjj|r+|dk(r tjj|sy|dk(ryy)N)cumsumcumprodcummaxcumminFr)rrrrT) r7r5r+rXrcr]rbrYrr`)rrrrs r/_supports_accumulationz%TestArrowArray._supports_accumulations)))) 88  g &"((*=*=g*FCCXX   ()#XX  )99  XX ! !' *("288+?+?+HI%r1rTFc|jj}|}tjj |r|dvryt j |}|j||st |%|||Str|dk7r}|jj}|jr&d|jvrtj|dtj j#|d} |j%| n||dk(rwtjj'|stjj)|r9|j%tj j#|d|t*|j-|||y)N)rrrrznot slowz not implemented for pyarrow < 9rz not implemented for r'r&)r7r5r+rXrbrerrrtest_accumulate_seriesrconfigoptionmarkexprr(skipr)r*r-rYr] TypeErrorr) rrhall_numeric_accumulationsrr.rrroptr)rs r/rz%TestArrowArray.test_accumulate_seriessc****+ 88  g &76T+T iio**3871/  $=$I..''C|| cll : 011QR;;$$344TU%D    % &( 2 HH   (BHH,?,?,H    !!788MgYW$"  c7F3r1c:|dk(s tr|dk(ry|j}|j}tjj |r)|dvr%tjj |r|dvrnhytjj|r|dvrytjj|stjj|r|dvrytjj |r$tjj |s|dvryy ) NkurtskewF)sumvarrrprod)r)rr)meanmedianrstdsemrrr)anyallT) rr7r5r+rXrr`rcrb)rrrr7rgs r/_supports_reductionz"TestArrowArray._supports_reductions f !5'V:K && 88   )g: / xx##H-'W2D XX   )g.H HH  x (BHH,>,>x,H    HH  *HH((2>) r1c|jj}tjj |stjj |r|j d}n|}|dk(r#t||}t||}n&t|||}t|||}tj||y)Nrcountr) r7r5r+rXrrZrrrassert_almost_equal)rrrrrgaltrrs r/ check_reducezTestArrowArray.check_reduces99** 88  x (BHH,@,@,J**Y'C C g *WS'*,F,wsG,.H*WS'*&9F,wsG,F;H vx0r1cj|j}|j}tjj t |dt jd|}t jj|r|dvr|j|nts|dk(rt jj|s@|rmt jj|st jj|r/|jtjj dt|=|||y)N is not implemented in pyarrow= for r%>rrrrrz,https://github.com/apache/arrow/issues/45733r)r7r5r(r)r*rr+ __version__rXrYr-rrrZrtest_reduce_series_numeric) rrhall_numeric_reductionsrr.r7rg xfail_markrs r/rz)TestArrowArray.test_reduce_series_numeric s &&[[&&)*+>>*%z;'  88  x (-CH .    +$&&0##H-++H59M9Mh9W    !!I"  *41GPr1cf|jj}tjj t |dt jd|}t jj|st jj|r|j|t|5|||S)Nrrr%)r7r5r(r)r*rr+rrXrbrcr-rtest_reduce_series_boolean) rrhall_boolean_reductionsrrr.rgrrs r/rz)TestArrowArray.test_reduce_series_boolean0s::++[[&&)*+>>*%z;'  88  h '288+=+=h+G    +w1$8NPVWWr1c|jj}|dvr|j}|S|jjdk(rB|dk(r'ts!t t jdd}|S|dvr|j}|Sd}|S|dvrd}|S|dk(r-t jj|r|j}|Sd d dd |jj}|S) N)maxminzdecimal128(7, 3)[pyarrow]r&)rrrrfloat64[pyarrow])rrrrrruint64[pyarrow])iuf) rrkr7namerrr+ decimal128rXrbr)rarrrrr cmp_dtypes r/_get_expected_reduction_dtypez,TestArrowArray._get_expected_reduction_dtypeCs--$$ n $ I&%YY^^: :%(<&r}}R';<  @@II / @ @*I "(("4"4W"= I &&'iinn I r1c|}|dk(rMtrG|jjr1tjj d}|j |t|!|||S)Nrzskew not implementedr) rr7 _is_numericr(r)r*r-rtest_reduce_frame)rrhrrr.rr)rs r/rz TestArrowArray.test_reduce_frame[s[( f !5zz%%{{((0F(G##D)w(/EvNNr1typ)int64uint64rcftjddg|dj}|dk(sJy)Nr>rB [pyarrow]rW?)rerr)rrrs r/test_median_not_approximatez*TestArrowArray.test_median_not_approximateds4Aq6C5 ):;BBD}}r1c|j}tjj|r7|j t j jtd|tjj|rBd}t jt|5|j|jdddyt|=|y#1swYyxYw)Nrr%z6string\[pyarrow\] should be constructed by StringDtyper)r5r+rXr]r-r(r)r*rdrbr&rconstruct_from_stringrr#test_construct_from_string_own_name)rr7r.rgmsgrs r/r!z2TestArrowArray.test_construct_from_string_own_namejs&& 88  x (    !!.A(L"  88  h 'KCy4 8++EJJ7 8  3E:  8 s CCct|j}tjj|r't |j |j rJytjj|r7|jtjjtd|t|9|y)Nrr%)r5r+rXrbrkis_dtyperr]r-r(r)r*rdrtest_is_dtype_from_namerr7r.rgrs r/r%z&TestArrowArray.test_is_dtype_from_name~s&& 88  h 'E{++EJJ7 777xx""8,##KK%%2!EhZP& G +E 2r1cd}tjt|5t|j ddddy#1swYyxYw)Nz*'another_type' must end with '\[pyarrow\]'r another_type)r(r&rrkr )rr7r"s r/.test_construct_from_string_another_type_raisesz=TestArrowArray.test_construct_from_string_another_type_raisess<; ]]9C 0 > K - -n = > > >s AA c|j}tjj|stjj |sitjj |r |j >tjj|stjj|r2|jtjj|dt|9|y)NzB does not have associated numpy dtype findable by find_common_typer)r5r+rXr^rar_rrcr]r-r(r)r*rtest_get_common_dtyper&s r/r+z$TestArrowArray.test_get_common_dtypes&& HH  X &xx)%%h/HKK4Kxx!!(+xx""8,    !!#*%=>"  %e,r1c|j}tjj|rt |sJyt ||yr)r5r+rXrbrrtest_is_not_string_type)rr7rgrs r/r-z&TestArrowArray.test_is_not_string_types;&& 88  h '"5) )) G +E 2r1z6GH 45419: pyarrow.ChunkedArray does not support views.)r'runc$t||yr)r test_viewrrhrs r/r0zTestArrowArray.test_views $r1c||j}|d}|j|}||usJtj|||jd}||usJtj||y)Nrbackfill)method)isnafillnarr)rrhvalidrs r/test_fillna_no_op_returns_copyz-TestArrowArray.test_fillna_no_op_returns_copyswTYY[L!QU#T!!! ''5J/T!!! ''5r1z5GH 45419: pyarrow.ChunkedArray does not support viewsc$t||yr)rtest_transposer1s r/r:zTestArrowArray.test_transposes t$r1c$t||yr)rtest_setitem_preserves_viewsr1s r/r<z+TestArrowArray.test_setitem_preserves_viewss ,T2r1 dtype_backendr!enginerqpythonc |jj}tjj |r9|j t jjtd|dntjj|rC|jdvr5|j t jjtdnNtjj|r/|j t jjdtjdtj |t#|j i}|j%d t&j( }tjj|r t+|}n t-|}tj.|dt#|ji|| }|} t1j2|| y) NzParameterized types z not supported.r%)usnsz1https://github.com/pandas-dev/pandas/issues/49767z)CSV parsers don't correctly handle binaryr with_dtyperWF)indexna_rep)r7r>r=)r7r5r+rXr]r-r(r)r*rdr_unit ValueErrorrcre DataFramerstrto_csvrrr r read_csvrassert_frame_equal) rr>rhr=r.rgdf csv_outputrrs r/ test_EA_typeszTestArrowArray.test_EA_typess}::++ 88  x (    !!.1(?K"  XX " "8 ,,1N    !!%N"  XX   )    !!)T!U \\<4s4::)OP QYYU266Y: 88  h ' ,J!*-J TZZ1'    fh/r1cX|jj}tjj |stjj |s`tjj |sA|jtjjtjd|trTtjj |r5tjtdd5t |E|dddyt |E|y#1swYyxYw)Nz$pyarrow.compute.invert does support r%zBitwise inversionF)rcheck_stacklevel)r7r5r+rXrYrrbr-r(r)r*rrrassert_produces_warningDeprecationWarningr test_invertrrhr.rgrs r/rTzTestArrowArray.test_inverts::++ HH   )xx""8,xx!!(+    !!66A(L"  RXX((2++"*=PU *#D) * * G  %  * *s 7D  D)periodsr>r?c $|jj}tjj |rJ|dk(rE|j t jjtjd|d|dt|-||y)Nr>z diff with z and periods=z will overflowr%) r7r5r+rXr\r-r(r)r*r,r test_diff)rrhrVr.rgrs r/rXzTestArrowArray.test_diffsy::++ 88 ' ' 1gl    !!??$XJmG9NS"  $(r1c|dd}|j}|jttj k(sJy)NrJ) value_countsr7rr+rrs r/'test_value_counts_returns_pyarrow_int64z6TestArrowArray.test_value_counts_returns_pyarrow_int64s8CRy""$||z"((*5555r1z bool[pyarrow]cr|jd}|dk(rd}|S|dk(rdStj|S)N_rtruedivc.tj||Sr)rdividerys r/r^z1TestArrowArray.get_op_from_name..rtruedivsyyA&r1 rfloordivc.tj||Sr)r floor_divideras r/rz1TestArrowArray.get_op_from_name..$s1 5r1)striprget_op_from_name)rr short_opnamer^s r/rgzTestArrowArray.get_op_from_namesC}}S) : % 'O [ (5 5""7++r1c|}|dvr|jdSd}t|tjr3d}|jdddf}|jdddfj }n|}|j }|j } |st|tjrtjj| sEtjj| r|dvs!tjj| stjj| stjj| stjj| s|S|dk(rtjj| s~tjj| s_tjj| s@tjj| s!tjj| s|Stj!|j"} tjj| j$rtjj| r%tjj'| rd} n,d } n)| j(} t%|t*t,fvr| d vrd } | j/d | d } nNtjj| j$rtjj| rt1|||} t3j4| } t| t6sJ|dk(r.t|t8rt7tj;} nw|dk(rGt|tjr-|j |k(rt7tj;} n+tjj| j sJ|j| S| j/| } t%|j"| }|r.tj||j<|j>}|Stj|}|S)N)eqneltlegtgeboolean[pyarrow]FTr) __truediv__ __rtruediv__ __floordiv__mss)rurtrAz duration[]__pow__)rDcolumns) rrrerHilocr7r5rr+rXrZrr`r_r^r]rf_valuesrk is_date64rFrrrrr get_dtyperrrrDrx)rrobjotherpointwise_resultr was_frame expected_dataoriginal_dtype orig_pa_type pa_expectedrFr alt_dtype pd_expecteds r/_cast_pointwise_resultz%TestArrowArray._cast_pointwise_result(s[$ : :#**+=> > h -I$MM!Q$/M XXad^11N$M YYN%33 Zryy9$$\2HH'' 5'FF88'' 588((688##L188&&|4   &288+>+>|+Lxx##L1xx$$\2xx -xx""<0Ohh}445 88   0 0 1xx -88%%l3DD $((;8Y"77DK?K XX !1!1 2rxx7J7J 8 ('#w'.C S)Ii4 44)# 5'(B&rzz|4 9$ubii0KK>1'rzz|4 xx**9+B+BCCC??9- -&**<8K1d=001+> ||8>>8;K;KH yy-Hr1c|dvxs |dvxrt xrtjj|xs%|dvxrtjj |S)N__add____radd__rqrrrs __rfloordiv____sub____rsub__)rr+rXr`r)ropnamergs r/_is_temporal_supportedz%TestArrowArray._is_temporal_supportedsn11WX100  /$$X. /00/$$X. r1c|dvr ttfStj|}|j}|j ||}|dvrttf}|S|rd}|S|dvrBt jj|st jj|rd}|St jj|sFt jj|s't jj|st}|Sd}|S)N) __divmod__ __rdivmod__>__mod____rmod__r) rdrrr|r5rr+rXrbrcrZrr])rrr}r~r7rgarrow_temporal_supportedexcs r/_get_expected_exceptionz&TestArrowArray._get_expected_exceptions 3 3'3 3 S!&&#'#>#>w#Q   ' 2C &C / / HH  x (BHH,>,>x,HC  HH  *xx""8,xx""8,C C r1cd}|j||}|dk(rtjj|s>tjj |stjj |r%t jjd|}|S|rotjj|s#|dvrLtjj|r-t jjt|d|d}|S|dk(rotjj |stjj |r1t jjtjd }|S|d k(rNtjj |r/t jjtjd }|S) N__rpow__z#>vx#P Z  HH  *xx""8,xx""8,;;$$#*&%DD 9& HH  X &STHH((2;;$$ h!!) .:%D(  & HH   )RXX-@-@-J;;$$$%D ~ %"((*=*=h*G;;$$$%D  r1c|jj}|dk(r4tjj |rt j d|j||}||j|t|)||yNrz%Skip testing Python string formatting) r7r5r+rXrcr(rrr-rtest_arith_series_with_scalarrrhall_arithmetic_operatorsr.rgr)rs r/rz,TestArrowArray.test_arith_series_with_scalarso::++ #z 1bhh6H6H6R KK? @++,DhO      % -d4LMr1cL|jj}|dk(rStjj |stjj |rt jd|j||}||j|t|-||yr) r7r5r+rXrbrcr(rrr-rtest_arith_frame_with_scalarrs r/rz+TestArrowArray.test_arith_frame_with_scalars::++ #z 1 HH  x (BHH,>,>x,H KK? @++,DhO      % ,T3KLr1c2|jj}|dvr`tjj |rA|j t jjtjd||j||}||j ||}tj|}tjtj|jdgt|z|j}|j!|||y)NrzJImplemented pyarrow.compute.subtract_checked which raises on overflow for r%rrW)r7r5r+rXr\r-r(r)r*r,rrerrfrylen check_opname) rrhrr.rgr)rrr~s r/test_arith_series_with_arrayz+TestArrowArray.test_arith_series_with_arrays::++ #(  hh**84    !!??88@zC" ++,DhO      %*iio "((CHHQK=3s8#;4::NO #w.r1c|jj}|jdrA|jtj j tjd|t|)|y)Nint8zraises on overflow for r%) r7r5rr-r(r)r*r+r,r$test_add_series_with_extension_arrayrUs r/rz3TestArrowArray.test_add_series_with_extension_array$sc::++ ??6 "    !!??4XJ?"  4T:r1ctjtd5||tdddy#1swYyxYw)Nz'.* not implemented for r)r(r&rdr)rrhrs r/test_invalid_other_compz&TestArrowArray.test_invalid_other_comp0s7 ]] 'P  * $ ) * * *s 7A masked_dtype)booleanInt64rcgd}tj||}tj||jd}|||}|tjtj tj fvrgd}ngd}tj|ttj}tj||y)N)r>rNrWr)FFN)TTN) rerloweroperatorrlrnrkrr+bool_rr) rrrrh ser_maskedser_parexprs r/test_comp_masked_numpyz%TestArrowArray.test_comp_masked_numpy7sYYt<8 4,*<*<*>)?y'IJvz2 X[[(++x{{C C&C$C99S 288:(>? vx0r1)r pd.SeriesrrIreturnbool)rrrrIrr)rrIrr)rrI)rrIrz4type[Exception] | tuple[type[Exception], ...] | None)3__name__ __module__ __qualname__rr(r) parametrizerrrrrrrrrrrrrrrrr!r%r)r+r-r*r0r8r:r<rrOrTrXr[_combine_le_expected_dtypergrrrrrrrrrr __classcell__rs@r/rrs? [[[4*:; :< :&& & = 68D"* [[Xe}5(46(4T.`1* [[Xe}5$Q6$QL [[Xe}5X6X$0 [[Xe}5O6O [[U$BCD ;( 3> -&3 [[GU   6 [[FE%% [[FE33 [[_y*.EF [[XX7!08G!0F&* [[YB0 )1 )6 "1 ,dL     = D,\ N M/: ;* [[^-LM 1N 1r1rc eZdZdZdZej jddgdfejgdfdgdfe jdgdfdgd fe jdgd fgd Z d Z ej jddgd fejgd fdgd fdgd fe jdgd fe jdgd fgdZdZej jddgdfejgdfdgdfe jdgdfe jdgd fgdZej jdddgddgddggdZy)TestLogicalOpsz1Various Series and DataFrame logical ops methods.ctjdgdzdgdzzdgdzzd}tjgddzd}||z}tjgdd}tj||||z}tj||tj|tjdgdzdgdzzdgdzzdtj|tjgddzdy)NTr FrprWTFN) TTTTFNTNNrerrrrrLrMrrs r/test_kleene_orzTestLogicalOps.test_kleene_orIs IItfqjE7Q;.$!;CU V II)A-5G HQ99 C$  vx0Q vx0  IItfqjE7Q;.$!;CU V   ryy,q08JK r1zother, expectedN)TNNT)TTTFrc*tjgdd}||z}tj|d}tj||||z}tj||tj|tjgddyNrrprWrrr~rrLrs r/test_kleene_or_scalarz$TestLogicalOps.test_kleene_or_scalar_{ II)1C DU99X-?@ vx0 vx0  ryy,4FG r1ctjdgdzdgdzzdgdzzd}tjgddzd}||z}tjgdd}tj||||z}tj||tj|tjdgdzdgdzzdgdzzdtj|tjgddzdy)NTr FrprWr) TFNFFFNFNrrs r/test_kleene_andzTestLogicalOps.test_kleene_andxs IItfqjE7Q;.$!;CU V II)A-5G HQ99 G$  vx0Q vx0  IItfqjE7Q;.$!;CU V   ryy,q08JK r1)NFNFFFc*tjgdd}||z}tj|d}tj||||z}tj||tj|tjgddyrrrs r/test_kleene_and_scalarz%TestLogicalOps.test_kleene_and_scalarrr1ctjdgdzdgdzzdgdzzd}tjgddzd}||z }tjgdd}tj||||z }tj||tj|tjdgdzdgdzzdgdzzdtj|tjgddzdy)NTr FrprWr) FTNTFNNNNrrs r/test_kleene_xorzTestLogicalOps.test_kleene_xors IItfqjE7Q;.$!;CU V II)A-5G HQ99 D$  vx0Q vx0  IItfqjE7Q;.$!;CU V   ryy,q08JK r1NNN)FTNc*tjgdd}||z }tj|d}tj||||z }tj||tj|tjgddyrrrs r/test_kleene_xor_scalarz%TestLogicalOps.test_kleene_xor_scalars{ II)1C DU99X-?@ vx0 vx0  ryy,4FG r1zop, exp__and____or____xor__c"gd}tj|d}tj|d}t|||}tj|ddgttj }t j||y)NrrrWrpF)rerrrr+rrr)roprrhrrrrs r/test_logical_masked_numpyz(TestLogicalOps.test_logical_masked_numpyso#YYt95 4'9:$$Z099c5$/z"((*7MN vx0r1)rrr__doc__rr(r)rreNArrrrrrrrrr1r/rrFs; , [[ % & UU& ' % & RXXd^/ 0 ' ( RXXe_1 2         , [[ & ' UU' ( & ' ) * RXXd^0 1 RXXe_3 4         , [[ % & UU& ' & ' RXXd^0 1 RXXe_1 2         [[   t    11r1rrct|}tjgd|}tjgd|}||z}tjgd|}tj||||z}tjgd|}tj||||z }tjgd|}tj|||}|j dj }tj||j|j}tj||y)N)r>Nr r9rW)Nr rKr9)NNrxr9)NNr>r9)NNrr) rrerrrr6rmaskisnull)rr7leftrightrrs r/ test_bitwisers w E 99_E 2D IIoU 3E E\Fyy35AH68, E\Fyy35AH68, E\Fyy35AH68,UFQ((*+Hyy/44T[[]CH68,r1ctjtd5tjddddtjtd5tjddddy#1swYCxYw#1swYyxYw)NzPassing pyarrow typerz#not_a_real_dype[s, tz=UTC][pyarrow]zdecimal(7, 2)[pyarrow])r(r&rdrr rr1r/Ftest_arrowdtype_construct_from_string_type_with_unsupported_parametersrsz *2H IP(()NOP *2H IC(()ABCCPPCCsA4B4A=B cztjd}ttjdd}||k(sJy)Nztimestamp[s, tz=UTC][pyarrow]ruUTC)rr r+ timestamp)r7rs r/5test_arrowdtype_construct_from_string_supports_dt64tzrs6  , ,-L ME",,sE23H H  r1cd}d}tjt|5tjt d|dddy#1swYyxYw)Nzint64[pyarrow]foobar[pyarrow]zYPassing pyarrow type specific parameters \(\[pyarrow\]\) in the string is not supported\.rr rW)r(r&rdrerrange)invalidr"s r/;test_arrowdtype_construct_from_string_type_only_one_pyarrowrsI-G % *# 6+ %('*+++s !A  Acrtjddgttj }tjddgd}||z}tjddgttj }t j ||||z}t j ||y) NabcdefgrWrBr?rabcabcrerrr+rrr)binaryrepeatrrreflected_results r/ test_arrow_string_multiplicationrs YYvj.E FF YY2w&6 7F f_Fyy(Bz"))+/FGH68,6#34r1c@tjddgttj }|dz}tjddgttj }t j ||d|z}t j ||y)NrrrWrBrdefgdefgr)rrrrs r/.test_arrow_string_multiplication_scalar_repeatr%su YYvj.E FF aZFyy(J/z"))+7NOH68,6z+X6r1 interpolation)linearrhighernearestmidpointquantiler=c|jj}|jgd}tj|}t j j|s>t j j|st j j|rDd}tjt j|5|j||dddyt j j|s>t j j|st j j!|rnut j j#|j$j&rnA|j)tj*j-t jd||jgd}tj|}|j||}t j j/|r|dvr|j0rd|j2d |j0d }nd|j2d }|j5|} | j||} |d k(r)|j2d k(r| j7d } || k(sJy|j2d k(r| j8j;d } t=j>|| j5|jy|d k(r ||dk(sJytj|jddgd d g} t j j|s>t j j|st j j!|r"| j5d} |j5d}t=j>|| y#1swYyxYw)Nrrrz=Function 'quantile' has no kernel matching input types \(.*\)r)qrz&quantile not supported by pyarrow for r%)rrzM8[z, rvr=rAF)warnrrDr ) r7r5takererr+rXrbrcrYr(r&rrrrZr]rrrkr-r)r*r_rrFr to_pydatetimedtfloorrr) rhrrr.rgrr"rpd_dtypeser_nprs r/ test_quantiler.s zz''H 99Y D ))D/C 8$ 88  h ' 88  x (O ]]266c B B LL8=L A B H% 88   ) 88  x (   dnn11 2  KK  22?zJ   99Y D ))D/C \\HM\ BF xxX&=@S+S ;;X]]O2hkk]!> ) )$ // / %D "#A tWFD!"H68,r1c |jj}tjj |s>tjj |stjj |rt|sJyt|rJyr)r7r5r+rXrZrr]rrhrs r/test_is_numeric_dtyper-sfjj&&G W% 88  w ' 88  w '%%%#D))))r1c|jj}tjj |rt |sJyt |rJyr)r7r5r+rXrrr,s r/test_is_integer_dtyper/sBjj&&G xx7#%%%#D))))r1c|jj}tjj |rt |sJyt |rJyr)r7r5r+rXr[rr,s r/test_is_signed_integer_dtyper1sBjj&&G xx!!'*&t,,,*40000r1c|jj}tjj |rt |sJyt |rJyr)r7r5r+rXr\rr,s r/test_is_unsigned_integer_dtyper3sBjj&&G xx##G,(...,T2222r1c|jj}tjj |rt |sJyt |rJyr)r7r5r+rXrZrr,s r/test_is_float_dtyper5sBjj&&G xxG$d###!$''''r1ctj|}|jd}tj|}tj|}t |t |kDsJtj |}tj||tj |}tj||y)NrB) rerheadpickledumpsrloadsrr)rhrexpected_sliced full_pickledsliced_pickledr result_sliceds r/test_pickle_roundtripr?syyHmmA&O<<)L\\/2N | s>2 22 2 \\, 'F68,LL0M=/:r1c|jjj}|j|j}t |jt rJt |jt sJtj||yr) r to_pandasrfrr7rrrr)rhpd_arrayrs r/test_astype_from_non_pyarrowrCsd~~'')//H __TZZ (F(..*55 5 fllJ // /##FD1r1ctjdg}|jd}tjdgd}tj||y)N1.0r r;rWrerrrrrrrs r/&test_astype_float_from_non_pyarrow_strrHsD ))UG C ZZ* +Fyy#&89H68,r1ctjddgid}|jdd}tj||y)Ncoli@frrWfloat[pyarrow]r)errors)rerHrrrL)rrs r/test_astype_errors_ignorerMs=||UXJ/7GHH __-h_ ?F&(+r1c|j}|jj}tjj |stjj |rtjdn]tjj|rtjt|}ntj|j}|jrPt|js;j!t"}t$j&|t%j(|<t+j,|y)Nz Tested in test_to_numpy_temporal)rrrkr+rXr`r_r(rr^rrflist_hasnarr7rrrerr5rr)rhrrrs r/test_to_numpy_with_defaultsrQ s ]]_Fnn!!G xxG$(=(=g(F 67   ' "88DJ'88DNN+ {{+DJJ7??6*"$%%1r1cddg}tj|d}|j}tjdtjg}t |dt sJtj||y)Nr>rrWr) rerfrrrrfloatrr)rhrrrs r/test_to_numpy_int_with_narTsa t9D ((4/ 0C \\^FxxBFF $H fQi '' '1r1z na_val, exp)r>r>ctjtjtjgd}|jd|}t j|gdzd}t j ||y)N null[pyarrow]rWrrrBrerfrrrrr)na_valrrrrs r/test_to_numpy_null_arrayrY&sX ((BEE255> 9C \\ F\ ;Fxx 3H1r1ctjtjtjgd}|jd}t jtjgdzd}t j ||y)NrVrWrBrrWrrrs r/!test_to_numpy_null_array_no_dtyper\/sX ((BEE255> 9C \\\ %Fxx! 84H1r1ctjdtjgd}|jd}t jddgtj }t j||tjdtjgd}|jd}t jddgtj}t j||y) NTrprWF)rr;rr<) rerfrrrrrrfloat32r[s r/test_to_numpy_without_dtyper_7s ((D"%%=(: ;C \\5\ )Fxxu RXX6H1 ((C<'9 :C \\3\ 'Fxxc "**5H1r1c|j}|j}|d|ddtj|dgt|z|j}t j |||j}|ddd|dd|ddd}t j |||j}|j|dd|}t j ||y)NrrWr@)copyr"rlrr7rrtolist)rhorigrrs r/test_setitem_null_slicerdDs 99;D YY[FQF1I"11 a CIjjH##FH5 YY[FTrT F1IDbDzH##FH5 YY[F F1IH##FH5r1c|jj}tjj |stjj |r d}t }d}n|tjj|s>tjj|stjj|rd}tj}d}n d}t }d}tj||5||dddddy#1swYyxYw)N{zInvalid value '123' for dtypefoozCould not convertzInvalid value 'foo' for dtyper) rrkr+rXrbrcrrrZrYr,r(r&)rhr fill_valueerrr"s r/test_setitem_invalid_dtyperj[snn!!G xx'"bhh&8&8&A - G$ 88   ( 88  w ' oo! - s# &Qs 3DD ctjtjdtjdgtj }|j tj t tjij}tjtjdtjdgt tj}tj||y)Nz 2019-12-31rk types_mapperrW) r+rfre Timestampdate32rArdate64getrrr) date_arrayrrs r/&test_from_arrow_respecting_given_dtypertrs l #R\\,%?@ryy{J ! !iik:biik#:;??"Fyy l #R\\,%?@%H68,r1c`tjddgtj}tjtj 5|j tjttjijdddy#1swYyxYw)Nr@rlrm) r+rfrrexternal_error_raisedr,rArrrr)rfs r/-test_from_arrow_respecting_given_dtype_unsaferxss HHc3ZbjjlH 3E ! !"// 2Q bjjlJrxxz4J%K%O%OPQQQs A B$$B-cd}tjdddtjg|}|jd}tjdddtjg|}t j ||tjd tjd g|}|jd }tjd tjd g|}t j ||y)Nr r<gGz?g{Gz@rWr>g333333?g@g^@gp= cL@r@g^@gN@)rerrroundrrr7rrrs r/ test_roundr|s E ))S$bee,E :C YYq\Fyy#sC/u=H68, ))UBEE5) 7C YYr]Fyy%-U;H68,r1c|\}}}|jgd}tj|d<|rtj|}d}t j t |5|j|dddy#1swYyxYw)N)rBrr>r@zOsearchsorted requires array to be sorted, which is impossible with NAs present.r)r rerrr(r&rG searchsorted)rz as_seriesrMrqrLrr"s r/ test_searchsorted_with_na_raisesrswGAq!    *CeeCGiin 0 z - s !A<<Bc \tjtjddgttj tj tjddgd}|j}|jddg }tj||y) NrrbrWr>rBrLrMrLrM)by) rerHrrr+ dictionaryint32rra sort_valuesrrL)rMrrs r/test_sort_values_dictionaryrs c *R]]288:ryy{-S"TQ   BwwyH ^^Sz^ *F&(+r1patrz a[a-z]{2}c6tjddgttj }|j j |}tjddgttj}tj||y)NrrWr>) rerrr+rrIrrrr)rrrrs r/test_str_countrsb ))UDMBIIK)@ AC WW]]3 Fyy!T*RXXZ*@AH68,r1ctjddgttj }t j td5|jjdddddy#1swYyxYw)NrrWz count notrr>flags) rerrr+rr(r&rdrIrrs r/ test_str_count_flags_unsupportedrsY ))UDMBIIK)@ AC *+ >&  e1 %&&& A77Bzside, str_funcrrjustrljustbothcenterc^tjddgttj }|j j d|d}tjtd|dddgttj }tj||y)NrLrWr r)widthsidefillchar) rerrr+rrIpadrrr)rstr_funcrrrs r/ test_str_padrs ))S$Kz"))+'> ?C WW[[qtc[ :Fyy h 3 '.j6MH68,r1ctjddgttj }t j td5|jjddddddy#1swYyxYw)NrLrWzInvalid side: foorr rgr) rerrr+rr(r&rGrIrrs r/test_str_pad_invalid_sidersY ))S$Kz"))+'> ?C z)< =#  Auc"###rzpat, case, na, regex, expabFTAbz a[a-z]{1}z A[a-z]{1}c:tjddgttj }|j j ||||}tj|ttj}tj||y)NrrW)casenaregex) rerrr+rrIcontainsrrr)rrrrrrrrs r/test_str_containsrsk ))UDMBIIK)@ AC WW  c5  AFyyJrxxz$:;H68,r1ctjddgttj }t j td5|jjdddddy#1swYyxYw)NrrWz contains notrrLr>r) rerrr+rr(r&rdrIrrs r/#test_str_contains_flags_unsupportedrs\ ))UDMBIIK)@ AC *. A' A&'''rzside, pat, na, exp startswith)TNFrMrendswith)FTFbc)rLeg)TNT)rLrqrr)FNFc8tjgdttj }t |j |||}tj|ttj}tj||y)N)rNefgrW)r rerrr+rrrIrrr)rrrrrrrs r/test_str_start_ends_withrsd ))( 299;0G HC #WSWWd #CB /FyyJrxxz$:;H68,r1r)rrc8tjddgttj }t |j |d}tjddgttj}tj||y)NrWrr)rrrrs r//test_str_starts_ends_with_all_nulls_empty_tuplersi ))T4L 299;(? @C #WSWWd #B 'Fyy$Z -CDH68,r1z arg_name, argreplrrr>ctjddgttj }dddd}|||<t j td5|jjd i|dddy#1swYyxYw) NrrWrMrT)rrrzreplace is not supportedrr) rerrr+rr(r&rdrIreplace)arg_nameargrkwargss r/test_str_replace_unsupportedrss ))UDMBIIK)@ AC# 5FF8 *2L M"!&!"""s BB zpat, repl, n, regex, exprLrr@xbxcxbacz[a-b]xxxcc:tjddgttj }|j j ||||}tj|ttj }tj||y)NabacrW)nr) rerrr+rrIrrr)rrrrrrrrs r/test_str_replacersh ))VTN*RYY[*A BC WW__S$!5_ 9FyyJryy{$;rB) rerrr+rr(r&rdrIrrs r/test_str_repeat_unsupportedr6sY ))UDMBIIK)@ AC */ B 1vrc6tjddgttj }|j j d}tjddgttj }tj||y)NrrWrBr) rerrr+rrIrrrrGs r/test_str_repeatr<sc ))UDMBIIK)@ AC WW^^A Fyy(D)BIIK1HIH68,r1zpat, case, na, expc8tjddgttj }|j j |||}tj|ttj}tj||y)NrrWrr) rerrr+rrIrrrrrrrrrrrs r/test_str_matchrCsf ))UDMBIIK)@ AC WW]]3Tb] 1FyyJrxxz$:;H68,r1TFFNAbc)FFFNabc$zabc\$FTFNzAbc$zAbc\$z (abc)|(abx)z ((abc)|(abx))c8tjgdttj }|j j |||}tj|ttj}tj||y)N)rrz$abcNrWr) rerrr+rrI fullmatchrrrrs r/test_str_fullmatchrUsf, ))1BIIK9P QC WW  s"  5FyyJrxxz$:;H68,r1zsub, start, end, exp, exp_typr ctjddgttj }|j j |||}tj|t|}tj||y)NrrW)startend rerrr+rrIfindrr)subrrrexp_typrrrs r/ test_str_findrqs` ))UDMBIIK)@ AC WW\\#U\ 4FyyJw$78H68,r1c<tjddgttj }|j j ddd}tjddgttj}tj||y)NrrWrMir rrrr> rerrr+rrIrrrrrGs r/test_str_find_negative_startr|sh ))UDMBIIK)@ AC WW\\cA\ 6Fyy!T*RXXZ*@AH68,r1ctjddgttj }|j j dd}tjddgd}tj||y)NrrWrr>)rr@rrrGs r/test_str_find_no_endrs\ ))UDMBIIK)@ AC WW\\$a\ (Fyy"d+;Nr)rr@rr rNr)razabcerLcaacjtjgdttj }|j tj d}|jj|||}|jj|||j |j}tj|||j tj d}|jj|||j |j}tj||y)N)abcaadefrabcdeddefgj8292rrLrrWr?rr!) rerrr+rrrrIrr7rr) rrrru object_seriesrrarrow_str_seriesresult2s r/test_str_find_e2ers =% AHHR^^H=>M UUZZUC (F  %%c5#6==fllKH68,xxy AB""''UC8?? MG7H-r1c<tjddgttj }|j j ddd}tjddgttj}tj||y)NrrWrrrrr@rrGs r/2test_str_find_negative_start_negative_end_no_matchrsi ))Y%Z -D EC WW\\c\ 4Fyy"d:bhhj+ABH68,r1zi, exp)rMrN)rqrNrB)rqNNr)rLNNrc2tjgdttj }|j j |}tj|ttj }tj||y)N)rdeNrW) rerrr+rrIrrrr)r rrrrs r/ test_str_getrs\ ))'z"))+/F GC WW[[^FyyJryy{$;valrrrs r/test_str_stripr@1si ))S$Kz"))+'> ?C %WSWWf %x 8Fyy%j.EFH68,r1r?abc123c6tj|dgttj }|j j d}tjddgttj }tj||yNrWrr) rerrr+rrI removesuffixrrr?rrrs r/test_str_removesuffixrFCd ))S$Kz"))+'> ?C WW ! !% (Fyy%j.EFH68,r1123abcc6tj|dgttj }|j j d}tjddgttj }tj||yrC) rerrr+rrI removeprefixrrrEs r/test_str_removeprefixrKKrGr1rLrstrictz encoding, exputf8sabcutf32sabcc8tjddgttj }|j j ||}tj|dgttj}tj||yNrrW) rerrr+rrIencoderrr)rLencodingrrrrs r/test_str_encoderSSsf ))UDMBIIK)@ AC WW^^Hf -Fyy#tJryy{,CDH68,r1c dtjgdttj }|j j d|}tjdggdgttjtj }tj||y)N)rrNrWrMr) rerrr+rrIfindalllist_rr)rrrrs r/test_str_findallrWbsq ))( 299;0G HC WW__S_ .Fyy3%T**RXXbiik=R2STH68,r1r4rDrindexz start, endctjddgttj }t |j |d||}tjddgttj}tj||tjtd5t |j |d||dddy#1swYyxYw)NabcbarWrqrBzsubstring not foundrrg) rerrr+rrrIrrrr(r&rG)r4rrrrrs r/test_str_r_indexr[js ))WdO:biik+B CC %WSWWf %c5# 6Fyy!T*RXXZ*@AH68, z)> ?4  s3444s 8C  C)formNFCNFKCctjddgttj }|j j |}|j}tj||yrP) rerrr+rrI normalizerarr)r\rrrs r/test_str_normalizera|sP ))UDMBIIK)@ AC WW  t $FxxzH68,r1c:tjgdttj }|j j d||}tjgdttj}tj||y)N)rZrgNrWrq)rBr@N) rerrr+rrIrfindrrr)rrrrrs r/test_str_rfindrdsa ))**RYY[2I JC WW]]3s +Fyyj.DEH68,r1c:tjddgttj }|j j ddi}tjddgttj }tj||y)NrZrWarMbbcbb) rerrr+rrI translaterrrGs r/test_str_translaterish ))WdO:biik+B CC WW  Cy )Fyy'4 299;0GHH68,r1c6tjddgttj }|j j d}tjddgttj }tj||y)NrZrWr zabc ba) rerrr+rrIwraprrrGs r/ test_str_wraprlsb ))WdO:biik+B CC WW\\!_Fyy)T**RYY[2IJH68,r1cHtjgdttj }|j j }tjgdgdgdgttjgd}tj||y)N)za|bNza|crW)TTFrr%)rLrMrq)r7rx) rerrr+rrI get_dummiesrHrrrLrGs r/test_get_dummiesrosm ))( 299;0G HC WW "F|| 35HI$H &(+r1ctjddgttj }|j j d}tjgdgdgttj }tj|||j j dd}tjttjgddg}tj|||j jd}tjgdgdgttj }tj|||j jdd}tjttjgddg}tj||y) NrZrWrM)rLrMcbarFexpand)rrMrL)rerrr+rrI partitionrHrrLr"rfr rpartitionrGs r/test_str_partitionrvsM ))WdO:biik+B CC WW  s #F|| ./z"))+7NH&(+ WW  s5  1Fyy,RXX7H$6O-PQRH68, WW   $F|| ./z"))+7NH&(+ WW  E  2Fyy,RXX7H$6O-PQRH68,r1rsplitsplitc8tjddgttj }t |j |}tjttjgddg}tj||y)Nza1 cbc brW)a1cbcrM) rerrr+rrrIr"rfrrr4rrrs r/test_str_split_pat_noner}sl ))[$'z"))+/F GC %WSWWf % 'Fyy,RXX7I46P-QRSH68,r1c tjgdttj }|j j d}tjttjgdgddg}tj|||j j dd}tjttjdd gd d gdg}tj|||j j d d }tjttjddgddgdg}tj|||j j d d d }tjttjgdttjgdd}tj|||j j dd }tjttjgdttjgdd}tj||y)Na1cbcba2cbcbNrWrqrzrMrMa2rMrMr>rrzbcbrz[1-2]T)rrLcbcb)rrs)rLrLN)rrNrr>rCrrrLrNrNN) rerrr+rrIrxr"rfrrrHrLrGs r/test_str_splitrs )).j6M NC WW]]3 FyyBHH&68H$%OPQH68, WW]]3!] $FyyBHHtUmdE]D%IJKH68, WW]]7$] /FyyBHHsFmc6]D%IJKH68, WW]]7$t] "288,B#CD H &(+ WW]]3t] ,F||"288,A#BC"288,@#AB H &(+r1c 2tjgdttj }|j j d}tjttjgdgddg}tj|||j j dd}tjttjdd gd d gdg}tj|||j j ddd }tjttjgd ttjgdd}tj|||j j dd }tjttjgdttjgdd}tj||y)NrrWrqrrr>ra1cbrMa2cbT)rrs)rrN)rMrMNrrCrrrr) rerrr+rrIrwr"rfrrrHrLrGs r/test_str_rsplitrs )).j6M NC WW^^C FyyBHH&68H$%OPQH68, WW^^C1^ %FyyBHHvsmfc]D%IJKH68, WW^^C1T^ 2F||"288,B#CD"288,<#=> H &(+ WW^^C^ -F||"288,A#BC"288,@#AB H &(+r1ctjgdttj }t j td5|jjddddy#1swYyxYw)Nrzb2c3rWz*pat=.* must contain a symbolic group name.rz[ab](\d)) rerrr+rr(r&rGrIextractrs r/test_str_extract_non_symbolicr sR ))&j.E FC z)U V%  $%%%s A55A>rsc ztjgdttj }|j j d|}tjttjgdttjgdd}tj||y)NrrWz(?P[ab])(?P\d)rr)rLrMNrCrNN)letterdigit) rerrr+rrIrrHr"rfrrL)rsrrrs r/test_str_extractr s~ ))&j.E FC WW__=f_ MF||)"((3C*DE(2B)CD H &(+r1c  tjgdttj }|j j dd}tjdttjgdi}tj|||j j dd}tjttjgdd }tj||y) NrrWz[ab](?P\d)TrrrrFr) rerrr+rrIrrHr"rfrrLrrGs r/test_str_extract_expandr( s ))&j.E FC WW__1$_ ?F|| (2B)CD H &(+ WW__1%_ @Fyy,RXX6F-GHwWH68,r1rF)rBrArtrucddg}tj|}tj||}ttj ddg|}t j ||y)N1000NaTrWrl)r+durationr"rrfrr)rFstringsrrrs r/#test_duration_from_strings_with_natr7 sXuoGkk$G : :7' RF"288T4Lw8#GHH##FH5r1c|jj}tjj |sDt j td5tj|jdddyy#1swYyxYw)Nz2Can only use .dt accessor with datetimelike valuesr) r7r5r+rXrr(r&AttributeErrorrerr rs r/test_unsupported_dtrA sgzz''H 88   ) ]] "V   IIdO     *  s  A;;Bzprop, expectedyearday day_of_week dayofweekweekday day_of_year dayofyearhourminute is_leap_year microsecondrKmonth nanosecondrquartersecondrxrrc tjtjdddddddd dgttj d  }t |j|}d}t|trtj}n%t|trtjd }tjttj|dg| }tj ||y) Nrr>rBr r9rxrKr)rrrrrrrrrBrWrl)rerrorr+rrr rrrprtime64r"rfrr)proprrrexp_types r/test_dt_propertiesrJ s. )) LL   d+, C SVVT "FH(D!99; Hd #99T?yy,RXXx6FXX-VWXH68,r1c @tjtddddtddddtdddddgttj d }|j j}tjgd ttj }tj|||j j}tjgd ttj }tj||y) NrrGrBr rrrrr>rHrArWrFFTN) rerrrr+rr is_month_startrrr is_month_endrGs r/test_dt_is_month_start_endr{ s )) $baa 8 $aQQ 7 $aRa 8   d+, CVV " "Fyy3:bhhj;QRH68, VV Fyy3:bhhj;QRH68,r1c @tjtddddtddddtdddddgttj d}|j j}tjgd ttj}tj|||j j}tjgd ttj}tj||y) NrrGrHr rr>rArWrr) rerrrr+rr  is_year_startrrr is_year_endrGs r/test_dt_is_year_start_endr s )) $bbq 9 $aQQ 7 $aRa 8   d+, CVV ! !Fyy3:bhhj;QRH68, VV  Fyy3:bhhj;QRH68,r1c @tjtddddtddddtdddddgttj d }|j j}tjgd ttj }tj|||j j}tjgd ttj }tj||y) Nr r rr>rHrArWrr) rerrrr+rr is_quarter_startrrris_quarter_endrGs r/test_dt_is_quarter_start_endr s )) $bbq 9 $aQQ 7 $aRa 8   d+, CVV $ $Fyy3:bhhj;QRH68, VV " "Fyy3:bhhj;QRH68,r1 days_in_month daysinmonthc tjtddddtddddtdddddgttj d }t |j|}tjgd ttj }tj||y) Nrr rrr9r>rBrArW)rHrN) rerrrr+rrr rrrr|s r/test_dt_days_in_monthr s )) $aRa 8 $aQQ 7 $aQQ 7   d+, CSVVV $Fyy+:bhhj3IJH68,r1c tjtdddtddddtdddd d d dgttj d  }|j j}tjtdddtdddtddddgttj d  }tj||y)Nrr rrrrr9r>rrB;)rrrrrrrArW) rerrrr+rr r`rrrGs r/test_dt_normalizer s )) $aR 0 $aQQ 7 $aQR2 N   d+, CVV   Fyy $aR 0 $aQ / $aQ /   d+,H68,r1rArBc tjtdddddgttj |}|j j|k(sJ|j j}tjttjtdddgtj|}tj||y) Nrr>rBr rrWrrl)rerrrr+rr rFrr"rfrrrrFrrrs r/test_dt_time_preserve_unitr s )) t1!! 4d;d+, C 66;;$   VV[[FyyBHHd1aj$%7biioHNOH68,r1r)Nr US/Pacificc tjtdddddgttj d|}|j j}|tj|k(sJy) Nrr>rBr rrBrrW) rerrrr+rr rr maybe_get_tz)rrrs r/ test_dt_tzr s` )) t1!! 4d;dr23 CVVYYF Y++B/ // /r1c(tjtdddddgttj d}|j j}tjgdgd ggd d }tj||y) Nrr>rBr rrBrW)rr>r>r)rweekrrrxr7) rerrrr+rr  isocalendarrHrrLrGs r/test_dt_isocalendarr sv )) t1!! 4d;d+, CVV   !F|| y!'H &(+r1day_nameSunday month_nameJanuarycdt|tjtddddgt t j d}t|j|}tj|dgt t j}tj||y)Nrr>rtrW) r0rerrrr+rrr rrr)r4rr.rrrs r/test_dt_day_month_namer s} w' ))XdAq)40 2<rBr rrBrWz%Y-%m-%dT%H:%M:%Sz2023-01-02T03:00:00.000000000) r0rerrrr+rr strftimerrr)r.rrrs r/test_dt_strftimer sw' )) t1!! 4d;d+, CVV__0 1Fyy ($/z"))+7NH68,r1)ceilr rzctjtdddddgttj d}t jtd 5t|j|d d dddt jtd 5t|j|d d dddy#1swYLxYw#1swYyxYw)Nrr>rBr rrBrWzambiguous is not supported.r1hr ambiguousznonexistent is not supported. nonexistent) rerrrr+rr(r&rdrr r4rs r/*test_dt_roundlike_tz_options_not_supportedr s )) t1!! 4d;d+, C *2O P767 *2Q R9%8997799sC CCCctjtdddddgttj d}t jtd 5t|j|d dddt jtd 5t|j|ddddy#1swYJxYw#1swYyxYw) Nrr>rBr rrBrWzfreq='1B' is not supportedr1Bz$Must specify a valid frequency: None) rerrrr+rr(r&rGrr rs r/"test_dt_roundlike_unsupported_freqr* s )) t1!! 4d;d+, C z)E F&%& z)O P&%&&&&&&sCCC Cfreq)DhrrurtrArBcjtjtddddg}ttj d}t |j|d|j|}t |j|j|d|}tj||y)Nrr>rrBrC) rerrrr+rrr rrr)rr4rrgrrs r/test_dt_ceil_year_floorr7 s )) t1! ,d3 C",,t,-H&wsvvv&4&z299(CH 5WSZZ),,f 5$j AF68,r1ctdddtdddg}tj|ttj d}d}t jt|5|jj}dddtj|t}t j|td|DsJd }t jt|5|j!d jj}dddt j||y#1swYxYw#1swY,xYw) NrEr>rrBrWCThe behavior of ArrowTemporalProperties.to_pydatetime is deprecatedrc3>K|]}t|tuywr)rkr.0ress r/ z(test_dt_to_pydatetime..M s7tCyH$7z>The behavior of DatetimeProperties.to_pydatetime is deprecateddatetime64[ns])rrerrr+rrrR FutureWarningr r rrfrrrr)rhrr"rrs r/test_dt_to_pydatetimerC s T1a (4A"6 7D ))D 2<<+= > ?C OC # #M =(%%'(xxF+H1 77 77 7 JC # #M =C::./22@@BC1((CCs+D90*E9EE date_typer@c tjtdddgtt t d|}d}t jt|5tjtd5|jjddddddy#1swYxYw#1swYyxYw) NrErGrHrrWrrz#to_pydatetime cannot be called with)rerrrrr+rrRrr(r&rGr r )r rr"s r/ test_dt_to_pydatetime_date_errorr U s )) dB 8tI;%78:; C PC # #M =# ]]:-R S # FF " ### # ###s$ B4<B(B4(B1 -B44B=ctjtdddddgttj d}t jtd 5|jjd d dddt jtd 5|jjd d dddy#1swYKxYw#1swYyxYw)Nrr>rBr rrBrWz ambiguous='NaT' is not supportedrrrrz"nonexistent='NaT' is not supportedr) rerrrr+rr(r&rdr  tz_localizers r/*test_dt_tz_localize_unsupported_tz_optionsrb s )) t1!! 4d;d+, C *2T U3 5E23 *2V W5 5e4553355sCCCCc rtjtdddddgttj dd }|j jd}tjtdddddgttj d }tj||y) Nrr>rBr rrBrrrW) rerrrr+rr rrrrGs r/test_dt_tz_localize_nonern s )) t1!! 4d;d|<= CVV   %Fyy t1!! 4d;d+,H68,r1ct|tjtdddddgt t j |}|jjd}t jtdddddgt j |}t jj|d}tjt|}tj||y) Nrr>rBr rrWrrlr0rerrrr+rr rrfcomputeassume_timezoner"rr)rFr.rrexp_datars r/test_dt_tz_localizer{ sw' )) t1!! 4d;d+, CVV   -Fxx t1!! 4d;",,tBTHzz))(LAHyy,X67H68,r1znonexistent, exp_date shift_forwardrGrshift_backwardz2023-03-12 01:59:59.999999999c t|tjtddddddgt t j d}|jjd | }t j|dgt j d }t jj|d }tjt|}tj||y) Nrr rGrBr)rrrrrrBrWrrrlr)rexp_dater.rrrrs r/test_dt_tz_localize_nonexistentr sw' )) t1"1R @$Gd+, CVV   +  FFxx4(r||D/AxBHzz))(LAHyy,X67H68,r1ctjtdddddgttj d}t jtd 5|jjd dddy#1swYyxYw) Nrr>rBr rrBrWz"Cannot convert tz-naive timestampsrr) rerrrr+rr(r&rr  tz_convertrs r/ test_dt_tz_convert_not_tz_raisesr sl )) t1!! 4d;d+, C y(L M! % !!!s BB c ptjtdddddgttj dd}|j jd}tjtdddddgttj d}tj||y) Nrr>rBr rrBrrW rerrrr+rr rrrrGs r/test_dt_tz_convert_noner" s )) t1!! 4d;dL9: CVV  t $Fyy t1!! 4d;d+,H68,r1c rtjtdddddgttj |d}|j jd}tjtdddddgttj |d}tj||y) Nrr>rBr rrrWz US/Easternr!rs r/test_dt_tz_convertr$ s )) t1!! 4d;dL9: CVV  | ,Fyy t1!! 4d;dL9:H68,r1r7ztimestamp[ms][pyarrow]zduration[ms][pyarrow]ctjddg|}|jjd}|j |j dd}t j||y)NrrWrBrt)rerr as_unitrrrrr{s r/ test_as_unitr' sS ))T4L .C VV^^D !Fzz%--d34H68,r1daysseconds microseconds nanosecondsc tjtjdddddgttj d}t |j|}tjttj|dgtj}tj||y) Nr>rBr r9r(r)r*r+rBrWrl) rer Timedeltarr+rrr r"rfrrr)rrrrs r/test_dt_timedelta_propertiesr/ s )) LL    T*+ CSVVT "FyyBHHh%5BHHJHGHH68,r1c tjtjdddddgttj d}|j j}tjttjddgtj }tj||y) Nr>rBr r9r-rBrWgN% @rl) rerr.rr+rr  total_secondsr"rfrrrrGs r/test_dt_timedelta_total_secondsr2 s )) LL    T*+ CVV ! ! #FyyBHHlD%9 HMNH68,r1ctdddtdddg}tj|ttj d}|j j}tj|t}tj||td|DsJ|jdj j}tj||y) Nr>rBr r9rBrWc3>K|]}t|tuywr)rkrrs r/rz)test_dt_to_pytimedelta.. s8#tCyI%8rtimedelta64[ns])rrerrr+rr to_pytimedeltarrfrrrrrrhrrrs r/test_dt_to_pytimedeltar8 s aA  !Q 2 3D ))D 2;;t+< = >C VV " " $FxxF+H1 88 88 8zz+,//>>@H1r1c4tjtjdddddgttj d}|j j}tjgdgd ggd d }tj||y) Nr>rBr r9r-rBrW)r>rrrBrr r9)NNNNNNN)r(hoursminutesr) millisecondsr*r+rr) rerr.rr+rr  componentsrHrrLrGs r/test_dt_componentsr> s )) LL    T*+ CVV  F||  JK  H&(+r1rctjdgd}t|||}|r|dk(}ntj}||usJy)Nr rWrr)rerrr)rrrrrs r/#test_boolean_reduce_series_all_nullr@. sO ))TF"4 5C 1WS0 1 @F )U255 X  r1cgd}gd}dg}||z|z}dgt|zdgt|zzdgt|zz}tj|tj }t j |d}tj||ddg}tjtjd 5tj|tj dddy#1swYyxYw) N)trueTRUETruerCrE)falseFALSEFalse0rDTFrWrprDrgzFailed to parser) rr"rr+rrerfrrr(r&r,) true_strings false_stringsnullsrboolsrrs r/%test_from_sequence_of_strings_booleanrM: s7L;M FE]*U2G \""eWs=/A%AATFSQVZDWW ! : :7"((* UFxx%78H##FH5uoG r.? @Q55gRXXZPQQQs *C55C>ctjg|}|j}tj|t j gtj g}tj||yr) rerraconcatrrfrrr)r7rrrs r/%test_concat_empty_arrow_backed_seriesrPL sR ))Be $CxxzH YYBHHRrxx89: ;F68,r1rzstring[pyarrow]ctjdj}tj||}tjt ||}t j||y)Nzthe quick brown foxrW)r+rfrxrerr"rr)r7rrrs r/test_series_from_string_arrayrRT sP (((..0 1C ))Cu %Cyy,S1?H3)r1ceZdZfdZxZS)OldArrowExtensionArraycLt|}|jd|d<|S)Nr_data)r __getstate__pop)rstaters r/rWz#OldArrowExtensionArray.__getstate__^ s'$&;/g r1)rrrrWrrs@r/rTrT] s r1rTc&tjdg}t|}tjtj |}t j|||jtj|k(sJt|drJy)Nr>rV) r+rfrTr8r:r9rrr chunked_arrayhasattr)rhrrs r/#test_pickle_old_arrowextensionarrayr]d st 88QC=D%d+H \\&,,x0 1F##FH5   r//5 55 5vw'' ''r1c6d}ttjtj|ftj g}|j }d|tj|ftj <|j|jk(sJy)Nih6rWF) r"r+r[ronesrrazerosr)Nrrs r//test_setitem_boolean_replace_with_mask_segfaultrbm snA b..BHH0M/NO PCxxzH*/C!RXX&' ==H.. .. .r1zdata, arrow_dtyperQrRct|}tjtj||}tj||}t j ||yr)rrerfrrr)rhr!r7rrs r/-test_conversion_large_dtypes_from_numpy_arrayrdv sF { #E XXbhhtnE 2FxxE*H##FH5r1c:tjdddgittj }tjdddgid}tj ||gd}tjdgdid}t j||y) NrLrWrr>rT) ignore_index)NNrr>)rerHrr+nullrOrrL)rMdf2rrs r/test_concat_null_arrayri sz sT4L)BGGI1F GB ,,aV},< =C YYCyt 4F||S"45=MNH&(+r1ctjgdt|}|j}tjgdttj gd}t j||y)Nr>rBr rW)r rBr>r>rg@rvr rrrr25%50%75%rr7rD)rerrdescriber+rrrrrhrrs r/test_describe_numeric_datars sX 99Yj&9 :D ]]_Fyy&&IH 68,r1cFtjtddt|}|j }tjdgtj gd|j jztgd}tj||y) Nr>rJrW )rKrBr>r rKrxrurFrlrp) rerrrrq to_timedeltarFrbrrrrrs r/test_describe_timedelta_datarx ss 99U1b\G)< =D ]]_Fyy boo3',,GNNPPIH 68,r1c btjtddt|}|j }tjdgdDcgc].}tj ||j |j0c}ztgd}tj||ycc}w) Nr>rJrWru)rKr>r rKrxru)rrF)rrrrmrnrorrp) rerrrrqrorrFrrr)rrhrvrs r/test_describe_datetime_datar{ s 99U1b\G)< =D ]]_Fyy (  LLwzz =  BH68, s3B, cgd}tj|t|}|jd}|d}||k(sJy)NrkrWg?r)rerrr)rrhrrrs r/test_quantile_temporalr} sC D ))D 7 3 4C \\# F1vH X  r1ctjtjdgtj }t j |t|j}t|dk(sJy)Nz 2020-01-01rlrWz+0 2020-01-01 dtype: date32[day][pyarrow]) r+rfr fromisoformatrprerrrkrepr)arrow_dtrs r/test_date32_reprr sTxx++L9:xMH ))HJx}}$= >C 9F FF Fr1ctjddg}tjddg}tj|t t j d}tj|t t jd}||z}tjddgt t j d}tj||y)Nr>rBrWrB) re to_datetimerwrrr+rrrr)data_tsdata_tdser_tsser_tdrrs r/2test_duration_overflow_from_ndarray_containing_natr snnaY'Gooq$i(G YYwjd1C&D EF YYwjT1B&C DF f_Fyy!T*R\\$5G*HIH68,r1ctj|}|dk7sJ|jr5|dvr1tjj d}|j ||tjt|dk(sJy)Nz unknown-array)floating datetime64 timedelta64zfin infer_dtype pd.NA is not ignored in these cases even with skipna=True in the list(data) check belowrTr)r infer_dtyperPr(r)r*r-rO)rhr.rr)s r/test_infer_dtype_pyarrow_dtyper sy //$ C / !! ! {{sGG{{  B!  D! #//$t*T: :: :r1cd}|j}tjj|r(t j ||j |g}n2t j|||jj |g}tj||}ttj|g|}tj||y)Nr rvrFrrWrl)rFr+rXr`rer.r&rorr"rlrfrr)rr?rFseqrrs r/test_from_sequence_temporalr s C <rvrrkrl)r>r>r>)rFr+rXr`rer.r&rorr"rfrarrrrFr?rrrs r/test_setitem_temporalr s <rv)rr>rB) r"r+rfrFrer.r&rr)rr.rrFrrs r/test_arithmetic_temporalr sk bhhywh? @C <rvrrkrl)FTT)rFr+rXr`rer.r&rorr"rfrrrrs r/test_comparison_temporalr s <rBrvr) r"r+rfrXr`rer.rFr&rrorrrrrs r/test_getitem_temporalr& s bhhywh? @C VF xxG$<< 5==gllK&",,///<< DLL LL &",,/// ;;(-- '' ' X  r1cttjddg|}t|}tjj |rit jd|jj|jt jg}t|dt jsvJt jd|j|jj|jt jg}t|dt jsJ|dj|djk(sJ||k(sJy)Nr>rlrvrr)r"r+rfrOrXr`rer.rFr&rrrorrs r/test_iter_temporalr9 s bhh4ywh? @C #YF xxG$ LL . 6 6w|| D EE &)R\\222 LL'** = E Egll S EE &)R\\222 !9>>Xa[-- -- - X  r1ctj|ddgd}|jdj}tjddgdd d g }t j ||y) Nr )rLrLrMr r)levelrBr>rrLrMrp)rergroupbysizerrr7s r/'test_groupby_series_size_returns_pa_intrP s\ ))D!HO 4C [[q[ ! & & (Fyy!Q'7SzJH68,r1cttjddg|}|j|}tjj |r;t jd|jj|j}nEt jd|j|jj|j}|tk(s+tjj|rq|je|tk(rt j}nt j}t!j||gt}|dj|jk(s}J|j#j%d|j}|j}t!j||g}t!j&|dd|jk(sJt)j*||y)Nr>rlrWrvrrnat)r"r+rfrrXr`rer.rFr&rorrr_rrrto_pandas_dtyperk datetime_datarr)rr7rrr,rrs r/test_to_numpy_temporalrX sh bhh4ywh? @C \\\ &F xxG$ QW\\2::7<<H QW\\gjjAII',,W 288009gjj>T F?BB88UBKv6ay~~+++  $ $ & + +E7<< @ 88UBK(q *1-===1r1c tjddg||d}|jdj}tjddggtjdgdddgd}t j ||y) Nr>)rsrtrursrrtrur)rDrxr7)rerHrrIndexrrL)rmrMrrs r/%test_groupby_count_return_arrow_dtyperu st QFLI JB ZZ_ " " $F|| Qhhs%c  H &(+r1c tjddgddggttj tj d}|j j}|tk(sJy)Nr>rBr r9) list_sizerW) rerrr+rVrr7rkrO)rrs r/test_fixed_size_listr sU )) Q!Q 288BHHJ!8+L M CYY^^F T>>r1c tjtjdddgtt d}t |}d}||k(sJy)N2012r )rVrJrrz# col 0 15340 1 15341 2 15342)rerH period_rangerr#r)rMrrs r/'test_arrowextensiondtype_dataframe_reprr sP  *-. B "XF8H X  r1ctjddgd}|jdd}tjddgd}tj||y)NrBrrWr )rh)rerpowrr)krrs r/test_pow_missing_operandr sN 1d)#34A UU4AU &Fyy!T*:;H68,r1cNtjddgt|}tjtjddgd|j d}|j |}tjddgt|}tj||y)NrBrWr>r zm8[rv) rerrrrfrFr6rr)rser1rrrs r/test_duration_fillna_numpyr s~ 99dAYj&9 :D 99RXXq!fc',,q,AB CD [[ Fyy!Qz'':;H68,r1ctjdgd}tjdgd}tjtj j d5||kdddy#1swYyxYw)Nlr rWrz Integer valuer)rerr(r&r+r r,rs r/+test_comparison_not_propagating_arrow_errorr s\ 7)#45A 4& 01A rvv**/ B As A//A8ctjtjdgjtjdgjg}t j t |}|j\}}tjddgtj}t jt |j}tj||tj||y)NrLrMrr>rW)r+r[rfdictionary_encodererr" factorizerintprrrrassert_index_equal)rr res_indices res_uniques exp_indicies exp_uniquess r/!test_factorize_chunked_dictionaryr s 3% * * ,bhhuo.O.O.QRH ))'1 2C"}}K88QF"''2L((.x/F/F/HIJK \:+{3r1cVtjtjgdjtjtjgdjg}t j t tj|}|jd}t jgdttj}t j gdt j|}tj||y)N)rLrrqrL)rLrrqcategory)rLrrqrrW)rLrrqrLrLrrq) categories)r+rfrrrerr"r[rrrrCategoricalDtyperr)arrsrrrrs r/"test_dictionary_astype_categoricalr s ./0BBD /*+==? D ))'(8(8(>? @C ZZ #F.j6MNJyy+!!Z8H68,r1ctjdgd}tjdgd}tjdgd}||z}tj||y)NirrWr9r?r)rLrMrrs r/test_arrow_floordivr sT 2$./A 1#-.Ayy"%56H !VF68,r1ctjdgd}tjdgd}|dz}tj||y)Nl^\KrrWl\p/i@Br)rLrrs r/ test_arrow_floordiv_large_valuesr sC &'/?@Ayy-0@AH )^F68,r1rr cjtjdg|}|dz}tj||y)NrWr>r)r7rLrs r/)test_arrow_floordiv_large_integral_resultr s1 $%U3A !VF61%r1ct|}tjdg|}|dz}tjdg|}tj||y)NirWr@)rrerrr)rr7rLrrs r/"test_arrow_floordiv_larger_divisorr sK w E 3%u%A "WFyy"U+H68,r1ctj|jj}t j |gt |}tjtjjd5|dzdddtjtjjd5|dzdddy#1swYGxYw#1swYyxYw)NrWzoverflow|not in rangerr@zdivide by zeror) riinforrrerrr(r&r+r r,)r min_valuerLs r/$test_arrow_floordiv_integral_invalidr s002377I 9+Z%89A rvv**2I J R rvv**2B C Qs>C ;C CCctjdg|}|dz}tjtdg|}tj||y)NrBrWrinf)rerrSrr)r7rLrrs r/&test_arrow_floordiv_floating_0_divisorr sE 1#U#A !VFyy%,u5H68,r1)rrr5ctjddgd}|j|}tjddg|}tj||y)Nr>rrWrFr{s r/(test_astype_int_with_null_to_numpy_dtyper sK ))QI%5 6C ZZ Fyy!T%0H68,r1c tj|jj}t |}t j |g|}t j dg|}||z}tj||y)NrWr>) rrrrrrerrr)r max_valuer7rLrMrs r/)test_arrow_integral_floordiv_large_valuesr sh002377I w E 9+U+A 1#U#A !VF61%r1ctjdg|}tjdg|}tjdgd}||z }tj||y)NrrWrr rr7rLrMrrs r/&test_arrow_true_division_large_divisorr sV 1#U#A $%U3Ayy!$67H UF68,r1ctjdg|}tjdg|}tjdg|}||z}tj||y)NrrWrrrs r/'test_arrow_floor_division_large_divisorr$ sU 1#U#A $%U3Ayy!E*H !VF68,r1c gd}tj|d}tjttj tj |d}t j||y)N)2020-01-01 04:30:00z2020-01-02 00:00:00z2020-01-03 00:00:00timestamp[ns][pyarrow]rWT from_pandas)rerr"r+rfrrr) string_datesrrs r/$test_string_to_datetime_parsing_castr. sVXL YY|+C DFyyBHHR^^L%AtHTUH68,r1z0pairwise_diff_checked not implemented in pyarrowcH|jjstj|}t j d|jd}t jt|5tj|jdddyy#1swYyxYw)NzCannot interpolate with z dtyper) r7rrerreescaper(r&r interpolate)rhrr"s r/test_interpolate_not_numericr8 s{ :: ! !iioii2399+VDE ]]9C 0 * IIdO ' ' ) * * " * *s *$BB!c dg}tj|d}tjttj t ddddgd }t j||y) Nz11:41:43.076160ztime64[us][pyarrow]rWr)+i)Tr)rerr"r+rfrrr) string_timesrrs r/ test_string_to_time_parsing_castrC s^%&L YY|+@ AFyyBHHd2r2u&=%>DHQRH68,r1ctjgdd}|jd}tjddtjgd}t j ||y)Nr(NrKrWrrr)rerrrrrrrGs r/test_to_numpy_floatrM sL ))N*: ;C ZZ "Fyy"b"&&);H68,r1ctjdgd}|jtj}tj dg}t j||y)NrrrWlP)#-/)rerrrrrfrrrGs r/test_to_numpy_timestamp_to_intrU sM ))*+3K LC \\\ )Fxx,-.H1r1ctjgdd}|jdd}tjddtjgd}t j ||y) NrrrWcy)N*rrs r/rz,test_map_numeric_na_action.._ sr1rrgE@r)rerrrrrrrGs r/test_map_numeric_na_actionr] sP ))N*: ;C WW\XW 6Fyy$bff-Y?H68,r1(r __future__rrrrrdecimalrior r rr8rnumpyrr( pandas._libsr pandas._libs.tslibsr pandas.compatr rrrrrrrrpandas.core.dtypes.dtypesrrpandasrepandas._testing_testingrpandas.api.extensionsrpandas.api.typesrrrrrrrpandas.tests.extensionr importorskipr+pandas.core.arrays.arrow.arrayr"(pandas.core.arrays.arrow.extension_typesr#r0fixtureALL_PYARROW_DTYPESrIr7rhrmrorvrzr}rExtensionTestsrrr)rALL_INT_PYARROW_DTYPESrrrrrrrrrrbytes large_binary large_stringrVrrO large_listmap_rstructrdictrr#r*r-r/r1r3r5r?rCrHrMrQrTrrYr\r_rdrjrtrxr|rrrrrrrrrrcompilerrrrrrrrrrrrrskipifrrrr*rr r rrr-r5r7r@rFrKrSrWr[rardrirlrorvr}rrrrrrrrrrrrrrrrrrrrrrr rrrrorrr"r$r'r/r2r8r>r@rMrPrRrTr]rbrdriFLOAT_PYARROW_DTYPESrsTIMEDELTA_PYARROW_DTYPESrxDATETIME_PYARROW_DTYPESr{r}rrrrrrrrrrrrrrrrrrrrrrrrSIGNED_INT_PYARROW_DTYPESrrFLOAT_PYARROW_DTYPES_STR_REPRrrrrrrrrrrrrr1r/r's4 #   )    ,(V#>D "r,,#63738'8'vHH /017A7At      u 1T((u 1p^1^1BB$=$=>-?-0C+57IcC:%67F18F1R1a&!$6#<= }% -  - - e 2  E"  C "((* t$ rxxz "D) bhhj )40 T2779%biik':; PQ--#  udED$<0 tT55$-0 udED$<0 eT4$6 dD$ 6  - -'  tT#67 sE#89 S$ 45 T4!45 .@A _d,>? r4!56 R34  - -!;<-=- ZRZZ_}vuo|L" " c2uvtn- c1efd^, #r4&$0--/& - udT4L) tTE4=) tTE4=) udT4L) eTD$<0 dD5$-0  - - t78 d78 tT67 ud78 eT#=> dD"=> 89 5$ :; t89 4:; d$>? $&@A *-+*-# AtaY +dAq1d)RXXZ-PQ- -----!O";< 9: >? .@;= .-       - - J - -- q$t % q!dD\" Aq4, tR&$( -- AsVTN# q#t}% q$t %-- ! !!" !"#%& !%.-/.- y! ) Y ) ) Y  - --     - -5 12-3-5 12-3-Hh#78  LM-9-1a&)-*-GX#67 D A484%1-2- D A----,-.Hg#67-8-%,P,D% D%=1 ,2 , -!896:6    a A  a  1   ! q A 1 dAq!" aAq!"#,--,-6-&-&-&O]#CD -E --.$. -/ -:;0<0 ,Z*\9,EF-- -#=> 9? 9#=> &? &!IJ#=>-?K-2$r2h/ #0 # 5 -$. -/ -  (A2AFG <2<<(GHI - -! -$. -/ -#;=T"UV-W-  A   --*-* 2,>D%=12Q$-8->"?@*A*0(/ r() sR__&'66,B$=$=@W@W$WX -Y -B$?$?@ -A -B$>$>? -@ -  r))B,G,GGG- ; r))B,G,GG 6 6 r))B,G,GG 6 6  r))B,G,GG66 r))B,G,GG 6 6 r))B,G,GG    r))B,G,GG(- r))B,G,GGT4.12222 , -B$?$?@-A- 4 - --#35F"GH&I&B$@$@A-B-B$@$@AB""B"BC-D-"RS-T-B$=$=>&?&#35F"GH-I-#35F"GH-I--!S**--2-r1