
    dq                    L   d Z ddlmZmZmZmZ ddlmZ ddlmZm	Z	 ddl
Z
ddlZddlZddlZddlZddlmZ ddlmZmZmZmZmZmZmZ ddlmZ dd	lmZ dd
lmZ ddl Z!ddl"m#Z$ ddl%m&Z& ddl'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z. ddl/m0Z0  ej1        dd          Z2ddl3m4Z4 ddl5m6Z6  ej7        e$j8        e9          d             Z:ej7        d             Z;ej7        d             Z< ej7        ddg          d             Z=ej7        d             Z>ej7        d             Z?ej7        d             Z@ej7        d             ZAej7        d             ZB G d  d!e0jC                  ZD G d" d#e0jE                  ZF G d$ d%e0jG                  ZH G d& d'e0jI                  ZJ G d( d)e0jK                  ZL G d* d+e0jM                  ZN G d, d-e0jO                  ZP G d. d/e0jQ                  ZR G d0 d1e0jS                  ZT G d2 d3e0jU                  ZV G d4 d5e0jW                  ZX G d6 d7e0jY                  ZZ G d8 d9e0j[                  Z\ G d: d;e0j]                  Z^ G d< d=e0j_                  Z` G d> d?e0ja                  Zb G d@ dAe0jc                  Zd G dB dCe0je                  Zf G dD dEe0jg                  Zh G dF dG          ZidH ZjdI Zkejl        m                    dJg dK          ejl        m                    dLdMdMdMgg          dN                         Znejl        m                    dOg dPddQggg dRdgggdSdTgU          dV             ZodW Zpejl        m                    dXe2q                                erge2q                    dY          erge2s                                erge2t                                e9ge2u                    e2v                                          ewge2x                    e2v                                          ewge2y                    e2z                                e2v                                          ewge2{                    dZe2|                                fd[e2z                                fg          e}ge2~                    e2v                                e2v                                          egg	          d\             Zd] Zd^ Zd_ Zd` Zda Zdb Zdc Zdd Zde Zdf Zdg Zdh Zejl        m                    diej&        ej        fdjg          dk             Zdl Zdm Zdn Zejl                            edop          dq             Zejl                            edrp          ds             Zdt Zdu Zdv Zejl        m                    dwdxdyg          dz             Zd{ Zejl        m                    d|d}d~gddgddgg          d             Zd Zejl        m                    dddddddggddddddggddddddggddddddggddddddggg          d             Zd Zejl        m                    ddddddggdddddggdddddggdddddggg          d             Zejl        m                    ddw ej        d          gde9gddgddgg          d             Zejl        m                    dddddddggddddddggddddddggg          d             Zd Zejl                            ede          d             Zejl        m                    ddddddggdddddggdddddggdddddggdddddggdddddggg          d             Zejl        m                    ddxddddggdddddggdddddggdddddggdyddddggdddddggg          d             Zejl        m                    ddddddge2                                gdddddge2v                                gg          d             Zd Zejl        m                    ddg dgdg dgdg dgdg dgdQg dgg          d             Zejl                            de          d             Zejl        m                    ddddddggdddddggdddddggg          d             Zejl        m                    ddddddggdddddggdddddggg          d             Zejl        m                    dg d¢g dâg dĢg dŢg dƢg dǢg dȢg dɢg dʢg dˢg d̢g d͢g d΢g dϢg dТg dѢg dҢg dӢg          dԄ             Zejl        m                    dddgddgddgddgddgddgg          d             Zd Zejl        m                    dg dg dg dg dg dg dg          d             Zejl        m                    dddxg          d             Zejl        m                    dddxg          d             Zejl        m                    dddg          ejl        m                    dddgddgg          d                         Zejl        m                    dddg          d             Zejl        m                    dddg          ejl        m                    dddgddQgg          d                         Zejl        m                    dd dg          d             Zejl        m                    dddgddQgg          d             Zd Zd Zd Zd Zd Zd	 Zd
 Zejl        m                    dg d          d             Zd Zejl        m                    dddgddgddgddgddgddgddgddgddQg ej        ddejl                            eed                    ddgd dgd!d"gd#dgd$d%gd& eddd          gd' eddQd%d          gg          d(             Zejl        m                    dd)d*g          d+             Zejl        m                    d,g d-          d.             ZƐd/ Zǐd0 Zejl        m                    dg d1          d2             Zejl        m                    dg d1          d3             Zejl                            ed4p          ejl        m                    d5g d6          ejl        m                    dg d1          d7                                     Zːd8 Zejl        m                    d9d:d;g          d<             Z͐d= Zΐd> Zejl        m                    dd)d*g          d?             Zejl        m                    d@dA edddBdC          gdD e!j        dE          gg          dF             Zejl        m                    dGddg          dH             Zejl        m                    dIdJdKg          dL             ZԐdM Zejl        m                    dNdOdPge2s                                fddge2t                                fg          dQ             Zejl        m                    dRe$j        e$j        z             dS             Zejl        m                    dRe$j                  dT             Zejl        m                    dRe$j                  dU             Zejl                            edVe2j                  dW             ZdS (X  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/`.
    )datedatetimetime	timedelta)Decimal)BytesIOStringION)lib)PY311is_ci_environmentis_platform_windowspa_version_under7p0pa_version_under8p0pa_version_under9p0pa_version_under11p0)PerformanceWarning)is_any_int_dtype)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pyarrowz7.0.0)
minversion)ArrowExtensionArray)
ArrowDtype)paramsidsc                 ,    t          | j                  S )N)pyarrow_dtype)r!   param)requests    ]/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/extension/test_arrow.pydtyper)   C   s    GM2222    c           
         | j         }t          j                            |          rddgdz  d gz   ddgdz  z   d gz   ddgz   }nt          j                            |          rddgdz  d gz   ddgdz  z   d gz   d	d
gz   }nt          j                            |          rddgdz  d gz   ddgdz  z   d gz   ddgz   }nt          j                            |          rddgdz  d gz   ddgdz  z   d gz   ddgz   }n^t          j                            |          rlt          d          t          d          gdz  d gz   t          d          t          d          gdz  z   d gz   t          d          t          d          gz   }nt          j        	                    |          rxt          ddd          t          ddd          gdz  d gz   t          ddd          t          ddd          gdz  z   d gz   t          ddd          t          ddd          gz   }n<t          j                            |          rt          ddddddd          t          ddddddd          gdz  d gz   t          dddd          t          dddd          gdz  z   d gz   t          ddd          t          ddd          gz   }nt          j                            |          rmt          d          t          dd          gdz  d gz   t          d          t          d          gdz  z   d gz   t          d          t          d          gz   }nt          j                            |          rqt!          dd          t!          dd          gdz  d gz   t!          dd          t!          dd          gdz  z   d gz   t!          dd          t!          dd          gz   }nt          j                            |          rdd gdz  d gz   dd!gdz  z   d gz   d"d#gz   }nCt          j                            |          rd$d%gdz  d gz   d&d'gdz  z   d gz   d(d)gz   }nt&          t)          j        || *          S )+NTF   ,         ?        g       g            ?g     X@   r   c      10.0z-2.0z-1.0z0.5z33.123            i
      ab2!>   a   b   1   2   !   >r)   )r%   pa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)r)   pa_dtypedatas      r(   r\   r\   H   s   "H	x8$$ 5"e}q D6)T5MB,>>$G4QV-W			h	'	' 3"SzA~&$)::dVCsDkQ		#	#H	-	- 1"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01	2 	 
		(	#	# %"$1tD"b112Q6fD!QdAq!1!12R78 f D"b!!4b"#5#56	7 	 
		x	(	( "dAq!Q1--xaAq!Q/O/OPSTTfaA&&q!Q(?(?@2EF f a##XdAq%9%9:	; 	 
		h	'	' "q\\9Q??+a/f}}ill+b01 f ~~y}}-	. 	 
		(	#	# ""a[[$q"++&*fAqzz41::&+, f Aqzz41::&	' 	 
		H	%	% "SzA~&#sb8D6AS#JN			H	%	% "d|a4&(D$<"+<<vEtT!!8D&&&&r*   c                 d    t          |                               d| d         g| j                  S )zLength-2 array with [NA, Valid]Nr   rJ   type_from_sequencer)   )r\   s    r(   data_missingra      s-     ::$$dDG_DJ$GGGr*   r\   ra   )r"   c                 :    | j         dk    r|S | j         dk    r|S dS )zParametrized fixture returning 'data' or 'data_missing' integer arrays.

    Used to test dtype conversion with and without missing values.
    r\   ra   N)r&   )r'   r\   ra   s      r(   all_datarc      s1     }	.	(	( 
)	(r*   c           
      Z   | j         }t          j                            |          rd}d}d}n`t          j                            |          rd}d}d}n9t          j                            |          rd}d}d}nt          j                            |          rd}d}d	}nt          j                            |          r5t          d
dd          }t          ddd          }t          ddd          }nt          j        	                    |          r:t          d
dddddd          }t          ddd          }t          dddd          }n>t          j                            |          r/t          d          }t          d          }t          dd          }nt          j                            |          r1t          dd          }t          dd          }t          dd          }nt          j                            |          rd}d}d}nzt          j                            |          rd}d}d}nTt          j                            |          r.t%          d          }t%          d          }t%          d          }nt&          t)          j        ||dd||||g|           S )z
    Data for factorization, grouping, and unique tests.

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

    Where A < B < C and NA is missing
    FTgr/   g?r3   r   r1   r=   r9   r:   r;   i  r8   r<   r,   r?   r@   crD   rE      cz-1.1r7   z1.1NrJ   )r%   rK   rL   rM   rN   rO   rP   rR   r   rS   r   rT   r   rU   r   rV   rW   rQ   r   rX   rY   rZ   )r)   r[   ABCs        r(   data_for_groupingrj      s    "H	x8$$ -"			h	'	' )"		#	#H	-	- %"		%	%h	/	/ !"			(	#	# "r2q!q!			x	(	( "T1aAq!,,T1a  T1a##			h	'	' "bMMaLLaOO			(	#	# "AJJBKKRLL			H	%	% "			H	%	% 	"			X	&	& "FOOENNENN!!8Q4q!Q2%@@@@r*   c                 ~    t          |                               | d         | d         | d         g| j                  S )zn
    Length-3 array with a known sort order.

    This should be three items [B, C, A] with
    A < B < C
    r      r,   rJ   r^   rj   s    r(   data_for_sortingrn      K     !""11	1	035Fq5IJ% 2   r*   c                 ~    t          |                               | d         | d         | d         g| j                  S )z{
    Length-3 array with a known sort order.

    This should be three items [B, NA, A] with
    A < B and NA missing.
    r   r5   r,   rJ   r^   rm   s    r(   data_missing_for_sortingrq      ro   r*   c                     | j         j        }t          j                            |          st          j                            |          rt          j        dgdz  | j                   S | S )z3Length-100 array in which all the elements are two.r5   d   rJ   )r)   r%   rK   rL   
is_integerrN   rY   rZ   r\   r[   s     r(   data_for_twosrv      s_     z'H	x8$$ 5(<(<X(F(F 5xc	4444Kr*   c                      t           j        S )z6The scalar missing value for this type. Default 'None')rY   NA r*   r(   na_valuerz      s     5Lr*   c                        e Zd Z fdZ xZS )TestBaseCastingc                    |j         j        }t          j                            |          r<|j                            t          j        	                    d| d                     t                                          |           d S )NzFor z .astype(str) decodes.reason)r)   r%   rK   rL   rW   node
add_markerpytestmarkxfailsupertest_astype_strselfr\   r'   r[   	__class__s       r(   r   zTestBaseCasting.test_astype_str   s    :+8h'' 	L##!!B(BBB "    
 	%%%%%r*   )__name__
__module____qualname__r   __classcell__r   s   @r(   r|   r|      s8        & & & & & & & & &r*   r|   c                   0     e Zd Z fdZd Zd Zd Z xZS )TestConstructorsc                    |j         j        }t          j                            |          st          j                            |          r_t          j                            |          rd}nd| }|j                            t          j	        
                    |                     t                                          |           d S )Nz1ArrowDtype(pa.string()) != StringDtype('pyarrow')$pyarrow.type_for_alias cannot infer r~   )r)   r%   rK   rL   rV   rQ   r   r   r   r   r   r   test_from_dtype)r   r\   r'   r[   r   r   s        r(   r   z TestConstructors.test_from_dtype
  s    :+8h'' 
	28+>+>x+H+H 
	x!!(++ KLJJJL##!!! "    
 	%%%%%r*   c                    t          |                              |j                  }t          j        ||           t          |j        t          j                  sJ t          |                              |j                                                  }t          j        ||           t          |j        t          j                  sJ d S N)	r_   r`   _datatmassert_extension_array_equal
isinstancerK   ChunkedArraycombine_chunksr   r\   results      r(   test_from_sequence_pa_arrayz,TestConstructors.test_from_sequence_pa_array  s     d**4:66
'555&,88888d**4:+D+D+F+FGG
'555&,8888888r*   c                     t          j        t          d          5  t          j        dgt
                                                     d d d            d S # 1 swxY w Y   d S )NzConverting strings tomatchz12-1rJ   )r   raisesrX   r    _from_sequence_of_stringsrK   month_day_nano_interval)r   r'   s     r(   *test_from_sequence_pa_array_notimplementedz;TestConstructors.test_from_sequence_pa_array_notimplemented$  s    ].6MNNN 	 	9 : : < <   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   /AAAc                    |j         j        }t          j                            |          rV|                    d          rAt          s:|j                            t          j
                            d                     nt          rt          j                            |          st          j                            |          rG|j                            t          j
                            t          j        d|                      nt          j                            |          rf|j        _t%                      rQt'                      rC|j                            t          j
                            t          j        d                     |j                            t                                                    }t1          |                              ||j                   }t5          j        ||           |                                }t1          |                              ||j                   }t5          j        ||           d S )Nz
time64[ns]z&Nanosecond time parsing not supported.r~   z pyarrow doesn't support parsing r   r   _TODO: Set ARROW_TIMEZONE_DATABASE environment variable on CI to path to the tzdata for pyarrow.rJ   )r)   r%   rK   rL   	is_time64equalsr   r   r   r   r   r   r   rT   rQ   ArrowNotImplementedErrorrS   tzr   r   ArrowInvalidr   caststringr_   r   r   r   r   )r   r\   r'   r[   pa_arrayr   s         r(   &test_from_sequence_of_strings_pa_arrayz7TestConstructors.test_from_sequence_of_strings_pa_array*  s   :+8h'' 	HOOL,I,I 	RW 	L##!!C "     
 " 	H  **	.0h.A.A(.K.K	 L##!!6HhHH "      X""8,, 
	1H"$$ 	):)<)< 	''K%%!G &     :??299;;//d55hdj5QQ
'555**,,d55hdj5QQ
'55555r*   )r   r   r   r   r   r   r   r   r   s   @r(   r   r   	  se        & & & & &	9 	9 	9  "6 "6 "6 "6 "6 "6 "6r*   r   c                       e Zd ZdS )TestGetitemTestsNr   r   r   ry   r*   r(   r   r   O          Dr*   r   c                       e Zd Zd Zej                            dddg          d             Zej                            dddg          d             ZdS )TestBaseAccumulateTestsc                 b    t          ||          |          }|j        j        dk    r*|                    d          }|                    d          }|                    d          } t          |                    d          |          |          }|                     ||d           d S )Nskipnamint64[pyarrow]Float64F)check_dtype)getattrr)   kindastypeassert_series_equal)r   serop_namer   r   expecteds         r(   check_accumulatez(TestBaseAccumulateTests.check_accumulateT  s    &g&&f5559>S  **-..C]]#344Fy)):73::i00'::&III  u EEEEEr*   r   TFc                    |j         j        }t          j                            |          s>t          j                            |          st          j                            |          r!|dk    rt          st          j	        d           |}t          j        |          }t          j        t                    5   t          ||          |           d d d            d S # 1 swxY w Y   d S )Ncumsumz1These work, are tested by test_accumulate_series.r   )r)   r%   rK   rL   rt   rN   rT   r   r   skiprY   Seriesr   rX   r   )r   r\   all_numeric_accumulationsr   pa_typer   r   s          r(   test_accumulate_series_raisesz5TestBaseAccumulateTests.test_accumulate_series_raises`  s)   ** ##G,,		M 8''00		M 8''00			M *X55' 6 KKLLL+ioo].// 	1 	1!GC!!0000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s   :C""C&)C&c                     |j         j        }|}t          j        |          }d}t          j                            |          st          j                            |          r|dv rd}nlt          j                            |          r&t          j        	                    |          s|dv rd}n't          j        	                    |          r|dk    rd}|rt          j        d           |dk    st          rg|j        j        j        rt          j        d           |j                            t          j                            | dt(          	                     n|dk    rt          j                            |          st          j                            |          rC|j                            t          j                            | d
| t(          	                     |                     |||           d S )NF)r   cumprodTr   z]These should *not* work, we test in test_accumulate_series_raises that these correctly raise.r   zpyarrow xfail slowz not implementedr   r   z not implemented for )r)   r%   rY   r   rK   rL   rV   rW   is_temporalrT   r   r   r   configoption	skip_slowr   r   r   r   rX   rM   rQ   r   )	r   r\   r   r   r'   r   r   r   do_skips	            r(   test_accumulate_seriesz.TestBaseAccumulateTests.test_accumulate_seriest  s   **+ioo8g&& 	"(*<*<W*E*E 	///X!!'** 	283G3G3P3P 	///X!!'** 	)## 	K.  
 %004G0~$. 2 0111L##!!7III. "      '(22H(( 3,.H,?,?,H,H 3 L##!!7WWgWW. "     	c7F33333r*   N)	r   r   r   r   r   r   parametrizer   r   ry   r*   r(   r   r   S  s        
F 
F 
F [Xe}551 1 651& [Xe}55-4 -4 65-4 -4 -4r*   r   c                        e Zd Zd Zej                            dddg           fd            Zej                            dg d          d             Z xZ	S )	TestBaseNumericReducec                 :   |j         j        }|dk    r t          ||                      }n t          ||          |          }t          j                            |          rt          j        d           nSt          j                            |          st          j        	                    |          r|
                    d          }|dk    r t          ||                      }n t          ||          |          }t          j        ||           d S )Ncountr   zApandas boolean data with NA does not fully support all reductionsr   )r)   r%   r   rK   rL   rM   r   r   rt   rN   r   r   assert_almost_equal)r   r   r   r   r[   r   r   s          r(   check_reducez"TestBaseNumericReduce.check_reduce  s   9*g*WS'**,,FF*WS'**&999F8x(( 	(KS    X  ** 	(bh.B.B8.L.L 	(**Y''Cg,wsG,,..HH,wsG,,F;;;H
vx00000r*   r   TFc                 b   |j         j        }|}t          j        |          }d}t          j                            |          r+|dv r't          j                            |          r|dv rnGd}nDt          j                            |          st          j        	                    |          r|dv rd}|sUd| d}	t          j        t          |	          5   t          ||          |	           d d d            n# 1 swxY w Y   d S t          j                            t          | d
t          j         d|           }
|dv r|j                            |
           n|dv rAt&          r:t          j                            |          r|j                            |
           ne|dk    r"t*          r|j                            |
           n=t          j                            |          r|dv r|j                            |
           t/                                          |||           d S )NT)sumvarskewkurtprod)r   F)	r   meanmedianr   stdsemr   r   r   zdoes not support reduction ''r   r    is not implemented in pyarrow= for r   >   r   r   >   r   r   r   r   >   r   r   r   r   )r)   r%   rY   r   rK   rL   r   rT   rV   rW   r   r   	TypeErrorr   r   r   __version__r   r   r   rQ   r   rM   r   test_reduce_series)r   r\   all_numeric_reductionsr   r'   r[   opnamer   should_workmsg
xfail_markr   s              r(   r   z(TestBaseNumericReduce.test_reduce_series  s   :+'ioo8)) 	 f 9
 /
 /
 x##H-- $&G2C2C#Hx((	 ,.H,>,>x,H,H	  

 

 

  K 	 ;:::Cy444 4 4$V$$F33334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 F[&&) ; ;>; ;08; ; ' 
 

 "%555L##J////"&>>># ?##H-- ? L##J////#u,,1D,L##J////X  ** 	0/E J
 0
 0
 L##J///""4)?HHHHHs   C>>DDtyp)int64uint64float64c                 p    t          j        ddg| d                                          }|dk    sJ d S )Nr1   r5   	[pyarrow]rJ         ?)rY   r   r   )r   r   r   s      r(   test_median_not_approximatez1TestBaseNumericReduce.test_median_not_approximate   sB     Aq6C):):):;;;BBDD}}}}}}r*   )
r   r   r   r   r   r   r   r   r   r   r   s   @r(   r   r     s        1 1 1& [Xe}55DI DI DI DI 65DIL [U$B$B$BCC  DC    r*   r   c                   Z    e Zd Zej                            dddg          d             ZdS )TestBaseBooleanReducer   TFc                    |j         j        }t          j                            t
          | dt          j         d|           }t          j        	                    |          st          j        
                    |          r|j                            |           |}t          j        |          }	t          j                            |          rnt          j                            |          sOt          j        t
          d          5   t%          |	|          |           d d d            n# 1 swxY w Y   d S  t%          |	|          |          }
|
|dk    u sJ d S )Nr   r   r   zdoes not support reductionr   r   any)r)   r%   r   r   r   r   rK   r   rL   rV   rW   r   r   rY   r   r   rT   r   r   )r   r\   all_boolean_reductionsr   rz   r'   r[   r   r   r   r   s              r(   r   z(TestBaseBooleanReduce.test_reduce_series  s    :+[&&) ; ;>; ;08; ; ' 
 

 8h'' 	028+=+=h+G+G 	0 L##J///(ioo8)) 	"(2F2Fx2P2P 	
 y0LMMM 5 5%W%%V44445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 F&g&&f555'U*++++++s   D33D7:D7N)r   r   r   r   r   r   r   ry   r*   r(   r   r     sD        [Xe}55, , 65, , ,r*   r   c                        e Zd Z fdZ fdZej                            dddg           fd            Z fdZ	 xZ
S )TestBaseGroupbyc                    |j         j        }t          j                            |          r;|j                            t          j        	                    | d                     t                                          |           d S N" only has 2 unique possible valuesr~   )r)   r%   rK   rL   rM   r   r   r   r   r   r   test_groupby_extension_no_sortr   rj   r'   r[   r   s       r(   r  z.TestBaseGroupby.test_groupby_extension_no_sort+  s    $*88x(( 	L##!!&JJJ "    
 	../@AAAAAr*   c                    |j         j        }t          j                            |          r;|j                            t          j        	                    | d                     t                                          |           d S r  )r)   r%   rK   rL   rM   r   r   r   r   r   r    test_groupby_extension_transformr  s       r(   r  z0TestBaseGroupby.test_groupby_extension_transform5  s    $*88x(( 	L##!!&JJJ "    
 	001BCCCCCr*   as_indexTFc                 $   |j         j        }t          j                            |          rA|j                            t          j        	                    t          | d                     t                                          ||           d S )Nr  r   )r)   r%   rK   rL   rM   r   r   r   r   r   
ValueErrorr   test_groupby_extension_agg)r   r	  rj   r'   r[   r   s        r(   r  z*TestBaseGroupby.test_groupby_extension_agg?  s    $*88x(( 	L##!!%&JJJ "     	**85FGGGGGr*   c                    t          |j                  rt          j        g d|g dd          }t          j        dg          }t          j        t          d          5  |                    d          	                                j
         d d d            n# 1 swxY w Y   |                    d          	                    d	          j
        }t          j        ||           d S t                                          |           d S )
N)r1   r1   r5   r5      r  r1   r,   )r1   r1   r1   r1   r1   r1   r1   r1   )rg   rh   ri   ri   zdoes not supportr   rg   T)numeric_only)r   r)   rY   	DataFrameIndexr   r   r   groupbyr   columnsr   assert_index_equalr   test_in_numeric_groupby)r   rj   dfr   r   r   s        r(   r  z'TestBaseGroupby.test_in_numeric_groupbyK  s=   ,233 	?111*111  B xHy0BCCC . .

3##%%--. . . . . . . . . . . . . . .ZZ__((d(;;CF!&(33333GG++,=>>>>>s   "-BB"B)r   r   r   r  r  r   r   r   r  r  r   r   s   @r(   r  r  *  s        B B B B BD D D D D [Z$77	H 	H 	H 	H 87	H? ? ? ? ? ? ? ? ?r*   r  c                   L     e Zd Z fdZ fdZ fdZd Z fdZ fdZ xZ	S )TestBaseDtypec                 *   |j         j        }t          j                            |          rEt
          r>|j                            t          j	        
                    t          d                     t                                          |           d S )Nz,decimal string repr affects numpy comparisonr   )r)   r%   rK   rL   rQ   r   r   r   r   r   r   r  r   test_check_dtyper   s       r(   r  zTestBaseDtype.test_check_dtype_  s    :+8x(( 	-@ 	L##!!%I "     	  &&&&&r*   c                    |j         }t          j                            |          rA|j                            t          j                            t          d|                      t          j        
                    |          rQd}t          j        t          |          5  |                    |j                   d d d            n# 1 swxY w Y   d S t                                          |           d S )Nr   r   z6string\[pyarrow\] should be constructed by StringDtyper   )r%   rK   rL   rQ   r   r   r   r   r   rX   rV   r   r   construct_from_stringnamer   #test_construct_from_string_own_name)r   r)   r'   r[   r   r   s        r(   r  z1TestBaseDtype.test_construct_from_string_own_namej  s)   &8x(( 	L##!!.L(LL "     8h'' 	KCy444 8 8++EJ7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 F33E:::::s   %CCCc                    |j         }t          j                            |          r+t	          |                              |j                  rJ d S t          j                            |          rA|j        	                    t          j                            t          d|                      t                                          |           d S )Nr   r   )r%   rK   rL   rV   r_   is_dtyper  rQ   r   r   r   r   r   rX   r   test_is_dtype_from_namer   r)   r'   r[   r   s       r(   r!  z%TestBaseDtype.test_is_dtype_from_name~  s    &8h'' 	3E{{++EJ7777777x""8,, ''K%%2PhPP &     GG++E22222r*   c                     d}t          j        t          |          5  t          |                              d           d d d            d S # 1 swxY w Y   d S )Nz*'another_type' must end with '\[pyarrow\]'r   another_type)r   r   r   r_   r  )r   r)   r   s      r(   .test_construct_from_string_another_type_raisesz<TestBaseDtype.test_construct_from_string_another_type_raises  s    ;]9C000 	> 	>KK--n===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>s   #AAAc                 |   |j         }t          j                            |          st          j                            |          st          j                            |          r|j        dk    so|j        ht          j                            |          r|j        dk    s>t          j        	                    |          st          j        
                    |          r;|j                            t          j                            | d                     t!                                          |           d S )NnszB does not have associated numpy dtype findable by find_common_typer~   )r%   rK   rL   rR   rU   rS   unitr   rT   rW   rQ   r   r   r   r   r   r   test_get_common_dtyper"  s       r(   r)  z#TestBaseDtype.test_get_common_dtype  s+   &HX&&	x))	 %%h//		
 ]d**hk.E$$X.. /F3;=D3H3Hx!!(++ 4Ix""8,, 4I L##!!# > > > "     	%%e,,,,,r*   c                     |j         }t          j                            |          rt	          |          sJ d S t                                          |           d S r   )r%   rK   rL   rV   r   r   test_is_not_string_type)r   r)   r[   r   s      r(   r+  z%TestBaseDtype.test_is_not_string_type  s[    &8h'' 	3"5)))))))GG++E22222r*   )
r   r   r   r  r  r!  r%  r)  r+  r   r   s   @r(   r  r  ^  s        	' 	' 	' 	' 	'; ; ; ; ;(3 3 3 3 3> > >
- - - - -.3 3 3 3 3 3 3 3 3r*   r  c                       e Zd ZdS )TestBaseIndexNr   ry   r*   r(   r-  r-    r   r*   r-  c                   b     e Zd Zej                            dd           fd            Z xZS )TestBaseInterfacez6GH 45419: pyarrow.ChunkedArray does not support views.Fr   runc                 J    t                                          |           d S r   )r   	test_viewr   r\   r   s     r(   r3  zTestBaseInterface.test_view  s#     	$r*   )r   r   r   r   r   r   r3  r   r   s   @r(   r/  r/    sa        [GU                    r*   r/  c                   $     e Zd Zd Z fdZ xZS )TestBaseMissingc                 t   ||                                           }|d         }|                    |          }||usJ |                     ||           t          j        t
                    5  |                    d          }d d d            n# 1 swxY w Y   ||usJ |                     ||           d S )Nr   backfill)method)isnafillnar   r   assert_produces_warningr   )r   r\   validr   s       r(   test_fillna_no_op_returns_copyz.TestBaseMissing.test_fillna_no_op_returns_copy  s    TYY[[L!QU##T!!!!))&$777'(:;; 	4 	4[[
[33F	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4T!!!!))&$77777s   .BBBc                     t          j        t          |d ud          5  t                                          ||           d d d            d S # 1 swxY w Y   d S )NF)check_stacklevel)r   maybe_produces_warningr   r   test_fillna_series_method)r   ra   fillna_methodr   s      r(   rB  z)TestBaseMissing.test_fillna_series_method  s    &T 9E
 
 
 	K 	K GG--lMJJJ	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	Ks   #AAA)r   r   r   r>  rB  r   r   s   @r(   r6  r6    sP        
8 
8 
8K K K K K K K K Kr*   r6  c                       e Zd ZdS )TestBasePrintingNr   ry   r*   r(   rE  rE    r   r*   rE  c                   b     e Zd Zej                            dd           fd            Z xZS )TestBaseReshaping5GH 45419: pyarrow.ChunkedArray does not support viewsFr0  c                 J    t                                          |           d S r   )r   test_transposer4  s     r(   rJ  z TestBaseReshaping.test_transpose  s#     	t$$$$$r*   )r   r   r   r   r   r   rJ  r   r   s   @r(   rG  rG    sa        [FE   % % % % % % % % %r*   rG  c                   b     e Zd Zej                            dd           fd            Z xZS )TestBaseSetitemrH  Fr0  c                 J    t                                          |           d S r   )r   test_setitem_preserves_viewsr4  s     r(   rN  z,TestBaseSetitem.test_setitem_preserves_views  s#     	,,T22222r*   )r   r   r   r   r   r   rN  r   r   s   @r(   rL  rL    sa        [FE   3 3 3 3 3 3 3 3 3r*   rL  c                       e Zd Zej                            ddeg          ej                            dddg          d                         ZdS )TestBaseParsingdtype_backendr   enginere   pythonc           	         |j         j        }t          j                            |          rD|j                            t          j        	                    t          d| d                     n(t          j                            |          rH|j        dv r?|j                            t          j        	                    t          d                     nt          j                            |          r9|j                            t          j        	                    d                     nit          j                            |          rJ|dk    rD|d	k    r>|j                            t          j        	                    t           d
                     t#          j        dt#          j        |t)          |j                             i          }|                    dt,          j                  }t          j                            |          rt1          |          }nt3          |          }t#          j        |dt)          |j                   i||          }|}	|                     ||	           d S )NzParameterized types z not supported.r   )usr'  z1https://github.com/pandas-dev/pandas/issues/49767z)CSV parsers don't correctly handle binaryr~   r   rS  z)Invalid type for timedelta scalar: NAType
with_dtyperJ   F)indexna_rep)r)   rR  rQ  )r)   r%   rK   rL   rQ   r   r   r   r   r   rX   rS   r(  r  rW   rT   r   rY   r  r   strto_csvnpnanr   r	   read_csvassert_frame_equal)
r   rR  r\   rQ  r'   r[   r  
csv_outputr   r   s
             r(   test_EA_typeszTestBaseParsing.test_EA_types  sY    :+8x(( 	L##!!.K(KKK "      X""8,, 	,1N1NL##!!%N "      X)) 	L##!!)T!UU    H  **
	**(""L##!!$F "     \<4s4:)O)O)OPQQYYU26Y::
8h'' 	. ,,JJ!*--JTZ1'	
 
 
 11111r*   N)r   r   r   r   r   r   r   r`  ry   r*   r(   rP  rP    sg        [_y*.EFF[XX77,2 ,2 87 GF,2 ,2 ,2r*   rP  c                        e Zd Z fdZ xZS )TestBaseUnaryOpsc                 ,   |j         j        }t          j                            |          sF|j                            t          j        	                    t          j
        d|                      t                                          |           d S )Nz$pyarrow.compute.invert does support r   )r)   r%   rK   rL   rM   r   r   r   r   r   r   r   test_invertr   s       r(   rd  zTestBaseUnaryOps.test_invert  s    :+x""8,, 	L##!!6L(LL "     	D!!!!!r*   )r   r   r   rd  r   r   s   @r(   rb  rb    s8        	" 	" 	" 	" 	" 	" 	" 	" 	"r*   rb  c                       e Zd Zej                            dddg           fd            Zd Zd Z fdZ	ej                            dd	d
dddde
j        fdde
j        fddg           fd            Z fdZdZ fdZ fdZd Z xZS )TestBaseMethodsperiodsr1   r2   c           
      B   |j         j        }t          j                            |          rP|dk    rJ|j                            t          j        	                    t          j
        d| d| d                     t                                          ||           d S )Nr1   z
diff with z and periods=z will overflowr   )r)   r%   rK   rL   rP   r   r   r   r   r   r   r   	test_diff)r   r\   rg  r'   r[   r   s        r(   ri  zTestBaseMethods.test_diff%  s    :+8''11 	gllL##!!?SXSSGSSS "     	$(((((r*   c                     |d d         }|                                 }|j        t          t                                                    k    sJ d S )Nr=   )value_countsr)   r!   rK   r   r   s      r(   'test_value_counts_returns_pyarrow_int64z7TestBaseMethods.test_value_counts_returns_pyarrow_int643  sI    CRCy""$$|z"((**55555555r*   c                    |d d                                          }t          j        ||                                                    }t	          j        ||j                  }|                    d                                          }t	          j        dt          |          z  gt          |          z  |j
        d          }|                    d          }|                     ||           d S )	Nr=   rJ   T)	normalizer1   
proportion)rW  r  zdouble[pyarrow])uniquer[  rZ   r:  rY   r   r)   rk  
sort_indexlenrW  r   r   )r   r\   r'   valuesr   r   r   s          r(    test_value_counts_with_normalizez0TestBaseMethods.test_value_counts_with_normalize9  s    CRCy!!$		|,--iDJ///!!D!11<<>>9V_F+6<l
 
 
 ??#455  22222r*   c                    |j         j        }t          j                            |          r<|j                            t          j        	                    | d                     nlt          j        
                    |          rMt          rF|j                            t          j        	                    d| t          j                             t                                          |||           d S )Nr  r~   No pyarrow kernel for r   )r)   r%   rK   rL   rM   r   r   r   r   r   rQ   r   r   r   test_argmin_argmax)r   rn   rq   rz   r'   r[   r   s         r(   rw  z"TestBaseMethods.test_argmin_argmaxG  s     $)78x(( 	L##!!&JJJ "     
 X  ** 	/B 	L##!!>H>>6 "     	""#35MxXXXXXr*   zop_name, skipna, expected)idxmaxTr   )idxminTr5   )argmaxTr   )argminTr5   rx  Fry  )rz  Fr3   )r{  Fr3   c                 D   |j         j        }t          j                            |          rOt
          rH|rF|j                            t          j	        
                    d| t          j                             t                                          ||||           d S )Nrv  r   )r)   r%   rK   rL   rQ   r   r   r   r   r   r   r   r   test_argreduce_series)r   rq   r   r   r   r'   r[   r   s          r(   r}  z%TestBaseMethods.test_argreduce_seriesZ  s      ,1?8x(( 	-@ 	V 	L##!!>H>>6 "     	%%$gvx	
 	
 	
 	
 	
r*   c                    |j         j        }t          j                            |          r;|j                            t          j        	                    | d                     t                                          |           d S r  )r)   r%   rK   rL   rM   r   r   r   r   r   r   test_factorizer  s       r(   r  zTestBaseMethods.test_factorizev  s    $*88x(( 	L##!!&JJJ "    
 	011111r*   zbool[pyarrow]c                    t           |d                    j        j        }t          j                            |          rht          j                            t          | d|           }|j
                            |           t                                          |           d S t          j                            |          r |d          \  }}t          j        |          }t          j        |          }t          j        t                    5  |                    |d            d d d            d S # 1 swxY w Y   d S t                                          |           d S )Nr1   z cannot be added to r   r5   c                     | |z   S r   ry   )x1x2s     r(   <lambda>z2TestBaseMethods.test_combine_add.<locals>.<lambda>  s
    b2g r*   )nextr)   r%   rK   rL   rT   r   r   r   r   r   r   r   test_combine_addr   rY   r   r   combine)
r   data_repeatedr'   r[   r   
orig_data1
orig_data2s1s2r   s
            r(   r  z TestBaseMethods.test_combine_add  s   a(())/=8)) 	4 ;$$ "BBBB %  D L##D)))GG$$]33333X!!(++ 		4%2]1%5%5"J
:&&B:&&By)) 7 7

2556667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 GG$$]33333s   D>>EEc                    |j         j        }t          j                            |          r;|j                            t          j        	                    | d                     t                                          ||           d S r  )r)   r%   rK   rL   rM   r   r   r   r   r   r   test_searchsorted)r   rn   	as_seriesr'   r[   r   s        r(   r  z!TestBaseMethods.test_searchsorted  s    #)78x(( 	L##!!&JJJ "    
 	!!"2I>>>>>r*   c                 |    t          j        |                              t          j        |                    sJ d S r   )rY   r   r   )r   r\   s     r(   test_basic_equalsz!TestBaseMethods.test_basic_equals  s2    y%%bioo6666666r*   )r   r   r   r   r   r   ri  rl  rt  rw  r[  r\  r}  r  _combine_le_expected_dtyper  r  r  r   r   s   @r(   rf  rf  $  sc       [YB00) ) ) ) 10)6 6 63 3 3Y Y Y Y Y& [#ubf%ubf%!!		
 
 
 
 
 
2 2 2 2 2 "14 4 4 4 4.? ? ? ? ?7 7 7 7 7 7 7r*   rf  c                   p     e Zd ZeZed             Zd Zd Zd Z	d Z
d Z fdZ fdZd	 Z fd
Z xZS )TestBaseArithmeticOpsc                    t          |t          j                  r7|j        d d df         j        j        }|j        d d df         j        j        }n|j        j        }|j        j        }t          j                            |          st          j                            |          r*|	                    d          }|	                    d          }t          j        ||fi | d S )Nr   zfloat[pyarrow])r   rY   r  ilocr)   r%   rK   rL   rQ   r   r   assert_equal)clsleftrightkwargsleft_pa_typeright_pa_types         r(   r  z"TestBaseArithmeticOps.assert_equal  s    dBL)) 	69QQQT?0>L!Jqqq!t,2@MM:3L!K5M8|,, 	30C0CM0R0R 	3 ;;/00DLL!122E
e..v.....r*   c                 x    |                     d          }|dk    rd S |dk    rd S t          j        |          S )N_rtruedivc                 ,    t          j        ||           S r   )r[  dividexys     r(   r  z8TestBaseArithmeticOps.get_op_from_name.<locals>.<lambda>  s    	!Q r*   	rfloordivc                 ,    t          j        ||           S r   )r[  floor_divider  s     r(   r  z8TestBaseArithmeticOps.get_op_from_name.<locals>.<lambda>  s    1 5 5 r*   )stripr   get_op_from_name)r   r   short_opnames      r(   r  z&TestBaseArithmeticOps.get_op_from_name  sL    }}S)):%%///[((555"7+++r*   c                    t           j                            | |||          }d}t          |t          j                  r*d}|j        d d df         }|j        d d df         j        }n	|}|j        }t          	                    |j
                  }t          j                            |j                  rI|j        j        }	t          |          t           t"          fv r|	dv rd}	|                    d|	 d          }n|                    |j                  } t          |j
                  |          }
|r"t	          j        |
|j        |j                  }nt	          j        |
          }|S )	NFTr   )smsrU  z	duration[])rW  r  )r   BaseArithmeticOpsTests_combiner   rY   r  r  r)   rK   rZ   _valuesrL   rT   r_   r%   r(  r   r   r   rW  r  r   )r   objotheropr   	was_frameexpected_dataoriginal_dtypepa_expectedr(  pd_expecteds              r(   _patch_combinez$TestBaseArithmeticOps._patch_combine  sm    .77c5"MM	h-- 	'I$M!!!Q$/M Xaaad^1NN$M YNhh}4558 011 	I "/4DE{{x3338K8K %**+>t+>+>+>??KK%**>+GHHK1d=011+>> 	.|8>8;K  HH y--Hr*   c                     t            oE|dv rt          j                            |          p"|dv ot          j                            |          S )N__add____radd____sub____rsub__)r   rK   rL   rT   r   )r   r   r[   s      r(   _is_temporal_supportedz,TestBaseArithmeticOps._is_temporal_supported  sY    && 
-- /$$X../00 /$$X..		
r*   c                    |                      ||          }|dv rt          }n|rd }n|dv rAt          j                            |          st          j                            |          rd }nlt          j                            |          sKt          j                            |          s,t          j                            |          st          j	        }nd }|S )N>   __mod____rmod__r  )
r  rX   rK   rL   rV   rW   rN   rt   rQ   r   )r   r   r[   arrow_temporal_supportedexcs        r(   _get_scalar_exceptionz+TestBaseArithmeticOps._get_scalar_exception  s    #'#>#>vx#P#P  
 
 
 &CC% 	CC...Hx(( /,.H,>,>x,H,H / CCH  **	x""8,,	 x""8,,	
 -CCC
r*   c                     d }|                      ||          }|dk    rt          j                            |          s>t          j                            |          st          j                            |          r,t          s%t          j        	                    d|           }nV|r.t          j        	                    t          | d| d          }n&|dk    rqt          j                            |          st          j                            |          r3t          s,t          j        	                    t          j        d          }n|d	k    rRt          j                            |          r3t          s,t          j        	                    t          j        d          }nW|d
k    rQt          j                            |          r2t          r+t          j        	                    t          j        d          }|S )N__rpow__z<GH#29997: 1**pandas.NA == 1 while 1**pyarrow.NA == NULL for r~   z  not supported betweenpd.NA and z Python scalarr   __rfloordiv__zdivide by 0__rtruediv____pow__z'Invalid decimal function: power_checked)r  rK   rL   rN   rt   rQ   r   r   r   r   r   r   )r   r   r[   r   r  s        r(   _get_arith_xfail_markerz-TestBaseArithmeticOps._get_arith_xfail_marker	  s   #'#>#>vx#P#P  j  $$X.. ! 8&&x00 ! 8&&x00	 ! ( ! ;$$&#& & %  DD & "	;$$  : :!): : : %  DD o%%$$X.. &24(2E2Eh2O2O &' & ;$$$ %  DD
 n$$##H-- %' % ;$$$ %  DD
 i##H--  #   ;$$@ %  D
 r*   c                    |j         j        }|dk    rRt          j                            |          st          j                            |          rt          j        d           |                     ||          | _	        | 
                    ||          }||j                            |           |dk    rt          j                            |          s>t          j                            |          st          j                            |          r!|                    t"          d| j                   t'                                          ||           d S Nr  z%Skip testing Python string formatting__floordiv__r  )r)   r%   rK   rL   rV   rW   r   r   r  series_scalar_excr  r   r   rt   rT   rS   setattrr  r  r   test_arith_series_with_scalarr   r\   all_arithmetic_operatorsr'   monkeypatchr[   r   r   s          r(   r  z3TestBaseArithmeticOps.test_arith_series_with_scalarC  sF    :+#z11Hx(( 2,.H,>,>x,H,H 2 K?@@@!%!;!;$h"
 "
 ++,DhOOL##D))) )N::H''11 ; x##H-- ; x$$X..	 ;  5z4CVWWW--d4LMMMMMr*   c                    |j         j        }|dk    rRt          j                            |          st          j                            |          rt          j        d           |                     ||          | _	        | 
                    ||          }||j                            |           |dk    rt          j                            |          s>t          j                            |          st          j                            |          r!|                    t"          d| j                   t'                                          ||           d S r  )r)   r%   rK   rL   rV   rW   r   r   r  frame_scalar_excr  r   r   rt   rT   rS   r  r  r  r   test_arith_frame_with_scalarr  s          r(   r  z2TestBaseArithmeticOps.test_arith_frame_with_scalarb  sF    :+#z11Hx(( 2,.H,>,>x,H,H 2 K?@@@ $ : :$h!
 !
 ++,DhOOL##D))) )N::H''11 ; x##H-- ; x$$X..	 ;  5z4CVWWW,,T3KLLLLLr*   c                    |j         j        }|                     ||          | _        |dv rlt          j                            |          rMt          sF|j        	                    t          j                            t          j        d|                      |                     ||          }||j        	                    |           |}t          j        |          }t          j        t          j        |j        d         gt'          |          z  |j                             }	t          j                            |          sat          j                            |          r|dvs>t          j                            |          st          j                            |          r!|                    t2          d| j                   |                     |||	| j                   d S )	Nr  zJImplemented pyarrow.compute.subtract_checked which raises on overflow for r   r   rJ   )__truediv__r  r  )r  )r)   r%   r  series_array_excrK   rL   rP   r   r   r   r   r   r   r   r  rY   r   rZ   r  rr  rN   rt   rT   rS   r  r  r  check_opname)
r   r\   r  r'   r  r[   r   r   r   r  s
             r(   test_arith_series_with_arrayz2TestBaseArithmeticOps.test_arith_series_with_array  s    :+ $ : :$h!
 !

 % 
 ,,X66 ( L##!!?C8@C C "     ++,DhOOL##D)))*ioo 	"(CHQK=3s88#;4:NNNOO H  **		X ##H--		X -4SSSx##H-- T x$$X.. T
  5z4CVWWW#w43HIIIIIr*   c                 V   |j         j        }t          j                            |          ryt          j                            |          sZt          j        |          }t          rd}nd}t          j
        t          |          5  ||z    d d d            n# 1 swxY w Y   d S t          rt          j                            |          st          j                            |          rB|j                            t          j                            t          d|                      n[|                    d          rF|j                            t          j                            t          j        d|                      t)                                          |           d S )Nz7Function add_checked has no kernel matching input types9Function 'add_checked' has no kernel matching input typesr   z add_checked not implemented for r   int8zraises on overflow for )r)   r%   rK   rL   r   rT   rY   r   r   r   r   rX   r   rM   r   r   r   r   r   r   r   $test_add_series_with_extension_array)r   r\   r'   r[   r   r   r   s         r(   r  z:TestBaseArithmeticOps.test_add_series_with_extension_array  s   :+8)) 	"(2F2Fx2P2P 	 )D//C" ROQ2#>>>   d

	               F 	BH$8$8$B$B 	H))	 L##!!.HhHH "      __V$$ 	L##!!??X?? "     	44T:::::s   BB B)r   r   r   rX   
divmod_excclassmethodr  r  r  r  r  r  r  r  r  r  r   r   s   @r(   r  r    s        $J/ / [/, , ,$ $ $L
 
 
  .8 8 8tN N N N N>M M M M M>0J 0J 0Jd#; #; #; #; #; #; #; #; #;r*   r  c                   f    e Zd Zd Zd Zej                            dg d          d             ZdS )TestBaseComparisonOpsc                    t          j        |          }t          j        t          j        |j        d         gt	          |          z  |j                            }|j        dv r\ |||          }|d         |u sJ |d         |u sJ |                    ||          }||d<   ||d<   |                     ||           d S d }	  |||          }n# t          $ r}	|	}Y d }	~	nd }	~	ww xY w|.|                    ||          }|                     ||           d S t          j        t          |                    5  |                    ||           d d d            d S # 1 swxY w Y   d S )Nr   rJ   )eqne   a   )rY   r   rZ   r  rr  r)   r   r  r   	Exceptionr   r   r_   )
r   r\   comparison_oprz   r   r  r   r   r  errs
             r(   test_compare_arrayz(TestBaseComparisonOps.test_compare_array  s   ioo 	"(CHQK=3s88#;4:NNNOO!\11"]3..F !9((((":)))){{5-88H"HQK#HRL$$VX66666 C&sE22    {;;um<<((:::::]499-- 6 6KK}5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6s*   C 
C)C$$C)=E!!E%(E%c                     t          j        t          d          5   ||t                                 d d d            d S # 1 swxY w Y   d S )Nz'.* not implemented for <class 'object'>r   )r   r   rX   object)r   r\   r  s      r(   test_invalid_other_compz-TestBaseComparisonOps.test_invalid_other_comp  s    ]'P
 
 
 	* 	* M$)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   AA	Amasked_dtype)booleanInt64r   c                    g d}t          j        ||          }t          j        ||                                 d          } |||          }|t          j        t          j        t          j        fv rg d}ng d}t          j        |t          t          	                                                    }t          j        ||           d S )N)r1   r   NrJ   r   )FFN)TTN)rY   r   loweroperatorltgtr  r!   rK   bool_r   r   )	r   r  r  r\   
ser_maskedser_par   expr   s	            r(   test_comp_masked_numpyz,TestBaseComparisonOps.test_comp_masked_numpy  s     ||Yt<888
4,*<*<*>*>'I'I'IJJJvz22X[(+x{CCC&&&CC$$$C9S
288::(>(>???
vx00000r*   N)	r   r   r   r  r  r   r   r   r  ry   r*   r(   r  r    si        6 6 6@* * * [^-L-L-LMM1 1 NM1 1 1r*   r  c                      e Zd ZdZd Zej                            ddg dfej	        g dfdg df e
j        d          g dfdg d	f e
j        d          g d	fg          d
             Zd Zej                            ddg dfej	        g dfdg d	fdg df e
j        d          g d	f e
j        d          g dfg          d             Zd Zej                            ddg dfej	        g dfdg df e
j        d          g df e
j        d          g d	fg          d             Zej                            dddgddgddgg          d             ZdS )TestLogicalOpsz1Various Series and DataFrame logical ops methods.c                    t          j        dgdz  dgdz  z   d gdz  z   d          }t          j        g ddz  d          }||z  }t          j        g dd          }t          j        ||           ||z  }t          j        ||           t          j        |t          j        dgdz  dgdz  z   d gdz  z   d                     t          j        |t          j        g ddz  d                     d S )NTr  Fboolean[pyarrow]rJ   TFN)	TTTTFNTNNrY   r   r   r   r   r?   r@   r   r   s        r(   test_kleene_orzTestLogicalOps.test_kleene_or  s;   ItfqjE7Q;.$!;CUVVVI)))A-5GHHHQ9CCC$
 
 
 	vx000Q
vx000 	ItfqjE7Q;.$!;CUVVV	
 	
 	
 	ry,,,q08JKKK	
 	
 	
 	
 	
r*   zother, expectedN)TNNT)TTTFr  c                     t          j        g dd          }||z  }t          j        |d          }t          j        ||           ||z  }t          j        ||           t          j        |t          j        g dd                     d S Nr  r  rJ   r  r   r  r   r?   r   s        r(   test_kleene_or_scalarz$TestLogicalOps.test_kleene_or_scalar)       I)))1CDDDU9X-?@@@
vx000
vx000 	ry,,,4FGGG	
 	
 	
 	
 	
r*   c                    t          j        dgdz  dgdz  z   d gdz  z   d          }t          j        g ddz  d          }||z  }t          j        g dd          }t          j        ||           ||z  }t          j        ||           t          j        |t          j        dgdz  dgdz  z   d gdz  z   d                     t          j        |t          j        g ddz  d                     d S )NTr  Fr  rJ   r  )	TFNFFFNFNr  r  s        r(   test_kleene_andzTestLogicalOps.test_kleene_andB  s;   ItfqjE7Q;.$!;CUVVVI)))A-5GHHHQ9GGG$
 
 
 	vx000Q
vx000 	ItfqjE7Q;.$!;CUVVV	
 	
 	
 	ry,,,q08JKKK	
 	
 	
 	
 	
r*   )NFNFFFc                     t          j        g dd          }||z  }t          j        |d          }t          j        ||           ||z  }t          j        ||           t          j        |t          j        g dd                     d S r  r  r  s        r(   test_kleene_and_scalarz%TestLogicalOps.test_kleene_and_scalarX  r  r*   c                    t          j        dgdz  dgdz  z   d gdz  z   d          }t          j        g ddz  d          }||z  }t          j        g dd          }t          j        ||           ||z  }t          j        ||           t          j        |t          j        dgdz  dgdz  z   d gdz  z   d                     t          j        |t          j        g ddz  d                     d S )NTr  Fr  rJ   r  )	FTNTFNNNNr  r  s        r(   test_kleene_xorzTestLogicalOps.test_kleene_xorq  s;   ItfqjE7Q;.$!;CUVVVI)))A-5GHHHQ9DDD$
 
 
 	vx000Q
vx000 	ItfqjE7Q;.$!;CUVVV	
 	
 	
 	ry,,,q08JKKK	
 	
 	
 	
 	
r*   NNN)FTNc                     t          j        g dd          }||z  }t          j        |d          }t          j        ||           ||z  }t          j        ||           t          j        |t          j        g dd                     d S r  r  r  s        r(   test_kleene_xor_scalarz%TestLogicalOps.test_kleene_xor_scalar  s     I)))1CDDDU9X-?@@@
vx000
vx000 	ry,,,4FGGG	
 	
 	
 	
 	
r*   zop, exp__and____or____xor__c                 <   g d}t          j        |d          }t          j        |d          } t          ||          |          }t          j        |dd gt          t                                                              }t          j        ||           d S )Nr  r  rJ   r  F)rY   r   r   r!   rK   r  r   r   )r   r  r   r\   r  r  r   r   s           r(   test_logical_masked_numpyz(TestLogicalOps.test_logical_masked_numpy  s     #""Yt9555
4'9:::$$$Z009c5$/z"((**7M7MNNN
vx00000r*   )r   r   r   __doc__r	  r   r   r   rY   rx   r[  r  r  r  r  r  r  r  ry   r*   r(   r  r    s       ;;
 
 
, [%%%&U&&&'%%%&RXd^^///0'''(RXe__1112	

 

 

 


 
 
, [&&&'U'''(&&&')))*RXd^^0001RXe__3334	

 

 

 


 
 
, [%%%&U&&&'&&&'RXd^^0001RXe__1112	
	 	
 
	 	
 [t	
 1 1 1 1 1r*   r  c                     t          j        t          d          5  t          j        d           d d d            n# 1 swxY w Y   t          j        d          } t          t
                              dd                    }| |k    sJ t          j        t          d          5  t          j        d           d d d            d S # 1 swxY w Y   d S )NzPassing pyarrow typer   z#not_a_real_dype[s, tz=UTC][pyarrow]ztimestamp[s, tz=UTC][pyarrow]r  UTCzdecimal(7, 2)[pyarrow])r   r   rX   r!   r  rK   	timestamp)r)   r   s     r(   Ftest_arrowdtype_construct_from_string_type_with_unsupported_parametersr"    sq   	*2H	I	I	I P P()NOOOP P P P P P P P P P P P P P P ,-LMME",,sE2233HH	*2H	I	I	I C C()ABBBC C C C C C C C C C C C C C C C C Cs!   =AA'C		CCc                      d} d}t          j        t          |          5  t          j        t          d          |            d d d            d S # 1 swxY w Y   d S )Nzint64[pyarrow]foobar[pyarrow]zYPassing pyarrow type specific parameters \(\[pyarrow\]\) in the string is not supported\.r   r  rJ   )r   r   rX   rY   r   range)invalidr   s     r(   ;test_arrowdtype_construct_from_string_type_only_one_pyarrowr&    s    -G	%  
*#	6	6	6 + +
	%(('****+ + + + + + + + + + + + + + + + + +s   $AAAinterpolation)linearr  highernearestmidpointquantiler0   c                    | j         j        }|                     g d          } t          j        |           }t
          j                            |          s>t
          j                            |          st
          j        	                    |          r]t          rd}nd}t          j        t
          j        |          5  |                    ||           d d d            n# 1 swxY w Y   d S t
          j                            |          sEt
          j                            |          s&t
          j                            |          rt          snpt
          j                            | j        j                  rnF|j                            t          j                            t
          j        d|                      |                     g d          } t          j        |           }|                    ||          }t
          j                            |          r|dvr|j        rd	|j         d
|j         d}nd	|j         d}|                    |          }	|	                    ||          }
|dk    r*|j        dk    r|
                    d          }
||
k    sJ nR|j        dk    r|
j                            d          }
tA          j!        ||
                    | j                              d S |dk    r|| d         k    sJ d S t          j        |                     ddg          ddg          }
t
          j                            |          s>t
          j                            |          st
          j                            |          r*|
                    d          }
|                    d          }tA          j!        ||
           d S )Nr   r   r   z;Function quantile has no kernel matching input types \(.*\)z=Function 'quantile' has no kernel matching input types \(.*\)r   )qr'  z&quantile not supported by pyarrow for r   )r  r)  zM8[z, r  r0   rU  F)warnr   )rW  float64[pyarrow])"r)   r%   takerY   r   rK   rL   rV   rW   rM   r   r   r   r   r,  rt   rN   rQ   r   r   r_   r   r   r   r   rS   r   r(  r   to_pydatetimedtfloorr   r   )r\   r'  r,  r'   r[   r   r   r   pd_dtypeser_npr   s              r(   test_quantiler8    s	   
 z'H99YYYD
)D//C 	8$$8h'' 8x((  	SPCCRC]26cBBB 	B 	BLL8=LAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	H%%
8))
 H))
 3F

 				djo	.	. 
K2JJJ   	
 	
 	
 99YYYD
)D//C\\HM\BBF	xX&& =@S+S+S ; 	.<X]<<hk<<<HH-X]---HH%%??X]?KKs??}$$#11u1==X%%%%%}$$#;,,T22"68??4:+F+FGGG3a       9TYY1v..sCjAAAH))	7x##H--	7 x""8,,	7
  '9::H]]#566F
vx00000s   C%%C),C)ztake_idx, exp_idx)r   r   r5   r5   r,   r,   r,   )r   r   r   r5   r,   r,   
multi_modesingle_mode)r#   c                     |                      |          }t          j        |          }|                    d          }t          j        |                      |                    }t	          j        ||           d S )NTdropna)r2  rY   r   moder   r   )rj   take_idxexp_idxr\   r   r   r   s          r(   test_mode_dropna_truerA    sn     !!(++D
)D//CXXTX""Fy*//8899H68,,,,,r*   c                 x   t          j        d d | d         g| j                  }|                    d          }t          j        d g| j                  }t	          j        ||           t          j        d | d         g| j                  }|                    d          }t	          j        ||           d S )Nr   rJ   Fr<  )rY   r   r)   r>  r   r   )r\   	more_nansr   r   s       r(   test_mode_dropna_false_mode_narD  &  s    	4tAw/tzBBBI^^5^))Fy$tz222H68,,,y$Q
;;;H]]%]((F68,,,,,r*   zarrow_dtype, expected_type   f1f2c                 :    t          |           j        |k    sJ d S r   )r!   r_   )arrow_dtypeexpected_types     r(   test_arrow_dtype_typerK  2  s&    " k""'=888888r*   c                     t          t                              g d                    } t          |           sJ t          j        j                            |           sJ t	          j        t          t          |                               }||          }|t          j        |                    }t          j        ||           d S )NTFT)r    rK   rZ   r   rY   corecommonis_bool_indexerr   r$  rr  r[  asarrayr   r   )r\   r  r   r   s       r(   test_is_bool_dtyperR  F  s    rxx(;(;(;<<==D7>))$/////
	%D		""##AtWFD!!"H68,,,,,r*   c                     | j         j        }t          j                            |          s>t          j                            |          st          j                            |          rt          |           sJ d S t          |           rJ d S r   )r)   r%   rK   rL   rN   rt   rQ   r   r\   r   s     r(   test_is_numeric_dtyperU  Q  s    j&G
W%%*8w''* 8w''*
  %%%%%%%#D)))))))r*   c                     | j         j        }t          j                            |          rt          |           sJ d S t          |           rJ d S r   )r)   r%   rK   rL   rt   r   rT  s     r(   test_is_integer_dtyperW  ^  X    j&G	x7## *%%%%%%%#D)))))))r*   c                     | j         j        }t          j                            |          rt          |           sJ d S t          |           rJ d S r   )r)   r%   rK   rL   rt   r   rT  s     r(   test_is_any_integer_dtyperZ  g  rX  r*   c                     | j         j        }t          j                            |          rt          |           sJ d S t          |           rJ d S r   )r)   r%   rK   rL   rO   r   rT  s     r(   test_is_signed_integer_dtyper\  p  sX    j&G	x!!'** 1&t,,,,,,,*40000000r*   c                     | j         j        }t          j                            |          rt          |           sJ d S t          |           rJ d S r   )r)   r%   rK   rL   rP   r   rT  s     r(   test_is_unsigned_integer_dtyper^  x  sX    j&G	x##G,, 3(.......,T2222222r*   c                     | j         j        }t          j                            |          rt          |           sJ d S t          |           rJ d S r   )r)   r%   rK   rL   rN   r   rT  s     r(   test_is_float_dtyper`    sX    j&G	xG$$ (d#######!$'''''''r*   c                    t          j        |           }|                    d          }t          j        |          }t          j        |          }t          |          t          |          k    sJ t          j        |          }t          j        ||           t          j        |          }t          j        ||           d S )Nr5   )	rY   r   headpickledumpsrr  loadsr   r   )r\   r   expected_slicedfull_pickledsliced_pickledr   result_sliceds          r(   test_pickle_roundtriprj    s    yHmmA&&O<))L\/22N|s>222222\,''F68,,,L00M=/:::::r*   c                    | j                                         j        }|                    | j                  }t          |j        t                    rJ t          |j        t                    sJ t          j        ||            d S r   )	r   	to_pandasrZ   r   r)   r   r!   r   r   )r\   pd_arrayr   s      r(   test_astype_from_non_pyarrowrn    st    z##%%+H__TZ((F(.*55555flJ/////#FD11111r*   c                      t          j        dg          } |                     d          }t          j        dgd          }t          j        ||           d S )Nz1.0r1  r.   rJ   )rY   r   r   r   r   r   r   r   s      r(   &test_astype_float_from_non_pyarrow_strrq    sU    
)UG

CZZ*++Fy#&8999H68,,,,,r*   c                    |                                  }| j        j        }t          j                            |          st          j                            |          r"t          j        t          |                     }nt          j        | j                  }| j
        r;|                    t                    }t          j        |t          j        |           <   t!          j        ||           d S r   )to_numpyr   r_   rK   rL   rT   rS   r[  rZ   list_hasnar   r  rY   rx   r:  r   assert_numpy_array_equal)r\   r   r   r   s       r(   test_to_numpy_with_defaultsrw    s    ]]__FjoG	xG$$ ((=(=g(F(F (8DJJ''8DJ''{ (??6**"$%11111r*   c                     dd g} t          j        | d          }|                                }t          j        dt           j        gt
                    }t          |d         t                    sJ t          j	        ||           d S )Nr1   r   rJ   r   )
rY   rZ   rs  r[  rx   r  r   intr   rv  )r\   arrr   r   s       r(   test_to_numpy_int_with_nar{    sz    t9D
(4/
0
0
0C\\^^FxBE
&111HfQi%%%%%11111r*   zna_val, exp)r1   r1   c                     t          j        t           j        t           j        gd          }|                    d|           }t	          j        |gdz  d          }t          j        ||           d S )Nnull[pyarrow]rJ   r   )r)   rz   r5   rY   rZ   rx   rs  r[  r   rv  )na_valr   rz  r   r   s        r(   test_to_numpy_null_arrayr    sh     (BE25>
9
9
9C\\	F\;;Fx	333H11111r*   c                      t          j        t           j        t           j        gd          } |                     d           }t	          j        t           j        gdz  d          }t          j        ||           d S )Nr}  rJ   r5   r  r~  )rz  r   r   s      r(   !test_to_numpy_null_array_no_dtyper    sf    
(BE25>
9
9
9C\\\%%Fx!8444H11111r*   c                 >   |                                  }|                                 }| d         |d d <   t          t                              | d         gt	          |           z  | j        j                            }t          j        ||           |                                 }| d d d         |d d <   | d d d         }t          j        ||           |                                 }| 	                                |d d <   | }t          j        ||           d S )Nr   r_   r3   )
copyr    rK   rZ   rr  r   r_   r   r   tolist)r\   origr   r   s       r(   test_setitem_null_slicer    s    99;;DYY[[FQF111I"
$q'SYY&TZ_== H #FH555YY[[FTTrT
F111IDDbDzH#FH555YY[[FF111IH#FH55555r*   c                    | j         j        }t          j                            |          st          j                            |          rd}t          }d}nyt          j                            |          s>t          j                            |          st          j        	                    |          rd}t          j
        }d}nd}t          }d}t          j        ||          5  || d d <   d d d            d S # 1 swxY w Y   d S )N{   zInvalid value '123' for dtypefoozCould not convertzInvalid value 'foo' for dtyper   )r   r_   rK   rL   rV   rW   r   rt   rN   rM   r   r   r   )r\   r   
fill_valuer  r   s        r(   test_setitem_invalid_dtyper    s?   joG	x'"" .bh&8&8&A&A .
-
G$$.8((. 8w''.
 
o!
-	s#	&	&	&  QQQ                 s   &C;;C?C?zreturns object with 7.0r~   c                  R   t                               t          j        d          t          j        d          gt                                                     } |                     t                                           t          t                                                     ij                  }t          j	        t          j        d          t          j        d          gt          t                                                               }t          j        ||           d S )Nz
2019-12-31r  types_mapperrJ   )rK   rZ   rY   	Timestampdate32rl  r!   date64getr   r   r   )
date_arrayr   r   s      r(   &test_from_arrow_respecting_given_dtyper    s    	l	#	#R\,%?%?@ryy{{   J !!iikk:biikk#:#:;? "  F y	l	#	#R\,%?%?@%%  H 68,,,,,r*   zdoesn't raise with 7c                     t                               ddgt                                                     } t          j        t           j        d          5  |                     t                                           t          t                                                     ij	                   d d d            d S # 1 swxY w Y   d S )Nr         @r  zFloat value 1.5 was truncatedr   r  )
rK   rZ   r   r   r   r   rl  r!   r   r  )rZ   s    r(   -test_from_arrow_respecting_given_dtype_unsafer    s    HHc3ZbjjllH33E	r.M	N	N	N Q QbjjllJrxxzz4J4J%K%OPPPQ Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Qs   AB<<C C c                     d} t          j        dddt           j        g|           }|                    d          }t          j        dddt           j        g|           }t	          j        ||           t          j        d	t           j        d
g|           }|                    d          }t          j        dt           j        dg|           }t	          j        ||           d S )Nr1  r/   gGz?g{Gz@rJ   r1   g333333?g@g^@gp=
cL@r3   g      ^@g      N@)rY   r   rx   roundr   r   )r)   r   r   r   s       r(   
test_roundr    s    E
)S$be,E
:
:
:CYYq\\Fy#sC/u===H68,,,
)UBE5)
7
7
7CYYr]]Fy%-U;;;H68,,,,,r*   c                     | \  }}}|                      g d          }t          j        |d<   |rt          j        |          }d}t	          j        t          |          5  |                    |           d d d            d S # 1 swxY w Y   d S )N)r5   r   r1   r3   zOsearchsorted requires array to be sorted, which is impossible with NAs present.r   )r2  rY   rx   r   r   r   r  searchsorted)rn   r  r@   re   r?   rz  r   s          r(    test_searchsorted_with_na_raisesr  &  s    GAq!


			
*
*CeCG inn	0  
z	-	-	-                   s    BB
Bc                     t          j        t          j        ddgt          t                              t                                          t                                                                        ddgd          } |                                 }| 	                    ddg	          }t          j        ||           d S )
Nr  r  rJ   r1   r5   )r?   r@   r?   r@   )by)rY   r  r   r!   rK   
dictionaryint32r   r  sort_valuesr   r^  )r  r   r   s      r(   test_sort_values_dictionaryr  7  s    	c
*R]]288::ryy{{-S-S"T"T   Q		
 	

 
B wwyyH^^Sz^**F&(+++++r*   patabcz	a[a-z]{2}c                 T   t          j        dd gt          t                                                              }|j                            |           }t          j        dd gt          t                                                              }t          j	        ||           d S )Nr  rJ   r1   )
rY   r   r!   rK   r   rY  r   r  r   r   )r  r   r   r   s       r(   test_str_countr  E  s~    
)UDMBIIKK)@)@
A
A
ACW]]3Fy!T*RXXZZ*@*@AAAH68,,,,,r*   c                     t          j        dd gt          t                                                              } t          j        t          d          5  | j        	                    dd           d d d            d S # 1 swxY w Y   d S )Nr  rJ   z	count notr   r1   flags)
rY   r   r!   rK   r   r   r   rX   rY  r   r   s    r(    test_str_count_flags_unsupportedr  M  s    
)UDMBIIKK)@)@
A
A
AC	*+	>	>	> & &e1%%%& & & & & & & & & & & & & & & & & &   BB	Bzside, str_funcr  rjustr  ljustbothcenterc                    t          j        dd gt          t                                                              }|j                            d| d          }t          j         t          d|          dd          d gt          t                                                              }t          j	        ||           d S )Nr?   rJ   r  r  )widthsidefillchar)
rY   r   r!   rK   r   rY  padr   r   r   )r  str_funcr   r   r   s        r(   test_str_padr  S  s     )S$Kz"))++'>'>
?
?
?CW[[qtc[::Fy	h		3	'	'.j6M6M  H 68,,,,,r*   c                     t          j        dd gt          t                                                              } t          j        t          d          5  | j        	                    ddd           d d d            d S # 1 swxY w Y   d S )Nr?   rJ   zInvalid side: foor   r  r  r  )
rY   r   r!   rK   r   r   r   r  rY  r  r  s    r(   test_str_pad_invalid_sider  _  s    
)S$Kz"))++'>'>
?
?
?C	z)<	=	=	= # #Auc"""# # # # # # # # # # # # # # # # # #r  zpat, case, na, regex, expabFTAbz	a[a-z]{1}z	A[a-z]{1}c                 X   t          j        dd gt          t                                                              }|j                            | |||          }t          j        |t          t                                                              }t          j	        ||           d S )Nr  rJ   )casenaregex)
rY   r   r!   rK   r   rY  containsr  r   r   )r  r  r  r  r   r   r   r   s           r(   test_str_containsr  e  s     )UDMBIIKK)@)@
A
A
ACWc5AAFyJrxxzz$:$:;;;H68,,,,,r*   c                     t          j        dd gt          t                                                              } t          j        t          d          5  | j        	                    dd           d d d            d S # 1 swxY w Y   d S )Nr  rJ   zcontains notr   r?   r1   r  )
rY   r   r!   rK   r   r   r   rX   rY  r  r  s    r(   #test_str_contains_flags_unsupportedr  v  s    
)UDMBIIKK)@)@
A
A
AC	*.	A	A	A ' 'A&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'r  zside, pat, na, exp
startswithr@   endswithbcc                 \   t          j        dd gt          t                                                              } t          |j        |           ||          }t          j        |t          t                                                              }t          j	        ||           d S )Nr  rJ   )r  
rY   r   r!   rK   r   r   rY  r  r   r   )r  r  r  r   r   r   r   s          r(   test_str_start_ends_withr  |  s     )UDMBIIKK)@)@
A
A
AC#WSWd##CB///FyJrxxzz$:$:;;;H68,,,,,r*   zarg_name, argreplr  r  r1   c                     t          j        dd gt          t                                                              }dddd}||| <   t          j        t          d          5   |j        j	        d	i | d d d            d S # 1 swxY w Y   d S )
Nr  rJ   r@   r  T)r  r  r  zreplace is not supportedr   ry   )
rY   r   r!   rK   r   r   r   rX   rY  replace)arg_nameargr   r  s       r(   test_str_replace_unsupportedr    s    
 )UDMBIIKK)@)@
A
A
AC#55FF8	*2L	M	M	M " "!!&!!!" " " " " " " " " " " " " " " " " "s   #BB
Bzpat, repl, n, regex, expr?   r  r3   xbxcxbacz[a-b]xxxcc                 X   t          j        dd gt          t                                                              }|j                            | |||          }t          j        |t          t                                                              }t          j        ||           d S )NabacrJ   )nr  )	rY   r   r!   rK   r   rY  r  r   r   )r  r  r  r  r   r   r   r   s           r(   test_str_replacer    s     )VTN*RYY[[*A*A
B
B
BCW__S$!5_99FyJryy{{$;$;<<<H68,,,,,r*   c                     t          j        dd gt          t                                                              } t          j        t          d          5  | j        	                    ddg           d d d            d S # 1 swxY w Y   d S )Nr  rJ   zrepeat is notr   r1   r5   )
rY   r   r!   rK   r   r   r   rX   rY  repeatr  s    r(   test_str_repeat_unsupportedr    s    
)UDMBIIKK)@)@
A
A
AC	*/	B	B	B  1v                 r  zUnsupported for pyarrow < 7r   c                  T   t          j        dd gt          t                                                              } | j                            d          }t          j        dd gt          t                                                              }t          j        ||           d S )Nr  rJ   r5   abcabc)	rY   r   r!   rK   r   rY  r  r   r   rp  s      r(   test_str_repeatr    s     )UDMBIIKK)@)@
A
A
ACW^^AFy(D)BIIKK1H1HIIIH68,,,,,r*   zpat, case, na, expc                 V   t          j        dd gt          t                                                              }|j                            | ||          }t          j        |t          t                                                              }t          j	        ||           d S Nr  rJ   )r  r  
rY   r   r!   rK   r   rY  r   r  r   r   r  r  r  r   r   r   r   s          r(   test_str_matchr         )UDMBIIKK)@)@
A
A
ACW]]3Tb]11FyJrxxzz$:$:;;;H68,,,,,r*   Abcc                 V   t          j        dd gt          t                                                              }|j                            | ||          }t          j        |t          t                                                              }t          j	        ||           d S r  r  r  s          r(   test_str_fullmatchr    r  r*   zsub, start, end, exp, exp_typr  r5   c                 (   t          j        dd gt          t                                                              }|j                            | ||          }t          j        |t          |                    }t          j        ||           d S )Nr  rJ   )startend)	rY   r   r!   rK   r   rY  findr   r   )subr  r  r   exp_typr   r   r   s           r(   test_str_findr    sz    
 )UDMBIIKK)@)@
A
A
ACW\\#U\44FyJw$7$7888H68,,,,,r*   c                     t          j        dd gt          t                                                              } t          j        t          d          5  | j        	                    dd           d d d            d S # 1 swxY w Y   d S )Nr  rJ   zfind not implementedr   r  r1   )r  )
rY   r   r!   rK   r   r   r   rX   rY  r  r  s    r(   test_str_find_notimplementedr    s    
)UDMBIIKK)@)@
A
A
AC	*2H	I	I	I $ $T###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $r  zi, exp)r@   eN)re   r  N)re   NN)r?   NNr  c                 P   t          j        g dt          t                                                              }|j                            |           }t          j        |t          t                                                              }t          j        ||           d S )N)r  deNrJ   )	rY   r   r!   rK   r   rY  r  r   r   )ir   r   r   r   s        r(   test_str_getr    s}     )'''z"))++/F/F
G
G
GCW[[^^FyJryy{{$;$;<<<H68,,,,,r*   z=TODO: StringMethods._validate should support Arrow list typesc            
         t          j        t          t                              t          d          t          d          d g                              } | j                            d          }t          j        g dt          t          	                                                    }t          j        ||           d S )Nr  123=)za=b=cz1=2=3NrJ   )rY   r   r    rK   rZ   rt  rY  joinr!   r   r   r   rp  s      r(   test_str_joinr    s    
 )'$u++tE{{D1Q(R(RSS
T
TCW\\#Fy111BIIKK9P9PQQQH68,,,,,r*   zstart, stop, step, expc                 T   t          j        dd gt          t                                                              }|j                            | ||          }t          j        |t          t                                                              }t          j        ||           d S NabcdrJ   )	rY   r   r!   rK   r   rY  slicer   r   )r  stopstepr   r   r   r   s          r(   test_str_slicer  
  s     )VTN*RYY[[*A*A
B
B
BCW]]5$--FyJryy{{$;$;<<<H68,,,,,r*   zstart, stop, repl, expaxcdxcdcdc                 T   t          j        dd gt          t                                                              }|j                            | ||          }t          j        |t          t                                                              }t          j        ||           d S r  )	rY   r   r!   rK   r   rY  slice_replacer   r   )r  r  r  r   r   r   r   s          r(   test_str_slice_replacer	    s     )VTN*RYY[[*A*A
B
B
BCW""5$55FyJryy{{$;$;<<<H68,,,,,r*   zvalue, method, exp)a1cisalnumT)z!|,r  F)aaaisalphaT)z!!!r  F)u   ٠	isdecimalT)z~!r  F)rA   isdigitT)~r  F)r  islowerT)aaAr  F)r  	isnumericT)11Ir  F) isspaceT) r  F)zThe ThatistitleT)zthe Thatr  F)AAAisupperT)AAcr  Fc                 Z   t          j        | d gt          t                                                              } t          |j        |                      }t          j        |d gt          t                                                              }t          j	        ||           d S NrJ   r  )valuer9  r   r   r   r   s         r(   test_str_is_functionsr  (  s    0 )UDMBIIKK)@)@
A
A
AC%WSWf%%''Fy#tJrxxzz,B,BCCCH68,,,,,r*   zmethod, exp
capitalizezAbc deftitlezAbc DefswapcasezAbC Defr  zabc defupperzABC DEFcasefoldc                 Z   t          j        dd gt          t                                                              } t          |j        |                       }t          j        |d gt          t                                                              }t          j        ||           d S )NzaBc dEFrJ   	rY   r   r!   rK   r   r   rY  r   r   )r9  r   r   r   r   s        r(   test_str_transform_functionsr'  F  s     )Y%Z		-D-D
E
E
EC%WSWf%%''Fy#tJryy{{,C,CDDDH68,,,,,r*   c                  R   t          j        dd gt          t                                                              } | j                                        }t          j        dd gt          t                                                              }t          j	        ||           d S )Nr  rJ   r,   )
rY   r   r!   rK   r   rY  rr  r  r   r   rp  s      r(   test_str_lenr)  X  sz    
)VTN*RYY[[*A*A
B
B
BCW[[]]Fy!T*RXXZZ*@*@AAAH68,,,,,r*   zmethod, to_strip, val)r  Nz abc )r  r  xabcx)lstripNz abc)r+  r  xabc)rstripNzabc )r-  r  abcxc                 ^   t          j        |d gt          t                                                              } t          |j        |           |          }t          j        dd gt          t                                                              }t          j        ||           d S )NrJ   )to_stripr  r&  )r9  r0  valr   r   r   s         r(   test_str_stripr2  _  s     )S$Kz"))++'>'>
?
?
?C%WSWf%%x888Fy%j.E.EFFFH68,,,,,r*   r1  abc123c                 T   t          j        | d gt          t                                                              }|j                            d          }t          j        dd gt          t                                                              }t          j        ||           d S NrJ   r  r  )	rY   r   r!   rK   r   rY  removesuffixr   r   r1  r   r   r   s       r(   test_str_removesuffixr8  q      
)S$Kz"))++'>'>
?
?
?CW!!%((Fy%j.E.EFFFH68,,,,,r*   123abcc                 T   t          j        | d gt          t                                                              }|j                            d          }t          j        dd gt          t                                                              }t          j        ||           d S r5  )	rY   r   r!   rK   r   rY  removeprefixr   r   r7  s       r(   test_str_removeprefixr=  y  r9  r*   errorsignorestrictzencoding, exputf8s   abcutf32s     a   b   c   c                 V   t          j        dd gt          t                                                              }|j                            ||           }t          j        |d gt          t                                                              }t          j	        ||           d S Nr  rJ   )
rY   r   r!   rK   r   rY  encodebinaryr   r   )r>  encodingr   r   r   r   s         r(   test_str_encoderH    s     )UDMBIIKK)@)@
A
A
ACW^^Hf--Fy#tJryy{{,C,CDDDH68,,,,,r*   c           	         t          j        g dt          t                                                              }|j                            d|           }t          j        dgg d gt          t                              t                                                                        }t          j	        ||           d S )N)r  efgNrJ   r@   r  )
rY   r   r!   rK   r   rY  findalllist_r   r   )r  r   r   r   s       r(   test_str_findallrM    s    
)(((
299;;0G0G
H
H
HCW__S_..Fy3%T**RXXbiikk=R=R2S2STTTH68,,,,,r*   r9  rW  rindexz
start, endc                    t          j        dd gt          t                                                              } t          |j        |           d||          }t          j        dd gt          t                                                              }t          j	        ||           t          j        t          d          5   t          |j        |           d||           d d d            d S # 1 swxY w Y   d S )NabcbarJ   re   r5   zsubstring not foundr   r  )rY   r   r!   rK   r   r   rY  r   r   r   r   r   r  )r9  r  r  r   r   r   s         r(   test_str_r_indexrQ    s     )WdO:biikk+B+B
C
C
CC%WSWf%%c5#66Fy!T*RXXZZ*@*@AAAH68,,,	z)>	?	?	? 4 4   s3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s   	!C77C;>C;formNFCNFKCc                    t          j        dd gt          t                                                              }|j                            |           }|                                }t          j	        ||           d S rD  )
rY   r   r!   rK   r   rY  rn  r  r   r   )rR  r   r   r   s       r(   test_str_normalizerV    se    
)UDMBIIKK)@)@
A
A
ACWt$$FxxzzH68,,,,,r*   c                 X   t          j        g dt          t                                                              }|j                            d| |          }t          j        g dt          t                                                              }t          j	        ||           d S )N)rP  r  NrJ   re   )r5   r3   N)
rY   r   r!   rK   r   rY  rfindr   r   r   )r  r  r   r   r   s        r(   test_str_rfindrY    s     )****RYY[[2I2I
J
J
JCW]]3s++Fyj.D.DEEEH68,,,,,r*   c                  X   t          j        dd gt          t                                                              } | j                            ddi          }t          j        dd gt          t                                                              }t          j        ||           d S )NrP  rJ   r  r@   bbcbb)	rY   r   r!   rK   r   rY  	translater   r   rp  s      r(   test_str_translater]    s    
)WdO:biikk+B+B
C
C
CCWCy))Fy'4
299;;0G0GHHHH68,,,,,r*   c                  T   t          j        dd gt          t                                                              } | j                            d          }t          j        dd gt          t                                                              }t          j        ||           d S )NrP  rJ   r  zabc
ba)	rY   r   r!   rK   r   rY  wrapr   r   rp  s      r(   test_str_wrapr`    s}    
)WdO:biikk+B+B
C
C
CCW\\!__Fy)T**RYY[[2I2IJJJH68,,,,,r*   c                  f   t          j        g dt          t                                                              } | j                                        }t          j        g dg dg dgt          t                                                    g d          }t          j
        ||           d S )N)za|bNza|crJ   )TTFr  rM  )r?   r@   re   )r)   r  )rY   r   r!   rK   r   rY  get_dummiesr  r  r   r^  rp  s      r(   test_get_dummiesrc    s    
)(((
299;;0G0G
H
H
HCW  ""F|			3335H5H5HI$$  H
 &(+++++r*   c                     t          j        dd gt          t                                                              } | j                            d          }t          j        g dg dgt          t                                                              }t          j	        ||           | j                            dd          }t          j        t          t                              g dd g                              }t          j        ||           | j                            d          }t          j        g dg dgt          t                                                              }t          j	        ||           | j                            dd          }t          j        t          t                              g dd g                              }t          j        ||           d S )	NrP  rJ   r@   )r?   r@   cbar  Fexpand)r  r@   r?   )rY   r   r!   rK   r   rY  	partitionr  r   r^  r    rZ   r   
rpartitionrp  s      r(   test_str_partitionrj    s   
)WdO:biikk+B+B
C
C
CCWs##F|			.../z"))++7N7N  H &(+++Ws511Fy,RXX7H7H7H$6O-P-PQQRRH68,,,W$$F|			.../z"))++7N7N  H &(+++WE22Fy,RXX7H7H7H$6O-P-PQQRRH68,,,,,r*   c            	      z   t          j        g dt          t                                                              } | j                            d          }t          j        t          t                              g dg dd g                              }t          j
        ||           | j                            dd          }t          j        t          t                              dd	gd
d	gd g                              }t          j
        ||           | j                            dd          }t          j        t          t                              ddgddgd g                              }t          j
        ||           | j                            ddd          }t          j        t          t                              g d                    t          t                              g d                    d          }t          j        ||           | j                            dd          }t          j        t          t                              g d                    t          t                              g d                    d          }t          j        ||           d S )Na1cbcba2cbcbNrJ   re   a1r@   r@   a2r@   r@   r1   r  rp  bcbrr  z[1-2]T)r  r?   cbcb)r  rg  )r?   r?   N)ru  ru  Nr   r1   r6   rf  r?   rn  Nru  NN)rY   r   r!   rK   r   rY  splitr    rZ   r   r   r  r^  rp  s      r(   test_str_splitrz    sf   
)...j6M6M
N
N
NCW]]3FyBHH&6&6&68H8H8H$%OPPQQ H 68,,,W]]3!]$$FyBHHtUmdE]D%IJJKK H 68,,,W]]7$]//FyBHHsFmc6]D%IJJKK H 68,,,W]]7$t]<<F|"288,<,<,<#=#=>>"288,B,B,B#C#CDD	
 	
 H &(+++W]]3t],,F|"288,A,A,A#B#BCC"288,@,@,@#A#ABB	
 	
 H &(+++++r*   c            	         t          j        g dt          t                                                              } | j                            d          }t          j        t          t                              g dg dd g                              }t          j
        ||           | j                            dd          }t          j        t          t                              dd	gd
d	gd g                              }t          j
        ||           | j                            ddd          }t          j        t          t                              g d                    t          t                              g d                    d          }t          j        ||           | j                            dd          }t          j        t          t                              g d                    t          t                              g d                    d          }t          j        ||           d S )Nrl  rJ   re   ro  rq  r1   rs  a1cbr@   a2cbT)r  rg  )r|  r}  N)r@   r@   Nrv  r6   rf  rw  rx  )rY   r   r!   rK   r   rY  rsplitr    rZ   r   r   r  r^  rp  s      r(   test_str_rsplitr  	  s   
)...j6M6M
N
N
NCW^^C  FyBHH&6&6&68H8H8H$%OPPQQ H 68,,,W^^C1^%%FyBHHvsmfc]D%IJJKK H 68,,,W^^C1T^22F|"288,B,B,B#C#CDD"288,<,<,<#=#=>>	
 	
 H &(+++W^^C^--F|"288,A,A,A#B#BCC"288,@,@,@#A#ABB	
 	
 H &(+++++r*   c                     t          j        dd gt          t                                                              } t          j        t          d          5  | j        	                    d           d d d            d S # 1 swxY w Y   d S )Nr  rJ   z,str.extract not supported with pd.ArrowDtyper   z[ab](\d))
rY   r   r!   rK   r   r   r   rX   rY  extractr  s    r(   test_str_unsupported_extractr  :	  s    
)UDMBIIKK)@)@
A
A
AC	#Q
 
 
 % % 	$$$% % % % % % % % % % % % % % % % % %s   B  BBr(  )r'  rU  r  r  c                     ddg}t                               |           }t          j        ||          }t          t                               dd g|                    }t          j        ||           d S )N1000NaTrJ   i  r  )rK   durationr    r   rZ   r   r   )r(  stringsr   r   r   s        r(   #test_duration_from_strings_with_natr  B	  sm     uoGkk$G :7'RRRF"288T4Lw8#G#GHHH#FH55555r*   c                     | j         j        }t          j                            |          sOt          j        t          d          5  t          j	        |           j
         d d d            d S # 1 swxY w Y   d S d S )Nz2Can only use .dt accessor with datetimelike valuesr   )r)   r%   rK   rL   r   r   r   AttributeErrorrY   r   r4  ru   s     r(   test_unsupported_dtr  L	  s    z'H8)) ]"V
 
 
 	 	 IdOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 s   A..A25A2zprop, expectedyear  dayday_of_week	dayofweekweekdayday_of_year	dayofyearhourminuteis_leap_yearz.is_leap_year not implemented for pyarrow < 8.0r   )marksmicrosecondr>   month
nanosecond   quartersecondrl   r   r   c                 B   t          j        t          j        dddddddd	          d gt          t                              d
                              }t          |j        |           }d }t          |t                    rt          
                                }n/t          |t                    rt                              d
          }t          j        t          t                              |d g|                              }t          j        ||           d S )Nr  r1   r5   r  r,   rl   r>   r  )r  r  r  r  r  r  r  r  r'  rJ   r  )rY   r   r  r!   rK   r!  r   r4  r   r   r  r   time64r    rZ   r   r   )propr   r   r   exp_types        r(   test_dt_propertiesr  U	  s	   > )L	 	 	 	
 d++,,  C  SVT""FH(D!! #99;;	Hd	#	# #99T??y,RXXx6FXX-V-VWWXXH68,,,,,r*   rU  r'  c           
         t          j        t          dddd          d gt          t                              |                               }|j        j        }t          j        t          t          	                    t          dd          d gt          
                    |                                         }t          j        ||           d S )	Nr  r1   r5   r  r  r  r  r  rJ   r   r  )rY   r   r   r!   rK   r!  r4  r   r    rZ   r  r   r   )r(  r   r   r   s       r(   test_dt_time_preserve_unitr  	  s    
)	t1!!	4	4	4d;d++,,  C V[FyBHHd1ajj$%7biiooHNNOO H 68,,,,,r*   r   )Nr   
US/Pacificc           	          t          j        t          dddd          d gt          t                              d|                               }|j        j        }|| k    sJ d S )	Nr  r1   r5   r  r  r'  r   rJ   )rY   r   r   r!   rK   r!  r4  r   )r   r   r   s      r(   
test_dt_tzr  	  sh    
)	t1!!	4	4	4d;dr2233  C VYFR<<<<<<r*   c                  <   t          j        t          dddd          d gt          t                              d                              } | j                                        }t          j        g dg d	gg d
d          }t          j
        ||           d S )Nr  r1   r5   r  r  r'  rJ   )r  r1   r1   r.  )r  weekr  r   )r  r)   )rY   r   r   r!   rK   r!  r4  isocalendarr  r   r^  rp  s      r(   test_dt_isocalendarr  	  s    
)	t1!!	4	4	4d;d++,,  C V!!F|	yyy!'''  H
 &(+++++r*   c                 6   t                      rQt                      rC| j                            t          j                            t          j        d                     t          j
        t          dddd          d gt          t                              d                    	          }|j                            d
          }t          j
        dd gt          t                                                    	          }t#          j        ||           d S )Nr   r   r  r1   r5   r  r  r'  rJ   z%Y-%m-%dT%H:%M:%Sz2023-01-02T03:00:00.000000000)r   r   r   r   r   r   r   rK   r   rY   r   r   r!   r!  r4  strftimer   r   r   )r'   r   r   r   s       r(   test_dt_strftimer  	  s    	
!2!4!4 	
K?   	
 	
 	
 )	t1!!	4	4	4d;d++,,  C V__011Fy	($/z"))++7N7N  H 68,,,,,r*   )ceilr5  r  c                    t          j        t          dddd          d gt          t                              d                              }t          j        t          d	          5   t          |j
        |           d
d           d d d            n# 1 swxY w Y   t          j        t          d	          5   t          |j
        |           d
d           d d d            d S # 1 swxY w Y   d S )Nr  r1   r5   r  r  r'  rJ   zambiguous is not supported.r   1Hr  	ambiguousznonexistent is not supported.nonexistent)rY   r   r   r!   rK   r!  r   r   rX   r   r4  r9  r   s     r(   *test_dt_roundlike_tz_options_not_supportedr  	  su   
)	t1!!	4	4	4d;d++,,  C 
*2O	P	P	P 7 766667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 
*2Q	R	R	R 9 9%88889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s$   *!BBB=!C++C/2C/c                    t          j        t          dddd          d gt          t                              d                              }t          j        t          d	          5   t          |j
        |           d
           d d d            n# 1 swxY w Y   t          j        t          d	          5   t          |j
        |           d            d d d            d S # 1 swxY w Y   d S )Nr  r1   r5   r  r  r'  rJ   zfreq='1B' is not supportedr   1Bz$Must specify a valid frequency: None)rY   r   r   r!   rK   r!  r   r   r  r   r4  r  s     r(   "test_dt_roundlike_unsupported_freqr  	  si   
)	t1!!	4	4	4d;d++,,  C 
z)E	F	F	F & &%%%& & & & & & & & & & & & & & & 
z)O	P	P	P & &%%%& & & & & & & & & & & & & & & & & &s$   *BBB;C''C+.C+z'Methods not supported for pyarrow < 7.0freq)DHTSLUNc                    t          j        t          ddd          d g          }t          t                              d                    } t          |j        |          d|                                |          } t          |                    |          j        |          d|            }t          j
        ||           d S )Nr  r1   )r  r  r  r'  r6   )rY   r   r   r!   rK   r!  r   r4  r   r   r   )r  r9  r   r[   r   r   s         r(   test_dt_ceil_year_floorr  	  s     )	t1!	,	,	,d3 C ",,t,,--H&wsvv&&z4zz2299(CCH5WSZZ)),f55j$jjAAF68,,,,,r*   c                  
   t          ddd          t          ddd          g} t          j        | t          t                              d                              }|j                                        }t          j	        | t                    }t          j        ||           t          d |D                       sJ |                    d          j                                        }t          j        ||           d S )Nr8   r1   r  r'  rJ   c              3   B   K   | ]}t          |          t          u V  d S r   )r_   r   ).0ress     r(   	<genexpr>z(test_dt_to_pydatetime.<locals>.<genexpr>	  s-      77tCyyH$777777r*   zdatetime64[ns])r   rY   r   r!   rK   r!  r4  r3  r[  rZ   r  r   rv  allr   )r\   r   r   r   s       r(   test_dt_to_pydatetimer  	  s    T1a  (4A"6"67D
)D
2<<+=+= > >
?
?
?CV!!##FxF+++H1117777777777zz*++.<<>>H11111r*   	date_type    @   c                 B   t          j        t          ddd          gt           t	          t
          d|                                            }t          j        t          d          5  |j	        
                                 d d d            d S # 1 swxY w Y   d S )Nr8   r:   r;   r   rJ   z#to_pydatetime cannot be called withr   )rY   r   r   r!   r   rK   r   r   r  r4  r3  )r  r   s     r(    test_dt_to_pydatetime_date_errorr   
  s     )	dB		8%7I%7%788::;;  C 
z)N	O	O	O                   s   -BBBc                     t          j        t          dddd          d gt          t                              d                              } t          j        t          d	          5  | j	        
                    d
d           d d d            n# 1 swxY w Y   t          j        t          d	          5  | j	        
                    d
d           d d d            d S # 1 swxY w Y   d S )Nr  r1   r5   r  r  r'  rJ   z ambiguous='NaT' is not supportedr   r   r  r  z"nonexistent='NaT' is not supportedr  )rY   r   r   r!   rK   r!  r   r   rX   r4  tz_localizer  s    r(   *test_dt_tz_localize_unsupported_tz_optionsr  
  si   
)	t1!!	4	4	4d;d++,,  C 
*2T	U	U	U 3 35E2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 
*2V	W	W	W 5 55e4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s$   *BBB9C##C'*C'c            	         t          j        t          dddd          d gt          t                              dd                    	          } | j                            d           }t          j        t          dddd          d gt          t                              d                    	          }t          j	        ||           d S )
Nr  r1   r5   r  r  r'  r  r  rJ   )
rY   r   r   r!   rK   r!  r4  r  r   r   rp  s      r(   test_dt_tz_localize_noner  
  s    
)	t1!!	4	4	4d;d|<<==  C V%%Fy	t1!!	4	4	4d;d++,,  H 68,,,,,r*   c                    t                      rQt                      rC|j                            t          j                            t          j        d                     t          j
        t          dddd          d gt          t                              |                               }|j                            d	          }t                              t          dddd          d gt                              |           
          }t          j                            |d	          }t          j
        t'          |                    }t)          j        ||           d S )Nr   r   r  r1   r5   r  r  rJ   r  r  r   r   r   r   r   r   r   rK   r   rY   r   r   r!   r!  r4  r  rZ   computeassume_timezoner    r   r   )r(  r'   r   r   exp_datar   s         r(   test_dt_tz_localizer  $
  sD    	
!2!4!4 	
K?   	
 	
 	
 )	t1!!	4	4	4d;d++,,  C V--Fxx	t1!!	4	4	4d;",,tBTBT   H z))(LAAHy,X6677H68,,,,,r*   znonexistent, exp_dateshift_forwardr:   r  shift_backwardz2023-03-12 01:59:59.999999999c           	         t                      rQt                      rC|j                            t          j                            t          j        d                     t          j
        t          ddddd          d gt          t                              d	                    
          }|j                            d|           }t                              |d gt                              d	                    }t          j                            |d          }t          j
        t'          |                    }t)          j        ||           d S )Nr   r   r  r  r:   r5      )r  r  r  r  r  r'  rJ   r  r  r  r  )r  exp_dater'   r   r   r  r   s          r(   test_dt_tz_localize_nonexistentr  =
  s2     	
!2!4!4 	
K?   	
 	
 	
 )	t1"1R	@	@	@$Gd++,,  C V+FFFxx4(r||D/A/AxBBHz))(LAAHy,X6677H68,,,,,r*   r   c                     t          j        d gd          } t          ||           |          }|r| dk    }nt           j        }||u sJ d S )Nr1  rJ   r   r  )rY   r   r   rx   )r   r   r   r   r   s        r(   #test_boolean_reduce_series_all_nullr  Z
  sj     )TF"4
5
5
5C1WS011@@@F )U25Xr*   r)   r   zstring[pyarrow]c                     t                               d                                          }t          j        ||           }t          j        t          |          |           }t          j        ||           d S )Nzthe quick brown foxrJ   )rK   rZ   ry  rY   r   r    r   r   )r)   rz  r   r   s       r(   test_series_from_string_arrayr  f
  sj    
(((..00
1
1C
)Cu
%
%
%Cy,S11???H3)))))r*   c                  ,   d} t          t                              t          j        | ft          j                  g                    }|                                }d|t          j        | ft          j                  <   |j        |j        k    sJ d S )Nih6 rJ   F)	r    rK   chunked_arrayr[  onesr  r  zerosr   )r  rz  r   s      r(   /test_setitem_boolean_replace_with_mask_segfaultr  n
  s}    A
b..BH0M0M0M/NOO
P
PCxxzzH*/C!RX&&&'9&&&&&&r*   zdata, arrow_dtyperD   rE   c                     t          |          }t          j        t          j        |           |          }t          j        | |          }t	          j        ||           d S r  )r!   rY   rZ   r[  r   r   )r\   rI  r)   r   r   s        r(   -test_conversion_large_dtypes_from_numpy_arrayr  w
  sZ     {##EXbhtnnE222FxE***H#FH55555r*   r   c                     t          j        g dt          |                     }|                                }t          j        g dt          t                                                    g d          }t          j        ||           d S )N)r1   r5   r  rJ   )r  r5   r1   r1   r   g       @r  r  r   r   r   min25%50%75%maxr)   rW  )rY   r   r!   describerK   r   r   r   r   r\   r   r   s       r(   test_describe_numeric_datar  
  s     9YYYj&9&9:::D]]__Fy&&&&&III  H
 68,,,,,r*   c                 X   t          j        t          dd          t          |                     }|                                }t          j        dgt          j        g d| j                                                  z   t          g d          }t          j
        ||           d S )	Nr1   r=   rJ   	   )r>   r5   r1   r  r>   rl   r  )r(  r  r  )rY   r   r$  r!   r  to_timedeltar(  r  r  r   r   r  s       r(   test_describe_timedelta_datar  
  s     9U1b\\G)<)<===D]]__Fy	
bo333',GGGNNPPPIII  H
 68,,,,,r*   c                     t          j        t          dd          t                               }|                                }t          j        dg fddD             z   t
          g d          }t          j        ||           d S )	Nr1   r=   rJ   r  c                 R    g | ]#}t          j        |j        j                   $S ))r   r(  )rY   r  r   r(  )r  vr   s     r(   
<listcomp>z/test_describe_datetime_data.<locals>.<listcomp>
  s>     
 
 
 Lwz===
 
 
r*   )r>   r1   r  r>   rl   r  )r   r   r  r  r  r  r  r  )rY   r   r$  r!   r  r  r   r   r  s   `   r(   test_describe_datetime_datar  
  s     9U1b\\G)<)<===D]]__Fy	

 
 
 
'
 
 
	

 BBB  H 68,,,,,r*   r  c                     t          j        dd g          } t          j        dd g          }t          j        | t	          t
                              d                              }t          j        |t	          t
                              d                              }||z   }t          j        dd gt	          t
                              d                              }t          j	        ||           d S )Nr1   r'  rJ   r5   )
rY   to_datetimer  r   r!   rK   r!  r  r   r   )data_tsdata_tdser_tsser_tdr   r   s         r(   2test_duration_overflow_from_ndarray_containing_natr	  
  s     naY''Goq$i((GYwjd1C1C&D&DEEEFYwjT1B1B&C&CDDDFf_Fy!T*R\\$5G5G*H*HIIIH68,,,,,r*   )r  r   r   r   r   decimalr   ior   r	   r  rc  renumpyr[  r   pandas._libsr
   pandas.compatr   r   r   r   r   r   r   pandas.errorsr   pandas.core.dtypes.commonr   pandas.core.dtypes.dtypesr   pandasrY   pandas._testing_testingr   pandas.api.extensionsr   pandas.api.typesr   r   r   r   r   r   r   pandas.tests.extensionr   importorskiprK   pandas.core.arrays.arrow.arrayr    pandas.core.arrays.arrow.dtyper!   fixtureALL_PYARROW_DTYPESrY  r)   r\   ra   rc   rj   rn   rq   rv   rz   BaseCastingTestsr|   BaseConstructorsTestsr   BaseGetitemTestsr   BaseAccumulateTestsr   BaseNumericReduceTestsr   BaseBooleanReduceTestsr   BaseGroupbyTestsr  BaseDtypeTestsr  BaseIndexTestsr-  BaseInterfaceTestsr/  BaseMissingTestsr6  BasePrintingTestsrE  BaseReshapingTestsrG  BaseSetitemTestsrL  BaseParsingTestsrP  BaseUnaryOpsTestsrb  BaseMethodsTestsrf  r  r  BaseComparisonOpsTestsr  r  r"  r&  r   r   r8  rA  rD  rF  byteslarge_binarylarge_stringrL  r   rt  
large_listmap_r   structr  dictr  rK  rR  rU  rW  rZ  r\  r^  r`  rj  rn  rq  rw  r{  r\  r  r  r  r  skipifr  r  r  r  r  r  r  r  r  r  r  r  compiler  r  r  r   rX   r  r  r  r  r  r  r  r  r  r  r	  r  r'  r)  r2  r8  r=  rH  rM  rQ  rV  rY  r]  r`  rc  rj  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  ALL_INT_PYARROW_DTYPESFLOAT_PYARROW_DTYPESr  TIMEDELTA_PYARROW_DTYPESr  DATETIME_PYARROW_DTYPESr  r   r	  ry   r*   r(   <module>r=     s                              				                             - , , , , , 6 6 6 6 6 6 : : : : : :           , , , , , ,                  ( ' ' ' ' 'Vw777 > > > > > > 5 5 5 5 5 5 r,#6663 3 763 8' 8' 8'v H H H
 /000  10 7A 7A 7At 
 
 
 
 
 
      
	& 	& 	& 	& 	&d+ 	& 	& 	&C6 C6 C6 C6 C6t1 C6 C6 C6L	 	 	 	 	t, 	 	 	O4 O4 O4 O4 O4d6 O4 O4 O4d_ _ _ _ _D7 _ _ _D ,  ,  ,  ,  ,D7  ,  ,  ,F1? 1? 1? 1? 1?d+ 1? 1? 1?hP3 P3 P3 P3 P3D' P3 P3 P3f	 	 	 	 	D' 	 	 	         /      K K K K Kd+ K K K(	 	 	 	 	t- 	 	 	% % % % %/ % % %3 3 3 3 3d+ 3 3 3/2 /2 /2 /2 /2d+ /2 /2 /2d
" 
" 
" 
" 
"t- 
" 
" 
"A7 A7 A7 A7 A7d+ A7 A7 A7Hn; n; n; n; n;D7 n; n; n;b	41 41 41 41 41D7 41 41 41n^1 ^1 ^1 ^1 ^1 ^1 ^1 ^1B
C 
C 
C+ + + III  cC:%677I1 I1 87 I1X 1a&!$6$6$6#<=	}%   
- - 
-	- 	- 	-  	e	2			E"			C 	"((**		t$	rxxzz	"	"D)	bhhjj	)	)40	T27799%biikk':;	<	<dC	rxxzz288::	.	.0DE
 9 9 9- - -
* 
* 
** * ** * *1 1 13 3 3( ( (; ; ; 2 2 2- - -2 2 2"2 2 2 #."&)A6(JKK2 2 LK22 2 26 6 6,  . '0IJJ- - KJ- '0FGGQ Q HGQ- - -  ", , ,  455- - 65-& & & (7G*<vx>PQ - - -# # # 	udED$<0	tT55$-0	udED$<0	eT4$6	dD$6	 	- -	 	-' ' ' 	tTD$<0	sEE5>2	S$.	T4$.	 - - - ZRZ__}vuo|L " "	 " 	c2uvtn-	c1efd^,	#r4&$0 - - -   (   
- - 
- 	udT4L)	tTE4=)	tTE4=)	udT4L)	eTD$<0	dD5$-0
 
- -
 
- 	tdD\*	dUDM*	tTE4=)	udT4L)	eTD$<0	dD5$-0
 
- -
 
- #
AtaY

+dAq1d)RXXZZ-PQ - -	 -$ $ $ 	
		
		
	 	- -	 	- J   - -	 - 	q$t%	q!dD\"	
Aq4, - - - 	
AsVTN#	q#t}%	q$t% - - -    !!!   !!!!!!"""   !!!"""###%%%&&&   !!!% .- -/ .- 	y!	)	Y	)	)	Y
 
- -
 
-- - -          
 
- -
 
- 5 122- - 32- 5 122- - 32- Hh#788		LM - -  98- 1a&))- - *)- GX#677	
D		
A 4 4  874 %11- - 21- 	
D		
A - - -- - -- - -, , ,- - -.%, %, %,P, , ,D% % % !8!8!8996 6 :96   		
		a	A		a		1+###*G $  	
 	
 	
 
	!	q	A	1	dAq!!"	aAq!!"3 <- -= <-6 $..	- 	- /.	- :::;;  <;, , ,- - -, #=#=#=>>	9 	9 ?>	9 #=#=#=>>	& 	& ?>	&  I    !D!D!DEE#=#=#=>>- - ?> FE 
-2 2 2 r2h//  0/	5 	5 	5
- 
- 
- $..- - /.-0 	((A2AFFFG	<2<(GHHI - - -, D%=11  21 8->"?@@* * A@*' ' ' 
r(()
sR__&&' 6 6 6 B$=@W$WXX	- 	- YX	- B$?@@	- 	- A@	- B$>??- - @?-  F&   
- - 
- - -r*   