
    ]j                   *   d Z ddlmZ ddlmZmZmZmZ ddlmZ ddl	m
Z
mZ ddlZddlZddlZddlZddlZddlZddlmZ ddlmZ dd	lmZmZmZmZmZmZmZ dd
lm Z  ddl!m"Z" ddl#m$Z$ ddl%m&Z&m'Z' ddl(Z)ddl*m+Z, ddl-m.Z. ddl/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7 ddl8m9Z9  ejt                  d      Z;ddl<m=Z= ddl>m?Z? d Z@ ej                  e,j                  eC      d        ZDej                  d        ZEej                  d        ZF ej                  ddg      d        ZGej                  d        ZHej                  d        ZIej                  d        ZJej                  d         ZK G d! d"e9j                        ZM G d# d$      ZNej                  j                  d%e,j                        d&        ZRd' ZSd( ZTd) ZUd* ZVd+ ZWd, ZXej                  j                  d-e;j                         e;j                         g      d.        Z[ej                  j                  d/g d0      ej                  j                  d1d2d2d2gg      d3               Z\ej                  j                  d4g d5d6dggg d7dgggd8d9g:      d;        Z]d< Z^ej                  j                  d=e;j                         e`ge;j                  d>      e`ge;j                         e`ge;j                         eCge;j                  e;j                               edge;j                  e;j                               edge;j                  e;j                         e;j                               edge;j                  d?e;j                         fd@e;j                         fg      eige;j                  e;j                         e;j                               e'gg	      dA        ZkdB ZldC ZmdD ZndE ZodF ZpdG ZqdH ZrdI ZsdJ ZtdK ZudL ZvdM ZwdN Zxej                  j                  dOej\                  ej                  fdPg      dQ        ZzdR Z{dS Z|dT Z}dU Z~dV ZdW ZdX ZdY ZdZ Zej                  j                  d[d\d]g      d^        Zd_ Zej                  j                  d`dadbgdcddgdedfgg      dg        Zdh Zej                  j                  didjdkddkdldggdmdlddkdkdggdjdkdldkdldlggdndkddldldggdodlddldkdggg      dp        Zdq Zdr Zej                  j                  dsdtdjdg dugdtdvdkg dwgdxdvdlg dygdxdzdg dugdtd{dg d|gdxd}dg d|gdtd~dg dgdxd~dg dgg      d        Zej                  j                  dd      d        Zej                  j                  dd[ ej                  dv      gdeCgddkgddgg      d        Zej                  j                  dddddkddggddddkddggddddlddggg      d        Zd Zd Zd Zd Zd Zej                  j                  ddjdkddldggdmdlddkdggdzdlddkdggdjdkdldldlggdndkddldggdodlddkdggg      d        Zej                  j                  dd\dkdg dgddldg dgdzdldg dgdjdkdg dgd]dkdg dgdodldg dgddkdg dgddkdg dgddldg dgddldg dgddldg dgddldg dgg      d        Zej                  j                  ddjddddggdzddddggdjddddggdjddddggg      d        Zd Zd Zd Zd Zej                  j                  dg d      ej                  j                  dg d      ej                  j                  dg d      d                      Zd Zej                  j                  ddg dgdg dgdg dgdg dgd6g dgg      d        Zej                  j?                  de      d        Zd Zej                  j                  dddddjdggddddjdggddddzdggdddddgfg      dÄ        Zej                  j                  ddddddggdddddggdddddggg      dȄ        Zej                  j                  dg dʢg dˢg d̢g d͢g d΢g dϢg dТg dѢg dҢg dӢg dԢg dբg d֢g dעg dآg d٢g dڢg dۢg      d܄        Zej                  j                  dddgddgddgddgddgddgg      d        Zd Zej                  j                  dg dg dg dg dg dg dg      d        Zej                  j                  ddd\g      d        Zej                  j                  ddd\g      d        Zej                  j                  dddg      ej                  j                  dddd\dfdd ddfgddg:      d               Zej                  j                  dddg      d        Zej                  j                  dddg      ej                  j                  dddgdd6gg      d               Zej                  j                  d	d
dg      d        Zej                  j                  dddgdd6gg      d        Zd Zd Zd Zd Zej                  j                  dddg      d        Zd Zd Zd Zej                  j                  ddldkg      d        Zd Zej                  j                  dg d      d        Zd Zej                  j                  dd d!gd"dgd#dgd$dgd%dgd&dgd'dgd(dgd)d6gd*dkgd+d,gd-dgd.d/gd0dgd1d2gd3 ed!dd      gd4 edd6d2d,      gg      d5        Zej                  j                  d+g d6      d7        Zd8 Zd9 Zd: Zej                  j                  dd;d<g      d=        Zd> Zej                  j                  dd?d@g      dA        Zej                  j                  dBg dC      dD        ZĐdE Zej                  j                  dݐdFdGgdHdIgg      dJ        ZƐdK Zej                  j                  dg dL      dM        Zej                  j                  dg dL      dN        Zej                  j                  dOg dP      ej                  j                  dg dL      dQ               ZʐdR Zej                  j                  dSdTdUg      dV        Z̐dW Z͐dX Zej                  j                  dd?d@g      dY        Zej                  j                  dZd[ ed!dd\d]      gd^ e)j                  d_      gg      d`        Zѐda ZҐdb Zej                  j                  dd?d@g      dc        Zej                  j                  dddedfg      dg        Zej                  j                  dhg di      dj        Zej                  j                  dhg dk      dl        Zej                  j                  dmg dn      do        Zؐdp Zej                  j                  ddqdgdrdgdsdgdtd6gg      du        Zڐdv Zېdw Zܐdx Zݐdy Zej                  j                  dzdldkg      d{        Zߐd| Zd} Zej                  j                  ddd~dg      d        Z G d de=      Zd Zd Zd Zej                  j                  dddge;j                         fddvge;j                         fg      d        Zd Zej                  j                  d%e,j                  e,j                  z         d        Zej                  j                  d%e,j                        d        Zej                  j                  d%e,j                        d        Zej                  j                  d%e,j                  e,j                  z         d        Zd Zd Zd Zej                  j                  d%e,j                  e,j                  z         d        Zej                  j                  d%e,j                  e,j                  z         d        Zej                  j                  d%e,j                  e,j                  z         d        Zej                  j                  d%e,j                  e,j                  z         d        Zej                  j                  d%e,j                  e,j                  z         d        Zej                  j                  d%e,j                  e,j                  z         d        Zd Zej                  j                  d%e,j                  e,j                  z   e:      ej                  j                  dddeg      d               Zd Zd Zd Zd Z d Zd Zej                  j                  d%e,j                        d        Zd Zd Zd Zd Zd Zd Z	ej                  j                  ddddg      d        Z
ej                  j                  d%e,j                        d        Zej                  j                  d%e,j                        d        Zej                  j                  dde,j                        d        Zej                  j                  ddg d      d        Zej                  j                  d%e,j                        d        Zej                  j                  ddddg      d        Zej                  j                  ddddg      d        Zd Zd Zej                  j                  ddddg      d        Zd Zd Zd Zej                  j                  de;j                         e;j                         g      d        Zd Zd Zej                  j;                  ed      d        Zd Zd Z d Z!dÄ Z"dĄ Z#dń Z$dƄ Z%dǄ Z&dȄ Z'ej                  j                  dg dʢ      d˄        Z(ej                  j                  dg d͢      d΄        Z)dτ Z*dЄ Z+ej                  j                  dg dѢ      d҄        Z,ej                  j                  dg dӢ      dԄ        Z-y(  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)datedatetimetime	timedelta)Decimal)BytesIOStringION)lib)	timezones)PY312is_ci_environmentis_platform_windowspa_version_under14p0pa_version_under19p0pa_version_under20p0pa_version_under21p0)pa_version_under22p0)Pandas4Warning)pandas_dtype)
ArrowDtypeCategoricalDtypeType)
no_default)is_bool_dtypeis_datetime64_any_dtypeis_float_dtypeis_integer_dtypeis_numeric_dtypeis_signed_integer_dtypeis_string_dtypeis_unsigned_integer_dtype)basepyarrow)ArrowExtensionArray)ArrowPeriodTypec                    t               rSt               rHt        rAt        j                  j                  t        j                  d      }| j                  |       y y y y )Nz_TODO: Set ARROW_TIMEZONE_DATABASE environment variable on CI to path to the tzdata for pyarrow.raisesreason)	r   r   r   pytestmarkxfailpaArrowInvalidapplymarker)requestr+   s     K/root/env/lib/python3.12/site-packages/pandas/tests/extension/test_arrow.py_require_timezone_databaser2   L   sR    !2!49M{{  ??; ! 
 	D! :N!4    )paramsidsc                .    t        | j                        S )N)pyarrow_dtype)r   param)r0   s    r1   dtyper9   X   s    GMM22r3   c           
        | j                   }t        j                  j                  |      rddgdz  d gz   ddgz   d gz   ddgz   }n}t        j                  j	                  |      rddgdz  d gz   ddgz   d gz   dd	gz   }nCt        j                  j                  |      rd
dgdz  d gz   ddgz   d gz   d
dgz   }n	t        j                  j                  |      rd
dgdz  d gz   dd
gz   d gz   d
dgz   }nt        j                  j                  |      rQt        d      t        d      gdz  d gz   t        d      t        d      gz   d gz   t        d      t        d      gz   }n_t        j                  j                  |      r]t        dd
d
      t        ddd      gdz  d gz   t        dd
d
      t        dd
d
      gz   d gz   t        ddd      t        ddd      gz   }nt        j                  j                  |      rgt        dd
d
d
d
d
d
      t        dd
d
d
d
d
d
      gdz  d gz   t        dd
d
d
      t        dd
d
d
      gz   d gz   t        dd
d
      t        dd
d
      gz   }n]t        j                  j                  |      rQt        d
      t        d
d
      gdz  d gz   t        d      t        d      gz   d gz   t        d      t        d      gz   }nt        j                  j                  |      rVt!        dd      t!        dd      gdz  d gz   t!        dd      t!        d
d
      gz   d gz   t!        dd      t!        dd      gz   }nxt        j                  j#                  |      rddgdz  d gz   ddgz   d gz   d d!gz   }n?t        j                  j%                  |      rd"d#gdz  d gz   d$d%gz   d gz   d&d'gz   }nt&        t)        j*                  || (      S ))NTF         ?        g       g            ?g     X@   r   c   10.0z-2.0z-1.0z0.5z33.123            i
      ab2!>   a   b   1   2   !   >r9   )r7   r-   types
is_booleanis_floatingis_signed_integeris_unsigned_integer
is_decimalr   is_dater   is_timestampr   is_durationr   is_timer   	is_string	is_binaryNotImplementedErrorpdarray)r9   pa_dtypedatas      r1   rh   rh   ]   s1   ""H	xx8$e}q D6)T5M9TFBdE]R			h	'SzA~&$5>#tL		#	#H	-1vzTF"b"X-6!R@		%	%h	/1vzTF"aV+tf42w>			X	&S\75>*Q.fv01 f u~wx01	2 	 
		(	#$1tD"b12Q6fD!QdAq!123 f D"b!4b"#56	7 	 
		x	(dAq!Q1-xaAq!Q/OPSTTfaA&q!Q(?@A f a#XdAq%9:	; 	 
		h	'q\9Q?+a/f}il+, f ~y}-	. 	 
		(	#"a[$q"+&*fAqz41:&' f Aqz41:&	' 	 
		H	%SzA~&#s3tf<SzI			H	%d|a4&(D$<74&@D$<O!!88D&&r3   c                X    t        |       j                  d| d   g| j                        S )zLength-2 array with [NA, Valid]Nr   rW   type_from_sequencer9   )rh   s    r1   data_missingrm      s*     :$$dDG_DJJ$GGr3   rh   rm   )r4   c                H    | j                   dk(  r|S | j                   dk(  r|S y)zParametrized fixture returning 'data' or 'data_missing' integer arrays.

    Used to test dtype conversion with and without missing values.
    rh   rm   N)r8   )r0   rh   rm   s      r1   all_dataro      s,     }}	.	( 
)r3   c           
        | j                   }t        j                  j                  |      rd}d}d}n#t        j                  j	                  |      rd}d}d}nt        j                  j                  |      rd}d}d}nt        j                  j                  |      rd}d}d	}nt        j                  j                  |      r)t        d
dd      }t        ddd      }t        ddd      }nft        j                  j                  |      r.t        d
dddddd      }t        ddd      }t        dddd      }nt        j                  j                  |      r#t        d      }t        d      }t        dd      }nt        j                  j                  |      r%t        dd      }t        dd      }t        dd      }nt        j                  j                  |      rd}d}d}nmt        j                  j!                  |      rd}d}d}nGt        j                  j#                  |      r"t%        d      }t%        d      }t%        d      }nt&        t)        j*                  ||dd||||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?rA   r   r?   rJ   rF   rG   rH   i  rE   rI      rL   rM   crQ   rR      cz-1.1rD   z1.1NrW   )r7   r-   rX   rY   rZ   r[   r\   r^   r   r_   r   r`   r   ra   r   rb   rc   r]   r   rd   re   rf   )r9   rg   ABCs        r1   data_for_groupingrw      s    ""H	xx8$			h	'		#	#H	-		%	%h	/			(	#r2q!q!			x	(T1aAq!,T1a T1a#			h	'bMaLaO			(	#AJBKRL			H	%			H	%			X	&FOENEN!!88Q4q!Q2%@@r3   c                f    t        |       j                  | d   | d   | d   g| j                        S )zn
    Length-3 array with a known sort order.

    This should be three items [B, C, A] with
    A < B < C
    r      rq   rW   rj   rw   s    r1   data_for_sortingr{      F     !"11	1	035Fq5IJ%% 2  r3   c                f    t        |       j                  | d   | d   | d   g| j                        S )z{
    Length-3 array with a known sort order.

    This should be three items [B, NA, A] with
    A < B and NA missing.
    r   r;   rq   rW   rj   rz   s    r1   data_missing_for_sortingr~      r|   r3   c                t   | j                   j                  }t        j                  j	                  |      s]t        j                  j                  |      s>t        j                  j                  |      st        j                  j                  |      r%t        j                  dgdz  | j                         S | S )z3Length-100 array in which all the elements are two.r;   rJ   rW   )
r9   r7   r-   rX   
is_integerrZ   r]   r`   re   rf   rh   rg   s     r1   data_for_twosr     s{     zz''H
H%88)88x(88)xxb

33Kr3   c                      e Zd Zd Zd Zd Zej                  j                  dddg      d        Z	 fdZ
 fd	Zd
 Zd Zd Zd ZdEdZej                  j                  dddg       fd       ZdEdZdFdZej                  j                  dddg       fd       ZdGdZej                  j-                  d      ej                  j                  dddg       fd              Zej                  j                  dddg       fd       Zej                  j                  dg d      d        Z fdZ fdZd Z fd Z fd!Zej                  j?                  d"d#       fd$       Z d% Z!d& Z"ej                  j?                  d'd#       fd(       Z#ej                  j?                  d'd#       fd)       Z$ej                  j                  d*d+e%g      ej                  j                  d,d-d.g      d/               Z& fd0Z'ej                  j                  d1d2d3g       fd4       Z(d5 Z)d6Z*d7 Z+dHd8Z,d9 Z-	 	 	 	 dId:Z.d; Z/ fd<Z0 fd=Z1d> Z2 fd?Z3d@ Z4ej                  j                  dAg dB      dC        Z5 fdDZ6 xZ7S )JTestArrowArrayc                   |j                   }|dk(  rt        d      }n%|dk(  r t        |t        |            rt        d      }t        |t        |            rG|j	                  t        t        |      t        |      d      D cg c]
  \  }}||z    c}}|      S |j	                  t        |      D cg c]  }||z   	 c}|      S c c}}w c c}w )Nbool[pyarrow]int64[pyarrow]zint8[pyarrow]T)strictrW   )r9   r   
isinstancerk   rl   ziplist)selfleftrightr9   rL   rM   s         r1   _construct_for_combine_addz)TestArrowArray._construct_for_combine_add  s    

 O# !12Eo%*UDJ*G !12EeT$Z(&&%(dT%[%NO6AqQO '  
 &&$(J/qU/ '  	 P
 0s   C
7Cc                \    t        j                  |      }| j                  ||||d          y Nr   )re   Series_compare_other)r   rh   comparison_opsers       r1   test_compare_scalarz"TestArrowArray.test_compare_scalar'  s'    iioC}d1g>r3   c                ~    t        j                  |      }t        t        |            }| j	                  ||||       y N)re   r   rangelenr   )r   rh   r   r   
range_tests        r1   test_compare_range_lenz%TestArrowArray.test_compare_range_len+  s0    iio3s8_
C]JGr3   	na_actionNignorec                   |j                   j                  dv rA|j                  d |      }|j                  t              }t        j                  ||       y |j                  d |      }|j                   dk(  r$|r"|j                  dt        j                        }n|j                         }t        j                  ||       y )	NmMc                    | S r    xs    r1   <lambda>z)TestArrowArray.test_map.<locals>.<lambda>4       r3   r   rW   c                    | S r   r   r   s    r1   r   z)TestArrowArray.test_map.<locals>.<lambda>8  r   r3   float32[pyarrow]float64r9   na_value)	r9   kindmapto_numpyobjecttmassert_numpy_array_equalnpnan)r   rm   r   using_nan_is_naresultexpecteds         r1   test_mapzTestArrowArray.test_map1  s    ""d*!%%kY%GF#,,6,:H''9!%%kY%GF!!%77O'00y2660R'002''9r3   c                   |j                   j                  }t        j                  j	                  |      r4|j                  t        j                  j                  d| d             n{|syt        j                  j                  |      r|j                  t        j                  j                  |      r/|j                  t        j                  j                  d             t        | 5  |       y )NzFor z .astype(str) decodes.r)   z8pd.Timestamp/pd.Timedelta repr different from numpy repr)r9   r7   r-   rX   rc   r/   r*   r+   r,   r_   tzr`   supertest_astype_str)r   rh   r0   using_infer_stringrg   	__class__s        r1   r   zTestArrowArray.test_astype_str@  s    ::++88h'!!!(+AB " 
 $XX""8,1Dxx##H-!!U " 
 	%r3   c                x   |j                   j                  }t        j                  j	                  |      st        j                  j                  |      rVt        j                  j	                  |      rd}nd| }|j                  t        j                  j                  |             t        | -  |       y )Nz1ArrowDtype(pa.string()) != StringDtype('pyarrow')$pyarrow.type_for_alias cannot infer r   )r9   r7   r-   rX   rb   r]   r/   r*   r+   r,   r   test_from_dtype)r   rh   r0   rg   r)   r   s        r1   r   zTestArrowArray.test_from_dtypeS  s    ::++88h'288+>+>x+Hxx!!(+L?zJ!!! " 
 	%r3   c                   t        |      j                  |j                  |j                        }t	        j
                  ||       t        |j                  t        j                        sJ t        |      j                  |j                  j                         |j                        }t	        j
                  ||       t        |j                  t        j                        sJ y NrW   )
rk   rl   	_pa_arrayr9   r   assert_extension_array_equalr   r-   ChunkedArraycombine_chunksr   rh   r   s      r1   test_from_sequence_pa_arrayz*TestArrowArray.test_from_sequence_pa_arrayb  s     d**4>>*L
''5&**BOO<<<d**NN))+4:: + 
 	''5&**BOO<<<r3   c                    t        t        j                               }t        j                  t
        d      5  t        j                  dg|       d d d        y # 1 sw Y   y xY w)NzConverting strings tomatchz12-1rW   )r   r-   month_day_nano_intervalr*   r(   rd   r$   _from_sequence_of_strings)r   r0   r9   s      r1   *test_from_sequence_pa_array_notimplementedz9TestArrowArray.test_from_sequence_pa_array_notimplementedo  sP    25578]].6MN 	Q996(%P	Q 	Q 	Qs   AA$c                   |j                   j                  }t        j                  j	                  |      r|j
                  t        |       |j                  j                  t        j                               }t        |      j                  ||j                         }t        j                  ||       |j                         }t        |      j                  ||j                         }t        j                  ||       y r   )r9   r7   r-   rX   r_   r   r2   r   caststringrk   r   r   r   r   )r   rh   r0   rg   pa_arrayr   s         r1   &test_from_sequence_of_strings_pa_arrayz5TestArrowArray.test_from_sequence_of_strings_pa_arrayt  s    ::++88  *x{{/F&w/>>&&ryy{3d55hdjj5Q
''5**,d55hdjj5Q
''5r3   c                    t        ||      |      }|j                  j                  }t        j                  j                  |      r6|j                  dk(  rd}nd}|j                  |      }|j                  |      }|j                  d      } t        |j                  d      |      |      }t        j                  ||d       y )Nskipna    int32[pyarrow]r   Float64F)check_dtype)
getattrr9   r7   r-   rX   is_temporal	bit_widthastyper   assert_series_equal)r   r   op_namer   r   pa_typeint_typer   s           r1   check_accumulatezTestArrowArray.check_accumulate  s    &g&f5))))88(  B&++**X&C]]8,Fy):73::i0':&I
vxUCr3   c                   |j                   j                  }t        j                  j	                  |      st        j                  j                  |      r|dv ryyt        j                  j                  |      r|dk(  ryyt        j                  j                  |      r|dv ryyt        j                  j                  |      r+|dk(  r t        j                  j                  |      sy|dk(  ryy)N)cumsumcumprodcummaxcumminFr   )r   r   r   r   T)
r9   r7   r-   rX   rc   r]   rb   rY   r   r`   )r   r   r   r   s       r1   _supports_accumulationz%TestArrowArray._supports_accumulation  s     ))))88g&"((*=*=g*FCC  XX()#  XX  )99  XX!!'*("288+?+?+HI%r3   r   TFc                   |j                   j                  }|}t        j                  j	                  |      r|dv ry t        j                  |      }| j                  ||      st        | %  |||      S |dk(  rwt        j                  j                  |      st        j                  j                  |      r9|j                  t        j                  j                  | d| t                      | j#                  |||       y )N)r   r   r   r   z not implemented for r)   r(   )r9   r7   r-   rX   rb   re   r   r   r   test_accumulate_seriesrY   r]   r/   r*   r+   r,   	TypeErrorr   )	r   rh   all_numeric_accumulationsr   r0   r   r   r   r   s	           r1   r   z%TestArrowArray.test_accumulate_series  s    ****+88g&76T+T iio**3871/  %0HH(BHH,?,?,H!!788MgYW$ "  	c7F3r3   c                   |dk(  st         r|dk(  ry|j                  }|j                  }t        j                  j                  |      r)|dv r%t        j                  j                  |      r|dv rnhyt        j                  j                  |      r|dv ryt        j                  j                  |      st        j                  j                  |      r|dv ryt        j                  j                  |      r$t        j                  j                  |      s|dv ryt        j                  j                  |      r|d	v ryy
)NkurtskewF)sumvarprodr   )r   )r   r   )meanmedianr   stdsemr   r   )anyall)r   r   r   r   r   r   T)
r   r9   r7   r-   rX   r   r`   rc   rb   rY   )r   r   r   r9   rg   s        r1   _supports_reductionz"TestArrowArray._supports_reduction  s
   f!5'V:K		 &&88)g9W.Wxx##H-'W2DXX)g.HHHx(BHH,>,>x,HPP HH  *HH((2>)
 88x(W 9
 .
 r3   c                   |j                   j                  }t        j                  j	                  |      st        j                  j                  |      r|j                  d      }n|}|dk(  r# t        ||             } t        ||             }n& t        ||      |      } t        ||      |      }t        j                  ||       y )Nr   countr   )
r9   r7   r-   rX   r   rZ   r   r   r   assert_almost_equal)r   r   r   r   rg   altr   r   s           r1   check_reducezTestArrowArray.check_reduce  s     99**88x(BHH,@,@,J**Y'C
 C g*WS'*,F,wsG,.H*WS'*&9F,wsG,F;H
vx0r3   c                f   |j                   j                  }t        j                  j	                  t
        | dt        j                   d|       }t        j                  j                  |      st        j                  j                  |      r|j                  |       t        | 5  |||      S )Nz is not implemented in pyarrow= for r'   )r9   r7   r*   r+   r,   r   r-   __version__rX   rb   rc   r/   r   test_reduce_series_boolean)	r   rh   all_boolean_reductionsr   r   r0   rg   
xfail_markr   s	           r1   r  z)TestArrowArray.test_reduce_series_boolean  s     ::++[[&&)* +>>*%z; ' 

 88h'288+=+=h+G 
+w1$8NPVWWr3   c                (   |j                   j                  }|dv r|j                  }|S t        j                  j                  |      r|dv rt        j                  j                  |      r|j                  }|S t        j                  j                  |      r t        t        j                  d            }|S t        j                  j                  |      r*t        t        j                  |j                              }|S t        t        j                  |j                              }|S |j                  }|S |j                  j                  dk(  rB|dk(  r't        s!t        t        j                  dd            }|S |dvr|j                  }|S d	}|S |d
v rd	}|S |dv r#t        j                  j                  |      rd}|S |dk(  r-t        j                  j!                  |      r|j                  }|S ddd	d|j                  j"                     }|S )N)maxmin)r   r   szdecimal128(7, 3)[pyarrow]r   &      )r   r   r   r   r   float64[pyarrow])r   r   r   r   r   r   )r   r   uint64[pyarrow]r   )iuf)r   rk   r9   r-   rX   r   r`   r^   r   durationra   unitnamer   
decimal128rY   rb   r   )r   arrr   r   r   	cmp_dtypes         r1   _get_expected_reduction_dtypez,TestArrowArray._get_expected_reduction_dtype  s   --$$n$		IB A XX!!'*.(88''0 #		I: 9 XX%%g. *2;;s+; <I6 5 XX%%g. *2;;w||+D EI2 / !+2;;w||+D EI. +  II	* ) YY^^::%(<&r}}R';<	" !  GGII	  /	  GG*I  'BHH,?,?,H)I  "(("4"4W"=		I 	 &&' iinn	I
 r3   zignore::RuntimeWarningc                j   t         s|r|dk(  rt        j                  j                  |j                  j
                        s3t        j                  j                  |j                  j
                        r/|j                  t        j                  j                  d             t        | 1  |||      S )Nr   z,https://github.com/apache/arrow/issues/45733r   )r   r-   rX   r   r9   r7   rZ   r/   r*   r+   r,   r   test_reduce_series_numeric)r   rh   all_numeric_reductionsr   r0   r   s        r1   r  z)TestArrowArray.test_reduce_series_numeric?  s     %&&0##DJJ$<$<=88''

(@(@A !!I " 
 w1$8NPVWWr3   c                    |}|dk(  rMt         rG|j                  j                  r1t        j                  j                  d      }|j                  |       t        | !  |||      S )Nr   zskew not implementedr   )	r   r9   _is_numericr*   r+   r,   r/   r   test_reduce_frame)r   rh   r  r   r0   r   r+   r   s          r1   r   z TestArrowArray.test_reduce_frameR  s[    (f!5zz%%{{((0F(G##D)w(/EvNNr3   typ)int64uint64r   c                f    t        j                  ddg| d      j                         }|dk(  sJ y )Nr?   r;   	[pyarrow]rW         ?)re   r   r   )r   r!  r   s      r1   test_median_not_approximatez*TestArrowArray.test_median_not_approximate[  s4     Aq6C5	):;BBD}}r3   c                   |j                   }t        j                  j                  |      r7|j	                  t
        j                  j                  t        d|              t        j                  j                  |      rBd}t        j                  t        |      5  |j                  |j                         d d d        y t        | =  |       y # 1 sw Y   y xY w)Nr   r'   z6string\[pyarrow\] should be constructed by StringDtyper   )r7   r-   rX   r]   r/   r*   r+   r,   rd   rb   r(   r   construct_from_stringr  r   #test_construct_from_string_own_name)r   r9   r0   rg   msgr   s        r1   r*  z2TestArrowArray.test_construct_from_string_own_namea  s    &&88x(!!.A(L "  88h'KCy4 8++EJJ78 3E:8 s    CCc                t   |j                   }t        j                  j                  |      r't	        |      j                  |j                        rJ y t        j                  j                  |      r7|j                  t        j                  j                  t        d|              t        | 9  |       y )Nr   r'   )r7   r-   rX   rb   rk   is_dtyper  r]   r/   r*   r+   r,   rd   r   test_is_dtype_from_namer   r9   r0   rg   r   s       r1   r.  z&TestArrowArray.test_is_dtype_from_nameu  s    &&88h'E{++EJJ7777xx""8,##KK%%2!EhZP &  G+E2r3   c                    d}t        j                  t        |      5  t        |      j	                  d       d d d        y # 1 sw Y   y xY w)Nz*'another_type' must end with '\[pyarrow\]'r   another_type)r*   r(   r   rk   r)  )r   r9   r+  s      r1   .test_construct_from_string_another_type_raisesz=TestArrowArray.test_construct_from_string_another_type_raises  s<    ;]]9C0 	>K--n=	> 	> 	>s   AAc                   |j                   }t        j                  j                  |      st        j                  j	                  |      sit        j                  j                  |      r|j                  >t        j                  j                  |      st        j                  j                  |      r2|j                  t        j                  j                  | d             t        | 9  |       y )NzB does not have associated numpy dtype findable by find_common_typer   )r7   r-   rX   r^   ra   r_   r   rc   r]   r/   r*   r+   r,   r   test_get_common_dtyper/  s       r1   r4  z$TestArrowArray.test_get_common_dtype  s    &&HHX&xx)%%h/HKK4Kxx!!(+xx""8,!!#* %= > "  	%e,r3   c                    |j                   }t        j                  j                  |      rt	        |      sJ y t
        |   |       y r   )r7   r-   rX   rb   r    r   test_is_not_string_type)r   r9   rg   r   s      r1   r6  z&TestArrowArray.test_is_not_string_type  s;    &&88h'"5)))G+E2r3   z6GH 45419: pyarrow.ChunkedArray does not support views.)r)   runc                $    t         |   |       y r   )r   	test_viewr   rh   r   s     r1   r9  zTestArrowArray.test_view  s     	$r3   c                    ||j                             }|d   }|j                  |      }||usJ t        j                  ||       y r   )isnafillnar   r   )r   rh   validr   s       r1   test_fillna_no_op_returns_copyz-TestArrowArray.test_fillna_no_op_returns_copy  sI    TYY[L!QU#T!!!
''5r3   c                   |j                         }d|_        |j                  |d         }|d   |d   k(  sJ t        j                  ||       |j                  |d         }|d   |d   k(  sJ t        j                  ||       y )NTr?   r   )copy	_readonlyr=  r   r   )r   rm   rh   r   s       r1   test_fillna_readonlyz#TestArrowArray.test_fillna_readonly  s      " \!_-ayLO+++
''l; \!_-ayLO+++
''l;r3   z5GH 45419: pyarrow.ChunkedArray does not support viewsc                $    t         |   |       y r   )r   test_transposer:  s     r1   rE  zTestArrowArray.test_transpose  s     	t$r3   c                $    t         |   |       y r   )r   test_setitem_preserves_viewsr:  s     r1   rG  z+TestArrowArray.test_setitem_preserves_views  s     	,T2r3   dtype_backendr#   enginerr   pythonc           	     $   |j                   j                  }t        j                  j	                  |      r9|j                  t        j                  j                  t        d| d             nt        j                  j                  |      rC|j                  dv r5|j                  t        j                  j                  t        d             nNt        j                  j                  |      r/|j                  t        j                  j                  d             t        j                  dt        j                   |t#        |j                         	      i      }|s|j%                  d
d      }n!|j%                  d
t&        j(                        }t        j                  j                  |      rt+        |      }nt-        |      }t        j.                  |dt#        |j                         i||      }	|}
t1        j2                  |	|
       y )NzParameterized types z not supported.r'   usnsz1https://github.com/pandas-dev/pandas/issues/49767z)CSV parsers don't correctly handle binaryr   
with_dtyperW   FNA)indexna_rep)r9   rI  rH  )r9   r7   r-   rX   r]   r/   r*   r+   r,   rd   r_   r  
ValueErrorrc   re   	DataFramer   strto_csvr   r   r	   r
   read_csvr   assert_frame_equal)r   rI  rh   rH  r0   r   rg   df
csv_outputr   r   s              r1   test_EA_typeszTestArrowArray.test_EA_types  s    ::++88x(!!.1(?K "  XX""8,,1N!!%N "  XX)!!)T!U \\<4s4::)OPQt<Jrvv>J88h' ,J!*-JTZZ1'	
 
fh/r3   c                X   |j                   j                  }t        j                  j	                  |      st        j                  j                  |      s`t        j                  j                  |      sA|j                  t        j                  j                  t        j                  d|              t        rTt        j                  j	                  |      r5t        j                  t        dd      5  t         | E  |       d d d        y t         | E  |       y # 1 sw Y   y xY w)Nz$pyarrow.compute.invert does support r'   zBitwise inversionF)r   check_stacklevel)r9   r7   r-   rX   rY   r   rb   r/   r*   r+   r,   ArrowNotImplementedErrorr   r   assert_produces_warningDeprecationWarningr   test_invertr   rh   r0   rg   r   s       r1   ra  zTestArrowArray.test_invert  s    ::++HH)xx""8,xx!!(+!!66A(L "  RXX((2++"*=PU * #D)* *
 G%* *s   7D  D)periodsr?   r@   c           
     $   |j                   j                  }t        j                  j	                  |      rJ|dk(  rE|j                  t        j                  j                  t        j                  d| d| d             t        | -  ||       y )Nr?   z
diff with z and periods=z will overflowr'   )r9   r7   r-   rX   r\   r/   r*   r+   r,   r.   r   	test_diff)r   rh   rc  r0   rg   r   s        r1   re  zTestArrowArray.test_diff	  sy    ::++88''1gl!!??$XJmG9NS "  	$(r3   c                    |d d }|j                         }|j                  t        t        j	                               k(  sJ y )NrJ   )value_countsr9   r   r-   r"  r   s      r1   'test_value_counts_returns_pyarrow_int64z6TestArrowArray.test_value_counts_returns_pyarrow_int64  s8    CRy""$||z"((*5555r3   r   c                r    |j                  d      }|dk(  rd }|S |dk(  rd S t        j                  |      S )N_rtruedivc                .    t        j                  ||       S r   )r   divider   ys     r1   rk  z1TestArrowArray.get_op_from_name.<locals>.rtruediv$  s    yyA&r3   	rfloordivc                .    t        j                  ||       S r   )r   floor_dividern  s     r1   r   z1TestArrowArray.get_op_from_name.<locals>.<lambda>)  s    1 5 r3   )stripr   get_op_from_name)r   r   short_opnamerk  s       r1   rt  zTestArrowArray.get_op_from_name  sC    }}S):%' O[(55""7++r3   c                J   |}|dv r|j                  d      S t        j                  |      }d}t        |t        j
                        rd}|j                  d d df   }n|}t        |      t        u r5|dvr1|j                  dk(  r|j                  d      S |j                  d	      S t        |      t        u r|j                  d      S |j                  }	|st        |t        j                        rt        j                  j                  |	      sEt        j                  j!                  |	      r|d
vs!t        j                  j#                  |	      st        j                  j%                  |	      st        j                  j'                  |	      st        j                  j)                  |	      s|S |dk(  rt        j                  j!                  |	      s~t        j                  j#                  |	      s_t        j                  j%                  |	      s@t        j                  j'                  |	      s!t        j                  j)                  |	      s|S t        j+                  |j,                        }
t        j                  j)                  |
j                        rt        j                  j)                  |	      r t/        ||      |      }t        j                  |      }t        |t0              sJ |dk(  r.t        |t2              rt1        t        j5                               }nw|dk(  rGt        |t        j                        r-|j6                  |k(  rt1        t        j5                               }n+t        j                  j)                  |j                        sJ |j                  |      S |
j9                  |	      }
 t        |j,                        |
      }|r.t	        j
                  ||j:                  |j<                        }|S t	        j                  |      }|S )N)eqneltlegtgeboolean[pyarrow]FTr   )__floordiv__r  r  r   )__truediv____rtruediv__r~  __pow__)rQ  columns)r   r   	get_dtyper   re   rT  ilocrk   intr   floatr7   r   r-   rX   rZ   r   r`   r_   r^   r]   rf   _valuesr   r   r   r   r9   r   rQ  r  )r   r   objotherpointwise_resultr   original_dtype	was_frameexpected_dataorig_pa_typepa_expectedr  	alt_dtypepd_expecteds                 r1   _cast_pointwise_resultz%TestArrowArray._cast_pointwise_result/  s    $::#**+=>>h/	h-I$MM!Q$/M$M ;#'1A"A""c)'9::'788%[E!??#566 &33Zryy9 $$\2HH''5'FF88''588((688##L188&&|4  &288+>+>|+Lxx##L1xx$$\2xx-xx""<0 Ohh}44588{//0RXX5H5H5V ('#w'.CS)Ii444)#
5'(B&rzz|4	9$ubii0KK>1 'rzz|4	xx**9+B+BCCC??9-- &**<8K1d=001+>||8>>8;K;KH
  yy-Hr3   c                    |dv xs |dv xr t          xr t        j                  j                  |      xs% |dv xr t        j                  j	                  |      S )N__add____radd__r  r  r~  __rfloordiv____sub____rsub__)r   r-   rX   r`   r   )r   opnamerg   s      r1   _is_temporal_supportedz%TestArrowArray._is_temporal_supported  sm     11 WX 100/ $$X.
T //RBHH4H4H4R
	Tr3   c                   |dv rt         t        fS t        j                  |      }|j                  }| j                  ||      }|dv rt         t        f}|S |rd }|S |dv rBt        j                  j                  |      st        j                  j                  |      rd }|S t        j                  j                  |      sFt        j                  j                  |      s't        j                  j                  |      st        }|S d }|S )N)
__divmod____rdivmod__>   __mod____rmod__r  )rd   r   r   r  r7   r  r-   rX   rb   rc   rZ   r   r]   )r   r   r  r  r9   rg   arrow_temporal_supportedexcs           r1   _get_expected_exceptionz&TestArrowArray._get_expected_exception  s    33'33 S! &&#'#>#>w#Q  
 
 '	2C 
 &C 
 //HHx(BHH,>,>x,HC 
 HH  *xx""8,xx""8,C 
 C
r3   c                   d }| j                  ||      }|dk(  rt        j                  j                  |      s>t        j                  j	                  |      st        j                  j                  |      r%t        j                  j                  d|       }|S |rot        j                  j                  |      s#|dv rLt        j                  j                  |      r-t        j                  j                  t        | d| d      }|S |dk(  rot        j                  j	                  |      st        j                  j                  |      r1t        j                  j                  t        j                  d	      }|S |d
k(  rNt        j                  j                  |      r/t        j                  j                  t        j                  d	      }|S )N__rpow__z<GH#29997: 1**pandas.NA == 1 while 1**pyarrow.NA == NULL for r   r  z  not supported betweenpd.NA and z Python scalarr'   r  zdivide by 0r  )r  r-   rX   rZ   r   r]   r*   r+   r,   ra   r`   r   r.   )r   r  rg   r+   r  s        r1   _get_arith_xfail_markerz&TestArrowArray._get_arith_xfail_marker  s   #'#>#>vx#P ZHH  *xx""8,xx""8,;;$$#*& % DB 7 &HHX&STHH((2 ;;$$ h>xjW % D&  &HH)RXX-@-@-J;;$$$ % D  ~%"((*=*=h*G;;$$$ % D
 r3   c                   |j                   j                  }|dk(  r4t        j                  j	                  |      rt        j                  d       | j                  ||      }||j                  |       t        | )  ||       y Nr  z%Skip testing Python string formatting)r9   r7   r-   rX   rc   r*   skipr  r/   r   test_arith_series_with_scalarr   rh   all_arithmetic_operatorsr0   rg   r+   r   s         r1   r  z,TestArrowArray.test_arith_series_with_scalar  so    ::++#z1bhh6H6H6RKK?@++,DhO%-d4LMr3   c                L   |j                   j                  }|dk(  rSt        j                  j	                  |      st        j                  j                  |      rt        j                  d       | j                  ||      }||j                  |       t        | -  ||       y r  )r9   r7   r-   rX   rb   rc   r*   r  r  r/   r   test_arith_frame_with_scalarr  s         r1   r  z+TestArrowArray.test_arith_frame_with_scalar  s    ::++#z1HHx(BHH,>,>x,HKK?@++,DhO%,T3KLr3   c                2   |j                   j                  }|dv r`t        j                  j	                  |      rA|j                  t        j                  j                  t        j                  d|              | j                  ||      }||j                  |       |}t        j                  |      }t        j                  t        j                  |j                  d   gt        |      z  |j                               }| j!                  |||       y )Nr  zJImplemented pyarrow.compute.subtract_checked which raises on overflow for r'   r   rW   )r9   r7   r-   rX   r\   r/   r*   r+   r,   r.   r  re   r   rf   r  r   check_opname)	r   rh   r  r0   rg   r+   r   r   r  s	            r1   test_arith_series_with_arrayz+TestArrowArray.test_arith_series_with_array  s    ::++# (
 
 hh**84!!??88@zC "  ++,DhO%*iio 		"((CHHQK=3s8#;4::NO#w.r3   c                    |j                   j                  }|j                  d      rA|j                  t        j
                  j                  t        j                  d|              t        | )  |       y )Nint8zraises on overflow for r'   )r9   r7   equalsr/   r*   r+   r,   r-   r.   r   $test_add_series_with_extension_arrayrb  s       r1   r  z3TestArrowArray.test_add_series_with_extension_array  sc    ::++??6"!!??4XJ? "  	4T:r3   c                    t        j                  t        d      5   ||t                      d d d        y # 1 sw Y   y xY w)Nz'.* not implemented for <class 'object'>r   )r*   r(   rd   r   )r   rh   r   s      r1   test_invalid_other_compz&TestArrowArray.test_invalid_other_comp*  s7    ]]'P
 	* $)	* 	* 	*s	   7A masked_dtype)booleanInt64r   c                   g d}t        j                  ||      }t        j                  ||j                          d      } |||      }|t        j                  t        j
                  t        j                  fv rg d}ng d}t        j                  |t        t        j                                     }t        j                  ||       y )N)r?   r   NrW   r%  )FFN)TTN)re   r   loweroperatorry  r{  rx  r   r-   bool_r   r   )	r   r  r   rh   
ser_maskedser_par   expr   s	            r1   test_comp_masked_numpyz%TestArrowArray.test_comp_masked_numpy1  s     YYt<8
4,*<*<*>)?y'IJvz2X[[(++x{{CC&C$C99S
288:(>?
vx0r3   c                    |j                   j                  }t        j                  j	                  |      r1t
        j                  j                  d      }|j                  |       t        | )  |       y )Nz4GH#62343 incorrectly casts to timestamp[ms][pyarrow]r   )r9   r7   r-   rX   r^   r*   r+   r,   r/   r   8test_loc_setitem_with_expansion_preserves_ea_index_dtype)r   rh   r0   rg   r+   r   s        r1   r  zGTestArrowArray.test_loc_setitem_with_expansion_preserves_ea_index_dtype?  s]    ::++88H%;;$$M % D %HNr3   )r   	pd.Seriesr   rU  returnbool)r   r  r   rU  r   r  )r   rU  r   r  )r   rU  )r   rU  r  z4type[Exception] | tuple[type[Exception], ...] | None)8__name__
__module____qualname__r   r   r   r*   r+   parametrizer   r   r   r   r   r   r   r   r   r   r  r  r  filterwarningsr  r   r'  r*  r.  r2  r4  r6  r,   r9  r?  rC  rE  rG  r   r[  ra  re  rh  _combine_le_expected_dtypert  r  r  r  r  r  r  r  r  r  r  r  __classcell__r   s   @r1   r   r     s   (?H [[[4*:;: <:&&&=Q
6D"* [[Xe}54 64:)V1* [[Xe}5X 6X$%N [[ 89[[Xe}5X 6 :X" [[Xe}5O 6O [[U$BC D
;(3>
-&3 [[GU    6< [[FE  %% [[FE  33 [[_y*.EF[[XX7$0 8 G$0L&* [[YB0) 1)6 "1, ZxT  	= D+Z
NM/:
;* [[^-LM1 N1O Or3   r   c                     e Zd ZdZd Zej                  j                  ddg dfej                  g dfdg df e
j                  d      g dfdg d	f e
j                  d      g d	fg      d
        Zd Zej                  j                  ddg dfej                  g dfdg d	fdg df e
j                  d      g d	f e
j                  d      g dfg      d        Zd Zej                  j                  ddg dfej                  g dfdg df e
j                  d      g df e
j                  d      g d	fg      d        Zej                  j                  dddgddgddgg      d        Zy)TestLogicalOpsz1Various Series and DataFrame logical ops methods.c                   t        j                  dgdz  dgdz  z   d gdz  z   d      }t        j                  g ddz  d      }||z  }t        j                  g dd      }t        j                  ||       ||z  }t        j                  ||       t        j                  |t        j                  dgdz  dgdz  z   d gdz  z   d             t        j                  |t        j                  g ddz  d             y )NTr  Fr}  rW   TFN)	TTTTFNTNNre   r   r   r   r   rL   rM   r   r   s        r1   test_kleene_orzTestLogicalOps.test_kleene_orL  s    IItfqjE7Q;.$!;CUVII)A-5GHQ99C$
 	vx0Q
vx0 	IItfqjE7Q;.$!;CUV	
 	ryy,q08JK	
r3   zother, expectedN)TNNT)TTTFr  c                *   t        j                  g dd      }||z  }t        j                  |d      }t        j                  ||       ||z  }t        j                  ||       t        j                  |t        j                  g dd             y Nr  r}  rW   r  r   r  r   rL   r   s        r1   test_kleene_or_scalarz$TestLogicalOps.test_kleene_or_scalarb  {     II)1CDU99X-?@
vx0
vx0 	ryy,4FG	
r3   c                   t        j                  dgdz  dgdz  z   d gdz  z   d      }t        j                  g ddz  d      }||z  }t        j                  g dd      }t        j                  ||       ||z  }t        j                  ||       t        j                  |t        j                  dgdz  dgdz  z   d gdz  z   d             t        j                  |t        j                  g ddz  d             y )NTr  Fr}  rW   r  )	TFNFFFNFNr  r  s        r1   test_kleene_andzTestLogicalOps.test_kleene_and{  s    IItfqjE7Q;.$!;CUVII)A-5GHQ99G$
 	vx0Q
vx0 	IItfqjE7Q;.$!;CUV	
 	ryy,q08JK	
r3   )NFNFFFc                *   t        j                  g dd      }||z  }t        j                  |d      }t        j                  ||       ||z  }t        j                  ||       t        j                  |t        j                  g dd             y r  r  r  s        r1   test_kleene_and_scalarz%TestLogicalOps.test_kleene_and_scalar  r  r3   c                   t        j                  dgdz  dgdz  z   d gdz  z   d      }t        j                  g ddz  d      }||z  }t        j                  g dd      }t        j                  ||       ||z  }t        j                  ||       t        j                  |t        j                  dgdz  dgdz  z   d gdz  z   d             t        j                  |t        j                  g ddz  d             y )NTr  Fr}  rW   r  )	FTNTFNNNNr  r  s        r1   test_kleene_xorzTestLogicalOps.test_kleene_xor  s    IItfqjE7Q;.$!;CUVII)A-5GHQ99D$
 	vx0Q
vx0 	IItfqjE7Q;.$!;CUV	
 	ryy,q08JK	
r3   NNNFTNc                *   t        j                  g dd      }||z  }t        j                  |d      }t        j                  ||       ||z  }t        j                  ||       t        j                  |t        j                  g dd             y r  r  r  s        r1   test_kleene_xor_scalarz%TestLogicalOps.test_kleene_xor_scalar  s{     II)1CDU99X-?@
vx0
vx0 	ryy,4FG	
r3   zop, exp__and____or____xor__c                "   g d}t        j                  |d      }t        j                  |d      } t        ||      |      }t        j                  |dd gt        t        j                                     }t        j                  ||       y )Nr  r  rW   r}  F)re   r   r   r   r-   r  r   r   )r   opr  rh   r  r  r   r   s           r1   test_logical_masked_numpyz(TestLogicalOps.test_logical_masked_numpy  so     #YYt95
4'9:$$Z099c5$/z"((*7MN
vx0r3   )r  r  r  __doc__r  r*   r+   r  re   rP  r   r  r  r  r  r  r  r  r   r3   r1   r  r  I  s   ;
, [[%&UU&'%&RXXd^/0'(RXXe_12	





, [[&'UU'(&')*RXXd^01RXXe_34	





, [[%&UU&'&'RXXd^01RXXe_12	
	
	
 [[t	
11r3   r  r   c                   t        |       }t        j                  g d|      }t        j                  g d|      }||z  }t        j                  g d|      }t        j                  ||       ||z  }t        j                  g d|      }t        j                  ||       ||z  }t        j                  g d|      }t        j                  ||       | }|j                  d      j                          }t        j                  ||      j                  |j                               }t        j                  ||       y )N)r?   Nr  rq   rW   )Nr  rK   rq   )NNry   rq   )NNr?   rq   )NN   r   r   )	r   re   r   r   r   r=  r   maskisnull)r   r9   r   r   r   r   s         r1   test_bitwiser    s     wE99_E2DIIoU3EE\Fyy35AH68,E\Fyy35AH68,E\Fyy35AH68,UFQ((*+Hyy/44T[[]CH68,r3   c                    t        j                  t        d      5  t        j                  d       d d d        t        j                  t        d      5  t        j                  d       d d d        y # 1 sw Y   CxY w# 1 sw Y   y xY w)NzPassing pyarrow typer   z#not_a_real_dype[s, tz=UTC][pyarrow]zdecimal(7, 2)[pyarrow])r*   r(   rd   r   r)  r   r3   r1   Ftest_arrowdtype_construct_from_string_type_with_unsupported_parametersr    sz    	*2H	I P(()NOP 
*2H	I C(()ABC CP PC Cs   A4B 4A= B	c                 z    t        j                  d      } t        t        j                  dd            }| |k(  sJ y )Nztimestamp[s, tz=UTC][pyarrow]r  UTC)r   r)  r-   	timestamp)r9   r   s     r1   5test_arrowdtype_construct_from_string_supports_dt64tzr    s6    ,,-LME",,sE23HHr3   c                     d} d}t        j                  t        |      5  t        j                  t        d      |        d d d        y # 1 sw Y   y xY w)Nzint64[pyarrow]foobar[pyarrow]zYPassing pyarrow type specific parameters \(\[pyarrow\]\) in the string is not supported\.r   r  rW   )r*   r(   rd   re   r   r   )invalidr+  s     r1   ;test_arrowdtype_construct_from_string_type_only_one_pyarrowr    sI    -G	%  
*#	6 +
		%('*+ + +s   !A

Ac                 r   t        j                  ddgt        t        j	                                     } t        j                  ddgd      }| |z  }t        j                  ddgt        t        j	                                     }t        j                  ||       || z  }t        j                  ||       y )	NabcdefgrW   r;   r@   r   abcabc re   r   r   r-   r   r   r   )binaryrepeatr   r   reflected_results        r1    test_arrow_string_multiplicationr    s    YYvj.EFFYY2w&67Ff_Fyy(Bz"))+/FGH68,6#34r3   c                 @   t        j                  ddgt        t        j	                                     } | dz  }t        j                  ddgt        t        j	                                     }t        j                  ||       d| z  }t        j                  ||       y )Nr  r   rW   r;   r  defgdefgr  )r  r   r   r  s       r1   .test_arrow_string_multiplication_scalar_repeatr
  (  su    YYvj.EFFaZFyy(J/z"))+7NOH68,6z+X6r3   c                    t        j                  dd gt        t        j	                                     } t        j                  ddgt        t        j                                     }| |z   }t        j                  dd gt        t        j                                     }t        j                  ||       || z   }t        j                  dd gt        t        j                                     }t        j                  ||       y )NrL   rW   rM   rr   abba)re   r   r   r-   r   large_stringr   r   )r   r   r   r   r  expected_reflecteds         r1   -test_arrow_string_addition_mixed_string_typesr  1  s    99c4[
299;(?@DIIsCj
2??3D(EFEE\Fyy$Z8I-JKH68,t|D$<z"//BS7TU+-?@r3   string_typec                D   t        j                  dd gt        |             }t        j                  ddgt        t        j	                                     }d|j
                   d|j
                   d}t        j                  t        t        j                  |            5  ||z    d d d        d|j
                   d|j
                   d}t        j                  t        t        j                  |            5  ||z    d d d        y # 1 sw Y   cxY w# 1 sw Y   y xY w)	NrL   rW   rR   rs   z)operation 'add' not supported for dtype 'z' with dtype ''r   )re   r   r   r-   r  r9   r*   r(   r   reescape)r  r   r   r+  reflected_msgs        r1   3test_arrow_string_addition_mixed_with_binary_raisesr  ?  s    99c4[
;(?@DIItTl*RYY[*ABE 4DJJ< @{{m1	&  
y		#	7 u 4EKK= Azzl!	%  
y		-(@	A    s   "D
;D
DDinterpolation)linearr  highernearestmidpointquantiler>   c                   | j                   j                  }| j                  g d      } t        j                  |       }t
        j                  j                  |      s>t
        j                  j                  |      st
        j                  j                  |      rDd}t        j                  t
        j                  |      5  |j                  ||       d d d        y t
        j                  j                  |      s>t
        j                  j                  |      st
        j                  j!                  |      rnut
        j                  j#                  | j$                  j&                        rnA|j)                  t        j*                  j-                  t
        j                  d|              | j                  g d      } t        j                  |       }|j                  ||      }t
        j                  j/                  |      r|dvr|j0                  rd|j2                   d	|j0                   d
}nd|j2                   d
}|j5                  |      }	|	j                  ||      }
|dk(  r)|j2                  dk(  r|
j7                  d      }
||
k(  sJ y |j2                  dk(  r|
j8                  j;                  d      }
t=        j>                  ||
j5                  | j                                y |dk(  r|| d   k(  sJ y t        j                  | j                  ddg      ddg      }
t
        j                  j                  |      s>t
        j                  j                  |      st
        j                  j!                  |      r"|
j5                  d      }
|j5                  d      }t=        j>                  ||
       y # 1 sw Y   y xY w)Nr   r   r   z=Function 'quantile' has no kernel matching input types \(.*\)r   )qr  z&quantile not supported by pyarrow for r'   )r  r  zM8[z, ]r>   rM  F)warnr   rQ  r  ) r9   r7   takere   r   r-   rX   rb   rc   rY   r*   r(   r^  r  r   rZ   r]   r   r   rk   r/   r+   r,   r_   r   r  r   to_pydatetimedtfloorr   r   )rh   r  r  r0   rg   r   r+  r   pd_dtypeser_npr   s              r1   test_quantiler*  S  s   
 zz''H99YD
))D/C 	8$88h'88x( O]]266cB 	BLL8=LA	B 	H%88)88x(			dnn11	2KK22?zJ  	
 99YD
))D/C\\HM\BF	xxX&=@S+S ;;X]]O2hkk]!<HX]]O1-HH%??X]?Ks?}}$#11u1=X%%%
 	 }}$#;;,,T2""68??4::+FG3a    99TYY1v.sCjAHH)xx##H-xx""8,'9:H]]#56F
vx0q	Bs   OOztake_idx, exp_idx)r   r   r;   r;   rq   rq   rq   )r   r   r   r;   rq   rq   
multi_modesingle_mode)r5   c                    | j                  |      }t        j                  |      }|j                  d      }t        j                  | j                  |            }t	        j
                  ||       y )NTdropna)r$  re   r   moder   r   )rw   take_idxexp_idxrh   r   r   r   s          r1   test_mode_dropna_truer3    s[     !!(+D
))D/CXXTX"Fyy*//89H68,r3   c                   t        j                  d d | d   g| j                        }|j                  d      }t        j                  d g| j                        }t	        j
                  ||       t        j                  | d   d g| j                        }|j                  d      }t	        j
                  ||       y )Nr   rW   Fr.  )re   r   r9   r0  r   r   )rh   	more_nansr   r   s       r1   test_mode_dropna_false_mode_nar6    s    		4tAw/tzzBI^^5^)Fyy$tzz2H68,yy$q'4

;H]]%](F68,r3   zarrow_dtype, expected_type   f1f2c                8    t        |       j                  |k(  sJ y r   )r   rk   )arrow_dtypeexpected_types     r1   test_arrow_dtype_typer=    s    " k"''=888r3   c                 h   t        t        j                  g d            } t        |       sJ t        j
                  j                  j                  |       sJ t	        j                  t        t        |                   }||    }|t        j                  |          }t        j                  ||       y )NTFT)r$   r-   rf   r   re   corecommonis_bool_indexerr   r   r   r   asarrayr   r   )rh   r  r   r   s       r1   test_is_bool_dtyperD    s    rxx(;<=D77>>))$///
		%D	"#AtWFD!"H68,r3   c                    | j                   j                  }t        j                  j	                  |      s>t        j                  j                  |      st        j                  j                  |      rt        |       sJ y t        |       rJ y r   )r9   r7   r-   rX   rZ   r   r]   r   rh   r   s     r1   test_is_numeric_dtyperG    sf    jj&&G
W%88w'88w'%%%#D))))r3   c                    | j                   j                  }t        j                  j	                  |      rt        |       sJ y t        |       rJ y r   )r9   r7   r-   rX   r   r   rF  s     r1   test_is_integer_dtyperI    sB    jj&&G	xx7#%%%#D))))r3   c                    | j                   j                  }t        j                  j	                  |      rt        |       sJ y t        |       rJ y r   )r9   r7   r-   rX   r[   r   rF  s     r1   test_is_signed_integer_dtyperK    sB    jj&&G	xx!!'*&t,,,*40000r3   c                    | j                   j                  }t        j                  j	                  |      rt        |       sJ y t        |       rJ y r   )r9   r7   r-   rX   r\   r!   rF  s     r1   test_is_unsigned_integer_dtyperM    sB    jj&&G	xx##G,(...,T2222r3   c                    | j                   j                  }t        j                  j	                  |      st        j                  j                  |      rt        |       sJ y t        |       rJ y r   )r9   r7   r-   rX   r_   r^   r   rF  s     r1   test_is_datetime64_any_dtyperO    sS    jj&&G	xxW%)9)9')B&t,,,*40000r3   c                    | j                   j                  }t        j                  j	                  |      rt        |       sJ y t        |       rJ y r   )r9   r7   r-   rX   rZ   r   rF  s     r1   test_is_float_dtyperQ    sB    jj&&G	xxG$d###!$''''r3   c                   t        j                  |       }|j                  d      }t        j                  |      }t        j                  |      }t        |      t        |      kD  sJ t        j                  |      }t        j                  ||       t        j                  |      }t        j                  ||       y )Nr;   )	re   r   headpickledumpsr   loadsr   r   )rh   r   expected_slicedfull_pickledsliced_pickledr   result_sliceds          r1   test_pickle_roundtripr[    s    yyHmmA&O<<)L\\/2N|s>2222\\,'F68,LL0M=/:r3   c                8   | j                         }t        j                  ||j                        }|j	                  | j                        }t        |j                  t              rJ t        |j                  t              sJ t        j                  ||        y r   )	r   re   rf   r9   r   r   r   r   r   )rh   np_arrpd_arrayr   s       r1   test_astype_from_non_pyarrowr_    sk    ]]_Fxxfll3H__TZZ(F(..*555fllJ///##FD1r3   c                     t        j                  dg      } | j                  d      }t        j                  dgd      }t        j                  ||       y )N1.0r  r<   rW   re   r   r   r   r   r   r   r   s      r1   &test_astype_float_from_non_pyarrow_strrd  (  sD    
))UG
CZZ*+Fyy#&89H68,r3   c                     t        j                  ddgid      } | j                  dd      }t        j                  ||        y )Ncoli@fr   rW   float[pyarrow]r   )errors)re   rT  r   r   rX  )r   r   s     r1   test_astype_errors_ignoreri  0  s=    ||UXJ/7GHH__-h_?F&(+r3   c                   | j                         }| j                  j                  }t        j                  j                  |      st        j                  j                  |      rt        j                  d       n]t        j                  j                  |      rt        j                  t        |             }nt        j                  | j                        }| j                  rRt        | j                        r|s;j!                  t"              }t$        j&                  |t%        j(                  |       <   t+        j,                  |       y )Nz Tested in test_to_numpy_temporal)r   r   rk   r-   rX   r`   r_   r*   r  r^   r   rf   r   _hasnar   r9   r   r   re   rP  r<  r   r   )rh   r   r   r   r   s        r1   test_to_numpy_with_defaultsrl  7  s    ]]_Fnn!!G	xxG$(=(=g(F67			'	"88DJ'88DNN+{{,TZZ8??6*"$%%1r3   c                V   dd g}t        j                  |d      }|j                         }| s,t        j                  dt         j                  gt
              }n:t        j                  dt        j                  g      }t        |d   t              sJ t        j                  ||       y )Nr?   r   rW   r   )re   rf   r   r   rP  r   r   r   r  r   r   )r   rh   r  r   r   s        r1   test_to_numpy_int_with_narn  J  s|    t9D
((4/
0C\\^F88QJf588QK(&)U+++1r3   zna_val, exp)r?   r?   c                    t        j                  t         j                  t         j                  gd      }|j                  d|       }t	        j                  |gdz  d      }t        j                  ||       y )Nnull[pyarrow]rW   r   r   r;   re   rf   rP  r   r   r   r   )na_valr  r  r   r   s        r1   test_to_numpy_null_arrayrs  W  sX     ((BEE255>
9C\\	F\;Fxx	3H1r3   c                    t        j                  t         j                  t         j                  gd      } | j                  d       }t	        j                  t         j                  gdz  d      }t        j                  ||       y )Nrp  rW   r;   r   rq  r  r   r   s      r1   !test_to_numpy_null_array_no_dtyperv  `  sX    
((BEE255>
9C\\\%Fxx!84H1r3   c                    t        j                  dt         j                  gd      } | j                  d      }t	        j                  ddgt        j
                        }t        j                  ||       t        j                  dt         j                  gd      } | j                  d      }t	        j                  ddgt        j                        }t        j                  ||       y )	NTr}  rW   F)r   r<   r   r=   )	re   rf   rP  r   r   r  r   r   float32ru  s      r1   test_to_numpy_without_dtypery  h  s    
((D"%%=(:
;C\\5\)FxxuRXX6H1
((C<'9
:C\\3\'Fxxc
"**5H1r3   c                   | j                         }|j                         }| d   |d d  t        j                  | d   gt        |       z  | j                        }t        j                  ||       |j                         }| d d d   |d d  | d d d   }t        j                  ||       |j                         }| j                         |d d  | }t        j                  ||       y )Nr   rW   rA   )rA  r$   rl   r   r9   r   r   tolist)rh   origr   r   s       r1   test_setitem_null_slicer}  u  s    99;DYY[FQF1I"11	a	CIjjH ##FH5YY[FTrT
F1IDbDzH##FH5YY[FF1IH##FH5r3   c                   | j                   j                  }t        j                  j	                  |      st        j                  j                  |      rd}t        }d}n|t        j                  j                  |      s>t        j                  j                  |      st        j                  j                  |      rd}t        j                  }d}n
d}t        }d}t        j                  ||      5  || d d  d d d        y # 1 sw Y   y xY w)N{   zInvalid value '123' for dtypefoozCould not convertzInvalid value 'foo' for dtyper   )r   rk   r-   rX   rb   rc   r   r   rZ   rY   r.   r*   r(   )rh   r   
fill_valueerrr+  s        r1   test_setitem_invalid_dtyper    s    nn!!G	xx'"bhh&8&8&A
-
G$88(88w'
oo!
-	s#	& Q  s   3DDc                    t         j                  t        j                  d      t        j                  d      gt         j	                               } | j                  t         j	                         t        t         j                               ij                        }t        j                  t        j                  d      t        j                  d      gt        t         j                                     }t        j                  ||       y )Nz
2019-12-31rk   types_mapperrW   )r-   rf   re   	Timestampdate32	to_pandasr   date64getr   r   r   )
date_arrayr   r   s      r1   &test_from_arrow_respecting_given_dtyper    s    	l	#R\\,%?@ryy{  J !!iik:biik#:;?? " F yy	l	#R\\,%?@%H 68,r3   c                 `   t         j                  ddgt         j                               } t        j                  t         j
                        5  | j                  t         j                         t        t         j                               ij                         d d d        y # 1 sw Y   y xY w)Nr&        @r  r  )
r-   rf   r   r   external_error_raisedr.   r  r   r"  r  )rf   s    r1   -test_from_arrow_respecting_given_dtype_unsafer    ss    HHc3ZbjjlH3E		!	!"//	2 QbjjlJrxxz4J%K%O%OPQ Q Qs   AB$$B-c                    d} t        j                  dddt         j                  g|       }|j                  d      }t        j                  dddt         j                  g|       }t	        j
                  ||       t        j                  d	t         j                  d
g|       }|j                  d      }t        j                  dt         j                  dg|       }t	        j
                  ||       y )Nr  r=   gGz?g{Gz@rW   r?   g333333?g@g^@gp=
cL@rA   g      ^@g      N@)re   r   rP  roundr   r   r9   r   r   r   s       r1   
test_roundr    s    E
))S$bee,E
:CYYq\Fyy#sC/u=H68,
))UBEE5)
7CYYr]Fyy%-U;H68,r3   c                   | \  }}}| j                  g d      }t        j                  |d<   |rt        j                  |      }d}t	        j
                  t        |      5  |j                  |       d d d        y # 1 sw Y   y xY w)N)r;   r   r?   rA   zOsearchsorted requires array to be sorted, which is impossible with NAs present.r   )r$  re   rP  r   r*   r(   rS  searchsorted)r{   	as_seriesrM   rr   rL   r  r+  s          r1    test_searchsorted_with_na_raisesr    sw    GAq!


	
*CeeCGiin	0  
z	-   s   !A<<Bc                 \   t        j                  t        j                  ddgt        t        j                  t        j                         t        j                                           ddgd      } | j                         }| j                  ddg	      }t        j                  ||       y )
Nr   ro  rW   r?   r;   rL   rM   rL   rM   )by)re   rT  r   r   r-   
dictionaryint32r   rA  sort_valuesr   rX  )rY  r   r   s      r1   test_sort_values_dictionaryr    s    	c
*R]]288:ryy{-S"T Q		

B wwyH^^Sz^*F&(+r3   patr  z	a[a-z]{2}c                6   t        j                  dd gt        t        j	                                     }|j
                  j                  |       }t        j                  dd gt        t        j                                     }t        j                  ||       y )Nr  rW   r?   )
re   r   r   r-   r   rU  r   r  r   r   )r  r   r   r   s       r1   test_str_countr    sb    
))UDMBIIK)@
ACWW]]3Fyy!T*RXXZ*@AH68,r3   c                    t        j                  dd gt        t        j	                                     } t        j                  t        d      5  | j                  j                  dd       d d d        y # 1 sw Y   y xY w)Nr  rW   z	count notr   r?   flags)
re   r   r   r-   r   r*   r(   rd   rU  r   r   s    r1    test_str_count_flags_unsupportedr    sY    
))UDMBIIK)@
AC	*+	> &e1%& & &   A77B zside, str_funcr   rjustr   ljustbothcenterc                ^   t        j                  dd gt        t        j	                                     }|j
                  j                  d| d      }t        j                   t        d|      dd      d gt        t        j	                                     }t        j                  ||       y )NrL   rW   r  r   )widthsidefillchar)
re   r   r   r-   r   rU  padr   r   r   )r  str_funcr   r   r   s        r1   test_str_padr    s     ))S$Kz"))+'>
?CWW[[qtc[:Fyy	h	3	'.j6MH 68,r3   c                    t        j                  dd gt        t        j	                                     } t        j                  t        d      5  | j                  j                  ddd       d d d        y # 1 sw Y   y xY w)NrL   rW   zInvalid side: foor   r  r  r   )
re   r   r   r-   r   r*   r(   rS  rU  r  r  s    r1   test_str_pad_invalid_sider    sY    
))S$Kz"))+'>
?C	z)<	= #Auc"# # #r  zpat, case, na, regex, expr  FTAbz	a[a-z]{1}z	A[a-z]{1}c                :   t        j                  dd gt        t        j	                                     }|j
                  j                  | |||      }t        j                  |t        t        j                                     }t        j                  ||       y )Nr  rW   )casenaregex
re   r   r   r-   r   rU  containsr  r   r   )r  r  r  r  r  r   r   r   s           r1   test_str_containsr    sk     ))UDMBIIK)@
ACWWc5AFyyJrxxz$:;H68,r3   c                    t        j                  dd gt        t        j	                                     } t        j                  t        d      5  | j                  j                  dd       d d d        y # 1 sw Y   y xY w)Nr  rW   zcontains notr   rL   r?   r  )
re   r   r   r-   r   r*   r(   rd   rU  r  r  s    r1   #test_str_contains_flags_unsupportedr    s\    
))UDMBIIK)@
AC	*.	A 'A&' ' 'r  c                 6   t        j                  g dt        t        j	                                     } | j
                  j                  d      }t        j                  g dt        t        j                                     }t        j                  ||       y )N)rL   u   กNrW   z[\x{0e00}-\x{0e7f}]r  r  rc  s      r1   $test_str_contains_re2_unicode_escaper    s_    
)))BIIK1H
ICWW45Fyy,Jrxxz4JKH68,r3   zside, pat, na, exp
startswith)TNFrM   r  endswith)FTFbc)rL   eg)TNT)rL   rr   r  r   )FNFc                8   t        j                  g dt        t        j	                                     } t        |j                  |       ||      }t        j                  |t        t        j                                     }t        j                  ||       y )N)r  NefgrW   )r  
re   r   r   r-   r   r   rU  r  r   r   )r  r  r  r  r   r   r   s          r1   test_str_start_ends_withr  #  sd     ))(
299;0G
HC#WSWWd#CB/FyyJrxxz$:;H68,r3   r  )r  r  c                8   t        j                  d d gt        t        j	                                     } t        |j                  |       d      }t        j                  d d gt        t        j                                     }t        j                  ||       y )NrW   r   r  )r  r   r   r   s       r1   /test_str_starts_ends_with_all_nulls_empty_tupler  7  si    
))T4L
299;(?
@C#WSWWd#B'F yy$Z
-CDH68,r3   zarg_name, argreplr  r  r?   c                   t        j                  dd gt        t        j	                                     }dddd}||| <   t        j                  t        d      5   |j                  j                  d	i | d d d        y # 1 sw Y   y xY w)
Nr  rW   rM   r   T)r  r  r  zreplace is not supportedr   r   )
re   r   r   r-   r   r*   r(   rd   rU  replace)arg_nameargr   kwargss       r1   test_str_replace_unsupportedr  A  ss    
 ))UDMBIIK)@
AC#5FF8	*2L	M "!&!" " "s   BB
zpat, repl, n, regex, exprL   r   rA   xbxcxbacz[a-b]xxxcc                :   t        j                  dd gt        t        j	                                     }|j
                  j                  | |||      }t        j                  |t        t        j	                                     }t        j                  ||       y )NabacrW   )nr  	re   r   r   r-   r   rU  r  r   r   )r  r  r  r  r  r   r   r   s           r1   test_str_replacer  M  sh     ))VTN*RYY[*A
BCWW__S$!5_9FyyJryy{$;<H68,r3   c                 <   t        j                  g dt        t        j	                                     } | j
                  j                  ddd      }t        j                  g dt        t        j	                                     }t        j                  ||       y )N)JanFebNrW   z\p{Lu}UTr  )UanUebNr  rc  s      r1   %test_str_replace_re2_unicode_propertyr  \  sb    
))(
299;0G
HCWW__Y4_8Fyy-Z		5LMH68,r3   c                 *   t        j                  ddgt        t        j	                                     } | j
                  j                  dddd      }t        j                  ddgt        t        j	                                     }t        j                  ||       | j                  t        j                  d	
            }|j
                  j                  dddd      }|j                  |j                        }t        j                  ||       | j                  t        j                  d	t        j                              }|j
                  j                  dddd      }|j                  |j                        }t        j                  ||       y )Nr  aaaaaarW   rL   r  Tr  r#   storage)r  r   )re   r   r   r-   r   rU  r  r   r   r   StringDtyper9   r   r   )	r   actualr   ser2actual2	expected2ser3actual3	expected3s	            r1   test_str_replace_negative_nr  c  s   
))UH%Z		-D
ECWW__S"b$/Fyy$:biik+BCH8V, ::bnnY78DhhsBD1G

+I9g.::bnnYHIDhhsBD1G

+I9g.r3   c                    t        j                  dgt        t        j	                                     } | j
                  j                  dd      }t        j                  dgt        t        j	                                     }t        j                  ||       | j
                  j                  dd      }t        j                  dgt        t        j	                                     }t        j                  ||       y )NabcdrW   r  X	XaXbXcXdXr  rc  s      r1   test_str_replace_empty_patternr  v  s    
))VHJryy{$;
<CWW__R$Fyy&BIIK)@AH68,WW__R%Fyy+j.EFH68,r3   c                    t        j                  dd gt        t        j	                                     } t        j                  t        d      5  | j                  j                  ddg       d d d        y # 1 sw Y   y xY w)Nr  rW   zrepeat is notr   r?   r;   )
re   r   r   r-   r   r*   r(   rd   rU  r  r  s    r1   test_str_repeat_unsupportedr    sY    
))UDMBIIK)@
AC	*/	B 1v  r  c                 6   t        j                  dd gt        t        j	                                     } | j
                  j                  d      }t        j                  dd gt        t        j	                                     }t        j                  ||       y )Nr  rW   r;   r  )	re   r   r   r-   r   rU  r  r   r   rc  s      r1   test_str_repeatr    sc    
))UDMBIIK)@
ACWW^^AFyy(D)BIIK1HIH68,r3   zpat, case, na, expc                8   t        j                  dd gt        t        j	                                     }|j
                  j                  | ||      }t        j                  |t        t        j                                     }t        j                  ||       y )Nr  rW   r  r  )
re   r   r   r-   r   rU  r   r  r   r   r  r  r  r  r   r   r   s          r1   test_str_matchr     sf     ))UDMBIIK)@
ACWW]]3Tb]1FyyJrxxz$:;H68,r3   TFFNAbc)FFFNabc$zabc\$FTFNzAbc$zAbc\$z(abc)|(abx)z((abc)|(abx))c                8   t        j                  g dt        t        j	                                     }|j
                  j                  | ||      }t        j                  |t        t        j                                     }t        j                  ||       y )N)r  r  z$abcNrW   r  )
re   r   r   r-   r   rU  	fullmatchr  r   r   r  s          r1   test_str_fullmatchr    sf    , ))1BIIK9P
QCWWs"5FyyJrxxz$:;H68,r3   zsub, start, end, expr  r  c                8   t        j                  dd gt        t        j	                                     }|j
                  j                  | ||      }t        j                  |t        t        j                                     }t        j                  ||       y )Nr  rW   )startend
re   r   r   r-   r   rU  findr"  r   r   )subr	  r
  r  r   r   r   s          r1   test_str_findr    sf     ))UDMBIIK)@
ACWW\\#U\4FyyJrxxz$:;H68,r3   c                 <   t        j                  dd gt        t        j	                                     } | j
                  j                  ddd      }t        j                  dd gt        t        j                                     }t        j                  ||       y )Nr  rW   rM   ir  r  r	  r
  r?   r  rc  s      r1   test_str_find_negative_startr    sh    
))UDMBIIK)@
ACWW\\cA\6Fyy!T*RXXZ*@AH68,r3   c                    t        j                  dd gt        t        j	                                     } | j
                  j                  dd      }t        j                  dd gd      }t        j                  ||       y )Nr  rW   r  r?   )r	  rA   r   )	re   r   r   r-   r   rU  r  r   r   rc  s      r1   test_str_find_no_endr    s\    
))UDMBIIK)@
ACWW\\$a\(Fyy"d+;<H68,r3   c                 <   t        j                  dd gt        t        j	                                     } | j
                  j                  ddd      }t        j                  dd gt        t        j                                     }t        j                  ||       y )NabcdefgrW   dr  r  r  r  rc  s      r1   )test_str_find_negative_start_negative_endr    si    
))Y%Z		-D
ECWW\\c\4Fyy!T*RXXZ*@AH68,r3   c                 :   t        j                  dd gt        t        j	                                     } | j
                  j                  dd      }t        j                  dd gt        t        j                                     }t        j                  ||       y )Nr  rW   r  r7  )r  r	  rA   r  rc  s      r1   test_str_find_large_startr    sg    
))Y%Z		-D
ECWW\\c\,Fyy"d:bhhj+ABH68,r3   r	  )r  r   r?      Nr
  )r  rA   r   r  r  Nr  )r  azabcerL   caac                j   t        j                  g dt        t        j	                                     }|j                  t        j                  d            }|j                  j                  || |      }|j                  j                  || |      j                  |j                        }t        j                  ||       |j                  t        j                  d            }|j                  j                  || |      j                  |j                        }t        j                  ||       y )N)abcaadefr  abcdeddefgj8292r  rL   r  rW   rJ  r  r#   )re   r   r   r-   r   r   r  rU  r  r9   r   r   )	r	  r
  r  r  object_seriesr   r   arrow_str_seriesresult2s	            r1   test_str_find_e2er&    s     			=%	A HHR^^H=>MUUZZUC(F  %%c5#6==fllKH68,xxy AB""''UC8??MG7H-r3   c                 <   t        j                  dd gt        t        j	                                     } | j
                  j                  ddd      }t        j                  dd gt        t        j                                     }t        j                  ||       y )Nr  rW   r  r  r  r  rA   r  rc  s      r1   2test_str_find_negative_start_negative_end_no_matchr(    si    
))Y%Z		-D
ECWW\\c\4Fyy"d:bhhj+ABH68,r3   zi, exp)rM   r  N)rr   r  Nr;   )rr   NN)rL   NNr  c                2   t        j                  g dt        t        j	                                     }|j
                  j                  |       }t        j                  |t        t        j	                                     }t        j                  ||       y )N)r  deNrW   )	re   r   r   r-   r   rU  r  r   r   )r  r  r   r   r   s        r1   test_str_getr+    s\     ))'z"))+/F
GCWW[[^FyyJryy{$;<H68,r3   z=TODO: StringMethods._validate should support Arrow list typesr   c            
     Z   t        j                  t        t        j	                  t        d      t        d      d g                  } | j                  j                  d      }t        j                  g dt        t        j                                     }t        j                  ||       y )Nr  123=za=b=cz1=2=3NrW   )re   r   r$   r-   rf   r   rU  joinr   r   r   r   rc  s      r1   test_str_joinr1    sn    
 ))'$u+tE{D1Q(RS
TCWW\\#Fyy1BIIK9PQH68,r3   c                 4   t        j                  t        t        j	                  g d                  } | j
                  j                  d      }t        j                  g dt        t        j                                     }t        j                  ||       y )N)r  r-  Nr.  r/  rW   )re   r   r$   r-   rf   rU  r0  r   r   r   r   rc  s      r1   test_str_join_string_typer3  #  s^    
))'1E(FG
HCWW\\#Fyy1BIIK9PQH68,r3   zstart, stop, step, expdcbac                6   t        j                  dd gt        t        j	                                     }|j
                  j                  | ||      }t        j                  |t        t        j	                                     }t        j                  ||       y Nr  rW   )	re   r   r   r-   r   rU  slicer   r   )r	  stopstepr  r   r   r   s          r1   test_str_slicer:  *  sd     ))VTN*RYY[*A
BCWW]]5$-FyyJryy{$;<H68,r3   zstart, stop, repl, expaxcdxcdcdc                6   t        j                  dd gt        t        j	                                     }|j
                  j                  | ||      }t        j                  |t        t        j	                                     }t        j                  ||       y r6  )	re   r   r   r-   r   rU  slice_replacer   r   )r	  r8  r  r  r   r   r   s          r1   test_str_slice_replacer@  :  sf     ))VTN*RYY[*A
BCWW""5$5FyyJryy{$;<H68,r3   zvalue, method, exp)a1cisalnumT)z!|,rB  F)aaaisalphaT)z!!!rD  F)u   ٠	isdecimalT)z~!rE  F)rN   isdigitT)~rF  F)rC  islowerT)aaArH  F)r-  	isnumericT)11IrJ  F) isspaceT)r  rM  F)zThe ThatistitleT)zthe ThatrN  F)AAAisupperT)AAcrP  Fc                6   t        j                  | d gt        t        j	                                     } t        |j                  |             }t        j                  |d gt        t        j                                     }t        j                  ||       y r   r  )valuemethodr  r   r   r   s         r1   test_str_is_functionsrU  I  sg    0 ))UDMBIIK)@
AC%WSWWf%'Fyy#tJrxxz,BCH68,r3   zmethod, exp
capitalizezAbc deftitlezAbc DefswapcasezAbC Defr  zabc defupperzABC DEFcasefoldc                6   t        j                  dd gt        t        j	                                     } t        |j                  |              }t        j                  |d gt        t        j	                                     }t        j                  ||       y )NzaBc dEFrW   	re   r   r   r-   r   r   rU  r   r   )rT  r  r   r   r   s        r1   test_str_transform_functionsr]  g  sh     ))Y%Z		-D
EC%WSWWf%'Fyy#tJryy{,CDH68,r3   c                 4   t        j                  dd gt        t        j	                                     } | j
                  j                         }t        j                  dd gt        t        j                                     }t        j                  ||       y )Nr  rW   rq   )
re   r   r   r-   r   rU  r   r  r   r   rc  s      r1   test_str_lenr_  y  s_    
))VTN*RYY[*A
BCWW[[]Fyy!T*RXXZ*@AH68,r3   zmethod, to_strip, val)rs  Nz abc )rs  r   xabcx)lstripNz abc)ra  r   xabc)rstripNzabc )rc  r   abcxc                :   t        j                  |d gt        t        j	                                     } t        |j                  |       |      }t        j                  dd gt        t        j	                                     }t        j                  ||       y )NrW   )to_stripr  r\  )rT  rf  valr   r   r   s         r1   test_str_striprh    si     ))S$Kz"))+'>
?C%WSWWf%x8Fyy%j.EFH68,r3   rg  abc123c                6   t        j                  | d gt        t        j	                                     }|j
                  j                  d      }t        j                  dd gt        t        j	                                     }t        j                  ||       y NrW   r-  r  )	re   r   r   r-   r   rU  removesuffixr   r   rg  r   r   r   s       r1   test_str_removesuffixrn    d    
))S$Kz"))+'>
?CWW!!%(Fyy%j.EFH68,r3   123abcc                6   t        j                  | d gt        t        j	                                     }|j
                  j                  d      }t        j                  dd gt        t        j	                                     }t        j                  ||       y rk  )	re   r   r   r-   r   rU  removeprefixr   r   rm  s       r1   test_str_removeprefixrs    ro  r3   rh  r   r   zencoding, exputf8s   abc)littlebigutf32s     a   b   c   s        a   b   cc                Z   t        j                  dd gt        t        j	                                     }|j
                  j                  ||       }t        j                  |t        j                     d gt        t        j                                     }t        j                  ||       y Nr  rW   )re   r   r   r-   r   rU  encodesys	byteorderr  r   r   )rh  encodingr  r   r   r   s         r1   test_str_encoder~    sp      ))UDMBIIK)@
ACWW^^Hf-Fyy#cmm,d3:biik;RSH68,r3   c           	     d   t        j                  g dt        t        j	                                     }|j
                  j                  d|       }t        j                  dgg d gt        t        j                  t        j	                                           }t        j                  ||       y )N)r  r  NrW   rM   r  )
re   r   r   r-   r   rU  findalllist_r   r   )r  r   r   r   s       r1   test_str_findallr    sq    
))(
299;0G
HCWW__S_.Fyy3%T**RXXbiik=R2STH68,r3   rT  rQ  rindexz
start, endc                   t        j                  dd gt        t        j	                                     } t        |j                  |       d||      }t        j                  dd gt        t        j                                     }t        j                  ||       t        j                  t        d      5   t        |j                  |       d||       d d d        y # 1 sw Y   y xY w)NabcbarW   rr   r;   zsubstring not foundr   r  )re   r   r   r-   r   r   rU  r"  r   r   r*   r(   rS  )rT  r	  r
  r   r   r   s         r1   test_str_r_indexr    s     ))WdO:biik+B
CC%WSWWf%c5#6Fyy!T*RXXZ*@AH68,	z)>	? 4  s34 4 4s   8C  C)formNFCNFKCc                    t        j                  dd gt        t        j	                                     }|j
                  j                  |       }|j                         }t        j                  ||       y ry  )
re   r   r   r-   r   rU  	normalizerA  r   r   )r  r   r   r   s       r1   test_str_normalizer    sP    
))UDMBIIK)@
ACWWt$FxxzH68,r3   c                :   t        j                  g dt        t        j	                                     }|j
                  j                  d| |      }t        j                  g dt        t        j                                     }t        j                  ||       y )N)r  r  NrW   rr   )r;   rA   N)
re   r   r   r-   r   rU  rfindr"  r   r   )r	  r
  r   r   r   s        r1   test_str_rfindr    sa     ))**RYY[2I
JCWW]]3s+Fyyj.DEH68,r3   c                 :   t        j                  dd gt        t        j	                                     } | j
                  j                  ddi      }t        j                  dd gt        t        j	                                     }t        j                  ||       y )Nr  rW   a   rM   bbcbb)	re   r   r   r-   r   rU  	translater   r   rc  s      r1   test_str_translater    sh    
))WdO:biik+B
CCWWCy)Fyy'4
299;0GHH68,r3   c                 6   t        j                  dd gt        t        j	                                     } | j
                  j                  d      }t        j                  dd gt        t        j	                                     }t        j                  ||       y )Nr  rW   r  zabc
ba)	re   r   r   r-   r   rU  wrapr   r   rc  s      r1   test_str_wrapr    sb    
))WdO:biik+B
CCWW\\!_Fyy)T**RYY[2IJH68,r3   c                 H   t        j                  g dt        t        j	                                     } | j
                  j                         }t        j                  g dg dg dgt        t        j                               g d      }t        j                  ||       y )N)za|bNza|crW   )TTFr  r?  )rL   rM   rr   r9   r  )re   r   r   r-   r   rU  get_dummiesrT  r  r   rX  rc  s      r1   test_get_dummiesr    sm    
))(
299;0G
HCWW  "F||	35HI$H
 &(+r3   c                    t        j                  dd gt        t        j	                                     } | j
                  j                  d      }t        j                  g dg dgt        t        j	                               t        j                  d            }t        j                  ||d	       | j
                  j                  dd
      }t        j                  t        t        j                  g dd g                  }t        j                  ||       | j
                  j                  d      }t        j                  g dg dgt        t        j	                               t        j                  d            }t        j                  ||d	       | j
                  j                  dd
      }t        j                  t        t        j                  g dd g                  }t        j                  ||       y )Nr  rW   rM   )rL   rM   cbar  r  r  T)check_column_typeFexpand)r  rM   rL   )re   r   r   r-   r   rU  	partitionrT  
RangeIndexr   rX  r$   rf   r   
rpartitionrc  s      r1   test_str_partitionr  	  sk   
))WdO:biik+B
CCWWs#F||	./%a H
 &(dCWWs51Fyy,RXX7H$6O-PQRH68,WW$F||	./%a H
 &(dCWWE2Fyy,RXX7H$6O-PQRH68,r3   rsplitsplitc                8   t        j                  dd gt        t        j	                                     } t        |j                  |              }t        j                  t        t        j                  g dd g                  }t        j                  ||       y )Nza1 cbc
brW   )a1cbcrM   )re   r   r   r-   r   r   rU  r$   rf   r   r   rT  r   r   r   s       r1   test_str_split_pat_noner  	  sl     ))[$'z"))+/F
GC%WSWWf%'Fyy,RXX7I46P-QRSH68,r3   c            	        t        j                  g dt        t        j	                                     } | j
                  j                  d      }t        j                  t        t        j                  g dg dd g                  }t        j                  ||       | j
                  j                  dd      }t        j                  t        t        j                  dd	gd
d	gd g                  }t        j                  ||       | j
                  j                  dd      }t        j                  t        t        j                  ddgddgd g                  }t        j                  ||       | j
                  j                  ddd      }t        j                  t        t        j                  g d            t        t        j                  g d            d      }t        j                  ||       | j
                  j                  dd      }t        j                  t        t        j                  g d            t        t        j                  g d            d      }t        j                  ||       y )Na1cbcba2cbcbNrW   rr   r  rM   rM   a2rM   rM   r?   r  r  bcbr  z[1-2]Tr  rL   cbcb)r  r  )rL   rL   N)r  r  Nr   r?   rC   r  rL   r  Nr  NN)re   r   r   r-   r   rU  r  r$   rf   r   r   rT  rX  rc  s      r1   test_str_splitr  %	  s   
)).j6M
NCWW]]3FyyBHH&68H$%OPQH 68,WW]]3!]$FyyBHHtUmdE]D%IJKH 68,WW]]7$]/FyyBHHsFmc6]D%IJKH 68,WW]]7$t]<F||"288,<#=>"288,B#CD	
H &(+WW]]3t],F||"288,A#BC"288,@#AB	
H &(+r3   c            	     2   t        j                  g dt        t        j	                                     } | j
                  j                  d      }t        j                  t        t        j                  g dg dd g                  }t        j                  ||       | j
                  j                  dd      }t        j                  t        t        j                  dd	gd
d	gd g                  }t        j                  ||       | j
                  j                  ddd      }t        j                  t        t        j                  g d            t        t        j                  g d            d      }t        j                  ||       | j
                  j                  dd      }t        j                  t        t        j                  g d            t        t        j                  g d            d      }t        j                  ||       y )Nr  rW   rr   r  r  r?   r  a1cbrM   a2cbT)r  r  )r  r  N)rM   rM   Nr  rC   r  r  r  )re   r   r   r-   r   rU  r  r$   rf   r   r   rT  rX  rc  s      r1   test_str_rsplitr  M	  s   
)).j6M
NCWW^^C FyyBHH&68H$%OPQH 68,WW^^C1^%FyyBHHvsmfc]D%IJKH 68,WW^^C1T^2F||"288,B#CD"288,<#=>	
H &(+WW^^C^-F||"288,A#BC"288,@#AB	
H &(+r3   c                    t        j                  g dt        t        j	                                     } t        j                  t        d      5  | j                  j                  d       d d d        y # 1 sw Y   y xY w)Nr  b2c3rW   z*pat=.* must contain a symbolic group name.r   z[ab](\d))
re   r   r   r-   r   r*   r(   rS  rU  extractr  s    r1   test_str_extract_non_symbolicr  o	  sR    
))&j.E
FC	z)U	V %$% % %   A55A>r  c           	     z   t        j                  g dt        t        j	                                     }|j
                  j                  d|       }t        j                  t        t        j                  g d            t        t        j                  g d            d      }t        j                  ||       y )Nr  rW   z(?P<letter>[ab])(?P<digit>\d)r  )rL   rM   NrC   rN   N)letterdigit)re   r   r   r-   r   rU  r  rT  r$   rf   r   rX  )r  r   r   r   s       r1   test_str_extractr  u	  s~    
))&j.E
FCWW__=f_MF||)"((3C*DE(2B)CD	
H &(+r3   c            	        t        j                  g dt        t        j	                                     } | j
                  j                  dd      }t        j                  dt        t        j                  g d            i      }t        j                  ||       | j
                  j                  dd      }t        j                  t        t        j                  g d            d	      }t        j                  ||       y )
Nr  rW   z[ab](?P<digit>\d)Tr  r  r  Fr  )re   r   r   r-   r   rU  r  rT  r$   rf   r   rX  r   rc  s      r1   test_str_extract_expandr  	  s    
))&j.E
FCWW__1$_?F||(2B)CD	
H
 &(+WW__1%_@Fyy,RXX6F-GHwWH68,r3   r  )rN  rM  msr  c                    ddg}t         j                  |       }t        |      }t        j                  ||      }t        t         j                  dd g|            }t        j                  ||       y )N1000NaTrW     r  )r-   r  r   r$   r   rf   r   r   )r  stringsr   r9   r   r   s         r1   #test_duration_from_strings_with_natr  	  sb     uoGkk$GwE ::7%PF"288T4Lw8#GHH##FH5r3   c                   | j                   j                  }t        j                  j	                  |      sDt        j                  t        d      5  t        j                  |       j                   d d d        y y # 1 sw Y   y xY w)Nz2Can only use .dt accessor with datetimelike valuesr   )r9   r7   r-   rX   r   r*   r(   AttributeErrorre   r   r&  r   s     r1   test_unsupported_dtr  	  sg    zz''H88)]]"V
 	 IIdO	 	 *	 	s    A;;Bzprop, expectedyear  dayday_of_week	dayofweekweekdayday_of_year	dayofyearhourminuteis_leap_yearmicrosecond  month
nanosecondr  quartersecondry   r   r   c                   t        j                  t        j                  dddddddd	      d gt        t        j                  d
                  }t        |j                  |       }d }t        |t              rt        j                         }n%t        |t              rt        j                  d
      }t        j                  t        t        j                  |d g|                  }t        j                   ||       y )Nr  r?   r;   r  rq   ry   r  r  )r  r  r  r  r  r  r  r  rN  rW   r  )re   r   r  r   r-   r  r   r&  r   r   r  r   time64r$   rf   r   r   )propr   r   r   exp_types        r1   test_dt_propertiesr  	  s    . ))LL 	 	
 d+,C  SVVT"FH(D!99;	Hd	#99T?yy,RXXx6FXX-VWXH68,r3   )r  rK   r   c           
     *   t        j                  t        j                  dddd| d      d gt        t        j                  d                  }|j                  j                  }t        j                  | d gd      }t        j                  ||       y )	N  ry   rK   r  )r  r  r  r  r  r  rN  rW   r   )
re   r   r  r   r-   r  r&  r  r   r   )r  r   r   r   s       r1   test_dt_microsecondr  	  s     ))LL' 
	
 d+,C VVFyy+t,4DEH68,r3   c            
     @   t        j                  t        dddd      t        dddd      t        dddd      d gt        t        j                  d            	      } | j                  j                  }t        j                  g d
t        t        j                               	      }t        j                  ||       | j                  j                  }t        j                  g dt        t        j                               	      }t        j                  ||       y )Nr  rG   r;   r  r  r  r  r  r?   rH   rM  rW   r  FFTN)re   r   r   r   r-   r  r&  is_month_startr  r   r   is_month_endrc  s      r1   test_dt_is_month_start_endr  	  s    
))$baa8$aQQ7$aRa8		
 d+,C VV""Fyy3:bhhj;QRH68,VV  Fyy3:bhhj;QRH68,r3   c            
     @   t        j                  t        dddd      t        dddd      t        dddd      d gt        t        j                  d                  } | j                  j                  }t        j                  g d	t        t        j                                     }t        j                  ||       | j                  j                  }t        j                  g d
t        t        j                                     }t        j                  ||       y )Nr  rG   rH   r  r  r?   rM  rW   r  r  )re   r   r   r   r-   r  r&  is_year_startr  r   r   is_year_endrc  s      r1   test_dt_is_year_start_endr  	  s    
))$bbq9$aQQ7$aRa8		
 d+,C VV!!Fyy3:bhhj;QRH68,VVFyy3:bhhj;QRH68,r3   c            
     @   t        j                  t        dddd      t        dddd      t        dddd      d gt        t        j                  d            	      } | j                  j                  }t        j                  g d
t        t        j                               	      }t        j                  ||       | j                  j                  }t        j                  g dt        t        j                               	      }t        j                  ||       y )Nr        r  r  r?   rH   rM  rW   r  r  )re   r   r   r   r-   r  r&  is_quarter_startr  r   r   is_quarter_endrc  s      r1   test_dt_is_quarter_start_endr  
  s    
))$bbq9$aQQ7$aRa8		
 d+,C VV$$Fyy3:bhhj;QRH68,VV""Fyy3:bhhj;QRH68,r3   days_in_monthdaysinmonthc           
        t        j                  t        dddd      t        dddd      t        dddd      d gt        t        j                  d            	      }t        |j                  |       }t        j                  g d
t        t        j                               	      }t        j                  ||       y )Nr  r  r  r  rq   r?   r;   rM  rW   )rH   r     N)re   r   r   r   r-   r  r   r&  r"  r   r   r  s       r1   test_dt_days_in_monthr  %
  s    
))$aRa8$aQQ7$aQQ7		
 d+,C SVVV$Fyy+:bhhj3IJH68,r3   c                    t        j                  t        ddd      t        dddd      t        dddd	d
d
      d gt        t        j                  d                  } | j                  j                         }t        j                  t        ddd      t        ddd      t        ddd      d gt        t        j                  d                  }t        j                  ||       y )Nr  r  r  r  r  r  rq   r?   r  r;      ;   )r  r  r  r  r  r  rM  rW   )
re   r   r   r   r-   r  r&  r  r   r   rc  s      r1   test_dt_normalizer	  5
  s    
))$aR0$aQQ7$aQR2N		
 d+,C VVFyy$aR0$aQ/$aQ/		
 d+,H 68,r3   rM  rN  c           
        t        j                  t        dddd      d gt        t        j                  |                   }|j                  j                  | k(  sJ |j                  j                  }t        j                  t        t        j                  t        dd      d gt        j                  |                         }t        j                  ||       y )	Nr  r?   r;   r  r  rW   r   r  )re   r   r   r   r-   r  r&  r  r   r$   rf   r  r   r   r  r   r   r   s       r1   test_dt_time_preserve_unitr  L
  s    
))	t1!!	4d;d+,C 66;;$VV[[FyyBHHd1aj$%7biioHNOH 68,r3   r   )Nr  
US/Pacificc           	         t        j                  t        dddd      d gt        t        j                  d|                   }|j                  j                  }|t        j                  |       k(  sJ y )	Nr  r?   r;   r  r  rN  r   rW   )
re   r   r   r   r-   r  r&  r   r   maybe_get_tz)r   r   r   s      r1   
test_dt_tzr  [
  s`    
))	t1!!	4d;dr23C VVYYFY++B////r3   c                 (   t        j                  t        dddd      d gt        t        j                  d                  } | j                  j                         }t        j                  g dg d	gg d
d      }t        j                  ||       y )Nr  r?   r;   r  r  rN  rW   )r  r?   r?   r  )r  weekr  r   r  r9   )re   r   r   r   r-   r  r&  isocalendarrT  r   rX  rc  s      r1   test_dt_isocalendarr  e
  sv    
))	t1!!	4d;d+,C VV!F||	y!'H
 &(+r3   day_nameSunday
month_nameJanuaryc                d   t        |       t        j                  t        ddd      d gt	        t
        j                  d                  } t        |j                  |              }t        j                  |d gt	        t
        j                                     }t        j                  ||       y )Nr  r?   r  rW   )r2   re   r   r   r   r-   r  r   r&  r   r   r   )rT  r  r0   r   r   r   s         r1   test_dt_day_month_namer  s
  s}    
 w'
))XdAq)40
2<<PTCU8V
WC$WSVVV$&Fyy#tJryy{,CDH68,r3   c                h   t        |        t        j                  t        dddd      d gt	        t
        j                  d                  }|j                  j                  d      }t        j                  d	d gt	        t
        j                                     }t        j                  ||       y )
Nr  r?   r;   r  r  rN  rW   z%Y-%m-%dT%H:%M:%Sz2023-01-02T03:00:00.000000000)r2   re   r   r   r   r-   r  r&  strftimer   r   r   r0   r   r   r   s       r1   test_dt_strftimer   
  s    w'
))	t1!!	4d;d+,C VV__01Fyy	($/z"))+7NH 68,r3   )ceilr'  r  c                   t        j                  t        dddd      d gt        t        j                  d                  }t        j                  t        d	      5   t        |j                  |       d
d       d d d        t        j                  t        d	      5   t        |j                  |       d
d       d d d        y # 1 sw Y   LxY w# 1 sw Y   y xY w)Nr  r?   r;   r  r  rN  rW   zambiguous is not supported.r   1hr  	ambiguousznonexistent is not supported.nonexistent)re   r   r   r   r-   r  r*   r(   rd   r   r&  rT  r   s     r1   *test_dt_roundlike_tz_options_not_supportedr)  
  s    
))	t1!!	4d;d+,C 
*2O	P 767 
*2Q	R 9%89 97 79 9s   C CCCc                   t        j                  t        dddd      d gt        t        j                  d                  }t        j                  t        d	      5   t        |j                  |       d
       d d d        t        j                  t        d	      5   t        |j                  |       d        d d d        y # 1 sw Y   JxY w# 1 sw Y   y xY w)Nr  r?   r;   r  r  rN  rW   zfreq='1B' is not supportedr   1Bz$Must specify a valid frequency: None)re   r   r   r   r-   r  r*   r(   rS  r   r&  r(  s     r1   "test_dt_roundlike_unsupported_freqr,  
  s    
))	t1!!	4d;d+,C 
z)E	F &%& 
z)O	P &%& && && &s   CCCCfreq)Dhr  r  r  rM  rN  c                j   t        j                  t        ddd      d g      }t        t        j                  d            } t        |j                  |      d|        j                  |      } t        |j                  |      j                  |      d|        }t        j                  ||       y )Nr  r?   r  rN  rC   )re   r   r   r   r-   r  r   r&  r   r   r   )r-  rT  r   rg   r   r   s         r1   test_dt_ceil_year_floorr1  
  s     ))	t1!	,d3C ",,t,-H&wsvvv&4&z299(CH5WSZZ),,f5$jAF68,r3   c                    t        ddd      t        ddd      g} t        j                  | t        t        j                  d                  }|j                  j                         }t        j                  | t              t        j                  |       t        fdt        t                    D              sJ |j                  d      j                  j                         t        j                  |       y )NrE   r?   r  rN  rW   c              3  Z   K   | ]"  }t        j                  |         t        u  $ y wr   )rk   r  r   ).0r  r   s     r1   	<genexpr>z(test_dt_to_pydatetime.<locals>.<genexpr>
  s$     PatHMM!$%1Ps   (+datetime64[ns])r   re   r   r   r-   r  r&  r%  r   r   r   r   r   r   r   rh   r   r   r   s      @r1   test_dt_to_pydatetimer8  
  s    T1a (4A"67D
))D
2<<+= >
?CVV!!#FyyV,H68,P5X;OPPPPzz*+..<<>H68,r3   	date_typer   @   c                   t        j                  t        ddd      gt         t	        t
        d|                           }t        j                  t        d      5  |j                  j                          d d d        y # 1 sw Y   y xY w)NrE   rG   rH   r   rW   z#to_pydatetime cannot be called withr   )re   r   r   r   r   r-   r*   r(   rS  r&  r%  )r9  r   s     r1    test_dt_to_pydatetime_date_errorr<  
  ss     ))	dB	8tI;%78:;C 
z)N	O   s   BBc                    t        j                  t        dddd      d gt        t        j                  d                  } t        j                  t        d	      5  | j                  j                  d
d       d d d        t        j                  t        d	      5  | j                  j                  d
d       d d d        y # 1 sw Y   KxY w# 1 sw Y   y xY w)Nr  r?   r;   r  r  rN  rW   z ambiguous='NaT' is not supportedr   r  r  r$  z"nonexistent='NaT' is not supportedr&  )re   r   r   r   r-   r  r*   r(   rd   r&  tz_localizer  s    r1   *test_dt_tz_localize_unsupported_tz_optionsr?  
  s    
))	t1!!	4d;d+,C 
*2T	U 35E23 
*2V	W 55e45 53 35 5s   CCCCc           	        t        |        t        j                  t        dddd      d gt	        t
        j                  dd            	      }|j                  j                  d       }t        j                  |d
   j                  d       d gt	        t
        j                  d            	      }t        j                  ||       y )Nr  r?   r;   r  r  rN  r  r  rW   r   )r2   re   r   r   r   r-   r  r&  r>  r   r   r  s       r1   test_dt_tz_localize_nonerA  
  s    w'
))	t1!!	4d;d|<=C VV%Fyy	Q		D	!4(d+,H 68,r3   c                   t        |       t        j                  t        dddd      d gt	        t
        j                  |                   }|j                  j                  d      }t
        j                  t        dddd      d gt
        j                  |             }t
        j                  j                  |d      }t        j                  t        |            }t        j                  ||       y )	Nr  r?   r;   r  r  rW   r  r  r2   re   r   r   r   r-   r  r&  r>  rf   computeassume_timezoner$   r   r   )r  r0   r   r   exp_datar   s         r1   test_dt_tz_localizerG  
  s    w'
))	t1!!	4d;d+,C VV-Fxx	t1!!	4d;",,tBT  H zz))(LAHyy,X67H68,r3   znonexistent, exp_dateshift_forwardrG   r  shift_backwardz2023-03-12 01:59:59.999999999c           	        t        |       t        j                  t        ddddd      d gt	        t
        j                  d                  }|j                  j                  d	| 
      }t
        j                  |d gt
        j                  d            }t
        j                  j                  |d	      }t        j                  t        |            }t        j                  ||       y )Nr  r  rG   r;   r  )r  r  r  r  r  rN  rW   r  r&  r  rC  )r'  exp_dater0   r   r   rF  r   s          r1   test_dt_tz_localize_nonexistentrL  
  s     w'
))	t1"1R	@$Gd+,C VV+FFxx4(r||D/AxBHzz))(LAHyy,X67H68,r3   c                    t        j                  t        dddd      d gt        t        j                  d                  } t        j                  t        d	      5  | j                  j                  d
       d d d        y # 1 sw Y   y xY w)Nr  r?   r;   r  r  rN  rW   z"Cannot convert tz-naive timestampsr   r  )re   r   r   r   r-   r  r*   r(   r   r&  
tz_convertr  s    r1    test_dt_tz_convert_not_tz_raisesrO    sl    
))	t1!!	4d;d+,C 
y(L	M !% ! ! !s   BBc            	     z   t        j                  t        dddd      d gt        t        j                  dd                  } | j                  j                  d       }t        j                  | d	   j                  d       d gt        t        j                  d                  }t        j                  ||       y )
Nr  r?   r;   r  r  rN  r  rW   r   
re   r   r   r   r-   r  r&  rN  r   r   rc  s      r1   test_dt_tz_convert_nonerR    s    
))	t1!!	4d;dL9:C VVt$Fyy	Q		4	 $'d+,H 68,r3   c           	     |   t        j                  t        dddd      d gt        t        j                  | d                  }|j                  j                  d      }t        j                  |d	   j                  d      d gt        t        j                  | d                  }t        j                  ||       y )
Nr  r?   r;   r  r  r  rW   
US/Easternr   rQ  r  s       r1   test_dt_tz_convertrU  #  s    
))	t1!!	4d;dL9:C VV|,Fyy	Q		<	($/dL9:H 68,r3   r9   ztimestamp[ms][pyarrow]zduration[ms][pyarrow]c                    t        j                  dd g|       }|j                  j                  d      }|j	                  | j                  dd            }t        j                  ||       y )Nr  rW   rN  r  )re   r   r&  as_unitr   r  r   r   r  s       r1   test_as_unitrX  1  sS     ))T4L
.CVV^^D!Fzz%--d34H68,r3   zfrom_unit,to_unit)rN  rM  rN  r  rN  r  )rM  r  )rM  r  )r  r  )r  r  )r  rM  r  rN  )r  rM  r  rN  rL  c                b   t        j                  t        j                  dd gd      j                  |             }|j	                  d|  d      }|j
                  j                  |      }|j
                  j                  |      j	                  d| d      }t        j                  ||       y )Nl   @W/U rN  r  	duration[
][pyarrow])re   r   to_timedeltarW  r   r&  r   r   )	from_unitto_unit	ser_numpy	ser_arrowr   r   s         r1    test_as_unit_duration_truncationrg  :  s    ( 		
.T:BB9MI   9YKz!BCI\\!!'*F||##G,33iy
4STH68,r3   )rY  rZ  r[  r\  r]  rL  c                    t        j                  t        j                  d      d gd|  d      }|j                  d|  d      }|j                  j                  |      }|j                  j                  |      }t        j                  |j                         j                  d| d      |j                         j                                |j                         j                         |j                         j                         k(  sJ y )N2024-01-15 12:30:45.123456789
timestamp[ra  rW   zdatetime64[r!  )re   r   r  r   r&  rW  r   r   r/  r   r<  r   )rc  rd  rf  re  r   expected_numpys         r1   test_as_unit_timestamprl  X  s     			5	6=9+Z0I   ;yk!;<I\\!!'*F\\))'2N  WIQ'? @((*
 ;;=).."2"6"6"8888r3   rd  )r  r  rM  rN  c                   t        j                  t        j                  dg      j                  d      j	                  d            }|j                  d      }|j                  j	                  |       }|j                  j	                  |       j                  d|  d      }t        j                  ||       t        |j                        d|  dk(  sJ y )Nri  rT  rN  "timestamp[ns, US/Eastern][pyarrow]rj  z, US/Eastern][pyarrow]z, tz=US/Eastern][pyarrow])re   r   to_datetimer>  rW  r   r&  r   r   rU  r9   )rd  re  rf  r   r   s        r1   $test_as_unit_timestamp_with_timezonerp  w  s     		
789	\	"	I
   !EFI\\!!'*F||##G,33
WI34H 68,v||*WI5N OOOOr3   c                    t        j                  ddgt        t        j	                                     } t        j                  t        d      5  | j                  j                  d       d d d        y # 1 sw Y   y xY w)Nr?   r;   rW   zas_unit not implementedr   rN  )
re   r   r   r-   r  r*   r(   rd   r&  rW  r  s    r1   test_as_unit_date_raisesrr    sV    
))QF*RYY["9
:C	*2K	L t  r  dayssecondsmicrosecondsnanosecondsc           	        t        j                  t        j                  dddd      d gt        t        j                  d                  }t        |j                  |       }t        j                  t        t        j                  |d gt        j                                           }t        j                  ||       y )	Nr?   r;   r  rq   rs  rt  ru  rv  rN  rW   r  )re   r   	Timedeltar   r-   r  r   r&  r$   rf   r  r   r   )r  r   r   r   s       r1   test_dt_timedelta_propertiesrz    s     ))LL	 	
 T*+C SVVT"FyyBHHh%5BHHJHGHH 68,r3   c            	        t        j                  t        j                  dddd      d gt        t        j                  d                  } | j                  j                         }t        j                  t        t        j                  dd gt        j                         	                  }t        j                  ||       y )
Nr?   r;   r  rq   rx  rN  rW   gN%  @r  )re   r   ry  r   r-   r  r&  total_secondsr$   rf   r   r   r   rc  s      r1   test_dt_timedelta_total_secondsr}    s    
))LL	 	
 T*+C VV!!#FyyBHHlD%9

HMNH 68,r3   c                    t        ddd      t        ddd      g} t        j                  | t        t        j                  d                  }d}t        j                  t        |      5  |j                  j                         }d d d        t        j                  | t              }t        j                  |       t        d	 |D              sJ d
}t        j                  t        |      5  |j!                  d      j                  j                         }d d d        t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   ,xY w)Nr?   r;   r  rq   rN  rW   zDThe behavior of ArrowTemporalProperties.to_pytimedelta is deprecatedr   c              3  >   K   | ]  }t        |      t        u   y wr   )rk   r   )r4  ress     r1   r5  z)test_dt_to_pytimedelta.<locals>.<genexpr>  s     8#tCyI%8s   z@The behavior of TimedeltaProperties.to_pytimedelta is deprecatedtimedelta64[ns])r   re   r   r   r-   r  r   r_  r   r&  to_pytimedeltar   rf   r   r   r   r   )rh   r   r+  r   r   s        r1   test_dt_to_pytimedeltar    s   aA	!Q 23D
))D
2;;t+< =
>C
PC		#	#N#	> )&&()xxF+H188888
LC		#	#N#	> E::/033BBDE1) )E Es   +D90*E9EEc            
        t        j                  t        j                  dddd      d gt        t        j                  d                  } | j                  j                  }t        j                  g dt         j                  t         j                  t         j                  t         j                  t         j                  t         j                  t         j                  ggg d	d
      }t        j                  ||       y )Nr?   r;   r  rq   rx  rN  rW   )r?   r   r   r;   r   r  rq   rs  hoursminutesrt  millisecondsru  rv  r   r  re   r   ry  r   r-   r  r&  
componentsrT  rP  r   rX  rc  s      r1   test_dt_componentsr    s    
))LL	 	
 T*+C VVF||	ruubeeRUUBEE255 QR
 H &(+r3   c            
        t        j                  t        j                  d      d gt        t        j                  d                  } | j                  j                  }t        j                  g dt         j                  t         j                  t         j                  t         j                  t         j                  t         j                  t         j                  ggg dd      }t        j                  ||       y )Nz365 days 23:59:59.999000rN  rW   )im  r  r  r  i  r   r   r  r   r  r  rc  s      r1   test_dt_components_large_valuesr    s    
))LL34	
 T*+C VVF||(UUBEE255"%%ruu=	

 H  &(+r3   r   c                    t        j                  d gd      } t        ||       |      }|r| dk(  }nt         j                  }||u sJ y )Nr  rW   r   r   )re   r   r   rP  )r  r   r   r   r   s        r1   #test_boolean_reduce_series_all_nullr    sO     ))TF"4
5C1WS01@F)U255Xr3   c                    g d} g d}d g}| |z   |z   }dgt        |       z  dgt        |      z  z   d gt        |      z  z   }t        t        j                               }t	        j
                  ||      }t        j                  |d      }t        j                  ||       ddg}t        j                  t        j                  d	
      5  t	        j
                  ||       d d d        y # 1 sw Y   y xY w)N)trueTRUETruerC   ra  )falseFALSEFalse0rD   TFrW   r}  r  r  zFailed to parser   )r   r   r-   r  r$   r   re   rf   r   r   r*   r(   r.   )true_stringsfalse_stringsnullsr  boolsr9   r   r   s           r1   %test_from_sequence_of_strings_booleanr    s    7L;MFE]*U2G	\""eWs=/A%AATFSQVZDWW 
 rxxz"E ::7%PFxx%78H##FH5uoG	r.?	@ L55gUKL L Ls   C..C7c                    t        j                  g |       }|j                         }t        j                  |t	        j
                  g t        j                           g      }t        j                  ||       y r   )	re   r   rA  concatr   rf   r  r   r   )r9   r   r   r   s       r1   %test_concat_empty_arrow_backed_seriesr  /  sR    
))Be
$CxxzHYYBHHRrxx89:;F68,r3   r   string[pyarrow]c                    t         j                  dj                               }t        j                  ||       }t        j                  t        |      |       }t        j                  ||       y )Nzthe quick brown foxrW   )r-   rf   r  re   r   r$   r   r   )r9   r  r   r   s       r1   test_series_from_string_arrayr  7  sP    
(((..0
1C
))Cu
%Cyy,S1?H3)r3   c                       e Zd Z fdZ xZS )OldArrowExtensionArrayc                L    t         |          }|j                  d      |d<   |S )Nr   _data)r   __getstate__pop)r   stater   s     r1   r  z#OldArrowExtensionArray.__getstate__A  s'    $&;/gr3   )r  r  r  r  r  r  s   @r1   r  r  @  s     r3   r  c                 &   t         j                  dg      } t        |       }t        j                  t        j
                  |            }t        j                  ||       |j                  t         j                  |       k(  sJ t        |d      rJ y )Nr?   r  )r-   rf   r  rT  rV  rU  r   r   r   chunked_arrayhasattr)rh   r   r   s      r1   #test_pickle_old_arrowextensionarrayr  G  st    88QC=D%d+H\\&,,x01F##FH5r//5555vw''''r3   c                 6   d} t        t        j                  t        j                  | ft        j
                        g            }|j                         }d|t        j                  | ft        j
                        <   |j                  |j                  k(  sJ y )Nih6 rW   F)	r$   r-   r  r   onesr  rA  zerosr   )Nr  r   s      r1   /test_setitem_boolean_replace_with_mask_segfaultr  P  sn    A
b..BHH0M/NO
PCxxzH*/C!RXX&'==H.....r3   c                    t        j                  t        j                  dgdz  dgdz  d      t        j                  dgdz  dgdz  d      gd      } t        d      D ]"  }t         j                  | j
                  dgdf<   $ t        j                  | d   j                  d         sJ | d   j                  dd  dk(  j                         sJ | d	   dk(  j                         sJ y )
Nr   rK   r  Tignore_indexr   rL   r?   rM   )	re   r  rT  r   rP  locr<  r  r   )rY  rj  s     r1   &test_setitem_na_chunked_string_if_elser  Y  s    	LLuqyuqy9:LLuqyuqy9:	
 
B 1X !55sCx!772c7<<?###sGLL#((***sGsN!!!r3   zdata, arrow_dtyperQ   rR   c                    t        |      }t        j                  t        j                  |       |      }t        j                  | |      }t	        j
                  ||       y r   )r   re   rf   r   r   r   )rh   r;  r9   r   r   s        r1   -test_conversion_large_dtypes_from_numpy_arrayr  i  sF     {#EXXbhhtnE2FxxE*H##FH5r3   c                 :   t        j                  dd d git        t        j	                                     } t        j                  dddgid      }t        j
                  | |gd      }t        j                  dg did      }t        j                  ||       y )	NrL   rW   r   r?   r   Tr  )NNr   r?   )re   rT  r   r-   nullr  r   rX  )rY  df2r   r   s       r1   test_concat_null_arrayr  w  sz    	sT4L)BGGI1F	GB
,,aV},<
=CYYCyt4F||S"45=MNH&(+r3   c                   t        j                  g dt        |             }|j                         }t        j                  g dt        t        j                               g d      }t        j                  ||       y )Nr?   r;   r  rW   )r  r;   r?   r?   r&  g       @r  r  r   r   r   r  25%50%75%r
  r9   rQ  )re   r   r   describer-   r   r   r   r   rh   r   r   s       r1   test_describe_numeric_datar    sX     99Yj&9:D]]_Fyy&&IH
 68,r3   c                D   t        j                  t        dd      t        |             }|j	                         }t        j                  dgt        j
                  g d| j                        j                         t        g d      }t        j                  ||       y )	Nr?   rJ   rW   	   )rK   r;   r?   r  rK   ry   r  r_  r  r  )re   r   r   r   r  rb  r  r{  r   r   r   r  s       r1   test_describe_timedelta_datar    st     99U1b\G)<=D]]_Fyy	
PR__2FMMOPIH
 68,r3   c                b   t        j                  t        dd      t        |             }|j	                         }t        j                  dgdD cg c].  }t        j
                  || j                  | j                        0 c}z   t        g d      }t        j                  ||       y c c}w )	Nr?   rJ   rW   r  )rK   r?   r  rK   ry   r  )r   r  )r   r   r  r  r  r  r
  r  )re   r   r   r   r  r  r   r  r   r   r   )r   rh   r   vr   s        r1   test_describe_datetime_datar    s     99U1b\G)<=D]]_Fyy	
 (
 LLwzz=
	

 BH 68,
s   3B,
c                    g d}t        j                  |t        |             }|j                  d      }|d   }||k(  sJ y )Nr  rW   皙?r   )re   r   r   r  )r   rh   r   r   r   s        r1   test_quantile_temporalr    sC    
 D
))D
7 3
4C\\#F1vHXr3   c                     t         j                  t        j                  d      gt         j	                               } t        j                  | t        | j                              }t        |      dk(  sJ y )Nz
2020-01-01r  rW   z+0    2020-01-01
dtype: date32[day][pyarrow])
r-   rf   r   fromisoformatr  re   r   r   rk   repr)arrow_dtr   s     r1   test_date32_reprr    sT    xx++L9:xMH
))HJx}}$=
>C9FFFFr3   c                    t        j                  dd g      } t        j                  dd g      }t        j                  | t	        t
        j                  d                  }t        j                  |t	        t
        j                  d                  }||z   }t        j                  dd gt	        t
        j                  d                  }t        j                  ||       y )Nr?   rN  rW   r;   )
re   ro  rb  r   r   r-   r  r  r   r   )data_tsdata_tdser_tsser_tdr   r   s         r1   2test_duration_overflow_from_ndarray_containing_natr    s    nnaY'Gooq$i(GYYwjd1C&DEFYYwjT1B&CDFf_Fyy!T*R\\$5G*HIH68,r3   c                   t        j                  |       }|dk7  sJ | j                  r5|dv r1t        j                  j                  d      }|j                  |       |t        j                  t        |       d      k(  sJ y )Nzunknown-array)
datetime64timedelta64zfin infer_dtype pd.NA is not ignored in these cases even with skipna=True in the list(data) check belowr   Tr   )r   infer_dtyperk  r*   r+   r,   r/   r   )rh   r0   r  r+   s       r1   test_infer_dtype_pyarrow_dtyper    sy    
//$
C/!!!{{s;;{{  B ! 
 	D!#//$t*T::::r3   c                   d}| j                   }t        j                  j                  |       r(t	        j
                  ||      j                  |      g}n2t	        j                  ||| j                        j                  |      g}t        j                  ||       }t        t        j                  |g|             }t        j                  ||       y )Nr  r_  r  r   rW   r  )r  r-   rX   r`   re   ry  rW  r  r   r$   rl   rf   r   r   )r   rg  r  seqr   r   s         r1   test_from_sequence_temporalr    s    
 C<<D	xxG$||Cd+33D9:||Cdwzz:BB4HI //7CF"288SE8#@AH##FH5r3   c                   | j                   }t        j                  j                  |       r't	        j
                  d|      j                  |      }n1t	        j                  d|| j                        j                  |      }t        t        j                  g d|             }|j                         }||d d  t        t        j                  g d|             }t        j                  ||       y )Nr?   r_  r  r  r  )r?   r?   r?   )r  r-   rX   r`   re   ry  rW  r  r   r$   rf   rA  r   r   r   r  rg  r  r   r   s         r1   test_setitem_temporalr    s    
 <<D	xxG$ll14(006ll14GJJ7??E
bhhywh?
@CXXZFF1I"288IG8#DEH##FH5r3   c                "   t        t        j                  g d|             }| j                  }|t	        j
                  d|      j                  |      z
  }t        t        j                  g d|             }t        j                  ||       y )Nr  r  r?   r_  )r   r?   r;   )	r$   r-   rf   r  re   ry  rW  r   r   )r   r0   r  r  r   r   s         r1   test_arithmetic_temporalr    sk    
 bhhywh?
@C<<D2<<-55d;;F"288IG8#DEH##FH5r3   c                   | j                   }t        j                  j                  |       r't	        j
                  d|      j                  |      }n1t	        j                  d|| j                        j                  |      }t        t        j                  g d|             }||kD  }t        t        j                  g dt        j                                     }t        j                  ||       y )Nr?   r_  r  r  r  )FTT)r  r-   rX   r`   re   ry  rW  r  r   r$   rf   r  r   r   r  s         r1   test_comparison_temporalr    s    
 <<D	xxG$ll14(006ll14GJJ7??E
bhhywh?
@C3YF"288,?bhhj8#QRH##FH5r3   c                B   t        t        j                  g d|             }|d   }t        j                  j	                  |       rVt        j                  d| j                        j                  | j                        }t        |t
        j                        scJ t        j                  d| j                  | j                        j                  | j                        }t        |t
        j                        sJ |j                  |j                  k(  sJ ||k(  sJ y )Nr  r  r?   r;   r_  r  )r$   r-   rf   rX   r`   re   ry  r  rW  r   r  r   r   r  r   r   s       r1   test_getitem_temporalr    s    
 bhhywh?
@CVF	xxG$<<5==gllK&",,///<<DLLLL
 &",,///;;(--'''Xr3   c                   t        t        j                  dd g|             }t        |      }t        j                  j                  |       rit        j                  d| j                        j                  | j                        t        j                  g}t        |d   t        j                        svJ t        j                  d| j                  | j                        j                  | j                        t        j                  g}t        |d   t        j                        sJ |d   j                  |d   j                  k(  sJ ||k(  sJ y )Nr?   r  r_  r   r  )r$   r-   rf   r   rX   r`   re   ry  r  rW  rP  r   r  r   r  s       r1   test_iter_temporalr  ,  s   
 bhh4ywh?
@C#YF	xxG$LL.66w||DEE
 &)R\\222 LL'**=EEgllSEE
 &)R\\222!9>>Xa[-----Xr3   c                    t        j                  | d d g d      }|j                  d      j                         }t        j                  ddgdd	d
g      }t	        j
                  ||       y )Nr  )rL   rL   rM   r#  r   )levelr;   r?   r   rL   rM   r  )re   r   groupbysizer   r   r7  s       r1   'test_groupby_series_size_returns_pa_intr  C  s\    
))D!HO
4C[[q[!&&(Fyy!Q'7SzJH68,r3   c                   t        t        j                  dd g|             }|j                  |      }t        j                  j                  |       r;t        j                  d| j                        j                  | j                        }nEt        j                  d| j                  | j                        j                  | j                        }|t        k(  s+t        j                  j                  |       rq| j                  e|t        k(  rt        j                  }nt        j                  }t!        j                  ||gt              }|d   j                  |j                  k(  s}J | j#                         j%                  d| j                        }|j                         }t!        j                  ||g      }t!        j&                  |d         d   | j                  k(  sJ t)        j*                  ||       y )Nr?   r  rW   r_  r  r   nat)r$   r-   rf   r   rX   r`   re   ry  r  rW  r  r   r   r_   rP  r  r   to_pandas_dtyperk   datetime_datar   r   )r   r9   r  r   rS  r  r   s          r1   test_to_numpy_temporalr  K  sh    bhh4ywh?
@C\\\&F	xxG$QW\\2::7<<HQW\\gjjAII',,W288009gjj>TF?BB88UBKv6ay~~+++$$&++E7<<@ 88UBK(q	*1-===1r3   c                   t        j                  ddg| | d      }|j                  d      j                         }t        j                  ddggt        j                  dgd      ddgd      }t        j                  ||       y )	Nr?   )rt   ru   rv   rt   r  ru   rv   r   )rQ  r  r9   )re   rT  r  r   Indexr   rX  )rm   rY  r   r   s       r1   %test_groupby_count_return_arrow_dtyper  h  st    	QFLI	JBZZ_""$F||
Qhhs%c
	H &(+r3   c            	         t        j                  ddgddggt        t        j	                  t        j                         d                  } | j                  j                  }|t        k(  sJ y )Nr?   r;   r  rq   )	list_sizerW   )	re   r   r   r-   r  r"  r9   rk   r   )r   r   s     r1   test_fixed_size_listr   t  sU    
))
Q!Q
288BHHJ!8+L MC YY^^FT>>r3   c            	         t        j                  t        j                  dd      dgt        t	        d                  } t        |       }d}||k(  sJ y )N2012r  )rc  rf  r.  r  z#     col
0  15340
1  15341
2  15342)re   rT  period_ranger   r%   r  rY  r   r   s      r1   'test_arrowextensiondtype_dataframe_reprr  }  sP    	
*-.
B
 "XF 8HXr3   c                     t        j                  dd gd      } | j                  d d      }t        j                  dd gd      }t        j                  ||       y )Nr;   r   rW   r  )r     )re   r   powr   r   )kr   r   s      r1   test_pow_missing_operandr
    sN    
		1d)#34AUU4AU&Fyy!T*:;H68,r3   c            	     N   t        j                  dgt        t        j	                                     } t        j                  t        j                  j                  d      5  | j                  t        t        j                  dd                   d d d        y # 1 sw Y   y xY w)N1.2345rW   z3Rescaling Decimal(128)? value would cause data lossr   r?   r   )re   r   r   r-   r   r*   r(   r   r.   r   r  r  s    r1   test_decimal_parse_raisesr    sn    
))XJj&=
>C	
#X
 4 	

:bmmAq1234 4 4s   #/BB$c                 8   t        j                  dgt        t        j	                                     } t        t        j                  dd            }| j                  |      }t        j                  t        d      g|      }t        j                  ||       y )Nr  rW   rK   rq   )
re   r   r   r-   r   r  r   r   r   r   )r   r9   r   r   s       r1   test_decimal_parse_succeedsr    sj    
))XJj&=
>Cr}}Q*+EZZFyy'(+,E:H68,r3   c                N   t        j                  d dgt        |             }t        j                  t        j                  ddgd| j
                   d            }|j                  |      }t        j                  ddgt        |             }t        j                  ||       y )Nr;   rW   r?   r  zm8[r!  )	re   r   r   r   rf   r  r=  r   r   )r   ser1r  r   r   s        r1   test_duration_fillna_numpyr    s~     99dAYj&9:D99RXXq!fc',,q,ABCD[[Fyy!Qz'':;H68,r3   c                     t        j                  dgd      } t        j                  d gd      }t        j                  t        j
                  j                  d      5  | |k   d d d        y # 1 sw Y   y xY w)Nl            r  rW   r   zInteger valuer   )re   r   r*   r(   r-   r   r.   r  s     r1   +test_comparison_not_propagating_arrow_errorr    s\    
		7)#45A
		4& 01A	rvv**/	B 	A  s    A//A8c                    t         j                  t         j                  dg      j                         t         j                  dg      j                         g      } t	        j
                  t        |             }|j                         \  }}t        j                  ddgt        j                        }t	        j                  t        | j                                     }t        j                  ||       t        j                  ||       y )NrL   rM   r   r?   rW   )r-   r  rf   dictionary_encodere   r   r$   	factorizer   intpr  r   r   r   assert_index_equal)r   r   res_indicesres_uniquesexp_indicesexp_uniquess         r1   !test_factorize_chunked_dictionaryr    s    	3%	*	*	,bhhuo.O.O.QRH ))'1
2C"}}K((Aq61K((.x/F/F/HIJK[9+{3r3   c            
        t        j                  dt         j                  gt        t        j                  t        j                         t        j                                           } | j                  d      \  }}t        j                  ddgt        j                        }t        j                  dd gt        t        j                                     }t        j                  ||       t        j                  ||       y )Nr  rW   F)use_na_sentinelr   r?   )re   rf   rP  r   r-   r  r  rt  r  r   r  r   r   r   r   )r  indicesuniquesexpected_indicesexpected_uniquess        r1   !test_factorize_dictionary_with_nar%    s    
((	ruuZbhhj"'')(LMC }}U};GWxxAbgg6xxtJryy{4KL)9:##G-=>r3   c                 V   t         j                  t        j                  g d            j                         t         j                  t        j                  g d            j                         g} t	        j
                  t        t         j                  |                   }|j                  d      }t	        j                  g dt        t         j                                     }t	        j
                  g dt	        j                  |            }t        j                  ||       y )N)rL   r   rr   rL   )rL   r  rr   category)rL   r   rr   r  rW   )rL   r   rr   rL   rL   r  rr   )
categories)r-   rf   r   r  re   r   r$   r  r   r  r   r   CategoricalDtyper   r   )arrsr   r   r(  r   s        r1   "test_dictionary_astype_categoricalr+    s     	./0BBD
/*+==?D ))'(8(8(>?
@CZZ
#F.j6MNJyy+!!Z8H 68,r3   c                     t        j                  dgd      } t        j                  dgd      }t        j                  dgd      }| |z  }t        j                  ||       y )Nir   rW   rq   r@   r  )rL   rM   r   r   s       r1   test_arrow_floordivr-    sT    
		2$./A
		1#-.Ayy"%56H!VF68,r3   c                     t        j                  dgd      } t        j                  dgd      }| dz  }t        j                  ||       y )Nl     ^ \K r   rW   l    \p/i@B r  )rL   r   r   s      r1    test_arrow_floordiv_large_valuesr/    sC    
		&'/?@Ayy-0@AH)^F68,r3   r   r  c                j    t        j                  dg|       }|dz  }t        j                  ||       y )N   rW   r?   r  )r9   rL   r   s      r1   )test_arrow_floordiv_large_integral_resultr2    s1     			$%U3A!VF61%r3   c                    t        |       }t        j                  dg|      }|dz  }t        j                  dg|      }t        j                  ||       y )NirW      rA   )r   re   r   r   r   )r   r9   rL   r   r   s        r1   "test_arrow_floordiv_larger_divisorr5    sK     wE
		3%u%A"WFyy"U+H68,r3   c                   t        j                  | j                               j                  }t	        j
                  |gt        |             }t        j                  t        j                  j                  d      5  |dz   d d d        t        j                  t        j                  j                  d      5  |dz   d d d        y # 1 sw Y   GxY w# 1 sw Y   y xY w)NrW   zoverflow|not in ranger   rA   zdivide by zeror   )r   iinfor  r  re   r   r   r*   r(   r-   r   r.   )r   	min_valuerL   s      r1   $test_arrow_floordiv_integral_invalidr9    s     002377I
		9+Z%89A	rvv**2I	J 	R	rvv**2B	C 	Q   s   >C
;C
CCc                    t        j                  dg|       }|dz  }t        j                  t        d      g|       }t        j                  ||       y )Nr;   rW   r   inf)re   r   r  r   r   )r9   rL   r   r   s       r1   &test_arrow_floordiv_floating_0_divisorr<    sE     			1#U#A!VFyy%,u5H68,r3   )r   r6  r  c                    t        j                  dd gd      }|j                  |       }t        j                  dd g|       }t        j                  ||       y )Nr?   r   rW   rb  r  s       r1   (test_astype_int_with_null_to_numpy_dtyper>    sK     ))QI%5
6CZZFyy!T%0H68,r3   c                
   t        j                  | j                               j                  }t	        |       }t        j                  |g|      }t        j                  dg|      }||z  }t        j                  ||       y )NrW   r?   )	r   r7  r  r
  r   re   r   r   r   )r   	max_valuer9   rL   rM   r   s         r1   )test_arrow_integral_floordiv_large_valuesrA     sh     002377IwE
		9+U+A
		1#U#A!VF61%r3   c                    t        j                  dg|       }t        j                  dg|       }t        j                  dgd      }||z  }t        j                  ||       y )Nr   rW   r1  r  r  r9   rL   rM   r   r   s        r1   &test_arrow_true_division_large_divisorrD  +  sV     			1#U#A
		$%U3Ayy!$67HUF68,r3   c                    t        j                  dg|       }t        j                  dg|       }t        j                  dg|       }||z  }t        j                  ||       y )Nr   rW   r1  r  rC  s        r1   'test_arrow_floor_division_large_divisorrF  5  sU     			1#U#A
		$%U3Ayy!E*H!VF68,r3   c                    g d} t        j                  | d      }t        j                  |       j                  d      }t        j                  t	        t
        j                  |d                  }t        j                  ||       y )N)2020-01-01 04:30:00z2020-01-02 00:00:00z2020-01-03 00:00:00ztimestamp[s][pyarrow]rW   r  Tfrom_pandas)	re   r   ro  rW  r$   r-   rf   r   r   )string_datesr   pd_resr   s       r1   $test_string_to_datetime_parsing_castrM  ?  sb    XLYY|+BCF^^L)11#6Fyy,RXXf$X-OPQH68,r3   c                H   | j                   j                  st        j                  |       }t	        j
                  d|j                    d      }t        j                  t        |      5  t        j                  |       j                          d d d        y y # 1 sw Y   y xY w)NzCannot interpolate with z dtyper   )
r9   r  re   r   r  r  r*   r(   r   interpolate)rh   r   r+  s      r1   test_interpolate_not_numericrP  I  sy    ::!!iioii2399+VDE]]9C0 	*IIdO'')	* 	* "	* 	*s   *$BB!r  c                    t        j                  g d|       }|j                         }t        j                  g d|       }t        j                  ||       y )N)Nr?   r;   Nrq   NrW   )Nr?   r;   r  rq   N)re   r   rO  r   r   r  s       r1   test_interpolate_linearrR  Q  s@    
))/u
=C__Fyy1?H68,r3   c                     dg} t        j                  | d      }t        j                  t        t        j	                  t        dddd      gd	                  }t        j                  ||       y )
Nz11:41:43.076160ztime64[us][pyarrow]rW   r  )   +   i) TrI  )re   r   r$   r-   rf   r   r   r   )string_timesr   r   s      r1    test_string_to_time_parsing_castrW  Y  s^    %&LYY|+@AFyyBHHd2r2u&=%>DHQRH 68,r3   c                     t        j                  g dd      } | j                  d      }t        j                  ddt        j                  gd      }t        j                  ||       y )Nr   (   Nrg  rW   r   r   rZ  )re   r   r   r   r   r   r   rc  s      r1   test_to_numpy_floatr[  c  sL    
))N*:
;CZZ	"Fyy"b"&&);H68,r3   c                     t        j                  dgd      } | j                  t        j                        }t        j
                  dg      }t        j                  ||       y )NrH  timestamp[ns][pyarrow]rW   l    P)#-/ )re   r   r   r   r"  rf   r   r   rc  s      r1   test_to_numpy_timestamp_to_intr^  k  sM    
))*+3K
LC\\\)Fxx,-.H1r3   
arrow_typec                    t        j                  dddgid      }t        t        j	                  t        j                         |             }|j                  d|i      }|j                  j                  d   |k(  sJ y )NrL   r   ro  r  rW   r   )	re   rT  r   r-   r  r  r   dtypesr  )r_  rY  	data_typer   s       r1   *test_cast_dictionary_different_value_dtyperc  s  sg    	sS#J'/@	AB2==Z@AIYYY'(F==a I---r3   c                0   t        j                  g dd      }|j                  d d      }| s)t        j                  ddt         j                  gd      }n(t        j                  ddt        j
                  gd	      }t        j                  ||       y )
NrY  r   rW   c                     y)N*   r   r   s    r1   r   z,test_map_numeric_na_action.<locals>.<lambda>}  s    r3   r   r   g      E@r   r   )re   r   r   rP  r   r   r   r   )r   r   r   r   s       r1   test_map_numeric_na_actionrg  {  sn    
))N*:
;CWW\XW6F99dD"%%0A99dD"&&1C68,r3   c                    t        j                  dddgit        t        j	                  t        j                         t        j                                           } | j                  d      }t        j                  ddgt         j                  j                  t        j                  ddgt        t        j                               d      g      d	d
      }t        j                  ||       y )Nrt   r  r  rW   Fr.  r?   )r9   r  r   r"  )rQ  r  r9   )re   rT  r   r-   r  r  rt  rg  r   
MultiIndexfrom_arraysr  r   r   r   r  s      r1   &test_categorical_from_arrow_dictionaryrk    s    		tTl:bmmBHHJ	.R#S
B __E_*Fyy	
Amm''XXtTl*RYY[*ALM
 H 68,r3   z(pa.json_ was introduced in pyarrow v19.0r   c                     t        t        j                  t        j                                     } | j                  }|t
        k(  sJ y r   )r   r-   json_r   rk   rU  )r9   r   s     r1   test_arrow_json_typern    s2    
 rxx		,-EZZFS==r3   c            	        t        j                  d      t        d      g} d}t        j                  t
        |      5  t        j                  |        d d d        t        j                  t
        |      5  t        j                  | t        t        j                  d                   d d d        y # 1 sw Y   axY w# 1 sw Y   y xY w)Nz2016-01-02 03:04:05NaNz8<class 'decimal.Decimal'> is not convertible to datetimer   rM  rW   )re   r  r   r*   r(   r   ro  rf   r   r-   r  )valsr+  s     r1   &test_timestamp_dtype_disallows_decimalrr    s     LL./@D
DC	y	, 
t 
y	, =
ZT(:;<= =	 = =s   B474C 4B= C	c                     d} d}t        j                  d      }t        j                  |g|      }t        j                  |g|       j                  d      }t	        j
                  ||       y )Nzdatetime64[ns, US/Eastern]rn  z2025-07-03 18:10rW   r#   )rH  )re   r  r   convert_dtypesr   r   )dtype1dtype2tsr   r   s        r1   (test_timestamp_dtype_matches_to_datetimerx    s]    )F1F	(	)BYYt6*Fyy"V,;;);TH68,r3   c                     t        j                  dgd      } | j                  d      }| |k(  }t        j                  dgd      }t        j                  ||       || k(  }t        j                  ||       y )N
2016-01-01r]  rW   r6  Tr   rb  )r   r   r   r   s       r1   !test_timestamp_vs_dt64_comparisonr{    sh    99l^+CDDKK()EU]Fyy$7H68,d]F68,r3   c                    t        j                  dgd      } | j                  d      }|d   }| d   }| |k(  j                         rJ || k(  j                         rJ ||k(  j                         rJ ||k(  j                         rJ y )Nrz  date32[pyarrow]rW   r]  r   )re   r   r   r   )r   r  rw  r&  s       r1   (test_date_vs_timestamp_scalar_comparisonr~    s    
))\N*;
<C::./D	aB	QB r	   c	    
!!!d
!!!!r3   c                    t        j                  dgd      } | j                  d      }| j                  d      }| |k(  j                         rJ || k(  j                         rJ | |k7  j	                         sJ || k7  j	                         sJ | |k(  j                         rJ || k(  j                         rJ | |k7  j	                         sJ || k7  j	                         sJ y )Nrz  r}  rW   r]  r6  )re   r   r   r   r   )r   r  r  s      r1   'test_date_vs_timestamp_array_comparisonr    s     ))\N*;
<C::./D::&'Dt  """  """4KCKt  """  """4KCKr3   c                   t        j                  g dd      }|t        j                  z
  }| r |j	                         j                         s"J |j	                         j                         rJ |t        j                  z  }| r |j	                         j                         s"J |j	                         j                         rJ |dz  }| r|j	                         d   sJ y |j	                         d   rJ y )NrA   r   r?   r   rW   r   r?   )re   r   r   r   r<  r   r   )r   r   r   s      r1   test_ops_with_nan_is_nar    s    
))J&6
7C266\F{{}  """;;=$$&&&266\F{{}  """;;=$$&&&1WF{{}Q;;=####r3   c                L   t        j                  g dd      }| r(t        j                  |d<   |j	                         d   sOJ d}t        j                  t        j                  j                  |      5  t        j                  |d<   d d d        t        j                  dt        j                  dgd      }| rW|j	                         d   sJ |d   t         j                  u sJ t        j                  |d<   |d   t         j                  u sJ y |j	                         d   rJ t        |d   t              sJ t        j                  |d         sJ t        j                  |d	<   t        |d	   t              sJ t        j                  |d	         sJ y # 1 sw Y   xY w)
Nr  r   rW   r?   z@Could not convert nan with type float: tried to convert to int64r   rA   r  r;   )re   r   r   r   r<  r*   r(   r-   r   r.   rP  r   r  isnan)r   r   r+  s      r1   test_setitem_float_nan_is_nar    sQ   
))J&6
7CAxxz!}}P]]266..c: 	VVCF	 ))RO+=
>Cxxz!}}1vA1v 88:a=  #a&%(((xxAA#a&%(((xxA%	 	s   5FF#c                     t        j                  d d gd      } | j                  d      }t        j                  t         j                  t         j                  gd      }t	        j
                  ||       y )Nr  rW   r;   )re   r   r  rP  r   r   )r  r   r   s      r1   test_pow_with_all_na_floatr  "  sS     			4,&89AUU1XFyy"%%/ABH68,r3   c                    t        j                  t        d      d      } t        j                  t        d      d      }t        j                  g dd      }| |z  }t        j                  ||       || z  }t        j                  ||       | |k(  }t        j                  dgdz  d      }t        j                  ||       || k(  }t        j                  ||       y )NrK   r   rW   r  )r   r?   rq   r  r7  Tr   )re   r   r   r   r   )r   r   r   r   r%  result3r  result4s           r1   *test_mul_numpy_nullable_with_pyarrow_floatr  +  s    99U1XY/DIIeAh&89Eyy)1CDHE\F68,dlG7H- emG		4&1*O<I7I.tmG7I.r3   ztype_name, expected_size))r  r?   )int16r;   )r  rq   )r"  r  )uint8r?   )uint16r;   )uint32rq   )r#  r  )float16r;   )rx  rq   )r   r  )r  r?   )r  rq   )r  r  )r  r  )time32rq   )r  r  )r  r7  )
decimal256r   c                   t         j                  d      t         j                  d      t         j                  d      t         j	                  dd      t         j                  dd      d}| |v r|j                  |       }n t        t         |              }t        |      }| dk(  r|j                  j                  }|j                  |k(  s2J |  d| d	|j                   d
t        |j                  dd       d       y )NrN  r  r  rJ   L   )r  r  r  r  r  r  z
 expected z, got z (bit_width=r   zN/A))r-   r  r  r  r  r  r  r   r   numpy_dtypeitemsizer7   )	type_nameexpected_sizeparametric_type_mapr_  r9   s        r1   %test_arrow_dtype_itemsize_fixed_widthr  A  s    D \\$'))C.))D/mmB+mmB+ ''(,,Y7
+WR+-
z"EG))22>>]* +ZfU^^4D Ee11;FGq	J*r3   r  )r   r  r  c                     t        t        |              }t        |      }|j                  |j                  j                  k(  sJ y r   )r   r-   r   r  r  )r  r_  r9   s      r1   (test_arrow_dtype_itemsize_variable_widthr  y  s=     (Y')Jz"E>>U..77777r3   c                     t        j                  g d      } | j                  }t        d      }|j	                  |g      }|j
                  j                  }t        j                  j                  |      sJ y )Nr  rW   rp  )
re   r   rf   r   r  r9   r7   r-   rX   r]   )r   r  itemr   r   s        r1   %test_cast_pontwise_result_decimal_nanr    s^    
))B0
1C
))C5>D''/Fll((G88w'''r3   c                    t        j                  dt         j                  gd      } t        j                  |       }t        j                  t        j                  d      t         j                  gd      }t        j                  ||       y )Nr  r  rW   )re   r   rP  r   sinr   r   rc  s      r1   test_ufunc_retains_missingr    sZ    
))S"%%L(:
;CVVC[Fyy"&&+ruu-5GHH68,r3   )r   r  r
  r   r   c                   d|  d}t        j                  t        d      t        d      g|      } t        ||             }t	        |t         j
                        sJ | d|  dt        |              |j                  | k(  sJ y )	Nr`  ra  r?   )rt  r;   rW   r  
 returned )re   r   r   r   r   ry  rk   r  r  rT  r9   r   r   s        r1   #test_duration_reduction_consistencyr    s     vZ(E
))Yq)9Q+?@
NC!WS&!#Ffbll+ (%vZV~6+ ;;$r3   )r  r
  r   c                   d|  d}t        j                  t        ddd      t        ddd      g|      } t        ||             }t	        |t         j
                        sJ | d|  dt        |              |j                  | k(  sJ y )	Nrj  ra  r  r?   r  rW   r  r  )re   r   r   r   r   r  rk   r  r  s        r1   $test_timestamp_reduction_consistencyr    s     j)E
))XdAq)8D!Q+?@
NC!WS&!#Ffbll+ (%vZV~6+ ;;$r3   (.  r  
__future__r   r   r   r   r   decimalr   ior	   r
   r  rT  r  r{  numpyr   r*   pandas._libsr   pandas._libs.tslibsr   pandas.compatr   r   r   r   r   r   r   pandas.compat.pyarrowr   pandas.errorsr   pandas.core.dtypes.commonr   pandas.core.dtypes.dtypesr   r   pandasre   pandas._testing_testingr   pandas.api.extensionsr   pandas.api.typesr   r   r   r   r   r   r    r!   pandas.tests.extensionr"   importorskipr-   pandas.core.arrays.arrow.arrayr$   (pandas.core.arrays.arrow.extension_typesr%   r2   fixtureALL_PYARROW_DTYPESrU  r9   rh   rm   ro   rw   r{   r~   r   ExtensionTestsr   r  r+   r  ALL_INT_PYARROW_DTYPESr  r  r  r  r  r
  r  r   r  r  r*  r3  r6  r  byteslarge_binaryr  r"  r   
large_listmap_structr  dictr  r=  rD  rG  rI  rK  rM  rO  rQ  r[  r_  rd  ri  rl  rn  r   rs  rv  ry  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  compiler  r  r  r  r  r  r  r   r  r  r  r  r  r  r&  r(  r+  r,   r  r1  r3  r:  r@  rU  r]  r_  rh  rn  rs  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r   r)  r,  r1  r8  r<  r?  rA  rG  r  rL  rO  rR  rU  rX  rg  rl  rp  rr  rz  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  FLOAT_PYARROW_DTYPESr  TIMEDELTA_PYARROW_DTYPESr  DATETIME_PYARROW_DTYPESr  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r   r  r
  r  r  r  r  r  r%  r+  r-  r/  r2  SIGNED_INT_PYARROW_DTYPESr5  r9  FLOAT_PYARROW_DTYPES_STR_REPRr<  r>  rA  rD  rF  rM  rP  rR  rW  r[  r^  rc  rg  rk  skipifrn  rr  rx  r{  r~  r  r  r  r  r  r  r  r  r  r  r  r   r3   r1   <module>r     s   #     	 
    )   7 ( 2
   ,	 	 	 (V# > D	" r,,#63 73 8' 8'v H H
 /0 1 7A 7At 
 
 
 
  tOT(( tOn^1 ^1B B$=$=>- ?-0C+57A boo6G(HI J& I cC:%67F1 8F1R 1a&!$6#<=	}%  
-
-	-  	e	2		E"		C 	"((*	t$	rxxz	"D)	bhhj	)40	T2779%biik':;	<dC	rxxz288:	.0DE
99-
**131(; 2-,2&
2 #.."&&)A6(JK2 L22
26..-Q-",  45- 6-& (7G*<vx>PQ--# 	udED$<0	tT55$-0	udED$<0	eT4$6	dD$6	-	-'- 	tT#67	sE#89	S$ 45	T4!45	.@A	_d,>?	r4!56	R34	-- !;<- =- ZRZZ_}vuo|L"	" 	c2uvtn-	c1efd^,	#r4&$0---/&
-- 	udT4L)	tTE4=)	tTE4=)	udT4L)	eTD$<0	dD5$-0
-
-  
t78	d78	tT67	ud78	eT#=>	dD"=>	89	5$ :;	t89	4:;	d$>?	$&@A	*-+*- 	q$D	"	q!aY	q!b$Z 	r2Dz"	------ ";< 9: >?. @ ; =.- 	
		
		
	-	- J  -	-- 	q$t%	q!dD\"	
Aq4,	tR&$(	-- 	
AsVTN#	q#t}%	q$t%--  ! !!" !"#%& !%.-/.- 	y!	)	Y	)	)	Y
-
--    
-
- 5 12- 3- 5 12- 3- Hh#78	F512TQ	
	 
  - 9- 1a&)- *- GX#67	
D		
A4 84 %1- 2- 	
D		
A----,-6 Hg#67- 8-%,P,D% D%=1	, 2	,- !896 :6 		
		a	A		a		1			!	q	A	1	dAq!"	aAt$%#,--,-6 5- 6-*-&-&-& O]#CD- E--. $.- /- :;0 <0, Z*\9,EF--- #=>	9 ?	9 #=>	& ?	& !IJ#=>- ? K-
- r2h/ 0	5- $.- /-  	(A2AFG	<2<<(GHI--!
- $.
- /
- #;=T"UV- W- "
-#"
- 
9
9( $;<P =P" 		A			--*-*2$,>,8 D%=1 2L&- 8->"?@* A*0 (/"  
r()
sR__&'66, B$=$=@W@W$WX	- Y	- B$?$?@	- A	- B$>$>?- @-  r))B,G,GGG-; r))B,G,GG66 r))B,G,GG66  r))B,G,GG66 r))B,G,GG66 r))B,G,GG  r))B,G,GG(- r))B,G,GGT   4.12 222	,-4- B$?$?@- A-
4	?- -- #35F"GH& I& B$@$@A- B- B$@$@A B ""B"BC- D- "RS- T- B$=$=>& ?& #35F"GH- I- #35F"GH- I--* #35G"HI- J---2 (9299;'GH. I.--" !K  =
-
-"$$$. <-/, <=<4 &JK8 L8	(- #JK L #;< =r3   