
    m*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Jr  SSKJr  SS	KJrJrJrJrJrJrJrJr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,J-r-J.r.J/r/J0r0J1r1  SSK2J3r3  \Rh                  " S5      r5SSK6J7r7  SSK8J9r9  S r:\Rv                  " \'Rx                  \=S9S 5       r>\Rv                  S 5       r?\Rv                  S 5       r@\Rv                  " SS/S9S 5       rA\Rv                  S 5       rB\Rv                  S 5       rC\Rv                  S 5       rD\Rv                  S 5       rE " S S\3R                  5      rG " S  S!5      rH\R                  R                  S"\'R                  5      S# 5       rLS$ rMS% rNS& rOS' rPS( rQ\R                  R                  S)/ S*Q5      \R                  R                  S+S,S,S,//5      S- 5       5       rR\R                  R                  S./ S/QS0S/// S1QS///S2S3/S49S5 5       rSS6 rT\R                  R                  S7\5R                  5       \V/\5R                  S85      \V/\5R                  5       \V/\5R                  5       \=/\5R                  \5R                  5       5      \[/\5R                  \5R                  5       5      \[/\5R                  \5R                  5       \5R                  5       5      \[/\5R                  S9\5R                  5       4S:\5R                  5       4/5      \a/\5R                  \5R                  5       \5R                  5       5      \"//	5      S; 5       rcS< rdS= reS> rfS? rgS@ rhSA riSB rjSC rkSD rlSE rmSF rnSG ro\R                  R                  SH\RR                  \R                  4SI/5      SJ 5       rqSK rrSL rsSM rtSN ruSO rvSP rwSQ rxSR rySS rz\R                  R                  STSUSV/5      SW 5       r{SX r|\R                  R                  SYSZS[/S\S]/S^S_//5      S` 5       r}Sa r~\R                  R                  SbScSdSSdSeS//SfSeSSdSdS//ScSdSeSdSeSe//SgSdSSeSeS//ShSeSSeSdS///5      Si 5       rSj r\R                  R                  SkSlScS/ SmQ/SlSnSd/ SoQ/SpSnSe/ SqQ/SpSrS/ SmQ/SlSsS/ StQ/SpSuS/ StQ/SlSvS/ SwQ/SpSvS/ SwQ//5      Sx 5       r\R                  R                  SySz5      S{ 5       r\R                  R                  S|ST\GR                  " Sn5      /S}\=/S~Sd/SS//5      S 5       r\R                  R                  SSSSSdSS//SSSSdSS//SSSSeSS///5      S 5       rS rS rS r\R                  R                  SScSdSSeS//SfSeSSdS//SrSeSSdS//ScSdSeSeSe//SgSdSSeS//ShSeSSdS///5      S 5       r\R                  R                  SSUSdS/ SQ/SSeS/ SQ/SrSeS/ SQ/ScSdS/ SQ/SVSdS/ SQ/ShSeS/ SQ/SSdS/ SQ/SSdS/ SQ/SSeS/ SQ/SSeS/ SQ/SSeS/ SQ/SSeS/ SQ//5      S 5       r\R                  R                  SScSSSS/\5GR                  5       /SrSSSS/\5R                  5       //5      S 5       rS rS rS rS r\R                  GR#                  \SS9\R                  R                  S/ SQ5      \R                  R                  S/ SQ5      \R                  R                  S/ SQ5      S 5       5       5       5       rS r\R                  R                  SS/ SQ/S/ SQ/S/ SQ/S/ SQ/S0/ SQ//5      S 5       r\R                  GR+                  S\S9S 5       rS r\R                  R                  SSSSScS//SSSScS//SSSSrS//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                  SSSU/5      S 5       r\R                  R                  SSSU/5      S 5       r\R                  R                  SSS/5      \R                  R                  SSS/SS//5      S 5       5       r\R                  R                  SSS/5      S 5       r\R                  R                  SSS/5      \R                  R                  SSS/SS0//5      S 5       5       r\R                  R                  SGS GS/5      GS 5       r\R                  R                  SSS/SS0//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SeSd/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S0/GS Sd/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*\" SS0GS(GS"5      //5      GS+ 5       rGS, rGS- rGS. r\R                  R                  SGS/GS0/5      GS1 5       rGS2 r\R                  R                  GSGS3GS4/5      GS5 5       r\R                  R                  GS6/ GS7Q5      GS8 5       rGS9 r\R                  R                  SGS:GS;/GS<GS=//5      GS> 5       rGS? r\R                  R                  S/ GS@Q5      GSA 5       r\R                  R                  S/ GS@Q5      GSB 5       r\R                  R                  GSC/ GSDQ5      \R                  R                  S/ GS@Q5      GSE 5       5       rGSF r\R                  R                  GSGGSHGSI/5      GSJ 5       rGSK rGSL r\R                  R                  GSGS3GS4/5      GSM 5       r\R                  R                  GSNGSO\" GSSGSPSGSQ9/GSR\$GR                  " GSS5      //5      GST 5       rGSU rGSV r\R                  R                  GSGS3GS4/5      GSW 5       r\R                  R                  GSXGSYGSZ/5      GS[ 5       r\R                  R                  GSGS\S/GS]S/GS^S/GS_S0//5      GS` 5       rGSa rGSb rGSc r\R                  R                  GSdSeSd/5      GSe 5       rGSf rGSg r\R                  R                  GSXGShGSi/5      GSj 5       r " GSk GSl\75      rGSm rGSn r\R                  R                  GSoGSpGSq/\5R                  5       4SSn/\5R                  5       4/5      GSr 5       rGSs r\R                  R                  S"\'R                  \'GR                  -   5      GSt 5       r\R                  R                  S"\'GR                  5      GSu 5       r\R                  R                  S"\'GR                  5      GSv 5       r\R                  R                  S"\'GR                  \'GR                  -   5      GSw 5       rGSx rGSy rGSz 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                  -   \S49\R                  R                  GSXS\/5      GS 5       5       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 rGS r\R                  R                  GSXGSGS/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                  GSX\'GR                  5      GS 5       r\R                  R                  GSX/ GSQ5      GS 5       r\R                  R                  S"\'R                  5      GS 5       r\R                  R                  GSXGSGS/5      GS 5       r\R                  R                  GSXGSGS/5      GS 5       rGS Gr \R                  GR#                  \GSS9GS 5       GrGS GrGS GrGS GrGS 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)	PY311PY312is_ci_environmentis_platform_windowspa_version_under11p0pa_version_under13p0pa_version_under14p0pa_version_under20p0pa_version_under21p0)
ArrowDtypeCategoricalDtypeType)
no_default)is_bool_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     a/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/pandas/tests/extension/test_arrow.py_require_timezone_databaser0   H   sQ    !2!4!4{{  ??; ! 
 	D! "5    )paramsidsc                (    [        U R                  S9$ )N)pyarrow_dtype)r   param)r.   s    r/   dtyper7   T   s    GMM22r1   c           
     b   U R                   n[        R                  R                  U5      (       a  S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	S
/-   nGO[        R                  R                  U5      (       a  SS/S-  S /-   SS/S-  -   S /-   SS/-   nGOJ[        R                  R                  U5      (       a  SS/S-  S /-   SS/S-  -   S /-   SS/-   nGO[        R                  R                  U5      (       aT  [        S5      [        S5      /S-  S /-   [        S5      [        S5      /S-  -   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S5      [        SSS5      /-   nGO[        R                  R                  U5      (       aj  [        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S5      [        SSS5      /-   nGO~[        R                  R                  U5      (       aU  [        S5      [        SS5      /S-  S /-   [        S5      [        S5      /S-  -   S /-   [        S5      [        S5      /-   nGO[        R                  R                  U5      (       aY  [!        SS5      [!        SS5      /S-  S /-   [!        SS5      [!        SS5      /S-  -   S /-   [!        SS5      [!        SS5      /-   nO[        R                  R#                  U5      (       a  SS /S-  S /-   SS!/S-  -   S /-   S"S#/-   nOG[        R                  R%                  U5      (       a  S$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   !   >r7   )r5   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)r7   pa_dtypedatas      r/   rh   rh   Y   s   ""H	xx8$$e}q D6)T5MB,>>$G4QV-W			h	'	'SzA~&$)::dVCsDkQ		#	#H	-	-1vzTF"b"X]2dV;q"gE		%	%h	/	/1vzTF"aVb[0D69QGC			X	&	&S\75>*Q.fv0256 f u~wx01	2 	 
		(	#	#$1tD"b12Q6fD!QdAq!12R78 f D"b!4b"#56	7 	 
		x	(	(dAq!Q1-xaAq!Q/OPSTTfaA&q!Q(?@2EF f a#XdAq%9:	; 	 
		h	'	'q\9Q?+a/f}il+b01 f ~y}-	. 	 
		(	#	#"a[$q"+&*fAqz41:&+, f Aqz41:&	' 	 
		H	%	%SzA~&#sb8D6AS#JN			H	%	%d|a4&(D$<"+<<vEtT!!88D&&r1   c                R    [        U 5      R                  SU S   /U R                  S9$ )zLength-2 array with [NA, Valid]Nr   rW   type_from_sequencer7   )rh   s    r/   data_missingrm      s*     :$$dDG_DJJ$GGr1   rh   rm   )r2   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.
rh   rm   N)r6   )r.   rh   rm   s      r/   all_dataro      s,     }}	.	( 
)r1   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>   rJ   rF   rG   rH   i  rE   rI   r9   rL   rM   crQ   rR      cz-1.1rD   z1.1NrW   )r5   r+   rX   rY   rZ   r[   r\   r^   r   r_   r   r`   r   ra   r   rb   rc   r]   r   rd   re   rf   )r7   rg   ABCs        r/   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%@@r1   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      r9   rW   rj   rv   s    r/   data_for_sortingrz      F     !"11	1	035Fq5IJ%% 2  r1   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   rB   r9   rW   rj   ry   s    r/   data_missing_for_sortingr}      r{   r1   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.rB   d   rW   )
r7   r5   r+   rX   
is_integerrZ   r]   r`   re   rf   rh   rg   s     r/   data_for_twosr      s     zz''H
H%%88))88x((88))xxc	44Kr1   c                    ^  \ 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SBS jr\R                  R                  SSS/5      U 4S j5       rSBS jrSCS jr\R                  R                  SSS/5      U 4S j5       r\R                  R                  SSS/5      U 4S j5       rSDS j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\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S- jr$\R                  R                  S.S/S0/5      U 4S1 j5       r%S2 r&S3r'S4 r(SES5 jr)S6 r*    SFS7 jr+S8 r,U 4S9 jr-U 4S: jr.S; r/U 4S< jr0S= r1\R                  R                  S>/ S?Q5      S@ 5       r2SAr3U =r4$ )GTestArrowArrayi  c                Z    [         R                  " U5      nU R                  X1X!S   5        g )Nr   )re   Series_compare_other)selfrh   comparison_opsers       r/   test_compare_scalar"TestArrowArray.test_compare_scalar  s#    iioC}1g>r1   	na_actionNignorec                z   UR                   R                  S;   a;  UR                  S US9nUR                  [        S9n[
        R                  " X45        g UR                  S US9nUR                   S:X  a  UR                  S[        R                  S9nOUR                  5       n[
        R                  " X45        g )	NmMc                    U $ N xs    r/   <lambda>)TestArrowArray.test_map.<locals>.<lambda>      r1   r   rW   c                    U $ r   r   r   s    r/   r   r     r   r1   float32[pyarrow]float64r7   na_value)	r7   kindmapto_numpyobjecttmassert_numpy_array_equalnpnan)r   rm   r   resultexpecteds        r/   test_mapTestArrowArray.test_map  s    ""d*!%%kY%GF#,,6,:H''9!%%kY%GF!!%77'00y2660R'002''9r1   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)r7   r5   r+   rX   rc   r-   r(   r)   r*   r_   tzr`   supertest_astype_str)r   rh   r.   using_infer_stringrg   	__class__s        r/   r   TestArrowArray.test_astype_str"  s    ::++88h''!!!(+AB " 
 $XX""8,,1Dxx##H--!!U " 
 	%r1   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   )r7   r5   r+   rX   rb   r]   r-   r(   r)   r*   r   test_from_dtype)r   rh   r.   rg   r'   r   s        r/   r   TestArrowArray.test_from_dtype5  s    ::++88h''288+>+>x+H+Hxx!!(++L?zJ!!! " 
 	%r1   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 NrW   )
rk   rl   	_pa_arrayr7   r   assert_extension_array_equal
isinstancer+   ChunkedArraycombine_chunksr   rh   r   s      r/   test_from_sequence_pa_array*TestArrowArray.test_from_sequence_pa_arrayD  s     d**4>>*L
''5&**BOO<<<<d**NN))+4:: + 
 	''5&**BOO<<<<r1   c                    [         R                  " [        SS9   [        R                  " S/[
        R                  5       S9  S S S 5        g ! , (       d  f       g = f)NzConverting strings tomatchz12-1rW   )r(   r&   rd   r"   _from_sequence_of_stringsr+   month_day_nano_interval)r   r.   s     r/   *test_from_sequence_pa_array_notimplemented9TestArrowArray.test_from_sequence_pa_array_notimplementedQ  s=    ]].6MN99 : : < ONNs   )A
Ac                
   UR                   R                  n[        R                  R	                  U5      (       aN  UR                  S5      (       a8  [        (       d-  UR                  [        R                  R                  SS95        O[        (       a  [        R                  R                  U5      (       d$  [        R                  R                  U5      (       a?  UR                  [        R                  R                  [        R                  SU 3S95        O<[        R                  R                  U5      (       a  UR                   b  [#        U5        UR$                  R'                  [        R)                  5       5      n[+        U5      R-                  XAR                   S9n[.        R0                  " XQ5        UR3                  5       n[+        U5      R-                  XAR                   S9n[.        R0                  " XQ5        g )Nz
time64[ns]z&Nanosecond time parsing not supported.r   z pyarrow doesn't support parsing r%   rW   )r7   r5   r+   rX   	is_time64equalsr   r-   r(   r)   r*   r   r`   r]   ArrowNotImplementedErrorr_   r   r0   r   caststringrk   r   r   r   r   )r   rh   r.   rg   pa_arrayr   s         r/   &test_from_sequence_of_strings_pa_array5TestArrowArray.test_from_sequence_of_strings_pa_arrayW  sm   ::++88h''HOOL,I,IRWRW!!C " 
 "!HH  **bhh.A.A(.K.K!!66=hZH "  XX""8,,1H&w/>>&&ryy{3d55hjj5Q
''5**,d55hjj5Q
''5r1   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]int64[pyarrow]Float64F)check_dtype)
getattrr7   r5   r+   rX   is_temporal	bit_widthastyper   assert_series_equal)r   r   op_namer   r   pa_typeint_typer   s           r/   check_accumulateTestArrowArray.check_accumulates  s    &f5))))88((  B&++**X&C]]8,Fy)3::i0':&I
vUCr1   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)
r7   r5   r+   rX   rc   r]   rb   rY   r   r`   )r   r   r   r   s       r/   _supports_accumulation%TestArrowArray._supports_accumulation  s     ))))88g&&"((*=*=g*F*FCC D  XX(()# $  XX  ))99 :  XX!!'**("288+?+?+H+HI%r1   r   TFc                V  > 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      $ [        (       a  US:w  a  UR                  R                  nUR                  (       a)  SUR                  ;   a  [        R                  " U S35        [        R                   R#                  U S3S9n	UR%                  U	5        OU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 slowz  not implemented for pyarrow < 9r   z not implemented for r'   r&   )r7   r5   r+   rX   rb   re   r   r   r   test_accumulate_seriesr   configoptionmarkexprr(   skipr)   r*   r-   rY   r]   	TypeErrorr   )r   rh   all_numeric_accumulationsr   r.   r   r   r   optr)   r   s             r/   r   %TestArrowArray.test_accumulate_series  sk   ****+88g&&76T+T iio**38871   $=$I ..''C||
cll :011QR ;;$$344TU % D %&(2HH((BHH,?,?,H,H!!788MgYW$ "  	cF3r1   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g	)
NkurtskewF)sumvarr   r   prod)r   )r   r   )meanmedianr   stdsemr   r   r   )anyallT)	r   r7   r5   r+   rX   r   r`   rc   rb   )r   r   r   r7   rg   s        r/   _supports_reduction"TestArrowArray._supports_reduction  s   f!5!5'V:K		 &&88))g :
 /
 xx##H--'W2DXX))g.HHHx((BHH,>,>x,H,H 	
 	
  HH  **HH((22>)
 r1   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   )
r7   r5   r+   rX   r   rZ   r   r   r   assert_almost_equal)r   r   r   r   rg   altr   r   s           r/   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0r1   c                  > UR                   nUR                  n[        R                  R	                  [
        U S[        R                   SU 3S9n[        R                  R                  U5      (       a  US;   a  UR                  U5        O[        (       d  US:X  a  [        R                  R                  U5      (       dO  U(       at  [        R                  R                  U5      (       d$  [        R                  R                  U5      (       a,  UR                  [        R                  R	                  SS95        [        TU ]=  XU5        g )N is not implemented in pyarrow= for r%   >   r   r   r   r   r   z,https://github.com/apache/arrow/issues/45733r   )r7   r5   r(   r)   r*   r   r+   __version__rX   rY   r-   r   r   rZ   r   test_reduce_series_numeric)	r   rh   all_numeric_reductionsr   r.   r7   rg   
xfail_markr   s	           r/   r  )TestArrowArray.test_reduce_series_numeric	  s   

&&[[&&)* +>>*%z; ' 

 88x((-C H
 .
 
+$$&&0##H--++H559M9Mh9W9W
 !!I " 
 	*4Pr1   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      $ )Nr
  r  r%   )r7   r5   r(   r)   r*   r   r+   r  rX   rb   rc   r-   r   test_reduce_series_boolean)	r   rh   all_boolean_reductionsr   r   r.   rg   r  r   s	           r/   r  )TestArrowArray.test_reduce_series_boolean0  s     ::++[[&&)* +>>*%z; ' 

 88h''288+=+=h+G+G 
+w1$PVWWr1   c                   UR                   R                  nUS;   a  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:X  a2  [        R                  R                  U5      (       a  UR                  nU$ S	S
SS.UR                  R                     nU$ )N)maxminzdecimal128(7, 3)[pyarrow]r   &      )r   r   r   r   float64[pyarrow])r   r   r   r   r   r   uint64[pyarrow])iuf)r   rk   r7   namer   r   r+   
decimal128rX   rb   r   )r   arrr   r   r   	cmp_dtypes         r/   _get_expected_reduction_dtype,TestArrowArray._get_expected_reduction_dtypeC  s   --$$n$		I& % YY^^::%(<(<&r}}R';<	   @@II	  /	  @@*I  "(("4"4W"="=		I 	 &&' iinn	I
 r1   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   r7   _is_numericr(   r)   r*   r-   r   test_reduce_frame)r   rh   r  r   r.   r   r)   r   s          r/   r'   TestArrowArray.test_reduce_frame[  s[    (f!5!5zz%%{{((0F(G##D)w(vNNr1   typ)int64uint64r   c                d    [         R                  " SS/U S3S9R                  5       nUS:X  d   eg )Nr>   rB   	[pyarrow]rW         ?)re   r   r   )r   r)  r   s      r/   test_median_not_approximate*TestArrowArray.test_median_not_approximated  s4     Aq6C5	):;BBD}}r1   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   )r5   r+   rX   r]   r-   r(   r)   r*   rd   rb   r&   r   construct_from_stringr  r   #test_construct_from_string_own_name)r   r7   r.   rg   msgr   s        r/   r3  2TestArrowArray.test_construct_from_string_own_namej  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%   )r5   r+   rX   rb   rk   is_dtyper  r]   r-   r(   r)   r*   rd   r   test_is_dtype_from_namer   r7   r.   rg   r   s       r/   r8  &TestArrowArray.test_is_dtype_from_name~  s    &&88h''E{++EJJ77777xx""8,,##KK%%2!EhZP &  G+E2r1   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   rk   r2  )r   r7   r4  s      r/   .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   )r5   r+   rX   r^   ra   r_   r   rc   r]   r-   r(   r)   r*   r   test_get_common_dtyper9  s       r/   r@  $TestArrowArray.test_get_common_dtype  s    &&HHX&&xx))%%h//HKK4Kxx!!(++xx""8,,!!#* %= > "  	%e,r1   c                   > UR                   n[        R                  R                  U5      (       a  [	        U5      (       d   eg [
        TU ]  U5        g r   )r5   r+   rX   rb   r   r   test_is_not_string_type)r   r7   rg   r   s      r/   rC  &TestArrowArray.test_is_not_string_type  sA    &&88h''"5))))G+E2r1   z6GH 45419: pyarrow.ChunkedArray does not support views.)r'   runc                $   > [         TU ]  U5        g r   )r   	test_viewr   rh   r   s     r/   rG  TestArrowArray.test_view  s     	$r1   c                    XR                  5       )    nUS   nUR                  U5      nX1Ld   e[        R                  " X15        UR                  SS9nX1Ld   e[        R                  " X15        g )Nr   backfill)method)isnafillnar   r   )r   rh   validr   s       r/   test_fillna_no_op_returns_copy-TestArrowArray.test_fillna_no_op_returns_copy  sm    YY[L!QU#!!!
''5J/!!!
''5r1   z5GH 45419: pyarrow.ChunkedArray does not support viewsc                $   > [         TU ]  U5        g r   )r   test_transposerH  s     r/   rS  TestArrowArray.test_transpose  s     	t$r1   c                $   > [         TU ]  U5        g r   )r   test_setitem_preserves_viewsrH  s     r/   rV  +TestArrowArray.test_setitem_preserves_views  s     	,T2r1   dtype_backendr!   enginerq   pythonc           	        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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_dtyperW   F)indexna_rep)r7   rY  rX  )r7   r5   r+   rX   r]   r-   r(   r)   r*   rd   r_   unit
ValueErrorrc   re   	DataFramer   strto_csvr   r   r	   r
   read_csvr   assert_frame_equal)
r   rY  rh   rX  r.   rg   df
csv_outputr   r   s
             r/   test_EA_typesTestArrowArray.test_EA_types  s    ::++88x((!!.1(?K "  XX""8,,,1N!!%N "  XX))!!)T!U \\<4s4::)OPQYYU266Y:
88h'' ,J!*-JTZZ1'	
 
f/r1   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)r7   r5   r+   rX   rY   r   rb   r-   r(   r)   r*   r   r   r   assert_produces_warningDeprecationWarningr   test_invertr   rh   r.   rg   r   s       r/   rp  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%   )r7   r5   r+   rX   r\   r-   r(   r)   r*   r,   r   	test_diff)r   rh   rs  r.   rg   r   s        r/   ru  TestArrowArray.test_diff  sz    ::++88''11gl!!??$XJmG9NS "  	$(r1   c                    US S nUR                  5       nUR                  [        [        R	                  5       5      :X  d   eg )NrJ   )value_countsr7   r   r+   r*  r   s      r/   'test_value_counts_returns_pyarrow_int646TestArrowArray.test_value_counts_returns_pyarrow_int64  s8    CRy""$||z"((*5555r1   zbool[pyarrow]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     r/   r}  1TestArrowArray.get_op_from_name.<locals>.rtruediv  s    yy&r1   	rfloordivc                .    [         R                  " X5      $ r   )r   floor_divider  s     r/   r   1TestArrowArray.get_op_from_name.<locals>.<lambda>$  s     5r1   )stripr   get_op_from_name)r   r   short_opnamer}  s       r/   r  TestArrowArray.get_op_from_name  sC    }}S):%' O[(55""7++r1   c                 
   UnUS;   a  UR                  S5      $ Sn[        U[        R                  5      (       a3  SnUR                  S S 2S4   nUR                  S S 2S4   R
                  nOUnUR
                  n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      (       a  [        R                  R                  U	5      (       a*  [        R                  R'                  U	5      (       a  SnO0S	nO-U	R(                  n[%        U5      [*        [,        4;   a  US
;   a  SnU
R/                  SU S35      n
GOp[        R                  R                  U
R$                  5      (       Ga0  [        R                  R                  U	5      (       Ga  [1        X!5      " U5      n[2        R4                  " U5      n[        U[6        5      (       d   eUS:X  a3  [        U[8        5      (       a  [7        [        R;                  5       5      nOUS:X  aM  [        U[        R                  5      (       a.  UR
                  U:X  a  [7        [        R;                  5       5      nO0[        R                  R                  UR                  5      (       d   eUR                  U5      $ U
R/                  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   )__truediv____rtruediv____floordiv__mss)r  r  r\  z	duration[]__pow__)r_  columns) r   r   re   rc  ilocr7   r5   r   r+   rX   rZ   r   r`   r_   r^   r]   rf   _valuesrk   	is_date64ra  r   r   r   r   r   	get_dtyper   r   r   r_  r  )r   r   objotherpointwise_resultr   	was_frameexpected_dataoriginal_dtypeorig_pa_typepa_expectedra  r  	alt_dtypepd_expecteds                  r/   _cast_pointwise_result%TestArrowArray._cast_pointwise_result(  s    $::#**+=>>	h--I$MM!Q$/M XXad^11N$M YYN%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 011xx--88%%l33DD
 $((;8Y"77DK<O  D%**YtfA+>?KXX  !1!122rxx7J7J8
 8

 #'.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r1   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+   rX   r`   r   )r   opnamerg   s      r/   _is_temporal_supported%TestArrowArray._is_temporal_supported  sn     11 WX 100/ $$X.
/ 00 /$$X.	
r1   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  )rd   r   r   r  r5   r  r+   rX   rb   rc   rZ   r   r]   )r   r   r  r  r7   rg   arrow_temporal_supportedexcs           r/   _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
r1   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+   rX   rZ   r   r]   r(   r)   r*   ra   r`   r   r,   )r   r  rg   r)   r  s        r/   _get_arith_xfail_marker&TestArrowArray._get_arith_xfail_marker  s   #'#>#>v#P ZHH  **xx""8,,xx""8,,;;$$#*& % DD 9 &HHX&&STHH((22 ;;$$ h !!)
.: % D(  &HH))RXX-@-@-J-J;;$$$ % D  ~%"((*=*=h*G*G;;$$$ % D
 r1   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)r7   r5   r+   rX   rc   r(   r   r  r-   r   test_arith_series_with_scalarr   rh   all_arithmetic_operatorsr.   rg   r)   r   s         r/   r  ,TestArrowArray.test_arith_series_with_scalar  sm    ::++#z1bhh6H6H6R6RKK?@++,DO%-dMr1   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  )r7   r5   r+   rX   rb   rc   r(   r   r  r-   r   test_arith_frame_with_scalarr  s         r/   r  +TestArrowArray.test_arith_frame_with_scalar  s    ::++#z1HHx((BHH,>,>x,H,HKK?@++,DO%,TLr1   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   rW   )r7   r5   r+   rX   r\   r-   r(   r)   r*   r,   r  re   r   rf   r  lencheck_opname)	r   rh   r  r.   rg   r)   r   r   r  s	            r/   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#.r1   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%   )r7   r5   r   r-   r(   r)   r*   r+   r,   r   $test_add_series_with_extension_arrayrq  s       r/   r  3TestArrowArray.test_add_series_with_extension_array$  sf    ::++??6""!!??4XJ? "  	4T:r1   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&   rd   r   )r   rh   r   s      r/   test_invalid_other_comp&TestArrowArray.test_invalid_other_comp0  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   NrW   r-  )FFN)TTN)re   r   loweroperatorr  r  r  r   r+   bool_r   r   )	r   r  r   rh   
ser_maskedser_par   expr   s	            r/   test_comp_masked_numpy%TestArrowArray.test_comp_masked_numpy7  s     YYt8
4*<*<*>)?y'IJv2X[[(++x{{CC&C$C99S
288:(>?
v0r1   r   )r   	pd.Seriesr   rd  returnbool)r   r  r   rd  r   r  )r   rd  r   r  )r   rd  )r   rd  r  z4type[Exception] | tuple[type[Exception], ...] | None)5__name__
__module____qualname____firstlineno__r   r(   r)   parametrizer   r   r   r   r   r   r   r   r   r  r  r  r  r#  r'  r/  r3  r8  r=  r@  rC  r*   rG  rP  rS  rV  r   rj  rp  ru  ry  _combine_le_expected_dtyper  r  r  r  r  r  r  r  r  r  r  __static_attributes____classcell__r   s   @r/   r   r     s   ? [[[4*:;: <:&&&=68D"* [[Xe}5(4 6(4T.`1* [[Xe}5$Q 6$QL [[Xe}5X 6X$0 [[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!0F&* [[YB0) 1)6 "1,dL
  	= D,\
NM/:
;* [[^-LM1 N1r1   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)TestLogicalOpsiF  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  rW   TFN)	TTTTFNTNNre   r   r   r   r   rL   rM   r   r   s        r/   test_kleene_orTestLogicalOps.test_kleene_orI  s    IItfqjE7Q;.$!;CUVII)A-5GH99C$
 	v0
v0 	IItfqjE7Q;.$!;CUV	
 	ryy,q08JK	
r1   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  rW   r  r   r  r   rL   r   s        r/   test_kleene_or_scalar$TestLogicalOps.test_kleene_or_scalar_  s     II)1CD99X-?@
v0
v0 	ryy,4FG	
r1   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  rW   r  )	TFNFFFNFNr  r  s        r/   test_kleene_andTestLogicalOps.test_kleene_andx  s    IItfqjE7Q;.$!;CUVII)A-5GH99G$
 	v0
v0 	IItfqjE7Q;.$!;CUV	
 	ryy,q08JK	
r1   )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        r/   test_kleene_and_scalar%TestLogicalOps.test_kleene_and_scalar  r  r1   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  rW   r  )	FTNTFNNNNr  r  s        r/   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	
r1   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        r/   test_kleene_xor_scalar%TestLogicalOps.test_kleene_xor_scalar  ss     II)1CD99X-?@
v0
v0 	ryy,4FG	
r1   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  rW   r  F)re   r   r   r   r+   r  r   r   )r   opr  rh   r  r  r   r   s           r/   test_logical_masked_numpy(TestLogicalOps.test_logical_masked_numpy  si     #YYt95
4'9:$Z099c5$/z"((*7MN
v0r1   r   )r  r  r  r  __doc__r  r(   r)   r  re   NAr   r  r  r   r  r  r  r  r  r   r1   r/   r  r  F  s   ;
, [[%&UU&'%&XXd^/0'(XXe_12	





, [[&'UU'(&')*XXd^01XXe_34	





, [[%&UU&'&'XXd^01XXe_12	
	
	
 [[t	
11r1   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  r9   rW   )Nr  rK   r9   )NNrx   r9   )NNr>   r9   )NN   r   r   )	r   re   r   r   r   rN  r   maskisnull)r   r7   leftrightr   r   s         r/   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,r1   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&   rd   r   r2  r   r1   r/   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   r2  r+   	timestamp)r7   r   s     r/   5test_arrowdtype_construct_from_string_supports_dt64tzr"    s4    ,,-LME",,sE23Hr1   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  rW   )r(   r&   rd   re   r   range)invalidr4  s     r/   ;test_arrowdtype_construct_from_string_type_only_one_pyarrowr&    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defgrW   rB   r?   r   abcabc re   r   r   r+   r   r   r   )binaryrepeatr   r   reflected_results        r/    test_arrow_string_multiplicationr0    s    YYvj.EFFYY2w&67F_Fyy(Bz"))+/FGH6,64r1   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 )Nr(  r)  rW   rB   r*  defgdefgr,  )r-  r   r   r/  s       r/   .test_arrow_string_multiplication_scalar_repeatr3  %  sq    YYvj.EFFaZFyy(J/z"))+7NOH6,6z+6r1   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   )qr4  z&quantile not supported by pyarrow for r%   )r  r6  zM8[z, r  r=   r\  F)warnr   r_  r  ) r7   r5   takere   r   r+   rX   rb   rc   rY   r(   r&   r   r9  r   rZ   r]   r   r   rk   r-   r)   r*   r_   r   ra  r   to_pydatetimedtfloorr   r   )rh   r4  r9  r.   rg   r   r4  r   pd_dtypeser_npr   s              r/   test_quantilerE  .  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   rB   rB   r9   r9   r9   )r   r   r   rB   r9   r9   
multi_modesingle_mode)r3   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)r?  re   r   moder   r   )rv   take_idxexp_idxrh   r   r   r   s          r/   test_mode_dropna_truerN  {  sY     !!(+D
))D/CXXTX"Fyy*//89H6,r1   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   rW   FrI  )re   r   r7   rK  r   r   )rh   	more_nansr   r   s       r/   test_mode_dropna_false_mode_narQ    s    		4tAw/tzzBI^^5^)Fyy$tzz2H6,yy$q'4

;H]]%](F6,r1   zarrow_dtype, expected_type   f1f2c                :    [        U 5      R                  U:X  d   eg r   )r   rk   )arrow_dtypeexpected_types     r/   test_arrow_dtype_typerX    s    " k"''=888r1   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+   rf   r   re   corecommonis_bool_indexerr   r$  r  r   asarrayr   r   )rh   r  r   r   s       r/   test_is_bool_dtyper_    s    rxx(;<=D77>>))$////
		%D	"#AWFD!"H6,r1   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   )r7   r5   r+   rX   rZ   r   r]   r   rh   r   s     r/   test_is_numeric_dtyperb    su    jj&&G
W%%88w''88w''%%%%#D)))))r1   c                    U R                   R                  n[        R                  R	                  U5      (       a  [        U 5      (       d   eg [        U 5      (       a   eg r   )r7   r5   r+   rX   r   r   ra  s     r/   test_is_integer_dtyperd    sK    jj&&G	xx7##%%%%#D)))))r1   c                    U R                   R                  n[        R                  R	                  U5      (       a  [        U 5      (       d   eg [        U 5      (       a   eg r   )r7   r5   r+   rX   r[   r   ra  s     r/   test_is_signed_integer_dtyperf    sK    jj&&G	xx!!'**&t,,,,*400000r1   c                    U R                   R                  n[        R                  R	                  U5      (       a  [        U 5      (       d   eg [        U 5      (       a   eg r   )r7   r5   r+   rX   r\   r   ra  s     r/   test_is_unsigned_integer_dtyperh    sK    jj&&G	xx##G,,(....,T22222r1   c                    U R                   R                  n[        R                  R	                  U5      (       a  [        U 5      (       d   eg [        U 5      (       a   eg r   )r7   r5   r+   rX   rZ   r   ra  s     r/   test_is_float_dtyperj    sK    jj&&G	xxG$$d####!$'''''r1   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 )NrB   )	re   r   headpickledumpsr  loadsr   r   )rh   r   expected_slicedfull_pickledsliced_pickledr   result_sliceds          r/   test_pickle_roundtriprt    s    yyHmmA&O<<)L\\/2N|s>2222\\,'F6,LL0M=:r1   c                2   U R                   R                  5       R                  nUR                  U R                  5      n[        UR                  [        5      (       a   e[        UR                  [        5      (       d   e[        R                  " X 5        g r   )	r   	to_pandasrf   r   r7   r   r   r   r   )rh   pd_arrayr   s      r/   test_astype_from_non_pyarrowrx    sh    ~~'')//H__TZZ(F(..*5555fllJ////##F1r1   c                     [         R                  " S/5      n U R                  S5      n[         R                  " S/SS9n[        R                  " X5        g )N1.0r  r;   rW   re   r   r   r   r   r   r   r   s      r/   &test_astype_float_from_non_pyarrow_strr}    sB    
))UG
CZZ*+Fyy#&89H6,r1   c                     [         R                  " SS/0SS9n U R                  SSS9n[        R                  " X5        g )Ncoli@fr   rW   float[pyarrow]r   )errors)re   rc  r   r   rg  )r   r   s     r/   test_astype_errors_ignorer    s;    ||UXJ/7GHH__-h_?F&+r1   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                  (       aV  [        U R                  5      (       d<  WR!                  ["        5      n[$        R&                  U[$        R(                  " U 5      '   [*        R,                  " UW5        g )Nz Tested in test_to_numpy_temporal)r   r   rk   r+   rX   r`   r_   r(   r   r^   r   rf   list_hasnar   r7   r   r   re   r  rM  r   r   )rh   r   r   r   s       r/   test_to_numpy_with_defaultsr  	  s    ]]_Fnn!!G	xxG$$(=(=g(F(F67			'	"	"88DJ'88DNN+{{+DJJ77??6*"$%%1r1   c                    SS /n [         R                  " U SS9nUR                  5       n[        R                  " S[        R                  /5      n[        US   [        5      (       d   e[        R                  " X#5        g )Nr>   r   rW   r   )	re   rf   r   r   r   r   floatr   r   )rh   r!  r   r   s       r/   test_to_numpy_int_with_nar    sb    t9D
((4/
0C\\^FxxBFF$HfQi''''1r1   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]rW   r   r   rB   re   rf   r  r   r   r   r   )na_valr  r!  r   r   s        r/   test_to_numpy_null_arrayr  &  sV     ((BEE255>
9C\\	F\;Fxx	3H1r1   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  rW   rB   r   r  r!  r   r   s      r/   !test_to_numpy_null_array_no_dtyper  /  sV    
((BEE255>
9C\\\%Fxx!84H1r1   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  rW   F)r   r;   r   r<   )	re   rf   r  r   r   r  r   r   float32r  s      r/   test_to_numpy_without_dtyper  7  s    
((D"%%=(:
;C\\5\)FxxuRXX6H1
((C<'9
:C\\3\'Fxxc
"**5H1r1   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   rW   r@   )copyr"   rl   r  r7   r   r   tolist)rh   origr   r   s       r/   test_setitem_null_slicer  D  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5r1   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   rk   r+   rX   rb   rc   r   r   rZ   rY   r,   r(   r&   )rh   r   
fill_valueerrr4  s        r/   test_setitem_invalid_dtyper  [  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rk   types_mapperrW   )r+   rf   re   	Timestampdate32rv  r   date64getr   r   r   )
date_arrayr   r   s      r/   &test_from_arrow_respecting_given_dtyper  r  s    	l	#R\\,%?@ryy{  J !!iik:biik#:;?? " F yy	l	#R\\,%?@%H 6,r1   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)Nr.        @r  r  )
r+   rf   r   r   external_error_raisedr,   rv  r   r*  r  )rf   s    r/   -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@rW   r>   g333333?g@g^@gp=
cL@r@   g      ^@g      N@)re   r   r  roundr   r   r7   r   r   r   s       r/   
test_roundr    s    E
))S$bee,E
:CYYq\Fyy#sC/u=H6,
))UBEE5)
7CYYr]Fyy%-U;H6,r1   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)rB   r   r>   r@   zOsearchsorted requires array to be sorted, which is impossible with NAs present.r   )r?  re   r  r   r(   r&   rb  searchsorted)rz   	as_seriesrM   rq   rL   r!  r4  s          r/    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  rW   r>   rB   rL   rM   rL   rM   )by)re   rc  r   r   r+   
dictionaryint32r   r  sort_valuesr   rg  )rh  r   r   s      r/   test_sort_values_dictionaryr    s~    	c
*R]]288:ryy{-S"T Q		

B wwyH^^Sz^*F&+r1   patr(  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 )Nr(  rW   r>   )
re   r   r   r+   r   rd  r  r  r   r   )r  r   r   r   s       r/   test_str_countr    s`    
))UDMBIIK)@
ACWW]]3Fyy!T*RXXZ*@AH6,r1   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)Nr(  rW   z	count notr   r>   flags)
re   r   r   r+   r   r(   r&   rd   rd  r  r   s    r/    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 )NrL   rW   r  r   )widthsidefillchar)
re   r   r   r+   r   rd  padr   r   r   )r  str_funcr   r   r   s        r/   test_str_padr    s|     ))S$Kz"))+'>
?CWW[[qtc[:Fyy	h	3	'.j6MH 6,r1   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)NrL   rW   zInvalid side: foor   r  r  r   )
re   r   r   r+   r   r(   r&   rb  rd  r  r  s    r/   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 )Nr(  rW   )casenaregex)
re   r   r   r+   r   rd  containsr  r   r   )r  r  r  r  r  r   r   r   s           r/   test_str_containsr    se     ))UDMBIIK)@
ACWWcAFyyJrxxz$:;H6,r1   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)Nr(  rW   zcontains notr   rL   r>   r  )
re   r   r   r+   r   r(   r&   rd   rd  r  r  s    r/   #test_str_contains_flags_unsupportedr    sT    
))UDMBIIK)@
AC	*.	AA& 
B	A	Ar  zside, pat, na, exp
startswith)TNFrM   r  endswith)FTFbc)rL   eg)TNT)rL   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)r(  NefgrW   )r  
re   r   r   r+   r   r   rd  r  r   r   )r  r  r  r  r   r   r   s          r/   test_str_start_ends_withr    s^     ))(
299;0G
HCSWWd#C/FyyJrxxz$:;H6,r1   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 )NrW   r   r  )r  r   r   r   s       r/   /test_str_starts_ends_with_all_nulls_empty_tupler    se    
))T4L
299;(?
@CSWWd#B'F yy$Z
-CDH6,r1   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)
Nr(  rW   rM   r   T)r  r  r  zreplace is not supportedr   r   )
re   r   r   r+   r   r(   r&   rd   rd  replace)arg_nameargr   kwargss       r/   test_str_replace_unsupportedr    sg    
 ))UDMBIIK)@
AC#5F8	*2L	M!&! 
N	M	Ms   A<<
B
zpat, repl, n, regex, exprL   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abacrW   )nr  )	re   r   r   r+   r   rd  r  r   r   )r  r  r  r  r  r   r   r   s           r/   test_str_replacer    sb     ))VTN*RYY[*A
BCWW__S!_9FyyJryy{$;<H6,r1   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 )Nr(  aaaaaarW   rL   r+  Tr  r!   storage)r  r   )re   r   r   r+   r   rd  r  r   r   r   StringDtyper7   r   r   )	r   actualr   ser2actual2	expected2ser3actual3	expected3s	            r/   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.r1   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)Nr(  rW   zrepeat is notr   r>   rB   )
re   r   r   r+   r   r(   r&   rd   rd  r.  r  s    r/   test_str_repeat_unsupportedr  6  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 )Nr(  rW   rB   r*  )	re   r   r   r+   r   rd  r.  r   r   r|  s      r/   test_str_repeatr  <  sa    
))UDMBIIK)@
ACWW^^AFyy(D)BIIK1HIH6,r1   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 )Nr(  rW   r  r  )
re   r   r   r+   r   rd  r   r  r   r   r  r  r  r  r   r   r   s          r/   test_str_matchr  C  sb     ))UDMBIIK)@
ACWW]]3b]1FyyJrxxz$:;H6,r1   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)r(  r  z$abcNrW   r
  )
re   r   r   r+   r   rd  	fullmatchr  r   r   r  s          r/   test_str_fullmatchr  U  sb    , ))1BIIK9P
QCWWs"5FyyJrxxz$:;H6,r1   zsub, start, end, exp, exp_typr  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 )Nr(  rW   )startend	re   r   r   r+   r   rd  findr   r   )subr  r  r  exp_typr   r   r   s           r/   test_str_findr  q  s\    
 ))UDMBIIK)@
ACWW\\#\4FyyJw$78H6,r1   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(  rW   rM   ir  r  r  r  r>   
re   r   r   r+   r   rd  r  r*  r   r   r|  s      r/   test_str_find_negative_startr  |  sf    
))UDMBIIK)@
ACWW\\cA\6Fyy!T*RXXZ*@AH6,r1   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 )Nr(  rW   r  r>   )r  r@   r   r  r|  s      r/   test_str_find_no_endr!    sZ    
))UDMBIIK)@
ACWW\\$a\(Fyy"d+;<H6,r1   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abcdefgrW   dr  r  r  r  r|  s      r/   )test_str_find_negative_start_negative_endr&    sg    
))Y%Z		-D
ECWW\\c\4Fyy!T*RXXZ*@AH6,r1   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#  rW   r$  rR  )r  r  r@   r  r|  s      r/   test_str_find_large_startr(    se    
))Y%Z		-D
ECWW\\c\,Fyy"d:bhhj+ABH6,r1   z,https://github.com/apache/arrow/issues/36311r   r  )r  r   r>      Nr  )r)  r@   r   r  r*  Nr  )r+  azabcerL   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)abcaadefr(  abcdeddefgj8292r  rL   r+  rW   rZ  r  r!   )re   r   r   r+   r   r   r  rd  r  r7   r   r   )	r  r  r  r  object_seriesr   r   arrow_str_seriesresult2s	            r/   test_str_find_e2er4    s     			=%	A HHR^^H=>MUUZZC(F  %%c#6==fllKH6,xxy AB""''C8??MG7-r1   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#  rW   r$  r  r%  r  r@   r  r|  s      r/   2test_str_find_negative_start_negative_end_no_matchr6    sg    
))Y%Z		-D
ECWW\\c\4Fyy"d:bhhj+ABH6,r1   zi, exp)rM   r  N)rq   r  NrB   )rq   NNr  )rL   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)r(  deNrW   )	re   r   r   r+   r   rd  r  r   r   )r  r  r   r   r   s        r/   test_str_getr9    sZ     ))'z"))+/F
GCWW[[^FyyJryy{$;<H6,r1   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 )Nr(  123=za=b=cz1=2=3NrW   )re   r   r"   r+   rf   r  rd  joinr   r   r   r   r|  s      r/   test_str_joinr?    sl    
 ))'$u+tE{D1Q(RS
TCWW\\#Fyy1BIIK9PQH6,r1   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)r(  r;  Nr<  r=  rW   )re   r   r"   r+   rf   rd  r>  r   r   r   r   r|  s      r/   test_str_join_string_typerA    s\    
))'1E(FG
HCWW\\#Fyy1BIIK9PQH6,r1   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abcdrW   )	re   r   r   r+   r   rd  slicer   r   )r  stopstepr  r   r   r   s          r/   test_str_slicerI    s`     ))VTN*RYY[*A
BCWW]]5-FyyJryy{$;<H6,r1   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 rD  )	re   r   r   r+   r   rd  slice_replacer   r   )r  rG  r  r  r   r   r   s          r/   test_str_slice_replacerO    sb     ))VTN*RYY[*A
BCWW""55FyyJryy{$;<H6,r1   zvalue, method, exp)a1cisalnumT)z!|,rQ  F)aaaisalphaT)z!!!rS  F)u   ٠	isdecimalT)z~!rT  F)rN   isdigitT)~rU  F)rR  islowerT)aaArW  F)r;  	isnumericT)11IrY  F) isspaceT)r+  r\  F)zThe ThatistitleT)zthe Thatr]  F)AAAisupperT)AAcr_  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  )valuerL  r  r   r   r   s         r/   test_str_is_functionsrc    sc    0 ))UDMBIIK)@
ACSWWf%'Fyy#tJrxxz,BCH6,r1   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 dEFrW   	re   r   r   r+   r   r   rd  r   r   )rL  r  r   r   r   s        r/   test_str_transform_functionsrk    sd     ))Y%Z		-D
ECSWWf%'Fyy#tJryy{,CDH6,r1   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 )NrE  rW   r9   )
re   r   r   r+   r   rd  r  r  r   r   r|  s      r/   test_str_lenrm  *  s]    
))VTN*RYY[*A
BCWW[[]Fyy!T*RXXZ*@AH6,r1   zmethod, to_strip, val)r  Nz abc )r  r   xabcx)lstripNz abc)ro  r   xabc)rstripNzabc )rq  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 )NrW   )to_stripr(  rj  )rL  rt  valr   r   r   s         r/   test_str_striprv  1  se     ))S$Kz"))+'>
?CSWWf%x8Fyy%j.EFH6,r1   ru  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 NrW   r;  r(  )	re   r   r   r+   r   rd  removesuffixr   r   ru  r   r   r   s       r/   test_str_removesuffixr|  C  b    
))S$Kz"))+'>
?CWW!!%(Fyy%j.EFH6,r1   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 ry  )	re   r   r   r+   r   rd  removeprefixr   r   r{  s       r/   test_str_removeprefixr  K  r}  r1   r  r   strictzencoding, exputf8s   abcutf32s     a   b   c   c                .   [         R                  " SS /[        [        R	                  5       5      S9nUR
                  R                  X5      n[         R                  " US /[        [        R                  5       5      S9n[        R                  " XE5        g Nr(  rW   )
re   r   r   r+   r   rd  encoder-  r   r   )r  encodingr  r   r   r   s         r/   test_str_encoder  S  sb     ))UDMBIIK)@
ACWW^^H-Fyy#tJryy{,CDH6,r1   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)r(  r  NrW   rM   r  )
re   r   r   r+   r   rd  findalllist_r   r   )r  r   r   r   s       r/   test_str_findallr  b  so    
))(
299;0G
HCWW__S_.Fyy3%T**RXXbiik=R2STH6,r1   rL  r_  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abcbarW   rq   rB   zsubstring not foundr   r  )re   r   r   r+   r   r   rd  r*  r   r   r(   r&   rb  )rL  r  r  r   r   r   s         r/   test_str_r_indexr  j  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  )
re   r   r   r+   r   rd  	normalizer  r   r   )r  r   r   r   s       r/   test_str_normalizer  |  sN    
))UDMBIIK)@
ACWWt$FxxzH6,r1   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  NrW   rq   )rB   r@   N)
re   r   r   r+   r   rd  rfindr*  r   r   )r  r  r   r   r   s        r/   test_str_rfindr    s]     ))**RYY[2I
JCWW]]3+Fyyj.DEH6,r1   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  rW   a   rM   bbcbb)	re   r   r   r+   r   rd  	translater   r   r|  s      r/   test_str_translater    sf    
))WdO:biik+B
CCWWCy)Fyy'4
299;0GHH6,r1   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  rW   r  zabc
ba)	re   r   r   r+   r   rd  wrapr   r   r|  s      r/   test_str_wrapr    s`    
))WdO:biik+B
CCWW\\!_Fyy)T**RYY[2IJH6,r1   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|crW   )TTFr  rZ  )rL   rM   rq   )r7   r  )re   r   r   r+   r   rd  get_dummiesrc  r  r   rg  r|  s      r/   test_get_dummiesr    sk    
))(
299;0G
HCWW  "F||	35HI$H
 &+r1   c                    [         R                  " SS /[        [        R	                  5       5      S9n U R
                  R                  S5      n[         R                  " / SQ/ SQ/[        [        R	                  5       5      S9n[        R                  " X5        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      S9n[        R                  " X5        U R
                  R                  SSS9n[         R                  " [        [        R                  / SQS /5      5      5      n[        R                  " X5        g )	Nr  rW   rM   )rL   rM   cbar	  Fexpand)r(  rM   rL   )re   r   r   r+   r   rd  	partitionrc  r   rg  r"   rf   r   
rpartitionr|  s      r/   test_str_partitionr    sE   
))WdO:biik+B
CCWWs#F||	./z"))+7NH &+WWs51Fyy,RXX7H$6O-PQRH6,WW$F||	./z"))+7NH &+WWE2Fyy,RXX7H$6O-PQRH6,r1   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
brW   )a1cbcrM   )re   r   r   r+   r   r   rd  r"   rf   r   r   rL  r   r   r   s       r/   test_str_split_pat_noner    sh     ))[$'z"))+/F
GCSWWf%'Fyy,RXX7I46P-QRSH6,r1   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a2cbcbNrW   rq   r  rM   rM   a2rM   rM   r>   r  r  bcbr  z[1-2]T)r  rL   cbcb)r  r  )rL   rL   N)r  r  Nr   r>   rC   r  rL   r  Nr  NN)re   r   r   r+   r   rd  r  r"   rf   r   r   rc  rg  r|  s      r/   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 &+r1   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  rW   rq   r  r  r>   r  a1cbrM   a2cbT)r  r  )r  r  N)rM   rM   Nr  rC   r  r  r  )re   r   r   r+   r   rd  r  r"   rf   r   r   rc  rg  r|  s      r/   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 &+r1   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c3rW   z*pat=.* must contain a symbolic group name.r   z[ab](\d))
re   r   r   r+   r   r(   r&   rb  rd  extractr  s    r/   test_str_extract_non_symbolicr  	  sJ    
))&j.E
FC	z)U	V$ 
W	V	Vs   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  rW   z(?P<letter>[ab])(?P<digit>\d)r  )rL   rM   NrC   rN   N)letterdigit)re   r   r   r+   r   rd  r  rc  r"   rf   r   rg  )r  r   r   r   s       r/   test_str_extractr  	  s|    
))&j.E
FCWW__=f_MF||)"((3C*DE(2B)CD	
H &+r1   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  rW   z[ab](?P<digit>\d)Tr  r  r  Fr  )re   r   r   r+   r   rd  r  rc  r"   rf   r   rg  r   r|  s      r/   test_str_extract_expandr  (	  s    
))&j.E
FCWW__1$_?F||(2B)CD	
H
 &+WW__1%_@Fyy,RXX6F-GHwWH6,r1   ra  )r]  r\  r  r  c                    SS/n[         R                  U 5      n[        R                  " XS9n[        [         R	                  SS /US95      n[
        R                  " X45        g )N1000NaTrW     r  )r+   durationr"   r   rf   r   r   )ra  stringsr   r   r   s        r/   #test_duration_from_strings_with_natr  7	  sT     uoGkk$G ::7RF"288T4Lw8#GHH##F5r1   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   )r7   r5   r+   rX   r   r(   r&   AttributeErrorre   r   rA  r   s     r/   test_unsupported_dtr  A	  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microsecondrK   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>   rB   r  r9   rx   rK   r  )r  r  r  r  r  r  r  r  r]  rW   r  )re   r   r  r   r+   r!  r   rA  r   r   r  r   time64r"   rf   r   r   )propr   r   r   exp_types        r/   test_dt_propertiesr  J	  s    . ))LL	 	
 d+,C  SVVT"FH(D!!99;	Hd	#	#99T?yy,RXXx6FXX-VWXH6,r1   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  rG   rB   r  r  r  r  r  r>   rH   r\  rW   r  FFTN)re   r   r   r   r+   r!  rA  is_month_startr  r   r   is_month_endr|  s      r/   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,r1   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  rG   rH   r  r  r>   r\  rW   r  r  )re   r   r   r   r+   r!  rA  is_year_startr  r   r   is_year_endr|  s      r/   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,r1   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>   rH   r\  rW   r  r  )re   r   r   r   r+   r!  rA  is_quarter_startr  r   r   is_quarter_endr|  s      r/   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,r1   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  r9   r>   rB   r\  rW   )rH   r     N)re   r   r   r   r+   r!  r   rA  r*  r   r   r  s       r/   test_dt_days_in_monthr  	  s    
))$aRa8$aQQ7$aQQ7		
 d+,C SVVV$Fyy+:bhhj3IJH6,r1   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  r9   r>   r  rB      ;   )r  r  r  r  r  r  r\  rW   )
re   r   r   r   r+   r!  rA  r  r   r   r|  s      r/   test_dt_normalizer  	  s    
))$aR0$aQQ7$aQR2N		
 d+,C VVFyy$aR0$aQ/$aQ/		
 d+,H 6,r1   r\  r]  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>   rB   r  r  rW   r   r  )re   r   r   r   r+   r!  rA  ra  r   r"   rf   r  r   r   ra  r   r   r   s       r/   test_dt_time_preserve_unitr  	  s    
))	t1!!	4d;d+,C 66;;$VV[[FyyBHHd1aj$%7biioHNOH 6,r1   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>   rB   r  r  r]  r   rW   )
re   r   r   r   r+   r!  rA  r   r   maybe_get_tz)r   r   r   s      r/   
test_dt_tzr  	  s`    
))	t1!!	4d;dr23C VVYYFY++B////r1   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>   rB   r  r  r]  rW   )r  r>   r>   r;  )r  weekr  r   r  r7   )re   r   r   r   r+   r!  rA  isocalendarrc  r   rg  r|  s      r/   test_dt_isocalendarr  	  st    
))	t1!!	4d;d+,C VV!F||	y!'H
 &+r1   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  rW   )r0   re   r   r   r   r+   r!  r   rA  r   r   r   )rL  r  r.   r   r   r   s         r/   test_dt_day_month_namer  
  sy    
 w'
))XdAq)40
2<<PTCU8V
WCSVVV$&Fyy#tJryy{,CDH6,r1   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>   rB   r  r  r]  rW   z%Y-%m-%dT%H:%M:%Sz2023-01-02T03:00:00.000000000)r0   re   r   r   r   r+   r!  rA  strftimer   r   r   )r.   r   r   r   s       r/   test_dt_strftimer"  
  s    w'
))	t1!!	4d;d+,C VV__01Fyy	($/z"))+7NH 6,r1   )ceilrB  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>   rB   r  r  r]  rW   zambiguous is not supported.r   1hr  	ambiguousznonexistent is not supported.nonexistent)re   r   r   r   r+   r!  r(   r&   rd   r   rA  rL  r   s     r/   *test_dt_roundlike_tz_options_not_supportedr+  
  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>   rB   r  r  r]  rW   zfreq='1B' is not supportedr   1Bz$Must specify a valid frequency: None)re   r   r   r   r+   r!  r(   r&   rb  r   rA  r*  s     r/   "test_dt_roundlike_unsupported_freqr.  *
  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  r\  r]  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	  r]  rC   )re   r   r   r   r+   r!  r   rA  r   r   r   )r/  rL  r   rg   r   r   s         r/   test_dt_ceil_year_floorr3  7
  s     ))	t1!	,d3C ",,t,-Hsvvv&4&z299(CHSZZ),,f5$jAF6,r1   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)NrE   r>   r  r]  rW   CThe behavior of ArrowTemporalProperties.to_pydatetime is deprecatedr   c              3  D   #    U  H  n[        U5      [        L v   M     g 7fr   )rk   r   .0ress     r/   	<genexpr>(test_dt_to_pydatetime.<locals>.<genexpr>M
  s     7tCyH$    z>The behavior of DatetimeProperties.to_pydatetime is deprecateddatetime64[ns])r   re   r   r   r+   r!  r   rn  FutureWarningrA  r@  r   rf   r   r   r   r   )rh   r   r4  r   r   s        r/   test_dt_to_pydatetimer?  C
  s    T1a (4A"67D
))D
2<<+= >
?C
OC		#	#M	=%%' 
>xxF+H1777777
JC		#	#M	=::./22@@B 
>1 
>	= 
>	=s   'D7.*E7
E
E	date_typer   @   c           
        [         R                  " [        SSS5      /[        [	        [
        SU  35      " 5       5      S9nSn[        R                  " [        US9   [        R                  " [        SS9   UR                  R                  5         S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)	NrE   rG   rH   r   rW   r5  r   z#to_pydatetime cannot be called with)re   r   r   r   r   r+   r   rn  r>  r(   r&   rb  rA  r@  )r@  r   r4  s      r/    test_dt_to_pydatetime_date_errorrC  U
  s     ))	dB	tI;%78:;C PC		#	#M	=]]:-RSFF  " T 
>	=SS 
>	=s$   B36B"B3"
B0	,B33
C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>   rB   r  r  r]  rW   z ambiguous='NaT' is not supportedr   r   r  r&  z"nonexistent='NaT' is not supportedr(  )re   r   r   r   r+   r!  r(   r&   rd   rA  tz_localizer  s    r/   *test_dt_tz_localize_unsupported_tz_optionsrF  b
  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            
     X   [         R                  " [        SSSSS9S /[        [        R                  SSS95      S	9n U R                  R                  S 5      n[         R                  " [        SSSSS9S /[        [        R                  S5      5      S	9n[        R                  " X5        g )
Nr  r>   rB   r  r  r]  r  r  rW   )
re   r   r   r   r+   r!  rA  rE  r   r   r|  s      r/   test_dt_tz_localize_nonerH  n
  s    
))	t1!!	4d;d|<=C VV%Fyy	t1!!	4d;d+,H 6,r1   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>   rB   r  r  rW   r  r  r0   re   r   r   r   r+   r!  rA  rE  rf   computeassume_timezoner"   r   r   )ra  r.   r   r   exp_datar   s         r/   test_dt_tz_localizerN  {
  s    w'
))	t1!!	4d;d+,C VV-Fxx	t1!!	4d;",,tBT  H zz))(LAHyy,X67H6,r1   znonexistent, exp_dateshift_forwardrG   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  rG   rB   r  )r  r  r  r  r  r]  rW   r  r(  r  rJ  )r)  exp_dater.   r   r   rM  r   s          r/   test_dt_tz_localize_nonexistentrS  
  s     w'
))	t1"1R	@$Gd+,C VV+FFxx4(r||D/AxBHzz))(LAHyy,X67H6,r1   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>   rB   r  r  r]  rW   z"Cannot convert tz-naive timestampsr   r   )re   r   r   r   r+   r!  r(   r&   r   rA  
tz_convertr  s    r/    test_dt_tz_convert_not_tz_raisesrV  
  sd    
))	t1!!	4d;d+,C 
y(L	M%  
N	M	Ms   A<<
B
c            	     \   [         R                  " [        SSSSS9S /[        [        R                  SS5      5      S9n U R                  R                  S 5      n[         R                  " [        SSSSS9S /[        [        R                  S5      5      S9n[        R                  " X5        g )	Nr  r>   rB   r  r  r]  r  rW   
re   r   r   r   r+   r!  rA  rU  r   r   r|  s      r/   test_dt_tz_convert_nonerY  
  s    
))	t1!!	4d;dL9:C VVt$Fyy	t1!!	4d;d+,H 6,r1   c           	     ^   [         R                  " [        SSSSS9S /[        [        R                  U S5      5      S9nUR                  R                  S5      n[         R                  " [        SSSSS9S /[        [        R                  U S5      5      S9n[        R                  " X#5        g )	Nr  r>   rB   r  r  r  rW   z
US/EasternrX  r  s       r/   test_dt_tz_convertr[  
  s    
))	t1!!	4d;dL9:C VV|,Fyy	t1!!	4d;dL9:H 6,r1   r7   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  rW   r]  r  )re   r   rA  as_unitr   r  r   r   r  s       r/   test_as_unitr^  
  sQ     ))T4L
.CVV^^D!Fzz%--d34H6,r1   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>   rB   r  r9   r_  r`  ra  rb  r]  rW   r  )re   r   	Timedeltar   r+   r  r   rA  r"   rf   r  r   r   )r  r   r   r   s       r/   test_dt_timedelta_propertiesrf  
  s     ))LL	 	
 T*+C SVVT"FyyBHHh%5BHHJHGHH 6,r1   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>   rB   r  r9   rd  r]  rW   gN%  @r  )re   r   re  r   r+   r  rA  total_secondsr"   rf   r   r   r   r|  s      r/   test_dt_timedelta_total_secondsri  
  s    
))LL	 	
 T*+C VV!!#FyyBHHlD%9

HMNH 6,r1   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n[        R                  " X#5        [        S U 5       5      (       d   eUR                  S5      R                  R                  5       n[        R                  " X#5        g )	Nr>   rB   r  r9   r]  rW   c              3  D   #    U  H  n[        U5      [        L v   M     g 7fr   )rk   r   r7  s     r/   r:  )test_dt_to_pytimedelta.<locals>.<genexpr>	  s     8#tCyI%r<  timedelta64[ns])r   re   r   r   r+   r  rA  to_pytimedeltar   rf   r   r   r   r   r   rh   r   r   r   s       r/   test_dt_to_pytimedeltarp    s    aA	!Q 23D
))D
2;;t+< =
>CVV""$FxxF+H1888888zz+,//>>@H1r1   c            	     (   [         R                  " [         R                  " SSSSS9S /[        [        R                  S5      5      S9n U R                  R                  n[         R                  " / SQ/ S	Q// S
QSS9n[        R                  " X5        g )Nr>   rB   r  r9   rd  r]  rW   )r>   r   r   rB   r   r  r9   )NNNNNNN)r_  hoursminutesr`  millisecondsra  rb  r   r  )re   r   re  r   r+   r  rA  
componentsrc  r   rg  r|  s      r/   test_dt_componentsrv    s    
))LL	 	
 T*+C VVF||	 JK
 H &+r1   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  rW   r   r   )re   r   r   r  )r  r   r   r   r   s        r/   #test_boolean_reduce_series_all_nullrx  .  sH     ))TF"4
5CS1@F)U255r1   c                    / SQn / SQnS /nX-   U-   nS/[        U 5      -  S/[        U5      -  -   S /[        U5      -  -   n[        R                  " U[        R	                  5       S9n[
        R                  " USS9n[        R                  " XV5        SS/n[        R                  " [        R                  S	S
9   [        R                  " U[        R	                  5       S9  S S S 5        g ! , (       d  f       g = f)N)trueTRUETruerC   rz  )falseFALSEFalse0rD   TFrW   r  r|  r  zFailed to parser   )r  r"   r   r+   r  re   rf   r   r   r(   r&   r,   )true_stringsfalse_stringsnullsr  boolsr   r   s          r/   %test_from_sequence_of_strings_booleanr  :  s    7L;MFE*U2G	\""eWs=/A%AATFSQVZDWW 
 !::7"((*UFxx%78H##F5uoG	r.?	@55gRXXZP 
A	@	@s   ;(C,,
C:c                    [         R                  " / U S9nUR                  5       n[         R                  " U[        R
                  " / [        R                  S9   /5      n[        R                  " X25        g r   )	re   r   r  concatr   rf   r  r   r   )r7   r   r   r   s       r/   %test_concat_empty_arrow_backed_seriesr  L  sP    
))Be
$CxxzHYYBHHRrxx89:;F6,r1   r   z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 foxrW   )r+   rf   r  re   r   r"   r   r   )r7   r!  r   r   s       r/   test_series_from_string_arrayr  T  sL    
(((..0
1C
))C
%Cyy,S1?H3)r1   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     r/   r  #OldArrowExtensionArray.__getstate__^  s'    $&;/gr1   r   )r  r  r  r  r  r  r  r  s   @r/   r  r  ]  s     r1   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+   rf   r  rm  ro  rn  r   r   r   chunked_arrayhasattr)rh   r   r   s      r/   #test_pickle_old_arrowextensionarrayr  d  su    88QC=D%d+H\\&,,x01F##F5r//5555vw'''''r1   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 rW   F)	r"   r+   r  r   onesr  r  zerosr   )Nr!  r   s      r/   /test_setitem_boolean_replace_with_mask_segfaultr  m  sn    A
b..BHH0M/NO
PCxxzH*/C!RXX&'==H.....r1   zdata, arrow_dtyperQ   rR   c                    [        U5      n[        R                  " [        R                  " U 5      US9n[        R                  " XS9n[        R
                  " X45        g r   )r   re   rf   r   r   r   )rh   rV  r7   r   r   s        r/   -test_conversion_large_dtypes_from_numpy_arrayr  v  sB     {#EXXbhhtnE2Fxx*H##F5r1   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 )	NrL   rW   r   r>   r   T)ignore_index)NNr   r>   )re   rc  r   r+   nullr  r   rg  )rh  df2r   r   s       r/   test_concat_null_arrayr    sv    	sT4L)BGGI1F	GB
,,aV},<
=CYYyt4F||S"45=MNH&+r1   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>   rB   r  rW   )r  rB   r>   r>   r.  g       @r  r  r  r   r   r  25%50%75%r  r7   r_  )re   r   r   describer+   r   r   r   r   rh   r   r   s       r/   test_describe_numeric_datar    sV     99Yj&9:D]]_Fyy&&IH
 6,r1   c                :   [         R                  " [        SS5      [        U 5      S9nUR	                  5       n[         R                  " S/[         R
                  " / SQU R                  S9R                  5       -   [        / SQS9n[        R                  " X#5        g )	Nr>   rJ   rW   	   )rK   rB   r>   r  rK   rx   r  ra  r  r  )re   r   r$  r   r  to_timedeltara  r  r   r   r   r  s       r/   test_describe_timedelta_datar    sq     99U1b\G)<=D]]_Fyy	
boo3',,GNNPPIH
 6,r1   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>   rJ   rW   r  )rK   r>   r  rK   rx   r  )r   ra  )r  r   r  r  r  r  r  r  )re   r   r$  r   r  r  r   ra  r   r   r   )r   rh   r   vr   s        r/   test_describe_datetime_datar    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  rW   g?r   )re   r   r   r9  )r   rh   r   r   r   s        r/   test_quantile_temporalr    sA    
 D
))D
7 3
4C\\#F1vHr1   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  rW   z+0    2020-01-01
dtype: date32[day][pyarrow])
r+   rf   r   fromisoformatr  re   r   r   rk   repr)arrow_dtr   s     r/   test_date32_reprr    sT    xx++L9:xMH
))HJx}}$=
>C9FFFFr1   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>   r]  rW   rB   )
re   to_datetimer  r   r   r+   r!  r  r   r   )data_tsdata_tdser_tsser_tdr   r   s         r/   2test_duration_overflow_from_ndarray_containing_natr    s    nnaY'Gooq$i(GYYwjd1C&DEFYYwjT1B&CDF_Fyy!T*R\\$5G*HIH6,r1   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)floating
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  )rh   r.   r9  r)   s       r/   test_infer_dtype_pyarrow_dtyper    sy    
//$
C/!!!{{sGG{{  B ! 
 	D!#//$t*T::::r1   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  r  ra  r   rW   r  )ra  r+   rX   r`   re   re  r]  r  r   r"   rl   rf   r   r   )r   ru  ra  seqr   r   s         r/   test_from_sequence_temporalr    s    
 C<<D	xxG$$||C+33D9:||Cwzz:BB4HI //CF"288SE8#@AH##F5r1   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>   r  r  r  r  )r>   r>   r>   )ra  r+   rX   r`   re   re  r]  r  r   r"   rf   r  r   r   r   ra  ru  r!  r   r   s         r/   test_setitem_temporalr    s    
 <<D	xxG$$ll14(006ll14JJ7??E
bhhywh?
@CXXZF1I"288IG8#DEH##F5r1   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>   r  )r   r>   rB   )	r"   r+   rf   ra  re   re  r]  r   r   )r   r.   r!  ra  r   r   s         r/   test_arithmetic_temporalr    si    
 bhhywh?
@C<<D2<<-55d;;F"288IG8#DEH##F5r1   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>   r  r  r  r  )FTT)ra  r+   rX   r`   re   re  r]  r  r   r"   rf   r  r   r   r  s         r/   test_comparison_temporalr    s    
 <<D	xxG$$ll14(006ll14JJ7??E
bhhywh?
@CYF"288,?bhhj8#QRH##F5r1   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>   rB   r  r  )r"   r+   rf   rX   r`   re   re  ra  r]  r   r  r   r   r!  r   r   s       r/   test_getitem_temporalr  &  s    
 bhhywh?
@CVF	xxG$$<<5==gllK&",,////<<DLLLL
 &",,////;;(--'''r1   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  r  r   r  )r"   r+   rf   r  rX   r`   re   re  ra  r]  r  r   r  r   r  s       r/   test_iter_temporalr  9  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[-----r1   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  )rL   rL   rM   r>  r   )levelrB   r>   r   rL   rM   r  )re   r   groupbysizer   r   ro  s       r/   'test_groupby_series_size_returns_pa_intr  P  sZ    
))D!HO
4C[[q[!&&(Fyy!Q'7SzJH6,r1   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  rW   r  r  r   nat)r"   r+   rf   r   rX   r`   re   re  ra  r]  r  r   r   r_   r  r  r   to_pandas_dtyperk   datetime_datar   r   )r   r7   r!  r   rb  r  r   s          r/   test_to_numpy_temporalr  X  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-===1r1   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   )r_  r  r7   )re   rc  r  r  Indexr   rg  )rm   rh  r   r   s       r/   %test_groupby_count_return_arrow_dtyper  u  sp    	QFI	JBZZ_""$F||
Qhhs%c
	H &+r1   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>   rB   r  r9   )	list_sizerW   )	re   r   r   r+   r  r*  r7   rk   r  )r   r   s     r/   test_fixed_size_listr    sU    
))
Q!Q
288BHHJ!8+L MC YY^^FT>>r1   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  )rs  r  r0  r  z#     col
0  15340
1  15341
2  15342)re   rc  period_ranger   r#   r  )rh  r   r   s      r/   'test_arrowextensiondtype_dataframe_reprr    sN    	
*-.
B
 "XF 8Hr1   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 )NrB   r   rW   r  )r     )re   r   powr   r   )kr   r   s      r/   test_pow_missing_operandr    sL    
		1d)#34AUU4AU&Fyy!T*:;H6,r1   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 )NrB   rW   r>   r  zm8[r  )	re   r   r   r   rf   ra  rN  r   r   )r   ser1r  r   r   s        r/   test_duration_fillna_numpyr    s|     99dAYj&9:D99RXXq!fc',,q,ABCD[[Fyy!Qz'':;H6,r1   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  rW   r   zInteger valuer   )re   r   r(   r&   r+   r   r,   r  s     r/   +test_comparison_not_propagating_arrow_errorr    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 )NrL   rM   r   r>   rW   )r+   r  rf   dictionary_encodere   r   r"   	factorizer   intpr  r   r   r   assert_index_equal)r   r   res_indicesres_uniquesexp_indiciesexp_uniquess         r/   !test_factorize_chunked_dictionaryr     s    	3%	*	*	,bhhuo.O.O.QRH ))'1
2C"}}K88QF"''2L((.x/F/F/HIJK:+3r1   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)rL   r   rq   rL   )rL   r$  rq   category)rL   r   rq   r$  rW   )rL   r   rq   rL   rL   r$  rq   )
categories)r+   rf   r   r  re   r   r"   r  r   r  r   r   CategoricalDtyper   r   )arrsr   r   r  r   s        r/   "test_dictionary_astype_categoricalr    s     	./0BBD
/*+==?D ))'(8(8(>?
@CZZ
#F.j6MNJyy+!!Z8H 6,r1   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   rW   r9   r?   r  )rL   rM   r   r   s       r/   test_arrow_floordivr    sP    
		2$./A
		1#-.Ayy"%56HVF6,r1   c                     [         R                  " S/SS9n [         R                  " S/SS9nU S-  n[        R                  " X!5        g )Nl     ^ \K r   rW   l    \p/i@B r  )rL   r   r   s      r/    test_arrow_floordiv_large_valuesr
    sA    
		&'/?@Ayy-0@AH)^F6,r1   r   r  c                f    [         R                  " S/U S9nUS-  n[        R                  " X!5        g )N   rW   r>   r  )r7   rL   r   s      r/   )test_arrow_floordiv_large_integral_resultr    s/     			$%U3A!VF6%r1   c                    [        U 5      n[        R                  " S/US9nUS-  n[        R                  " S/US9n[        R                  " X45        g )NirW      r@   )r   re   r   r   r   )r   r7   rL   r   r   s        r/   "test_arrow_floordiv_larger_divisorr    sI     wE
		3%u%A"WFyy"U+H6,r1   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)NrW   zoverflow|not in ranger   r@   zdivide by zeror   )r   iinfor  r  re   r   r   r(   r&   r+   r   r,   )r   	min_valuerL   s      r/   $test_arrow_floordiv_integral_invalidr    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 )NrB   rW   r   inf)re   r   r  r   r   )r7   rL   r   r   s       r/   &test_arrow_floordiv_floating_0_divisorr    sC     			1#U#A!VFyy%,u5H6,r1   )r   r=  rm  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   rW   r{  r  s       r/   (test_astype_int_with_null_to_numpy_dtyper    sI     ))QI%5
6CZZFyy!T%0H6,r1   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 )NrW   r>   )	r   r  r  r  r   re   r   r   r   )r   	max_valuer7   rL   rM   r   s         r/   )test_arrow_integral_floordiv_large_valuesr    sd     002377IwE
		9+U+A
		1#U#AVF6%r1   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   rW   r  r  r  r7   rL   rM   r   r   s        r/   &test_arrow_true_division_large_divisorr    sR     			1#U#A
		$%U3Ayy!$67HUF6,r1   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   rW   r  r  r  s        r/   'test_arrow_floor_division_large_divisorr!  $  sQ     			1#U#A
		$%U3Ayy!E*HVF6,r1   c            	         / SQn [         R                  " U SS9n[         R                  " [        [        R	                  [         R
                  " U 5      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:00timestamp[ns][pyarrow]rW   Tfrom_pandas)re   r   r"   r+   rf   r  r   r   )string_datesr   r   s      r/   $test_string_to_datetime_parsing_castr(  .  sT    XLYY|+CDFyyBHHR^^L%AtHTUH 6,r1   z0pairwise_diff_checked not implemented in pyarrowc                ^   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   )
r7   r&  re   r   reescaper(   r&   r   interpolate)rh   r   r4  s      r/   test_interpolate_not_numericr-  8  sr     ::!!iioii2399+VDE]]9C0IIdO'') 10 " 10s   /%B
B,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]rW   r  )   +   i) Tr%  )re   r   r"   r+   rf   r   r   r   )string_timesr   r   s      r/    test_string_to_time_parsing_castr2  C  s\    %&LYY|+@AFyyBHHd2r2u&=%>DHQRH 6,r1   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  rW   r   r   r5  )re   r   r   r   r   r   r   r|  s      r/   test_to_numpy_floatr6  M  sJ    
))N*:
;CZZ	"Fyy"b"&&);H6,r1   c                     [         R                  " S/SS9n U R                  [        R                  S9n[        R
                  " S/5      n[        R                  " X5        g )Nr#  r$  rW   l    P)#-/ )re   r   r   r   r*  rf   r   r   r|  s      r/   test_to_numpy_timestamp_to_intr8  U  sK    
))*+3K
LC\\\)Fxx,-.H1r1   c                     [         R                  " / SQSS9n U R                  S SS9n[         R                  " SS[        R                  /SS9n[
        R                  " X5        g )	Nr4  r   rW   c                    g)N*   r   r   s    r/   r   ,test_map_numeric_na_action.<locals>.<lambda>_  s    rr1   r   r   g      E@r   )re   r   r   r   r   r   r   r|  s      r/   test_map_numeric_na_actionr=  ]  sN    
))N*:
;CWW\XW6Fyy$bff-Y?H6,r1   (  r  
__future__r   r   r   r   r   decimalr   ior	   r
   r  rm  r*  numpyr   r(   pandas._libsr   pandas._libs.tslibsr   pandas.compatr   r   r   r   r   r   r   r   r   pandas.core.dtypes.dtypesr   r   pandasre   pandas._testing_testingr   pandas.api.extensionsr   pandas.api.typesr   r   r   r   r   r   r   pandas.tests.extensionr    importorskipr+   pandas.core.arrays.arrow.arrayr"   (pandas.core.arrays.arrow.extension_typesr#   r0   fixtureALL_PYARROW_DTYPESrd  r7   rh   rm   ro   rv   rz   r}   r   ExtensionTestsr   r  r)   r  ALL_INT_PYARROW_DTYPESr  r  r"  r&  r0  r3  rE  rN  rQ  r-  byteslarge_binarylarge_stringr  r*  r  
large_listmap_r   structr  dictr  rX  r_  rb  rd  rf  rh  rj  rt  rx  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!  r&  r(  skipifr4  r6  r9  r*   r  r?  rA  rI  rO  rc  rk  rm  rv  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r"  r+  r.  r3  r?  rC  rF  rH  rN  r  rS  rV  rY  r[  r^  rf  ri  rp  rv  rx  r  r  r  r  r  r  r  r  FLOAT_PYARROW_DTYPESr  TIMEDELTA_PYARROW_DTYPESr  DATETIME_PYARROW_DTYPESr  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r   r  r  r
  r  SIGNED_INT_PYARROW_DTYPESr  r  FLOAT_PYARROW_DTYPES_STR_REPRr  r  r  r  r!  r(  r-  r2  r6  r8  r=  r   r1   r/   <module>ra     s*   #     	    )
 
 

   ,   (# > D	" r,,#63 73 8' 8'v H H
 /0 1 7A 7At 
 
 
 
  u1T(( u1p^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(; 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	*-+*- #
AtaY
+dAq1d)RXXZ-PQ-	----- !O   ";< 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		LM- 9- 1a&)- *- GX#67	
D		
A4 84 %1- 2- 	
D		
A----,-. Hg#67- 8-%,P,D% D%=1	, 2	,- !896 :6 		
		a	A		a		1			!	q	A	1	dAq!"	aAq!"#,--,-6-&-&-& O]#CD- E--. $.- /- :;0 <0, Z*\9,EF--- #=>	9 ?	9 #=>	& ?	& !IJ#=>- ? K-2$ r2h/	# 0	#	5
- $.- /-  	(A2AFG	2<<(GHI--!
- $.
- /
- #;=T"UV- W- 		A			--*-*2,> D%=1 2Q$- 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	,- 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-- !S  **--2-r1   