o
    Ti                    @  s
  d Z ddlmZ ddlmZmZmZmZ ddlmZ ddl	m
Z
mZ ddlZddlZddlZddlZddlZddlmZ ddlmZ dd	lmZmZmZmZmZmZmZmZmZ dd
l m!Z!m"Z" ddl#Z$ddl%m&Z' ddl(m)Z) ddl*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1 ddl2m3Z3 ej4dddZ5ddl6m7Z7 ddl8m9Z9 dd Z:ej;e'j<e=ddd Z>ej;dd Z?ej;dd Z@ej;ddgddd ZAej;dd  ZBej;d!d" ZCej;d#d$ ZDej;d%d& ZEG d'd( d(e3jFZGG d)d* d*e3jHZIG d+d, d,e3jJZKG d-d. d.e3jLZMG d/d0 d0e3jNZOG d1d2 d2e3jPZQG d3d4 d4e3jRZSG d5d6 d6e3jTZUG d7d8 d8e3jVZWG d9d: d:e3jXZYG d;d< d<e3jZZ[G d=d> d>e3j\Z]G d?d@ d@e3j^Z_G dAdB dBe3j`ZaG dCdD dDe3jbZcG dEdF dFe3jdZeG dGdH dHe3jfZgG dIdJ dJe3jhZiG dKdL dLZjejkldMe'jmdNdO ZndPdQ ZodRdS ZpdTdU ZqejkldVg dWejkldXdYdYdYggdZd[ Zrejkjld\g d]dd^ggg d_dgggd`dagdbdcdd Zsdedf Ztejkldge5u evge5udhevge5w evge5x e=ge5ye5z e{ge5|e5z e{ge5}e5~ e5z e{ge5die5 fdje5~ fgege5e5z e5z e"gg	dkdl Zdmdn Zdodp Zdqdr Zdsdt Zdudv Zdwdx Zdydz Zd{d| Zd}d~ Zdd Zdd Zejkldej)ejfdgdd Zdd Zdd Zdd Zejkjedddd Zejkjedddd Zdd Zdd Zdd Zejkldddgdd Zdd Zejkldddgddgddggdd Zdd Zejkldddddddggddddddggddddddggddddddggddddddgggdd Zdd Zejklddddddggdddddggdddddggdddddgggdd Zejklddedgde=gddgddggddĄ Zejkldddddddggddddddggddddddgggdd΄ ZddЄ ZejkjededҍddԄ Zejklddddddggdddddggdddddggdddddggdddddggdddddgggddׄ Zejklddddddggdddddggdddddggdddddggdddddggdddddgggddڄ Zejklddddddge5 gdddddge5z ggdd߄ Zdd Zejklddg dgdg dgdg dgdg dgd^g dggdd Zejkjdedҍdd Zdd Zejklddddddggdddddggdddddgggdd Zejklddddddggdddddggdddddgggdd Zejkldg 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d Zejkldddgddgddgddgddgddggdd Zdd Zejkldg dg d g d!g d"g d#g d$gd%d& Zejkld'd(dgd)d* Zejkld'd+dgd,d- Zejkld.d/d0gejkld1d2d3gd4d5ggd6d7 Zejkldddgd8d9 Zejkld:d;d<gejkld=ddgdd^ggd>d? Zejkld@dAdBgdCdD Zejkld=ddgdd^ggdEdF ZdGdH ZdIdJ ZdKdL ZdMdN ZdOdP ZdQdR ZÐdSdT ZejkldUg dVdWdX ZŐdYdZ Zejkld[d\d]gd^dgd_dgd`dgdadgdbdgdcdgdddgded^gejǐdfdejkjeedgdhdidjdkgdldgdmdngdodgdpdqgdred]dd݃gdsedd^dqdkggdtdu ZȐdvdw Zɐdxdy Zʐdzd{ Zejkld:d|d}gd~d Z̐dd ZejkldUddgdd Zejkldg ddd Zϐdd Zejkldddgddggdd Zѐdd Zejkld:g ddd Zejkld:g ddd Zejkjeddejkldg dejkld:g ddd ZՐdd Zejkldddgdd Zאdd Zؐdd ZejkldUddgdd Zejkldded]dܐddܐdgde$ېdggdd Zܐdd Zݐdd ZejkldUddgdd Zejkldddgdd Zdd Zdd ZejkldddgddÄ ZG dĐdń de7ZdƐdǄ ZdȐdɄ Zejkldʐdːdge5w fddge5x fgd͐d΄ ZdϐdЄ ZejkldMe'jme'j dѐd҄ ZejkldMe'jdӐdԄ ZejkldMe'jdՐdք ZejkldMe'je'j dאd؄ Zdِdڄ Zejkjede5jdҍdܐd݄ Zdސd߄ ZejkldMe'je'j dd ZejkldMe'je'j dd ZejkldMe'je'j dd ZejkldMe'je'j dd ZejkldMe'je'j dd ZejkldMe'je'j dd Zdd ZejkldMe'je'j dd Zdd Zdd Zdd ZejkldMe'jdd Zdd Z dd ZdS (  ag  
This file contains a minimal set of tests for compliance with the extension
array interface test suite, and should contain no other tests.
The test suite for the full functionality of the array is located in
`pandas/tests/arrays/`.
The tests in this file are inherited from the BaseExtensionTests, and only
minimal tweaks should be applied to get the tests passing (by overwriting a
parent method).
Additional tests should either be added to one of the BaseExtensionTests
classes (if they are relevant for the extension interface for all dtypes), or
be added to the array-specific tests in `pandas/tests/arrays/`.
    )annotations)datedatetimetime	timedelta)Decimal)BytesIOStringION)lib)	timezones)	PY311is_ci_environmentis_platform_windowspa_version_under7p0pa_version_under8p0pa_version_under9p0pa_version_under11p0pa_version_under13p0pa_version_under14p0)
ArrowDtypeCategoricalDtypeType)
no_default)is_bool_dtypeis_float_dtypeis_integer_dtypeis_numeric_dtypeis_signed_integer_dtypeis_string_dtypeis_unsigned_integer_dtype)basepyarrowz7.0.0)Z
minversion)ArrowExtensionArray)ArrowPeriodTypec                 C  s6   t  rt rtjjtjdd}| j| d S d S d S )Nz_TODO: Set ARROW_TIMEZONE_DATABASE environment variable on CI to path to the tzdata for pyarrow.raisesreason)	r   r   pytestmarkxfailpaArrowInvalidnode
add_marker)requestr'    r.   a/var/www/html/evchargy.com/venv/lib/python3.10/site-packages/pandas/tests/extension/test_arrow.py_require_timezone_databaseH   s   r0   )paramsidsc                 C  s   t | jdS )N)pyarrow_dtype)r   param)r-   r.   r.   r/   dtypeT   s   r5   c              	   C  st  | j }tj|r!ddgd d g ddgd  d g ddg }ntj|r?ddgd d g ddgd  d g d	d
g }nttj|r]ddgd d g ddgd  d g ddg }nVtj|r{ddgd d g ddgd  d g ddg }n8tj|rtdtdgd d g tdtdgd  d g tdtdg }ntj	|rt
dddt
dddgd d g t
dddt
dddgd  d g t
dddt
dddg }ntj|rtdddddddtdddddddgd d g tddddtddddgd  d g tdddtdddg }ntj|rEtdtddgd d g tdtdgd  d g tdtdg }nntj|rutddtddgd d g tddtddgd  d g tddtddg }n>tj|rdd gd d g dd!gd  d g d"d#g }n tj|rd$d%gd d g d&d'gd  d g d(d)g }nttj|| d*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   !   >r5   )r3   r)   types
is_booleanis_floatingis_signed_integeris_unsigned_integer
is_decimalr   is_dater   is_timestampr   is_durationr   is_timer   	is_string	is_binaryNotImplementedErrorpdarray)r5   pa_dtypedatar.   r.   r/   re   Y   s   0000*..re   c                 C  s   t | jd| d g| jdS )zLength-2 array with [NA, Valid]Nr   rT   type_from_sequencer5   )re   r.   r.   r/   data_missing   s   ri   )r1   c                 C  s    | 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.
    re   ri   N)r4   )r-   re   ri   r.   r.   r/   all_data   s
   

rj   c              	   C  s  | j }tj|rd}d}d}ntj|rd}d}d}ntj|r*d}d}d}ntj|r7d}d}d	}ntj|rPtd
dd}tddd}tddd}nwtj	|rnt
d
dddddd}t
ddd}t
dddd}nYtj|rtd}td}tdd}nEtj|rtdd}tdd}tdd}n/tj|rd}d}d}n"tj|rd}d}d}ntj|rtd}td}td}nttj||dd||||g| d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
    FTgr9   g?r=   r   r;   rG   rC   rD   rE   i  rB   rF   r6   rI   rJ   crN   rO      cz-1.1rA   z1.1NrT   )r3   r)   rU   rV   rW   rX   rY   r[   r   r\   r   r]   r   r^   r   r_   r`   rZ   r   ra   rb   rc   )r5   rd   ABCr.   r.   r/   data_for_grouping   s^   	


rp   c                 C  &   t | j| d | d | d g| jdS )zn
    Length-3 array with a known sort order.

    This should be three items [B, C, A] with
    A < B < C
    r      r6   rT   rf   rp   r.   r.   r/   data_for_sorting      rt   c                 C  rq   )z{
    Length-3 array with a known sort order.

    This should be three items [B, NA, A] with
    A < B and NA missing.
    r   r?   r6   rT   rf   rs   r.   r.   r/   data_missing_for_sorting   ru   rv   c                 C  sR   | j j}tj|stj|stj|stj|r'tj	dgd | j dS | S )z3Length-100 array in which all the elements are two.r?   d   rT   )
r5   r3   r)   rU   
is_integerrW   rZ   r]   rb   rc   re   rd   r.   r.   r/   data_for_twos   s   



rz   c                         e Zd Z fddZ  ZS )TestBaseCastingc                   sB   |j j}tj|r|jtjj	d| dd t
 | d S )NzFor z .astype(str) decodes.r%   )r5   r3   r)   rU   r`   r+   r,   r&   r'   r(   supertest_astype_strselfre   r-   rd   	__class__r.   r/   r     s   
zTestBaseCasting.test_astype_str)__name__
__module____qualname__r   __classcell__r.   r.   r   r/   r|         r|   c                      s4   e Zd Z fddZdd Zdd Zdd Z  ZS )	TestConstructorsc                   sb   |j j}tj|stj|r)tj|rd}nd| }|jtj	j
|d t | d S )Nz1ArrowDtype(pa.string()) != StringDtype('pyarrow')$pyarrow.type_for_alias cannot infer r}   )r5   r3   r)   rU   r_   rZ   r+   r,   r&   r'   r(   r~   test_from_dtype)r   re   r-   rd   r%   r   r.   r/   r     s   
z TestConstructors.test_from_dtypec                 C  sd   t ||j}t|| t|jtjsJ t ||j }t|| t|jtjs0J d S N)	rg   rh   	_pa_arraytmassert_extension_array_equal
isinstancer)   ZChunkedArraycombine_chunksr   re   resultr.   r.   r/   test_from_sequence_pa_array*  s   z,TestConstructors.test_from_sequence_pa_arrayc                 C  sH   t jtdd tjdgt d W d    d S 1 sw   Y  d S )NzConverting strings tomatchz12-1rT   )r&   r$   ra   r!   _from_sequence_of_stringsr)   Zmonth_day_nano_interval)r   r-   r.   r.   r/   *test_from_sequence_pa_array_notimplemented5  s
   
"z;TestConstructors.test_from_sequence_pa_array_notimplementedc                 C  s   |j j}tj|r|drts|jt	j
jdd n.tr<tj|s+tj|r<|jt	j
jtjd| d ntj|rK|jd urKt| |jt }t|j||j d}t|| | }t|j||j d}t|| d S )Nz
time64[ns]z&Nanosecond time parsing not supported.r}   z pyarrow doesn't support parsing r#   rT   )r5   r3   r)   rU   Z	is_time64equalsr   r+   r,   r&   r'   r(   r   r]   rZ   ArrowNotImplementedErrorr\   tzr0   r   caststringrg   r   r   r   r   )r   re   r-   rd   pa_arrayr   r.   r.   r/   &test_from_sequence_of_strings_pa_array;  s4   

z7TestConstructors.test_from_sequence_of_strings_pa_array)r   r   r   r   r   r   r   r   r.   r.   r   r/   r     s
    r   c                   @     e Zd ZdS )TestGetitemTestsNr   r   r   r.   r.   r.   r/   r   X      r   c                      s@   e Zd Zdd Zdd	d
Zejdddg fddZ  Z	S )TestBaseAccumulateTestsc                 C  s   t |||d}|jj}tj|r&|jdkrd}nd}||}||}|d}t |d||d}tj	||dd d S )Nskipna    zint32[pyarrow]int64[pyarrow]Float64F)Zcheck_dtype)
getattrr5   r3   r)   rU   is_temporalZ	bit_widthastyper   assert_series_equal)r   serop_namer   r   pa_typeZint_typeexpectedr.   r.   r/   check_accumulate]  s   



z(TestBaseAccumulateTests.check_accumulater   	pd.Seriesr   strreturnboolc                 C  s   |j j}tj|stj|stj|r|dv rdS dS tj|r,|dv r*dS dS tj|rD|dkr>tj	|s>dS |dkrDdS dS )N)cumsumcumprodcummaxcumminF)r   r   r   r   r   T)
r5   r3   r)   rU   r_   r`   rZ   rV   r   r]   )r   r   r   r   r.   r.   r/   _supports_accumulationn  s(   


	z.TestBaseAccumulateTests._supports_accumulationr   TFc           
        s   |j j}|}t|}| ||st |||S ts!trF|dkrF|j	j
}|jr5d|jv r5t| d tjj| dd}	|j|	 n!|dkrgtj|sVtj|rg|jtjj| d| td | ||| d S )Nr   znot slowz  not implemented for pyarrow < 9r}   z not implemented for r%   r$   )r5   r3   rb   Seriesr   r~   test_accumulate_seriesr   r   configoptionZmarkexprr&   skipr'   r(   r+   r,   r)   rU   rV   rZ   ra   r   )
r   re   Zall_numeric_accumulationsr   r-   r   r   r   optr'   r   r.   r/   r     s@   


z.TestBaseAccumulateTests.test_accumulate_series)r   r   r   r   r   r   )
r   r   r   r   r   r&   r'   parametrizer   r   r.   r.   r   r/   r   \  s
    
r   c                      s   e Zd ZdddZdd Zejd	d
dg fddZejd	d
dg fddZ	dddZ
ejd	d
dg fddZejdg ddd Z  ZS )
TestReducer   r   r   r   c                 C  s   t |}|j}tj|r|dv rtj|r|dv rndS tj|s+tj|r1|dv r1dS tj|rCtj|sC|dv rCdS dS )N)sumvarskewkurtprod)r   F)	r   meanmedianr   stdsemr   r   r   )anyallT)	r   	get_dtyper3   r)   rU   r   r]   r_   r`   )r   objr   r5   rd   r.   r.   r/   _supports_reduction  s&   




zTestReduce._supports_reductionc                 C  s   |j j}|dkrt|| }nt|||d}tj|s#tj|r(|d}|dkr3t|| }nt|||d}t	|| d S )Ncountr   r   )
r5   r3   r   r)   rU   rx   rW   r   r   Zassert_almost_equal)r   r   r   r   rd   r   r   r.   r.   r/   check_reduce  s   
zTestReduce.check_reducer   TFc                   s   |j }|j}tjjt| dtj d| d}|dv r*|js#|j	dkr*|j
| n9|dv r=tr=tj|r=|j
| n&|dkrStrS|jsLtj|rS|j
| ntj|rc|dv rc|j
| t ||| d S )	N is not implemented in pyarrow= for r#   >   r   r   rJ   >   r   r   r   r   >   r   r   r   r   )r5   r3   r&   r'   r(   	TypeErrorr)   __version___is_numerickindr+   r,   r   rU   rZ   r   r   rV   r~   test_reduce_series_numeric)r   re   all_numeric_reductionsr   r-   r5   rd   
xfail_markr   r.   r/   r     s@   


z%TestReduce.test_reduce_series_numericc                   s^   |j j}tjjt| dtj d| d}tj	|s!tj
|r'|j| t |||S )Nr   r   r#   )r5   r3   r&   r'   r(   r   r)   r   rU   r_   r`   r+   r,   r~   test_reduce_series_boolean)r   re   all_boolean_reductionsr   na_valuer-   rd   r   r   r.   r/   r     s   z%TestReduce.test_reduce_series_booleanc                 C  s`   |dv r	|j }|S |j jdkr|dvr|j }|S d}|S |dv r$d}|S dddd|j j }|S )	N)maxminzdecimal128(7, 3)[pyarrow])r   r   r   float64[pyarrow])r   r   r   r   r   r   uint64[pyarrow])iuf)r5   namer   )r   arrr   Z	cmp_dtyper.   r.   r/   _get_expected_reduction_dtype"  s&   	z(TestReduce._get_expected_reduction_dtypec                   s>   |}|dkr|j jrtjjdd}|j| t |||S )Nr   zskew not implementedr}   )	r5   r   r&   r'   r(   r+   r,   r~   test_reduce_frame)r   re   r   r   r-   r   r'   r   r.   r/   r   4  s   zTestReduce.test_reduce_frametyp)int64Zuint64float64c                 C  s,   t jddg| dd }|dksJ d S )Nr;   r?   	[pyarrow]rT         ?)rb   r   r   )r   r   r   r.   r.   r/   test_median_not_approximate=  s   z&TestReduce.test_median_not_approximate)r   r   r   r   r   r   )r   r   r   r   r   r&   r'   r   r   r   r   r   r   r   r.   r.   r   r/   r     s    
,%
r   c                      r{   )TestBaseGroupbyc                   s   |j }t|rRtg d|g dd}tdg}td| }tjt	|d |
d  W d    n1 s;w   Y  |
djdd	j}t|| d S t | d S )
N)r;   r;   r?   r?      r   r;   r6   )r;   r;   r;   r;   r;   r;   r;   r;   rm   rn   ro   ro   z%agg function failed [how->sum,dtype->r   rm   T)Znumeric_only)r5   r   rb   	DataFrameIndexreescaper&   r$   r   groupbyr   columnsr   assert_index_equalr~   test_in_numeric_groupby)r   rp   r5   dfr   msgr   r   r.   r/   r   E  s    z'TestBaseGroupby.test_in_numeric_groupby)r   r   r   r   r   r.   r.   r   r/   r   D  r   r   c                      sH   e Zd Z fddZ fddZdd Z fddZ fd	d
Z  ZS )TestBaseDtypec                   s   |j }tj|r|jtjjt	d| d tj
|r@d}tjt|d ||j W d    d S 1 s9w   Y  d S t | d S )Nr   r#   z6string\[pyarrow\] should be constructed by StringDtyper   )r3   r)   rU   rZ   r+   r,   r&   r'   r(   ra   r_   r$   r   construct_from_stringr   r~   #test_construct_from_string_own_name)r   r5   r-   rd   r   r   r.   r/   r  [  s"   
z1TestBaseDtype.test_construct_from_string_own_namec                   sd   |j }tj|rt||jrJ d S tj|r*|j	t
jjtd| d t | d S )Nr   r#   )r3   r)   rU   r_   rg   Zis_dtyper   rZ   r+   r,   r&   r'   r(   ra   r~   test_is_dtype_from_namer   r5   r-   rd   r   r.   r/   r  o  s   z%TestBaseDtype.test_is_dtype_from_namec                 C  sF   d}t jt|d t|d W d    d S 1 sw   Y  d S )Nz*'another_type' must end with '\[pyarrow\]'r   Zanother_type)r&   r$   r   rg   r  )r   r5   r   r.   r.   r/   .test_construct_from_string_another_type_raises~  s   "z<TestBaseDtype.test_construct_from_string_another_type_raisesc                   sx   |j }tj|s&tj|s&tj|r|jd us&tj|s&tj|r4|j	
tjj| dd t | d S )NzB does not have associated numpy dtype findable by find_common_typer}   )r3   r)   rU   r[   r^   r\   r   r`   rZ   r+   r,   r&   r'   r(   r~   test_get_common_dtyper  r   r.   r/   r    s$   





z#TestBaseDtype.test_get_common_dtypec                   s2   |j }tj|rt|sJ d S t | d S r   )r3   r)   rU   r_   r   r~   test_is_not_string_type)r   r5   rd   r   r.   r/   r    s   z%TestBaseDtype.test_is_not_string_type)	r   r   r   r  r  r  r  r  r   r.   r.   r   r/   r   Z  s    r   c                   @  r   )TestBaseIndexNr   r.   r.   r.   r/   r    r   r  c                      ,   e Zd Zejjddd fddZ  ZS )TestBaseInterfacez6GH 45419: pyarrow.ChunkedArray does not support views.Fr%   runc                      t  | d S r   )r~   	test_viewr   re   r   r.   r/   r       zTestBaseInterface.test_view)r   r   r   r&   r'   r(   r  r   r.   r.   r   r/   r
    
    r
  c                   @  s   e Zd Zdd ZdS )TestBaseMissingc                 C  s`   ||    }|d }||}||usJ t|| |jdd}||us(J t|| d S )Nr   Zbackfill)method)isnafillnar   r   )r   re   validr   r.   r.   r/   test_fillna_no_op_returns_copy  s   
z.TestBaseMissing.test_fillna_no_op_returns_copyN)r   r   r   r  r.   r.   r.   r/   r    s    r  c                   @  r   )TestBasePrintingNr   r.   r.   r.   r/   r    r   r  c                      r	  )TestBaseReshaping5GH 45419: pyarrow.ChunkedArray does not support viewsFr  c                   r  r   )r~   test_transposer  r   r.   r/   r    r  z TestBaseReshaping.test_transpose)r   r   r   r&   r'   r(   r  r   r.   r.   r   r/   r    r  r  c                      r	  )TestBaseSetitemr  Fr  c                   r  r   )r~   test_setitem_preserves_viewsr  r   r.   r/   r    r  z,TestBaseSetitem.test_setitem_preserves_views)r   r   r   r&   r'   r(   r  r   r.   r.   r   r/   r    r  r  c                   @  s8   e Zd Zejddegejdddgdd ZdS )	TestBaseParsingdtype_backendr    enginerk   pythonc           
      C  s  |j j}tj|r|jtjj	t
d| dd n)tj|r3|jdv r3|jtjj	tdd ntj|rD|jtjj	dd tdtj|t|j d	i}|jd
tjd}tj|rft|}nt|}tj|dt|j i||d}|}	t||	 d S )NzParameterized types z not supported.r#   )usnsz1https://github.com/pandas-dev/pandas/issues/49767z)CSV parsers don't correctly handle binaryr}   Z
with_dtyperT   F)indexZna_rep)r5   r   r  )r5   r3   r)   rU   rZ   r+   r,   r&   r'   r(   ra   r\   unit
ValueErrorr`   rb   r   r   r   Zto_csvnpnanr   r	   Zread_csvr   assert_frame_equal)
r   r   re   r  r-   rd   r   Z
csv_outputr   r   r.   r.   r/   test_EA_types  s@   

zTestBaseParsing.test_EA_typesN)r   r   r   r&   r'   r   r   r*  r.   r.   r.   r/   r    s    r  c                      r{   )TestBaseUnaryOpsc                   sP   |j j}tj|s tj|s |jtj	j
tjd| d t | d S )Nz$pyarrow.compute.invert does support r#   )r5   r3   r)   rU   rV   rx   r+   r,   r&   r'   r(   r   r~   test_invertr   r   r.   r/   r,    s   zTestBaseUnaryOps.test_invert)r   r   r   r,  r   r.   r.   r   r/   r+    r   r+  c                      s   e Zd Zejdddg fddZdd Z fdd	Zejd
dddddde	j
fdde	j
fddg fddZdZ  ZS )TestBaseMethodsperiodsr;   r<   c              	     sV   |j j}tj|r"|dkr"|jtjj	tj
d| d| dd t || d S )Nr;   z
diff with z and periods=z will overflowr#   )r5   r3   r)   rU   rY   r+   r,   r&   r'   r(   r*   r~   	test_diff)r   re   r.  r-   rd   r   r.   r/   r/    s   zTestBaseMethods.test_diffc                 C  s.   |d d }|  }|jtt ksJ d S )NrG   )Zvalue_countsr5   r   r)   r   r   r.   r.   r/   'test_value_counts_returns_pyarrow_int64  s   z7TestBaseMethods.test_value_counts_returns_pyarrow_int64c                   sL   |j j}tj|rtr|jtj	j
d| tjd t ||| d S NzNo pyarrow kernel for r   )r5   r3   r)   rU   rZ   r   r+   r,   r&   r'   r(   r   r~   test_argmin_argmax)r   rt   rv   r   r-   rd   r   r.   r/   r2    s   z"TestBaseMethods.test_argmin_argmaxzop_name, skipna, expected)idxmaxTr   )idxminTr?   )argmaxTr   )argminTr?   r3  Fr4  )r5  Fr=   )r6  Fr=   c                   sR   |j j}tj|rtr|r|jtj	j
d| tjd t |||| d S r1  )r5   r3   r)   rU   rZ   r   r+   r,   r&   r'   r(   r   r~   test_argreduce_series)r   rv   r   r   r   r-   rd   r   r.   r/   r7  "  s   z%TestBaseMethods.test_argreduce_serieszbool[pyarrow])r   r   r   r&   r'   r   r/  r0  r2  r'  r(  r7  Z_combine_le_expected_dtyper   r.   r.   r   r/   r-     s&    

r-  c                      sl   e Zd ZeZdd ZdddZdd ZdddZdd Z	 fddZ
 fddZdd Z fddZ  ZS )TestBaseArithmeticOpsc                 C  s8   | d}|dkrdd }|S |dkrdd S t|S )N_rtruedivc                 S     t || S r   )r'  dividexyr.   r.   r/   r:  I  s   z8TestBaseArithmeticOps.get_op_from_name.<locals>.rtruedivZ	rfloordivc                 S  r;  r   )r'  Zfloor_divider=  r.   r.   r/   <lambda>N  s    z8TestBaseArithmeticOps.get_op_from_name.<locals>.<lambda>)stripr   get_op_from_name)r   r   Zshort_opnamer:  r.   r.   r/   rB  D  s   

z&TestBaseArithmeticOps.get_op_from_namer   r   c                 C  sj  |}d}t |tjr d}|jd d df }|jd d df j}n|}|j}|j}	|s[t |tjr[tj	|	sZtj
|	r@|dvsZtj|	sZtj|	sZtj|	sZtj|	sZ|S n$|dkretj
|	stj|	stj|	stj|	stj|	s|S t|j}
tj|
jrtj|	rtj|	rd}nd}n|	j}t|ttfv r|dv rd	}|
d
| d}
n_tj|
jrtj|	rt|||}t|}t |tsJ |dkrt |trtt }n#|dkrt |tjr|j|krtt }n
tj|jsJ ||S |
|	}
t|j|
}|r.tj||j|jd}|S t|}|S )NFTr   )__truediv____rtruediv____floordiv__mss)rG  rF  r"  z	duration[]__pow__)r$  r   ) r   rb   r   ilocr5   r3   r   r)   rU   rW   rx   r]   r\   r[   rZ   rc   Z_valuesrg   Z	is_date64r%  r   r   r   r   r   r   r   r   r   r   r$  r   )r   r   r   otherZpointwise_resultr   Z	was_frameZexpected_dataZoriginal_dtypeZorig_pa_typeZpa_expectedr%  ZaltZ	alt_dtypeZpd_expectedr.   r.   r/   _cast_pointwise_resultR  s   





	










z,TestBaseArithmeticOps._cast_pointwise_resultc                 C  s<   t  o|dv p|dv ot rtj|p|dv otj|S )N__add____radd__rC  rD  rE  __rfloordiv____sub____rsub__)r   r   r)   rU   r]   r   )r   opnamerd   r.   r.   r/   _is_temporal_supported  s   
	
z,TestBaseArithmeticOps._is_temporal_supportedr   type[Exception] | Nonec                 C  s   |dv r| j S t|}|j}| ||}|dv rt}|S |r#d }|S |dv r7tj|s3tj	|r7d }|S tj
|sNtj|sNtj|sNtj}|S d }|S )N)
__divmod____rdivmod__>   __rmod____mod__rM  )
divmod_excr   r   r3   rV  ra   r)   rU   r_   r`   rW   rx   rZ   r   )r   r   r   rK  r5   rd   arrow_temporal_supportedexcr.   r.   r/   _get_expected_exception  s8   





z-TestBaseArithmeticOps._get_expected_exceptionc                 C  s2  d }|  ||}|dkr,tj|stj|stj|r,ts,tjj	d| d}|S |rNtj
|s>|dv rNtj|rNtjj	t| d| dd}|S |dkrktj|s^tj|rktsktjj	tjd	d}|S |d
krtj|rtstjj	tjd	d}|S |dkrtj|rtrtjj	tjdd}|S )N__rpow__z<GH#29997: 1**pandas.NA == 1 while 1**pyarrow.NA == NULL for r}   rP  z  not supported betweenpd.NA and z Python scalarr#   rQ  zdivide by 0rD  rI  z'Invalid decimal function: power_checked)rV  r)   rU   rW   rx   rZ   r   r&   r'   r(   r^   r]   r   r*   )r   rU  rd   r'   r]  r.   r.   r/   _get_arith_xfail_marker  s   


1

#



z-TestBaseArithmeticOps._get_arith_xfail_markerc                   d   |j j}|dkrtj|stj|rtd | ||}|d ur)|j	
| t || d S NrZ  z%Skip testing Python string formatting)r5   r3   r)   rU   r_   r`   r&   r   ra  r+   r,   r~   test_arith_series_with_scalarr   re   all_arithmetic_operatorsr-   rd   r'   r   r.   r/   rd  )     


z3TestBaseArithmeticOps.test_arith_series_with_scalarc                   rb  rc  )r5   r3   r)   rU   r_   r`   r&   r   ra  r+   r,   r~   test_arith_frame_with_scalarre  r   r.   r/   rh  7  rg  z2TestBaseArithmeticOps.test_arith_frame_with_scalarc           	      C  s   |j j}|dv r tj|r ts |jtj	j
tjd| d | ||}|d ur0|j| |}t|}ttj|jd gt| |j d}| ||| d S )NrR  zJImplemented pyarrow.compute.subtract_checked which raises on overflow for r#   r   rT   )r5   r3   r)   rU   rY   r   r+   r,   r&   r'   r(   r*   ra  rb   r   rc   rJ  lenZcheck_opname)	r   re   rf  r-   rd   r'   r   r   rK  r.   r.   r/   test_arith_series_with_arrayE  s.   


&z2TestBaseArithmeticOps.test_arith_series_with_arrayc                   sB   |j j}|dr|jtjjtj	d| d t
 | d S )Nint8zraises on overflow for r#   )r5   r3   r   r+   r,   r&   r'   r(   r)   r*   r~   $test_add_series_with_extension_arrayr   r   r.   r/   rl  g  s   
z:TestBaseArithmeticOps.test_add_series_with_extension_arrayr   )r   r   r   rW  )r   r   r   ra   r\  rB  rL  rV  r_  ra  rd  rh  rj  rl  r   r.   r.   r   r/   r8  A  s    
c
$A"r8  c                      s>   e Zd Z fddZdd Zejdg ddd Z  Z	S )	TestBaseComparisonOpsc                   s   t |}t t j|jd gt| |jd}|jdv rH|||}|d |u s*J |d |u s2J |||}||d< ||d< t	|| d S t
 ||S )Nr   rT   )eqne   a   )rb   r   rc   rJ  ri  r5   r   combiner   r   r~   test_compare_array)r   re   comparison_opr   r   rK  r   r   r   r.   r/   rs  u  s   
&

z(TestBaseComparisonOps.test_compare_arrayc                 C  s@   t jtdd ||t  W d    d S 1 sw   Y  d S )Nz'.* not implemented for <class 'object'>r   )r&   r$   ra   object)r   re   rt  r.   r.   r/   test_invalid_other_comp  s
   "z-TestBaseComparisonOps.test_invalid_other_compmasked_dtype)booleanZInt64r   c           	      C  s   g d}t j||d}t j||  dd}|||}|tjtjtjfv r+g d}ng d}t j|tt	 d}t
|| d S )N)r;   r   NrT   r   )FFN)TTN)rb   r   loweroperatorltgtro  r   r)   bool_r   r   )	r   rw  rt  re   
ser_maskedser_par   expr   r.   r.   r/   test_comp_masked_numpy  s   

z,TestBaseComparisonOps.test_comp_masked_numpy)
r   r   r   rs  rv  r&   r'   r   r  r   r.   r.   r   r/   rm  t  s
    rm  c                   @  sf  e Zd ZdZdd Zejddg dfej	g dfdg dfe
dg dfd	g d
fe
d	g d
fgdd Zdd Zejddg dfej	g dfdg d
fd	g dfe
dg d
fe
d	g dfgdd Zdd Zejddg dfej	g dfdg dfe
dg dfe
d	g d
fgdd Zejdddgddgdd	ggdd ZdS )TestLogicalOpsz1Various Series and DataFrame logical ops methods.c                 C  s   t jdgd dgd  d gd  dd}t jg dd dd}||B }t jg ddd}t|| ||B }t|| t|t jdgd dgd  d gd  dd t|t jg dd dd d S )NTr   Fboolean[pyarrow]rT   TFN)	TTTTFNTNNrb   r   r   r   r   rI   rJ   r   r   r.   r.   r/   test_kleene_or  "   (&zTestLogicalOps.test_kleene_orzother, expectedN)TNNT)TTTFr  c                 C  sf   t jg ddd}||B }t j|dd}t|| ||B }t|| t|t jg ddd d S Nr  r  rT   r  r   rK  r   rI   r   r.   r.   r/   test_kleene_or_scalar     z$TestLogicalOps.test_kleene_or_scalarc                 C  s   t jdgd dgd  d gd  dd}t jg dd dd}||@ }t jg ddd}t|| ||@ }t|| t|t jdgd dgd  d gd  dd t|t jg dd dd d S )NTr   Fr  rT   r  )	TFNFFFNFNr  r  r.   r.   r/   test_kleene_and  r  zTestLogicalOps.test_kleene_and)NFNFFFc                 C  sf   t jg ddd}||@ }t j|dd}t|| ||@ }t|| t|t jg ddd d S r  r  r  r.   r.   r/   test_kleene_and_scalar  r  z%TestLogicalOps.test_kleene_and_scalarc                 C  s   t jdgd dgd  d gd  dd}t jg dd dd}||A }t jg ddd}t|| ||A }t|| t|t jdgd dgd  d gd  dd t|t jg dd dd d S )NTr   Fr  rT   r  )	FTNTFNNNNr  r  r.   r.   r/   test_kleene_xor   r  zTestLogicalOps.test_kleene_xorNNN)FTNc                 C  sf   t jg ddd}||A }t j|dd}t|| ||A }t|| t|t jg ddd d S r  r  r  r.   r.   r/   test_kleene_xor_scalar  s   z%TestLogicalOps.test_kleene_xor_scalarzop, exp__and____or____xor__c                 C  s^   g d}t j|dd}t j|dd}t|||}t j|dd gtt d}t|| d S )Nr  rx  rT   r  F)rb   r   r   r   r)   r}  r   r   )r   opr  re   r~  r  r   r   r.   r.   r/   test_logical_masked_numpy.  s   
z(TestLogicalOps.test_logical_masked_numpy)r   r   r   __doc__r  r&   r'   r   rb   NAr'  r}  r  r  r  r  r  r  r.   r.   r.   r/   r    sZ    











r  r   c                 C  s   t | }tjg d|d}tjg d|d}||B }tjg d|d}t|| ||@ }tjg d|d}t|| ||A }tjg d|d}t|| | }|d  }tj||d| }t|| d S )N)r;   Nr   r6   rT   )Nr   rH   r6   )NNrr   r6   )NNr;   r6   )NN   r   r   )	r   rb   r   r   r   r  to_numpymaskZisnull)r   r5   leftrightr   r   r.   r.   r/   test_bitwise@  s    r  c                   C  sv   t jtdd td W d    n1 sw   Y  t jtdd td W d    d S 1 s4w   Y  d S )NzPassing pyarrow typer   z#not_a_real_dype[s, tz=UTC][pyarrow]zdecimal(7, 2)[pyarrow])r&   r$   ra   r   r  r.   r.   r.   r/   Ftest_arrowdtype_construct_from_string_type_with_unsupported_parametersY  s   "r  c                  C  s*   t d} t tdd}| |ksJ d S )Nztimestamp[s, tz=UTC][pyarrow]rG  UTC)r   r  r)   	timestamp)r5   r   r.   r.   r/   5test_arrowdtype_construct_from_string_supports_dt64tza  s   
r  c                  C  sN   d} d}t jt|d tjtd| d W d    d S 1 s w   Y  d S )Nzint64[pyarrow]foobar[pyarrow]zYPassing pyarrow type specific parameters \(\[pyarrow\]\) in the string is not supported\.r   r   rT   )r&   r$   ra   rb   r   range)invalidr   r.   r.   r/   ;test_arrowdtype_construct_from_string_type_only_one_pyarrowh  s   "r  interpolation)Zlinearry  higherZnearestZmidpointquantiler:   c                 C  sR  | j j}| g d} t| }tj|s"tj|s"tj	|rKt
r'd}nd}tjtj|d |j||d W d    d S 1 sDw   Y  d S tj|s_tj|s_tj|r`t
s`ntj| jjrin|jtjjtjd| d | g d} t| }|j||d}tj|r|dvr|jrd	|j d
|j d}nd	|j d}||}	|	j||d}
|dkr|jdkr|
jdd}
||
ksJ d S |jdkr|
jd}
t !||
| j  d S |dkr|| d ksJ d S tj| ddgddgd}
tj|stj|stj|r!|
d}
|d}t !||
 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#   )ry  r  zM8[z, rH  r:   r"  F)warnr   r$  r   )"r5   r3   takerb   r   r)   rU   r_   r`   rV   r   r&   r$   r   r  rx   rW   rZ   r   r   rg   r+   r,   r'   r(   r\   r   r%  r   to_pydatetimedtfloorr   r   )re   r  r  r-   rd   r   r   r   Zpd_dtypeZser_npr   r.   r.   r/   test_quantiles  s   
















r  ztake_idx, exp_idx)r   r   r?   r?   r6   r6   r6   )r   r   r   r?   r6   r6   Z
multi_modeZsingle_mode)r2   c                 C  s@   |  |}t|}|jdd}t|  |}t|| d S )NTZdropna)r  rb   r   moder   r   )rp   Ztake_idxZexp_idxre   r   r   r   r.   r.   r/   test_mode_dropna_true  s
   

r  c                 C  sx   t jd d | d g| jd}|jdd}t jd g| jd}t|| t jd | d g| jd}|jdd}t|| d S )Nr   rT   Fr  )rb   r   r5   r  r   r   )re   Z	more_nansr   r   r.   r.   r/   test_mode_dropna_false_mode_na  s   r  zarrow_dtype, expected_type   f1f2c                 C  s   t | j|ks	J d S r   )r   rg   )arrow_dtypeexpected_typer.   r.   r/   test_arrow_dtype_type  s   r  c                  C  sh   t tg d} t| sJ tjj| sJ tt	t
| }||  }|t|  }t|| d S )NTFT)r!   r)   rc   r   rb   corecommonZis_bool_indexerr   r  ri  r'  Zasarrayr   r   )re   rG  r   r   r.   r.   r/   test_is_bool_dtype  s   r  c                 C  sL   | j j}tj|stj|stj|rt| sJ d S t| r$J d S r   )r5   r3   r)   rU   rW   rx   rZ   r   re   r   r.   r.   r/   test_is_numeric_dtype  s   


r  c                 C  4   | j j}tj|rt| sJ d S t| rJ d S r   )r5   r3   r)   rU   rx   r   r  r.   r.   r/   test_is_integer_dtype  s   r  c                 C  r  r   )r5   r3   r)   rU   rX   r   r  r.   r.   r/   test_is_signed_integer_dtype     r  c                 C  r  r   )r5   r3   r)   rU   rY   r   r  r.   r.   r/   test_is_unsigned_integer_dtype  r  r  c                 C  r  r   )r5   r3   r)   rU   rW   r   r  r.   r.   r/   test_is_float_dtype!  r  r  c                 C  sl   t | }|d}t|}t|}t|t|ksJ t|}t|| t|}t|| d S )Nr?   )	rb   r   headpickledumpsri  loadsr   r   )re   r   Zexpected_slicedZfull_pickledZsliced_pickledr   Zresult_slicedr.   r.   r/   test_pickle_roundtrip)  s   





r  c                 C  sH   | j  j}|| j}t|jtrJ t|jtsJ t||  d S r   )	r   	to_pandasrc   r   r5   r   r   r   r   )re   Zpd_arrayr   r.   r.   r/   test_astype_from_non_pyarrow9  s
   r  c                  C  s6   t dg} | d}t jdgdd}t|| d S )N1.0r   r8   rT   )rb   r   r   r   r   r   r   r   r.   r.   r/   &test_astype_float_from_non_pyarrow_strB  s   
r  c                 C  s   |   }| jj}tj|stj|stj|r"t	t
| }nt	| j}| jr8|t}tj|t| < t|| d S r   )r  r   rg   r)   rU   r]   r\   r[   r'  rc   list_hasnar   ru  rb   r  r  r   assert_numpy_array_equal)re   r   r   r   r.   r.   r/   test_to_numpy_with_defaultsJ  s   



r  c                  C  sT   dd g} t j| dd}| }tjdt jgtd}t|d ts"J t	|| d S )Nr;   r   rT   r   )
rb   rc   r  r'  r  ru  r   intr   r  )re   r   r   r   r.   r.   r/   test_to_numpy_int_with_na_  s   r  zna_val, exp)r;   r;   c                 C  sH   t jt jt jgdd}|jd| d}tj|gd dd}t|| d S )Nnull[pyarrow]rT   r   )r5   r   r?   rb   rc   r  r  r'  r   r  )Zna_valr  r   r   r   r.   r.   r/   test_to_numpy_null_arrayi  s   r  c                  C  sH   t jt jt jgdd} | jd d}tjt jgd dd}t|| d S )Nr  rT   r?   ru  r  )r   r   r   r.   r.   r/   !test_to_numpy_null_array_no_dtyper  s   r  c                 C  s   |   }|  }| d |d d < tj| d gt|  | jjd}t|| |  }| d d d |d d < | d d d }t|| |  }|  |d d < | }t|| d S )Nr   rT   r=   )	copyr!   rh   ri  r   rg   r   r   tolist)re   origr   r   r.   r.   r/   test_setitem_null_slicez  s    r  c                 C  s   | j j}tj|stj|rd}t}d}n tj|s)tj|s)tj	|r1d}tj
}d}nd}t}d}tj||d || d d < W d    d S 1 sPw   Y  d S )N{   zInvalid value '123' for dtypefoozCould not convertzInvalid value 'foo' for dtyper   )r   rg   r)   rU   r_   r`   r   rx   rW   rV   r*   r&   r$   )re   r   Z
fill_valueerrr   r.   r.   r/   test_setitem_invalid_dtype  s(   


"r  zreturns object with 7.0r}   c                  C  sv   t jtdtdgt  d} | jt  tt  ijd}tj	tdtdgtt  d}t
|| d S )Nz
2019-12-31rg   Ztypes_mapperrT   )r)   rc   rb   	Timestampdate32r  r   Zdate64getr   r   r   )Z
date_arrayr   r   r.   r.   r/   &test_from_arrow_respecting_given_dtype  s   
r  zdoesn't raise with 7c                  C  sj   t jddgt  d} tjt jdd | jt  tt  ij	d W d    d S 1 s.w   Y  d S )Nr         @r  zFloat value 1.5 was truncatedr   r  )
r)   rc   r   r&   r$   r*   r  r   r   r  )rc   r.   r.   r/   -test_from_arrow_respecting_given_dtype_unsafe  s    "r  c                  C  s   d} t jdddt jg| d}|d}t jdddt jg| d}t|| t jd	t jd
g| d}|d}t jdt jdg| d}t|| d S )Nr   r9   gGz?g{Gz@rT   r;   g333333?g@g^@gp=
cL@r=   g      ^@g      N@)rb   r   r  roundr   r   )r5   r   r   r   r.   r.   r/   
test_round  s   

r  c                 C  sr   | \}}}|  g d}tj|d< |rt|}d}tjt|d || W d    d S 1 s2w   Y  d S )N)r?   r   r;   r=   zOsearchsorted requires array to be sorted, which is impossible with NAs present.r   )r  rb   r  r   r&   r$   r&  Zsearchsorted)rt   Z	as_seriesrJ   rk   rI   r   r   r.   r.   r/    test_searchsorted_with_na_raises  s   


"r  c               
   C  s^   t t jddgttt t dddgd} |  }| j	ddgd	}t
|| d S )
Nr>  r?  rT   r;   r?   rI   rJ   rI   rJ   )Zby)rb   r   r   r   r)   
dictionaryint32r   r  Zsort_valuesr   r)  )r   r   r   r.   r.   r/   test_sort_values_dictionary  s   r  patabcz	a[a-z]{2}c                 C  sP   t jdd gtt d}|j| }t jdd gtt d}t	|| d S )Nr  rT   r;   )
rb   r   r   r)   r   r   r   r  r   r   )r  r   r   r   r.   r.   r/   test_str_count     r  c                  C  s^   t jdd gtt d} tjtdd | jj	ddd W d    d S 1 s(w   Y  d S )Nr  rT   z	count notr   r;   flags)
rb   r   r   r)   r   r&   r$   ra   r   r   r   r.   r.   r/    test_str_count_flags_unsupported     "r  zside, str_funcr  rjustr  ljustZbothcenterc                 C  sb   t jdd gtt d}|jjd| dd}t jtd|ddd gtt d}t	|| d S )NrI   rT   r   r>  )widthsideZfillchar)
rb   r   r   r)   r   r   padr   r   r   )r  Zstr_funcr   r   r   r.   r.   r/   test_str_pad  s   r  c                  C  s^   t jdd gtt d} tjtdd | j	ddd W d    d S 1 s(w   Y  d S )NrI   rT   zInvalid side: foor   r   r  r>  )
rb   r   r   r)   r   r&   r$   r&  r   r  r  r.   r.   r/   test_str_pad_invalid_side  r  r  zpat, case, na, regex, expabFTZAbz	a[a-z]{1}z	A[a-z]{1}c                 C  sT   t jdd gtt d}|jj| |||d}t j|tt d}t	|| d S )Nr  rT   )casenaregex)
rb   r   r   r)   r   r   containsr}  r   r   )r  r  r  r  r  r   r   r   r.   r.   r/   test_str_contains  s   r
  c                  C  ^   t jdd gtt d} tjtdd | jj	ddd W d    d S 1 s(w   Y  d S )Nr  rT   zcontains notr   rI   r;   r  )
rb   r   r   r)   r   r&   r$   ra   r   r	  r  r.   r.   r/   #test_str_contains_flags_unsupported  r  r  zside, pat, na, exp
startswithrJ   endswithbcc                 C  sT   t jdd gtt d}t|j| ||d}t j|tt d}t	|| d S )Nr  rT   )r  
rb   r   r   r)   r   r   r   r}  r   r   )r  r  r  r  r   r   r   r.   r.   r/   test_str_start_ends_with"  s   
r  zarg_name, argreplr  r  r;   c                 C  st   t jdd gtt d}dddd}||| < tjtdd |jj	d	i | W d    d S 1 s3w   Y  d S )
Nr  rT   rJ   r>  T)r  r  r  zreplace is not supportedr   r.   )
rb   r   r   r)   r   r&   r$   ra   r   replace)Zarg_nameargr   kwargsr.   r.   r/   test_str_replace_unsupported2  s   "r  zpat, repl, n, regex, exprI   r>  r=   ZxbxcZxbacz[a-b]Zxxxcc                 C  sT   t jdd gtt d}|jj| |||d}t j|tt d}t|| d S )NZabacrT   )nr  )	rb   r   r   r)   r   r   r  r   r   )r  r  r  r  r  r   r   r   r.   r.   r/   test_str_replace>  s   	r  c                  C  s^   t jdd gtt d} tjtdd | j	ddg W d    d S 1 s(w   Y  d S )Nr  rT   zrepeat is notr   r;   r?   )
rb   r   r   r)   r   r&   r$   ra   r   repeatr  r.   r.   r/   test_str_repeat_unsupportedM  r  r  zUnsupported for pyarrow < 7r   c                  C  P   t jdd gtt d} | jd}t jdd gtt d}t|| d S )Nr  rT   r?   Zabcabc)	rb   r   r   r)   r   r   r  r   r   r  r.   r.   r/   test_str_repeatS  s   r  zpat, case, na, expc                 C  R   t jdd gtt d}|jj| ||d}t j|tt d}t	|| d S Nr  rT   )r  r  
rb   r   r   r)   r   r   r   r}  r   r   r  r  r  r  r   r   r   r.   r.   r/   test_str_match_     r!  ZAbcc                 C  r  r  r  r   r.   r.   r/   test_str_fullmatchq  r"  r#  zsub, start, end, exp, exp_typr   r?   c                 C  sN   t jdd gtt d}|jj| ||d}t j|t|d}t|| d S )Nr  rT   )startend)	rb   r   r   r)   r   r   findr   r   )subr$  r%  r  Zexp_typr   r   r   r.   r.   r/   test_str_find  s   r(  c                  C  r  )Nr  rT   zfind not implementedr   r  r;   )r$  )
rb   r   r   r)   r   r&   r$   ra   r   r&  r  r.   r.   r/   test_str_find_notimplemented  r  r)  zi, exp)rJ   eN)rk   r*  N)rk   NN)rI   NNr  c                 C  sL   t jg dtt d}|j| }t j|tt d}t|| d S )N)r  deNrT   )	rb   r   r   r)   r   r   r  r   r   )r   r  r   r   r   r.   r.   r/   test_str_get  s   r-  z=TODO: StringMethods._validate should support Arrow list typesc                  C  sX   t tttdtdd g} | jd}t jg dtt	 d}t
|| d S )Nr  123=za=b=cz1=2=3NrT   )rb   r   r!   r)   rc   r  r   joinr   r   r   r   r  r.   r.   r/   test_str_join  s   "r2  c                  C  sN   t ttg d} | jd}t jg dtt d}t	
|| d S )N)r  r.  Nr/  r0  rT   )rb   r   r!   r)   rc   r   r1  r   r   r   r   r  r.   r.   r/   test_str_join_string_type  s   r3  zstart, stop, step, expc                 C  P   t jdd gtt d}|j| ||}t j|tt d}t|| d S NabcdrT   )	rb   r   r   r)   r   r   slicer   r   )r$  stopstepr  r   r   r   r.   r.   r/   test_str_slice     	r:  zstart, stop, repl, expZaxcdZxcdcdc                 C  r4  r5  )	rb   r   r   r)   r   r   Zslice_replacer   r   )r$  r8  r  r  r   r   r   r.   r.   r/   test_str_slice_replace  r;  r=  zvalue, method, exp)Za1cisalnumT)z!|,r>  F)aaaisalphaT)z!!!r@  F)u   ٠	isdecimalT)z~!rA  F)rK   isdigitT)~rB  F)r?  islowerT)ZaaArD  F)r.  	isnumericT)Z11IrE  F) isspaceT) rG  F)zThe ThatistitleT)zthe ThatrI  F)ZAAAisupperT)ZAAcrJ  Fc                 C  sR   t j| d gtt d}t|j| }t j|d gtt d}t	|| d S NrT   r  )valuer  r  r   r   r   r.   r.   r/   test_str_is_functions  s   rM  zmethod, exp
capitalizezAbc deftitlezAbc DefswapcasezAbC Defry  zabc defupperzABC DEFcasefoldc                 C  sR   t jdd gtt d}t|j|  }t j|d gtt d}t|| d S )NzaBc dEFrT   	rb   r   r   r)   r   r   r   r   r   )r  r  r   r   r   r.   r.   r/   test_str_transform_functions  s   rT  c                  C  sN   t jdd gtt d} | j }t jdd gtt d}t	|| d S )Nr6  rT   r6   )
rb   r   r   r)   r   r   ri  r  r   r   r  r.   r.   r/   test_str_len  s   
rU  zmethod, to_strip, val)rA  Nz abc )rA  r>  Zxabcx)lstripNz abc)rV  r>  Zxabc)rstripNzabc )rW  r>  Zabcxc                 C  sV   t j|d gtt d}t|j| |d}t jdd gtt d}t|| d S )NrT   )to_stripr  rS  )r  rX  valr   r   r   r.   r.   r/   test_str_strip  s   rZ  rY  Zabc123c                 C  P   t j| d gtt d}|jd}t jdd gtt d}t|| d S NrT   r.  r  )	rb   r   r   r)   r   r   removesuffixr   r   rY  r   r   r   r.   r.   r/   test_str_removesuffix  r  r_  Z123abcc                 C  r[  r\  )	rb   r   r   r)   r   r   removeprefixr   r   r^  r.   r.   r/   test_str_removeprefix&  r  ra  errorsignorestrictzencoding, exputf8s   abcutf32s     a   b   c   c                 C  sR   t jdd gtt d}|j|| }t j|d gtt d}t	|| d S Nr  rT   )
rb   r   r   r)   r   r   encodebinaryr   r   )rb  encodingr  r   r   r   r.   r.   r/   test_str_encode.  s   	rk  c                 C  s^   t jg dtt d}|jjd| d}t jdgg d gttt d}t	|| d S )N)r  ZefgNrT   rJ   r  )
rb   r   r   r)   r   r   findalllist_r   r   )r  r   r   r   r.   r.   r/   test_str_findall=  s   $rn  r  r$  rindexz
start, endc                 C  s   t jdd gtt d}t|j| d||}t jdd gtt d}t	|| t
jtdd t|j| d|| W d    d S 1 sGw   Y  d S )NabcbarT   rk   r?   zsubstring not foundr   r  )rb   r   r   r)   r   r   r   r   r   r   r&   r$   r&  )r  r$  r%  r   r   r   r.   r.   r/   test_str_r_indexE  s   	"rq  formNFCNFKCc                 C  s>   t jdd gtt d}|j| }| }t	|| d S rg  )
rb   r   r   r)   r   r   	normalizer  r   r   )rr  r   r   r   r.   r.   r/   test_str_normalizeW  s   rv  c                 C  sT   t jg dtt d}|jd| |}t jg dtt d}t	|| d S )N)rp  r  NrT   rk   )r?   r=   N)
rb   r   r   r)   r   r   rfindr   r   r   )r$  r%  r   r   r   r.   r.   r/   test_str_rfind_  s   rx  c                  C  sT   t jdd gtt d} | jddi}t jdd gtt d}t|| d S )Nrp  rT   rq  rJ   Zbbcbb)	rb   r   r   r)   r   r   	translater   r   r  r.   r.   r/   test_str_translatem  s   rz  c                  C  r  )Nrp  rT   r   zabc
ba)	rb   r   r   r)   r   r   wrapr   r   r  r.   r.   r/   test_str_wrapt  s   r|  c                  C  sb   t jg dtt d} | j }t jg dg dg dgtt g dd}t	
|| d S )N)za|bNza|crT   )TTFr  r  )rI   rJ   rk   )r5   r   )rb   r   r   r)   r   r   Zget_dummiesr   r}  r   r)  r  r.   r.   r/   test_get_dummies{  s   

r}  c                  C  s  t jdd gtt d} | jd}t jg dg dgtt d}t	|| | jjddd}t t
tg dd g}t|| | jd}t jg dg dgtt d}t	|| | jjddd}t t
tg dd g}t|| d S )	Nrp  rT   rJ   )rI   rJ   Zcbar  Fexpand)r  rJ   rI   )rb   r   r   r)   r   r   	partitionr   r   r)  r!   rc   r   
rpartitionr  r.   r.   r/   test_str_partition  s"   r  c                  C  sf  t jg dtt d} | jd}t ttg dg dd g}t	
|| | jjddd}t ttdd	gd
d	gd g}t	
|| | jjddd}t ttddgddgd g}t	
|| | jjdddd}t ttg dttg dd}t	|| | jjddd}t ttg dttg dd}t	|| d S )NZa1cbcba2cbcbNrT   rk   a1rJ   rJ   a2rJ   rJ   r;   r  r  Zbcbr  z[1-2]T)r  rI   cbcb)r  r  )rI   rI   N)r  r  Nr   r;   r@   r~  rI   r  Nr  NN)rb   r   r   r)   r   r   splitr!   rc   r   r   r   r)  r  r.   r.   r/   test_str_split  s<   r  c                  C  s(  t jg dtt d} | jd}t ttg dg dd g}t	
|| | jjddd}t ttdd	gd
d	gd g}t	
|| | jjdddd}t ttg dttg dd}t	|| | jjddd}t ttg dttg dd}t	|| d S )Nr  rT   rk   r  r  r;   r  a1cbrJ   a2cbT)r  r  )r  r  N)rJ   rJ   Nr  r@   r~  r  r  )rb   r   r   r)   r   r   rsplitr!   rc   r   r   r   r)  r  r.   r.   r/   test_str_rsplit  s2   r  c                  C  sZ   t jdd gtt d} tjtdd | j	d W d    d S 1 s&w   Y  d S )Nr  rT   z,str.extract not supported with pd.ArrowDtyper   z[ab](\d))
rb   r   r   r)   r   r&   r$   ra   r   extractr  r.   r.   r/   test_str_unsupported_extract  s   "r  r%  )r#  r"  rF  rG  c                 C  sF   ddg}t | }tj||d}tt jdd g|d}t|| d S )NZ1000NaTrT   i  r  )r)   durationr!   r   rc   r   r   )r%  stringsr   r   r   r.   r.   r/   #test_duration_from_strings_with_nat  s
   
r  c                 C  sX   | j j}tj|s*tjtdd t	| j
 W d    d S 1 s#w   Y  d S d S )Nz2Can only use .dt accessor with datetimelike valuesr   )r5   r3   r)   rU   r   r&   r$   AttributeErrorrb   r   r  ry   r.   r.   r/   test_unsupported_dt  s   "r  zprop, expectedyear  dayZday_of_weekZ	dayofweekweekdayZday_of_yearZ	dayofyearhourminuteZis_leap_yearz.is_leap_year not implemented for pyarrow < 8.0r#   )ZmarksmicrosecondrH   month
nanosecondr  Zquartersecondrr   r   r   c                 C  s   t jt jddddddddd	d gttd
d}t|j| }d }t|t	r+t
 }n
t|tr5td
}t ttj|d g|d}t|| d S )Nr  r;   r?   r   r6   rr   rH   r  )r  r  r  r  r  r  r  r  r#  rT   r  )rb   r   r  r   r)   r  r   r  r   r   r  r   time64r!   rc   r   r   )propr   r   r   Zexp_typer.   r.   r/   test_dt_properties	  s.   




r  c               	   C     t jtdddddtdddddtdddddd gttdd	} | jj}t jg d
tt d	}t	
|| | jj}t jg dtt d	}t	
|| d S )Nr  rD   r?   r   r  r  r  r  r;   rE   r"  rT   FTFNFFTN)rb   r   r   r   r)   r  r  Zis_month_startr}  r   r   Zis_month_endr  r.   r.   r/   test_dt_is_month_start_end;	     	r  c               	   C  s   t jtdddddtdddddtdddddd gttdd} | jj}t jg d	tt d}t	
|| | jj}t jg d
tt d}t	
|| d S )Nr  rD   rE   r   r  r;   r"  rT   r  )TFFN)rb   r   r   r   r)   r  r  Zis_year_startr}  r   r   Zis_year_endr  r.   r.   r/   test_dt_is_year_start_endN	  r  r  c               	   C  r  )Nr        r   r  r;   rE   r"  rT   r  r  )rb   r   r   r   r)   r  r  Zis_quarter_startr}  r   r   Zis_quarter_endr  r.   r.   r/   test_dt_is_quarter_start_enda	  r  r  Zdays_in_monthZdaysinmonthc              	   C  sz   t jtdddddtdddddtdddddd gttdd	}t|j| }t jg d
tt d	}t	
|| d S )Nr  r   r  r  r6   r;   r?   r"  rT   )rE   r     N)rb   r   r   r   r)   r  r   r  r   r   r   )r  r   r   r   r.   r.   r/   test_dt_days_in_montht	  s   	r  c                  C  s   t jtddddtdddddtdddd	d
d
dd gttdd} | j }t jtddddtddddtddddd gttdd}t	|| d S )Nr  r   r  r  r  r  r6   r;   r  r?      ;   )r  r  r  r  r  r  r"  rT   )
rb   r   r   r   r)   r  r  ru  r   r   r  r.   r.   r/   test_dt_normalize	  s$   
		r  r"  r#  c                 C  sx   t jtdddddd gtt| d}|jj| ksJ |jj}t t	tj
tddd gt| d}t|| d S )	Nr  r;   r?   r   r  rT   r   r  )rb   r   r   r   r)   r  r  r%  r   r!   rc   r  r   r   r%  r   r   r   r.   r.   r/   test_dt_time_preserve_unit	  s    r  r   )Nr  
US/Pacificc                 C  sJ   t jtdddddd gttjd| dd}|jj}|t	| ks#J d S )	Nr  r;   r?   r   r  r#  r   rT   )
rb   r   r   r   r)   r  r  r   r   Zmaybe_get_tz)r   r   r   r.   r.   r/   
test_dt_tz	  s   r  c                  C  sb   t jtdddddd gttdd} | j }t jg dg d	gg d
dd}t	
|| d S )Nr  r;   r?   r   r  r#  rT   )r  r;   r;   r  )r  weekr  r   r   r5   )rb   r   r   r   r)   r  r  isocalendarr   r   r)  r  r.   r.   r/   test_dt_isocalendar	  s   
r  day_nameZSunday
month_nameJanuaryc                 C  sd   t | tjtdddd gttdd}t|j|  }tj|d gtt	 d}t
|| d S )Nr  r;   rF  rT   )r0   rb   r   r   r   r)   r  r   r  r   r   r   )r  r  r-   r   r   r   r.   r.   r/   test_dt_day_month_name	  s
   $r  c                 C  sf   t |  tjtdddddd gttdd}|jd}tjd	d gtt	 d}t
|| d S )
Nr  r;   r?   r   r  r#  rT   z%Y-%m-%dT%H:%M:%Sz2023-01-02T03:00:00.000000000)r0   rb   r   r   r   r)   r  r  strftimer   r   r   )r-   r   r   r   r.   r.   r/   test_dt_strftime	  s   r  )ceilr  r  c                 C  s   t jtdddddd gttdd}tjtdd	 t	|j
| d
dd W d    n1 s0w   Y  tjtdd	 t	|j
| d
dd W d    d S 1 sRw   Y  d S )Nr  r;   r?   r   r  r#  rT   zambiguous is not supported.r   Z1Hr  Z	ambiguousznonexistent is not supported.nonexistent)rb   r   r   r   r)   r  r&   r$   ra   r   r  r  r   r.   r.   r/   *test_dt_roundlike_tz_options_not_supported	  s   "r  c                 C  s   t jtdddddd gttdd}tjtdd	 t	|j
| d
 W d    n1 s.w   Y  tjtdd	 t	|j
| d  W d    d S 1 sNw   Y  d S )Nr  r;   r?   r   r  r#  rT   zfreq='1B' is not supportedr   Z1Bz$Must specify a valid frequency: None)rb   r   r   r   r)   r  r&   r$   r&  r   r  r  r.   r.   r/   "test_dt_roundlike_unsupported_freq	  s   "r  z'Methods not supported for pyarrow < 7.0freq)DHTSLUNc                 C  sn   t tddddd g}ttd}t|j|d|  |}t||j|d|  }t	
|| d S )Nr  r;   r  r#  r@   )rb   r   r   r   r)   r  r   r  r   r   r   )r  r  r   rd   r   r   r.   r.   r/   test_dt_ceil_year_floor	  s   r  c                  C  s   t dddt dddg} tj| ttdd}d}tjt|d |j	
 }W d    n1 s1w   Y  tj| td}t|| tdd	 |D sNJ d
}tjt|d |dj	
 }W d    n1 sjw   Y  t|| d S )NrB   r;   r  r#  rT   CThe behavior of ArrowTemporalProperties.to_pydatetime is deprecatedr   c                 s  s    | ]	}t |tu V  qd S r   )rg   r   ).0resr.   r.   r/   	<genexpr>
  s    z(test_dt_to_pydatetime.<locals>.<genexpr>z>The behavior of DatetimeProperties.to_pydatetime is deprecatedzdatetime64[ns])r   rb   r   r   r)   r  r   assert_produces_warningFutureWarningr  r  r'  rc   ru  r  r   r   )re   r   r   r   r   r.   r.   r/   test_dt_to_pydatetime
  s   r  	date_typer   @   c              	   C  s   t jtdddgtttd|   d}d}tjt|d- t	j
tdd |j  W d    n1 s6w   Y  W d    d S W d    d S 1 sNw   Y  d S )	NrB   rD   rE   r   rT   r  r   z#to_pydatetime cannot be called with)rb   r   r   r   r   r)   r   r  r  r&   r$   r&  r  r  )r  r   r   r.   r.   r/    test_dt_to_pydatetime_date_error
  s   "r  c                  C  s   t jtdddddd gttdd} tjtdd	 | j	j
d
dd W d    n1 s.w   Y  tjtdd	 | j	j
d
dd W d    d S 1 sNw   Y  d S )Nr  r;   r?   r   r  r#  rT   z ambiguous='NaT' is not supportedr   r  r  r  z"nonexistent='NaT' is not supportedr  )rb   r   r   r   r)   r  r&   r$   ra   r  tz_localizer  r.   r.   r/   *test_dt_tz_localize_unsupported_tz_options%
  s   "r  c                  C  sp   t jtdddddd gttjdddd	} | jd }t jtdddddd gttdd	}t	|| d S )
Nr  r;   r?   r   r  r#  r  r  rT   )
rb   r   r   r   r)   r  r  r  r   r   r  r.   r.   r/   test_dt_tz_localize_none1
  s   r  c                 C  s   t | tjtdddddd gtt| d}|jd}tj	tdddddd gt| d}tj
|d}tt|}t|| d S )	Nr  r;   r?   r   r  rT   r  r  r0   rb   r   r   r   r)   r  r  r  rc   ZcomputeZassume_timezoner!   r   r   )r%  r-   r   r   exp_datar   r.   r.   r/   test_dt_tz_localize>
  s   r  znonexistent, exp_dateZshift_forwardrD   r  Zshift_backwardz2023-03-12 01:59:59.999999999c                 C  s   t | tjtddddddd gttdd}|jjd	| d
}tj	|d gtdd}tj
|d	}tt|}t|| d S )Nr  r   rD   r?   r  )r  r  r  r  r  r#  rT   r  r  r  r  )r  Zexp_dater-   r   r   r  r   r.   r.   r/   test_dt_tz_localize_nonexistentO
  s   r  c                  C  sh   t jtdddddd gttdd} tjtdd	 | j	
d
 W d    d S 1 s-w   Y  d S )Nr  r;   r?   r   r  r#  rT   z"Cannot convert tz-naive timestampsr   r  )rb   r   r   r   r)   r  r&   r$   r   r  
tz_convertr  r.   r.   r/    test_dt_tz_convert_not_tz_raisesd
  s   "r  c                  C  sn   t jtdddddd gttddd} | jd }t jtdddddd gttdd}t	|| d S )	Nr  r;   r?   r   r  r#  r  rT   
rb   r   r   r   r)   r  r  r  r   r   r  r.   r.   r/   test_dt_tz_convert_nonem
  s   r  c                 C  sp   t jtdddddd gtt| dd}|jd}t jtdddddd gtt| dd}t	|| d S )	Nr  r;   r?   r   r  r  rT   z
US/Easternr  r  r.   r.   r/   test_dt_tz_convertz
  s   r  r   c                 C  sD   t jd gdd}t|| |d}|r| dk}nt j}||u s J d S )Nr   rT   r   r   )rb   r   r   r  )r   r   r   r   r   r.   r.   r/   #test_boolean_reduce_series_all_null
  s   
r  c                  C  s   g d} g d}d g}| | | }dgt |  dgt |  d gt |  }tj|t d}tj|dd}t|| ddg}t	j
tjd	d
 tj|t d W d    d S 1 s]w   Y  d S )N)trueTRUETruer@   r  )falseFALSEFalse0rA   TFrT   r  r  r  zFailed to parser   )ri  r!   r   r)   r}  rb   rc   r   r   r&   r$   r*   )Ztrue_stringsZfalse_stringsZnullsr  Zboolsr   r   r.   r.   r/   %test_from_sequence_of_strings_boolean
  s   ("r  c                 C  sB   t jg | d}| }t |tjg tjd g}t|| d S rK  )	rb   r   r  concatr'  rc   r}  r   r   )r5   r   r   r   r.   r.   r/   %test_concat_empty_arrow_backed_series
  s   r  r   zstring[pyarrow]c                 C  s>   t d }tj|| d}tjt|| d}t|| d S )Nzthe quick brown foxrT   )r)   rc   r  rb   r   r!   r   r   )r5   r   r   r   r.   r.   r/   test_series_from_string_array
  s   r  c                      r{   )OldArrowExtensionArrayc                   s   t   }|d|d< |S )Nr   _data)r~   __getstate__pop)r   stater   r.   r/   r  
  s   
z#OldArrowExtensionArray.__getstate__)r   r   r   r  r   r.   r.   r   r/   r  
  r   r  c                  C  sV   t dg} t| }tt|}t|| |jt 	| ks"J t
|dr)J d S )Nr;   r  )r)   rc   r  r  r  r  r   r   r   chunked_arrayhasattr)re   r   r   r.   r.   r/   #test_pickle_old_arrowextensionarray
  s   r  c                  C  sT   d} t ttj| ftjdg}| }d|tj| ftjd< |j|jks(J d S )Nih6 rT   F)	r!   r)   r  r'  Zonesr}  r  Zzerosr   )r  r   r   r.   r.   r/   /test_setitem_boolean_replace_with_mask_segfault
  s
   r  zdata, arrow_dtyperN   rO   c                 C  s:   t |}tjt| |d}tj| |d}t|| d S rK  )r   rb   rc   r'  r   r   )re   r  r5   r   r   r.   r.   r/   -test_conversion_large_dtypes_from_numpy_array
  s   r  c                  C  sl   t jdd d gitt d} t jdddgidd}t j| |gdd}t jdg didd}t|| d S )	NrI   rT   r   r;   r   T)Zignore_index)NNr   r;   )rb   r   r   r)   nullr  r   r)  )r   Zdf2r   r   r.   r.   r/   test_concat_null_array
  s
   r  c                 C  sN   t jg dt| d}| }t jg dtt g dd}t|| d S )Nr;   r?   r   rT   )r   r?   r;   r;   r   g       @r  r   r   r   r   r   25%50%75%r   r5   r$  )rb   r   r   describer)   r   r   r   r   re   r   r   r.   r.   r/   test_describe_numeric_data
  s   
r  c                 C  s^   t jtddt| d}| }t jdgt jg d| jd  tg dd}t	
|| d S )	Nr;   rG   rT   	   )rH   r?   r;   r   rH   rr   r  r%  r  r  )rb   r   r  r   r  to_timedeltar%  r  ru  r   r   r  r.   r.   r/   test_describe_timedelta_data
  s   r  c                   sX   t jtddt d}| }t jdg fdddD  tg dd	}t|| d S )
Nr;   rG   rT   r  c                   s    g | ]}t j| j jd qS ))r   r%  )rb   r  r   r%  )r  vr   r.   r/   
<listcomp>  s    z/test_describe_datetime_data.<locals>.<listcomp>)rH   r;   r   rH   rr   r  )r   r   r   r  r	  r
  r   r  )rb   r   r  r   r  ru  r   r   r  r.   r  r/   test_describe_datetime_data  s   
	r  c                 C  s<   g d}t j|t| d}|d}|d }||ksJ d S )Nr  rT   g?r   )rb   r   r   r  )r   re   r   r   r   r.   r.   r/   test_quantile_temporal  s
   
r  c                  C  sB   t jtdgt  d} tj| t| jd}t	|dksJ d S )Nz
2020-01-01r  rT   z+0    2020-01-01
dtype: date32[day][pyarrow])
r)   rc   r   fromisoformatr  rb   r   r   rg   repr)Zarrow_dtr   r.   r.   r/   test_date32_repr  s   r  z9Function 'add_checked' has no kernel matching input typesc                  C  s   t dd g} t dd g}t j| ttdd}t j|ttdd}|| }t jdd gttdd}t	|| d S )Nr;   r#  rT   r?   )
rb   to_datetimer  r   r   r)   r  r  r   r   )Zdata_tsZdata_tdZser_tsZser_tdr   r   r.   r.   r/   2test_duration_overflow_from_ndarray_containing_nat%  s   r  c                 C  s\   t | }|dksJ | jr|dv rtjjdd}|j| |t jt| ddks,J d S )Nzunknown-array)ZfloatingZ
datetime64Ztimedelta64zfin infer_dtype pd.NA is not ignored in these cases even with skipna=True in the list(data) check belowr}   Tr   )	r
   Zinfer_dtyper  r&   r'   r(   r+   r,   r  )re   r-   r  r'   r.   r.   r/   test_infer_dtype_pyarrow_dtype5  s   
r  c                 C  sz   d}| j }tj| rtj||d|g}ntj||| jd|g}t	j
|| d}t	tj|g| d}t|| d S )Nr   r  r%  r   rT   r  )r%  r)   rU   r]   rb   	Timedeltaas_unitr  r   r!   rh   rc   r   r   )r   rY  r%  seqr   r   r.   r.   r/   test_from_sequence_temporalC  s   r"  c                 C  s   | j }tj| rtjd|d|}ntjd|| jd|}t	tj
g d| d}| }||d d < t	tj
g d| d}t|| d S )Nr;   r  r  r  r  )r;   r;   r;   )r%  r)   rU   r]   rb   r  r   r  r   r!   rc   r  r   r   r   r%  rY  r   r   r   r.   r.   r/   test_setitem_temporalT  s   r$  c                 C  s   t rtj| rtjjtjdd}|j	| t
tjg d| d}| j}|tjd|d| }t
tjg d| d}t|| d S )Nz>Function 'subtract_checked' has no kernel matching input typesr#   r  r  r;   r  )r   r;   r?   )r   r)   rU   r]   r&   r'   r(   r   r+   r,   r!   rc   r%  rb   r  r   r   r   )r   r-   r'   r   r%  r   r   r.   r.   r/   test_arithmetic_temporalg  s   r%  c                 C  s   | j }tj| rtjd|d|}ntjd|| jd|}t	tj
g d| d}||k}t	tj
g dt d}t|| d S )Nr;   r  r  r  r  )FTT)r%  r)   rU   r]   rb   r  r   r  r   r!   rc   r}  r   r   r#  r.   r.   r/   test_comparison_temporalz  s   r&  c                 C  s   t tjg d| d}|d }tj| r*tjd| jd| j}t	|tjs)J ntj
d| j| jd| j}t	|tj
s@J |j|jksHJ ||ksNJ d S )Nr  r  r;   r?   r  r  )r!   r)   rc   rU   r]   rb   r  r%  r   r   r  r   r   r   r   r   r.   r.   r/   test_getitem_temporal  s   r(  c                 C  s   t tjdd g| d}t|}tj| r/tjd| jd	| jtj
g}t|d tjs.J ntjd| j| jd	| jtj
g}t|d tjsJJ |d j|d jksVJ ||ks\J d S )Nr;   r  r  r   r  )r!   r)   rc   r  rU   r]   rb   r  r%  r   r  r   r  r   r'  r.   r.   r/   test_iter_temporal  s   r)  c                 C  sR   t j| d d g dd}|jdd }t jddgdd	d
gd}t|| d S )Nr   )rI   rI   rJ   r  r   )levelr?   r;   r   rI   rJ   r  )rb   r   r   sizer   r   )re   r   r   r   r.   r.   r/   'test_groupby_series_size_returns_pa_int  s   r,  c                 C  s   t tjdd g| d}| }tj| r/tjd| jd	| jtj
g}t|d tjs.J ntjd| j| jd	| jtj
g}t|d tjsJJ tj|td}|d j|d jks]J t|| d S )Nr;   r  r  r   r  rT   )r!   r)   rc   r  rU   r]   rb   r  r%  r   r  r   r  r   r'  ru  r   r  r'  r.   r.   r/   test_to_numpy_temporal  s   r-  c                 C  s\   t ddg| | d}|d }t jddggt jdgddddgdd}t|| d S )	Nr;   r   rm   )r   rn   ro   r   )r$  r   r5   )rb   r   r   r   r   r   r)  )ri   r   r   r   r.   r.   r/   %test_groupby_count_return_arrow_dtype  s   r.  c                  C  sD   t jddgddggttjt ddd} | jj}|tks J d S )Nr;   r?   r   r6   )Z	list_sizerT   )	rb   r   r   r)   rm  r   r5   rg   r  )r   r   r.   r.   r/   test_fixed_size_list  s
   "r/  c                  C  s@   t jt jddddgttdd} t| }d}||ksJ d S )NZ2012r   )r.  colr  r  z#     col
0  15340
1  15341
2  15342)rb   r   Zperiod_ranger   r"   r  )r   r   r   r.   r.   r/   'test_arrowextensiondtype_dataframe_repr  s   
r1  c                 C  sh   t jd dgt| d}t tjddgd| j dd}||}t jddgt| d}t|| d S )Nr?   rT   r;   r   zm8[rH  )	rb   r   r   r'  rc   r%  r  r   r   )r   Zser1Zser2r   r   r.   r.   r/   test_duration_fillna_numpy  s
   "
r2  c                  C  s`   t jdgdd} t jd gdd}tjtjjdd | |k  W d    d S 1 s)w   Y  d S )Nl            r   rT   r   zInteger valuer   )rb   r   r&   r$   r)   r
   r*   r  r.   r.   r/   +test_comparison_not_propagating_arrow_error  s
   
"r3  c                  C  s   t t dg t dg g} tt| }| \}}tjddgtj	d}t
t|  }t|| t|| d S )NrI   rJ   r   r;   rT   )r)   r  rc   Zdictionary_encoderb   r   r!   Z	factorizer'  Zintpr   r   r   r  r   )r   r   Zres_indicesZres_uniquesZexp_indiciesZexp_uniquesr.   r.   r/   !test_factorize_chunked_dictionary  s   r4  (  r  
__future__r   r   r   r   r   decimalr   ior   r	   rz  r  r   numpyr'  r&   Zpandas._libsr
   Zpandas._libs.tslibsr   Zpandas.compatr   r   r   r   r   r   r   r   r   Zpandas.core.dtypes.dtypesr   r   Zpandasrb   Zpandas._testingZ_testingr   Zpandas.api.extensionsr   Zpandas.api.typesr   r   r   r   r   r   r   Zpandas.tests.extensionr   Zimportorskipr)   Zpandas.core.arrays.arrow.arrayr!   Z(pandas.core.arrays.arrow.extension_typesr"   r0   ZfixtureZALL_PYARROW_DTYPESr   r5   re   ri   rj   rp   rt   rv   rz   ZBaseCastingTestsr|   ZBaseConstructorsTestsr   ZBaseGetitemTestsr   ZBaseAccumulateTestsr   ZBaseReduceTestsr   ZBaseGroupbyTestsr   ZBaseDtypeTestsr   ZBaseIndexTestsr  ZBaseInterfaceTestsr
  ZBaseMissingTestsr  ZBasePrintingTestsr  ZBaseReshapingTestsr  ZBaseSetitemTestsr  ZBaseParsingTestsr  ZBaseUnaryOpsTestsr+  ZBaseMethodsTestsr-  ZBaseArithmeticOpsTestsr8  ZBaseComparisonOpsTestsrm  r  r'   r   ZALL_INT_PYARROW_DTYPESr  r  r  r  r  r  r  ri  bytesZlarge_binaryZlarge_stringrm  r   r  Z
large_listZmap_r   structrk  dictr  r  r  r  r  r  r  r  r  r  r  r  r  r(  r  r  r  r  Zskipifr  r  r  r  r  r  r  r  r  r
  r  r  compiler  r  r  r(   ra   r  r!  r#  r  r(  r)  r-  r  r2  r3  r:  r=  rM  rT  rU  rZ  r_  ra  rk  rn  rq  rv  rx  rz  r|  r}  r  r  r  r  r  r  r4   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  ZFLOAT_PYARROW_DTYPESr  ZTIMEDELTA_PYARROW_DTYPESr  ZDATETIME_PYARROW_DTYPESr  r  r  r   r  r  r"  r$  r%  r&  r(  r)  r,  r-  r.  r/  r1  r2  r3  r4  r.   r.   r.   r/   <module>   s   ,$	

;


:


>P D'A  5+ "
L



 
		





	


	 




*



















("		

	

	

							