
    A>i                   :*   S r SSKJr  SSKJrJrJrJr  SSKJr  SSK	J
r
Jr  SSKrSSKrSSKrSSKrSSKrSSKrSSKJr  SSKJr  SS	KJrJrJrJrJrJrJr  SS
KJ r   SSK!J"r"  SSK#J$r$J%r%  SSK&r'SSK(J)r*  SSK+J,r,  SSK-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5  SSK6J7r7  \Rp                  " S5      r9SSK:J;r;  SSK<J=r=  S r>\R~                  " \*R                  \AS9S 5       rB\R~                  S 5       rC\R~                  S 5       rD\R~                  " SS/S9S 5       rE\R~                  S 5       rF\R~                  S 5       rG\R~                  S 5       rH\R~                  S 5       rI " S  S!\7R                  5      rK " S" S#5      rL\R                  R                  S$\*R                  5      S% 5       rPS& rQS' rRS( rSS) rTS* rU\R                  R                  S+/ S,Q5      \R                  R                  S-S.S.S.//5      S/ 5       5       rV\R                  R                  S0/ S1QS2S/// S3QS///S4S5/S69S7 5       rWS8 rX\R                  R                  S9\9R                  5       \Z/\9R                  S:5      \Z/\9R                  5       \Z/\9R                  5       \A/\9R                  \9R                  5       5      \_/\9R                  \9R                  5       5      \_/\9R                  \9R                  5       \9R                  5       5      \_/\9R                  S;\9R                  5       4S<\9R                  5       4/5      \e/\9R                  \9R                  5       \9R                  5       5      \%//	5      S= 5       rgS> rhS? riS@ rjSA rkSB rlSC rmSD rnSE roSF rpSG rqSH rrSI rsSJ rt\R                  R                  SK\RX                  \R                  4SL/5      SM 5       rvSN rwSO rxSP rySQ rzSR r{SS r|ST r}SU r~SV r\R                  R                  SWSXSY/5      SZ 5       rS[ r\R                  R                  S\S]S^/S_S`/SaSb//5      Sc 5       rSd r\R                  R                  SeSfSgSSgShS//SiShSSgSgS//SfSgShSgShSh//SjSgSShShS//SkShSShSgS///5      Sl 5       rSm r\R                  R                  SnSoSfS/ SpQ/SoSqSg/ SrQ/SsSqSh/ StQ/SsSuS/ SpQ/SoSvS/ SwQ/SsSxS/ SwQ/SoSyS/ SzQ/SsSyS/ SzQ//5      S{ 5       r\R                  R                  S|S}5      S~ 5       r\R                  R                  SSW\GR                  " Sq5      /S\A/SSg/SS//5      S 5       r\R                  R                  SSSSSgSS//SSSSgSS//SSSShSS///5      S 5       rS rS rS r\R                  R                  SSfSgSShS//SiShSSgS//SuShSSgS//SfSgShShSh//SjSgSShS//SkShSSgS///5      S 5       r\R                  R                  SSXSgS/ SQ/SShS/ SQ/SuShS/ SQ/SfSgS/ SQ/SYSgS/ SQ/SkShS/ SQ/SSgS/ SQ/SSgS/ SQ/SShS/ SQ/SShS/ SQ/SShS/ SQ/SShS/ SQ//5      S 5       r\R                  R                  SSfSSSS/\9GR!                  5       /SuSSSS/\9R                  5       /SfSSSS/\9R                  5       /SfSSSS/\9R                  5       //5      S 5       rS rS rS rS r\R                  R                  S/ SQ5      \R                  R                  S/ SQ5      \R                  R                  S/ SQ5      S 5       5       5       rS r\R                  R                  SS/ SQ/S/ SQ/S/ SQ/S/ SQ/S2/ SQ//5      S 5       r\R                  GR3                  S\S9S 5       rS r\R                  R                  SSSSSfS//SSSSfS//SSSSuS//SSSSS/4/5      S 5       r\R                  R                  SSSSSS//SSSSS//SSSSS///5      S 5       r\R                  R                  S/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      S 5       r\R                  R                  SSS/SS/SS/SS/SS/SS//5      S 5       rS r\R                  R                  S/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      S 5       r\R                  R                  SSSX/5      S 5       r\R                  R                  SSSX/5      S 5       r\R                  R                  SSS/5      \R                  R                  SSSSXS.4SSSS.4/SS/S69S 5       5       r\R                  R                  SSS/5      S 5       r\R                  R                  SSS/5      \R                  R                  GS SS/SS2//5      GS 5       5       r\R                  R                  GSGSGS/5      GS 5       r\R                  R                  GS SS/SS2//5      GS 5       rGS rGS rGS	 rGS
 r\R                  R                  SGSGS/5      GS 5       rGS rGS rGS r\R                  R                  GSShSg/5      GS 5       rGS r\R                  R                  GS/ GSQ5      GS 5       rGS r\R                  R                  GSGSGS/GSS/GSS/GSS/GSS/GSS/GS S/GS!S/GS"S2/GS#Sg/GS$GS%/GS&S/GS'GS(/GS)S/GS*GS+/GS,\" GSSS5      /GS-\" SS2GS+GS%5      //5      GS. 5       r\R                  R                  GS$/ GS/Q5      GS0 5       rGS1 rGS2 rGS3 r\R                  R                  SGS4GS5/5      GS6 5       rGS7 r\R                  R                  GSGS8GS9/5      GS: 5       r\R                  R                  GS;/ GS<Q5      GS= 5       rGS> r\R                  R                  SGS?GS@/GSAGSB//5      GSC 5       rGSD r\R                  R                  S/ GSEQ5      GSF 5       r\R                  R                  S/ GSEQ5      GSG 5       r\R                  R                  GSH/ GSIQ5      \R                  R                  S/ GSEQ5      GSJ 5       5       rGSK r\R                  R                  GSLGSMGSN/5      GSO 5       rGSP rGSQ r\R                  R                  GSGS8GS9/5      GSR 5       r\R                  R                  GSSGST\" GSSGSUSGSV9/GSW\'GR                  " GSX5      //5      GSY 5       rGSZ rGS[ r\R                  R                  GSGS8GS9/5      GS\ 5       r\R                  R                  GS]GS^GS_/5      GS` 5       r\R                  R                  GSa/ GSbQ5      GSc 5       r\R                  R                  GSa/ GSdQ5      GSe 5       r\R                  R                  GSf/ GSgQ5      GSh 5       rGSi r\R                  R                  GSGSjS/GSkS/GSlS/GSmS2//5      GSn 5       rGSo rGSp rGSq rGSr r\R                  R                  GSsShSg/5      GSt 5       rGSu rGSv r\R                  R                  GS]GSwGSx/5      GSy 5       r " GSz GS{\;5      rGS| rGS} r\R                  R                  GS~GSGS/\9R                  5       4SSq/\9R                  5       4/5      GS 5       rGS r\R                  R                  S$\*R                  \*GR                  -   5      GS 5       r\R                  R                  S$\*GR                  5      GS 5       r\R                  R                  S$\*GR                  5      GS 5       r\R                  R                  S$\*GR                  \*GR                  -   5      GS 5       rGS rGS rGS r\R                  R                  S$\*GR                  \*GR                  -   5      GS 5       r\R                  R                  S$\*GR                  \*GR                  -   5      GS 5       r\R                  R                  S$\*GR                  \*GR                  -   5      GS 5       r\R                  R                  S$\*GR                  \*GR                  -   5      GS 5       r\R                  R                  S$\*GR                  \*GR                  -   5      GS 5       r\R                  R                  S$\*GR                  \*GR                  -   5      GS 5       rGS r\R                  R                  S$\*GR                  \*GR                  -   \S69\R                  R                  GS]S\/5      GS 5       5       rGS rGS rGS rGS rGS rGS r\R                  R                  S$\*GR                  5      GS 5       rGS rGS rGS rGS Gr GS GrGS Gr\R                  R                  GS]GSGS/5      GS 5       Gr\R                  R                  S$\*GR                  5      GS 5       Gr\R                  R                  S$\*GR                  5      GS 5       Gr\R                  R                  GS]\*GR                  5      GS 5       Gr\R                  R                  GS]/ GSQ5      GS 5       Gr	\R                  R                  S$\*R                  5      GS 5       Gr
\R                  R                  GS]GSGS/5      GS 5       Gr\R                  R                  GS]GSGS/5      GS 5       GrGS GrGS Gr\R                  R                  GS]GSGS/5      GS 5       GrGS GrGS GrGS Gr\R                  R                  GS\9R                  5       \9R                  5       /5      GS 5       GrGS GrGS Gr\R                  GR-                  \GSGS9GS 5       GrGS GrGS GrGS GrGS GrGS GrGS GrGS GrGS GrGS Gr \R                  R                  GS/ GSQ5      GS 5       Gr!\R                  R                  GS/ GSQ5      GS 5       Gr"GS Gr#GS Gr$\R                  R                  S/ GSQ5      GS 5       Gr%\R                  R                  S/ GSQ5      GS 5       Gr&g(  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)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                    [        5       (       aN  [        5       (       a>  [        R                  R	                  [
        R                  SS9nU R                  U5        g g g )Nz_TODO: Set ARROW_TIMEZONE_DATABASE environment variable on CI to path to the tzdata for pyarrow.raisesreason)r   r   pytestmarkxfailpaArrowInvalidapplymarker)requestr*   s     `/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/extension/test_arrow.py_require_timezone_databaser1   K   sQ    !2!4!4{{  ??; ! 
 	D! "5    )paramsidsc                (    [        U R                  S9$ )N)pyarrow_dtype)r   param)r/   s    r0   dtyper8   W   s    GMM22r2   c           
        U R                   n[        R                  R                  U5      (       a  SS/S-  S /-   SS/-   S /-   SS/-   nGO[        R                  R	                  U5      (       a  SS/S-  S /-   SS/-   S /-   SS	/-   nGOp[        R                  R                  U5      (       a  S
S/S-  S /-   SS/-   S /-   S
S/-   nGO1[        R                  R                  U5      (       a  S
S/S-  S /-   SS
/-   S /-   S
S/-   nGO[        R                  R                  U5      (       aQ  [        S5      [        S5      /S-  S /-   [        S5      [        S5      /-   S /-   [        S5      [        S5      /-   nGO}[        R                  R                  U5      (       a]  [        SS
S
5      [        SSS5      /S-  S /-   [        SS
S
5      [        SS
S
5      /-   S /-   [        SSS5      [        SSS5      /-   nGO[        R                  R                  U5      (       ag  [        SS
S
S
S
S
S
5      [        SS
S
S
S
S
S
5      /S-  S /-   [        SS
S
S
5      [        SS
S
S
5      /-   S /-   [        SS
S
5      [        SS
S
5      /-   nGOq[        R                  R                  U5      (       aQ  [        S
5      [        S
S
5      /S-  S /-   [        S5      [        S5      /-   S /-   [        S5      [        S5      /-   nO[        R                  R                  U5      (       aV  [!        SS5      [!        SS5      /S-  S /-   [!        SS5      [!        S
S
5      /-   S /-   [!        SS5      [!        SS5      /-   nO[        R                  R#                  U5      (       a  SS/S-  S /-   SS/-   S /-   S S!/-   nOD[        R                  R%                  U5      (       a  S"S#/S-  S /-   S$S%/-   S /-   S&S'/-   nO[&        e[(        R*                  " X S(9$ ))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   !   >r8   )r6   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)r8   pa_dtypedatas      r0   rg   rg   \   sP   ""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&&r2   c                R    [        U 5      R                  SU S   /U R                  S9$ )zLength-2 array with [NA, Valid]Nr   rV   type_from_sequencer8   )rg   s    r0   data_missingrl      s*     :$$dDG_DJJ$GGr2   rg   rl   )r3   c                L    U R                   S:X  a  U$ U R                   S:X  a  U$ g)zParametrized fixture returning 'data' or 'data_missing' integer arrays.

Used to test dtype conversion with and without missing values.
rg   rl   N)r7   )r/   rg   rl   s      r0   all_datarn      s,     }}	.	( 
)r2   c           
     P   U R                   n[        R                  R                  U5      (       a  SnSnSnGOU[        R                  R	                  U5      (       a  SnSnSnGO)[        R                  R                  U5      (       a  SnSnSnGO[        R                  R                  U5      (       a  SnSnS	nGO[        R                  R                  U5      (       a)  [        S
SS5      n[        SSS5      n[        SSS5      nGO[        R                  R                  U5      (       a.  [        S
SSSSSS5      n[        SSS5      n[        SSSS5      nGO2[        R                  R                  U5      (       a#  [        S5      n[        S5      n[        SS5      nO[        R                  R                  U5      (       a%  [        SS5      n[        SS5      n[        SS5      nO[        R                  R                  U5      (       a  SnSnSnOw[        R                  R!                  U5      (       a  SnSnSnOL[        R                  R#                  U5      (       a"  [%        S5      n[%        S5      n[%        S5      nO[&        e[(        R*                  " X3SSX"X4/U S9$ )z
Data for factorization, grouping, and unique tests.

Expected to be like [B, B, NA, NA, A, A, B, C]

Where A < B < C and NA is missing
FTgr<   g?r@   r   r>   rI   rE   rF   rG   i  rD   rH      rK   rL   crP   rQ      cz-1.1rC   z1.1NrV   )r6   r,   rW   rX   rY   rZ   r[   r]   r   r^   r   r_   r   r`   r   ra   rb   r\   r   rc   rd   re   )r8   rf   ABCs        r0   data_for_groupingrv      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!!88Q4qQ2%@@r2   c                `    [        U 5      R                  U S   U S   U S   /U R                  S9$ )z^
Length-3 array with a known sort order.

This should be three items [B, C, A] with
A < B < C
r      rp   rV   ri   rv   s    r0   data_for_sortingrz      F     !"11	1	035Fq5IJ%% 2  r2   c                `    [        U 5      R                  U S   U S   U S   /U R                  S9$ )zk
Length-3 array with a known sort order.

This should be three items [B, NA, A] with
A < B and NA missing.
r   r:   rp   rV   ri   ry   s    r0   data_missing_for_sortingr}      r{   r2   c                   U R                   R                  n[        R                  R	                  U5      (       dl  [        R                  R                  U5      (       dH  [        R                  R                  U5      (       d$  [        R                  R                  U5      (       a#  [        R                  " S/S-  U R                   S9$ U $ )z3Length-100 array in which all the elements are two.r:   rI   rV   )
r8   r6   r,   rW   
is_integerrY   r\   r_   rd   re   rg   rf   s     r0   data_for_twosr     s     zz''H
H%%88))88x((88))xxb

33Kr2   c                  8  ^  \ rS rSrS rS r\R                  R                  SSS/5      S 5       r	U 4S jr
U 4S	 jrS
 rS rS rS rSFS jr\R                  R                  SSS/5      U 4S j5       rSFS jrSGS jr\R                  R                  SSS/5      U 4S j5       rSHS jr\R                  R-                  S5      \R                  R                  SSS/5      U 4S j5       5       r\R                  R                  SSS/5      U 4S j5       r\R                  R                  S/ SQ5      S 5       rU 4S jrU 4S jrS rU 4S  jrU 4S! jr\R                  R?                  S"SS#9U 4S$ j5       r S% r!S& r"\R                  R?                  S'SS#9U 4S( j5       r#\R                  R?                  S'SS#9U 4S) j5       r$\R                  R                  S*S+\%/5      \R                  R                  S,S-S./5      S/ 5       5       r&U 4S0 jr'\R                  R                  S1S2S3/5      U 4S4 j5       r(S5 r)S6r*S7 r+SIS8 jr,S9 r-    SJS: jr.S; r/U 4S< jr0U 4S= jr1S> r2U 4S? jr3S@ r4\R                  R                  SA/ SBQ5      SC 5       r5U 4SD jr6SEr7U =r8$ )KTestArrowArrayi  c                   UR                   nUS:X  a  [        S5      nO+US:X  a%  [        U[        U5      5      (       a  [        S5      n[        U[        U5      5      (       aB  UR	                  [        [        U5      [        U5      SS9 VVs/ s H	  u  pEXE-   PM     snnUS9$ UR	                  [        U5       Vs/ s H  oDU-   PM	     snUS9$ s  snnf s  snf )Nbool[pyarrow]int64[pyarrow]zint8[pyarrow]T)strictrV   )r8   r   
isinstancerj   rk   ziplist)selfleftrightr8   rK   rL   s         r0   _construct_for_combine_add)TestArrowArray._construct_for_combine_add  s    

 O# !12Eo%*UDJ*G*G !12EeT$Z((&&%(dT%[%NO%N6A%NO '  
 &&$(J/JqUJ/ '  	 P
 0s   C
>Cc                Z    [         R                  " U5      nU R                  X1X!S   5        g Nr   )rd   Series_compare_other)r   rg   comparison_opsers       r0   test_compare_scalar"TestArrowArray.test_compare_scalar&  s#    iioC}1g>r2   	na_actionNignorec                   UR                   R                  S;   a;  UR                  S US9nUR                  [        S9n[
        R                  " XE5        g UR                  S US9nUR                   S:X  a&  U(       a  UR                  S[        R                  S9nOUR                  5       n[
        R                  " XE5        g )	NmMc                    U $ N xs    r0   <lambda>)TestArrowArray.test_map.<locals>.<lambda>-      r2   r   rV   c                    U $ r   r   r   s    r0   r   r   1  r   r2   float32[pyarrow]float64r8   na_value)	r8   kindmapto_numpyobjecttmassert_numpy_array_equalnpnan)r   rl   r   using_nan_is_naresultexpecteds         r0   test_mapTestArrowArray.test_map*  s    ""d*!%%kY%GF#,,6,:H''9!%%kY%GF!!%77O'00y2660R'002''9r2   c                
  > UR                   R                  n[        R                  R	                  U5      (       a1  UR                  [        R                  R                  SU S3S95        OU(       d  [        R                  R                  U5      (       a  UR                  b$  [        R                  R                  U5      (       a,  UR                  [        R                  R                  SS95        [        TU ]5  U5        g )NzFor z .astype(str) decodes.r(   z8pd.Timestamp/pd.Timedelta repr different from numpy repr)r8   r6   r,   rW   rb   r.   r)   r*   r+   r^   tzr_   supertest_astype_str)r   rg   r/   using_infer_stringrf   	__class__s        r0   r   TestArrowArray.test_astype_str9  s    ::++88h''!!!(+AB " 
 $XX""8,,1Dxx##H--!!U " 
 	%r2   c                  > UR                   R                  n[        R                  R	                  U5      (       d$  [        R                  R                  U5      (       aX  [        R                  R	                  U5      (       a  SnOSU 3nUR                  [        R                  R                  US95        [        TU ]-  U5        g )Nz1ArrowDtype(pa.string()) != StringDtype('pyarrow')$pyarrow.type_for_alias cannot infer r   )r8   r6   r,   rW   ra   r\   r.   r)   r*   r+   r   test_from_dtype)r   rg   r/   rf   r(   r   s        r0   r   TestArrowArray.test_from_dtypeL  s    ::++88h''288+>+>x+H+Hxx!!(++L?zJ!!! " 
 	%r2   c                   [        U5      R                  UR                  UR                  S9n[        R
                  " X!5        [        UR                  [        R                  5      (       d   e[        U5      R                  UR                  R                  5       UR                  S9n[        R
                  " X!5        [        UR                  [        R                  5      (       d   eg NrV   )
rj   rk   	_pa_arrayr8   r   assert_extension_array_equalr   r,   ChunkedArraycombine_chunksr   rg   r   s      r0   test_from_sequence_pa_array*TestArrowArray.test_from_sequence_pa_array[  s     d**4>>*L
''5&**BOO<<<<d**NN))+4:: + 
 	''5&**BOO<<<<r2   c                    [        [        R                  5       5      n[        R                  " [
        SS9   [        R                  " S/US9  S S S 5        g ! , (       d  f       g = f)NzConverting strings tomatchz12-1rV   )r   r,   month_day_nano_intervalr)   r'   rc   r#   _from_sequence_of_strings)r   r/   r8   s      r0   *test_from_sequence_pa_array_notimplemented9TestArrowArray.test_from_sequence_pa_array_notimplementedh  sD    25578]].6MN996(%P ONNs   A
A%c                   UR                   R                  n[        R                  R	                  U5      (       a  UR
                  b  [        U5        UR                  R                  [        R                  5       5      n[        U5      R                  XAR                   S9n[        R                  " XQ5        UR                  5       n[        U5      R                  XAR                   S9n[        R                  " XQ5        g r   )r8   r6   r,   rW   r^   r   r1   r   caststringrj   r   r   r   r   )r   rg   r/   rf   pa_arrayr   s         r0   &test_from_sequence_of_strings_pa_array5TestArrowArray.test_from_sequence_of_strings_pa_arraym  s    ::++88  **x{{/F&w/>>&&ryy{3d55hjj5Q
''5**,d55hjj5Q
''5r2   c                   [        X5      " US9nUR                  R                  n[        R                  R                  U5      (       a7  UR                  S:X  a  SnOSnUR                  U5      nUR                  U5      nUR                  S5      n[        UR                  S5      U5      " US9n[        R                  " XGSS9  g )Nskipna    int32[pyarrow]r   Float64F)check_dtype)
getattrr8   r6   r,   rW   is_temporal	bit_widthastyper   assert_series_equal)r   r   op_namer   r   pa_typeint_typer   s           r0   check_accumulateTestArrowArray.check_accumulatez  s    &f5))))88((  B&++**X&C]]8,Fy)3::i0':&I
vUCr2   c                2   UR                   R                  n[        R                  R	                  U5      (       d$  [        R                  R                  U5      (       a	  US;   a  g g[        R                  R                  U5      (       a	  US:X  a  g g[        R                  R                  U5      (       a	  US;   a  g g[        R                  R                  U5      (       a2  US:X  a%  [        R                  R                  U5      (       d  gUS:X  a  gg)N)cumsumcumprodcummaxcumminFr   )r   r   r   r   T)
r8   r6   r,   rW   rb   r\   ra   rX   r   r_   )r   r   r   r   s       r0   _supports_accumulation%TestArrowArray._supports_accumulation  s     ))))88g&&"((*=*=g*F*FCC D  XX(()# $  XX  ))99 :  XX!!'**("288+?+?+H+HI%r2   r   TFc                0  > UR                   R                  nUn[        R                  R	                  U5      (       a  US;   a  g [
        R                  " U5      nU R                  Xv5      (       d  [        TU ]%  XU5      $ US:X  a~  [        R                  R                  U5      (       d$  [        R                  R                  U5      (       a6  UR                  [        R                  R                  U SU 3[         S95        U R#                  XvU5        g )N)r   r   r   r   z not implemented for r(   r'   )r8   r6   r,   rW   ra   rd   r   r   r   test_accumulate_seriesrX   r\   r.   r)   r*   r+   	TypeErrorr   )	r   rg   all_numeric_accumulationsr   r/   r   r   r   r   s	           r0   r   %TestArrowArray.test_accumulate_series  s    ****+88g&&76T+T iio**38871  %0HH((BHH,?,?,H,H!!788MgYW$ "  	cF3r2   c                   US:X  d  [         (       a  US:X  a  gUR                  nUR                  n[        R                  R                  U5      (       a2  US;   a,  [        R                  R                  U5      (       a  US;   a  O{g[        R                  R                  U5      (       a  US;   a  g[        R                  R                  U5      (       d$  [        R                  R                  U5      (       a  US;   a  g[        R                  R                  U5      (       a+  [        R                  R                  U5      (       d  US;   a  g[        R                  R                  U5      (       a  US	;   a  gg
)NkurtskewF)sumvarprodr   )r   )r   r   )meanmedianr   stdsemr   r   )anyall)r   r   r   r   r   r   T)
r   r8   r6   r,   rW   r   r_   rb   ra   rX   )r   r   r   r8   rf   s        r0   _supports_reduction"TestArrowArray._supports_reduction  s%   f!5!5'V:K		 &&88))g9W.Wxx##H--'W2DXX))g.HHHx((BHH,>,>x,H,HPP HH  **HH((22>)
 88x((W 9
 .
 r2   c                   UR                   R                  n[        R                  R	                  U5      (       d$  [        R                  R                  U5      (       a  UR                  S5      nOUnUS:X  a!  [        X5      " 5       n[        XR5      " 5       nO[        X5      " US9n[        XR5      " US9n[        R                  " Xg5        g )Nr   countr   )
r8   r6   r,   rW   r   rY   r   r   r   assert_almost_equal)r   r   r   r   rf   altr   r   s           r0   check_reduceTestArrowArray.check_reduce  s     99**88x((BHH,@,@,J,J**Y'C
 C gS*,Fs,.HS*&9Fs,F;H
v0r2   c                r  > UR                   R                  n[        R                  R	                  [
        U S[        R                   SU 3S9n[        R                  R                  U5      (       d$  [        R                  R                  U5      (       a  UR                  U5        [        TU ]5  XU5      $ )Nz is not implemented in pyarrow= for r&   )r8   r6   r)   r*   r+   r   r,   __version__rW   ra   rb   r.   r   test_reduce_series_boolean)	r   rg   all_boolean_reductionsr   r   r/   rf   
xfail_markr   s	           r0   r  )TestArrowArray.test_reduce_series_boolean  s     ::++[[&&)* +>>*%z; ' 

 88h''288+=+=h+G+G 
+w1$PVWWr2   c                   UR                   R                  nUS;   a  UR                  nU$ [        R                  R                  U5      (       Ga  US;   a  [        R                  R                  U5      (       a  UR                  nU$ [        R                  R                  U5      (       a   [        [        R                  S5      5      nU$ [        R                  R                  U5      (       a*  [        [        R                  UR                  5      5      nU$ [        [        R                  UR                  5      5      n U$ UR                  n U$ UR                  R                  S:X  aK  US:X  a,  [        (       d!  [        [        R                  SS5      5      nU$ US;  a  UR                  nU$ S	n U$ US
;   a  S	nU$ US;   a(  [        R                  R                  U5      (       a  SnU$ US:X  a2  [        R                  R!                  U5      (       a  UR                  nU$ SSS	S.UR                  R"                     nU$ )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   rj   r8   r,   rW   r   r_   r]   r   durationr`   unitnamer   
decimal128rX   ra   r   )r   arrr   r   r   	cmp_dtypes         r0   _get_expected_reduction_dtype,TestArrowArray._get_expected_reduction_dtype  s   --$$n$		IB A XX!!'**.(88''0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,H)I  "(("4"4W"="=		I 	 &&' iinn	I
 r2   zignore::RuntimeWarningc                  > [         (       d  U(       a  US:X  a  [        R                  R                  UR                  R
                  5      (       d8  [        R                  R                  UR                  R
                  5      (       a,  UR                  [        R                  R                  SS95        [        TU ]1  XU5      $ )Nr   z,https://github.com/apache/arrow/issues/45733r   )r   r,   rW   r   r8   r6   rY   r.   r)   r*   r+   r   test_reduce_series_numeric)r   rg   all_numeric_reductionsr   r/   r   s        r0   r&  )TestArrowArray.test_reduce_series_numeric8  s     %$&&0##DJJ$<$<==88''

(@(@AA !!I " 
 w1$PVWWr2   c                   > UnUS:X  aT  [         (       aI  UR                  R                  (       a.  [        R                  R                  SS9nUR                  U5        [        TU ]!  XU5      $ )Nr   zskew not implementedr   )	r   r8   _is_numericr)   r*   r+   r.   r   test_reduce_frame)r   rg   r'  r   r/   r   r*   r   s          r0   r+   TestArrowArray.test_reduce_frameK  s[    (f!5!5zz%%{{((0F(G##D)w(vNNr2   typ)int64uint64r   c                d    [         R                  " SS/U S3S9R                  5       nUS:X  d   eg )Nr>   r:   	[pyarrow]rV         ?)rd   r   r   )r   r-  r   s      r0   test_median_not_approximate*TestArrowArray.test_median_not_approximateT  s4     Aq6C5	):;BBD}}r2   c                  > UR                   n[        R                  R                  U5      (       a4  UR	                  [
        R                  R                  [        SU 3S95        [        R                  R                  U5      (       a@  Sn[
        R                  " [        US9   UR                  UR                  5        S S S 5        g [        TU ]=  U5        g ! , (       d  f       g = f)Nr   r&   z6string\[pyarrow\] should be constructed by StringDtyper   )r6   r,   rW   r\   r.   r)   r*   r+   rc   ra   r'   r   construct_from_stringr  r   #test_construct_from_string_own_name)r   r8   r/   rf   msgr   s        r0   r7  2TestArrowArray.test_construct_from_string_own_nameZ  s    &&88x((!!.A(L "  88h''KCy4++EJJ7 5 3E: 54 s   %C
C(c                  > UR                   n[        R                  R                  U5      (       a,  [	        U5      R                  UR                  5      (       a   eg [        R                  R                  U5      (       a4  UR                  [        R                  R                  [        SU 3S95        [        TU ]9  U5        g )Nr   r&   )r6   r,   rW   ra   rj   is_dtyper  r\   r.   r)   r*   r+   rc   r   test_is_dtype_from_namer   r8   r/   rf   r   s       r0   r<  &TestArrowArray.test_is_dtype_from_namen  s    &&88h''E{++EJJ77777xx""8,,##KK%%2!EhZP &  G+E2r2   c                    Sn[         R                  " [        US9   [        U5      R	                  S5        S S S 5        g ! , (       d  f       g = f)Nz*'another_type' must end with '\[pyarrow\]'r   another_type)r)   r'   r   rj   r6  )r   r8   r8  s      r0   .test_construct_from_string_another_type_raises=TestArrowArray.test_construct_from_string_another_type_raises}  s3    ;]]9C0K--n= 100s   A  
Ac                  > UR                   n[        R                  R                  U5      (       d  [        R                  R	                  U5      (       dy  [        R                  R                  U5      (       a  UR                  cH  [        R                  R                  U5      (       d$  [        R                  R                  U5      (       a/  UR                  [        R                  R                  U S3S95        [        TU ]9  U5        g )NzB does not have associated numpy dtype findable by find_common_typer   )r6   r,   rW   r]   r`   r^   r   rb   r\   r.   r)   r*   r+   r   test_get_common_dtyper=  s       r0   rD  $TestArrowArray.test_get_common_dtype  s    &&HHX&&xx))%%h//HKK4Kxx!!(++xx""8,,!!#* %= > "  	%e,r2   c                   > UR                   n[        R                  R                  U5      (       a  [	        U5      (       d   eg [
        TU ]  U5        g r   )r6   r,   rW   ra   r   r   test_is_not_string_type)r   r8   rf   r   s      r0   rG  &TestArrowArray.test_is_not_string_type  sA    &&88h''"5))))G+E2r2   z6GH 45419: pyarrow.ChunkedArray does not support views.)r(   runc                $   > [         TU ]  U5        g r   )r   	test_viewr   rg   r   s     r0   rK  TestArrowArray.test_view  s     	$r2   c                    XR                  5       )    nUS   nUR                  U5      nX1Ld   e[        R                  " X15        g r   )isnafillnar   r   )r   rg   validr   s       r0   test_fillna_no_op_returns_copy-TestArrowArray.test_fillna_no_op_returns_copy  sC    YY[L!QU#!!!
''5r2   c                   UR                  5       nSUl        UR                  US   5      nUS   US   :X  d   e[        R                  " X!5        UR                  US   5      nUS   US   :X  d   e[        R                  " X!5        g )NTr>   r   )copy	_readonlyrP  r   r   )r   rl   rg   r   s       r0   test_fillna_readonly#TestArrowArray.test_fillna_readonly  s      " \!_-ayLO+++
''; \!_-ayLO+++
'';r2   z5GH 45419: pyarrow.ChunkedArray does not support viewsc                $   > [         TU ]  U5        g r   )r   test_transposerL  s     r0   rZ  TestArrowArray.test_transpose  s     	t$r2   c                $   > [         TU ]  U5        g r   )r   test_setitem_preserves_viewsrL  s     r0   r]  +TestArrowArray.test_setitem_preserves_views  s     	,T2r2   dtype_backendr"   enginerq   pythonc           	     6   UR                   R                  n[        R                  R	                  U5      (       a6  UR                  [        R                  R                  [        SU S3S95        O[        R                  R                  U5      (       aB  UR                  S;   a2  UR                  [        R                  R                  [        SS95        OP[        R                  R                  U5      (       a,  UR                  [        R                  R                  SS95        [        R                  " S[        R                   " U[#        UR                   5      S	905      nU(       d  UR%                  S
SS9nOUR%                  S
[&        R(                  S9n[        R                  R                  U5      (       a  [+        U5      nO[-        U5      n[        R.                  " US[#        UR                   5      0UUS9n	Un
[0        R2                  " X5        g )NzParameterized types z not supported.r&   usnsz1https://github.com/pandas-dev/pandas/issues/49767z)CSV parsers don't correctly handle binaryr   
with_dtyperV   FNA)indexna_rep)r8   r`  r_  )r8   r6   r,   rW   r\   r.   r)   r*   r+   rc   r^   r  
ValueErrorrb   rd   	DataFramer   strto_csvr   r   r	   r
   read_csvr   assert_frame_equal)r   r`  rg   r_  r/   r   rf   df
csv_outputr   r   s              r0   test_EA_types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'	
 
f/r2   c                  > UR                   R                  n[        R                  R	                  U5      (       d  [        R                  R                  U5      (       db  [        R                  R                  U5      (       d>  UR                  [        R                  R                  [        R                  SU 3S95        [        (       aW  [        R                  R	                  U5      (       a3  [        R                  " [        SSS9   [         TU ]E  U5        S S S 5        g [         TU ]E  U5        g ! , (       d  f       g = f)Nz$pyarrow.compute.invert does support r&   zBitwise inversionF)r   check_stacklevel)r8   r6   r,   rW   rX   r   ra   r.   r)   r*   r+   ArrowNotImplementedErrorr   r   assert_produces_warningDeprecationWarningr   test_invertr   rg   r/   rf   r   s       r0   ry  TestArrowArray.test_invert  s    ::++HH))xx""8,,xx!!(++!!66A(L "  5RXX((22++"*=PU #D) 
 G% s   D44
Eperiodsr>   r?   c           
     (  > UR                   R                  n[        R                  R	                  U5      (       aH  US:X  aB  UR                  [        R                  R                  [        R                  SU SU S3S95        [        TU ]-  X5        g )Nr>   z
diff with z and periods=z will overflowr&   )r8   r6   r,   rW   r[   r.   r)   r*   r+   r-   r   	test_diff)r   rg   r|  r/   rf   r   s        r0   r~  TestArrowArray.test_diff  sz    ::++88''11gl!!??$XJmG9NS "  	$(r2   c                    US S nUR                  5       nUR                  [        [        R	                  5       5      :X  d   eg )NrI   )value_countsr8   r   r,   r.  r   s      r0   'test_value_counts_returns_pyarrow_int646TestArrowArray.test_value_counts_returns_pyarrow_int64  s8    CRy""$||z"((*5555r2   r   c                x    UR                  S5      nUS:X  a  S nU$ US:X  a  S $ [        R                  " U5      $ )N_rtruedivc                .    [         R                  " X5      $ r   )r   divider   ys     r0   r  1TestArrowArray.get_op_from_name.<locals>.rtruediv  s    yy&r2   	rfloordivc                .    [         R                  " X5      $ r   )r   floor_divider  s     r0   r   1TestArrowArray.get_op_from_name.<locals>.<lambda>"  s     5r2   )stripr   get_op_from_name)r   r   short_opnamer  s       r0   r  TestArrowArray.get_op_from_name  sC    }}S):%' O[(55""7++r2   c                4	   UnUS;   a  UR                  S5      $ [        R                  " U5      nSn[        U[        R
                  5      (       a  SnUR                  S S 2S4   nOUn[        U5      [        L a8  US;  a2  UR                  S:X  a  UR                  S5      $ UR                  S	5      $ [        U5      [        L a  UR                  S5      $ UR                  n	U(       Gd   [        U[        R                  5      (       a  [        R                  R                  U	5      (       d  [        R                  R!                  U	5      (       a  US
;  d  [        R                  R#                  U	5      (       dn  [        R                  R%                  U	5      (       dJ  [        R                  R'                  U	5      (       d&  [        R                  R)                  U	5      (       d  U$ OUS:X  a$  [        R                  R!                  U	5      (       d  [        R                  R#                  U	5      (       dn  [        R                  R%                  U	5      (       dJ  [        R                  R'                  U	5      (       d&  [        R                  R)                  U	5      (       d  U$ [        R+                  UR,                  5      n
[        R                  R)                  U
R                  5      (       Ga0  [        R                  R)                  U	5      (       Ga  [/        X!5      " U5      n[        R                  " U5      n[        U[0        5      (       d   eUS:X  a3  [        U[2        5      (       a  [1        [        R5                  5       5      nOUS:X  aM  [        U[        R                  5      (       a.  UR6                  U:X  a  [1        [        R5                  5       5      nO0[        R                  R)                  UR                  5      (       d   eUR                  U5      $ U
R9                  U	5      n
[        UR,                  5      " U
5      nU(       a+  [        R
                  " XR:                  UR<                  S9nU$ [        R                  " U5      nU$ )N)eqneltlegtgeboolean[pyarrow]FTr   )__floordiv__r  r  r   )__truediv____rtruediv__r  __pow__)rh  columns)r   r   	get_dtyper   rd   rk  ilocrj   intr   floatr6   r   r,   rW   rY   r   r_   r^   r]   r\   re   _valuesr   r   r   r   r8   r   rh  r  )r   r   objotherpointwise_resultr   original_dtype	was_frameexpected_dataorig_pa_typepa_expectedr  	alt_dtypepd_expecteds                 r0   _cast_pointwise_result%TestArrowArray._cast_pointwise_result(  sO    $::#**+=>>h/	h--I$MM!Q$/M$M ;#'1A"A""c)'9::'788%[E!??#566 &33Zryy99 $$\22HH''55'FF88''5588((6688##L1188&&|44  &288+>+>|+L+Lxx##L11xx$$\22xx--xx""<00 Ohh}44588{//00RXX5H5H5V5V #'.CS)Ii4444)#
5'(B(B&rzz|4	9$ubii00KK>1 'rzz|4	xx**9+B+BCCCC??9-- &**<8K=001+>||>>8;K;KH
  yy-Hr2   c                    US;   =(       d    US;   =(       a    [         (       + =(       a    [        R                  R                  U5      =(       d+    US;   =(       a    [        R                  R	                  U5      $ )N__add____radd__r  r  r  __rfloordiv____sub____rsub__)r   r,   rW   r_   r   )r   opnamerf   s      r0   _is_temporal_supported%TestArrowArray._is_temporal_supported  sm     11 WX 100/ $$X.
T //RBHH4H4H4R
	Tr2   c                ^   US;   a  [         [        4$ [        R                  " U5      nUR                  nU R                  X5      nUS;   a  [         [        4nU$ U(       a  S nU$ US;   aL  [        R                  R                  U5      (       d$  [        R                  R                  U5      (       a  S nU$ [        R                  R                  U5      (       dP  [        R                  R                  U5      (       d,  [        R                  R                  U5      (       d  [        nU$ S nU$ )N)
__divmod____rdivmod__>   __mod____rmod__r  )rc   r   r   r  r6   r  r,   rW   ra   rb   rY   r   r\   )r   r   r  r  r8   rf   arrow_temporal_supportedexcs           r0   _get_expected_exception&TestArrowArray._get_expected_exception  s    33'33 S! &&#'#>#>w#Q  
 
 '	2C 
 &C 
 //HHx((BHH,>,>x,H,HC 
 HH  **xx""8,,xx""8,,C 
 C
r2   c                   S nU R                  X5      nUS:X  a  [        R                  R                  U5      (       dH  [        R                  R	                  U5      (       d$  [        R                  R                  U5      (       a"  [        R                  R                  SU 3S9nU$ U(       ax  [        R                  R                  U5      (       d*  US;   aN  [        R                  R                  U5      (       a*  [        R                  R                  [        U SU S3S9nU$ US:X  av  [        R                  R	                  U5      (       d$  [        R                  R                  U5      (       a.  [        R                  R                  [        R                  S	S9nU$ US
:X  aP  [        R                  R                  U5      (       a,  [        R                  R                  [        R                  S	S9nU$ )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,   rW   rY   r   r\   r)   r*   r+   r`   r_   r   r-   )r   r  rf   r*   r  s        r0   _get_arith_xfail_marker&TestArrowArray._get_arith_xfail_marker  s   #'#>#>v#P ZHH  **xx""8,,xx""8,,;;$$#*& % DB 7 &HHX&&STHH((22 ;;$$ h>xjW % D&  &HH))RXX-@-@-J-J;;$$$ % D  ~%"((*=*=h*G*G;;$$$ % D
 r2   c                  > UR                   R                  nUS:X  a:  [        R                  R	                  U5      (       a  [
        R                  " S5        U R                  X$5      nUb  UR                  U5        [        TU ])  X5        g Nr  z%Skip testing Python string formatting)r8   r6   r,   rW   rb   r)   skipr  r.   r   test_arith_series_with_scalarr   rg   all_arithmetic_operatorsr/   rf   r*   r   s         r0   r  ,TestArrowArray.test_arith_series_with_scalar  sm    ::++#z1bhh6H6H6R6RKK?@++,DO%-dMr2   c                b  > UR                   R                  nUS:X  a^  [        R                  R	                  U5      (       d$  [        R                  R                  U5      (       a  [        R                  " S5        U R                  X$5      nUb  UR                  U5        [        TU ]-  X5        g r  )r8   r6   r,   rW   ra   rb   r)   r  r  r.   r   test_arith_frame_with_scalarr  s         r0   r  +TestArrowArray.test_arith_frame_with_scalar  s    ::++#z1HHx((BHH,>,>x,H,HKK?@++,DO%,TLr2   c                8   UR                   R                  nUS;   ab  [        R                  R	                  U5      (       a>  UR                  [        R                  R                  [        R                  SU 3S95        U R                  X$5      nUb  UR                  U5        Un[        R                  " U5      n[        R                  " [        R                  " UR                  S   /[        U5      -  UR                   S95      nU R!                  XvU5        g )Nr  zJImplemented pyarrow.compute.subtract_checked which raises on overflow for r&   r   rV   )r8   r6   r,   rW   r[   r.   r)   r*   r+   r-   r  rd   r   re   r  lencheck_opname)	r   rg   r  r/   rf   r*   r   r   r  s	            r0   test_arith_series_with_array+TestArrowArray.test_arith_series_with_array  s    ::++# (
 
 hh**844!!??88@zC "  ++,DO%*iio 		"((CHHQK=3s8#;4::NO#.r2   c                   > UR                   R                  nUR                  S5      (       a>  UR                  [        R
                  R                  [        R                  SU 3S95        [        TU ])  U5        g )Nint8zraises on overflow for r&   )r8   r6   equalsr.   r)   r*   r+   r,   r-   r   $test_add_series_with_extension_arrayrz  s       r0   r  3TestArrowArray.test_add_series_with_extension_array  sf    ::++??6""!!??4XJ? "  	4T:r2   c                    [         R                  " [        SS9   U" U[        5       5        S S S 5        g ! , (       d  f       g = f)Nz'.* not implemented for <class 'object'>r   )r)   r'   rc   r   )r   rg   r   s      r0   test_invalid_other_comp&TestArrowArray.test_invalid_other_comp#  s2    ]]'P
 $)
 
 
s	   5
Amasked_dtype)booleanInt64r   c                   / SQn[         R                  " X1S9n[         R                  " X1R                  5        S3S9nU" XT5      nU[        R                  [        R
                  [        R                  4;   a  / SQnO/ SQn[         R                  " U[        [        R                  5       5      S9n[        R                  " Xh5        g )N)r>   r   NrV   r1  )FFN)TTN)rd   r   loweroperatorr  r  r  r   r,   bool_r   r   )	r   r  r   rg   
ser_maskedser_par   expr   s	            r0   test_comp_masked_numpy%TestArrowArray.test_comp_masked_numpy*  s     YYt8
4*<*<*>)?y'IJv2X[[(++x{{CC&C$C99S
288:(>?
v0r2   c                   > UR                   R                  n[        R                  R	                  U5      (       a.  [
        R                  R                  SS9nUR                  U5        [        TU ])  U5        g )Nz4GH#62343 incorrectly casts to timestamp[ms][pyarrow]r   )r8   r6   r,   rW   r]   r)   r*   r+   r.   r   8test_loc_setitem_with_expansion_preserves_ea_index_dtype)r   rg   r/   rf   r*   r   s        r0   r  GTestArrowArray.test_loc_setitem_with_expansion_preserves_ea_index_dtype8  s`    ::++88H%%;;$$M % D %HNr2   r   )r   	pd.Seriesr   rl  returnbool)r   r  r   rl  r   r  )r   rl  r   r  )r   rl  )r   rl  r  z4type[Exception] | tuple[type[Exception], ...] | None)9__name__
__module____qualname____firstlineno__r   r   r)   r*   parametrizer   r   r   r   r   r   r   r   r   r  r	  r  r#  filterwarningsr&  r+  r3  r7  r<  rA  rD  rG  r+   rK  rR  rW  rZ  r]  r   rr  ry  r~  r  _combine_le_expected_dtyper  r  r  r  r  r  r  r  r  r  r  r  __static_attributes____classcell__r   s   @r0   r   r     s    (? [[[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r2   r   c                     \ rS rSrSrS r\R                  R                  SS/ SQ4\	R                  / SQ4S/ SQ4\R                  " S5      / SQ4S	/ S
Q4\R                  " S	5      / S
Q4/5      S 5       rS r\R                  R                  SS/ SQ4\	R                  / SQ4S/ S
Q4S	/ SQ4\R                  " S5      / S
Q4\R                  " S	5      / SQ4/5      S 5       rS r\R                  R                  SS/ SQ4\	R                  / SQ4S/ SQ4\R                  " S5      / SQ4\R                  " S	5      / S
Q4/5      S 5       r\R                  R                  SSS/SS/SS	//5      S 5       rSrg)TestLogicalOpsiB  z1Various Series and DataFrame logical ops methods.c                   [         R                  " S/S-  S/S-  -   S /S-  -   SS9n[         R                  " / SQS-  SS9nX-  n[         R                  " / SQSS9n[        R                  " X45        X!-  n[        R                  " X45        [        R                  " U[         R                  " S/S-  S/S-  -   S /S-  -   SS95        [        R                  " U[         R                  " / SQS-  SS95        g )NTr  Fr  rV   TFN)	TTTTFNTNNrd   r   r   r   r   rK   rL   r   r   s        r0   test_kleene_orTestLogicalOps.test_kleene_orE  s    IItfqjE7Q;.$!;CUVII)A-5GH99C$
 	v0
v0 	IItfqjE7Q;.$!;CUV	
 	ryy,q08JK	
r2   zother, expectedN)TNNT)TTTFr  c                   [         R                  " / SQSS9nX1-  n[         R                  " USS9n[        R                  " XB5        X-  n[        R                  " XB5        [        R                  " U[         R                  " / SQSS95        g Nr  r  rV   r  r   r  r   rK   r   s        r0   test_kleene_or_scalar$TestLogicalOps.test_kleene_or_scalar[  s     II)1CD99X-?@
v0
v0 	ryy,4FG	
r2   c                   [         R                  " S/S-  S/S-  -   S /S-  -   SS9n[         R                  " / SQS-  SS9nX-  n[         R                  " / SQSS9n[        R                  " X45        X!-  n[        R                  " X45        [        R                  " U[         R                  " S/S-  S/S-  -   S /S-  -   SS95        [        R                  " U[         R                  " / SQS-  SS95        g )NTr  Fr  rV   r  )	TFNFFFNFNr  r  s        r0   test_kleene_andTestLogicalOps.test_kleene_andt  s    IItfqjE7Q;.$!;CUVII)A-5GH99G$
 	v0
v0 	IItfqjE7Q;.$!;CUV	
 	ryy,q08JK	
r2   )NFNFFFc                   [         R                  " / SQSS9nX1-  n[         R                  " USS9n[        R                  " XB5        X-  n[        R                  " XB5        [        R                  " U[         R                  " / SQSS95        g r  r  r  s        r0   test_kleene_and_scalar%TestLogicalOps.test_kleene_and_scalar  r  r2   c                   [         R                  " S/S-  S/S-  -   S /S-  -   SS9n[         R                  " / SQS-  SS9nX-  n[         R                  " / SQSS9n[        R                  " X45        X!-  n[        R                  " X45        [        R                  " U[         R                  " S/S-  S/S-  -   S /S-  -   SS95        [        R                  " U[         R                  " / SQS-  SS95        g )NTr  Fr  rV   r  )	FTNTFNNNNr  r  s        r0   test_kleene_xorTestLogicalOps.test_kleene_xor  s    IItfqjE7Q;.$!;CUVII)A-5GH99D$
 	v0
v0 	IItfqjE7Q;.$!;CUV	
 	ryy,q08JK	
r2   NNN)FTNc                   [         R                  " / SQSS9nX1-  n[         R                  " USS9n[        R                  " XB5        X-  n[        R                  " XB5        [        R                  " U[         R                  " / SQSS95        g r  r  r  s        r0   test_kleene_xor_scalar%TestLogicalOps.test_kleene_xor_scalar  ss     II)1CD99X-?@
v0
v0 	ryy,4FG	
r2   zop, exp__and____or____xor__c                   / SQn[         R                  " USS9n[         R                  " USS9n[        XQ5      " U5      n[         R                  " USS /[        [        R                  5       5      S9n[        R                  " Xg5        g )Nr  r  rV   r  F)rd   r   r   r   r,   r  r   r   )r   opr  rg   r  r  r   r   s           r0   test_logical_masked_numpy(TestLogicalOps.test_logical_masked_numpy  si     #YYt95
4'9:$Z099c5$/z"((*7MN
v0r2   r   )r  r  r  r  __doc__r  r)   r*   r  rd   rg  r   r  r	  r  r  r  r  r  r  r   r2   r0   r  r  B  s   ;
, [[%&UU&'%&XXd^/0'(XXe_12	





, [[&'UU'(&')*XXd^01XXe_34	





, [[%&UU&'&'XXd^01XXe_12	
	
	
 [[t	
11r2   r  r   c                p   [        U 5      n[        R                  " / SQUS9n[        R                  " / SQUS9nX#-  n[        R                  " / SQUS9n[        R                  " XE5        X#-  n[        R                  " / SQUS9n[        R                  " XE5        X#-  n[        R                  " / SQUS9n[        R                  " XE5        U) nUR                  S5      R                  5       ) n[        R                  " XQS9R                  UR                  5       5      n[        R                  " XE5        g )N)r>   Nr  rp   rV   )Nr  rJ   rp   )NNrx   rp   )NNr>   rp   )NN   r   r   )	r   rd   r   r   r   rP  r   maskisnull)r   r8   r   r   r   r   s         r0   test_bitwiser&    s     wE99_E2DIIoU3E\Fyy35AH6,\Fyy35AH6,\Fyy35AH6,UFQ((*+Hyy/44T[[]CH6,r2   c                 (   [         R                  " [        SS9   [        R                  " S5        S S S 5        [         R                  " [        SS9   [        R                  " S5        S S S 5        g ! , (       d  f       NG= f! , (       d  f       g = f)NzPassing pyarrow typer   z#not_a_real_dype[s, tz=UTC][pyarrow]zdecimal(7, 2)[pyarrow])r)   r'   rc   r   r6  r   r2   r0   Ftest_arrowdtype_construct_from_string_type_with_unsupported_parametersr(    se    	*2H	I(()NO 
J 
*2H	I(()AB 
J	I 
J	I 
J	Is   A2B2
B 
Bc                 |    [         R                  " S5      n [        [        R                  SS5      5      nX:X  d   eg )Nztimestamp[s, tz=UTC][pyarrow]r  UTC)r   r6  r,   	timestamp)r8   r   s     r0   5test_arrowdtype_construct_from_string_supports_dt64tzr,    s4    ,,-LME",,sE23Hr2   c                     Sn Sn[         R                  " [        US9   [        R                  " [        S5      U S9  S S S 5        g ! , (       d  f       g = f)Nzint64[pyarrow]foobar[pyarrow]zYPassing pyarrow type specific parameters \(\[pyarrow\]\) in the string is not supported\.r   r  rV   )r)   r'   rc   rd   r   range)invalidr8  s     r0   ;test_arrowdtype_construct_from_string_type_only_one_pyarrowr0    s@    -G	%  
*#	6
		%('* 
7	6	6s   A
Ac                 b   [         R                  " SS/[        [        R	                  5       5      S9n [         R                  " SS/SS9nX-  n[         R                  " SS/[        [        R	                  5       5      S9n[
        R                  " X#5        X-  n[
        R                  " X$5        g )	NabcdefgrV   r:   r?   r   abcabc rd   r   r   r,   r   r   r   )binaryrepeatr   r   reflected_results        r0    test_arrow_string_multiplicationr:    s    YYvj.EFFYY2w&67F_Fyy(Bz"))+/FGH6,64r2   c                 8   [         R                  " SS/[        [        R	                  5       5      S9n U S-  n[         R                  " SS/[        [        R	                  5       5      S9n[
        R                  " X5        SU -  n[
        R                  " X25        g )Nr2  r3  rV   r:   r4  defgdefgr6  )r7  r   r   r9  s       r0   .test_arrow_string_multiplication_scalar_repeatr=  !  sq    YYvj.EFFaZFyy(J/z"))+7NOH6,6z+6r2   interpolation)linearr  highernearestmidpointquantiler=   c                   U R                   R                  nU R                  / SQ5      n [        R                  " U 5      n[
        R                  R                  U5      (       dH  [
        R                  R                  U5      (       d$  [
        R                  R                  U5      (       a>  Sn[        R                  " [
        R                  US9   UR                  X!S9  S S S 5        g [
        R                  R                  U5      (       dH  [
        R                  R                  U5      (       d$  [
        R                  R!                  U5      (       a  Ow[
        R                  R#                  U R$                  R&                  5      (       a  O>UR)                  [        R*                  R-                  [
        R                  SU 3S95        U R                  / SQ5      n [        R                  " U 5      nUR                  X!S9n[
        R                  R/                  U5      (       a  US;  a  UR0                  (       a  SUR2                   S	UR0                   S
3nOSUR2                   S
3nUR5                  U5      n	U	R                  X!S9n
US:X  a(  UR2                  S:X  a  U
R7                  SS9n
Xz:X  d   e g UR2                  S:X  a  U
R8                  R;                  S5      n
[<        R>                  " XzR5                  U R                   5      5        g US:X  a  XpS   :X  d   eg [        R                  " U R                  SS/5      SS/S9n
[
        R                  R                  U5      (       dH  [
        R                  R                  U5      (       d$  [
        R                  R!                  U5      (       a"  U
R5                  S5      n
UR5                  S5      n[<        R>                  " Xz5        g ! , (       d  f       g = f)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=   rd  F)warnr   rh  r  ) r8   r6   takerd   r   r,   rW   ra   rb   rX   r)   r'   rv  rC  r   rY   r\   r   r   rj   r.   r*   r+   r^   r   r  r   to_pydatetimedtfloorr   r   )rg   r>  rC  r/   rf   r   r8  r   pd_dtypeser_npr   s              r0   test_quantilerP  *  s	   
 zz''H99YD
))D/C 	8$$88h''88x(( O]]266cBLL8LA C 	H%%88))88x((			dnn11	2	2KK22?zJ  	
 99YD
))D/C\\H\BF	xxX&&=@S+S ;;X]]O2hkk]!<HX]]O1-HH%??X?Ks?}}$#11u1=%%%
 	 }}$#;;,,T2""6??4::+FG3a    99TYY1v.sCjAHH))xx##H--xx""8,,'9:H]]#56F
v0q CBs   O66
Pztake_idx, exp_idx)r   r   r:   r:   rp   rp   rp   )r   r   r   r:   rp   rp   
multi_modesingle_mode)r4   c                    U R                  U5      n[        R                  " U5      nUR                  SS9n[        R                  " U R                  U5      5      n[        R
                  " XV5        g )NTdropna)rJ  rd   r   moder   r   )rv   take_idxexp_idxrg   r   r   r   s          r0   test_mode_dropna_truerY  w  sY     !!(+D
))D/CXXTX"Fyy*//89H6,r2   c                j   [         R                  " S S U S   /U R                  S9nUR                  SS9n[         R                  " S /U R                  S9n[        R
                  " X#5        [         R                  " U S   S /U R                  S9nUR                  SS9n[        R
                  " X#5        g )Nr   rV   FrT  )rd   r   r8   rV  r   r   )rg   	more_nansr   r   s       r0   test_mode_dropna_false_mode_nar\    s    		4tAw/tzzBI^^5^)Fyy$tzz2H6,yy$q'4

;H]]%](F6,r2   zarrow_dtype, expected_type   f1f2c                :    [        U 5      R                  U:X  d   eg r   )r   rj   )arrow_dtypeexpected_types     r0   test_arrow_dtype_typerc    s    " k"''=888r2   c                 ~   [        [        R                  / SQ5      5      n [        U 5      (       d   e[        R
                  R                  R                  U 5      (       d   e[        R                  " [        [        U 5      5      5      nX   nU[        R                  " U 5         n[        R                  " X#5        g )NTFT)r#   r,   re   r   rd   corecommonis_bool_indexerr   r.  r  r   asarrayr   r   )rg   r  r   r   s       r0   test_is_bool_dtyperj    s    rxx(;<=D77>>))$////
		%D	"#AWFD!"H6,r2   c                R   U R                   R                  n[        R                  R	                  U5      (       dH  [        R                  R                  U5      (       d$  [        R                  R                  U5      (       a  [        U 5      (       d   eg [        U 5      (       a   eg r   )r8   r6   r,   rW   rY   r   r\   r   rg   r   s     r0   test_is_numeric_dtyperm    su    jj&&G
W%%88w''88w''%%%%#D)))))r2   c                    U R                   R                  n[        R                  R	                  U5      (       a  [        U 5      (       d   eg [        U 5      (       a   eg r   )r8   r6   r,   rW   r   r   rl  s     r0   test_is_integer_dtypero    sK    jj&&G	xx7##%%%%#D)))))r2   c                    U R                   R                  n[        R                  R	                  U5      (       a  [        U 5      (       d   eg [        U 5      (       a   eg r   )r8   r6   r,   rW   rZ   r   rl  s     r0   test_is_signed_integer_dtyperq    sK    jj&&G	xx!!'**&t,,,,*400000r2   c                    U R                   R                  n[        R                  R	                  U5      (       a  [        U 5      (       d   eg [        U 5      (       a   eg r   )r8   r6   r,   rW   r[   r    rl  s     r0   test_is_unsigned_integer_dtypers    sK    jj&&G	xx##G,,(....,T22222r2   c                
   U R                   R                  n[        R                  R	                  U5      (       d$  [        R                  R                  U5      (       a  [        U 5      (       d   eg [        U 5      (       a   eg r   )r8   r6   r,   rW   r^   r]   r   rl  s     r0   test_is_datetime64_any_dtyperu    s_    jj&&G	xxW%%)9)9')B)B&t,,,,*400000r2   c                    U R                   R                  n[        R                  R	                  U5      (       a  [        U 5      (       d   eg [        U 5      (       a   eg r   )r8   r6   r,   rW   rY   r   rl  s     r0   test_is_float_dtyperw    sK    jj&&G	xxG$$d####!$'''''r2   c                   [         R                  " U 5      nUR                  S5      n[        R                  " U5      n[        R                  " U5      n[        U5      [        U5      :  d   e[        R                  " U5      n[        R                  " XQ5        [        R                  " U5      n[        R                  " Xb5        g )Nr:   )	rd   r   headpickledumpsr  loadsr   r   )rg   r   expected_slicedfull_pickledsliced_pickledr   result_sliceds          r0   test_pickle_roundtripr    s    yyHmmA&O<<)L\\/2N|s>2222\\,'F6,LL0M=:r2   c                F   U R                  5       n[        R                  " XR                  S9nUR	                  U R                  5      n[        UR                  [        5      (       a   e[        UR                  [        5      (       d   e[        R                  " X05        g r   )	r   rd   re   r8   r   r   r   r   r   )rg   np_arrpd_arrayr   s       r0   test_astype_from_non_pyarrowr    sm    ]]_Fxxll3H__TZZ(F(..*5555fllJ////##F1r2   c                     [         R                  " S/5      n U R                  S5      n[         R                  " S/SS9n[        R                  " X5        g )N1.0r  r;   rV   rd   r   r   r   r   r   r   r   s      r0   &test_astype_float_from_non_pyarrow_strr    sB    
))UG
CZZ*+Fyy#&89H6,r2   c                     [         R                  " SS/0SS9n U R                  SSS9n[        R                  " X5        g )Ncoli@fr   rV   float[pyarrow]r   )errors)rd   rk  r   r   ro  )r   r   s     r0   test_astype_errors_ignorer    s;    ||UXJ/7GHH__-h_?F&+r2   c                   U R                  5       nU R                  R                  n[        R                  R                  U5      (       d$  [        R                  R                  U5      (       a  [        R                  " S5        Od[        R                  R                  U5      (       a   [        R                  " [        U 5      5      nO [        R                  " U R                  5      nU R                  (       a]  [        U R                  5      (       a  U(       d<  WR!                  ["        5      n[$        R&                  U[$        R(                  " U 5      '   [*        R,                  " UW5        g )Nz Tested in test_to_numpy_temporal)r   r   rj   r,   rW   r_   r^   r)   r  r]   r   re   r   _hasnar   r8   r   r   rd   rg  rO  r   r   )rg   r   r   r   r   s        r0   test_to_numpy_with_defaultsr    s    ]]_Fnn!!G	xxG$$(=(=g(F(F67			'	"	"88DJ'88DNN+{{,TZZ88??6*"$%%1r2   c                d   SS /n[         R                  " USS9nUR                  5       nU (       d*  [        R                  " S[         R                  /[
        S9nO@[        R                  " S[        R                  /5      n[        US   [        5      (       d   e[        R                  " X45        g )Nr>   r   rV   r   )rd   re   r   r   rg  r   r   r   r  r   r   )r   rg   r!  r   r   s        r0   test_to_numpy_int_with_nar  !  s}    t9D
((4/
0C\\^F88QJf588QK(&)U++++1r2   zna_val, exp)r>   r>   c                    [         R                  " [         R                  [         R                  /SS9nUR                  SU S9n[        R                  " U/S-  SS9n[
        R                  " X45        g )Nnull[pyarrow]rV   r   r   r:   rd   re   rg  r   r   r   r   )na_valr  r!  r   r   s        r0   test_to_numpy_null_arrayr  .  sV     ((BEE255>
9C\\	F\;Fxx	3H1r2   c                    [         R                  " [         R                  [         R                  /SS9n U R                  S S9n[        R                  " [         R                  /S-  SS9n[
        R                  " X5        g )Nr  rV   r:   r   r  r!  r   r   s      r0   !test_to_numpy_null_array_no_dtyper  7  sV    
((BEE255>
9C\\\%Fxx!84H1r2   c                    [         R                  " S[         R                  /SS9n U R                  SS9n[        R                  " SS/[        R
                  S9n[        R                  " X5        [         R                  " S[         R                  /SS9n U R                  SS9n[        R                  " SS/[        R                  S9n[        R                  " X5        g )	NTr  rV   F)r   r;   r   r<   )	rd   re   rg  r   r   r  r   r   float32r  s      r0   test_to_numpy_without_dtyper  ?  s    
((D"%%=(:
;C\\5\)FxxuRXX6H1
((C<'9
:C\\3\'Fxxc
"**5H1r2   c                   U R                  5       nUR                  5       nU S   US S & [        R                  " U S   /[        U 5      -  U R                  S9n[
        R                  " X#5        UR                  5       nU S S S2   US S & U S S S2   n[
        R                  " X#5        UR                  5       nU R                  5       US S & U n[
        R                  " X#5        g )Nr   rV   r@   )rU  r#   rk   r  r8   r   r   tolist)rg   origr   r   s       r0   test_setitem_null_slicer  L  s    99;DYY[FQF1I"11	a	CIjjH ##F5YY[FTrT
F1IDbDzH##F5YY[FF1IH##F5r2   c                P   U R                   R                  n[        R                  R	                  U5      (       d$  [        R                  R                  U5      (       a  Sn[        nSnO[        R                  R                  U5      (       dH  [        R                  R                  U5      (       d$  [        R                  R                  U5      (       a  Sn[        R                  nSnO
Sn[        nSn[        R                  " X4S9   X S S & S S S 5        g ! , (       d  f       g = f)N{   zInvalid value '123' for dtypefoozCould not convertzInvalid value 'foo' for dtyper   )r   rj   r,   rW   ra   rb   r   r   rY   rX   r-   r)   r'   )rg   r   
fill_valueerrr8  s        r0   test_setitem_invalid_dtyper  c  s    nn!!G	xx'""bhh&8&8&A&A
-
G$$88((88w''
oo!
-	s	&Q 
'	&	&s   	D
D%c                    [         R                  [        R                  " S5      [        R                  " S5      /[         R	                  5       S9n U R                  [         R	                  5       [        [         R                  5       5      0R                  S9n[        R                  " [        R                  " S5      [        R                  " S5      /[        [         R                  5       5      S9n[        R                  " X5        g )Nz
2019-12-31rj   types_mapperrV   )r,   re   rd   	Timestampdate32	to_pandasr   date64getr   r   r   )
date_arrayr   r   s      r0   &test_from_arrow_respecting_given_dtyper  z  s    	l	#R\\,%?@ryy{  J !!iik:biik#:;?? " F yy	l	#R\\,%?@%H 6,r2   c                 `   [         R                  SS/[         R                  5       S9n [        R                  " [         R
                  5         U R                  [         R                  5       [        [         R                  5       5      0R                  S9  S S S 5        g ! , (       d  f       g = f)Nr2        @r  r  )
r,   re   r   r   external_error_raisedr-   r  r   r.  r  )re   s    r0   -test_from_arrow_respecting_given_dtype_unsafer    sf    HHc3ZbjjlH3E		!	!"//	2bjjlJrxxz4J%K%O%OP 
3	2	2s   A	B
B-c                    Sn [         R                  " SSS[         R                  /U S9nUR                  S5      n[         R                  " SSS[         R                  /U S9n[        R
                  " X#5        [         R                  " S	[         R                  S
/U S9nUR                  S5      n[         R                  " S[         R                  S/U S9n[        R
                  " X#5        g )Nr  r<   gGz?g{Gz@rV   r>   g333333?g@g^@gp=
cL@r@   g      ^@g      N@)rd   r   rg  roundr   r   r8   r   r   r   s       r0   
test_roundr    s    E
))S$bee,E
:CYYq\Fyy#sC/u=H6,
))UBEE5)
7CYYr]Fyy%-U;H6,r2   c                    U u  p#nU R                  / SQ5      n[        R                  US'   U(       a  [        R                  " U5      nSn[        R
                  " [        US9   UR                  U5        S S S 5        g ! , (       d  f       g = f)N)r:   r   r>   r@   zOsearchsorted requires array to be sorted, which is impossible with NAs present.r   )rJ  rd   rg  r   r)   r'   rj  searchsorted)rz   	as_seriesrL   rq   rK   r!  r8  s          r0    test_searchsorted_with_na_raisesr    sl    GA!


	
*CeeCGiin	0  
z	- 
.	-	-s   $A??
Bc                 T   [         R                  " [         R                  " SS/[        [        R                  [        R                  5       [        R                  5       5      5      S9SS/S.5      n U R                  5       nU R                  SS/S	9n[        R                  " X!5        g )
Nr   r  rV   r>   r:   rK   rL   rK   rL   )by)rd   rk  r   r   r,   
dictionaryint32r   rU  sort_valuesr   ro  )rp  r   r   s      r0   test_sort_values_dictionaryr    s~    	c
*R]]288:ryy{-S"T Q		

B wwyH^^Sz^*F&+r2   patr2  z	a[a-z]{2}c                .   [         R                  " SS /[        [        R	                  5       5      S9nUR
                  R                  U 5      n[         R                  " SS /[        [        R                  5       5      S9n[        R                  " X#5        g )Nr2  rV   r>   )
rd   r   r   r,   r   rl  r  r  r   r   )r  r   r   r   s       r0   test_str_countr    s`    
))UDMBIIK)@
ACWW]]3Fyy!T*RXXZ*@AH6,r2   c                    [         R                  " SS /[        [        R	                  5       5      S9n [
        R                  " [        SS9   U R                  R                  SSS9  S S S 5        g ! , (       d  f       g = f)Nr2  rV   z	count notr   r>   flags)
rd   r   r   r,   r   r)   r'   rc   rl  r  r   s    r0    test_str_count_flags_unsupportedr    sP    
))UDMBIIK)@
AC	*+	>e1% 
?	>	>   A00
A>zside, str_funcr   rjustr   ljustbothcenterc                P   [         R                  " SS /[        [        R	                  5       5      S9nUR
                  R                  SU SS9n[         R                  " [        SU5      " SS5      S /[        [        R	                  5       5      S9n[        R                  " X45        g )NrK   rV   r  r   )widthsidefillchar)
rd   r   r   r,   r   rl  padr   r   r   )r  str_funcr   r   r   s        r0   test_str_padr    s|     ))S$Kz"))+'>
?CWW[[qtc[:Fyy	h	3	'.j6MH 6,r2   c                    [         R                  " SS /[        [        R	                  5       5      S9n [
        R                  " [        SS9   U R                  R                  SSS5        S S S 5        g ! , (       d  f       g = f)NrK   rV   zInvalid side: foor   r  r  r   )
rd   r   r   r,   r   r)   r'   rj  rl  r  r  s    r0   test_str_pad_invalid_sider    sP    
))S$Kz"))+'>
?C	z)<	=Auc" 
>	=	=   A33
Bzpat, case, na, regex, expabFTAbz	a[a-z]{1}z	A[a-z]{1}c                (   [         R                  " SS /[        [        R	                  5       5      S9nUR
                  R                  XX#S9n[         R                  " U[        [        R                  5       5      S9n[        R                  " Xg5        g )Nr2  rV   )casenaregex)
rd   r   r   r,   r   rl  containsr  r   r   )r  r  r  r  r  r   r   r   s           r0   test_str_containsr    se     ))UDMBIIK)@
ACWWcAFyyJrxxz$:;H6,r2   c                    [         R                  " SS /[        [        R	                  5       5      S9n [
        R                  " [        SS9   U R                  R                  SSS9  S S S 5        g ! , (       d  f       g = f)Nr2  rV   zcontains notr   rK   r>   r  )
rd   r   r   r,   r   r)   r'   rc   rl  r  r  s    r0   #test_str_contains_flags_unsupportedr    sT    
))UDMBIIK)@
AC	*.	AA& 
B	A	Ar  zside, pat, na, exp
startswith)TNFrL   r  endswith)FTFbc)rK   eg)TNT)rK   rq   r  r   )FNFc                (   [         R                  " / SQ[        [        R	                  5       5      S9n[        UR                  U 5      " XS9n[         R                  " U[        [        R                  5       5      S9n[        R                  " XV5        g )N)r2  NefgrV   )r  
rd   r   r   r,   r   r   rl  r  r   r   )r  r  r  r  r   r   r   s          r0   test_str_start_ends_withr    s^     ))(
299;0G
HCSWWd#C/FyyJrxxz$:;H6,r2   r  )r  r  c                0   [         R                  " S S /[        [        R	                  5       5      S9n[        UR                  U 5      " S5      n[         R                  " S S /[        [        R                  5       5      S9n[        R                  " X#5        g )NrV   r   r  )r  r   r   r   s       r0   /test_str_starts_ends_with_all_nulls_empty_tupler    se    
))T4L
299;(?
@CSWWd#B'F yy$Z
-CDH6,r2   zarg_name, argreplr  r  r>   c                   [         R                  " SS /[        [        R	                  5       5      S9nSSSS.nXU '   [
        R                  " [        SS9   UR                  R                  " S	0 UD6  S S S 5        g ! , (       d  f       g = f)
Nr2  rV   rL   r   T)r  r  r  zreplace is not supportedr   r   )
rd   r   r   r,   r   r)   r'   rc   rl  replace)arg_nameargr   kwargss       r0   test_str_replace_unsupportedr    sg    
 ))UDMBIIK)@
AC#5F8	*2L	M!&! 
N	M	Ms   A<<
B
zpat, repl, n, regex, exprK   r   r@   xbxcxbacz[a-b]xxxcc                (   [         R                  " SS /[        [        R	                  5       5      S9nUR
                  R                  XX#S9n[         R                  " U[        [        R	                  5       5      S9n[        R                  " Xg5        g )NabacrV   )nr  )	rd   r   r   r,   r   rl  r  r   r   )r  r  r   r  r  r   r   r   s           r0   test_str_replacer    sb     ))VTN*RYY[*A
BCWW__S!_9FyyJryy{$;<H6,r2   c                    [         R                  " SS/[        [        R	                  5       5      S9n U R
                  R                  SSSS5      n[         R                  " SS/[        [        R	                  5       5      S9n[        R                  " X!5        U R                  [         R                  " S	S
95      nUR
                  R                  SSSS5      nUR                  UR                  5      n[        R                  " XT5        U R                  [         R                  " S	[        R                  S95      nUR
                  R                  SSSS5      nUR                  UR                  5      n[        R                  " X5        g )Nr2  aaaaaarV   rK   r5  Tr  r"   storage)r  r   )rd   r   r   r,   r   rl  r  r   r   r   StringDtyper8   r   r   )	r   actualr   ser2actual2	expected2ser3actual3	expected3s	            r0   test_str_replace_negative_nr  +  s   
))UH%Z		-D
ECWW__S"b$/Fyy$:biik+BCH8, ::bnnY78DhhsBD1G

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

+I9.r2   c                    [         R                  " SS /[        [        R	                  5       5      S9n [
        R                  " [        SS9   U R                  R                  SS/5        S S S 5        g ! , (       d  f       g = f)Nr2  rV   zrepeat is notr   r>   r:   )
rd   r   r   r,   r   r)   r'   rc   rl  r8  r  s    r0   test_str_repeat_unsupportedr  >  sQ    
))UDMBIIK)@
AC	*/	B1v 
C	B	Br  c                 .   [         R                  " SS /[        [        R	                  5       5      S9n U R
                  R                  S5      n[         R                  " SS /[        [        R	                  5       5      S9n[        R                  " X5        g )Nr2  rV   r:   r4  )	rd   r   r   r,   r   rl  r8  r   r   r  s      r0   test_str_repeatr  D  sa    
))UDMBIIK)@
ACWW^^AFyy(D)BIIK1HIH6,r2   zpat, case, na, expc                (   [         R                  " SS /[        [        R	                  5       5      S9nUR
                  R                  XUS9n[         R                  " U[        [        R                  5       5      S9n[        R                  " XV5        g )Nr2  rV   r  r  )
rd   r   r   r,   r   rl  r   r  r   r   r  r  r  r  r   r   r   s          r0   test_str_matchr  K  sb     ))UDMBIIK)@
ACWW]]3b]1FyyJrxxz$:;H6,r2   TFFNAbc)FFFNabc$zabc\$FTFNzAbc$zAbc\$z(abc)|(abx)z((abc)|(abx))c                (   [         R                  " / SQ[        [        R	                  5       5      S9nUR
                  R                  XUS9n[         R                  " U[        [        R                  5       5      S9n[        R                  " XV5        g )N)r2  r  z$abcNrV   r  )
rd   r   r   r,   r   rl  	fullmatchr  r   r   r  s          r0   test_str_fullmatchr  ]  sb    , ))1BIIK9P
QCWWs"5FyyJrxxz$:;H6,r2   zsub, start, end, exp, exp_typer  r  c                   [         R                  " SS /[        [        R	                  5       5      S9nUR
                  R                  XUS9n[         R                  " U[        U5      S9n[        R                  " Xg5        g )Nr2  rV   )startend	rd   r   r   r,   r   rl  findr   r   )subr   r!  r  exp_typer   r   r   s           r0   test_str_findr&  y  s\     ))UDMBIIK)@
ACWW\\#\4FyyJx$89H6,r2   c                 .   [         R                  " SS /[        [        R	                  5       5      S9n U R
                  R                  SSSS9n[         R                  " SS /[        [        R                  5       5      S9n[        R                  " X5        g )Nr2  rV   rL   ir  r$  r   r!  r>   
rd   r   r   r,   r   rl  r#  r.  r   r   r  s      r0   test_str_find_negative_startr*    sf    
))UDMBIIK)@
ACWW\\cA\6Fyy!T*RXXZ*@AH6,r2   c                     [         R                  " SS /[        [        R	                  5       5      S9n U R
                  R                  SSS9n[         R                  " SS /SS9n[        R                  " X5        g )Nr2  rV   r  r>   )r   r@   r   r"  r  s      r0   test_str_find_no_endr,    sZ    
))UDMBIIK)@
ACWW\\$a\(Fyy"d+;<H6,r2   c                 .   [         R                  " SS /[        [        R	                  5       5      S9n U R
                  R                  SSSS9n[         R                  " SS /[        [        R                  5       5      S9n[        R                  " X5        g )NabcdefgrV   dr  r(  r  r)  r  s      r0   )test_str_find_negative_start_negative_endr1    sg    
))Y%Z		-D
ECWW\\c\4Fyy!T*RXXZ*@AH6,r2   c                 ,   [         R                  " SS /[        [        R	                  5       5      S9n U R
                  R                  SSS9n[         R                  " SS /[        [        R                  5       5      S9n[        R                  " X5        g )Nr.  rV   r/  r]  )r$  r   r@   r)  r  s      r0   test_str_find_large_startr3    se    
))Y%Z		-D
ECWW\\c\,Fyy"d:bhhj+ABH6,r2   r   )r  r   r>      Nr!  )r4  r@   r   r  r5  Nr$  )r5  azabcerK   caac                X   [         R                  " / SQ[        [        R	                  5       5      S9nUR                  [         R                  " SS95      nUR                  R                  X U5      nUR                  R                  X U5      R                  UR                  5      n[        R                  " XV5        UR                  [         R                  " SS95      nUR                  R                  X U5      R                  UR                  5      n[        R                  " X5        g )N)abcaadefr2  abcdeddefgj8292r  rK   r5  rV   ra  r  r"   )rd   r   r   r,   r   r   r  rl  r#  r8   r   r   )	r   r!  r$  r  object_seriesr   r   arrow_str_seriesresult2s	            r0   test_str_find_e2er?    s     			=%	A HHR^^H=>MUUZZC(F  %%c#6==fllKH6,xxy AB""''C8??MG7-r2   c                 .   [         R                  " SS /[        [        R	                  5       5      S9n U R
                  R                  SSSS9n[         R                  " SS /[        [        R                  5       5      S9n[        R                  " X5        g )Nr.  rV   r/  r  r0  r(  r@   r)  r  s      r0   2test_str_find_negative_start_negative_end_no_matchrA    sg    
))Y%Z		-D
ECWW\\c\4Fyy"d:bhhj+ABH6,r2   zi, exp)rL   r  N)rq   r  Nr:   )rq   NN)rK   NNr  c                *   [         R                  " / SQ[        [        R	                  5       5      S9nUR
                  R                  U 5      n[         R                  " U[        [        R	                  5       5      S9n[        R                  " X45        g )N)r2  deNrV   )	rd   r   r   r,   r   rl  r  r   r   )r  r  r   r   r   s        r0   test_str_getrD    sZ     ))'z"))+/F
GCWW[[^FyyJryy{$;<H6,r2   z=TODO: StringMethods._validate should support Arrow list typesr   c            
     X   [         R                  " [        [        R	                  [        S5      [        S5      S /5      5      5      n U R                  R                  S5      n[         R                  " / SQ[        [        R                  5       5      S9n[        R                  " X5        g )Nr2  123=za=b=cz1=2=3NrV   )rd   r   r#   r,   re   r   rl  joinr   r   r   r   r  s      r0   test_str_joinrJ    sl    
 ))'$u+tE{D1Q(RS
TCWW\\#Fyy1BIIK9PQH6,r2   c                 2   [         R                  " [        [        R	                  / SQ5      5      5      n U R
                  R                  S5      n[         R                  " / SQ[        [        R                  5       5      S9n[        R                  " X5        g )N)r2  rF  NrG  rH  rV   )rd   r   r#   r,   re   rl  rI  r   r   r   r   r  s      r0   test_str_join_string_typerL    s\    
))'1E(FG
HCWW\\#Fyy1BIIK9PQH6,r2   zstart, stop, step, expdcbac                ,   [         R                  " SS /[        [        R	                  5       5      S9nUR
                  R                  XU5      n[         R                  " U[        [        R	                  5       5      S9n[        R                  " XV5        g NabcdrV   )	rd   r   r   r,   r   rl  slicer   r   )r   stopstepr  r   r   r   s          r0   test_str_slicerT    s`     ))VTN*RYY[*A
BCWW]]5-FyyJryy{$;<H6,r2   zstart, stop, repl, expaxcdxcdcdc                ,   [         R                  " SS /[        [        R	                  5       5      S9nUR
                  R                  XU5      n[         R                  " U[        [        R	                  5       5      S9n[        R                  " XV5        g rO  )	rd   r   r   r,   r   rl  slice_replacer   r   )r   rR  r  r  r   r   r   s          r0   test_str_slice_replacerZ    sb     ))VTN*RYY[*A
BCWW""55FyyJryy{$;<H6,r2   zvalue, method, exp)a1cisalnumT)z!|,r\  F)aaaisalphaT)z!!!r^  F)u   ٠	isdecimalT)z~!r_  F)rM   isdigitT)~r`  F)r]  islowerT)aaArb  F)rF  	isnumericT)11Ird  F) isspaceT)r5  rg  F)zThe ThatistitleT)zthe Thatrh  F)AAAisupperT)AAcrj  Fc                .   [         R                  " U S /[        [        R	                  5       5      S9n[        UR                  U5      " 5       n[         R                  " US /[        [        R                  5       5      S9n[        R                  " XE5        g r   r  )valuemethodr  r   r   r   s         r0   test_str_is_functionsro    sc    0 ))UDMBIIK)@
ACSWWf%'Fyy#tJrxxz,BCH6,r2   zmethod, exp
capitalizezAbc deftitlezAbc DefswapcasezAbC Defr  zabc defupperzABC DEFcasefoldc                .   [         R                  " SS /[        [        R	                  5       5      S9n[        UR                  U 5      " 5       n[         R                  " US /[        [        R	                  5       5      S9n[        R                  " X45        g )NzaBc dEFrV   	rd   r   r   r,   r   r   rl  r   r   )rn  r  r   r   r   s        r0   test_str_transform_functionsrw  "  sd     ))Y%Z		-D
ECSWWf%'Fyy#tJryy{,CDH6,r2   c                 ,   [         R                  " SS /[        [        R	                  5       5      S9n U R
                  R                  5       n[         R                  " SS /[        [        R                  5       5      S9n[        R                  " X5        g )NrP  rV   rp   )
rd   r   r   r,   r   rl  r  r  r   r   r  s      r0   test_str_lenry  4  s]    
))VTN*RYY[*A
BCWW[[]Fyy!T*RXXZ*@AH6,r2   zmethod, to_strip, val)r  Nz abc )r  r   xabcx)lstripNz abc)r{  r   xabc)rstripNzabc )r}  r   abcxc                ,   [         R                  " US /[        [        R	                  5       5      S9n[        UR                  U 5      " US9n[         R                  " SS /[        [        R	                  5       5      S9n[        R                  " XE5        g )NrV   )to_stripr2  rv  )rn  r  valr   r   r   s         r0   test_str_stripr  ;  se     ))S$Kz"))+'>
?CSWWf%x8Fyy%j.EFH6,r2   r  abc123c                .   [         R                  " U S /[        [        R	                  5       5      S9nUR
                  R                  S5      n[         R                  " SS /[        [        R	                  5       5      S9n[        R                  " X#5        g NrV   rF  r2  )	rd   r   r   r,   r   rl  removesuffixr   r   r  r   r   r   s       r0   test_str_removesuffixr  M  b    
))S$Kz"))+'>
?CWW!!%(Fyy%j.EFH6,r2   123abcc                .   [         R                  " U S /[        [        R	                  5       5      S9nUR
                  R                  S5      n[         R                  " SS /[        [        R	                  5       5      S9n[        R                  " X#5        g r  )	rd   r   r   r,   r   rl  removeprefixr   r   r  s       r0   test_str_removeprefixr  U  r  r2   r  r   r   zencoding, exputf8s   abc)littlebigutf32s     a   b   c   s        a   b   cc                P   [         R                  " SS /[        [        R	                  5       5      S9nUR
                  R                  X5      n[         R                  " U[        R                     S /[        [        R                  5       5      S9n[        R                  " XE5        g Nr2  rV   )rd   r   r   r,   r   rl  encodesys	byteorderr7  r   r   )r  encodingr  r   r   r   s         r0   test_str_encoder  ]  sl      ))UDMBIIK)@
ACWW^^H-Fyy#cmm,d3:biik;RSH6,r2   c           	     V   [         R                  " / SQ[        [        R	                  5       5      S9nUR
                  R                  SU S9n[         R                  " S// S /[        [        R                  [        R	                  5       5      5      S9n[        R                  " X#5        g )N)r2  r  NrV   rL   r  )
rd   r   r   r,   r   rl  findalllist_r   r   )r  r   r   r   s       r0   test_str_findallr  s  so    
))(
299;0G
HCWW__S_.Fyy3%T**RXXbiik=R2STH6,r2   rn  rh  rindexz
start, endc                   [         R                  " SS /[        [        R	                  5       5      S9n[        UR                  U 5      " SX5      n[         R                  " SS /[        [        R                  5       5      S9n[        R                  " XE5        [        R                  " [        SS9   [        UR                  U 5      " SX5        S S S 5        g ! , (       d  f       g = f)NabcbarV   rq   r:   zsubstring not foundr   r  )rd   r   r   r,   r   r   rl  r.  r   r   r)   r'   rj  )rn  r   r!  r   r   r   s         r0   test_str_r_indexr  {  s     ))WdO:biik+B
CCSWWf%c56Fyy!T*RXXZ*@AH6,	z)>	? 3 
@	?	?s   1C
C&formNFCNFKCc                    [         R                  " SS /[        [        R	                  5       5      S9nUR
                  R                  U 5      nUR                  5       n[        R                  " X#5        g r  )
rd   r   r   r,   r   rl  	normalizerU  r   r   )r  r   r   r   s       r0   test_str_normalizer    sN    
))UDMBIIK)@
ACWWt$FxxzH6,r2   c                0   [         R                  " / SQ[        [        R	                  5       5      S9nUR
                  R                  SX5      n[         R                  " / SQ[        [        R                  5       5      S9n[        R                  " X45        g )N)r  r  NrV   rq   )r:   r@   N)
rd   r   r   r,   r   rl  rfindr.  r   r   )r   r!  r   r   r   s        r0   test_str_rfindr    s]     ))**RYY[2I
JCWW]]3+Fyyj.DEH6,r2   c                 2   [         R                  " SS /[        [        R	                  5       5      S9n U R
                  R                  SS05      n[         R                  " SS /[        [        R	                  5       5      S9n[        R                  " X5        g )Nr  rV   a   rL   bbcbb)	rd   r   r   r,   r   rl  	translater   r   r  s      r0   test_str_translater    sf    
))WdO:biik+B
CCWWCy)Fyy'4
299;0GHH6,r2   c                 .   [         R                  " SS /[        [        R	                  5       5      S9n U R
                  R                  S5      n[         R                  " SS /[        [        R	                  5       5      S9n[        R                  " X5        g )Nr  rV   r  zabc
ba)	rd   r   r   r,   r   rl  wrapr   r   r  s      r0   test_str_wrapr    s`    
))WdO:biik+B
CCWW\\!_Fyy)T**RYY[2IJH6,r2   c                 @   [         R                  " / SQ[        [        R	                  5       5      S9n U R
                  R                  5       n[         R                  " / SQ/ SQ/ SQ/[        [        R                  5       5      / SQS9n[        R                  " X5        g )N)za|bNza|crV   )TTFr  re  )rK   rL   rq   r8   r  )rd   r   r   r,   r   rl  get_dummiesrk  r  r   ro  r  s      r0   test_get_dummiesr    sk    
))(
299;0G
HCWW  "F||	35HI$H
 &+r2   c                    [         R                  " SS /[        [        R	                  5       5      S9n U R
                  R                  S5      n[         R                  " / SQ/ SQ/[        [        R	                  5       5      [         R                  " S5      S9n[        R                  " XSS	9  U R
                  R                  SS
S9n[         R                  " [        [        R                  / SQS /5      5      5      n[        R                  " X5        U R
                  R                  S5      n[         R                  " / SQ/ SQ/[        [        R	                  5       5      [         R                  " S5      S9n[        R                  " XSS	9  U R
                  R                  SS
S9n[         R                  " [        [        R                  / SQS /5      5      5      n[        R                  " X5        g )Nr  rV   rL   )rK   rL   cbar  r  r  T)check_column_typeFexpand)r2  rL   rK   )rd   r   r   r,   r   rl  	partitionrk  
RangeIndexr   ro  r#   re   r   
rpartitionr  s      r0   test_str_partitionr    sc   
))WdO:biik+B
CCWWs#F||	./%a H
 &dCWWs51Fyy,RXX7H$6O-PQRH6,WW$F||	./%a H
 &dCWWE2Fyy,RXX7H$6O-PQRH6,r2   rsplitsplitc                6   [         R                  " SS /[        [        R	                  5       5      S9n[        UR                  U 5      " 5       n[         R                  " [        [        R                  / SQS /5      5      5      n[        R                  " X#5        g )Nza1 cbc
brV   )a1cbcrL   )rd   r   r   r,   r   r   rl  r#   re   r   r   rn  r   r   r   s       r0   test_str_split_pat_noner    sh     ))[$'z"))+/F
GCSWWf%'Fyy,RXX7I46P-QRSH6,r2   c            	        [         R                  " / SQ[        [        R	                  5       5      S9n U R
                  R                  S5      n[         R                  " [        [        R                  / SQ/ SQS /5      5      5      n[        R                  " X5        U R
                  R                  SSS9n[         R                  " [        [        R                  SS	/S
S	/S /5      5      5      n[        R                  " X5        U R
                  R                  SSS9n[         R                  " [        [        R                  SS/SS/S /5      5      5      n[        R                  " X5        U R
                  R                  SSSS9n[         R                  " [        [        R                  / SQ5      5      [        [        R                  / SQ5      5      S.5      n[        R                  " X5        U R
                  R                  SSS9n[         R                  " [        [        R                  / SQ5      5      [        [        R                  / SQ5      5      S.5      n[        R                  " X5        g )Na1cbcba2cbcbNrV   rq   r  rL   rL   a2rL   rL   r>   r   r  bcbr  z[1-2]T)r  rK   cbcb)r  r  )rK   rK   N)r  r  Nr   r>   rB   r  rK   r  Nr  NN)rd   r   r   r,   r   rl  r  r#   re   r   r   rk  ro  r  s      r0   test_str_splitr    s   
)).j6M
NCWW]]3FyyBHH&68H$%OPQH 6,WW]]3!]$FyyBHHtUmdE]D%IJKH 6,WW]]7$]/FyyBHHsFmc6]D%IJKH 6,WW]]7$t]<F||"288,<#=>"288,B#CD	
H &+WW]]3t],F||"288,A#BC"288,@#AB	
H &+r2   c            	     $   [         R                  " / SQ[        [        R	                  5       5      S9n U R
                  R                  S5      n[         R                  " [        [        R                  / SQ/ SQS /5      5      5      n[        R                  " X5        U R
                  R                  SSS9n[         R                  " [        [        R                  SS	/S
S	/S /5      5      5      n[        R                  " X5        U R
                  R                  SSSS9n[         R                  " [        [        R                  / SQ5      5      [        [        R                  / SQ5      5      S.5      n[        R                  " X5        U R
                  R                  SSS9n[         R                  " [        [        R                  / SQ5      5      [        [        R                  / SQ5      5      S.5      n[        R                  " X5        g )Nr  rV   rq   r  r  r>   r  a1cbrL   a2cbT)r   r  )r  r  N)rL   rL   Nr  rB   r  r  r  )rd   r   r   r,   r   rl  r  r#   re   r   r   rk  ro  r  s      r0   test_str_rsplitr  	  sx   
)).j6M
NCWW^^C FyyBHH&68H$%OPQH 6,WW^^C1^%FyyBHHvsmfc]D%IJKH 6,WW^^C1T^2F||"288,B#CD"288,<#=>	
H &+WW^^C^-F||"288,A#BC"288,@#AB	
H &+r2   c                    [         R                  " / SQ[        [        R	                  5       5      S9n [
        R                  " [        SS9   U R                  R                  S5        S S S 5        g ! , (       d  f       g = f)Nr  b2c3rV   z*pat=.* must contain a symbolic group name.r   z[ab](\d))
rd   r   r   r,   r   r)   r'   rj  rl  extractr  s    r0   test_str_extract_non_symbolicr  *	  sJ    
))&j.E
FC	z)U	V$ 
W	V	V   A11
A?r  c           	     r   [         R                  " / SQ[        [        R	                  5       5      S9nUR
                  R                  SU S9n[         R                  " [        [        R                  / SQ5      5      [        [        R                  / SQ5      5      S.5      n[        R                  " X#5        g )Nr  rV   z(?P<letter>[ab])(?P<digit>\d)r  )rK   rL   NrB   rM   N)letterdigit)rd   r   r   r,   r   rl  r  rk  r#   re   r   ro  )r  r   r   r   s       r0   test_str_extractr  0	  s|    
))&j.E
FCWW__=f_MF||)"((3C*DE(2B)CD	
H &+r2   c            	        [         R                  " / SQ[        [        R	                  5       5      S9n U R
                  R                  SSS9n[         R                  " S[        [        R                  / SQ5      5      05      n[        R                  " X5        U R
                  R                  SSS9n[         R                  " [        [        R                  / SQ5      5      SS	9n[        R                  " X5        g )
Nr  rV   z[ab](?P<digit>\d)Tr  r  r  Fr  )rd   r   r   r,   r   rl  r  rk  r#   re   r   ro  r   r  s      r0   test_str_extract_expandr  =	  s    
))&j.E
FCWW__1$_?F||(2B)CD	
H
 &+WW__1%_@Fyy,RXX6F-GHwWH6,r2   r  )re  rd  msr  c                    SS/n[         R                  U 5      n[        U5      n[        R                  " XS9n[        [         R                  SS /US95      n[        R                  " XE5        g )N1000NaTrV     r  )r,   r  r   r#   r   re   r   r   )r  stringsr   r8   r   r   s         r0   #test_duration_from_strings_with_natr  L	  s^     uoGkk$GwE ::7PF"288T4Lw8#GHH##F5r2   c                    U R                   R                  n[        R                  R	                  U5      (       dC  [
        R                  " [        SS9   [        R                  " U 5      R                    S S S 5        g g ! , (       d  f       g = f)Nz2Can only use .dt accessor with datetimelike valuesr   )r8   r6   r,   rW   r   r)   r'   AttributeErrorrd   r   rL  r   s     r0   test_unsupported_dtr  W	  se    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secondrx   r   r   c                   [         R                  " [         R                  " SSSSSSSSS	9S /[        [        R                  S
5      5      S9n[        UR                  U 5      nS n[        U[        5      (       a  [        R                  5       nO*[        U[        5      (       a  [        R                  S
5      n[         R                  " [        [        R                  US /US95      5      n[        R                   " X15        g )Nr  r>   r:   r  rp   rx   r  r#  )r  r  r  r  r  r  r  r  re  rV   r  )rd   r   r  r   r,   r+  r   rL  r   r   r  r   time64r#   re   r   r   )propr   r   r   r%  s        r0   test_dt_propertiesr  `	  s    . ))LL 	 	
 d+,C  SVVT"FH(D!!99;	Hd	#	#99T?yy,RXXx6FXX-VWXH6,r2   )r  rJ   r   c                   [         R                  " [         R                  " SSSSU SS9S /[        [        R                  S5      5      S9nUR                  R                  n[         R                  " U S /SS9n[        R                  " X#5        g )	N  rx   rJ   r#  )r  r  r  r  r  r  re  rV   r   )
rd   r   r  r   r,   r+  rL  r  r   r   )r  r   r   r   s       r0   test_dt_microsecondr  	  s     ))LL' 
	
 d+,C VVFyy+t,4DEH6,r2   c                 "   [         R                  " [        SSSSS9[        SSSSS9[        SSSSS9S /[        [        R                  S5      5      S	9n U R                  R                  n[         R                  " / S
Q[        [        R                  5       5      S	9n[        R                  " X5        U R                  R                  n[         R                  " / SQ[        [        R                  5       5      S	9n[        R                  " X5        g )Nr  rF   r:   r  r  r  r  r  r>   rG   rd  rV   r  FFTN)rd   r   r   r   r,   r+  rL  is_month_startr  r   r   is_month_endr  s      r0   test_dt_is_month_start_endr  	  s    
))$baa8$aQQ7$aRa8		
 d+,C VV""Fyy3:bhhj;QRH6,VV  Fyy3:bhhj;QRH6,r2   c                 "   [         R                  " [        SSSSS9[        SSSSS9[        SSSSS9S /[        [        R                  S5      5      S9n U R                  R                  n[         R                  " / S	Q[        [        R                  5       5      S9n[        R                  " X5        U R                  R                  n[         R                  " / S
Q[        [        R                  5       5      S9n[        R                  " X5        g )Nr  rF   rG   r  r
  r>   rd  rV   r  r  )rd   r   r   r   r,   r+  rL  is_year_startr  r   r   is_year_endr  s      r0   test_dt_is_year_start_endr  	  s    
))$bbq9$aQQ7$aRa8		
 d+,C VV!!Fyy3:bhhj;QRH6,VVFyy3:bhhj;QRH6,r2   c                 "   [         R                  " [        SSSSS9[        SSSSS9[        SSSSS9S /[        [        R                  S5      5      S	9n U R                  R                  n[         R                  " / S
Q[        [        R                  5       5      S	9n[        R                  " X5        U R                  R                  n[         R                  " / SQ[        [        R                  5       5      S	9n[        R                  " X5        g )Nr        r  r
  r>   rG   rd  rV   r  r  )rd   r   r   r   r,   r+  rL  is_quarter_startr  r   r   is_quarter_endr  s      r0   test_dt_is_quarter_start_endr  	  s    
))$bbq9$aQQ7$aRa8		
 d+,C VV$$Fyy3:bhhj;QRH6,VV""Fyy3:bhhj;QRH6,r2   days_in_monthdaysinmonthc                f   [         R                  " [        SSSSS9[        SSSSS9[        SSSSS9S /[        [        R                  S5      5      S	9n[        UR                  U 5      n[         R                  " / S
Q[        [        R                  5       5      S	9n[        R                  " X#5        g )Nr  r  r  r
  rp   r>   r:   rd  rV   )rG   r     N)rd   r   r   r   r,   r+  r   rL  r.  r   r   r  s       r0   test_dt_days_in_monthr  	  s    
))$aRa8$aQQ7$aQQ7		
 d+,C SVVV$Fyy+:bhhj3IJH6,r2   c                    [         R                  " [        SSSS9[        SSSSS9[        SSSS	S
S
S9S /[        [        R                  S5      5      S9n U R                  R                  5       n[         R                  " [        SSSS9[        SSSS9[        SSSS9S /[        [        R                  S5      5      S9n[        R                  " X5        g )Nr  r  r  r  r  r  rp   r>   r
  r:      ;   )r  r  r  r  r  r  rd  rV   )
rd   r   r   r   r,   r+  rL  r  r   r   r  s      r0   test_dt_normalizer"  	  s    
))$aR0$aQQ7$aQR2N		
 d+,C VVFyy$aR0$aQ/$aQ/		
 d+,H 6,r2   rd  re  c           
        [         R                  " [        SSSSS9S /[        [        R                  U 5      5      S9nUR                  R                  U :X  d   eUR                  R                  n[         R                  " [        [        R                  [        SS5      S /[        R                  U 5      S95      5      n[        R                  " X#5        g )	Nr  r>   r:   r  r
  rV   r   r  )rd   r   r   r   r,   r+  rL  r  r   r#   re   r  r   r   r  r   r   r   s       r0   test_dt_time_preserve_unitr%  
  s    
))	t1!!	4d;d+,C 66;;$VV[[FyyBHHd1aj$%7biioHNOH 6,r2   r   )Nr*  
US/Pacificc           
         [         R                  " [        SSSSS9S /[        [        R                  SU S95      S9nUR                  R                  nU[        R                  " U 5      :X  d   eg )	Nr  r>   r:   r  r
  re  r   rV   )
rd   r   r   r   r,   r+  rL  r   r   maybe_get_tz)r   r   r   s      r0   
test_dt_tzr*  
  s`    
))	t1!!	4d;dr23C VVYYFY++B////r2   c            	        [         R                  " [        SSSSS9S /[        [        R                  S5      5      S9n U R                  R                  5       n[         R                  " / SQ/ S	Q// S
QSS9n[        R                  " X5        g )Nr  r>   r:   r  r
  re  rV   )r  r>   r>   rE  )r  weekr  r   r  r8   )rd   r   r   r   r,   r+  rL  isocalendarrk  r   ro  r  s      r0   test_dt_isocalendarr/   
  st    
))	t1!!	4d;d+,C VV!F||	y!'H
 &+r2   day_nameSunday
month_nameJanuaryc                \   [        U5        [        R                  " [        SSS5      S /[	        [
        R                  S5      5      S9n[        UR                  U 5      " 5       n[        R                  " US /[	        [
        R                  5       5      S9n[        R                  " XE5        g )Nr  r>   r  rV   )r1   rd   r   r   r   r,   r+  r   rL  r   r   r   )rn  r  r/   r   r   r   s         r0   test_dt_day_month_namer5  .
  sy    
 w'
))XdAq)40
2<<PTCU8V
WCSVVV$&Fyy#tJryy{,CDH6,r2   c           	     Z   [        U 5        [        R                  " [        SSSSS9S /[	        [
        R                  S5      5      S9nUR                  R                  S5      n[        R                  " S	S /[	        [
        R                  5       5      S9n[        R                  " X#5        g )
Nr  r>   r:   r  r
  re  rV   z%Y-%m-%dT%H:%M:%Sz2023-01-02T03:00:00.000000000)r1   rd   r   r   r   r,   r+  rL  strftimer   r   r   r/   r   r   r   s       r0   test_dt_strftimer9  ;
  s    w'
))	t1!!	4d;d+,C VV__01Fyy	($/z"))+7NH 6,r2   )ceilrM  r  c           	        [         R                  " [        SSSSS9S /[        [        R                  S5      5      S9n[        R                  " [        SS	9   [        UR                  U 5      " S
SS9  S S S 5        [        R                  " [        SS	9   [        UR                  U 5      " S
SS9  S S S 5        g ! , (       d  f       NL= f! , (       d  f       g = f)Nr  r>   r:   r  r
  re  rV   zambiguous is not supported.r   1hr  	ambiguousznonexistent is not supported.nonexistent)rd   r   r   r   r,   r+  r)   r'   rc   r   rL  rn  r   s     r0   *test_dt_roundlike_tz_options_not_supportedrB  I
  s    
))	t1!!	4d;d+,C 
*2O	P6 
Q 
*2Q	R%8 
S	R 
Q	P 
S	Rs   B9C
9
C

Cc           	        [         R                  " [        SSSSS9S /[        [        R                  S5      5      S9n[        R                  " [        SS	9   [        UR                  U 5      " S
5        S S S 5        [        R                  " [        SS	9   [        UR                  U 5      " S 5        S S S 5        g ! , (       d  f       NM= f! , (       d  f       g = f)Nr  r>   r:   r  r
  re  rV   zfreq='1B' is not supportedr   1Bz$Must specify a valid frequency: None)rd   r   r   r   r,   r+  r)   r'   rj  r   rL  rA  s     r0   "test_dt_roundlike_unsupported_freqrE  V
  s    
))	t1!!	4d;d+,C 
z)E	F% 
G 
z)O	P% 
Q	P 
G	F 
Q	Ps   B;C;
C	
Cfreq)Dhr  r  r  rd  re  c                f   [         R                  " [        SSSS9S /5      n[        [        R                  S5      5      n[        UR                  U5      " SU  35      R                  U5      n[        UR                  U5      R                  U5      " SU  35      n[        R                  " XT5        g )Nr  r>   r  re  rB   )rd   r   r   r   r,   r+  r   rL  r   r   r   )rF  rn  r   rf   r   r   s         r0   test_dt_ceil_year_floorrJ  c
  s     ))	t1!	,d3C ",,t,-Hsvvv&4&z299(CHSZZ),,f5$jAF6,r2   c                   ^ [        SSS5      [        SSS5      /n [        R                  " U [        [        R                  S5      5      S9nUR                  R                  5       n[        R                  " U [        S9m[        R                  " UT5        [        U4S j[        [        T5      5       5       5      (       d   eUR                  S5      R                  R                  5       m[        R                  " UT5        g )NrD   r>   r  re  rV   c              3  `   >#    U  H#  n[        TR                  U   5      [        L v   M%     g 7fr   )rj   r  r   ).0r  r   s     r0   	<genexpr>(test_dt_to_pydatetime.<locals>.<genexpr>v
  s&     P;OatHMM!$%1;Os   +.datetime64[ns])r   rd   r   r   r,   r+  rL  rK  r   r   r   r  r.  r  r   rg   r   r   r   s      @r0   test_dt_to_pydatetimerR  o
  s    T1a (4A"67D
))D
2<<+= >
?CVV!!#FyyV,H68,P5X;OPPPPPzz*+..<<>H68,r2   	date_typer   @   c           
        [         R                  " [        SSS5      /[        [	        [
        SU  35      " 5       5      S9n[        R                  " [        SS9   UR                  R                  5         S S S 5        g ! , (       d  f       g = f)NrD   rF   rG   r   rV   z#to_pydatetime cannot be called withr   )rd   r   r   r   r   r,   r)   r'   rj  rL  rK  )rS  r   s     r0    test_dt_to_pydatetime_date_errorrV  |
  sh     ))	dB	tI;%78:;C 
z)N	O 
P	O	Os   A>>
Bc            	        [         R                  " [        SSSSS9S /[        [        R                  S5      5      S9n [        R                  " [        SS	9   U R                  R                  S
SS9  S S S 5        [        R                  " [        SS	9   U R                  R                  S
SS9  S S S 5        g ! , (       d  f       NK= f! , (       d  f       g = f)Nr  r>   r:   r  r
  re  rV   z ambiguous='NaT' is not supportedr   r*  r  r=  z"nonexistent='NaT' is not supportedr?  )rd   r   r   r   r,   r+  r)   r'   rc   rL  tz_localizer  s    r0   *test_dt_tz_localize_unsupported_tz_optionsrY  
  s    
))	t1!!	4d;d+,C 
*2T	U5E2 
V 
*2V	W5e4 
X	W 
V	U 
X	Ws   B7C7
C
Cc           
     ~   [        U 5        [        R                  " [        SSSSS9S /[	        [
        R                  SSS95      S	9nUR                  R                  S 5      n[        R                  " US
   R                  S 5      S /[	        [
        R                  S5      5      S	9n[        R                  " X#5        g )Nr  r>   r:   r  r
  re  r&  r(  rV   r   )r1   rd   r   r   r   r,   r+  rL  rX  r   r   r8  s       r0   test_dt_tz_localize_noner[  
  s    w'
))	t1!!	4d;d|<=C VV%Fyy	Q		D	!4(d+,H 6,r2   c           	        [        U5        [        R                  " [        SSSSS9S /[	        [
        R                  U 5      5      S9nUR                  R                  S5      n[
        R                  [        SSSSS9S /[
        R                  U 5      S9n[
        R                  R                  US5      n[        R                  " [        U5      5      n[        R                  " X55        g )	Nr  r>   r:   r  r
  rV   r&  r  r1   rd   r   r   r   r,   r+  rL  rX  re   computeassume_timezoner#   r   r   )r  r/   r   r   exp_datar   s         r0   test_dt_tz_localizera  
  s    w'
))	t1!!	4d;d+,C VV-Fxx	t1!!	4d;",,tBT  H zz))(LAHyy,X67H6,r2   znonexistent, exp_dateshift_forwardrF   r
  shift_backwardz2023-03-12 01:59:59.999999999c           
        [        U5        [        R                  " [        SSSSSS9S /[	        [
        R                  S5      5      S9nUR                  R                  S	U S
9n[
        R                  US /[
        R                  S5      S9n[
        R                  R                  US	5      n[        R                  " [        U5      5      n[        R                  " XF5        g )Nr  r  rF   r:   r  )r  r  r  r  r  re  rV   r&  r?  r  r]  )r@  exp_dater/   r   r   r`  r   s          r0   test_dt_tz_localize_nonexistentrf  
  s     w'
))	t1"1R	@$Gd+,C VV+FFxx4(r||D/AxBHzz))(LAHyy,X67H6,r2   c            	        [         R                  " [        SSSSS9S /[        [        R                  S5      5      S9n [        R                  " [        SS	9   U R                  R                  S
5        S S S 5        g ! , (       d  f       g = f)Nr  r>   r:   r  r
  re  rV   z"Cannot convert tz-naive timestampsr   r*  )rd   r   r   r   r,   r+  r)   r'   r   rL  
tz_convertr  s    r0    test_dt_tz_convert_not_tz_raisesri  
  sd    
))	t1!!	4d;d+,C 
y(L	M%  
N	M	Ms   A<<
B
c            	     l   [         R                  " [        SSSSS9S /[        [        R                  SS5      5      S9n U R                  R                  S 5      n[         R                  " U S	   R                  S 5      S /[        [        R                  S5      5      S9n[        R                  " X5        g )
Nr  r>   r:   r  r
  re  r&  rV   r   
rd   r   r   r   r,   r+  rL  rh  r   r   r  s      r0   test_dt_tz_convert_nonerl  
  s    
))	t1!!	4d;dL9:C VVt$Fyy	Q		4	 $'d+,H 6,r2   c           	     n   [         R                  " [        SSSSS9S /[        [        R                  U S5      5      S9nUR                  R                  S5      n[         R                  " US	   R                  S5      S /[        [        R                  U S5      5      S9n[        R                  " X#5        g )
Nr  r>   r:   r  r
  r&  rV   
US/Easternr   rk  r$  s       r0   test_dt_tz_convertro  
  s    
))	t1!!	4d;dL9:C VV|,Fyy	Q		<	($/dL9:H 6,r2   r8   ztimestamp[ms][pyarrow]zduration[ms][pyarrow]c                    [         R                  " SS /U S9nUR                  R                  S5      nUR	                  U R                  SS5      5      n[        R                  " X#5        g )Nr  rV   re  r  )rd   r   rL  as_unitr   r  r   r   r  s       r0   test_as_unitrr  
  sQ     ))T4L
.CVV^^D!Fzz%--d34H6,r2   zfrom_unit,to_unit)re  rd  re  r  re  r  )rd  r  )rd  r  )r  r  )r  r  )r  rd  r  re  )r  rd  r  re  rc  c                `   [         R                  " [         R                  " SS /SS9R                  U 5      5      nUR	                  SU  S35      nUR
                  R                  U5      nUR
                  R                  U5      R	                  SU S35      n[        R                  " XE5        g )Nl   @W/U re  r  	duration[
][pyarrow])rd   r   to_timedeltarq  r   rL  r   r   )	from_unitto_unit	ser_numpy	ser_arrowr   r   s         r0    test_as_unit_duration_truncationr  
  s    ( 		
.T:BB9MI   9YKz!BCI\\!!'*F||##G,33iy
4STH6,r2   )rs  rt  ru  rv  rw  rc  c                   [         R                  " [         R                  " S5      S /SU  S3S9nUR                  SU  S35      nUR                  R                  U5      nUR                  R                  U5      n[        R                  " UR                  5       R                  SU S3S9UR                  5       R                  5       5        UR                  5       R                  5       UR                  5       R                  5       :X  d   eg )N2024-01-15 12:30:45.123456789
timestamp[r{  rV   zdatetime64[rG  )rd   r   r  r   rL  rq  r   r  rU  r   rO  r   )r}  r~  r  r  r   expected_numpys         r0   test_as_unit_timestampr    s     			5	6=9+Z0I   ;yk!;<I\\!!'*F\\))'2N  WIQ'? @((*
 ;;=).."2"6"6"8888r2   r~  )r  r  rd  re  c                   [         R                  " [         R                  " S/5      R                  S5      R	                  S5      5      nUR                  S5      nUR                  R	                  U 5      nUR                  R	                  U 5      R                  SU  S35      n[        R                  " X45        [        UR                  5      SU  S3:X  d   eg )Nr  rn  re  "timestamp[ns, US/Eastern][pyarrow]r  z, US/Eastern][pyarrow]z, tz=US/Eastern][pyarrow])rd   r   to_datetimerX  rq  r   rL  r   r   rl  r8   )r~  r  r  r   r   s        r0   $test_as_unit_timestamp_with_timezoner  2  s     		
789	\	"	I
   !EFI\\!!'*F||##G,33
WI34H 6,v||*WI5N OOOOr2   c                    [         R                  " SS/[        [        R	                  5       5      S9n [
        R                  " [        SS9   U R                  R                  S5        S S S 5        g ! , (       d  f       g = f)Nr>   r:   rV   zas_unit not implementedr   re  )
rd   r   r   r,   r  r)   r'   rc   rL  rq  r  s    r0   test_as_unit_date_raisesr  D  sN    
))QF*RYY["9
:C	*2K	Lt 
M	L	Lr  dayssecondsmicrosecondsnanosecondsc           	     v   [         R                  " [         R                  " SSSSS9S /[        [        R                  S5      5      S9n[        UR                  U 5      n[         R                  " [        [        R                  US /[        R                  5       S95      5      n[        R                  " X15        g )	Nr>   r:   r  rp   r  r  r  r  re  rV   r  )rd   r   	Timedeltar   r,   r  r   rL  r#   re   r  r   r   )r  r   r   r   s       r0   test_dt_timedelta_propertiesr  K  s     ))LL	 	
 T*+C SVVT"FyyBHHh%5BHHJHGHH 6,r2   c            	     ~   [         R                  " [         R                  " SSSSS9S /[        [        R                  S5      5      S9n U R                  R                  5       n[         R                  " [        [        R                  SS /[        R                  5       S	95      5      n[        R                  " X5        g )
Nr>   r:   r  rp   r  re  rV   gN%  @r  )rd   r   r  r   r,   r  rL  total_secondsr#   re   r   r   r   r  s      r0   test_dt_timedelta_total_secondsr  i  s    
))LL	 	
 T*+C VV!!#FyyBHHlD%9

HMNH 6,r2   c                    [        SSS5      [        SSS5      /n [        R                  " U [        [        R                  S5      5      S9nSn[        R                  " [        US9   UR                  R                  5       nS S S 5        [        R                  " U [        S9n[        R                  " WU5        [        S	 U 5       5      (       d   eS
n[        R                  " [        US9   UR!                  S5      R                  R                  5       nS S S 5        [        R                  " X45        g ! , (       d  f       N= f! , (       d  f       N6= f)Nr>   r:   r  rp   re  rV   zDThe behavior of ArrowTemporalProperties.to_pytimedelta is deprecatedr   c              3  D   #    U  H  n[        U5      [        L v   M     g 7fr   )rj   r   )rM  ress     r0   rN  )test_dt_to_pytimedelta.<locals>.<genexpr>  s     8#tCyI%s    z@The behavior of TimedeltaProperties.to_pytimedelta is deprecatedtimedelta64[ns])r   rd   r   r   r,   r  r   rw  r   rL  to_pytimedeltar   re   r   r   r  r   )rg   r   r8  r   r   s        r0   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8
LC		#	#N#	>::/033BBD 
?1 
?	> 
?	>s   'D7.*E7
E
Ec            
        [         R                  " [         R                  " SSSSS9S /[        [        R                  S5      5      S9n U R                  R                  n[         R                  " / SQ[         R                  [         R                  [         R                  [         R                  [         R                  [         R                  [         R                  /// S	QS
S9n[        R                  " X5        g )Nr>   r:   r  rp   r  re  rV   )r>   r   r   r:   r   r  rp   r  hoursminutesr  millisecondsr  r  r   r-  rd   r   r  r   r,   r  rL  
componentsrk  rg  r   ro  r  s      r0   test_dt_componentsr    s    
))LL	 	
 T*+C VVF||	ruubeeRUUBEE255 QR
 H &+r2   c            
        [         R                  " [         R                  " S5      S /[        [        R                  S5      5      S9n U R                  R                  n[         R                  " / SQ[         R                  [         R                  [         R                  [         R                  [         R                  [         R                  [         R                  /// SQSS9n[        R                  " X5        g )Nz365 days 23:59:59.999000re  rV   )im  r   r!  r!  i  r   r   r  r   r-  r  r  s      r0   test_dt_components_large_valuesr    s    
))LL34	
 T*+C VVF||(UUBEE255"%%ruu=	

 H  &+r2   r   c                    [         R                  " S /SS9n[        X 5      " US9nU(       a  U S:H  nO[         R                  nX4L d   eg )Nr  rV   r   r  )rd   r   r   rg  )r  r   r   r   r   s        r0   #test_boolean_reduce_series_all_nullr    sH     ))TF"4
5CS1@F)U255r2   c                    / SQn / SQnS /nX-   U-   nS/[        U 5      -  S/[        U5      -  -   S /[        U5      -  -   n[        [        R                  5       5      n[        R
                  " X5S9n[        R                  " USS9n[        R                  " Xg5        SS/n[        R                  " [        R                  S	S
9   [        R
                  " X5S9  S S S 5        g ! , (       d  f       g = f)N)trueTRUETruerB   r  )falseFALSEFalse0rC   TFrV   r  r  r  zFailed to parser   )r  r   r,   r  r#   r   rd   re   r   r   r)   r'   r-   )true_stringsfalse_stringsnullsr  boolsr8   r   r   s           r0   %test_from_sequence_of_strings_booleanr    s    7L;MFE*U2G	\""eWs=/A%AATFSQVZDWW 
 rxxz"E ::7PFxx%78H##F5uoG	r.?	@55gK 
A	@	@s   C##
C1c                    [         R                  " / U S9nUR                  5       n[         R                  " U[        R
                  " / [        R                  S9   /5      n[        R                  " X25        g r   )	rd   r   rU  concatr   re   r  r   r   )r8   r   r   r   s       r0   %test_concat_empty_arrow_backed_seriesr    sP    
))Be
$CxxzHYYBHHRrxx89:;F6,r2   r   string[pyarrow]c                    [         R                  SR                  5       5      n[        R                  " XS9n[        R                  " [        U5      U S9n[        R                  " X#5        g )Nzthe quick brown foxrV   )r,   re   r  rd   r   r#   r   r   )r8   r!  r   r   s       r0   test_series_from_string_arrayr    sL    
(((..0
1C
))C
%Cyy,S1?H3)r2   c                  (   ^  \ rS rSrU 4S jrSrU =r$ )OldArrowExtensionArrayi  c                L   > [         TU ]  5       nUR                  S5      US'   U$ )Nr   _data)r   __getstate__pop)r   stater   s     r0   r  #OldArrowExtensionArray.__getstate__  s'    $&;/gr2   r   )r  r  r  r  r  r  r  r  s   @r0   r  r    s     r2   r  c                 6   [         R                  S/5      n [        U 5      n[        R                  " [        R
                  " U5      5      n[        R                  " X!5        UR                  [         R                  U 5      :X  d   e[        US5      (       a   eg )Nr>   r  )r,   re   r  rz  r|  r{  r   r   r   chunked_arrayhasattr)rg   r   r   s      r0   #test_pickle_old_arrowextensionarrayr    su    88QC=D%d+H\\&,,x01F##F5r//5555vw'''''r2   c            	     0   Sn [        [        R                  [        R                  " U 4[        R
                  S9/5      5      nUR                  5       nSU[        R                  " U 4[        R
                  S9'   UR                  UR                  :X  d   eg )Nih6 rV   F)	r#   r,   r  r   onesr  rU  zerosr   )Nr!  r   s      r0   /test_setitem_boolean_replace_with_mask_segfaultr    sn    A
b..BHH0M/NO
PCxxzH*/C!RXX&'==H.....r2   zdata, arrow_dtyperP   rQ   c                    [        U5      n[        R                  " [        R                  " U 5      US9n[        R                  " XS9n[        R
                  " X45        g r   )r   rd   re   r   r   r   )rg   ra  r8   r   r   s        r0   -test_conversion_large_dtypes_from_numpy_arrayr    sB     {#EXXbhhtnE2Fxx*H##F5r2   c                 (   [         R                  " SS S /0[        [        R	                  5       5      S9n [         R                  " SSS/0SS9n[         R
                  " X/SS9n[         R                  " S/ SQ0SS9n[        R                  " X#5        g )	NrK   rV   r   r>   r   T)ignore_index)NNr   r>   )rd   rk  r   r,   nullr  r   ro  )rp  df2r   r   s       r0   test_concat_null_arrayr  "  sv    	sT4L)BGGI1F	GB
,,aV},<
=CYYyt4F||S"45=MNH&+r2   c                    [         R                  " / SQ[        U 5      S9nUR                  5       n[         R                  " / SQ[        [        R                  5       5      / SQS9n[        R                  " X#5        g )Nr>   r:   r  rV   )r  r:   r>   r>   r2  g       @r  r  r  r   r   r  25%50%75%r  r8   rh  )rd   r   r   describer,   r   r   r   r   rg   r   r   s       r0   test_describe_numeric_datar  +  sV     99Yj&9:D]]_Fyy&&IH
 6,r2   c                8   [         R                  " [        SS5      [        U 5      S9nUR	                  5       n[         R                  " S/[         R
                  " / SQU R                  S9R                  5       Q[        / SQS9n[        R                  " X#5        g )	Nr>   rI   rV   	   )rJ   r:   r>   r  rJ   rx   r  ry  r  r  )rd   r   r.  r   r  r|  r  r  r   r   r   r  s       r0   test_describe_timedelta_datar  8  sr     99U1b\G)<=D]]_Fyy	
PR__2FMMOPIH
 6,r2   c                Z   [         R                  " [        SS5      [        U 5      S9nUR	                  5       n[         R                  " S/S Vs/ s H,  n[         R
                  " X0R                  U R                  S9PM.     sn-   [        / SQS9n[        R                  " X$5        g s  snf )	Nr>   rI   rV   r  )rJ   r>   r  rJ   rx   r  )r   r  )r  r   r  r  r  r  r  r  )rd   r   r.  r   r  r  r   r  r   r   r   )r   rg   r   vr   s        r0   test_describe_datetime_datar  E  s     99U1b\G)<=D]]_Fyy	
 (
' LLzz='
	

 BH 6,
s   3B(
c                    / SQn[         R                  " U[        U 5      S9nUR                  S5      nUS   nX4:X  d   eg )Nr  rV   皙?r   )rd   r   r   rC  )r   rg   r   r   r   s        r0   test_quantile_temporalr  V  sA    
 D
))D
7 3
4C\\#F1vHr2   c                     [         R                  [        R                  " S5      /[         R	                  5       S9n [
        R                  " U [        U R                  5      S9n[        U5      S:X  d   eg )Nz
2020-01-01r  rV   z+0    2020-01-01
dtype: date32[day][pyarrow])
r,   re   r   fromisoformatr  rd   r   r   rj   repr)arrow_dtr   s     r0   test_date32_reprr  b  sT    xx++L9:xMH
))HJx}}$=
>C9FFFFr2   c                    [         R                  " SS /5      n [         R                  " SS /5      n[         R                  " U [	        [
        R                  S5      5      S9n[         R                  " U[	        [
        R                  S5      5      S9nX#-   n[         R                  " SS /[	        [
        R                  S5      5      S9n[        R                  " XE5        g )Nr>   re  rV   r:   )
rd   r  r|  r   r   r,   r+  r  r   r   )data_tsdata_tdser_tsser_tdr   r   s         r0   2test_duration_overflow_from_ndarray_containing_natr  i  s    nnaY'Gooq$i(GYYwjd1C&DEFYYwjT1B&CDF_Fyy!T*R\\$5G*HIH6,r2   c                   [         R                  " U 5      nUS:w  d   eU R                  (       a4  US;   a.  [        R                  R                  SS9nUR                  U5        U[         R                  " [        U 5      SS9:X  d   eg )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_dtyper  r)   r*   r+   r.   r   )rg   r/   r  r*   s       r0   test_infer_dtype_pyarrow_dtyper  t  sy    
//$
C/!!!{{s;;{{  B ! 
 	D!#//$t*T::::r2   c                   SnU R                   n[        R                  R                  U 5      (       a%  [        R
                  " XS9R                  U5      /nO/[        R                  " XU R                  S9R                  U5      /n[        R                  " X0S9n[        [        R                  U/U S95      n[        R                  " XE5        g )Nr  ry  r  r   rV   r  )r  r,   rW   r_   rd   r  rq  r  r   r#   rk   re   r   r   )r   r  r  seqr   r   s         r0   test_from_sequence_temporalr    s    
 C<<D	xxG$$||C+33D9:||Cwzz:BB4HI //CF"288SE8#@AH##F5r2   c                   U R                   n[        R                  R                  U 5      (       a%  [        R
                  " SUS9R                  U5      nO.[        R                  " SXR                  S9R                  U5      n[        [        R                  / SQU S95      nUR                  5       nX$S S & [        [        R                  / SQU S95      n[        R                  " XE5        g )Nr>   ry  r  r  r  )r>   r>   r>   )r  r,   rW   r_   rd   r  rq  r  r   r#   re   rU  r   r   r   r  r  r!  r   r   s         r0   test_setitem_temporalr    s    
 <<D	xxG$$ll14(006ll14JJ7??E
bhhywh?
@CXXZF1I"288IG8#DEH##F5r2   c                   [        [        R                  / SQU S95      nU R                  nU[        R
                  " SUS9R                  U5      -
  n[        [        R                  / SQU S95      n[        R                  " XE5        g )Nr  r  r>   ry  )r   r>   r:   )	r#   r,   re   r  rd   r  rq  r   r   )r   r/   r!  r  r   r   s         r0   test_arithmetic_temporalr    si    
 bhhywh?
@C<<D2<<-55d;;F"288IG8#DEH##F5r2   c                   U R                   n[        R                  R                  U 5      (       a%  [        R
                  " SUS9R                  U5      nO.[        R                  " SXR                  S9R                  U5      n[        [        R                  / SQU S95      nX2:  n[        [        R                  / SQ[        R                  5       S95      n[        R                  " XE5        g )Nr>   ry  r  r  r  )FTT)r  r,   rW   r_   rd   r  rq  r  r   r#   re   r  r   r   r  s         r0   test_comparison_temporalr    s    
 <<D	xxG$$ll14(006ll14JJ7??E
bhhywh?
@CYF"288,?bhhj8#QRH##F5r2   c                V   [        [        R                  / SQU S95      nUS   n[        R                  R	                  U 5      (       aZ  [
        R                  " SU R                  S9R                  U R                  5      n[        U[
        R                  5      (       d   eOd[
        R                  " SU R                  U R                  S9R                  U R                  5      n[        U[
        R                  5      (       d   eUR                  UR                  :X  d   eX#:X  d   eg )Nr  r  r>   r:   ry  r  )r#   r,   re   rW   r_   rd   r  r  rq  r   r  r   r   r!  r   r   s       r0   test_getitem_temporalr    s    
 bhhywh?
@CVF	xxG$$<<5==gllK&",,////<<DLLLL
 &",,////;;(--'''r2   c                   [        [        R                  SS /U S95      n[        U5      n[        R                  R                  U 5      (       am  [        R                  " SU R                  S9R                  U R                  5      [        R                  /n[        US   [        R                  5      (       d   eOw[        R                  " SU R                  U R                  S9R                  U R                  5      [        R                  /n[        US   [        R                  5      (       d   eUS   R                  US   R                  :X  d   eX#:X  d   eg )Nr>   r  ry  r   r  )r#   r,   re   r   rW   r_   rd   r  r  rq  rg  r   r  r   r  s       r0   test_iter_temporalr    s	   
 bhh4ywh?
@C#YF	xxG$$LL.66w||DEE
 &)R\\2222 LL'**=EEgllSEE
 &)R\\2222!9>>Xa[-----r2   c                    [         R                  " U S S / SQS9nUR                  SS9R                  5       n[         R                  " SS/SS	S
/S9n[        R
                  " X#5        g )Nr  )rK   rK   rL   rI  r   )levelr:   r>   r   rK   rL   r  )rd   r   groupbysizer   r   rQ  s       r0   'test_groupby_series_size_returns_pa_intr    sZ    
))D!HO
4C[[q[!&&(Fyy!Q'7SzJH6,r2   c                   [        [        R                  SS /U S95      nUR                  US9n[        R                  R                  U 5      (       a9  [        R                  " SU R                  S9R                  U R                  5      nOC[        R                  " SU R                  U R                  S9R                  U R                  5      nU[        :X  d1  [        R                  R                  U 5      (       ar  U R                  be  U[        :X  a  [        R                  nO[        R                  n[         R                  " XE/[        S9nUS   R                  UR                  :X  d   eO}U R#                  5       R%                  SU R                  5      nUR                  5       n[         R                  " XE/5      n[         R&                  " US   5      S   U R                  :X  d   e[(        R*                  " X65        g )Nr>   r  rV   ry  r  r   nat)r#   r,   re   r   rW   r_   rd   r  r  rq  r  r   r   r^   rg  r  r   to_pandas_dtyperj   datetime_datar   r   )r   r8   r!  r   rm  r  r   s          r0   test_to_numpy_temporalr    sh    bhh4ywh?
@C\\\&F	xxG$$QW\\2::7<<HQW\\gjjAII',,W2880099gjj>TF?BB88UKv6ay~~+++$$&++E7<<@ 88UK(q	*1-===1r2   c                   [         R                  " SS/X S.5      nUR                  S5      R                  5       n[         R                  " SS//[         R                  " S/SS9SS/SS9n[
        R                  " X#5        g )	Nr>   )rs   rt   ru   rs   r  rt   ru   r   )rh  r  r8   )rd   rk  r  r  Indexr   ro  )rl   rp  r   r   s       r0   %test_groupby_count_return_arrow_dtyper    sp    	QFI	JBZZ_""$F||
Qhhs%c
	H &+r2   c            
         [         R                  " SS/SS//[        [        R	                  [        R                  5       SS95      S9n U R                  R                  nU[        :X  d   eg )Nr>   r:   r  rp   )	list_sizerV   )	rd   r   r   r,   r  r.  r8   rj   r   )r   r   s     r0   test_fixed_size_listr    sU    
))
Q!Q
288BHHJ!8+L MC YY^^FT>>r2   c            	         [         R                  " [         R                  " SSS9S/[        [	        S5      5      S9n [        U 5      nSnX:X  d   eg )N2012r  )r|  r  rG  r-  z#     col
0  15340
1  15341
2  15342)rd   rk  period_ranger   r$   r  rp  r   r   s      r0   'test_arrowextensiondtype_dataframe_reprr  (  sN    	
*-.
B
 "XF 8Hr2   c                     [         R                  " SS /SS9n U R                  S SS9n[         R                  " SS /SS9n[        R                  " X5        g )Nr:   r   rV   r  )r     )rd   r   powr   r   )kr   r   s      r0   test_pow_missing_operandr"  6  sL    
		1d)#34AUU4AU&Fyy!T*:;H6,r2   c            	     P   [         R                  " S/[        [        R	                  5       5      S9n [
        R                  " [        R                  R                  SS9   U R                  [        [        R                  SS5      5      5        S S S 5        g ! , (       d  f       g = f)N1.2345rV   z3Rescaling Decimal(128)? value would cause data lossr   r>   r   )rd   r   r   r,   r   r)   r'   r   r-   r   r   r  s    r0   test_decimal_parse_raisesr%  >  si    
))XJj&=
>C	
#X
 	

:bmmAq123
 
 
s   /B
B%c                 0   [         R                  " S/[        [        R	                  5       5      S9n [        [        R                  SS5      5      nU R                  U5      n[         R                  " [        S5      /US9n[        R                  " X#5        g )Nr$  rV   rJ   rp   )
rd   r   r   r,   r   r   r   r   r   r   )r   r8   r   r   s       r0   test_decimal_parse_succeedsr'  G  sh    
))XJj&=
>Cr}}Q*+EZZFyy'(+,E:H6,r2   c                D   [         R                  " S S/[        U 5      S9n[         R                  " [        R                  " SS/SU R
                   S3S95      nUR                  U5      n[         R                  " SS/[        U 5      S9n[        R                  " X45        g )Nr:   rV   r>   r  zm8[rG  )	rd   r   r   r   re   r  rP  r   r   )r   ser1r	  r   r   s        r0   test_duration_fillna_numpyr*  P  s|     99dAYj&9:D99RXXq!fc',,q,ABCD[[Fyy!Qz'':;H6,r2   c                     [         R                  " S/SS9n [         R                  " S /SS9n[        R                  " [        R
                  R                  SS9   X:    S S S 5        g ! , (       d  f       g = f)Nl            r  rV   r   zInteger valuer   )rd   r   r)   r'   r,   r   r-   r  s     r0   +test_comparison_not_propagating_arrow_errorr,  Z  sR    
		7)#45A
		4& 01A	rvv**/	B	 
C	B	Bs   A((
A6c                    [         R                  [         R                  S/5      R                  5       [         R                  S/5      R                  5       /5      n [        R
                  " [        U 5      5      nUR                  5       u  p#[        R                  " SS/[        R                  S9n[        R                  " [        U R                  5       5      5      n[        R                  " X$5        [        R                  " X55        g )NrK   rL   r   r>   rV   )r,   r  re   dictionary_encoderd   r   r#   	factorizer   intpr  r   r   r   assert_index_equal)r   r   res_indicesres_uniquesexp_indicesexp_uniquess         r0   !test_factorize_chunked_dictionaryr6  b  s    	3%	*	*	,bhhuo.O.O.QRH ))'1
2C"}}K((Aq61K((.x/F/F/HIJK9+3r2   c            
        [         R                  " S[         R                  /[        [        R                  [        R                  5       [        R                  5       5      5      S9n U R                  SS9u  p[        R                  " SS/[        R                  S9n[         R                  " SS /[        [        R                  5       5      S9n[        R                  " X5        [        R                  " X$5        g )Nr  rV   F)use_na_sentinelr   r>   )rd   re   rg  r   r,   r  r  r  r/  r   r0  r   r   r   r   )r!  indicesuniquesexpected_indicesexpected_uniquess        r0   !test_factorize_dictionary_with_nar=  o  s    
((	ruuZbhhj"'')(LMC }}U};GxxAbgg6xxtJryy{4KL:##G>r2   c                 P   [         R                  [        R                  " / SQ5      5      R                  5       [         R                  [        R                  " / SQ5      5      R                  5       /n [        R
                  " [        [         R                  U 5      5      5      nUR                  S5      n[        R                  " / SQ[        [         R                  5       5      S9n[        R
                  " / SQ[        R                  " US9S9n[        R                  " X$5        g )N)rK   r   rq   rK   )rK   r/  rq   category)rK   r   rq   r/  rV   )rK   r   rq   rK   rK   r/  rq   )
categories)r,   re   r   r.  rd   r   r#   r  r   r  r   r   CategoricalDtyper   r   )arrsr   r   r@  r   s        r0   "test_dictionary_astype_categoricalrC  {  s     	./0BBD
/*+==?D ))'(8(8(>?
@CZZ
#F.j6MNJyy+!!Z8H 6,r2   c                     [         R                  " S/SS9n [         R                  " S/SS9n[         R                  " S/SS9nX-  n[        R                  " X25        g )Nir   rV   rp   r?   r  )rK   rL   r   r   s       r0   test_arrow_floordivrE    sP    
		2$./A
		1#-.Ayy"%56HVF6,r2   c                     [         R                  " S/SS9n [         R                  " S/SS9nU S-  n[        R                  " X!5        g )Nl     ^ \K r   rV   l    \p/i@B r  )rK   r   r   s      r0    test_arrow_floordiv_large_valuesrG    sA    
		&'/?@Ayy-0@AH)^F6,r2   r   r  c                f    [         R                  " S/U S9nUS-  n[        R                  " X!5        g )N   rV   r>   r  )r8   rK   r   s      r0   )test_arrow_floordiv_large_integral_resultrJ    s/     			$%U3A!VF6%r2   c                    [        U 5      n[        R                  " S/US9nUS-  n[        R                  " S/US9n[        R                  " X45        g )NirV      r@   )r   rd   r   r   r   )r   r8   rK   r   r   s        r0   "test_arrow_floordiv_larger_divisorrM    sI     wE
		3%u%A"WFyy"U+H6,r2   c                   [         R                  " U R                  5       5      R                  n[        R
                  " U/[        U 5      S9n[        R                  " [        R                  R                  SS9   US-    S S S 5        [        R                  " [        R                  R                  SS9   US-    S S S 5        g ! , (       d  f       NJ= f! , (       d  f       g = f)NrV   zoverflow|not in ranger   r@   zdivide by zeror   )r   iinfor  r  rd   r   r   r)   r'   r,   r   r-   )r   	min_valuerK   s      r0   $test_arrow_floordiv_integral_invalidrQ    s     002377I
		9+Z%89A	rvv**2I	J	R 
K	rvv**2B	C	Q 
D	C 
K	J	C	Cs   ;C6C
C
C$c                    [         R                  " S/U S9nUS-  n[         R                  " [        S5      /U S9n[        R                  " X#5        g )Nr:   rV   r   inf)rd   r   r  r   r   )r8   rK   r   r   s       r0   &test_arrow_floordiv_floating_0_divisorrT    sC     			1#U#A!VFyy%,u5H6,r2   )r   rP  r  c                    [         R                  " SS /SS9nUR                  U 5      n[         R                  " SS /U S9n[        R                  " X#5        g )Nr>   r   rV   r  r  s       r0   (test_astype_int_with_null_to_numpy_dtyperV    sI     ))QI%5
6CZZFyy!T%0H6,r2   c                   [         R                  " U R                  5       5      R                  n[	        U 5      n[
        R                  " U/US9n[
        R                  " S/US9nX4-  n[        R                  " XS5        g )NrV   r>   )	r   rO  r  r  r   rd   r   r   r   )r   	max_valuer8   rK   rL   r   s         r0   )test_arrow_integral_floordiv_large_valuesrY    sd     002377IwE
		9+U+A
		1#U#AVF6%r2   c                    [         R                  " S/U S9n[         R                  " S/U S9n[         R                  " S/SS9nX-  n[        R                  " XC5        g )Nr   rV   rI  r  r  r8   rK   rL   r   r   s        r0   &test_arrow_true_division_large_divisorr\    sR     			1#U#A
		$%U3Ayy!$67HUF6,r2   c                    [         R                  " S/U S9n[         R                  " S/U S9n[         R                  " S/U S9nX-  n[        R                  " XC5        g )Nr   rV   rI  r  r[  s        r0   'test_arrow_floor_division_large_divisorr^    sQ     			1#U#A
		$%U3Ayy!E*HVF6,r2   c            	        / SQn [         R                  " U SS9n[         R                  " U 5      R                  S5      n[         R                  " [	        [
        R                  USS95      5      n[        R                  " X5        g )N)2020-01-01 04:30:00z2020-01-02 00:00:00z2020-01-03 00:00:00ztimestamp[s][pyarrow]rV   r  Tfrom_pandas)	rd   r   r  rq  r#   r,   re   r   r   )string_datesr   pd_resr   s       r0   $test_string_to_datetime_parsing_castre    s`    XLYY|+BCF^^L)11#6Fyy,RXXf$X-OPQH6,r2   c                ^   U R                   R                  (       d  [        R                  " U 5      n[        R
                  " SUR                    S35      n[        R                  " [        US9   [        R                  " U 5      R                  5         S S S 5        g g ! , (       d  f       g = f)NzCannot interpolate with z dtyper   )
r8   r*  rd   r   reescaper)   r'   r   interpolate)rg   r   r8  s      r0   test_interpolate_not_numericrj    sp    ::!!iioii2399+VDE]]9C0IIdO'') 10 " 10s   /%B
B,r  c                    [         R                  " / SQU S9nUR                  5       n[         R                  " / SQU S9n[        R                  " X#5        g )N)Nr>   r:   Nrp   NrV   )Nr>   r:   r  rp   N)rd   r   ri  r   r   r  s       r0   test_interpolate_linearrl    s>    
))/u
=C__Fyy1?H6,r2   c                     S/n [         R                  " U SS9n[         R                  " [        [        R	                  [        SSSS5      /SS	95      5      n[        R                  " X5        g )
Nz11:41:43.076160ztime64[us][pyarrow]rV   r  )   +   i) Tra  )rd   r   r#   r,   re   r   r   r   )string_timesr   r   s      r0    test_string_to_time_parsing_castrq    s\    %&LYY|+@AFyyBHHd2r2u&=%>DHQRH 6,r2   c                     [         R                  " / SQSS9n U R                  S5      n[         R                  " SS[        R                  /SS9n[
        R                  " X5        g )Nr   (   Nr  rV   r   r   rt  )rd   r   r   r   r   r   r   r  s      r0   test_to_numpy_floatru    sJ    
))N*:
;CZZ	"Fyy"b"&&);H6,r2   c                     [         R                  " S/SS9n U R                  [        R                  S9n[        R
                  " S/5      n[        R                  " X5        g )Nr`  timestamp[ns][pyarrow]rV   l    P)#-/ )rd   r   r   r   r.  re   r   r   r  s      r0   test_to_numpy_timestamp_to_intrx    sK    
))*+3K
LC\\\)Fxx,-.H1r2   
arrow_typec                    [         R                  " SSS/0SS9n[        [        R	                  [        R                  5       U 5      5      nUR                  SU05      nUR                  R                  S   U:X  d   eg )NrK   r   r  r  rV   r   )	rd   rk  r   r,   r  r  r   dtypesr  )ry  rp  	data_typer   s       r0   *test_cast_dictionary_different_value_dtyper}    sg    	sS#J'/@	AB2==Z@AIYYY'(F==a I---r2   c                (   [         R                  " / SQSS9nUR                  S SS9nU (       d'  [         R                  " SS[         R                  /SS9nO&[         R                  " SS[        R
                  /S	S9n[        R                  " X#5        g )
Nrs  r   rV   c                    g)N*   r   r   s    r0   r   ,test_map_numeric_na_action.<locals>.<lambda>(  s    rr2   r   r   g      E@r   r   )rd   r   r   rg  r   r   r   r   )r   r   r   r   s       r0   test_map_numeric_na_actionr  &  sl    
))N*:
;CWW\XW6F99dD"%%0A99dD"&&1C6,r2   c                    [         R                  " SSS/0[        [        R	                  [        R                  5       [        R                  5       5      5      S9n U R                  SS9n[         R                  " SS/[         R                  R                  [         R                  " SS/[        [        R                  5       5      SS9/5      S	S
S9n[        R                  " X5        g )Nrs   r  r  rV   FrT  r>   )r8   r  r  r.  )rh  r  r8   )rd   rk  r   r,   r  r  r  r  r   
MultiIndexfrom_arraysr  r   r   r   r  s      r0   &test_categorical_from_arrow_dictionaryr  0  s    		tTl:bmmBHHJ	.R#S
B __E_*Fyy	
Amm''XXtTl*RYY[*ALM
 H 6,r2   z(pa.json_ was introduced in pyarrow v19.0r   c                     [        [        R                  [        R                  5       5      5      n U R                  nU[
        :X  d   eg r   )r   r,   json_r   rj   rl  )r8   r   s     r0   test_arrow_json_typer  A  s2    
 rxx		,-EZZFS==r2   c            	        [         R                  " S5      [        S5      /n Sn[        R                  " [
        US9   [         R                  " U 5        S S S 5        [        R                  " [
        US9   [         R                  " U [        [        R                  S5      5      S9  S S S 5        g ! , (       d  f       Nb= f! , (       d  f       g = f)Nz2016-01-02 03:04:05NaNz8<class 'decimal.Decimal'> is not convertible to datetimer   rd  rV   )rd   r  r   r)   r'   r   r  re   r   r,   r+  )valsr8  s     r0   &test_timestamp_dtype_disallows_decimalr  K  s     LL./@D
DC	y	,
t 
- 
y	,
ZT(:;< 
-	,	 
-	, 
-	,s   B052C0
B>
Cc                     Sn Sn[         R                  " S5      n[         R                  " U/US9n[         R                  " U/U S9R                  SS9n[        R
                  " X45        g )Nzdatetime64[ns, US/Eastern]r  z2025-07-03 18:10rV   r"   )r_  )rd   r  r   convert_dtypesr   r   )dtype1dtype2tsr   r   s        r0   (test_timestamp_dtype_matches_to_datetimer  Y  s[    )F1F	(	)BYYt6*Fyy"V,;;);TH6,r2   c                     [         R                  " S/SS9n U R                  S5      nX:H  n[         R                  " S/SS9n[        R                  " X#5        X:H  n[        R                  " X#5        g )N
2016-01-01rw  rV   rP  Tr   r  )r   r   r   r   s       r0   !test_timestamp_vs_dt64_comparisonr  f  s`    99l^+CDDKK()E]Fyy$7H6,]F6,r2   c                 .   [         R                  " S/SS9n U R                  S5      nUS   nU S   nX:H  R                  5       (       a   eX :H  R                  5       (       a   eX:H  R                  5       (       a   eX1:H  R                  5       (       a   eg )Nr  date32[pyarrow]rV   rw  r   )rd   r   r   r  )r   r	  r  rL  s       r0   (test_date_vs_timestamp_scalar_comparisonr  t  s    
))\N*;
<C::./D	aB	QB 	    	     
!!!!
!!!!!r2   c                    [         R                  " S/SS9n U R                  S5      nU R                  S5      nX:H  R                  5       (       a   eX:H  R                  5       (       a   eX:g  R	                  5       (       d   eX:g  R	                  5       (       d   eX:H  R                  5       (       a   eX :H  R                  5       (       a   eX:g  R	                  5       (       d   eX :g  R	                  5       (       d   eg )Nr  r  rV   rw  rP  )rd   r   r   r  r  )r   r	  r  s      r0   'test_date_vs_timestamp_array_comparisonr    s     ))\N*;
<C::./D::&'D  """"  """"KK  """"  """"KKr2   c                H   [         R                  " / SQSS9nU[        R                  -
  nU (       a&  UR	                  5       R                  5       (       d   eO%UR	                  5       R                  5       (       a   eU[        R                  -  nU (       a&  UR	                  5       R                  5       (       d   eO%UR	                  5       R                  5       (       a   eUS-  nU (       a  UR	                  5       S   (       d   eg UR	                  5       S   (       a   eg )Nr@   r   r>   r   rV   r   r>   )rd   r   r   r   rO  r  r  )r   r   r   s      r0   test_ops_with_nan_is_nar    s    
))J&6
7C266\F{{}  """";;=$$&&&&266\F{{}  """";;=$$&&&&1WF{{}Q;;=####r2   c                   [         R                  " / SQSS9nU (       a.  [        R                  US'   UR	                  5       S   (       d   eOKSn[
        R                  " [        R                  R                  US9   [        R                  US'   S S S 5        [         R                  " S[        R                  S/SS9nU (       a^  UR	                  5       S   (       d   eUS   [         R                  L d   e[        R                  US'   US   [         R                  L d   eg UR	                  5       S   (       a   e[        US   [        5      (       d   e[        R                  " US   5      (       d   e[        R                  US	'   [        US	   [        5      (       d   e[        R                  " US	   5      (       d   eg ! , (       d  f       GN<= f)
Nr  r   rV   r>   z@Could not convert nan with type float: tried to convert to int64r   r@   r  r:   )rd   r   r   r   rO  r)   r'   r,   r   r-   rg  r   r  isnan)r   r   r8  s      r0   test_setitem_float_nan_is_nar    sV   
))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   <G
Gc                     [         R                  " S S /SS9n U R                  S5      n[         R                  " [         R                  [         R                  /SS9n[        R
                  " X5        g )Nr  rV   r:   )rd   r   r   rg  r   r   )r  r   r   s      r0   test_pow_with_all_na_floatr    sQ     			4,&89AUU1XFyy"%%/ABH6,r2   c                    [         R                  " [        S5      SS9n [         R                  " [        S5      SS9n[         R                  " / SQSS9nX-  n[        R                  " X25        X-  n[        R                  " XB5        X:H  n[         R                  " S/S-  SS9n[        R                  " XV5        X:H  n[        R                  " Xv5        g )NrJ   r   rV   r  )r   r>   rp   r  r]  Tr   )rd   r   r.  r   r   )r   r   r   r   r>  result3r  result4s           r0   *test_mul_numpy_nullable_with_pyarrow_floatr    s    99U1XY/DIIeAh&89Eyy)1CDH\F6,lG7- mG		4&1*O<I7.mG7.r2   ztype_name, expected_size))r  r>   )int16r:   )r  rp   )r.  r  )uint8r>   )uint16r:   )uint32rp   )r/  r  )float16r:   )r  rp   )r   r  )r  r>   )r  rp   )r  r  )r+  r  )time32rp   )r  r  )r   r]  )
decimal256r   c                    [         R                  S5      [         R                  S5      [         R                  S5      [         R	                  SS5      [         R                  SS5      S.nX;   a  UR                  U 5      nO[        [         U 5      " 5       n[        U5      nU S:X  a  UR                  R                  nUR                  U:X  d2   U  SU S	UR                   S
[        UR                  SS5       S35       eg )Nre  r  r  rI   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itemsizer6   )	type_nameexpected_sizeparametric_type_mapry  r8   s        r0   %test_arrow_dtype_itemsize_fixed_widthr    s    D \\$'))C.))D/mmB+mmB+ '(,,Y7
R+-
z"EG))22>>]* +ZfU^^4D Ee11;FGq	J*r2   r  )r   r7  large_stringc                    [        [        U 5      " 5       n[        U5      nUR                  UR                  R                  :X  d   eg r   )r   r,   r   r  r  )r  ry  r8   s      r0   (test_arrow_dtype_itemsize_variable_widthr  $  s;     Y')Jz"E>>U..77777r2   c                     [         R                  " / SS9n U R                  n[        S5      nUR	                  U/5      nUR
                  R                  n[        R                  R                  U5      (       d   eg )Nr  rV   r  )
rd   r   re   r   r  r8   r6   r,   rW   r\   )r   r!  itemr   r   s        r0   %test_cast_pontwise_result_decimal_nanr  .  sa    
))B0
1C
))C5>D''/Fll((G88w''''r2   c                    [         R                  " S[         R                  /SS9n [        R                  " U 5      n[         R                  " [        R                  " S5      [         R                  /SS9n[
        R                  " X5        g )Nr  r  rV   )rd   r   rg  r   sinr   r   r  s      r0   test_ufunc_retains_missingr  :  sX    
))S"%%L(:
;CVVC[Fyy"&&+ruu-5GHH6,r2   )r   r  r  r   r   c                   SU  S3n[         R                  " [        SS9[        SS9/US9n[        X15      " 5       n[	        U[         R
                  5      (       d   U SU  S[        U5       35       eUR                  U :X  d   eg )	Nrz  r{  r>   )r  r:   rV   r  
 returned )rd   r   r   r   r   r  rj   r  r  rn  r8   r   r   s        r0   #test_duration_reduction_consistencyr  D  s     vZ(E
))Yq)9Q+?@
NCS!#Ffbll++ (%vZV~6+ ;;$r2   )r  r  r   c                   SU  S3n[         R                  " [        SSS5      [        SSS5      /US9n[        X15      " 5       n[	        U[         R
                  5      (       d   U SU  S[        U5       35       eUR                  U :X  d   eg )	Nr  r{  r  r>   r  rV   r  r  )rd   r   r   r   r   r  rj   r  r  s        r0   $test_timestamp_reduction_consistencyr  P  s     j)E
))XdAq)8D!Q+?@
NCS!#Ffbll++ (%vZV~6+ ;;$r2   ('  r!  
__future__r   r   r   r   r   decimalr   ior	   r
   r  rz  rg  r  numpyr   r)   pandas._libsr   pandas._libs.tslibsr   pandas.compatr   r   r   r   r   r   r   pandas.errorsr   pandas.core.dtypes.commonr   pandas.core.dtypes.dtypesr   r   pandasrd   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$   r1   fixtureALL_PYARROW_DTYPESrl  r8   rg   rl   rn   rv   rz   r}   r   ExtensionTestsr   r  r*   r  ALL_INT_PYARROW_DTYPESr&  r(  r,  r0  r:  r=  rP  rY  r\  r7  byteslarge_binaryr  r  r.  r   
large_listmap_r   structr  dictr  rc  rj  rm  ro  rq  rs  ru  rw  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  compiler  r  r  r  r  r  r  r  r&  r*  r,  r1  r3  r?  rA  rD  r+   r  rJ  rL  rT  rZ  ro  rw  ry  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/  r5  r9  rB  rE  rJ  rR  rV  rY  r[  ra  r  rf  ri  rl  ro  rr  r  r  r  r  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,  r6  r=  rC  rE  rG  rJ  SIGNED_INT_PYARROW_DTYPESrM  rQ  FLOAT_PYARROW_DTYPES_STR_REPRrT  rV  rY  r\  r^  re  rj  rl  rq  ru  rx  r}  r  r  skipifr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r2   r0   <module>r     sj   #     	 
    )   ) 2
   ,	 	 	 (# > D	" r,,#63 73 8' 8'v H H
 /0 1 7A 7At 
 
 
 
  nOT(( nOb^1 ^1B B$=$=>- ?-0C+57 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	-- !;<- =- RZZ_}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	288:.	q!aY
+	q!b$Z,	r2Dz288:.	------ ";< 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 #;< =r2   