
    Mh                   4$   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  SSKJs  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/J0r0J1r1J2r2J3r3  SSK4J5r5  \Rl                  " S5      r7SSK8J9r9  SSK:J;r;  S r<\Rz                  " \)R|                  \?S9S 5       r@\Rz                  S 5       rA\Rz                  S 5       rB\Rz                  " SS/S9S 5       rC\Rz                  S 5       rD\Rz                  S 5       rE\Rz                  S 5       rF\Rz                  S 5       rG " S S\5R                  5      rI " S  S!5      rJ\R                  R                  S"\)R                  5      S# 5       rNS$ rOS% rPS& rQS' rRS( rS\R                  R                  S)/ S*Q5      \R                  R                  S+S,S,S,//5      S- 5       5       rT\R                  R                  S./ S/QS0S/// S1QS///S2S3/S49S5 5       rUS6 rV\R                  R                  S7\7R                  5       \X/\7R                  S85      \X/\7R                  5       \X/\7R                  5       \?/\7R                  \7R                  5       5      \]/\7R                  \7R                  5       5      \]/\7R                  \7R                  5       \7R                  5       5      \]/\7R                  S9\7R                  5       4S:\7R                  5       4/5      \c/\7R                  \7R                  5       \7R                  5       5      \$//	5      S; 5       reS< rfS= rgS> rhS? riS@ rjSA rkSB rlSC rmSD rnSE roSF rpSG rq\R                  R                  SH\RV                  \R                  4SI/5      SJ 5       rsSK rtSL ruSM rvSN rwSO rxSP rySQ rzSR r{SS r|\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       rSj 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//
5      S 5       r\R                  R                  SScSSSS/\7GR                  5       /SrSSSS/\7R                  5       //5      S 5       rS 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///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                  SSS/5      S 5       r\R                  R                  SSS/SS0//5      S 5       rS rS rS rS r\R                  R                  SSS/5      S 5       rS rS rS 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S"/5      GS# 5       rGS$ r\R                  R                  GSGS%GS&/5      GS' 5       r\R                  R                  GS(/ GS)Q5      GS* 5       rGS+ r\R                  R                  SGS,GS-/GS.GS///5      GS0 5       rGS1 r\R                  R                  S/ GS2Q5      GS3 5       r\R                  R                  S/ GS2Q5      GS4 5       r\R                  R                  GS5/ GS6Q5      \R                  R                  S/ GS2Q5      GS7 5       5       rGS8 r\R                  R                  GS9GS:GS;/5      GS< 5       rGS= rGS> r\R                  R                  GSGS%GS&/5      GS? 5       r\R                  R                  GS@GSA\" GS	SGSBSGSC9/GSD\&GR                  " GSE5      //5      GSF 5       rGSG rGSH r\R                  R                  GSGS%GS&/5      GSI 5       r\R                  R                  GSJGSKGSL/5      GSM 5       r\R                  R                  GSGSNS/GSOS/GSPS/GSQS0//5      GSR 5       rGSS rGST rGSU r\R                  R                  GSVSeSd/5      GSW 5       rGSX rGSY r\R                  R                  GSJGSZGS[/5      GS\ 5       r " GS] GS^\95      rGS_ rGS` r\R                  R                  GSaGSbGSc/\7R                  5       4SSn/\7R                  5       4/5      GSd 5       rGSe r\R                  R                  S"\)R                  \)GR                  -   5      GSf 5       r\R                  R                  S"\)GR                  5      GSg 5       r\R                  R                  S"\)GR                  5      GSh 5       r\R                  R                  S"\)GR                  \)GR                  -   5      GSi 5       rGSj rGSk rGSl r\R                  R                  S"\)GR                  \)GR                  -   5      GSm 5       r\R                  R                  S"\)GR                  \)GR                  -   5      GSn 5       r\R                  R                  S"\)GR                  \)GR                  -   5      GSo 5       r\R                  R                  S"\)GR                  \)GR                  -   5      GSp 5       r\R                  R                  S"\)GR                  \)GR                  -   5      GSq 5       r\R                  R                  S"\)GR                  \)GR                  -   5      GSr 5       rGSs r\R                  R                  S"\)GR                  \)GR                  -   \S49\R                  R                  GSJS\/5      GSt 5       5       rGSu rGSv rGSw rGSx r\R                  R                  S"\)GR                  5      GSy 5       rGSz rGS{ rGS| rGS} rGS~ r\R                  R                  GSJGSG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SJ\)GR                  5      GS 5       r\R                  R                  GSJ/ GSQ5      GS 5       r\R                  R                  S"\)R                  5      GS 5       r\R                  R                  GSJGSGS/5      GS 5       r\R                  R                  GSJGSGS/5      GS 5       rGS rGS rGS rG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)
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     S/var/www/html/env/lib/python3.13/site-packages/pandas/tests/extension/test_arrow.py_require_timezone_databaser.   G   sQ    !2!4!4{{  ??; ! 
 	D! "5    )paramsidsc                (    [        U R                  S9$ )N)pyarrow_dtype)r   param)r,   s    r-   dtyper5   S   s    GMM22r/   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   !   >r5   )r3   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)r5   pa_dtypedatas      r-   rf   rf   X   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&&r/   c                R    [        U 5      R                  SU S   /U R                  S9$ )zLength-2 array with [NA, Valid]Nr   rU   type_from_sequencer5   )rf   s    r-   data_missingrk      s*     :$$dDG_DJJ$GGr/   rf   rk   )r0   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.
rf   rk   N)r4   )r,   rf   rk   s      r-   all_datarm      s,     }}	.	( 
)r/   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<   rH   rD   rE   rF   i  rC   rG   r7   rJ   rK   crO   rP      cz-1.1rB   z1.1NrU   )r3   r)   rV   rW   rX   rY   rZ   r\   r   r]   r   r^   r   r_   r   r`   ra   r[   r   rb   rc   rd   )r5   re   ABCs        r-   data_for_groupingrt      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%@@r/   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      r7   rU   rh   rt   s    r-   data_for_sortingrx      F     !"11	1	035Fq5IJ%% 2  r/   c                `    [        U 5      R                  U S   U S   U S   /U R                  S9$ )zk
Length-3 array with a known sort order.

This should be three items [B, NA, A] with
A < B and NA missing.
r   r@   r7   rU   rh   rw   s    r-   data_missing_for_sortingr{      ry   r/   c                   U R                   R                  n[        R                  R	                  U5      (       dl  [        R                  R                  U5      (       dH  [        R                  R                  U5      (       d$  [        R                  R                  U5      (       a#  [        R                  " S/S-  U R                   S9$ U $ )z3Length-100 array in which all the elements are two.r@   d   rU   )
r5   r3   r)   rV   
is_integerrX   r[   r^   rc   rd   rf   re   s     r-   data_for_twosr      s     zz''H
H%%88))88x((88))xxc	44Kr/   c            
        ^  \ rS rSrS r\R                  R                  SSS/5      S 5       rU 4S jr	\R                  R                  SS	\R                  " S
\R                  " S5      S9/5      U 4S j5       rU 4S jrS rS rS rS rSHS jr\R                  R                  SSS/5      U 4S j5       rSHS jrSIS 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SJS 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U 4S# jrS$ rU 4S% jr U 4S& jr!\R                  RE                  S'SS(9U 4S) j5       r#S* r$\R                  RE                  S+SS(9U 4S, j5       r%\R                  RE                  S+SS(9U 4S- j5       r&\R                  R                  S.S\'/5      \R                  R                  S/S0S1/5      S2 5       5       r(U 4S3 jr)\R                  R                  S4S5S6/5      U 4S7 j5       r*S8 r+S9r,\-r.S: r/SKS; jr0S< r1    SLS= jr2S> r3U 4S? jr4U 4S@ jr5SA r6U 4SB jr7SC r8\R                  R                  SD/ SEQ5      SF 5       r9SGr:U =r;$ )MTestArrowArrayi  c                Z    [         R                  " U5      nU R                  X1X!S   5        g )Nr   )rc   Series_compare_other)selfrf   comparison_opsers       r-   test_compare_scalar"TestArrowArray.test_compare_scalar  s#    iioC}1g>r/   	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>      r/   r   rU   c                    U $ r   r   r   s    r-   r   r     r   r/   float32[pyarrow]float64r5   na_value)	r5   kindmapto_numpyobjecttmassert_numpy_array_equalnpnan)r   rk   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''9r/   c                  > UR                   R                  n[        R                  R	                  U5      (       a1  UR                  [        R                  R                  SU S3S95        O[        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%   8pd.Timestamp/pd.Timedelta repr different from numpy repr)r5   r3   r)   rV   ra   r+   r&   r'   r(   r]   tzr^   supertest_astype_strr   rf   r,   re   	__class__s       r-   r   TestArrowArray.test_astype_str!  s    ::++88h''!!!(+AB "  HH!!(++0CXX!!(++!!U " 
 	%r/   nullable_string_dtypezstring[python]string[pyarrow]r   )marksc                R  > UR                   R                  n[        R                  R	                  U5      (       a  UR
                  b$  [        R                  R                  U5      (       a,  UR                  [        R                  R                  SS95        [        TU ]1  X5        g )Nr   r   )r5   r3   r)   rV   r]   r   r^   r+   r&   r'   r(   r   test_astype_string)r   rf   r   r,   re   r   s        r-   r   !TestArrowArray.test_astype_string3  s~     ::++HH!!(++0CXX!!(++!!U " 
 	"4?r/   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   )r5   r3   r)   rV   r`   r[   r+   r&   r'   r(   r   test_from_dtype)r   rf   r,   re   r%   r   s        r-   r   TestArrowArray.test_from_dtypeF  s    ::++88h''288+>+>x+H+Hxx!!(++L?zJ!!! " 
 	%r/   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 NrU   )
ri   rj   	_pa_arrayr5   r   assert_extension_array_equal
isinstancer)   ChunkedArraycombine_chunksr   rf   r   s      r-   test_from_sequence_pa_array*TestArrowArray.test_from_sequence_pa_arrayU  s     d**4>>*L
''5&**BOO<<<<d**NN))+4:: + 
 	''5&**BOO<<<<r/   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-1rU   )r&   r$   rb   r    _from_sequence_of_stringsr)   month_day_nano_interval)r   r,   s     r-   *test_from_sequence_pa_array_notimplemented9TestArrowArray.test_from_sequence_pa_array_notimplementedb  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#   rU   )r5   r3   r)   rV   	is_time64equalsr   r+   r&   r'   r(   r   r^   r[   ArrowNotImplementedErrorr]   r   r.   r   caststringri   r   r   r   r   )r   rf   r,   re   pa_arrayr   s         r-   &test_from_sequence_of_strings_pa_array5TestArrowArray.test_from_sequence_of_strings_pa_arrayh  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
''5r/   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)
getattrr5   r3   r)   rV   is_temporal	bit_widthastyper   assert_series_equal)r   r   op_namer   r   pa_typeint_typer   s           r-   check_accumulateTestArrowArray.check_accumulate  s    &f5))))88((  B&++**X&C]]8,Fy)3::i0':&I
vUCr/   c                    UR                   R                  n[        R                  R	                  U5      (       dH  [        R                  R                  U5      (       d$  [        R                  R                  U5      (       a	  US;   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cumminF)r   r   r   r   r   T)
r5   r3   r)   rV   r`   ra   r[   rW   r   r^   )r   r   r   r   s       r-   _supports_accumulation%TestArrowArray._supports_accumulation  s     )))) HHw''xx!!'**xx""7++CC D  XX  ))99 :  XX!!'**("288+?+?+H+HI%r/   r   TFc                   > UR                   R                  nUn[        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 )Nr   znot slowz  not implemented for pyarrow < 9r   z not implemented for r%   r$   )r5   r3   rc   r   r   r   test_accumulate_seriesr   configoptionmarkexprr&   skipr'   r(   r+   r)   rV   rW   r[   rb   r   )r   rf   all_numeric_accumulationsr   r,   r   r   r   optr'   r   s             r-   r   %TestArrowArray.test_accumulate_series  sI   ****+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3r/   c                   UR                   nUR                  n[        R                  R	                  U5      (       a2  US;   a,  [        R                  R                  U5      (       a  US;   a  OPg[        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)sumvarskewkurtprod)r   F)	r   meanmedianr   stdsemr   r   r   )anyallT)r5   r3   r)   rV   r   r^   r`   ra   )r   r   r   r5   re   s        r-   _supports_reduction"TestArrowArray._supports_reduction  s    		 &&88))g :
 /
 xx##H--'W2DHHx((BHH,>,>x,H,H 

 

  HH  **HH((22>)
 r/   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   )
r5   r3   r)   rV   r~   rX   r   r   r   assert_almost_equal)r   r   r   r   re   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0r/   c                  > UR                   nUR                  n[        R                  R	                  [
        U S[        R                   SU 3S9nUS;   a3  UR                  (       d  UR                  S:X  a  UR                  U5        O;[        R                  R                  U5      (       a  US;   a  UR                  U5        [        TU ]9  XU5        g )N is not implemented in pyarrow= for r#   >   r   r   rK   >   r  r  r   r   )r5   r3   r&   r'   r(   	TypeErrorr)   __version___is_numericr   r+   rV   rW   r   test_reduce_series_numeric)	r   rf   all_numeric_reductionsr   r,   r5   re   
xfail_markr   s	           r-   r  )TestArrowArray.test_reduce_series_numeric  s    

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

 "%55s!2
+XX  **/E J
 0
 
+*4Pr/   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#   )r5   r3   r&   r'   r(   r  r)   r  rV   r`   ra   r+   r   test_reduce_series_boolean)	r   rf   all_boolean_reductionsr   r   r,   re   r  r   s	           r-   r  )TestArrowArray.test_reduce_series_boolean+  s     ::++[[&&)* +>>*%z; ' 

 88h''288+=+=h+G+G 
+w1$PVWWr/   c                    US;   a  UR                   nU$ UR                   R                  S:X  a  US;  a  UR                   nU$ Sn U$ US;   a  SnU$ SSSS.UR                   R                     nU$ )	N)maxminzdecimal128(7, 3)[pyarrow])r   r   r  float64[pyarrow])r   r   r  r   r   r   uint64[pyarrow])iuf)r5   namer   )r   arrr   r   	cmp_dtypes        r-   _get_expected_reduction_dtype,TestArrowArray._get_expected_reduction_dtype>  s    n$		I  YY^^::66II	  /	  @@*I 	 &&' iinn	I
 r/   c                   > UnUS:X  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   )r5   r  r&   r'   r(   r+   r   test_reduce_frame)r   rf   r  r   r,   r   r'   r   s          r-   r)   TestArrowArray.test_reduce_frameP  sU    (fzz%%{{((0F(G##D)w(vNNr/   typ)int64uint64r   c                d    [         R                  " SS/U S3S9R                  5       nUS:X  d   eg )Nr<   r@   	[pyarrow]rU         ?)rc   r   r   )r   r+  r   s      r-   test_median_not_approximate*TestArrowArray.test_median_not_approximateY  s4     Aq6C5	):;BBD}}r/   c                  > UR                   n[        U5      (       a  [        R                  " / SQU/ SQS.5      n[        R                  " S/5      n[
        R                  " SU 35      n[        R                  " [        US9   UR                  S5      R                  5         S S S 5        UR                  S5      R                  SS	9R                  n[        R                  " Xd5        g [        TU ]A  U5        g ! , (       d  f       N]= f)
N)r<   r<   r@   r@      r4  r<   r7   )r<   r<   r<   r<   r<   r<   r<   r<   rq   rr   rs   rs   z%agg function failed [how->sum,dtype->r   rq   T)numeric_only)r5   r   rc   	DataFrameIndexreescaper&   r$   r  groupbyr   columnsr   assert_index_equalr   test_in_numeric_groupby)r   rt   r5   dfr   msgr   r   s          r-   r>  &TestArrowArray.test_in_numeric_groupby_  s    !''5!!1*1B xxH))CE7KLCy4

3##% 5ZZ_((d(;CCF!!&3G+,=> 54s    C<<
D
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   )r3   r)   rV   r[   r+   r&   r'   r(   rb   r`   r$   r  construct_from_stringr#  r   #test_construct_from_string_own_name)r   r5   r,   re   r@  r   s        r-   rD  2TestArrowArray.test_construct_from_string_own_names  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#   )r3   r)   rV   r`   ri   is_dtyper#  r[   r+   r&   r'   r(   rb   r   test_is_dtype_from_namer   r5   r,   re   r   s       r-   rH  &TestArrowArray.test_is_dtype_from_name  s    &&88h''E{++EJJ77777xx""8,,##KK%%2!EhZP &  G+E2r/   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  ri   rC  )r   r5   r@  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   )r3   r)   rV   r\   r_   r]   r   ra   r[   r+   r&   r'   r(   r   test_get_common_dtyperI  s       r-   rP  $TestArrowArray.test_get_common_dtype  s    &&HHX&&xx))%%h//HKK4Kxx!!(++xx""8,,!!#* %= > "  	%e,r/   c                   > UR                   n[        R                  R                  U5      (       a  [	        U5      (       d   eg [
        TU ]  U5        g r   )r3   r)   rV   r`   r   r   test_is_not_string_type)r   r5   re   r   s      r-   rS  &TestArrowArray.test_is_not_string_type  sA    &&88h''"5))))G+E2r/   z6GH 45419: pyarrow.ChunkedArray does not support views.)r%   runc                $   > [         TU ]  U5        g r   )r   	test_viewr   rf   r   s     r-   rW  TestArrowArray.test_view  s     	$r/   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   rf   validr   s       r-   test_fillna_no_op_returns_copy-TestArrowArray.test_fillna_no_op_returns_copy  sm    YY[L!QU#!!!
''5J/!!!
''5r/   z5GH 45419: pyarrow.ChunkedArray does not support viewsc                $   > [         TU ]  U5        g r   )r   test_transposerX  s     r-   rc  TestArrowArray.test_transpose  s     	t$r/   c                $   > [         TU ]  U5        g r   )r   test_setitem_preserves_viewsrX  s     r-   rf  +TestArrowArray.test_setitem_preserves_views  s     	,T2r/   dtype_backendenginero   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_dtyperU   F)indexna_rep)r5   ri  rh  )r5   r3   r)   rV   r[   r+   r&   r'   r(   rb   r]   unit
ValueErrorra   rc   r7  r   strto_csvr   r   r	   r
   read_csvr   assert_frame_equal)
r   ri  rf   rh  r,   re   r?  
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/r/   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)r5   r3   r)   rV   rW   r~   r`   r+   r&   r'   r(   r   r   r   assert_produces_warningDeprecationWarningr   test_invertr   s       r-   r~  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#   )r5   r3   r)   rV   rZ   r+   r&   r'   r(   r*   r   	test_diff)r   rf   r  r,   re   r   s        r-   r  TestArrowArray.test_diff  sz    ::++88''11gl!!??$XJmG9NS "  	$(r/   c                    US S nUR                  5       nUR                  [        [        R	                  5       5      :X  d   eg )NrH   )value_countsr5   r   r)   r,  r   s      r-   'test_value_counts_returns_pyarrow_int646TestArrowArray.test_value_counts_returns_pyarrow_int64  s8    CRy""$||z"((*5555r/   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&r/   	rfloordivc                .    [         R                  " X5      $ r   )r   floor_divider  s     r-   r   1TestArrowArray.get_op_from_name.<locals>.<lambda>/  s     5r/   )stripr   get_op_from_name)r   r   short_opnamer  s       r-   r  TestArrowArray.get_op_from_name%  sC    }}S):%' O[(55""7++r/   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  rl  z	duration[]__pow__)ro  r<  ) r   r   rc   r7  ilocr5   r3   r   r)   rV   rX   r~   r^   r]   r\   r[   rd   _valuesri   	is_date64rq  r   r   r   r   r   	get_dtyper   r   r   ro  r<  )r   r   objotherpointwise_resultr   	was_frameexpected_dataoriginal_dtypeorig_pa_typepa_expectedrq  r
  	alt_dtypepd_expecteds                  r-   _cast_pointwise_result%TestArrowArray._cast_pointwise_result3  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r/   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)   rV   r^   r   )r   opnamere   s      r-   _is_temporal_supported%TestArrowArray._is_temporal_supported  sn     11 WX 100/ $$X.
/ 00 /$$X.	
r/   c                f   US;   a  U R                   $ [        R                  " U5      nUR                  nU R	                  X5      nUS;   a  [
        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      (       dZ  [        R                  R                  U5      (       d6  [        R                  R                  U5      (       d  [        R                  nU$ S nU$ )N)
__divmod____rdivmod__>   __mod____rmod__r  )
divmod_excr   r  r3   r  rb   r)   rV   r`   ra   rX   r~   r[   r   )r   r   r  r  r5   re   arrow_temporal_supportedexcs           r-   _get_expected_exception&TestArrowArray._get_expected_exception  s    33??"S! &&#'#>#>w#Q  
 
 &C$ 
# &C  
 //HHx((BHH,>,>x,H,HC 
 HH  **xx""8,,xx""8,,
 --C 
 C
r/   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)   rV   rX   r~   r[   r&   r'   r(   r_   r^   r  r*   )r   r  re   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
 r/   c                  > UR                   R                  nUS:X  a;  [        R                  R	                  U5      (       a  [
        R                  " S5        OUS;   ay  [        R                  R	                  U5      (       d$  [        R                  R                  U5      (       a1  UR                  [
        R                  R                  [        SS95        U R                  X$5      nUb  UR                  U5        [        TU ]9  X5        g Nr  z%Skip testing Python string formatting__rmul____mul__'Can only string multiply by an integer.r#   )r5   r3   r)   rV   ra   r&   r   r`   r+   r'   r(   r  r  r   test_arith_series_with_scalarr   rf   all_arithmetic_operatorsr,   re   r'   r   s         r-   r  ,TestArrowArray.test_arith_series_with_scalar  s    ::++#z1bhh6H6H6R6RKK?@%)@@HHx((BHH,>,>x,H,H!!$-V "  ++,DO%-dMr/   c                b  > UR                   R                  nUS:X  a_  [        R                  R	                  U5      (       d$  [        R                  R                  U5      (       a  [        R                  " S5        OUS;   ay  [        R                  R                  U5      (       d$  [        R                  R	                  U5      (       a1  UR                  [        R                  R                  [        SS95        U R                  X$5      nUb  UR                  U5        [        TU ]9  X5        g r  )r5   r3   r)   rV   r`   ra   r&   r   r+   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?@%)@@HHx((BHH,>,>x,H,H!!$-V "  ++,DO%,TLr/   c                8   UR                   R                  nUS;   ac  [        R                  R	                  U5      (       a?  UR                  [        R                  R                  [        R                  SU 3S95        OUS;   ay  [        R                  R                  U5      (       d$  [        R                  R                  U5      (       a1  UR                  [        R                  R                  [        S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  r  r   rU   )r5   r3   r)   rV   rZ   r+   r&   r'   r(   r*   ra   r`   r  r  rc   r   rd   r  lencheck_opname)	r   rf   r  r,   re   r'   r   r   r  s	            r-   test_arith_series_with_array+TestArrowArray.test_arith_series_with_array$  sK   ::++# (
 
 hh**844!!??88@zC "  &)@@HHx((BHH,>,>x,H,H!!$-V "  ++,DO%*iio 		"((CHHQK=3s8#;4::NO#.r/   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#   )r5   r3   r   r+   r&   r'   r(   r)   r*   r   $test_add_series_with_extension_arrayr   s       r-   r  3TestArrowArray.test_add_series_with_extension_arrayI  sf    ::++??6""!!??4XJ? "  	4T:r/   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$   rb   r   )r   rf   r   s      r-   test_invalid_other_comp&TestArrowArray.test_invalid_other_compU  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   NrU   r/  )FFN)TTN)rc   r   loweroperatorr  r  r  r   r)   bool_r   r   )	r   r  r   rf   
ser_maskedser_par   expr   s	            r-   test_comp_masked_numpy%TestArrowArray.test_comp_masked_numpy\  s     YYt8
4*<*<*>)?y'IJv2X[[(++x{{CC&C$C99S
288:(>?
v0r/   r   )r   	pd.Seriesr   rs  returnbool)r   r  r   rs  r   r  )r   rs  r   r  )r   rs  )r   rs  r  ztype[Exception] | None)<__name__
__module____qualname____firstlineno__r   r&   r'   parametrizer   r   r4   td
skip_if_nor   r   r   r   r   r   r   r   r  r  r  r  r&  r)  r1  r>  rD  rH  rM  rP  rS  r(   rW  r`  rc  rf  r   rx  r~  r  r  _combine_le_expected_dtyperb   r  r  r  r  r  r  r  r  r  r  r  r  __static_attributes____classcell__r   s   @r-   r   r     s#   ? [[[4*:;: <:&$ [[LL*"--	2JK	

@
@&=68D", [[Xe}5"4 6"4H*X1* [[Xe}5Q 6Q2 [[Xe}5X 6X$$ [[Xe}5O 6O [[U$BC D
?(;(3>
-&3 [[GU    
6 [[FE  %% [[FE  33 [[_y*.EF[[XX7!0 8 G!0F&* [[YB0) 1)6 "1$J,dL
""	"H,\N(M,#/J
;* [[^-LM1 N1r/   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)TestLogicalOpsik  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 )NTr4  Fr  rU   TFN)	TTTTFNTNNrc   r   r   r   r   rJ   rK   r   r   s        r-   test_kleene_orTestLogicalOps.test_kleene_orn  s    IItfqjE7Q;.$!;CUVII)A-5GH99C$
 	v0
v0 	IItfqjE7Q;.$!;CUV	
 	ryy,q08JK	
r/   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  rU   r  r   r  r   rJ   r   s        r-   test_kleene_or_scalar$TestLogicalOps.test_kleene_or_scalar  s     II)1CD99X-?@
v0
v0 	ryy,4FG	
r/   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 )NTr4  Fr  rU   r  )	TFNFFFNFNr  r	  s        r-   test_kleene_andTestLogicalOps.test_kleene_and  s    IItfqjE7Q;.$!;CUVII)A-5GH99G$
 	v0
v0 	IItfqjE7Q;.$!;CUV	
 	ryy,q08JK	
r/   )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  r/   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 )NTr4  Fr  rU   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	
r/   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	
r/   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  rU   r  F)rc   r   r   r   r)   r  r   r   )r   opr  rf   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0r/   r   )r  r  r  r  __doc__r
  r&   r'   r  rc   NAr   r  r  r  r  r  r  r%  r  r   r/   r-   r  r  k  s   ;
, [[%&UU&'%&XXd^/0'(XXe_12	





, [[&'UU'(&')*XXd^01XXe_34	





, [[%&UU&'&'XXd^01XXe_12	
	
	
 [[t	
11r/   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<   Nr4  r7   rU   )Nr4  rI   r7   )NNrv   r7   )NNr<   r7   )NN   r   r   )	r   rc   r   r   r   r^  r   maskisnull)r   r5   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,r/   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$   rb   r   rC  r   r/   r-   Ftest_arrowdtype_construct_from_string_type_with_unsupported_parametersr1  %  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   rC  r)   	timestamp)r5   r   s     r-   5test_arrowdtype_construct_from_string_supports_dt64tzr5  -  s4    ,,-LME",,sE23Hr/   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   r4  rU   )r&   r$   rb   rc   r   range)invalidr@  s     r-   ;test_arrowdtype_construct_from_string_type_only_one_pyarrowr9  4  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defgrU   r@   r=   r   abcabc rc   r   r   r)   r   r   r   )binaryrepeatr   r   reflected_results        r-    test_arrow_string_multiplicationrC  ?  s    YYvj.EFFYY2w&67F_Fyy(Bz"))+/FGH6,64r/   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<  rU   r@   r=  defgdefgr?  )r@  r   r   rB  s       r-   .test_arrow_string_multiplication_scalar_repeatrF  J  sq    YYvj.EFFaZFyy(J/z"))+7NOH6,6z+6r/   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   )qrG  z&quantile not supported by pyarrow for r#   )r  rI  zM8[z, r  r;   rl  F)warnr   ro  r  ) r5   r3   takerc   r   r)   rV   r`   ra   rW   r&   r$   r   rL  r~   rX   r[   r   r   ri   r+   r'   r(   r]   r   rq  r   to_pydatetimedtfloorr   r   )rf   rG  rL  r,   re   r   r@  r   pd_dtypeser_npr   s              r-   test_quantilerX  S  s	   
 zz''H99YD
))D/C 	8$$88h''88x(( O]]266cBLL8LA C 	H%%88))88x((			dnn11	2	2KK22?zJ  	
 99YD
))D/C\\H\BF	xxX&&=@S+S ;;X]]O2hkk]!<HX]]O1-HH%??X?Ks?}}$#11u1=%%%
 	 }}$#;;,,T2""6??4::+FG3a    99TYY1v.sCjAHH))xx##H--xx""8,,'9:H]]#56F
v0q CBs   O66
Pztake_idx, exp_idx)r   r   r@   r@   r7   r7   r7   )r   r   r   r@   r7   r7   
multi_modesingle_mode)r1   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)rR  rc   r   moder   r   )rt   take_idxexp_idxrf   r   r   r   s          r-   test_mode_dropna_truera    sY     !!(+D
))D/CXXTX"Fyy*//89H6,r/   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   rU   Fr\  )rc   r   r5   r^  r   r   )rf   	more_nansr   r   s       r-   test_mode_dropna_false_mode_nard    s    		4tAw/tzzBI^^5^)Fyy$tzz2H6,yy$q'4

;H]]%](F6,r/   zarrow_dtype, expected_type   f1f2c                :    [        U 5      R                  U:X  d   eg r   )r   ri   )arrow_dtypeexpected_types     r-   test_arrow_dtype_typerk    s    " k"''=888r/   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)   rd   r   rc   corecommonis_bool_indexerr   r7  r  r   asarrayr   r   )rf   r  r   r   s       r-   test_is_bool_dtyperr    s    rxx(;<=D77>>))$////
		%D	"#AWFD!"H6,r/   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   )r5   r3   r)   rV   rX   r~   r[   r   rf   r   s     r-   test_is_numeric_dtyperu    su    jj&&G
W%%88w''88w''%%%%#D)))))r/   c                    U R                   R                  n[        R                  R	                  U5      (       a  [        U 5      (       d   eg [        U 5      (       a   eg r   )r5   r3   r)   rV   r~   r   rt  s     r-   test_is_integer_dtyperw    sK    jj&&G	xx7##%%%%#D)))))r/   c                    U R                   R                  n[        R                  R	                  U5      (       a  [        U 5      (       d   eg [        U 5      (       a   eg r   )r5   r3   r)   rV   rY   r   rt  s     r-   test_is_signed_integer_dtypery    sK    jj&&G	xx!!'**&t,,,,*400000r/   c                    U R                   R                  n[        R                  R	                  U5      (       a  [        U 5      (       d   eg [        U 5      (       a   eg r   )r5   r3   r)   rV   rZ   r   rt  s     r-   test_is_unsigned_integer_dtyper{    sK    jj&&G	xx##G,,(....,T22222r/   c                    U R                   R                  n[        R                  R	                  U5      (       a  [        U 5      (       d   eg [        U 5      (       a   eg r   )r5   r3   r)   rV   rX   r   rt  s     r-   test_is_float_dtyper}    sK    jj&&G	xxG$$d####!$'''''r/   c                   [         R                  " U 5      nUR                  S5      n[        R                  " U5      n[        R                  " U5      n[        U5      [        U5      :  d   e[        R                  " U5      n[        R                  " XQ5        [        R                  " U5      n[        R                  " Xb5        g )Nr@   )	rc   r   headpickledumpsr  loadsr   r   )rf   r   expected_slicedfull_pickledsliced_pickledr   result_sliceds          r-   test_pickle_roundtripr    s    yyHmmA&O<<)L\\/2N|s>2222\\,'F6,LL0M=:r/   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_pandasrd   r   r5   r   r   r   r   )rf   pd_arrayr   s      r-   test_astype_from_non_pyarrowr    sh    ~~'')//H__TZZ(F(..*5555fllJ////##F1r/   c                     [         R                  " S/5      n U R                  S5      n[         R                  " S/SS9n[        R                  " X5        g )N1.0r  r9   rU   rc   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,r/   c                     [         R                  " SS/0SS9n U R                  SSS9n[        R                  " X5        g )Ncoli@fr   rU   float[pyarrow]r   )errors)rc   r7  r   r   rv  )r   r   s     r-   test_astype_errors_ignorer  '  s;    ||UXJ/7GHH__-h_?F&+r/   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   ri   r)   rV   r^   r]   r&   r   r\   r   rd   list_hasnar   r5   r   r   rc   r(  r]  r   r   )rf   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*"$%%1r/   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   rU   r   )	rc   rd   r   r   r   r   floatr   r   )rf   r$  r   r   s       r-   test_to_numpy_int_with_nar  A  sb    t9D
((4/
0C\\^FxxBFF$HfQi''''1r/   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]rU   r   r   r@   rc   rd   r(  r   r   r   r   )na_valr  r$  r   r   s        r-   test_to_numpy_null_arrayr  K  sV     ((BEE255>
9C\\	F\;Fxx	3H1r/   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  rU   r@   r   r  r$  r   r   s      r-   !test_to_numpy_null_array_no_dtyper  T  sV    
((BEE255>
9C\\\%Fxx!84H1r/   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  rU   F)r   r9   r   r:   )	rc   rd   r(  r   r   r  r   r   float32r  s      r-   test_to_numpy_without_dtyper  \  s    
((D"%%=(:
;C\\5\)FxxuRXX6H1
((C<'9
:C\\3\'Fxxc
"**5H1r/   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   rU   r>   )copyr    rj   r  r5   r   r   tolist)rf   origr   r   s       r-   test_setitem_null_slicer  i  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5r/   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   ri   r)   rV   r`   ra   r  r~   rX   rW   r*   r&   r$   )rf   r   
fill_valueerrr@  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ri   types_mapperrU   )r)   rd   rc   	Timestampdate32r  r   date64getr   r   r   )
date_arrayr   r   s      r-   &test_from_arrow_respecting_given_dtyper    s    	l	#R\\,%?@ryy{  J !!iik:biik#:;?? " F yy	l	#R\\,%?@%H 6,r/   c                 ^   [         R                  SS/[         R                  5       S9n [        R                  " [         R
                  SS9   U R                  [         R                  5       [        [         R                  5       5      0R                  S9  S S S 5        g ! , (       d  f       g = f)Nr0        @r  zFloat value 1.5 was truncatedr   r  )
r)   rd   r   r&   r$   r*   r  r   r,  r  )rd   s    r-   -test_from_arrow_respecting_given_dtype_unsafer    sh    HHc3ZbjjlH3E	r.M	NbjjlJrxxz4J%K%O%OP 
O	N	Ns   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@rU   r<   g333333?g@g^@gp=
cL@r>   g      ^@g      N@)rc   r   r(  roundr   r   r5   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,r/   c                    U u  p#nU R                  / SQ5      n[        R                  US'   U(       a  [        R                  " U5      nSn[        R
                  " [        US9   UR                  U5        S S S 5        g ! , (       d  f       g = f)N)r@   r   r<   r>   zOsearchsorted requires array to be sorted, which is impossible with NAs present.r   )rR  rc   r(  r   r&   r$   rr  searchsorted)rx   	as_seriesrK   ro   rJ   r$  r@  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  rU   r<   r@   rJ   rK   rJ   rK   )by)rc   r7  r   r   r)   
dictionaryint32r   r  sort_valuesr   rv  )r?  r   r   s      r-   test_sort_values_dictionaryr    s~    	c
*R]]288:ryy{-S"T Q		

B wwyH^^Sz^*F&+r/   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;  rU   r<   )
rc   r   r   r)   r   rs  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,r/   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;  rU   z	count notr   r<   flags)
rc   r   r   r)   r   r&   r$   rb   rs  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 )NrJ   rU   r4  r   )widthsidefillchar)
rc   r   r   r)   r   rs  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,r/   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)NrJ   rU   zInvalid side: foor   r4  r  r   )
rc   r   r   r)   r   r&   r$   rr  rs  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;  rU   )casenaregex)
rc   r   r   r)   r   rs  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,r/   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;  rU   zcontains notr   rJ   r<   r  )
rc   r   r   r)   r   r&   r$   rb   rs  r  r  s    r-   #test_str_contains_flags_unsupportedr  	  sT    
))UDMBIIK)@
AC	*.	AA& 
B	A	Ar  zside, pat, na, exp
startswith)TNFrK   r  endswith)FTFbc)rJ   eg)TNT)rJ   ro   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efgrU   )r  
rc   r   r   r)   r   r   rs  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,r/   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 )NrU   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,r/   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;  rU   rK   r   T)r  r  r  zreplace is not supportedr   r   )
rc   r   r   r)   r   r&   r$   rb   rs  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, exprJ   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abacrU   )nr  	rc   r   r   r)   r   rs  r  r   r   )r  r  r  r  r  r   r   r   s           r-   test_str_replacer	  9  sb     ))VTN*RYY[*A
BCWW__S!_9FyyJryy{$;<H6,r/   c                 4   [         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        g )	Nr;  aaaaaarU   rJ   r>  Tr  r  )r   actualr   s      r-   test_str_replace_negative_nr  H  sg    
))UH%Z		-D
ECWW__S"b$/Fyy$:biik+BCH8,r/   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;  rU   zrepeat is notr   r<   r@   )
rc   r   r   r)   r   r&   r$   rb   rs  rA  r  s    r-   test_str_repeat_unsupportedr  P  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;  rU   r@   r=  )	rc   r   r   r)   r   rs  rA  r   r   r  s      r-   test_str_repeatr  V  sa    
))UDMBIIK)@
ACWW^^AFyy(D)BIIK1HIH6,r/   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;  rU   r  r  
rc   r   r   r)   r   rs  r   r  r   r   r  r  r  r  r   r   r   s          r-   test_str_matchr  ]  sb     ))UDMBIIK)@
ACWW]]3b]1FyyJrxxz$:;H6,r/   )TTFNAbc)FFFNabc$TFFNzabc\$FTFNzAbc$zAbc\$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$abcNrU   r  r  r  s          r-   test_str_fullmatchr  o  s_    " ))1BIIK9P
QCWW]]3b]1FyyJrxxz$:;H6,r/   zsub, start, end, exp, exp_typr4  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;  rU   )startend)	rc   r   r   r)   r   rs  findr   r   )subr  r   r  exp_typr   r   r   s           r-   test_str_findr$    s\    
 ))UDMBIIK)@
ACWW\\#\4FyyJw$78H6,r/   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;  rU   rK   ir4  )r"  r  r   r<   )
rc   r   r   r)   r   rs  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,r/   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;  rU   zfind not implementedr   r  r<   )r  )
rc   r   r   r)   r   r&   r$   rb   rs  r!  r  s    r-   test_str_find_notimplementedr(    sR    
))UDMBIIK)@
AC	*2H	IT# 
J	I	Ir  zi, exp)rK   r  N)ro   r  Nr@   )ro   NNr  )rJ   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;  deNrU   )	rc   r   r   r)   r   rs  r  r   r   )r   r  r   r   r   s        r-   test_str_getr+    sZ     ))'z"))+/F
GCWW[[^FyyJryy{$;<H6,r/   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=3NrU   )rc   r   r    r)   rd   r  rs  joinr   r   r   r   r  s      r-   test_str_joinr1    sl    
 ))'$u+tE{D1Q(RS
TCWW\\#Fyy1BIIK9PQH6,r/   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/  rU   )rc   r   r    r)   rd   rs  r0  r   r   r   r   r  s      r-   test_str_join_string_typer3    s\    
))'1E(FG
HCWW\\#Fyy1BIIK9PQH6,r/   zstart, stop, step, expc                ,   [         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abcdrU   )	rc   r   r   r)   r   rs  slicer   r   )r  stopstepr  r   r   r   s          r-   test_str_slicer:    s`     ))VTN*RYY[*A
BCWW]]5-FyyJryy{$;<H6,r/   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 r5  )	rc   r   r   r)   r   rs  slice_replacer   r   )r  r8  r  r  r   r   r   s          r-   test_str_slice_replacer@    sb     ))VTN*RYY[*A
BCWW""55FyyJryy{$;<H6,r/   zvalue, method, exp)a1cisalnumT)z!|,rB  F)aaaisalphaT)z!!!rD  F)u   ٠	isdecimalT)z~!rE  F)rL   isdigitT)~rF  F)rC  islowerT)aaArH  F)r-  	isnumericT)11IrJ  F) isspaceT)r>  rM  F)zThe ThatistitleT)zthe ThatrN  F)AAAisupperT)AAcrP  Fc                .   [         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  )valuer\  r  r   r   r   s         r-   test_str_is_functionsrT    sc    0 ))UDMBIIK)@
ACSWWf%'Fyy#tJrxxz,BCH6,r/   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 dEFrU   	rc   r   r   r)   r   r   rs  r   r   )r\  r  r   r   r   s        r-   test_str_transform_functionsr\    sd     ))Y%Z		-D
ECSWWf%'Fyy#tJryy{,CDH6,r/   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 )Nr6  rU   r7   )
rc   r   r   r)   r   rs  r  r  r   r   r  s      r-   test_str_lenr^    s]    
))VTN*RYY[*A
BCWW[[]Fyy!T*RXXZ*@AH6,r/   zmethod, to_strip, val)r  Nz abc )r  r   xabcx)lstripNz abc)r`  r   xabc)rstripNzabc )rb  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 )NrU   )to_stripr;  r[  )r\  re  valr   r   r   s         r-   test_str_striprg    se     ))S$Kz"))+'>
?CSWWf%x8Fyy%j.EFH6,r/   rf  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 NrU   r-  r;  )	rc   r   r   r)   r   rs  removesuffixr   r   rf  r   r   r   s       r-   test_str_removesuffixrm  )  b    
))S$Kz"))+'>
?CWW!!%(Fyy%j.EFH6,r/   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 rj  )	rc   r   r   r)   r   rs  removeprefixr   r   rl  s       r-   test_str_removeprefixrr  1  rn  r/   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;  rU   )
rc   r   r   r)   r   rs  encoder@  r   r   )r  encodingr  r   r   r   s         r-   test_str_encoderz  9  sb     ))UDMBIIK)@
ACWW^^H-Fyy#tJryy{,CDH6,r/   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  NrU   rK   r  )
rc   r   r   r)   r   rs  findalllist_r   r   )r  r   r   r   s       r-   test_str_findallr~  H  so    
))(
299;0G
HCWW__S_.Fyy3%T**RXXbiik=R2STH6,r/   r\  ro  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abcbarU   ro   r@   zsubstring not foundr   r  )rc   r   r   r)   r   r   rs  r,  r   r   r&   r$   rr  )r\  r  r   r   r   r   s         r-   test_str_r_indexr  P  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 rw  )
rc   r   r   r)   r   rs  	normalizer  r   r   )r  r   r   r   s       r-   test_str_normalizer  b  sN    
))UDMBIIK)@
ACWWt$FxxzH6,r/   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  NrU   ro   )r@   r>   N)
rc   r   r   r)   r   rs  rfindr,  r   r   )r  r   r   r   r   s        r-   test_str_rfindr  j  s]     ))**RYY[2I
JCWW]]3+Fyyj.DEH6,r/   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  rU   a   rK   bbcbb)	rc   r   r   r)   r   rs  	translater   r   r  s      r-   test_str_translater  x  sf    
))WdO:biik+B
CCWWCy)Fyy'4
299;0GHH6,r/   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  rU   r4  zabc
ba)	rc   r   r   r)   r   rs  wrapr   r   r  s      r-   test_str_wrapr    s`    
))WdO:biik+B
CCWW\\!_Fyy)T**RYY[2IJH6,r/   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|crU   )TTFr  rm  )rJ   rK   ro   )r5   r<  )rc   r   r   r)   r   rs  get_dummiesr7  r  r   rv  r  s      r-   test_get_dummiesr    sk    
))(
299;0G
HCWW  "F||	35HI$H
 &+r/   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  rU   rK   )rJ   rK   cbar  Fexpand)r;  rK   rJ   )rc   r   r   r)   r   rs  	partitionr7  r   rv  r    rd   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,r/   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
brU   )a1cbcrK   )rc   r   r   r)   r   r   rs  r    rd   r   r   r\  r   r   r   s       r-   test_str_split_pat_noner    sh     ))[$'z"))+/F
GCSWWf%'Fyy,RXX7I46P-QRSH6,r/   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a2cbcbNrU   ro   r  rK   rK   a2rK   rK   r<   r  r  bcbr  z[1-2]T)r  rJ   cbcb)r  r  )rJ   rJ   N)r  r  Nr   r<   rA   r  rJ   r  Nr  NN)rc   r   r   r)   r   rs  r  r    rd   r   r   r7  rv  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 &+r/   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  rU   ro   r  r  r<   r  a1cbrK   a2cbT)r  r  )r  r  N)rK   rK   Nr  rA   r  r  r  )rc   r   r   r)   r   rs  r  r    rd   r   r   r7  rv  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 &+r/   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c3rU   z*pat=.* must contain a symbolic group name.r   z[ab](\d))
rc   r   r   r)   r   r&   r$   rr  rs  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  rU   z(?P<letter>[ab])(?P<digit>\d)r  )rJ   rK   NrA   rL   N)letterdigit)rc   r   r   r)   r   rs  r  r7  r    rd   r   rv  )r  r   r   r   s       r-   test_str_extractr  	  s|    
))&j.E
FCWW__=f_MF||)"((3C*DE(2B)CD	
H &+r/   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  rU   z[ab](?P<digit>\d)Tr  r  r  Fr#  )rc   r   r   r)   r   rs  r  r7  r    rd   r   rv  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,r/   rq  )rm  rl  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NaTrU     r  )r)   durationr    r   rd   r   r   )rq  stringsr   r   r   s        r-   #test_duration_from_strings_with_natr  	  sT     uoGkk$G ::7RF"288T4Lw8#GHH##F5r/   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   )r5   r3   r)   rV   r   r&   r$   AttributeErrorrc   r   rT  r   s     r-   test_unsupported_dtr  '	  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microsecondrI   month
nanosecondr*  quartersecondrv   r   r   c                   [         R                  " [         R                  " SSSSSSSSS	9S /[        [        R                  S
5      5      S9n[        UR                  U 5      nS n[        U[        5      (       a  [        R                  5       nO*[        U[        5      (       a  [        R                  S
5      n[         R                  " [        [        R                  US /US95      5      n[        R                   " X15        g )Nr  r<   r@   r4  r7   rv   rI   r*  )r  r  r  r  r  r  r  r  rm  rU   r  )rc   r   r  r   r)   r4  r   rT  r   r   r  r   time64r    rd   r   r   )propr   r   r   exp_types        r-   test_dt_propertiesr  0	  s    . ))LL	 	
 d+,C  SVVT"FH(D!!99;	Hd	#	#99T?yy,RXXx6FXX-VWXH6,r/   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  rE   r@   r4  r  r  r  r  r<   rF   rl  rU   r  FFTN)rc   r   r   r   r)   r4  rT  is_month_startr  r   r   is_month_endr  s      r-   test_dt_is_month_start_endr  a	  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,r/   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  rE   rF   r4  r  r<   rl  rU   r  r  )rc   r   r   r   r)   r4  rT  is_year_startr  r   r   is_year_endr  s      r-   test_dt_is_year_start_endr  t	  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,r/   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        r4  r  r<   rF   rl  rU   r  r  )rc   r   r   r   r)   r4  rT  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,r/   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  r4  r  r  r7   r<   r@   rl  rU   )rF   r     N)rc   r   r   r   r)   r4  r   rT  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,r/   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  r4  r  r  r  r  r7   r<   r  r@      ;   )r  r  r  r  r  r  rl  rU   )
rc   r   r   r   r)   r4  rT  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,r/   rl  rm  c           
        [         R                  " [        SSSSS9S /[        [        R                  U 5      5      S9nUR                  R                  U :X  d   eUR                  R                  n[         R                  " [        [        R                  [        SS5      S /[        R                  U 5      S95      5      n[        R                  " X#5        g )	Nr  r<   r@   r4  r  rU   r   r  )rc   r   r   r   r)   r4  rT  rq  r   r    rd   r  r   r   rq  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,r/   r   )Nr3  
US/Pacificc           
         [         R                  " [        SSSSS9S /[        [        R                  SU S95      S9nUR                  R                  nU[        R                  " U 5      :X  d   eg )	Nr  r<   r@   r4  r  rm  r   rU   )
rc   r   r   r   r)   r4  rT  r   r   maybe_get_tz)r   r   r   s      r-   
test_dt_tzr  	  s`    
))	t1!!	4d;dr23C VVYYFY++B////r/   c            	        [         R                  " [        SSSSS9S /[        [        R                  S5      5      S9n U R                  R                  5       n[         R                  " / SQ/ S	Q// S
QSS9n[        R                  " X5        g )Nr  r<   r@   r4  r  rm  rU   )r  r<   r<   rN  )r  weekr  r   r<  r5   )rc   r   r   r   r)   r4  rT  isocalendarr7  r   rv  r  s      r-   test_dt_isocalendarr
  	  st    
))	t1!!	4d;d+,C VV!F||	y!'H
 &+r/   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  rU   )r.   rc   r   r   r   r)   r4  r   rT  r   r   r   )r\  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,r/   c           	     Z   [        U 5        [        R                  " [        SSSSS9S /[	        [
        R                  S5      5      S9nUR                  R                  S5      n[        R                  " S	S /[	        [
        R                  5       5      S9n[        R                  " X#5        g )
Nr  r<   r@   r4  r  rm  rU   z%Y-%m-%dT%H:%M:%Sz2023-01-02T03:00:00.000000000)r.   rc   r   r   r   r)   r4  rT  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,r/   )ceilrU  r  c           	        [         R                  " [        SSSSS9S /[        [        R                  S5      5      S9n[        R                  " [        SS	9   [        UR                  U 5      " S
SS9  S S S 5        [        R                  " [        SS	9   [        UR                  U 5      " S
SS9  S S S 5        g ! , (       d  f       NL= f! , (       d  f       g = f)Nr  r<   r@   r4  r  rm  rU   zambiguous is not supported.r   1hr  	ambiguousznonexistent is not supported.nonexistent)rc   r   r   r   r)   r4  r&   r$   rb   r   rT  r\  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<   r@   r4  r  rm  rU   zfreq='1B' is not supportedr   1Bz$Must specify a valid frequency: None)rc   r   r   r   r)   r4  r&   r$   rr  r   rT  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  rl  rm  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  rm  rA   )rc   r   r   r   r)   r4  r   rT  r   r   r   )r   r\  r   re   r   r   s         r-   test_dt_ceil_year_floorr$  
  s     ))	t1!	,d3C ",,t,-Hsvvv&4&z299(CHSZZ),,f5$jAF6,r/   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)NrC   r<   r  rm  rU   CThe behavior of ArrowTemporalProperties.to_pydatetime is deprecatedr   c              3  D   #    U  H  n[        U5      [        L v   M     g 7fr   )ri   r   .0ress     r-   	<genexpr>(test_dt_to_pydatetime.<locals>.<genexpr>3
  s     7tCyH$    z>The behavior of DatetimeProperties.to_pydatetime is deprecateddatetime64[ns])r   rc   r   r   r)   r4  r   r|  FutureWarningrT  rS  r   rd   r   r   r  r   )rf   r   r@  r   r   s        r-   test_dt_to_pydatetimer0  )
  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)	NrC   rE   rF   r   rU   r&  r   z#to_pydatetime cannot be called with)rc   r   r   r   r   r)   r   r|  r/  r&   r$   rr  rT  rS  )r1  r   r@  s      r-    test_dt_to_pydatetime_date_errorr4  ;
  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<   r@   r4  r  rm  rU   z ambiguous='NaT' is not supportedr   r3  r  r  z"nonexistent='NaT' is not supportedr  )rc   r   r   r   r)   r4  r&   r$   rb   rT  tz_localizer  s    r-   *test_dt_tz_localize_unsupported_tz_optionsr7  H
  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<   r@   r4  r  rm  r  r  rU   )
rc   r   r   r   r)   r4  rT  r6  r   r   r  s      r-   test_dt_tz_localize_noner9  T
  s    
))	t1!!	4d;d|<=C VV%Fyy	t1!!	4d;d+,H 6,r/   c           	        [        U5        [        R                  " [        SSSSS9S /[	        [
        R                  U 5      5      S9nUR                  R                  S5      n[
        R                  [        SSSSS9S /[
        R                  U 5      S9n[
        R                  R                  US5      n[        R                  " [        U5      5      n[        R                  " X55        g )	Nr  r<   r@   r4  r  rU   r  r  r.   rc   r   r   r   r)   r4  rT  r6  rd   computeassume_timezoner    r   r   )rq  r,   r   r   exp_datar   s         r-   test_dt_tz_localizer?  a
  s    w'
))	t1!!	4d;d+,C VV-Fxx	t1!!	4d;",,tBT  H zz))(LAHyy,X67H6,r/   znonexistent, exp_dateshift_forwardrE   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  r4  rE   r@   r  )r  r  r  r  r  rm  rU   r  r  r  r;  )r  exp_dater,   r   r   r>  r   s          r-   test_dt_tz_localize_nonexistentrD  r
  s     w'
))	t1"1R	@$Gd+,C VV+FFxx4(r||D/AxBHzz))(LAHyy,X67H6,r/   c            	        [         R                  " [        SSSSS9S /[        [        R                  S5      5      S9n [        R                  " [        SS	9   U R                  R                  S
5        S S S 5        g ! , (       d  f       g = f)Nr  r<   r@   r4  r  rm  rU   z"Cannot convert tz-naive timestampsr   r3  )rc   r   r   r   r)   r4  r&   r$   r  rT  
tz_convertr  s    r-    test_dt_tz_convert_not_tz_raisesrG  
  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<   r@   r4  r  rm  r  rU   
rc   r   r   r   r)   r4  rT  rF  r   r   r  s      r-   test_dt_tz_convert_nonerJ  
  s    
))	t1!!	4d;dL9:C VVt$Fyy	t1!!	4d;d+,H 6,r/   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<   r@   r4  r  r  rU   z
US/EasternrI  r  s       r-   test_dt_tz_convertrL  
  s    
))	t1!!	4d;dL9:C VV|,Fyy	t1!!	4d;dL9:H 6,r/   r5   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  rU   rm  r  )rc   r   rT  as_unitr   r  r   r   r  s       r-   test_as_unitrO  
  sQ     ))T4L
.CVV^^D!Fzz%--d34H6,r/   dayssecondsmicrosecondsnanosecondsc           	     v   [         R                  " [         R                  " SSSSS9S /[        [        R                  S5      5      S9n[        UR                  U 5      n[         R                  " [        [        R                  US /[        R                  5       S95      5      n[        R                  " X15        g )	Nr<   r@   r4  r7   rP  rQ  rR  rS  rm  rU   r  )rc   r   	Timedeltar   r)   r  r   rT  r    rd   r  r   r   )r  r   r   r   s       r-   test_dt_timedelta_propertiesrW  
  s     ))LL	 	
 T*+C SVVT"FyyBHHh%5BHHJHGHH 6,r/   c            	     ~   [         R                  " [         R                  " SSSSS9S /[        [        R                  S5      5      S9n U R                  R                  5       n[         R                  " [        [        R                  SS /[        R                  5       S	95      5      n[        R                  " X5        g )
Nr<   r@   r4  r7   rU  rm  rU   gN%  @r  )rc   r   rV  r   r)   r  rT  total_secondsr    rd   r   r   r   r  s      r-   test_dt_timedelta_total_secondsrZ  
  s    
))LL	 	
 T*+C VV!!#FyyBHHlD%9

HMNH 6,r/   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<   r@   r4  r7   rm  rU   c              3  D   #    U  H  n[        U5      [        L v   M     g 7fr   )ri   r   r(  s     r-   r+  )test_dt_to_pytimedelta.<locals>.<genexpr>
  s     8#tCyI%r-  timedelta64[ns])r   rc   r   r   r)   r  rT  to_pytimedeltar   rd   r   r   r   r  r   rf   r   r   r   s       r-   test_dt_to_pytimedeltara  
  s    aA	!Q 23D
))D
2;;t+< =
>CVV""$FxxF+H1888888zz+,//>>@H1r/   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<   r@   r4  r7   rU  rm  rU   )r<   r   r   r@   r   r4  r7   )NNNNNNN)rP  hoursminutesrQ  millisecondsrR  rS  r   r  )rc   r   rV  r   r)   r  rT  
componentsr7  r   rv  r  s      r-   test_dt_componentsrg  
  s    
))LL	 	
 T*+C VVF||	 JK
 H &+r/   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  rU   r   r  )rc   r   r   r(  )r  r   r   r   r   s        r-   #test_boolean_reduce_series_all_nullri    sH     ))TF"4
5CS1@F)U255r/   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TruerA   r  )falseFALSEFalse0rB   TFrU   r  rm  r  zFailed to parser   )r  r    r   r)   r  rc   rd   r   r   r&   r$   r*   )true_stringsfalse_stringsnullsr  boolsr   r   s          r-   %test_from_sequence_of_strings_booleanrv     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   )	rc   r   r  concatr   rd   r  r   r   )r5   r   r   r   s       r-   %test_concat_empty_arrow_backed_seriesry  2  sP    
))Be
$CxxzHYYBHHRrxx89:;F6,r/   r   r   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 foxrU   )r)   rd   r  rc   r   r    r   r   )r5   r$  r   r   s       r-   test_series_from_string_arrayr{  :  sL    
(((..0
1C
))C
%Cyy,S1?H3)r/   c                  (   ^  \ rS rSrU 4S jrSrU =r$ )OldArrowExtensionArrayiC  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__D  s'    $&;/gr/   r   )r  r  r  r  r  r  r  r  s   @r-   r}  r}  C  s     r/   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)   rd   r}  r  r  r  r   r   r   chunked_arrayhasattr)rf   r   r   s      r-   #test_pickle_old_arrowextensionarrayr  J  su    88QC=D%d+H\\&,,x01F##F5r//5555vw'''''r/   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 rU   F)	r    r)   r  r   onesr  r  zerosr   )Nr$  r   s      r-   /test_setitem_boolean_replace_with_mask_segfaultr  S  sn    A
b..BHH0M/NO
PCxxzH*/C!RXX&'==H.....r/   zdata, arrow_dtyperO   rP   c                    [        U5      n[        R                  " [        R                  " U 5      US9n[        R                  " XS9n[        R
                  " X45        g r   )r   rc   rd   r   r   r   )rf   ri  r5   r   r   s        r-   -test_conversion_large_dtypes_from_numpy_arrayr  \  sB     {#EXXbhhtnE2Fxx*H##F5r/   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 )	NrJ   rU   r   r<   r   T)ignore_index)NNr   r<   )rc   r7  r   r)   nullrx  r   rv  )r?  df2r   r   s       r-   test_concat_null_arrayr  j  sv    	sT4L)BGGI1F	GB
,,aV},<
=CYYyt4F||S"45=MNH&+r/   c                    [         R                  " / SQ[        U 5      S9nUR                  5       n[         R                  " / SQ[        [        R                  5       5      / SQS9n[        R                  " X#5        g )Nr<   r@   r4  rU   )r4  r@   r<   r<   r0  g       @r  r4  r  r   r  r  25%50%75%r  r5   ro  )rc   r   r   describer)   r   r   r   r   rf   r   r   s       r-   test_describe_numeric_datar  s  sV     99Yj&9:D]]_Fyy&&IH
 6,r/   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<   rH   rU   	   )rI   r@   r<   r4  rI   rv   r  rq  r  r  )rc   r   r7  r   r  to_timedeltarq  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,r/   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<   rH   rU   r  )rI   r<   r4  rI   rv   r  )r   rq  )r  r   r  r  r  r  r  r  )rc   r   r7  r   r  r  r   rq  r   r   r   )r   rf   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  rU   g?r   )rc   r   r   rL  )r   rf   r   r   r   s        r-   test_quantile_temporalr    sA    
 D
))D
7 3
4C\\#F1vHr/   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  rU   z+0    2020-01-01
dtype: date32[day][pyarrow])
r)   rd   r   fromisoformatr  rc   r   r   ri   repr)arrow_dtr   s     r-   test_date32_reprr    sT    xx++L9:xMH
))HJx}}$=
>C9FFFFr/   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<   rm  rU   r@   )
rc   to_datetimer  r   r   r)   r4  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,r/   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  )rf   r,   r*  r'   s       r-   test_infer_dtype_pyarrow_dtyper    sy    
//$
C/!!!{{sGG{{  B ! 
 	D!#//$t*T::::r/   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 )Nr4  r  rq  r   rU   r  )rq  r)   rV   r^   rc   rV  rN  r  r   r    rj   rd   r   r   )r   rf  rq  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5r/   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<   )rq  r)   rV   r^   rc   rV  rN  r  r   r    rd   r  r   r   r   rq  rf  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5r/   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<   r@   )	r    r)   rd   rq  rc   rV  rN  r   r   )r   r,   r$  rq  r   r   s         r-   test_arithmetic_temporalr    si    
 bhhywh?
@C<<D2<<-55d;;F"288IG8#DEH##F5r/   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)rq  r)   rV   r^   rc   rV  rN  r  r   r    rd   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5r/   c                V   [        [        R                  / SQU S95      nUS   n[        R                  R	                  U 5      (       aZ  [
        R                  " SU R                  S9R                  U R                  5      n[        U[
        R                  5      (       d   eOd[
        R                  " SU R                  U R                  S9R                  U R                  5      n[        U[
        R                  5      (       d   eUR                  UR                  :X  d   eX#:X  d   eg )Nr  r  r<   r@   r  r  )r    r)   rd   rV   r^   rc   rV  rq  rN  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
 &",,////;;(--'''r/   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)   rd   r  rV   r^   rc   rV  rq  rN  r(  r   r  r   r  s       r-   test_iter_temporalr    s	   
 bhh4ywh?
@C#YF	xxG$$LL.66w||DEE
 &)R\\2222 LL'**=EEgllSEE
 &)R\\2222!9>>Xa[-----r/   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 )Nr4  )rJ   rJ   rK   rQ  r   )levelr@   r<   r   rJ   rK   r  )rc   r   r;  sizer   r   r`  s       r-   'test_groupby_series_size_returns_pa_intr  6  sZ    
))D!HO
4C[[q[!&&(Fyy!Q'7SzJH6,r/   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  rU   r  r  r   nat)r    r)   rd   r   rV   r^   rc   rV  rq  rN  r  r   r   r]   r(  r  r   to_pandas_dtyperi   datetime_datar   r   )r   r5   r$  r   rS  r  r   s          r-   test_to_numpy_temporalr  >  sh    bhh4ywh?
@C\\\&F	xxG$$QW\\2::7<<HQW\\gjjAII',,W2880099gjj>TF?BB88UKv6ay~~+++$$&++E7<<@ 88UK(q	*1-===1r/   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<   r5  rq   r  rr   rs   r   )ro  r<  r5   )rc   r7  r;  r  r8  r   rv  )rk   r?  r   r   s       r-   %test_groupby_count_return_arrow_dtyper  [  sp    	QFI	JBZZ_""$F||
Qhhs%c
	H &+r/   c            
         [         R                  " SS/SS//[        [        R	                  [        R                  5       SS95      S9n U R                  R                  nU[        :X  d   eg )Nr<   r@   r4  r7   )	list_sizerU   )	rc   r   r   r)   r}  r,  r5   ri   r  )r   r   s     r-   test_fixed_size_listr  g  sU    
))
Q!Q
288BHHJ!8+L MC YY^^FT>>r/   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2012r4  )r  r  r!  r  z#     col
0  15340
1  15341
2  15342)rc   r7  period_ranger   r!   r  )r?  r   r   s      r-   'test_arrowextensiondtype_dataframe_reprr  p  sN    	
*-.
B
 "XF 8Hr/   c                     [         R                  " SS /SS9n U R                  S SS9n[         R                  " SS /SS9n[        R                  " X5        g )Nr@   r   rU   r4  )r     )rc   r   powr   r   )kr   r   s      r-   test_pow_missing_operandr  ~  sL    
		1d)#34AUU4AU&Fyy!T*:;H6,r/   c                D   [         R                  " S S/[        U 5      S9n[         R                  " [        R                  " SS/SU R
                   S3S95      nUR                  U5      n[         R                  " SS/[        U 5      S9n[        R                  " X45        g )Nr@   rU   r<   r4  zm8[r  )	rc   r   r   r   rd   rq  r^  r   r   )r   ser1ser2r   r   s        r-   test_duration_fillna_numpyr    s|     99dAYj&9:D99RXXq!fc',,q,ABCD[[Fyy!Qz'':;H6,r/   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  rU   r   zInteger valuer   )rc   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 )NrJ   rK   r   r<   rU   )r)   r  rd   dictionary_encoderc   r   r    	factorizer   intpr8  r   r   r   r=  )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:+3r/   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)rJ   r   ro   rJ   )rJ   dro   category)rJ   r   ro   r  rU   )rJ   r   ro   rJ   rJ   r  ro   )
categories)r)   rd   r   r  rc   r   r    r  r   r8  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,r/   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   rU   r7   r=   r  )rJ   rK   r   r   s       r-   test_arrow_floordivr    sP    
		2$./A
		1#-.Ayy"%56HVF6,r/   c                     [         R                  " S/SS9n [         R                  " S/SS9nU S-  n[        R                  " X!5        g )Nl     ^ \K r   rU   l    \p/i@B r  )rJ   r   r   s      r-    test_arrow_floordiv_large_valuesr    sA    
		&'/?@Ayy-0@AH)^F6,r/   r   r  c                f    [         R                  " S/U S9nUS-  n[        R                  " X!5        g )N   rU   r<   r  )r5   rJ   r   s      r-   )test_arrow_floordiv_large_integral_resultr    s/     			$%U3A!VF6%r/   c                    [        U 5      n[        R                  " S/US9nUS-  n[        R                  " S/US9n[        R                  " X45        g )NirU      r>   )r   rc   r   r   r   )r   r5   rJ   r   r   s        r-   "test_arrow_floordiv_larger_divisorr     sI     wE
		3%u%A"WFyy"U+H6,r/   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)NrU   zoverflow|not in ranger   r>   zdivide by zeror   )r   iinfor  r  rc   r   r   r&   r$   r)   r   r*   )r   	min_valuerJ   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 )Nr@   rU   r   inf)rc   r   r  r   r   )r5   rJ   r   r   s       r-   &test_arrow_floordiv_floating_0_divisorr    sC     			1#U#A!VFyy%,u5H6,r/   )r   r.  r^  c                    [         R                  " SS /SS9nUR                  U 5      n[         R                  " SS /U S9n[        R                  " X#5        g )Nr<   r   rU   r  r  s       r-   (test_astype_int_with_null_to_numpy_dtyper	    sI     ))QI%5
6CZZFyy!T%0H6,r/   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 )NrU   r<   )	r   r  r  r  r   rc   r   r   r   )r   	max_valuer5   rJ   rK   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%r/   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   rU   r  r  r  r5   rJ   rK   r   r   s        r-   &test_arrow_true_division_large_divisorr     sR     			1#U#A
		$%U3Ayy!$67HUF6,r/   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   rU   r  r  r  s        r-   'test_arrow_floor_division_large_divisorr  
  sQ     			1#U#A
		$%U3Ayy!E*HVF6,r/   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]rU   Tfrom_pandas)rc   r   r    r)   rd   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,r/   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]rU   r  )   +   i) Tr  )rc   r   r    r)   rd   r   r   r   )string_timesr   r   s      r-    test_string_to_time_parsing_castr    s\    %&LYY|+@AFyyBHHd2r2u&=%>DHQRH 6,r/   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  rU   r   r   r   )rc   r   r   r   r   r   r   r  s      r-   test_to_numpy_floatr!  (  sJ    
))N*:
;CZZ	"Fyy"b"&&);H6,r/   c                     [         R                  " S/SS9n U R                  [        R                  S9n[        R
                  " S/5      n[        R                  " X5        g )Nr  r  rU   l    P)#-/ )rc   r   r   r   r,  rd   r   r   r  s      r-   test_to_numpy_timestamp_to_intr#  0  sK    
))*+3K
LC\\\)Fxx,-.H1r/   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 )	Nr  r   rU   c                    g)N*   r   r   s    r-   r   ,test_map_numeric_na_action.<locals>.<lambda>:  s    rr/   r   r   g      E@r   )rc   r   r   r   r   r   r   r  s      r-   test_map_numeric_na_actionr(  8  sN    
))N*:
;CWW\XW6Fyy$bff-Y?H6,r/   (  r'  
__future__r   r   r   r   r   decimalr   ior	   r
   r  r  r9  numpyr   r&   pandas._libsr   pandas._libs.tslibsr   pandas.compatr   r   r   r   r   r   r   pandas.util._test_decoratorsutil_test_decoratorsr  pandas.core.dtypes.dtypesr   r   pandasrc   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!   r.   fixtureALL_PYARROW_DTYPESrs  r5   rf   rk   rm   rt   rx   r{   r   ExtensionTestsr   r  r'   r  ALL_INT_PYARROW_DTYPESr/  r1  r5  r9  rC  rF  rX  ra  rd  r@  byteslarge_binarylarge_stringr}  r,  r  
large_listmap_r   structr  dictr  rk  rr  ru  rw  ry  r{  r}  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  compiler  r	  r  r  r  r  r  r  r$  r&  r(  r+  r(   r  r1  r3  r:  r@  rT  r\  r^  rg  rm  rr  rz  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$  r0  r4  r7  r9  r?  r  rD  rG  rJ  rL  rO  rW  rZ  ra  rg  ri  rv  ry  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  r!  r#  r(  r   r/   r-   <module>rN     sJ   #     	    )   * )
   ,   (# > D	" r,,#63 73 8' 8'v H H
 /0 1 7A 7At 
 
 
 
  [1T(( [1|^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67	d78	tT67	ud56	eT#<=	dD"=>	89	5$ :;	t89	4:; -! - #
AtaY
+dAq1d)RXXZ-PQ-	--$ 	
		
		
	-	- J  -	-- 	q$t%	q!dD\"	
Aq4,-- 	
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----2-r/   