
    @i                   p+   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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m Z  ddl!m"Z" ddl#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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7 ddl8m9Z9  ej:        d          Z;ddl<m=Z= ddl>m?Z? d Z@ ejA        e,jB        eC          d             ZDejA        d             ZEejA        d             ZF ejA        ddg          d             ZGejA        d             ZHejA        d             ZIejA        d             ZJejA        d              ZK G d! d"e9jL                  ZM G d# d$          ZNejO        P                    d%e,jQ                  d&             ZRd' ZSd( ZTd) ZUd* ZVd+ ZWejO        P                    d,g d-          ejO        P                    d.d/d/d/gg          d0                         ZXejO        P                    d1g d2d3dggg d4dgggd5d6g7          d8             ZYd9 ZZejO        P                    d:e;[                                e\ge;[                    d;          e\ge;]                                e\ge;^                                eCge;_                    e;`                                          eage;b                    e;`                                          eage;c                    e;d                                e;`                                          eage;e                    d<e;f                                fd=e;d                                fg          egge;h                    e;`                                e;`                                          e'gg	          d>             Zid? Zjd@ ZkdA ZldB ZmdC ZndD ZodE ZpdF ZqdG ZrdH ZsdI ZtdJ ZudK ZvejO        P                    dLej.        ejw        fdMg          dN             ZxdO ZydP ZzdQ Z{dR Z|dS Z}dT Z~dU ZdV ZdW ZejO        P                    dXdYdZg          d[             Zd\ ZejO        P                    d]d^d_gd`dagdbdcgg          dd             Zde ZejO        P                    dfdgdhddhdidggdjdiddhdhdggdgdhdidhdidiggdkdhddididggdldiddidhdggg          dm             Zdn Zdo ZejO        P                    dpdqdgdg drgdqdsdhg dtgdudsdig dvgdudwdg drgdqdxdg dygdudzdg dygdqd{dg d|gdud{dg d|gg          d}             ZejO        P                    d~d          d             ZejO        P                    ddX ej        ds          gdeCgddhgddgg          d             ZejO        P                    dddddhddggddddhddggddddiddggg          d             Zd Zd Zd Zd ZejO        P                    ddgdhddidggdjdiddhdggdwdiddhdggdgdhdididiggdkdhddidggdldiddhdggg          d             ZejO        P                    ddYdhdg dgddidg dgdwdidg dgdgdhdg dgdZdhdg dgdldidg dgddhdg dgddhdg dgddidg dgddidg dgddidg dgddidg dgg          d             ZejO        P                    ddgddddge;                                gdwddddge;`                                gdgddddge;`                                gdgddddge;`                                gg          d             Zd Zd Zd Zd ZejO        P                    dg d          ejO        P                    dg d          ejO        P                    dg d          d                                     Zd ZejO        P                    ddg dgdg dgdg dgdg dgd3g dgg          d             ZejO                            de          d             Zd ZejO        P                    dddddgdggddddgdggddddwdggdddddgfg          d             ZejO        P                    ddddddggdddddggdddddggg          dĄ             ZejO        P                    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jO        P                    dddgddgddgddgddgddgg          d             Zd ZejO        P                    dg dg dg dg dg dg dg          d             ZejO        P                    dddYg          d             ZejO        P                    dddYg          d             ZejO        P                    dddg          ejO        P                    ddddYdfddddfgddg7          d                         ZejO        P                    dddg          d             ZejO        P                    d ddg          ejO        P                    dddgdd3gg          d                         ZejO        P                    dddg          d             ZejO        P                    dddgdd3gg          d	             Zd
 Zd Zd Zd ZejO        P                    d ddg          d             Zd Zd Zd ZejO        P                    ddidhg          d             Zd ZejO        P                    dg d          d             Zd ZejO        P                    dddgddgddgd dgd!dgd"dgd#dgd$dgd%d3gd&dhgd'd(gd)dgd*d+gd,dgd-d.gd/ eddd          gd0 edd3d.d(          gg          d1             ZejO        P                    d'g d2          d3             Zd4 Zd5 Zd6 ZejO        P                    d d7d8g          d9             Zd: ZejO        P                    dd;d<g          d=             ZejO        P                    d>g d?          d@             ZdA ZejO        P                    dِdBdCgdDdEgg          dF             ZĐdG ZejO        P                    d g dH          dI             ZejO        P                    d g dH          dJ             ZejO        P                    dKg dL          ejO        P                    d g dH          dM                         ZȐdN ZejO        P                    dOdPdQg          dR             ZʐdS ZːdT ZejO        P                    dd;d<g          dU             ZejO        P                    dVdW edddXdY          gdZ e)j        d[          gg          d\             Zϐd] ZАd^ ZejO        P                    dd;d<g          d_             ZejO        P                    d`dadbg          dc             ZejO        P                    ddg de          df             ZejO        P                    ddg dg          dh             ZejO        P                    dig dj          dk             Z֐dl ZejO        P                    ddmdgdndgdodgdpd3gg          dq             Zؐdr Zِds Zڐdt Zېdu ZejO        P                    dvdidhg          dw             Zݐdx Zސdy ZejO        P                    d`dzd{g          d|             Z G d} d~e=          Zd Zd ZejO        P                    dddge;]                                fddsge;^                                fg          d             Zd ZejO        P                    d%e,jQ        e,j        z             d             ZejO        P                    d%e,j                  d             ZejO        P                    d%e,j                  d             ZejO        P                    d%e,j        e,j        z             d             Zd Zd Zd ZejO        P                    d%e,j        e,j        z             d             ZejO        P                    d%e,j        e,j        z             d             ZejO        P                    d%e,j        e,j        z             d             ZejO        P                    d%e,j        e,j        z             d             ZejO        P                    d%e,j        e,j        z             d             ZejO        P                    d%e,j        e,j        z             d             Zd ZejO        P                    d%e,j        e,j        z   e7          ejO        P                    d`deg          d                         Zd Zd Zd Zd Zd Zd ZejO        P                    d%e,j                  d             Z d Zd Zd Zd Zd Zd ZejO        P                    d`ddg          d             ZejO        P                    d%e,j                  d             Z	ejO        P                    d%e,j                  d             Z
ejO        P                    d`e,j                  d             ZejO        P                    d`g d          d             ZejO        P                    d%e,jQ                  d             ZejO        P                    d`ddg          d             ZejO        P                    d`ddg          d             Zd Zd ZejO        P                    d`ddg          d             Zd Zd Zd ZejO        P                    de;^                                e;d                                g          d             Zd Zd ZejO                            ed          d             Zd Zd Zd Zd Zd Z d Z!d Z"d Z#dÄ Z$ejO        P                    dg dŢ          dƄ             Z%ejO        P                    dg dȢ          dɄ             Z&dʄ Z'd˄ Z(ejO        P                    d g d̢          d̈́             Z)ejO        P                    d g 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)PY312is_ci_environmentis_platform_windowspa_version_under14p0pa_version_under19p0pa_version_under20p0pa_version_under21p0)pa_version_under22p0)Pandas4Warning)pandas_dtype)
ArrowDtypeCategoricalDtypeType)
no_default)is_bool_dtypeis_datetime64_any_dtypeis_float_dtypeis_integer_dtypeis_numeric_dtypeis_signed_integer_dtypeis_string_dtypeis_unsigned_integer_dtype)basepyarrow)ArrowExtensionArray)ArrowPeriodTypec                    t                      rWt                      rKt          rFt          j                            t          j        d          }|                     |           d S 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   r   pytestmarkxfailpaArrowInvalidapplymarker)requestr+   s     C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\pandas/tests/extension/test_arrow.py_require_timezone_databaser2   L   s     "!2!4!4 "9M "{  ?; ! 
 
 	D!!!!!" " " " " "    )paramsidsc                ,    t          | j                  S )N)pyarrow_dtype)r   param)r0   s    r1   dtyper9   X   s    GM2222r3   c           
        | j         }t          j                            |          rddgdz  d gz   ddgz   d gz   ddgz   }nt          j                            |          rddgdz  d gz   ddgz   d gz   dd	gz   }nt          j                            |          rd
dgdz  d gz   ddgz   d gz   d
dgz   }nt          j                            |          rd
dgdz  d gz   dd
gz   d gz   d
dgz   }nIt          j                            |          rit          d          t          d          gdz  d gz   t          d          t          d          gz   d gz   t          d          t          d          gz   }nt          j        	                    |          rut          dd
d
          t          ddd          gdz  d gz   t          dd
d
          t          dd
d
          gz   d gz   t          ddd          t          ddd          gz   }n-t          j                            |          rt          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z   d gz   t          dd
d
          t          dd
d
          gz   }nt          j                            |          rjt          d
          t          d
d
          gdz  d gz   t          d          t          d          gz   d gz   t          d          t          d          gz   }nt          j                            |          rnt!          dd          t!          dd          gdz  d gz   t!          dd          t!          d
d
          gz   d gz   t!          dd          t!          dd          gz   }nyt          j                            |          rddgdz  d gz   ddgz   d gz   d d!gz   }n@t          j                            |          rd"d#gdz  d gz   d$d%g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   !   >r9   )r7   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)r9   pa_dtypedatas      r1   rh   rh   ]   s   "H	x8$$ 5"e}q D6)T5M9TFBdE]R			h	'	' 3"SzA~&$5>#tL		#	#H	-	- 1"1vzTF"b"X-6!R@		%	%h	/	/ /"1vzTF"aV+tf42w>			X	&	& -"S\\75>>*Q.fv01 f u~~wx001	2 	 
		(	#	# %"$1tD"b112Q6fD!QdAq!1!123 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(?(?@A f a##XdAq%9%9:	; 	 
		h	'	' "q\\9Q??+a/f}}ill+, f ~~y}}-	. 	 
		(	#	# ""a[[$q"++&*fAqzz41::&' f Aqzz41::&	' 	 
		H	%	% "SzA~&#s3tf<SzI			H	%	% "d|a4&(D$<74&@D$<O!!8D&&&&r3   c                d    t          |                               d| d         g| j                  S )zLength-2 array with [NA, Valid]Nr   rW   type_from_sequencer9   )rh   s    r1   data_missingrm      s-     ::$$dDG_DJ$GGGr3   rh   rm   )r4   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.
    rh   rm   N)r8   )r0   rh   rm   s      r1   all_dataro      s1     }	.	(	( 
)	(r3   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?rA   r   r?   rJ   rF   rG   rH   i  rE   rI      rL   rM   crQ   rR      cz-1.1rD   z1.1NrW   )r7   r-   rX   rY   rZ   r[   r\   r^   r   r_   r   r`   r   ra   r   rb   rc   r]   r   rd   re   rf   )r9   rg   ABCs        r1   data_for_groupingrw      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%@@@@r3   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      rq   rW   rj   rw   s    r1   data_for_sortingr{      K     !""11	1	035Fq5IJ% 2   r3   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   r;   rq   rW   rj   rz   s    r1   data_missing_for_sortingr~      r|   r3   c                T   | j         j        }t          j                            |          s]t          j                            |          s>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.r;   rJ   rW   )
r9   r7   r-   rX   
is_integerrZ   r]   r`   re   rf   rh   rg   s     r1   data_for_twosr     s     z'H
H%%48))4 8x((4 8))	4 xb
3333Kr3   c                  F    e Zd Zd Zd Zd Zej                            dddg          d             Z	 fdZ
 fd	Zd
 Zd Zd Zd ZdLdZej                            dddg           fd            ZdLdZdMdZej                            dddg           fd            ZdNdZej                            d          ej                            dddg           fd                        Zej                            dddg           fd            Zej                            d g d!          d"             Z fd#Z fd$Zd% Z fd&Z fd'Zej                            d(d)           fd*            Z d+ Z!d, Z"ej                            d-d)           fd.            Z#ej                            d-d)           fd/            Z$ej                            d0d1e%g          ej                            d2d3d4g          d5                         Z& fd6Z'ej                            d7d8d9g           fd:            Z(d; Z)d<Z*d= Z+dOd>Z,d? Z-dPdAZ.dB Z/ fdCZ0 fdDZ1dE Z2 fdFZ3dG Z4ej                            dHg dI          dJ             Z5 fdKZ6 xZ7S )QTestArrowArrayc           	        |j         }|dk    rt          d          }n2|dk    r,t          t          |                    rt          d          }t          t          |                    rK|                    d t          t          |          t                    d          D             |          S |                    fdt          |          D             |          S )	Nbool[pyarrow]int64[pyarrow]zint8[pyarrow]c                    g | ]
\  }}||z   S  r   ).0rL   rM   s      r1   
<listcomp>z=TestArrowArray._construct_for_combine_add.<locals>.<listcomp>  s     OOO6AqQOOOr3   T)strictrW   c                    g | ]}|z   S r   r   )r   rL   rights     r1   r   z=TestArrowArray._construct_for_combine_add.<locals>.<listcomp>#  s    ///qU///r3   )r9   r   
isinstancerk   rl   ziplist)selfleftr   r9   s     ` r1   _construct_for_combine_addz)TestArrowArray._construct_for_combine_add  s    
 O## !122EEo%%*UDJJ*G*G% !122EeT$ZZ(( 		&&OOSdT%[[%N%N%NOOO '   
 &&////DJJ/// '   r3   c                j    t          j        |          }|                     ||||d                    d S Nr   )re   Series_compare_other)r   rh   comparison_opsers       r1   test_compare_scalarz"TestArrowArray.test_compare_scalar'  s3    iooC}d1g>>>>>r3   c                    t          j        |          }t          t          |                    }|                     ||||           d S N)re   r   rangelenr   )r   rh   r   r   
range_tests        r1   test_compare_range_lenz%TestArrowArray.test_compare_range_len+  s@    ioo3s88__
C]JGGGGGr3   	na_actionNignorec                   |j         j        dv rJ|                    d |          }|                    t                    }t          j        ||           d S |                    d |          }|j         dk    r$|r"|                    dt          j                  }n|                                }t          j        ||           d S )	NmMc                    | S r   r   xs    r1   <lambda>z)TestArrowArray.test_map.<locals>.<lambda>4       r3   r   rW   c                    | S r   r   r   s    r1   r   z)TestArrowArray.test_map.<locals>.<lambda>8  r   r3   float32[pyarrow]float64r9   na_value)	r9   kindmapto_numpyobjecttmassert_numpy_array_equalnpnan)r   rm   r   using_nan_is_naresultexpecteds         r1   test_mapzTestArrowArray.test_map1  s    "d**!%%kkY%GGF#,,6,::H'99999!%%kkY%GGF!%777O7'00y260RR'0022'99999r3   c                   |j         j        }t          j                            |          r8|                    t          j                            d| d                     nz|sxt          j        	                    |          r|j
        t          j                            |          r3|                    t          j                            d                     t                                          |           d S )NzFor z .astype(str) decodes.r)   z8pd.Timestamp/pd.Timedelta repr different from numpy repr)r9   r7   r-   rX   rc   r/   r*   r+   r,   r_   tzr`   supertest_astype_str)r   rh   r0   using_infer_stringrg   	__class__s        r1   r   zTestArrowArray.test_astype_str@  s   :+8h'' 	!!B(BBB "     
 $ 	X""8,,	191Dx##H-- 2E !!U "    
 	%%%%%r3   c                   |j         j        }t          j                            |          st          j                            |          rZt          j                            |          rd}nd| }|                    t          j        	                    |                     t                                          |           d S )Nz1ArrowDtype(pa.string()) != StringDtype('pyarrow')$pyarrow.type_for_alias cannot infer r   )r9   r7   r-   rX   rb   r]   r/   r*   r+   r,   r   test_from_dtype)r   rh   r0   rg   r)   r   s        r1   r   zTestArrowArray.test_from_dtypeS  s    :+8h'' 
	28+>+>x+H+H 
	x!!(++ KLJJJ!!! "    
 	%%%%%r3   c                   t          |                              |j        |j                  }t	          j        ||           t          |j        t          j                  sJ t          |                              |j        	                                |j                  }t	          j        ||           t          |j        t          j                  sJ d S NrW   )
rk   rl   	_pa_arrayr9   r   assert_extension_array_equalr   r-   ChunkedArraycombine_chunksr   rh   r   s      r1   test_from_sequence_pa_arrayz*TestArrowArray.test_from_sequence_pa_arrayb  s     d**4>*LL
'555&*BO<<<<<d**N))++4: + 
 
 	'555&*BO<<<<<<<r3   c                    t          t                                                    }t          j        t
          d          5  t          j        dg|           d d d            d S # 1 swxY w Y   d S )NzConverting strings tomatchz12-1rW   )r   r-   month_day_nano_intervalr*   r(   rd   r$   _from_sequence_of_strings)r   r0   r9   s      r1   *test_from_sequence_pa_array_notimplementedz9TestArrowArray.test_from_sequence_pa_array_notimplementedo  s    2557788].6MNNN 	Q 	Q96(%PPPP	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Qs   A''A+.A+c                
   |j         j        }t          j                            |          r|j        t          |           |j                            t          	                                          }t          |                              ||j                   }t          j        ||           |                                }t          |                              ||j                   }t          j        ||           d S r   )r9   r7   r-   rX   r_   r   r2   r   caststringrk   r   r   r   r   )r   rh   r0   rg   pa_arrayr   s         r1   &test_from_sequence_of_strings_pa_arrayz5TestArrowArray.test_from_sequence_of_strings_pa_arrayt  s    :+8  ** 	0x{/F&w///>&&ryy{{33d55hdj5QQ
'555**,,d55hdj5QQ
'55555r3   c                    t          ||          |          }|j        j        }t          j                            |          r:|j        dk    rd}nd}|                    |          }|                    |          }|                    d          } t          |                    d          |          |          }t          j	        ||d           d S )Nskipna    int32[pyarrow]r   Float64F)check_dtype)
getattrr9   r7   r-   rX   is_temporal	bit_widthastyper   assert_series_equal)r   r   op_namer   r   pa_typeint_typer   s           r1   check_accumulatezTestArrowArray.check_accumulate  s    &g&&f555))8(( 	- B&&++**X&&C]]8,,Fy)):73::i00'::&III
vxUCCCCCCr3   r   	pd.Seriesr   strreturnboolc                   |j         j        }t          j                            |          st          j                            |          r|dv rdS nt          j                            |          r	|dk    rdS ntt          j                            |          r|dv rdS nNt          j                            |          r/|dk    r!t          j        	                    |          sdS |dk    rdS dS )N)cumsumcumprodcummaxcumminFr   )r   r   r   r   T)
r9   r7   r-   rX   rc   r]   rb   rY   r   r`   )r   r   r   r   s       r1   _supports_accumulationz%TestArrowArray._supports_accumulation  s    ))8g&& 	"(*=*=g*F*F 	CCCu DX(( 
	)##u $X  )) 	999u :X!!'** 	(""28+?+?+H+H"uI%%utr3   r   TFc                :   |j         j        }|}t          j                            |          r|dv rd S t          j        |          }|                     ||          s#t                      	                    |||          S |dk    r|t          j        
                    |          st          j                            |          r>|                    t          j                            | d| t                                |                     |||           d S )N)r   r   r   r   z not implemented for r)   r(   )r9   r7   r-   rX   rb   re   r   r   r   test_accumulate_seriesrY   r]   r/   r*   r+   r,   	TypeErrorr   )	r   rh   all_numeric_accumulationsr   r0   r   r   r   r   s	           r1   r   z%TestArrowArray.test_accumulate_series  s*   **+8g&& 	76T+T+T Fioo**388 	7711/   %00H(( 1,.H,?,?,H,H 1 !!7WWgWW$ "     	c7F33333r3   c                   |dk    st           r|dk    rdS |j        }|j        }t          j                            |          r*|dv r&t          j                            |          r|dv rnkdS t          j                            |          r|dv rdS t          j                            |          st          j                            |          r|dv rdS t          j                            |          r%t          j                            |          s|dv rdS t          j        	                    |          r|d	v rdS d
S )NkurtskewF)sumvarprodr   )r   )r   r   )meanmedianr   stdsemr   r   )anyall)r   r  r   r   r   r  T)
r   r9   r7   r-   rX   r   r`   rc   rb   rY   )r   r   r   r9   rg   s        r1   _supports_reductionz"TestArrowArray._supports_reduction  sc   f!5'V:K:K5	 &8)) 	g9W.W.Wx##H-- 'W2D2DuX)) 	g.H.H5Hx((	,.H,>,>x,H,H	PPP5 H  **	H((22	 >))
 58x(( 	W 9
 .
 .
 5tr3   c                   |j         j        }t          j                            |          st          j                            |          r|                    d          }n|}|dk    r1 t          ||                      } t          ||                      }n4 t          ||          |          } t          ||          |          }t          j	        ||           d S )Nr   countr   )
r9   r7   r-   rX   r   rZ   r   r   r   assert_almost_equal)r   r   r   r   rg   altr   r   s           r1   check_reducezTestArrowArray.check_reduce  s     9*8x(( 	BH,@,@,J,J 	**Y''CC
 C g*WS'**,,F,wsG,,..HH*WS'**&999F,wsG,,F;;;H
vx00000r3   c                x   |j         j        }t          j                            t
          | dt          j         d|           }t          j        	                    |          st          j        
                    |          r|                    |           t                                          |||          S )Nz is not implemented in pyarrow= for r'   )r9   r7   r*   r+   r,   r   r-   __version__rX   rb   rc   r/   r   test_reduce_series_boolean)	r   rh   all_boolean_reductionsr   r   r0   rg   
xfail_markr   s	           r1   r  z)TestArrowArray.test_reduce_series_boolean  s     :+[&&) ; ;>; ;08; ; ' 
 

 8h'' 	,28+=+=h+G+G 	, 
+++ww11$8NPVWWWr3   c                   |j         j        }|dv r	|j        }nt          j                            |          r|dv rt          j                            |          r	|j        }nt          j                            |          r)t          t          	                    d                    }nFt          j        
                    |          r-t          t          	                    |j                            }nt          t          	                    |j                            }n|j        }n|j        j        dk    rE|dk    r0t          s)t          t                              dd                    }n|dvr|j        }nsd	}np|d
v rd	}ni|dv r"t          j                            |          rd}nC|dk    r't          j                            |          r|j        }nddd	d|j        j                 }|S )N)maxmin)r  r  szdecimal128(7, 3)[pyarrow]r   &      )r   r   r  r  r   float64[pyarrow])r   r   r  r   r   r  )r   r   uint64[pyarrow]r   )iuf)r   rk   r9   r-   rX   r   r`   r^   r   durationra   unitnamer   
decimal128rY   rb   r   )r   arrr   r   r   	cmp_dtypes         r1   _get_expected_reduction_dtypez,TestArrowArray._get_expected_reduction_dtype  s   -$n$$	IIX!!'** 	.((8''00 F #	IIX%%g.. F *2;;s+;+; < <IIX%%g.. F *2;;w|+D+D E EII *2;;w|+D+D E EIII		Y^:::%(<&r}}R';';<<		 GGGI		.		GGG*II''BH,?,?,H,H')II"("4"4W"="=	II &&'  in	I
 r3   zignore::RuntimeWarningc                r   t           s|r|dk    rt          j                            |j        j                  s)t          j                            |j        j                  r3|                    t          j	        
                    d                     t                                          |||          S )Nr   z,https://github.com/apache/arrow/issues/45733r   )r   r-   rX   r   r9   r7   rZ   r/   r*   r+   r,   r   test_reduce_series_numeric)r   rh   all_numeric_reductionsr   r0   r   s        r1   r$  z)TestArrowArray.test_reduce_series_numeric?  s     %		 '&00##DJ$<== 1 8''
(@AA 1 !!I "    
 ww11$8NPVWWWr3   c                    |}|dk    rHt           rA|j        j        r5t          j                            d          }|                    |           t                                          |||          S )Nr   zskew not implementedr   )	r   r9   _is_numericr*   r+   r,   r/   r   test_reduce_frame)r   rh   r%  r   r0   r   r+   r   s          r1   r(  z TestArrowArray.test_reduce_frameR  sp    (f!5z% *{((0F(GG##D)))ww((/EvNNNr3   typ)int64uint64r   c                p    t          j        ddg| d                                          }|dk    sJ d S )Nr?   r;   	[pyarrow]rW         ?)re   r   r   )r   r)  r   s      r1   test_median_not_approximatez*TestArrowArray.test_median_not_approximate[  sB     Aq6C):):):;;;BBDD}}}}}}r3   c                   |j         }t          j                            |          r<|                    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   )r7   r-   rX   r]   r/   r*   r+   r,   rd   rb   r(   r   construct_from_stringr  r   #test_construct_from_string_own_name)r   r9   r0   rg   msgr   s        r1   r2  z2TestArrowArray.test_construct_from_string_own_namea  s'   &8x(( 	!!.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                            |          r<|                    t          j
                            t          d|                      t                                          |           d S )Nr   r'   )r7   r-   rX   rb   rk   is_dtyper  r]   r/   r*   r+   r,   rd   r   test_is_dtype_from_namer   r9   r0   rg   r   s       r1   r6  z&TestArrowArray.test_is_dtype_from_nameu  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2r3   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   rk   r1  )r   r9   r3  s      r1   .test_construct_from_string_another_type_raisesz=TestArrowArray.test_construct_from_string_another_type_raises  s    ;]9C000 	> 	>KK--n===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>s   #AAAc                   |j         }t          j                            |          st          j                            |          sdt          j                            |          r|j        >t          j                            |          st          j                            |          r6|	                    t          j                            | d                     t                                          |           d S )NzB does not have associated numpy dtype findable by find_common_typer   )r7   r-   rX   r^   ra   r_   r   rc   r]   r/   r*   r+   r,   r   test_get_common_dtyper7  s       r1   r<  z$TestArrowArray.test_get_common_dtype  s    &HX&&	x))	 %%h//	 5=K4Kx!!(++ 5Lx""8,, 5L !!# > > > "     	%%e,,,,,r3   c                    |j         }t          j                            |          rt	          |          sJ d S t                                          |           d S r   )r7   r-   rX   rb   r    r   test_is_not_string_type)r   r9   rg   r   s      r1   r>  z&TestArrowArray.test_is_not_string_type  s[    &8h'' 	3"5)))))))GG++E22222r3   z6GH 45419: pyarrow.ChunkedArray does not support views.)r)   runc                J    t                                          |           d S r   )r   	test_viewr   rh   r   s     r1   rA  zTestArrowArray.test_view  s#     	$r3   c                    ||                                           }|d         }|                    |          }||usJ t          j        ||           d S r   )isnafillnar   r   )r   rh   validr   s       r1   test_fillna_no_op_returns_copyz-TestArrowArray.test_fillna_no_op_returns_copy  sZ    TYY[[L!QU##T!!!!
'55555r3   c                L   |                                 }d|_        |                    |d                   }|d         |d         k    sJ t          j        ||           |                    |d                   }|d         |d         k    sJ t          j        ||           d S )NTr?   r   )copy	_readonlyrE  r   r   )r   rm   rh   r   s       r1   test_fillna_readonlyz#TestArrowArray.test_fillna_readonly  s      "" \!_--ayLO++++
'l;;; \!_--ayLO++++
'l;;;;;r3   z5GH 45419: pyarrow.ChunkedArray does not support viewsc                J    t                                          |           d S r   )r   test_transposerB  s     r1   rM  zTestArrowArray.test_transpose  s#     	t$$$$$r3   c                J    t                                          |           d S r   )r   test_setitem_preserves_viewsrB  s     r1   rO  z+TestArrowArray.test_setitem_preserves_views  s#     	,,T22222r3   dtype_backendr#   enginerr   pythonc           	     0   |j         j        }t          j                            |          r>|                    t          j                            t          d| d                     nt          j        
                    |          rC|j        dv r:|                    t          j                            t          d                     nRt          j                            |          r3|                    t          j                            d                     t          j        dt          j        |t#          |j                   	          i          }|s|                    d
d          }n!|                    d
t&          j                  }t          j                            |          rt+          |          }nt-          |          }t          j        |dt#          |j                   i||          }	|}
t1          j        |	|
           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   
with_dtyperW   FNA)indexna_rep)r9   rQ  rP  )r9   r7   r-   rX   r]   r/   r*   r+   r,   rd   r_   r  
ValueErrorrc   re   	DataFramer   r   to_csvr   r   r	   r
   read_csvr   assert_frame_equal)r   rQ  rh   rP  r0   r   rg   df
csv_outputr   r   s              r1   test_EA_typeszTestArrowArray.test_EA_types  s     :+8x(( 	!!.K(KKK "      X""8,, 
	,1N1N!!%N "      X)) 	!!)T!UU   \<4s4:)O)O)OPQQ 	?t<<JJrv>>J8h'' 	. ,,JJ!*--JTZ1'	
 
 
 
fh/////r3   c                   |j         j        }t          j                            |          st          j                            |          s`t          j                            |          sA|                    t          j	        
                    t          j        d|                      t          rwt          j                            |          rXt          j        t          dd          5  t!                                          |           d d d            d S # 1 swxY w Y   d S t!                                          |           d S )Nz$pyarrow.compute.invert does support r'   zBitwise inversionF)r   check_stacklevel)r9   r7   r-   rX   rY   r   rb   r/   r*   r+   r,   ArrowNotImplementedErrorr   r   assert_produces_warningDeprecationWarningr   test_invertr   rh   r0   rg   r   s       r1   rh  zTestArrowArray.test_invert  s|   :+H))
	x""8,,
	 x!!(++
	
 !!6L(LL "      	&RX((22 	&+"*=PU   * * ##D)))* * * * * * * * * * * * * * * * * *
 GG%%%%%s   ."DD!$D!periodsr?   r@   c           
     8   |j         j        }t          j                            |          rK|dk    rE|                    t          j                            t          j	        d| d| d                     t                                          ||           d S )Nr?   z
diff with z and periods=z will overflowr'   )r9   r7   r-   rX   r\   r/   r*   r+   r,   r.   r   	test_diff)r   rh   rj  r0   rg   r   s        r1   rl  zTestArrowArray.test_diff	  s    :+8''11 	gll!!?SXSSGSSS "     	$(((((r3   c                    |d d         }|                                 }|j        t          t                                                    k    sJ d S )NrJ   )value_countsr9   r   r-   r*  r   s      r1   'test_value_counts_returns_pyarrow_int64z6TestArrowArray.test_value_counts_returns_pyarrow_int64  sI    CRCy""$$|z"((**55555555r3   r   c                |    |                     d          }|dk    rd }|S |dk    rd S t          j        |          S )N_rtruedivc                ,    t          j        ||           S r   )r   divider   ys     r1   rr  z1TestArrowArray.get_op_from_name.<locals>.rtruediv$  s    yA&r3   	rfloordivc                ,    t          j        ||           S r   )r   floor_divideru  s     r1   r   z1TestArrowArray.get_op_from_name.<locals>.<lambda>)  s    1 5 5 r3   )stripr   get_op_from_name)r   r   short_opnamerr  s       r1   r{  zTestArrowArray.get_op_from_name  sY    }}S)):%%' ' ' O[((555"7+++r3   c                   |}|dv r|                     d          S t          j        |          }d}t          |t          j                  rd}|j        d d df         }n|}t          |          t          u r9|dvr5|j	        dk    r|                     d          S |                     d	          S t          |          t          u r|                     d          S |j        }	|st          |t          j                  rt          j                            |	          st          j                            |	          r|d
vs~t          j                            |	          s_t          j                            |	          s@t          j                            |	          s!t          j                            |	          s|S n|dk    rt          j                            |	          s~t          j                            |	          s_t          j                            |	          s@t          j                            |	          s!t          j                            |	          s|S t                              |j                  }
t          j                            |
j                  r3t          j                            |	          r t/          ||          |          }t          j        |          }t          |t0                    sJ |dk    r<t          |t2                    r't1          t                                                    }nx|dk    rLt          |t          j                  r2|j        |k    r't1          t                                                    }n&t          j                            |j                  sJ |                     |          S |
                    |	          }
 t          |j                  |
          }|r"t	          j        ||j        |j                  }nt	          j        |          }|S )N)eqneltlegtgeboolean[pyarrow]FTr   )__floordiv__r  r  r   )__truediv____rtruediv__r  __pow__)rY  columns)r   r   	get_dtyper   re   r\  ilocrk   intr   floatr7   r   r-   rX   rZ   r   r`   r_   r^   r]   rf   _valuesr   r   r   r   r9   r   rY  r  )r   r   objotherpointwise_resultr   original_dtype	was_frameexpected_dataorig_pa_typepa_expectedr	  	alt_dtypepd_expecteds                 r1   _cast_pointwise_resultz%TestArrowArray._cast_pointwise_result/  s    $:::#**+=>>>h//	h-- 	%I$M!!!Q$/MM$M ;;#'1A"A"A"c))'9:::'7888%[[E!!??#5666 &3 	Zry99 	 $$\22  H''55   'FFF8''55 G 8((66 G 8##L11	 G
 8&&|44 G  &&28+>+>|+L+L&x##L11 'x$$\22 ' x-- ' x""<00	 ' Ohh}4558{/00 	9RX5H5H5V5V 	9 ('#w''..CS))Ii44444)##
5'(B(B#&rzz||44		9$$ubi00 %K>11 'rzz||44		x**9+BCCCCC??9--- &**<88K1d=011+>> 	.|8>8;K  HH y--Hr3   c                    |dv p|dv ot            ot          j                            |          p"|dv ot          j                            |          S )N__add____radd__r  r  r  __rfloordiv____sub____rsub__)r   r-   rX   r`   r   )r   opnamerg   s      r1   _is_temporal_supportedz%TestArrowArray._is_temporal_supported  so     11 WX 100/ $$X..
T //RBH4H4H4R4R
	Tr3   4type[Exception] | tuple[type[Exception], ...] | Nonec                   |dv rt           t          fS t          j        |          }|j        }|                     ||          }|dv rt           t          f}n|rd }n|dv rAt          j                            |          st          j        	                    |          rd }ngt          j        
                    |          sFt          j                            |          s't          j                            |          st          }nd }|S )N)
__divmod____rdivmod__>   __mod____rmod__r  )rd   r   r   r  r7   r  r-   rX   rb   rc   rZ   r   r]   )r   r   r  r  r9   rg   arrow_temporal_supportedexcs           r1   _get_expected_exceptionz&TestArrowArray._get_expected_exception  s    333'33 S!! &#'#>#>w#Q#Q  
 
 
 '	2CC% 	CC///Hx(( 0,.H,>,>x,H,H 0 CCH  **	x""8,,	 x""8,,	
 CCC
r3   c                   d }|                      ||          }|dk    rt          j                            |          s>t          j                            |          st          j                            |          r%t          j                            d|           }n1|rot          j        	                    |          s#|dv rLt          j        
                    |          r-t          j                            t          | d| d          }n|dk    rjt          j                            |          st          j                            |          r,t          j                            t          j        d	          }nP|d
k    rJt          j                            |          r+t          j                            t          j        d	          }|S )N__rpow__z<GH#29997: 1**pandas.NA == 1 while 1**pyarrow.NA == NULL for r   r  z  not supported betweenpd.NA and z Python scalarr'   r  zdivide by 0r  )r  r-   rX   rZ   r   r]   r*   r+   r,   ra   r`   r   r.   )r   r  rg   r+   r  s        r1   _get_arith_xfail_markerz&TestArrowArray._get_arith_xfail_marker  s   #'#>#>vx#P#P ZH  **  x""8,,   x""8,,  
 ;$$&#& & %  DD & 	HX&&	 ST TH((22T
 ;$$ WWxWWW %  DD &&H)) '-/X-@-@-J-J ' ;$$$ %  DD ~%%"(*=*=h*G*G%;$$$ %  D
 r3   c                0   |j         j        }|dk    r3t          j                            |          rt          j        d           |                     ||          }||                    |           t                      
                    ||           d S Nr  z%Skip testing Python string formatting)r9   r7   r-   rX   rc   r*   skipr  r/   r   test_arith_series_with_scalarr   rh   all_arithmetic_operatorsr0   rg   r+   r   s         r1   r  z,TestArrowArray.test_arith_series_with_scalar  s    :+#z11bh6H6H6R6R1K?@@@++,DhOO%%%--d4LMMMMMr3   c                n   |j         j        }|dk    rRt          j                            |          st          j                            |          rt          j        d           |                     ||          }||	                    |           t                                          ||           d S r  )r9   r7   r-   rX   rb   rc   r*   r  r  r/   r   test_arith_frame_with_scalarr  s         r1   r  z+TestArrowArray.test_arith_frame_with_scalar  s    :+#z11Hx(( 2,.H,>,>x,H,H 2 K?@@@++,DhOO%%%,,T3KLLLLLr3   c                ,   |j         j        }|dv r`t          j                            |          rA|                    t          j                            t          j	        d|                      | 
                    ||          }||                    |           |}t          j        |          }t          j        t          j        |j        d         gt          |          z  |j                             }|                     |||           d S )Nr  zJImplemented pyarrow.compute.subtract_checked which raises on overflow for r'   r   rW   )r9   r7   r-   rX   r\   r/   r*   r+   r,   r.   r  re   r   rf   r  r   check_opname)	r   rh   r  r0   rg   r+   r   r   r  s	            r1   test_arith_series_with_arrayz+TestArrowArray.test_arith_series_with_array  s   :+# (
 
 
 h**844
 !!?C8@C C "     ++,DhOO%%%*ioo 	"(CHQK=3s88#;4:NNNOO#w.....r3   c                   |j         j        }|                    d          rA|                    t          j                            t          j        d|                      t                      
                    |           d S )Nint8zraises on overflow for r'   )r9   r7   equalsr/   r*   r+   r,   r-   r.   r   $test_add_series_with_extension_arrayri  s       r1   r  z3TestArrowArray.test_add_series_with_extension_array  s    :+??6"" 	!!??X?? "     	44T:::::r3   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(   rd   r   )r   rh   r   s      r1   test_invalid_other_compz&TestArrowArray.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)r?   r   NrW   r-  )FFN)TTN)re   r   loweroperatorr  r  r  r   r-   bool_r   r   )	r   r  r   rh   
ser_maskedser_par   expr   s	            r1   test_comp_masked_numpyz%TestArrowArray.test_comp_masked_numpy1  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0r3   c                
   |j         j        }t          j                            |          r5t
          j                            d          }|                    |           t                      
                    |           d S )Nz4GH#62343 incorrectly casts to timestamp[ms][pyarrow]r   )r9   r7   r-   rX   r^   r*   r+   r,   r/   r   8test_loc_setitem_with_expansion_preserves_ea_index_dtype)r   rh   r0   rg   r+   r   s        r1   r  zGTestArrowArray.test_loc_setitem_with_expansion_preserves_ea_index_dtype?  sx    :+8H%% 	&;$$M %  D %%%HHNNNNNr3   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   )r   r   )r   r   r   r  )8__name__
__module____qualname__r   r   r   r*   r+   parametrizer   r   r   r   r   r   r   r   r   r  r
  r  r"  filterwarningsr$  r(  r/  r2  r6  r:  r<  r>  r,   rA  rG  rK  rM  rO  r   rb  rh  rl  ro  _combine_le_expected_dtyper{  r  r  r  r  r  r  r  r  r  r  r  __classcell__r   s   @r1   r   r     s         (? ? ?H H H [[4*:;;: : <;:& & & & &&& & & & &= = =Q Q Q
6 6 6D D D"   * [Xe}554 4 4 4 654:) ) ) )V1 1 1 1* [Xe}55X X X X 65X$% % % %N [ 899[Xe}55X X X X 65 :9X" [Xe}55O O O O 65O [U$B$B$BCC  DC
; ; ; ; ;(3 3 3 3 3> > >
- - - - -&3 3 3 3 3 [GU            6 6 6< < < [FE   % % % % % [FE   3 3 3 3 3 [_y*.EFF[XX77$0 $0 87 GF$0L& & & & &* [YB00) ) ) ) 10)6 6 6 "1, , , Z Z Z ZxT T T       D+ + +Z
N 
N 
N 
N 
NM M M M M/ / /:
; 
; 
; 
; 
;* * * [^-L-L-LMM1 1 NM1O O O O O O O O Or3   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  Fr  rW   TFN)	TTTTFNTNNre   r   r   r   r   rL   rM   r   r   s        r1   test_kleene_orzTestLogicalOps.test_kleene_orL  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	
 	
 	
 	
 	
r3   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  rW   r  r   r  r   rL   r   s        r1   test_kleene_or_scalarz$TestLogicalOps.test_kleene_or_scalarb       I)))1CDDDU9X-?@@@
vx000
vx000 	ry,,,4FGGG	
 	
 	
 	
 	
r3   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  rW   r  )	TFNFFFNFNr  r  s        r1   test_kleene_andzTestLogicalOps.test_kleene_and{  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	
 	
 	
 	
 	
r3   )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        r1   test_kleene_and_scalarz%TestLogicalOps.test_kleene_and_scalar  r  r3   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  rW   r  )	FTNTFNNNNr  r  s        r1   test_kleene_xorzTestLogicalOps.test_kleene_xor  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	
 	
 	
 	
 	
r3   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        r1   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	
 	
 	
 	
 	
r3   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  rW   r  F)re   r   r   r   r-   r  r   r   )r   opr  rh   r  r  r   r   s           r1   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0r3   )r  r  r  __doc__r  r*   r+   r  re   rX  r   r  r  r  r  r  r  r  r   r3   r1   r  r  I  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 1r3   r  r   c                   t          |           }t          j        g d|          }t          j        g d|          }||z  }t          j        g d|          }t          j        ||           ||z  }t          j        g d|          }t          j        ||           ||z  }t          j        g d|          }t          j        ||           | }|                    d                                           }t          j        ||                              |                                          }t          j        ||           d S )N)r?   Nr  rq   rW   )Nr  rK   rq   )NNry   rq   )NNr?   rq   )NN   r   r   )	r   re   r   r   r   rE  r   maskisnull)r   r9   r   r   r   r   s         r1   test_bitwiser    sN    wE9___E222DIoooU333EE\Fy3335AAAH68,,,E\Fy3335AAAH68,,,E\Fy3335AAAH68,,,UFQ((**+Hy///44T[[]]CCH68,,,,,r3   c                 $   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 )NzPassing pyarrow typer   z#not_a_real_dype[s, tz=UTC][pyarrow]zdecimal(7, 2)[pyarrow])r*   r(   rd   r   r1  r   r3   r1   Ftest_arrowdtype_construct_from_string_type_with_unsupported_parametersr    s4   	*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 
*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#BB	B	c                     t          j        d          } t          t                              dd                    }| |k    sJ d S )Nztimestamp[s, tz=UTC][pyarrow]r  UTC)r   r1  r-   	timestamp)r9   r   s     r1   5test_arrowdtype_construct_from_string_supports_dt64tzr    sE    ,-LMME",,sE2233HHr3   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  rW   )r*   r(   rd   re   r   r   )invalidr3  s     r1   ;test_arrowdtype_construct_from_string_type_only_one_pyarrowr    s    -G	%  
*#	6	6	6 + +
	%(('****+ + + + + + + + + + + + + + + + + +s   $AAAc                    t          j        ddgt          t                                                              } t          j        ddgd          }| |z  }t          j        ddgt          t                                                              }t          j        ||           || z  }t          j        ||           d S )	NabcdefgrW   r;   r@   r   abcabc re   r   r   r-   r   r   r   )binaryrepeatr   r   reflected_results        r1    test_arrow_string_multiplicationr    s    Yvj.E.EFFFFY2w&6777Ff_Fy(Bz"))++/F/FGGGH68,,,6#344444r3   c                 ^   t          j        ddgt          t                                                              } | dz  }t          j        ddgt          t                                                              }t          j        ||           d| z  }t          j        ||           d S )Nr  r  rW   r;   r  defgdefgr  )r	  r   r   r  s       r1   .test_arrow_string_multiplication_scalar_repeatr  (  s    Yvj.E.EFFFFaZFy(J/z"))++7N7NOOOH68,,,6z+X66666r3   interpolation)linearr  highernearestmidpointquantiler>   c                   | j         j        }|                     g d          } t          j        |           }t
          j                            |          s>t
          j                            |          st
          j        	                    |          rSd}t          j        t
          j        |          5  |                    ||           d d d            n# 1 swxY w Y   d S t
          j                            |          s>t
          j                            |          st
          j                            |          rnkt
          j                            | j        j                  rnA|                    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          }
t=          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          }t=          j        ||
           d S )Nr   r   r   z=Function 'quantile' has no kernel matching input types \(.*\)r   )qr  z&quantile not supported by pyarrow for r'   )r  r  zM8[z, ]r>   rU  F)warnr   rY  r  ) r9   r7   takere   r   r-   rX   rb   rc   rY   r*   r(   re  r  r   rZ   r]   r   r   rk   r/   r+   r,   r_   r   r  r   to_pydatetimedtfloorr   r   )rh   r  r  r0   rg   r   r3  r   pd_dtypeser_npr   s              r1   test_quantiler"  1  s   
 z'H99YYYD
)D//C 	8$$
8h''
 8x((
 O]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))
 8x((

 				dn1	2	2 
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   7CC"Cztake_idx, exp_idx)r   r   r;   r;   rq   rq   rq   )r   r   r   r;   rq   rq   
multi_modesingle_mode)r5   c                    |                      |          }t          j        |          }|                    d          }t          j        |                      |                    }t	          j        ||           d S )NTdropna)r  re   r   moder   r   )rw   take_idxexp_idxrh   r   r   r   s          r1   test_mode_dropna_truer+  ~  sn     !!(++D
)D//CXXTX""Fy*//8899H68,,,,,r3   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   rW   Fr&  )re   r   r9   r(  r   r   )rh   	more_nansr   r   s       r1   test_mode_dropna_false_mode_nar.    s    	4tAw/tzBBBI^^5^))Fy$tz222H68,,,y$q'4
;;;H]]%]((F68,,,,,r3   zarrow_dtype, expected_type   f1f2c                :    t          |           j        |k    sJ d S r   )r   rk   )arrow_dtypeexpected_types     r1   test_arrow_dtype_typer5    s&    " k""'=888888r3   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$   r-   rf   r   re   corecommonis_bool_indexerr   r   r   r   asarrayr   r   )rh   r  r   r   s       r1   test_is_bool_dtyper<    s    rxx(;(;(;<<==D7>))$/////
	%D		""##AtWFD!!"H68,,,,,r3   c                    | j         j        }t          j                            |          s>t          j                            |          st          j                            |          rt          |           sJ d S t          |           rJ d S r   )r9   r7   r-   rX   rZ   r   r]   r   rh   r   s     r1   test_is_numeric_dtyper?    s    j&G
W%%*8w''* 8w''*
  %%%%%%%#D)))))))r3   c                    | j         j        }t          j                            |          rt          |           sJ d S t          |           rJ d S r   )r9   r7   r-   rX   r   r   r>  s     r1   test_is_integer_dtyperA    sX    j&G	x7## *%%%%%%%#D)))))))r3   c                    | j         j        }t          j                            |          rt          |           sJ d S t          |           rJ d S r   )r9   r7   r-   rX   r[   r   r>  s     r1   test_is_signed_integer_dtyperC    sX    j&G	x!!'** 1&t,,,,,,,*40000000r3   c                    | j         j        }t          j                            |          rt          |           sJ d S t          |           rJ d S r   )r9   r7   r-   rX   r\   r!   r>  s     r1   test_is_unsigned_integer_dtyperE    sX    j&G	x##G,, 3(.......,T2222222r3   c                    | j         j        }t          j                            |          st          j                            |          rt          |           sJ d S t          |           rJ d S r   )r9   r7   r-   rX   r_   r^   r   r>  s     r1   test_is_datetime64_any_dtyperG    so    j&G	xW%% 1)9)9')B)B 1&t,,,,,,,*40000000r3   c                    | j         j        }t          j                            |          rt          |           sJ d S t          |           rJ d S r   )r9   r7   r-   rX   rZ   r   r>  s     r1   test_is_float_dtyperI    sX    j&G	xG$$ (d#######!$'''''''r3   c                   t          j        |           }|                    d          }t          j        |          }t          j        |          }t          |          t          |          k    sJ t          j        |          }t          j        ||           t          j        |          }t          j        ||           d S )Nr;   )	re   r   headpickledumpsr   loadsr   r   )rh   r   expected_slicedfull_pickledsliced_pickledr   result_sliceds          r1   test_pickle_roundtriprS    s    yHmmA&&O<))L\/22N|s>222222\,''F68,,,L00M=/:::::r3   c                2   |                                  }t          j        ||j                  }|                    | j                  }t          |j        t                    rJ t          |j        t                    sJ t          j        ||            d S r   )	r   re   rf   r9   r   r   r   r   r   )rh   np_arrpd_arrayr   s       r1   test_astype_from_non_pyarrowrW    s    ]]__Fxfl333H__TZ((F(.*55555flJ/////#FD11111r3   c                     t          j        dg          } |                     d          }t          j        dgd          }t          j        ||           d S )N1.0r  r<   rW   re   r   r   r   r   r   r   r   s      r1   &test_astype_float_from_non_pyarrow_strr\    sU    
)UG

CZZ*++Fy#&8999H68,,,,,r3   c                     t          j        ddgid          } |                     dd          }t          j        ||            d S )Ncoli@fr   rW   float[pyarrow]r   )errors)re   r\  r   r   r_  )r   r   s     r1   test_astype_errors_ignorera    sM    |UXJ/7GHHHH__-h_??F&(+++++r3   c                z   |                                  }| j        j        }t          j                            |          st          j                            |          rt          j        d           nZt          j        	                    |          r"t          j        t          |                     }nt          j        | j                  }| j        rQt          | j                  r|s;|                    t"                    }t$          j        |t%          j        |           <   t+          j        ||           d S )Nz Tested in test_to_numpy_temporal)r   r   rk   r-   rX   r`   r_   r*   r  r^   r   rf   r   _hasnar   r9   r   r   re   rX  rD  r   r   )rh   r   r   r   r   s        r1   test_to_numpy_with_defaultsrd    s    ]]__Fn!G	xG$$ ,(=(=g(F(F ,67777			'	"	" ,8DJJ''8DN++{ (,TZ88 ( (??6**"$%11111r3   c                Z   dd g}t          j        |d          }|                                }| s(t          j        dt           j        gt
                    }n=t          j        dt          j        g          }t          |d         t                    sJ t          j
        ||           d S )Nr?   r   rW   r   )re   rf   r   r   rX  r   r   r   r  r   r   )r   rh   r   r   r   s        r1   test_to_numpy_int_with_narf  (  s    t9D
(4/
0
0
0C\\^^F ,8QJf5558QK((&)U+++++11111r3   zna_val, exp)r?   r?   c                    t          j        t           j        t           j        gd          }|                    d|           }t	          j        |gdz  d          }t          j        ||           d S )Nnull[pyarrow]rW   r   r   r;   re   rf   rX  r   r   r   r   )na_valr  r   r   r   s        r1   test_to_numpy_null_arrayrk  5  sh     (BE25>
9
9
9C\\	F\;;Fx	333H11111r3   c                     t          j        t           j        t           j        gd          } |                     d           }t	          j        t           j        gdz  d          }t          j        ||           d S )Nrh  rW   r;   r   ri  r   r   r   s      r1   !test_to_numpy_null_array_no_dtypern  >  sf    
(BE25>
9
9
9C\\\%%Fx!8444H11111r3   c                    t          j        dt           j        gd          } |                     d          }t	          j        ddgt          j                  }t          j        ||           t          j        dt           j        gd          } |                     d          }t	          j        ddgt          j                  }t          j        ||           d S )	NTr  rW   F)r   r<   r   r=   )	re   rf   rX  r   r   r  r   r   float32rm  s      r1   test_to_numpy_without_dtyperq  F  s    
(D"%=(:
;
;
;C\\5\))FxuRX666H111
(C<'9
:
:
:C\\3\''Fxc
"*555H11111r3   c                   |                                  }|                                 }| d         |d d <   t          j        | d         gt          |           z  | j                  }t          j        ||           |                                 }| d d d         |d d <   | d d d         }t          j        ||           |                                 }|                                 |d d <   | }t          j        ||           d S )Nr   rW   rA   )rI  r$   rl   r   r9   r   r   tolist)rh   origr   r   s       r1   test_setitem_null_sliceru  S  s    99;;DYY[[FQF111I"1	a	CIIj  H #FH555YY[[FTTrT
F111IDDbDzH#FH555YY[[FF111IH#FH55555r3   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   rk   r-   rX   rb   rc   r   r   rZ   rY   r.   r*   r(   )rh   r   
fill_valueerrr3  s        r1   test_setitem_invalid_dtyper{  j  s@   n!G	x'"" .bh&8&8&A&A .
-
G$$.8((. 8w''.
 
o!
-	s#	&	&	&  QQQ                 s   &C;;C?C?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-31rk   types_mapperrW   )r-   rf   re   	Timestampdate32	to_pandasr   date64getr   r   r   )
date_arrayr   r   s      r1   &test_from_arrow_respecting_given_dtyper    s    	l	#	#R\,%?%?@ryy{{   J !!iikk:biikk#:#:;? "  F y	l	#	#R\,%?%?@%%  H 68,,,,,r3   c                    t                               ddgt                                                     } t          j        t           j                  5  |                     t                                           t          t                                                     ij	                   d d d            d S # 1 swxY w Y   d S )Nr.        @r}  r~  )
r-   rf   r   r   external_error_raisedr.   r  r   r*  r  )rf   s    r1   -test_from_arrow_respecting_given_dtype_unsafer    s    HHc3ZbjjllH33E		!"/	2	2 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::B>B>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 )Nr  r=   gGz?g{Gz@rW   r?   g333333?g@g^@gp=
cL@rA   g      ^@g      N@)re   r   rX  roundr   r   r9   r   r   r   s       r1   
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,,,,,r3   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)r;   r   r?   rA   zOsearchsorted requires array to be sorted, which is impossible with NAs present.r   )r  re   rX  r   r*   r(   r[  searchsorted)r{   	as_seriesrM   rr   rL   r   r3  s          r1    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   rv  rW   r?   r;   rL   rM   rL   rM   )by)re   r\  r   r   r-   
dictionaryint32r   rI  sort_valuesr   r_  )r`  r   r   s      r1   test_sort_values_dictionaryr    s    	c
*R]]288::ryy{{-S-S"T"T   Q		
 	

 
B wwyyH^^Sz^**F&(+++++r3   patr  z	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  rW   r?   )
re   r   r   r-   r   r   r  r  r   r   )r  r   r   r   s       r1   test_str_countr    s~    
)UDMBIIKK)@)@
A
A
ACW]]3Fy!T*RXXZZ*@*@AAAH68,,,,,r3   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  rW   z	count notr   r?   flags)
re   r   r   r-   r   r*   r(   rd   r   r  r   s    r1    test_str_count_flags_unsupportedr    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 )NrL   rW   r  r   )widthsidefillchar)
re   r   r   r-   r   r   padr   r   r   )r  str_funcr   r   r   s        r1   test_str_padr    s     )S$Kz"))++'>'>
?
?
?CW[[qtc[::Fy	h		3	'	'.j6M6M  H 68,,,,,r3   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 )NrL   rW   zInvalid side: foor   r  rx  r   )
re   r   r   r-   r   r*   r(   r[  r   r  r  s    r1   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  rW   )casenaregex
re   r   r   r-   r   r   containsr  r   r   )r  r  r  r  r  r   r   r   s           r1   test_str_containsr    s     )UDMBIIKK)@)@
A
A
ACWc5AAFyJrxxzz$:$:;;;H68,,,,,r3   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  rW   zcontains notr   rL   r?   r  )
re   r   r   r-   r   r*   r(   rd   r   r  r  s    r1   #test_str_contains_flags_unsupportedr    s    
)UDMBIIKK)@)@
A
A
AC	*.	A	A	A ' 'A&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'r  c                 T   t          j        g dt          t                                                              } | j                            d          }t          j        g dt          t                                                              }t          j	        ||           d S )N)rL   u   กNrW   z[\x{0e00}-\x{0e7f}]r  r  r[  s      r1   $test_str_contains_re2_unicode_escaper    s    
))))BIIKK1H1H
I
I
ICW455Fy,,,Jrxxzz4J4JKKKH68,,,,,r3   zside, pat, na, exp
startswith)TNFrM   r  endswith)FTFbc)rL   eg)TNT)rL   rr   r  r   )FNFc                \   t          j        g dt          t                                                              } t          |j        |           ||          }t          j        |t          t                                                              }t          j	        ||           d S )N)r  NefgrW   )r  
re   r   r   r-   r   r   r   r  r   r   )r  r  r  r  r   r   r   s          r1   test_str_start_ends_withr    s     )(((
299;;0G0G
H
H
HC#WSWd##CB///FyJrxxzz$:$:;;;H68,,,,,r3   r  )r  r  c                \   t          j        d d gt          t                                                              } t          |j        |           d          }t          j        d d gt          t                                                              }t          j	        ||           d S )NrW   r   r  )r  r   r   r   s       r1   /test_str_starts_ends_with_all_nulls_empty_tupler    s    
)T4L
299;;(?(?
@
@
@C#WSWd##B''F y$Z

-C-CDDDH68,,,,,r3   zarg_name, argreplr  r  r?   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  rW   rM   r   T)r  r  r  zreplace is not supportedr   r   )
re   r   r   r-   r   r*   r(   rd   r   replace)arg_nameargr   kwargss       r1   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, exprL   r   rA   xbxcxbacz[a-b]xxxcc                X   t          j        dd gt          t                                                              }|j                            | |||          }t          j        |t          t                                                              }t          j        ||           d S )NabacrW   )nr  	re   r   r   r-   r   r   r  r   r   )r  r  r  r  r  r   r   r   s           r1   test_str_replacer  +  s     )VTN*RYY[[*A*A
B
B
BCW__S$!5_99FyJryy{{$;$;<<<H68,,,,,r3   c                 Z   t          j        g dt          t                                                              } | j                            ddd          }t          j        g dt          t                                                              }t          j        ||           d S )N)JanFebNrW   z\p{Lu}UTr  )UanUebNr  r[  s      r1   %test_str_replace_re2_unicode_propertyr  :  s    
)(((
299;;0G0G
H
H
HCW__Y4_88Fy---Z		5L5LMMMH68,,,,,r3   c                 @   t          j        ddgt          t                                                              } | j                            dddd          }t          j        ddgt          t                                                              }t          j        ||           | 	                    t          j
        d	
                    }|j                            dddd          }|	                    |j                  }t          j        ||           | 	                    t          j
        d	t          j                            }|j                            dddd          }|	                    |j                  }t          j        ||           d S )Nr  aaaaaarW   rL   r  Tr  r#   storage)r  r   )re   r   r   r-   r   r   r  r   r   r   StringDtyper9   r   r   )	r   actualr   ser2actual2	expected2ser3actual3	expected3s	            r1   test_str_replace_negative_nr  A  sI   
)UH%Z		-D-D
E
E
ECW__S"b$//Fy$:biikk+B+BCCCH8V,,, ::bnY77788DhsBD11G
++I9g...::bnYHHHIIDhsBD11G
++I9g.....r3   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  rW   zrepeat is notr   r?   r;   )
re   r   r   r-   r   r*   r(   rd   r   r
  r  s    r1   test_str_repeat_unsupportedr  T  s    
)UDMBIIKK)@)@
A
A
AC	*/	B	B	B  1v                 r  c                 T   t          j        dd gt          t                                                              } | j                            d          }t          j        dd gt          t                                                              }t          j        ||           d S )Nr  rW   r;   r  )	re   r   r   r-   r   r   r
  r   r   r[  s      r1   test_str_repeatr  Z  s    
)UDMBIIKK)@)@
A
A
ACW^^AFy(D)BIIKK1H1HIIIH68,,,,,r3   zpat, case, na, expc                V   t          j        dd gt          t                                                              }|j                            | ||          }t          j        |t          t                                                              }t          j	        ||           d S )Nr  rW   r  r  )
re   r   r   r-   r   r   r   r  r   r   r  r  r  r  r   r   r   s          r1   test_str_matchr  a  s     )UDMBIIKK)@)@
A
A
ACW]]3Tb]11FyJrxxzz$:$:;;;H68,,,,,r3   TFFNAbc)FFFNabc$zabc\$FTFNzAbc$zAbc\$z(abc)|(abx)z((abc)|(abx))c                V   t          j        g dt          t                                                              }|j                            | ||          }t          j        |t          t                                                              }t          j	        ||           d S )N)r  r  z$abcNrW   r  )
re   r   r   r-   r   r   	fullmatchr  r   r   r  s          r1   test_str_fullmatchr  s  s    , )111BIIKK9P9P
Q
Q
QCWs"55FyJrxxzz$:$:;;;H68,,,,,r3   zsub, start, end, exp, exp_typer  r  c                (   t          j        dd gt          t                                                              }|j                            | ||          }t          j        |t          |                    }t          j        ||           d S )Nr  rW   )startend	re   r   r   r-   r   r   findr   r   )subr  r  r  exp_typer   r   r   s           r1   test_str_findr    sz     )UDMBIIKK)@)@
A
A
ACW\\#U\44FyJx$8$8999H68,,,,,r3   c                 Z   t          j        dd gt          t                                                              } | j                            ddd          }t          j        dd gt          t                                                              }t          j	        ||           d S )Nr  rW   rM   ir  r  r  r  r?   
re   r   r   r-   r   r   r   r*  r   r   r[  s      r1   test_str_find_negative_startr    s    
)UDMBIIKK)@)@
A
A
ACW\\cA\66Fy!T*RXXZZ*@*@AAAH68,,,,,r3   c                    t          j        dd gt          t                                                              } | j                            dd          }t          j        dd gd          }t          j        ||           d S )Nr  rW   r  r?   )r  rA   r   r  r[  s      r1   test_str_find_no_endr	    ss    
)UDMBIIKK)@)@
A
A
ACW\\$a\((Fy"d+;<<<H68,,,,,r3   c                 Z   t          j        dd gt          t                                                              } | j                            ddd          }t          j        dd gt          t                                                              }t          j	        ||           d S )NabcdefgrW   dr  r  r  r  r[  s      r1   )test_str_find_negative_start_negative_endr    s    
)Y%Z		-D-D
E
E
ECW\\c\44Fy!T*RXXZZ*@*@AAAH68,,,,,r3   c                 X   t          j        dd gt          t                                                              } | j                            dd          }t          j        dd gt          t                                                              }t          j	        ||           d S )Nr  rW   r  r/  )r  r  rA   r  r[  s      r1   test_str_find_large_startr    s    
)Y%Z		-D-D
E
E
ECW\\c\,,Fy"d:bhhjj+A+ABBBH68,,,,,r3   r  )r  r   r?      Nr  )r  rA   r   r  r  Nr  )r  azabcerL   caac                z   t          j        g dt          t                                                              }|                    t          j        d                    }|j                            || |          }|j                            || |                              |j	                  }t          j        ||           |                    t          j        d                    }|j                            || |                              |j	                  }t          j        ||           d S )N)abcaadefr  abcdeddefgj8292r  rL   r  rW   rR  r  r#   )re   r   r   r-   r   r   r  r   r   r9   r   r   )	r  r  r  r  object_seriesr   r   arrow_str_seriesresult2s	            r1   test_str_find_e2er    s    		===%%	 	 	A HHR^H===>>MUZZUC((F %%c5#66==flKKH68,,,xxy A A ABB"''UC88??MMG7H-----r3   c                 Z   t          j        dd gt          t                                                              } | j                            ddd          }t          j        dd gt          t                                                              }t          j	        ||           d S )Nr  rW   r  r  r  r  rA   r  r[  s      r1   2test_str_find_negative_start_negative_end_no_matchr    s    
)Y%Z		-D-D
E
E
ECW\\c\44Fy"d:bhhjj+A+ABBBH68,,,,,r3   zi, exp)rM   r  N)rr   r  Nr;   )rr   NN)rL   NNr  c                P   t          j        g dt          t                                                              }|j                            |           }t          j        |t          t                                                              }t          j        ||           d S )N)r  deNrW   )	re   r   r   r-   r   r   r  r   r   )r  r  r   r   r   s        r1   test_str_getr!    s}     )'''z"))++/F/F
G
G
GCW[[^^FyJryy{{$;$;<<<H68,,,,,r3   z=TODO: StringMethods._validate should support Arrow list typesr   c            
        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=3NrW   )re   r   r$   r-   rf   r   r   joinr   r   r   r   r[  s      r1   test_str_joinr'    s    
 )'$u++tE{{D1Q(R(RSS
T
TCW\\#Fy111BIIKK9P9PQQQH68,,,,,r3   c                 R   t          j        t          t                              g d                              } | j                            d          }t          j        g dt          t                                                              }t          j
        ||           d S )N)r  r#  Nr$  r%  rW   )re   r   r$   r-   rf   r   r&  r   r   r   r   r[  s      r1   test_str_join_string_typer)    s    
)'1E1E1E(F(FGG
H
HCW\\#Fy111BIIKK9P9PQQQH68,,,,,r3   zstart, stop, step, expdcbac                T   t          j        dd gt          t                                                              }|j                            | ||          }t          j        |t          t                                                              }t          j        ||           d S NabcdrW   )	re   r   r   r-   r   r   slicer   r   )r  stopstepr  r   r   r   s          r1   test_str_slicer1    s     )VTN*RYY[[*A*A
B
B
BCW]]5$--FyJryy{{$;$;<<<H68,,,,,r3   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,  )	re   r   r   r-   r   r   slice_replacer   r   )r  r/  r  r  r   r   r   s          r1   test_str_slice_replacer7    s     )VTN*RYY[[*A*A
B
B
BCW""5$55FyJryy{{$;$;<<<H68,,,,,r3   zvalue, method, exp)a1cisalnumT)z!|,r9  F)aaaisalphaT)z!!!r;  F)u   ٠	isdecimalT)z~!r<  F)rN   isdigitT)~r=  F)r:  islowerT)aaAr?  F)r#  	isnumericT)11IrA  F) isspaceT)r  rD  F)zThe ThatistitleT)zthe ThatrE  F)AAAisupperT)AAcrG  Fc                Z   t          j        | d gt          t                                                              } t          |j        |                      }t          j        |d gt          t                                                              }t          j	        ||           d S r   r  )valuemethodr  r   r   r   s         r1   test_str_is_functionsrL    s    0 )UDMBIIKK)@)@
A
A
AC%WSWf%%''Fy#tJrxxzz,B,BCCCH68,,,,,r3   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 dEFrW   	re   r   r   r-   r   r   r   r   r   )rK  r  r   r   r   s        r1   test_str_transform_functionsrT  8  s     )Y%Z		-D-D
E
E
EC%WSWf%%''Fy#tJryy{{,C,CDDDH68,,,,,r3   c                 R   t          j        dd gt          t                                                              } | j                                        }t          j        dd gt          t                                                              }t          j	        ||           d S )Nr-  rW   rq   )
re   r   r   r-   r   r   r   r  r   r   r[  s      r1   test_str_lenrV  J  sz    
)VTN*RYY[[*A*A
B
B
BCW[[]]Fy!T*RXXZZ*@*@AAAH68,,,,,r3   zmethod, to_strip, val)rz  Nz abc )rz  r   xabcx)lstripNz abc)rX  r   xabc)rstripNzabc )rZ  r   abcxc                ^   t          j        |d gt          t                                                              } t          |j        |           |          }t          j        dd gt          t                                                              }t          j        ||           d S )NrW   )to_stripr  rS  )rK  r]  valr   r   r   s         r1   test_str_stripr_  Q  s     )S$Kz"))++'>'>
?
?
?C%WSWf%%x888Fy%j.E.EFFFH68,,,,,r3   r^  abc123c                T   t          j        | d gt          t                                                              }|j                            d          }t          j        dd gt          t                                                              }t          j        ||           d S NrW   r#  r  )	re   r   r   r-   r   r   removesuffixr   r   r^  r   r   r   s       r1   test_str_removesuffixre  c      
)S$Kz"))++'>'>
?
?
?CW!!%((Fy%j.E.EFFFH68,,,,,r3   123abcc                T   t          j        | d gt          t                                                              }|j                            d          }t          j        dd gt          t                                                              }t          j        ||           d S rb  )	re   r   r   r-   r   r   removeprefixr   r   rd  s       r1   test_str_removeprefixrj  k  rf  r3   r`  r   r   zencoding, exputf8s   abc)littlebigutf32s     a   b   c   s        a   b   cc                v   t          j        dd gt          t                                                              }|j                            ||           }t          j        |t          j                 d gt          t          	                                                    }t          j        ||           d S Nr  rW   )re   r   r   r-   r   r   encodesys	byteorderr	  r   r   )r`  encodingr  r   r   r   s         r1   test_str_encoderu  s  s      )UDMBIIKK)@)@
A
A
ACW^^Hf--Fy#cm,d3:biikk;R;RSSSH68,,,,,r3   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  r  NrW   rM   r  )
re   r   r   r-   r   r   findalllist_r   r   )r  r   r   r   s       r1   test_str_findallry    s    
)(((
299;;0G0G
H
H
HCW__S_..Fy3%T**RXXbiikk=R=R2S2STTTH68,,,,,r3   rK  rY  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abcbarW   rr   r;   zsubstring not foundr   rx  )re   r   r   r-   r   r   r   r*  r   r   r*   r(   r[  )rK  r  r  r   r   r   s         r1   test_str_r_indexr}    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 rp  )
re   r   r   r-   r   r   	normalizerI  r   r   )r~  r   r   r   s       r1   test_str_normalizer    se    
)UDMBIIKK)@)@
A
A
ACWt$$FxxzzH68,,,,,r3   c                X   t          j        g dt          t                                                              }|j                            d| |          }t          j        g dt          t                                                              }t          j	        ||           d S )N)r|  rx  NrW   rr   )r;   rA   N)
re   r   r   r-   r   r   rfindr*  r   r   )r  r  r   r   r   s        r1   test_str_rfindr    s     )****RYY[[2I2I
J
J
JCW]]3s++Fyj.D.DEEEH68,,,,,r3   c                 X   t          j        dd gt          t                                                              } | j                            ddi          }t          j        dd gt          t                                                              }t          j        ||           d S )Nr|  rW   a   rM   bbcbb)	re   r   r   r-   r   r   	translater   r   r[  s      r1   test_str_translater    s    
)WdO:biikk+B+B
C
C
CCWCy))Fy'4
299;;0G0GHHHH68,,,,,r3   c                 T   t          j        dd gt          t                                                              } | j                            d          }t          j        dd gt          t                                                              }t          j        ||           d S )Nr|  rW   r  zabc
ba)	re   r   r   r-   r   r   wrapr   r   r[  s      r1   test_str_wrapr    s}    
)WdO:biikk+B+B
C
C
CCW\\!__Fy)T**RYY[[2I2IJJJH68,,,,,r3   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|crW   )TTFr  r7  )rL   rM   rr   r9   r  )re   r   r   r-   r   r   get_dummiesr\  r  r   r_  r[  s      r1   test_get_dummiesr    s    
)(((
299;;0G0G
H
H
HCW  ""F|			3335H5H5HI$$  H
 &(+++++r3   c                 F   t          j        dd gt          t                                                              } | j                            d          }t          j        g dg dgt          t                                                    t          j        d                    }t          j
        ||d	           | 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        d                    }t          j
        ||d	           | j                            dd
          }t          j        t          t                              g dd g                              }t          j        ||           d S )Nr|  rW   rM   )rL   rM   cbar  r  r  T)check_column_typeFexpand)r  rM   rL   )re   r   r   r-   r   r   	partitionr\  
RangeIndexr   r_  r$   rf   r   
rpartitionr[  s      r1   test_str_partitionr    s   
)WdO:biikk+B+B
C
C
CCWs##F|			.../%%a    H
 &(dCCCCWs511Fy,RXX7H7H7H$6O-P-PQQRRH68,,,W$$F|			.../%%a    H
 &(dCCCCWE22Fy,RXX7H7H7H$6O-P-PQQRRH68,,,,,r3   rsplitsplitc                \   t          j        dd gt          t                                                              } t          |j        |                       }t          j        t          t                              g dd g                              }t          j
        ||           d S )Nza1 cbc
brW   )a1cbcrM   )re   r   r   r-   r   r   r   r$   rf   r   r   rK  r   r   r   s       r1   test_str_split_pat_noner    s     )[$'z"))++/F/F
G
G
GC%WSWf%%''Fy,RXX7I7I7I46P-Q-QRRSSH68,,,,,r3   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a2cbcbNrW   rr   r  rM   rM   a2rM   rM   r?   r  r  bcbr  z[1-2]Tr  rL   cbcb)r  r  )rL   rL   N)r  r  Nr   r?   rC   r  rL   r  Nr  NN)re   r   r   r-   r   r   r  r$   rf   r   r   r\  r_  r[  s      r1   test_str_splitr    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 &(+++++r3   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 )Nr  rW   rr   r  r  r?   r  a1cbrM   a2cbT)r  r  )r  r  N)rM   rM   Nr  rC   r  r  r  )re   r   r   r-   r   r   r  r$   rf   r   r   r\  r_  r[  s      r1   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 &(+++++r3   c                    t          j        g dt          t                                                              } t          j        t          d          5  | j        	                    d           d d d            d S # 1 swxY w Y   d S )Nr  b2c3rW   z*pat=.* must contain a symbolic group name.r   z[ab](\d))
re   r   r   r-   r   r*   r(   r[  r   extractr  s    r1   test_str_extract_non_symbolicr  @	  s    
)&&&j.E.E
F
F
FC	z)U	V	V	V % %$$$% % % % % % % % % % % % % % % % % %   B  BBr  c           	        t          j        g dt          t                                                              }|j                            d|           }t          j        t          t          	                    g d                    t          t          	                    g d                    d          }t          j        ||           d S )Nr  rW   z(?P<letter>[ab])(?P<digit>\d)r  )rL   rM   NrC   rN   N)letterdigit)re   r   r   r-   r   r   r  r\  r$   rf   r   r_  )r  r   r   r   s       r1   test_str_extractr  F	  s    
)&&&j.E.E
F
F
FCW__=f_MMF|)"((3C3C3C*D*DEE(2B2B2B)C)CDD	
 	
 H &(+++++r3   c            	     6   t          j        g dt          t                                                              } | j                            dd          }t          j        dt          t          	                    g d                    i          }t          j        ||           | j                            dd          }t          j        t          t          	                    g d                    d	          }t          j        ||           d S )
Nr  rW   z[ab](?P<digit>\d)Tr  r  r  Fr  )re   r   r   r-   r   r   r  r\  r$   rf   r   r_  r   r[  s      r1   test_str_extract_expandr  S	  s    
)&&&j.E.E
F
F
FCW__1$_??F|(2B2B2B)C)CDD	
 H
 &(+++W__1%_@@Fy,RXX6F6F6F-G-GHHwWWWH68,,,,,r3   r  )rV  rU  msr  c                   ddg}t                               |           }t          |          }t          j        ||          }t          t                               dd g|                    }t          j        ||           d S )N1000NaTrW     r}  )r-   r  r   r$   r   rf   r   r   )r  stringsr   r9   r   r   s         r1   #test_duration_from_strings_with_natr  b	  sz     uoGkk$GwE :7%PPPF"288T4Lw8#G#GHHH#FH55555r3   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   )r9   r7   r-   rX   r   r*   r(   AttributeErrorre   r   r  r   s     r1   test_unsupported_dtr  m	  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_yearmicrosecond  month
nanosecondr  quartersecondry   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  r?   r;   r  rq   ry   r  r  )r  r  r  r  r  r  r  r  rV  rW   r}  )re   r   r  r   r-   r  r   r  r   r   r  r   time64r$   rf   r   r   )propr   r   r   r  s        r1   test_dt_propertiesr  v	  s	   . )L 	 	 	 	
 d++,,  C  SVT""FH(D!! #99;;	Hd	#	# #99T??y,RXXx6FXX-V-VWWXXH68,,,,,r3   )r  rK   r   c           
     "   t          j        t          j        dddd| d          d gt          t                              d                              }|j        j        }t          j        | d gd          }t          j	        ||           d S )	N  ry   rK   r  )r  r  r  r  r  r  rV  rW   r   )
re   r   r  r   r-   r  r  r  r   r   )r  r   r   r   s       r1   test_dt_microsecondr  	  s     )L'   
	
 d++,,  C VFy+t,4DEEEH68,,,,,r3   c            
     ^   t          j        t          dddd          t          dddd          t          dddd          d gt          t                              d                    	          } | j        j        }t          j        g d
t          t                                                    	          }t          j
        ||           | j        j        }t          j        g dt          t                                                    	          }t          j
        ||           d S )Nr  rG   r;   r  r  r  r  r  r?   rH   rU  rW   r  FFTN)re   r   r   r   r-   r  r  is_month_startr  r   r   is_month_endr[  s      r1   test_dt_is_month_start_endr  	  s   
)$baa888$aQQ777$aRa888		
 d++,,  C V"Fy333:bhhjj;Q;QRRRH68,,,V Fy333:bhhjj;Q;QRRRH68,,,,,r3   c            
     ^   t          j        t          dddd          t          dddd          t          dddd          d gt          t                              d                              } | j        j        }t          j        g d	t          t                                                              }t          j
        ||           | j        j        }t          j        g d
t          t                                                              }t          j
        ||           d S )Nr  rG   rH   r  r  r?   rU  rW   r  r  )re   r   r   r   r-   r  r  is_year_startr  r   r   is_year_endr[  s      r1   test_dt_is_year_start_endr  	  s   
)$bbq999$aQQ777$aRa888		
 d++,,  C V!Fy333:bhhjj;Q;QRRRH68,,,VFy333:bhhjj;Q;QRRRH68,,,,,r3   c            
     ^   t          j        t          dddd          t          dddd          t          dddd          d gt          t                              d                    	          } | j        j        }t          j        g d
t          t                                                    	          }t          j
        ||           | j        j        }t          j        g dt          t                                                    	          }t          j
        ||           d S )Nr        r  r  r?   rH   rU  rW   r  r  )re   r   r   r   r-   r  r  is_quarter_startr  r   r   is_quarter_endr[  s      r1   test_dt_is_quarter_start_endr  	  s   
)$bbq999$aQQ777$aRa888		
 d++,,  C V$Fy333:bhhjj;Q;QRRRH68,,,V"Fy333:bhhjj;Q;QRRRH68,,,,,r3   days_in_monthdaysinmonthc           
        t          j        t          dddd          t          dddd          t          dddd          d gt          t                              d                    	          }t          |j        |           }t          j        g d
t          t                                                    	          }t          j
        ||           d S )Nr  r  r  r  rq   r?   r;   rU  rW   )rH   r     N)re   r   r   r   r-   r  r   r  r*  r   r   r  s       r1   test_dt_days_in_monthr  	  s    
)$aRa888$aQQ777$aQQ777		
 d++,,  C SVV$$Fy+++:bhhjj3I3IJJJH68,,,,,r3   c                 &   t          j        t          ddd          t          dddd          t          dddd	d
d
          d gt          t                              d                              } | j                                        }t          j        t          ddd          t          ddd          t          ddd          d gt          t                              d                              }t          j	        ||           d S )Nr  r  r  r  r  r  rq   r?   r  r;      ;   )r  r  r  r  r  r  rU  rW   )
re   r   r   r   r-   r  r  r  r   r   r[  s      r1   test_dt_normalizer  
  s   
)$aR000$aQQ777$aQR2NNN		
 d++,,  C VFy$aR000$aQ///$aQ///		
 d++,,  H 68,,,,,r3   rU  rV  c           
        t          j        t          dddd          d gt          t                              |                               }|j        j        | k    sJ |j        j        }t          j        t          t          
                    t          dd          d gt                              |                                         }t          j        ||           d S )	Nr  r?   r;   r  r  rW   r   r}  )re   r   r   r   r-   r  r  r  r   r$   rf   r  r   r   r  r   r   r   s       r1   test_dt_time_preserve_unitr  
  s    
)	t1!!	4	4	4d;d++,,  C 6;$V[FyBHHd1ajj$%7biiooHNNOO H 68,,,,,r3   r   )Nr  
US/Pacificc           	         t          j        t          dddd          d gt          t                              d|                               }|j        j        }|t          j	        |           k    sJ d S )	Nr  r?   r;   r  r  rV  r   rW   )
re   r   r   r   r-   r  r  r   r   maybe_get_tz)r   r   r   s      r1   
test_dt_tzr  ,
  sy    
)	t1!!	4	4	4d;dr2233  C VYFY+B////////r3   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  r?   r;   r  r  rV  rW   )r  r?   r?   r  )r  weekr  r   r  r9   )re   r   r   r   r-   r  r  isocalendarr\  r   r_  r[  s      r1   test_dt_isocalendarr  6
  s    
)	t1!!	4	4	4d;d++,,  C V!!F|	yyy!'''  H
 &(+++++r3   day_nameSunday
month_nameJanuaryc                   t          |           t          j        t          ddd          d gt	          t
                              d                              } t          |j        |                       }t          j        |d gt	          t
          	                                                    }t          j        ||           d S )Nr  r?   r  rW   )r2   re   r   r   r   r-   r  r   r  r   r   r   )rK  r  r0   r   r   r   s         r1   test_dt_day_month_namer  D
  s    
 w'''
)XdAq))40
2<<PTCUCU8V8V
W
W
WC$WSVV$$&&Fy#tJryy{{,C,CDDDH68,,,,,r3   c                   t          |            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;   r  r  rV  rW   z%Y-%m-%dT%H:%M:%Sz2023-01-02T03:00:00.000000000)r2   re   r   r   r   r-   r  r  strftimer   r   r   r0   r   r   r   s       r1   test_dt_strftimer  Q
  s    w'''
)	t1!!	4	4	4d;d++,,  C V__011Fy	($/z"))++7N7N  H 68,,,,,r3   )ceilr  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  r?   r;   r  r  rV  rW   zambiguous is not supported.r   1hr  	ambiguousznonexistent is not supported.nonexistent)re   r   r   r   r-   r  r*   r(   rd   r   r  rK  r   s     r1   *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  r?   r;   r  r  rV  rW   zfreq='1B' is not supportedr   1Bz$Must specify a valid frequency: None)re   r   r   r   r-   r  r*   r(   r[  r   r  r  s     r1   "test_dt_roundlike_unsupported_freqr"  l
  si   
)	t1!!	4	4	4d;d++,,  C 
z)E	F	F	F & &%%%& & & & & & & & & & & & & & & 
z)O	P	P	P & &%%%& & & & & & & & & & & & & & & & & &s$   *BBB;C''C+.C+freq)Dhr  r  r  rU  rV  c                   t          j        t          ddd          d g          }t          t                              d                    } t          |j        |          d|                                |          } t          |                    |          j        |          d|            }t          j
        ||           d S )Nr  r?   r  rV  rC   )re   r   r   r   r-   r  r   r  r   r   r   )r#  rK  r   rg   r   r   s         r1   test_dt_ceil_year_floorr'  y
  s     )	t1!	,	,	,d3 C ",,t,,--H&wsvv&&z4zz2299(CCH5WSZZ)),f55j$jjAAF68,,,,,r3   c                 D   t          ddd          t          ddd          g} t          j        | t          t                              d                              }|j                                        }t          j        | t                    t          j
        |           t          fdt          t                              D                       sJ |                    d          j                                        t          j
        |           d S )NrE   r?   r  rV  rW   c              3  Z   K   | ]%}t          j        |                   t          u V  &d S r   )rk   r  r   )r   r  r   s     r1   	<genexpr>z(test_dt_to_pydatetime.<locals>.<genexpr>
  s7      PPatHM!$%%1PPPPPPr3   datetime64[ns])r   re   r   r   r-   r  r  r  r   r   r   r  r   r   r   rh   r   r   r   s      @r1   test_dt_to_pydatetimer-  
  s    T1a  (4A"6"67D
)D
2<<+=+= > >
?
?
?CV!!##FyV,,,H68,,,PPPP5X;O;OPPPPPPPPzz*++.<<>>H68,,,,,r3   	date_typer   @   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 )NrE   rG   rH   r   rW   z#to_pydatetime cannot be called withr   )re   r   r   r   r   r-   r*   r(   r[  r  r  )r.  r   s     r1    test_dt_to_pydatetime_date_errorr1  
  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  r?   r;   r  r  rV  rW   z ambiguous='NaT' is not supportedr   r  r  r  z"nonexistent='NaT' is not supportedr  )re   r   r   r   r-   r  r*   r(   rd   r  tz_localizer  s    r1   *test_dt_tz_localize_unsupported_tz_optionsr4  
  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          |            t          j        t          dddd          d gt	          t
                              dd                    	          }|j                            d           }t          j        |d
                             d           d gt	          t
                              d                    	          }t          j
        ||           d S )Nr  r?   r;   r  r  rV  r  r  rW   r   )r2   re   r   r   r   r-   r  r  r3  r   r   r  s       r1   test_dt_tz_localize_noner6  
  s    w'''
)	t1!!	4	4	4d;d|<<==  C V%%Fy	Q		D	!	!4(d++,,  H 68,,,,,r3   c                .   t          |           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;   r  r  rW   r  r}  r2   re   r   r   r   r-   r  r  r3  rf   computeassume_timezoner$   r   r   )r  r0   r   r   exp_datar   s         r1   test_dt_tz_localizer<  
  s    w'''
)	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,,,,,r3   znonexistent, exp_dateshift_forwardrG   r  shift_backwardz2023-03-12 01:59:59.999999999c           	        t          |           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  rG   r;   r  )r  r  r  r  r  rV  rW   r  r  r}  r8  )r  exp_dater0   r   r   r;  r   s          r1   test_dt_tz_localize_nonexistentrA  
  s     w'''
)	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,,,,,r3   c                 >   t          j        t          dddd          d gt          t                              d                              } t          j        t          d	          5  | j	        
                    d
           d d d            d S # 1 swxY w Y   d S )Nr  r?   r;   r  r  rV  rW   z"Cannot convert tz-naive timestampsr   r  )re   r   r   r   r-   r  r*   r(   r   r  
tz_convertr  s    r1    test_dt_tz_convert_not_tz_raisesrD  
  s    
)	t1!!	4	4	4d;d++,,  C 
y(L	M	M	M ! !%   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s   *BBBc            	        t          j        t          dddd          d gt          t                              dd                              } | j                            d           }t          j        | d	                             d           d gt          t                              d                              }t          j	        ||           d S )
Nr  r?   r;   r  r  rV  r  rW   r   
re   r   r   r   r-   r  r  rC  r   r   r[  s      r1   test_dt_tz_convert_nonerG  
  s    
)	t1!!	4	4	4d;dL99::  C Vt$$Fy	Q		4	 	 $'d++,,  H 68,,,,,r3   c           	        t          j        t          dddd          d gt          t                              | d                              }|j                            d          }t          j        |d	                             d          d gt          t                              | d                              }t          j	        ||           d S )
Nr  r?   r;   r  r  r  rW   
US/Easternr   rF  r  s       r1   test_dt_tz_convertrJ  
  s    
)	t1!!	4	4	4d;dL99::  C V|,,Fy	Q		<	(	($/dL99::  H 68,,,,,r3   r9   ztimestamp[ms][pyarrow]zduration[ms][pyarrow]c                    t          j        dd g|           }|j                            d          }|                    |                     dd                    }t          j        ||           d S )Nr  rW   rV  r  )re   r   r  as_unitr   r  r   r   r  s       r1   test_as_unitrM    sg     )T4L
.
.
.CV^^D!!Fzz%--d3344H68,,,,,r3   zfrom_unit,to_unit)rV  rU  rV  r  rV  r  )rU  r  )rU  r  )r  r  )r  r  )r  rU  r  rV  )r  rU  r  rV  rT  c                r   t          j        t          j        dd gd                              |                     }|                    d|  d          }|j                            |          }|j                            |                              d| d          }t          j        ||           d S )Nl   @W/U rV  r  	duration[
][pyarrow])re   r   to_timedeltarL  r   r  r   r   )	from_unitto_unit	ser_numpy	ser_arrowr   r   s         r1    test_as_unit_duration_truncationr\    s    ( 	
.T:::BB9MM I   !BY!B!B!BCCI\!!'**F|##G,,334S4S4S4STTH68,,,,,r3   )rN  rO  rP  rQ  rR  rT  c                b   t          j        t          j        d          d gd|  d          }|                    d|  d          }|j                            |          }|j                            |          }t          j        |                                	                    d| d          |                                	                                           |
                                                                |
                                                                k    sJ d S )N2024-01-15 12:30:45.123456789
timestamp[rV  rW   zdatetime64[r  )re   r   r  r   r  rL  r   r  r'  r   rD  r   )rX  rY  r[  rZ  r   expected_numpys         r1   test_as_unit_timestampra  )  s!    		5	6	6=09000  I   !;y!;!;!;<<I\!!'**F\))'22N  '?W'?'?'? @@((**  
 ;;==).."2"2"6"6"8"8888888r3   rY  )r  r  rU  rV  c                   t          j        t          j        dg                              d                              d                    }|                    d          }|j                            |           }|j                            |                               d|  d          }t          j        ||           t          |j
                  d|  dk    sJ d S )Nr^  rI  rV  "timestamp[ns, US/Eastern][pyarrow]r_  z, US/Eastern][pyarrow]z, tz=US/Eastern][pyarrow])re   r   to_datetimer3  rL  r   r  r   r   r   r9   )rY  rZ  r[  r   r   s        r1   $test_as_unit_timestamp_with_timezonere  H  s     	
7899	\	"	"	 I
   !EFFI\!!'**F|##G,,334W444 H 68,,,v| OW O O OOOOOOOr3   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?   r;   rW   zas_unit not implementedr   rV  )
re   r   r   r-   r  r*   r(   rd   r  rL  r  s    r1   test_as_unit_date_raisesrg  Z  s    
)QF*RYY[["9"9
:
:
:C	*2K	L	L	L  t                 r  dayssecondsmicrosecondsnanosecondsc           	        t          j        t          j        dddd          d gt          t                              d                              }t          |j        |           }t          j        t          t          	                    |d gt          
                                                              }t          j        ||           d S )	Nr?   r;   r  rq   rh  ri  rj  rk  rV  rW   r}  )re   r   	Timedeltar   r-   r  r   r  r$   rf   r  r   r   )r  r   r   r   s       r1   test_dt_timedelta_propertiesro  a  s     )L	   	
 T**++  C SVT""FyBHHh%5BHHJJHGGHH H 68,,,,,r3   c            	        t          j        t          j        dddd          d gt          t                              d                              } | j                                        }t          j        t          t          	                    dd gt          
                                	                              }t          j        ||           d S )
Nr?   r;   r  rq   rm  rV  rW   gN%  @r}  )re   r   rn  r   r-   r  r  total_secondsr$   rf   r   r   r   r[  s      r1   test_dt_timedelta_total_secondsrr    s    
)L	   	
 T**++  C V!!##FyBHHlD%9

HMMNN H 68,,,,,r3   c                    t          ddd          t          ddd          g} t          j        | t          t                              d                              }d}t          j        t          |          5  |j	        
                                }d d d            n# 1 swxY w Y   t          j        | t                    }t          j        ||           t          d	 |D                       sJ d
}t          j        t          |          5  |                    d          j	        
                                }d d d            n# 1 swxY w Y   t          j        ||           d S )Nr?   r;   r  rq   rV  rW   zDThe behavior of ArrowTemporalProperties.to_pytimedelta is deprecatedr   c              3  B   K   | ]}t          |          t          u V  d S r   )rk   r   )r   ress     r1   r*  z)test_dt_to_pytimedelta.<locals>.<genexpr>  s-      88#tCyyI%888888r3   z@The behavior of TimedeltaProperties.to_pytimedelta is deprecatedtimedelta64[ns])r   re   r   r   r-   r  r   rf  r   r  to_pytimedeltar   rf   r   r   r  r   )rh   r   r3  r   r   s        r1   test_dt_to_pytimedeltarx    s   aA	!Q 2 23D
)D
2;;t+<+< = =
>
>
>C
PC		#N#	>	>	> ) )&&(() ) ) ) ) ) ) ) ) ) ) ) ) ) )xF+++H1118888888888
LC		#N#	>	>	> E E::/003BBDDE E E E E E E E E E E E E E E11111s$   ;B!!B%(B%-EEEc            
        t          j        t          j        dddd          d gt          t                              d                              } | j        j        }t          j        g dt           j	        t           j	        t           j	        t           j	        t           j	        t           j	        t           j	        ggg d	d
          }t          j        ||           d S )Nr?   r;   r  rq   rm  rV  rW   )r?   r   r   r;   r   r  rq   rh  hoursminutesri  millisecondsrj  rk  r   r
  re   r   rn  r   r-   r  r  
componentsr\  rX  r   r_  r[  s      r1   test_dt_componentsr    s    
)L	   	
 T**++  C VF|			rubeRUBE25 QR
 
 
   H &(+++++r3   c            
        t          j        t          j        d          d gt          t                              d                              } | j        j        }t          j        g dt           j	        t           j	        t           j	        t           j	        t           j	        t           j	        t           j	        ggg dd          }t          j        ||           d S )Nz365 days 23:59:59.999000rV  rW   )im  r  r  r  i  r   r   rz  r   r
  r~  r[  s      r1   test_dt_components_large_valuesr    s    
)L344	
 T**++  C VF|(((UBE25"%ru=	

 
 
   H  &(+++++r3   r   c                    t          j        d gd          } t          ||           |          }|r| dk    }nt           j        }||u sJ d S )Nr  rW   r   r  )re   r   r   rX  )r  r   r   r   r   s        r1   #test_boolean_reduce_series_all_nullr    sj     )TF"4
5
5
5C1WS011@@@F )U25Xr3   c                    g d} g d}d g}| |z   |z   }dgt          |           z  dgt          |          z  z   d gt          |          z  z   }t          t                                                    }t	          j        ||          }t          j        |d          }t          j	        ||           ddg}t          j        t          j        d	
          5  t	          j        ||           d d d            d S # 1 swxY w Y   d S )N)trueTRUETruerC   rY  )falseFALSEFalse0rD   TFrW   r  r  rx  zFailed to parser   )r   r   r-   r  r$   r   re   rf   r   r   r*   r(   r.   )true_stringsfalse_stringsnullsr  boolsr9   r   r   s           r1   %test_from_sequence_of_strings_booleanr    so   777L;;;MFE]*U2G	\"""eWs=/A/A%AATFSQVZZDWW 
 rxxzz""E :7%PPPFx%7888H#FH555uoG	r.?	@	@	@ L L5gUKKKKL L L L L L L L L L L L L L L L L Ls   C>>DDc                    t          j        g |           }|                                }t          j        |t	          j        g t          j                           g          }t          j        ||           d S r   )	re   r   rI  concatr   rf   r  r   r   )r9   r   r   r   s       r1   %test_concat_empty_arrow_backed_seriesr     sd    
)Be
$
$
$CxxzzHYBHRrx8889:;;F68,,,,,r3   r   string[pyarrow]c                    t                               d                                          }t          j        ||           }t          j        t          |          |           }t          j        ||           d S )Nzthe quick brown foxrW   )r-   rf   r  re   r   r$   r   r   )r9   r   r   r   s       r1   test_series_from_string_arrayr    sj    
(((..00
1
1C
)Cu
%
%
%Cy,S11???H3)))))r3   c                       e Zd Z fdZ xZS )OldArrowExtensionArrayc                x    t                                                      }|                    d          |d<   |S )Nr   _data)r   __getstate__pop)r   stater   s     r1   r  z#OldArrowExtensionArray.__getstate__  s2    $$&&;//gr3   )r  r  r  r  r  r  s   @r1   r  r    s8                r3   r  c                 >   t                               dg          } t          |           }t          j        t          j        |                    }t          j        ||           |j        t           	                    |           k    sJ t          |d          rJ d S )Nr?   r  )r-   rf   r  rL  rN  rM  r   r   r   chunked_arrayhasattr)rh   r   r   s      r1   #test_pickle_old_arrowextensionarrayr    s    88QC==D%d++H\&,x0011F#FH555r//555555vw'''''''r3   c                 ,   d} t          t                              t          j        | ft          j                  g                    }|                                }d|t          j        | ft          j                  <   |j        |j        k    sJ d S )Nih6 rW   F)	r$   r-   r  r   onesr  rI  zerosr   )Nr   r   s      r1   /test_setitem_boolean_replace_with_mask_segfaultr  !  s~    A
b..BH0M0M0M/NOO
P
PCxxzzH*/C!RX&&&'=H.......r3   zdata, arrow_dtyperQ   rR   c                    t          |          }t          j        t          j        |           |          }t          j        | |          }t	          j        ||           d S r   )r   re   rf   r   r   r   )rh   r3  r9   r   r   s        r1   -test_conversion_large_dtypes_from_numpy_arrayr  *  sZ     {##EXbhtnnE222FxE***H#FH55555r3   c                 D   t          j        dd d git          t                                                              } t          j        dddgid          }t          j        | |gd          }t          j        dg did          }t          j        ||           d S )	NrL   rW   r   r?   r   T)ignore_index)NNr   r?   )re   r\  r   r-   nullr  r   r_  )r`  df2r   r   s       r1   test_concat_null_arrayr  8  s    	sT4L)BGGII1F1F	G	G	GB
,aV},<
=
=
=CYCyt444F|S"4"4"45=MNNNH&(+++++r3   c                    t          j        g dt          |                     }|                                }t          j        g dt          t                                                    g d          }t          j        ||           d S )Nr?   r;   r  rW   )r  r;   r?   r?   r.  g       @r  r  r  r   r  r  25%50%75%r  r9   rY  )re   r   r   describer-   r   r   r   r   rh   r   r   s       r1   test_describe_numeric_datar  A  s     9YYYj&9&9:::D]]__Fy&&&&&III  H
 68,,,,,r3   c                V   t          j        t          dd          t          |                     }|                                }t          j        dgt          j        g d| j                                                  t          g d          }t          j
        ||           d S )	Nr?   rJ   rW   	   )rK   r;   r?   r  rK   ry   r  rT  r  r  )re   r   r   r   r  rW  r  rs  r   r   r   r  s       r1   test_describe_timedelta_datar  N  s     9U1b\\G)<)<===D]]__Fy	
PR_222FFFMMOOPIII  H
 68,,,,,r3   c                    t          j        t          dd          t                               }|                                }t          j        dg fddD             z   t
          g d          }t          j        ||           d S )	Nr?   rJ   rW   r  c                R    g | ]#}t          j        |j        j                   $S ))r   r  )re   r  r   r  )r   vr   s     r1   r   z/test_describe_datetime_data.<locals>.<listcomp>b  s>     
 
 
 Lwz===
 
 
r3   )rK   r?   r  rK   ry   r  )r  r   r  r  r  r  r  r  )re   r   r   r   r  r   r   r   r  s   `   r1   test_describe_datetime_datar  [  s     9U1b\\G)<)<===D]]__Fy	

 
 
 
'
 
 
	

 BBB  H 68,,,,,r3   c                    g d}t          j        |t          |                     }|                    d          }|d         }||k    sJ d S )Nr  rW   皙?r   )re   r   r   r  )r   rh   r   r   r   s        r1   test_quantile_temporalr  l  sZ    
 99D
)D
7 3 3
4
4
4C\\#F1vHXr3   c                    t                               t          j        d          gt                                                     } t          j        | t          | j                            }t          |          dk    sJ d S )Nz
2020-01-01r}  rW   z+0    2020-01-01
dtype: date32[day][pyarrow])
r-   rf   r   fromisoformatr  re   r   r   rk   repr)arrow_dtr   s     r1   test_date32_reprr  x  si    xx+L99:xMMH
)HJx}$=$=
>
>
>C99FFFFFFFr3   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 )Nr?   rV  rW   r;   )
re   rd  rW  r   r   r-   r  r  r   r   )data_tsdata_tdser_tsser_tdr   r   s         r1   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,,,,,r3   c                   t          j        |           }|dk    sJ | j        r9|dv r5t          j                            d          }|                    |           |t          j        t          |           d          k    sJ d S )Nzunknown-array)
datetime64timedelta64zfin infer_dtype pd.NA is not ignored in these cases even with skipna=True in the list(data) check belowr   Tr   )r   infer_dtyperc  r*   r+   r,   r/   r   )rh   r0   ru  r+   s       r1   test_infer_dtype_pyarrow_dtyper    s    
/$

C/!!!!{ "s;;;{  B ! 
 
 	D!!!#/$t**T:::::::::r3   c                   d}| j         }t          j                            |           r+t	          j        ||                              |          g}n0t	          j        ||| j                                      |          g}t          j
        ||           }t          t                              |g|                     }t          j        ||           d S )Nr  rT  r  r   rW   r}  )r  r-   rX   r`   re   rn  rL  r  r   r$   rl   rf   r   r   )r   r^  r  seqr   r   s         r1   test_from_sequence_temporalr    s    
 C<D	xG$$ J|Cd+++33D99:|Cdwz:::BB4HHI /7CCCF"288SE8#@#@AAH#FH55555r3   c                   | j         }t          j                            |           r*t	          j        d|                              |          }n/t	          j        d|| j                                      |          }t          t          
                    g d|                     }|                                }||d d <   t          t          
                    g d|                     }t          j        ||           d S )Nr?   rT  r  r  r}  )r?   r?   r?   )r  r-   rX   r`   re   rn  rL  r  r   r$   rf   rI  r   r   r   r  r^  r   r   r   s         r1   test_setitem_temporalr    s    
 <D	xG$$ Fl14(((0066l14GJ777??EE
bhhyyywh??
@
@CXXZZFF111I"288IIIG8#D#DEEH#FH55555r3   c                B   t          t                              g d|                     }| j        }|t	          j        d|                              |          z
  }t          t                              g d|                     }t          j        ||           d S )Nr  r}  r?   rT  )r   r?   r;   )	r$   r-   rf   r  re   rn  rL  r   r   )r   r0   r   r  r   r   s         r1   test_arithmetic_temporalr    s    
 bhhyyywh??
@
@C<D2<---55d;;;F"288IIIG8#D#DEEH#FH55555r3   c                   | j         }t          j                            |           r*t	          j        d|                              |          }n/t	          j        d|| j                                      |          }t          t          
                    g d|                     }||k    }t          t          
                    g dt                                                              }t          j        ||           d S )Nr?   rT  r  r  r}  )FTT)r  r-   rX   r`   re   rn  rL  r  r   r$   rf   r  r   r   r  s         r1   test_comparison_temporalr    s    
 <D	xG$$ Fl14(((0066l14GJ777??EE
bhhyyywh??
@
@C3YF"288,?,?,?bhhjj8#Q#QRRH#FH55555r3   c                (   t          t                              g d|                     }|d         }t          j                            |           rPt          j        d| j                                      | j                  }t          |t
          j                  sJ nUt          j
        d| j        | j                                      | j                  }t          |t
          j
                  sJ |j        |j        k    sJ ||k    sJ d S )Nr  r}  r?   r;   rT  r  )r$   r-   rf   rX   r`   re   rn  r  rL  r   r  r   r   r   r   r   s       r1   test_getitem_temporalr    s    
 bhhyyywh??
@
@CVF	xG$$ 0<555==glKK&",//////<DDDLLL
 
 &",/////;(-''''Xr3   c                   t          t                              dd g|                     }t          |          }t          j                            |           rbt          j        d| j                  	                    | j                  t          j
        g}t          |d         t          j                  sJ ngt          j        d| j        | j                  	                    | j                  t          j
        g}t          |d         t          j                  sJ |d         j        |d         j        k    sJ ||k    sJ d S )Nr?   r}  rT  r   r  )r$   r-   rf   r   rX   r`   re   rn  r  rL  rX  r   r  r   r  s       r1   test_iter_temporalr    s"   
 bhh4ywh??
@
@C#YYF	xG$$ 3L...66w|DDE
 &)R\222222 L'*===EEglSSE
 &)R\22222!9>Xa[-----Xr3   c                    t          j        | d d         g d          }|                    d                                          }t          j        ddgdd	d
g          }t	          j        ||           d S )Nr  )rL   rL   rM   r  r   )levelr;   r?   r   rL   rM   r  )re   r   groupbysizer   r   r,  s       r1   'test_groupby_series_size_returns_pa_intr    sy    
)D!HOOO
4
4
4C[[q[!!&&((Fy!Q'7SzJJJH68,,,,,r3   c                   t          t                              dd g|                     }|                    |          }t          j                            |           r4t          j        d| j                  	                    | j                  }n9t          j
        d| j        | j                  	                    | j                  }|t          k    s&t          j                            |           ra| j        Z|t          k    rt          j        }nt          j        }t!          j        ||gt                    }|d         j        |j        k    sJ n|                                                     d| j                  }|                                }t!          j        ||g          }t!          j        |d                   d         | j        k    sJ t)          j        ||           d S )Nr?   r}  rW   rT  r  r   nat)r$   r-   rf   r   rX   r`   re   rn  r  rL  r  r   r   r_   rX  r  r   to_pandas_dtyperk   datetime_datar   r   )r   r9   r   r   rJ  r  r   s          r1   test_to_numpy_temporalr    s    bhh4ywh??
@
@C\\\&&F	xG$$ XQW\222::7<HHQW\gjAAAII',WW280099gj>TF??BBB8UBKv666ay~+++++$$&&++E7<@@  8UBK((q	**1-====11111r3   c                   t          j        ddg| | d          }|                    d                                          }t          j        ddggt          j        dgd          ddgd          }t          j        ||           d S )	Nr?   )rt   ru   rv   rt   r  ru   rv   r   )rY  r  r9   )re   r\  r  r  Indexr   r_  )rm   r`  r   r   s       r1   %test_groupby_count_return_arrow_dtyper  )  s    	QFLII	J	JBZZ__""$$F|
Qhs%%%c
	  H &(+++++r3   c            	         t          j        ddgddggt          t                              t                                          d                              } | j        j        }|t          k    sJ d S )Nr?   r;   r  rq   )	list_sizerW   )	re   r   r   r-   rx  r*  r9   rk   r   )r   r   s     r1   test_fixed_size_listr  5  sf    
)
Q!Q
288BHHJJ!8+L+L M M  C Y^FT>>>>>>r3   c            	         t          j        t          j        dd          dgt          t	          d                              } t          |           }d}||k    sJ d S )N2012r  )rj  r^  r$  r
  z#     col
0  15340
1  15341
2  15342)re   r\  period_ranger   r%   r  r`  r   r   s      r1   'test_arrowextensiondtype_dataframe_reprr  >  sm    	
***--..
 
 
B
 "XXF 8HXr3   c                     t          j        dd gd          } |                     d d          }t          j        dd gd          }t          j        ||           d S )Nr;   r   rW   r  )ry     )re   r   powr   r   )kr   r   s      r1   test_pow_missing_operandr  L  sb    
	1d)#3444AUU4AU&&Fy!T*:;;;H68,,,,,r3   c            	     n   t          j        dgt          t                                                              } t          j        t          j        j        d          5  | 	                    t          t          
                    dd                               d d d            d S # 1 swxY w Y   d S )N1.2345rW   z3Rescaling Decimal(128)? value would cause data lossr   r?   r   )re   r   r   r-   r   r*   r(   r   r.   r   r  r  s    r1   test_decimal_parse_raisesr  T  s    
)XJj&=&=
>
>
>C	
#X
 
 
 4 4 	

:bmmAq11223334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s   !<B**B.1B.c                 h   t          j        dgt          t                                                              } t          t                              dd                    }|                     |          }t          j        t          d          g|          }t          j	        ||           d S )Nr  rW   rK   rq   )
re   r   r   r-   r   r  r   r   r   r   )r   r9   r   r   s       r1   test_decimal_parse_succeedsr  ]  s    
)XJj&=&=
>
>
>Cr}}Q**++EZZFy'(++,E:::H68,,,,,r3   c                T   t          j        d dgt          |                     }t          j        t          j        ddgd| j         d                    }|                    |          }t          j        ddgt          |                     }t          j        ||           d S )Nr;   rW   r?   r  zm8[r  )	re   r   r   r   rf   r  rE  r   r   )r   ser1r  r   r   s        r1   test_duration_fillna_numpyr  f  s     9dAYj&9&9:::D9RXq!f,A',,A,A,ABBBCCD[[Fy!Qz'':':;;;H68,,,,,r3   c                     t          j        dgd          } t          j        d gd          }t          j        t          j        j        d          5  | |k      d d d            d S # 1 swxY w Y   d S )Nl            r  rW   r   zInteger valuer   )re   r   r*   r(   r-   r   r.   r  s     r1   +test_comparison_not_propagating_arrow_errorr  p  s    
	7)#4555A
	4& 0111A	rv*/	B	B	B  	A                 s   A((A,/A,c                 X   t                               t                               dg                                          t                               dg                                          g          } t	          j        t          |                     }|                                \  }}t          j        ddgt          j	                  }t	          j
        t          |                                                     }t          j        ||           t          j        ||           d S )NrL   rM   r   r?   rW   )r-   r  rf   dictionary_encodere   r   r$   	factorizer   intpr  r   r   r   assert_index_equal)r   r   res_indicesres_uniquesexp_indicesexp_uniquess         r1   !test_factorize_chunked_dictionaryr  x  s    	3%	*	*	,	,bhhuoo.O.O.Q.QR H )'11
2
2C"}}K(Aq6111K(.x/F/F/H/HIIJJK[999+{33333r3   c            
     4   t          j        dt           j        gt          t                              t                                          t                                                                        } |                     d          \  }}t          j        ddgt          j
                  }t          j        dd gt          t                                                              }t          j        ||           t          j        ||           d S )Nr  rW   F)use_na_sentinelr   r?   )re   rf   rX  r   r-   r  r  rk  r	  r   r
  r   r   r   r   )r   indicesuniquesexpected_indicesexpected_uniquess        r1   !test_factorize_dictionary_with_nar    s    
(	ruZbhhjj"''))(L(LMM  C }}U};;GWxAbg666xtJryy{{4K4KLLL)9:::#G-=>>>>>r3   c                    t                               t          j        g d                                                    t                               t          j        g d                                                    g} t	          j        t          t                               |                               }|                    d          }t	          j	        g dt          t                                                               }t	          j        g dt	          j        |                    }t          j        ||           d S )N)rL   r   rr   rL   )rL   r  rr   category)rL   r   rr   r  rW   )rL   r   rr   rL   rL   r  rr   )
categories)r-   rf   r   r  re   r   r$   r  r   r  r   r   CategoricalDtyper   r   )arrsr   r   r  r   s        r1   "test_dictionary_astype_categoricalr    s    	...//00BBDD
///**++==??D )'(8(8(>(>??
@
@CZZ
##F...j6M6MNNNJy+++!Z888  H 68,,,,,r3   c                     t          j        dgd          } t          j        dgd          }t          j        dgd          }| |z  }t          j        ||           d S )Nir   rW   rq   r@   r  )rL   rM   r   r   s       r1   test_arrow_floordivr    si    
	2$.///A
	1#-...Ay"%5666H!VF68,,,,,r3   c                     t          j        dgd          } t          j        dgd          }| dz  }t          j        ||           d S )Nl     ^ \K r   rW   l    \p/i@B r  )rL   r   r   s      r1    test_arrow_floordiv_large_valuesr!    sT    
	&'/?@@@Ay-0@AAAH)^F68,,,,,r3   r   r  c                h    t          j        dg|           }|dz  }t          j        ||           d S )N   rW   r?   r  )r9   rL   r   s      r1   )test_arrow_floordiv_large_integral_resultr$    s>     		$%U333A!VF61%%%%%r3   c                    t          |           }t          j        dg|          }|dz  }t          j        dg|          }t          j        ||           d S )NirW      rA   )r   re   r   r   r   )r   r9   rL   r   r   s        r1   "test_arrow_floordiv_larger_divisorr'    s_     wE
	3%u%%%A"WFy"U+++H68,,,,,r3   c                   t          j        |                                           j        }t	          j        |gt          |                     }t          j        t          j
        j        d          5  |dz   d d d            n# 1 swxY w Y   t          j        t          j
        j        d          5  |dz   d d d            d S # 1 swxY w Y   d S )NrW   zoverflow|not in ranger   rA   zdivide by zeror   )r   iinfor  r  re   r   r   r*   r(   r-   r   r.   )r   	min_valuerL   s      r1   $test_arrow_floordiv_integral_invalidr+    sA    0022337I
	9+Z%8%8999A	rv*2I	J	J	J  	R              	rv*2B	C	C	C  	Q                 s$   5BBB7C

CCc                    t          j        dg|           }|dz  }t          j        t          d          g|           }t          j        ||           d S )Nr;   rW   r   inf)re   r   r  r   r   )r9   rL   r   r   s       r1   &test_arrow_floordiv_floating_0_divisorr.    sX     		1#U###A!VFy%,,u555H68,,,,,r3   )r   r+  rv  c                    t          j        dd gd          }|                    |           }t          j        dd g|           }t          j        ||           d S )Nr?   r   rW   rZ  r  s       r1   (test_astype_int_with_null_to_numpy_dtyper0    s_     )QI%5
6
6
6CZZFy!T%000H68,,,,,r3   c                
   t          j        |                                           j        }t	          |           }t          j        |g|          }t          j        dg|          }||z  }t          j        ||           d S )NrW   r?   )	r   r)  r  r  r   re   r   r   r   )r   	max_valuer9   rL   rM   r   s         r1   )test_arrow_integral_floordiv_large_valuesr3    s}     0022337IwE
	9+U+++A
	1#U###A!VF61%%%%%r3   c                    t          j        dg|           }t          j        dg|           }t          j        dgd          }||z  }t          j        ||           d S )Nr   rW   r#  r  r  r9   rL   rM   r   r   s        r1   &test_arrow_true_division_large_divisorr6    sk     		1#U###A
	$%U333Ay!$6777HUF68,,,,,r3   c                    t          j        dg|           }t          j        dg|           }t          j        dg|           }||z  }t          j        ||           d S )Nr   rW   r#  r  r5  s        r1   'test_arrow_floor_division_large_divisorr8    sj     		1#U###A
	$%U333Ay!E***H!VF68,,,,,r3   c                 (   g d} t          j        | d          }t          j        |                               d          }t          j        t	          t
                              |d                              }t          j        ||           d S )N)2020-01-01 04:30:00z2020-01-02 00:00:00z2020-01-03 00:00:00ztimestamp[s][pyarrow]rW   r  Tfrom_pandas)	re   r   rd  rL  r$   r-   rf   r   r   )string_datesr   pd_resr   s       r1   $test_string_to_datetime_parsing_castr?     s    XXXLY|+BCCCF^L))11#66Fy,RXXf$X-O-OPPQQH68,,,,,r3   c                8   | j         j        st          j        |           }t	          j        d|j          d          }t          j        t          |          5  t          j        |           	                                 d d d            d S # 1 swxY w Y   d S d S )NzCannot interpolate with z dtyper   )
r9   r'  re   r   reescaper*   r(   r   interpolate)rh   r   r3  s      r1   test_interpolate_not_numericrD  
  s    :! *iooiD39DDDEE]9C000 	* 	*IdOO'')))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	** *s   'BBBr  c                    t          j        g d|           }|                                }t          j        g d|           }t          j        ||           d S )N)Nr?   r;   Nrq   NrW   )Nr?   r;   r  rq   N)re   r   rC  r   r   r  s       r1   test_interpolate_linearrF    s`    
)///u
=
=
=C__Fy111???H68,,,,,r3   c                     dg} t          j        | d          }t          j        t          t                              t          dddd          gd	                              }t          j        ||           d S )
Nz11:41:43.076160ztime64[us][pyarrow]rW   r  )   +   i) Tr;  )re   r   r$   r-   rf   r   r   r   )string_timesr   r   s      r1    test_string_to_time_parsing_castrK    sw    %&LY|+@AAAFyBHHd2r2u&=&=%>DHQQRR H 68,,,,,r3   c                     t          j        g dd          } |                     d          }t          j        ddt          j        gd          }t          j        ||           d S )Nr   (   Nr_  rW   r   r   rN  )re   r   r   r   r   r   r   r[  s      r1   test_to_numpy_floatrO  $  sb    
)NNN*:
;
;
;CZZ	""Fy"b"&);;;H68,,,,,r3   c                     t          j        dgd          } |                     t          j                  }t          j        dg          }t          j        ||           d S )Nr:  timestamp[ns][pyarrow]rW   l    P)#-/ )re   r   r   r   r*  rf   r   r   r[  s      r1   test_to_numpy_timestamp_to_intrR  ,  s\    
)*+3K
L
L
LC\\\))Fx,-..H11111r3   
arrow_typec                   t          j        dddgid          }t          t                              t                                          |                     }|                    d|i          }|j        j        d         |k    sJ d S )NrL   r   rv  r  rW   r   )	re   r\  r   r-   r  r  r   dtypesr  )rS  r`  	data_typer   s       r1   *test_cast_dictionary_different_value_dtyperW  4  sz    	sS#J'/@	A	A	AB2==Z@@AAIYYY'((F=a I------r3   c                "   t          j        g dd          }|                    d d          }| s$t          j        ddt           j        gd          }n#t          j        ddt          j        gd	          }t          j        ||           d S )
NrM  r   rW   c                    dS )N*   r   r   s    r1   r   z,test_map_numeric_na_action.<locals>.<lambda>>  s    r r3   r   r   g      E@r   r   )re   r   r   rX  r   r   r   r   )r   r   r   r   s       r1   test_map_numeric_na_actionr[  <  s    
)NNN*:
;
;
;CWW\\XW66F D9dD"%0AAA9dD"&1CCC68,,,,,r3   c                    t          j        dddgit          t                              t                                          t                                                                        } |                     d          }t          j        ddgt           j	        
                    t          j        ddgt          t                                                    d          g          d	d
          }t          j        ||           d S )Nrt   r  r  rW   Fr&  r?   )r9   r  r  r*  )rY  r  r9   )re   r\  r   r-   r  r  rk  rn  r   
MultiIndexfrom_arraysr  r   r   r   r  s      r1   &test_categorical_from_arrow_dictionaryr_  F  s    		tTl:bmmBHHJJ		.R.R#S#S
 
 
B __E_**Fy	
Am''XtTl*RYY[[*A*ALLLM
 
   H 68,,,,,r3   z(pa.json_ was introduced in pyarrow v19.0r   c                     t          t                              t                                                              } | j        }|t
          k    sJ d S r   )r   r-   json_r   rk   r   )r9   r   s     r1   test_arrow_json_typerb  W  s=    
 rxx		,,--EZFS======r3   c            	        t          j        d          t          d          g} d}t          j        t
          |          5  t          j        |            d d d            n# 1 swxY w Y   t          j        t
          |          5  t          j        | t          t          
                    d                               d d d            d S # 1 swxY w Y   d S )Nz2016-01-02 03:04:05NaNz8<class 'decimal.Decimal'> is not convertible to datetimer   rU  rW   )re   r  r   r*   r(   r   rd  rf   r   r-   r  )valsr3  s     r1   &test_timestamp_dtype_disallows_decimalrf  a  sB    L.//@D
DC	y	,	,	,  
t               
y	,	,	, = =
ZT(:(:;;<<<<= = = = = = = = = = = = = = = = = =s$   A""A&)A&<CCCc                     d} d}t          j        d          }t          j        |g|          }t          j        |g|                               d          }t	          j        ||           d S )Nzdatetime64[ns, US/Eastern]rc  z2025-07-03 18:10rW   r#   )rP  )re   r  r   convert_dtypesr   r   )dtype1dtype2tsr   r   s        r1   (test_timestamp_dtype_matches_to_datetimerl  o  sr    )F1F	(	)	)BYt6***Fy"V,,,;;);TTH68,,,,,r3   c                     t          j        dgd          } |                     d          }| |k    }t          j        dgd          }t          j        ||           || k    }t          j        ||           d S )N
2016-01-01rQ  rW   r+  Tr   rZ  )r   r   r   r   s       r1   !test_timestamp_vs_dt64_comparisonro  |  s    9l^+CDDDDKK())EU]Fy$777H68,,,d]F68,,,,,r3   c                 N   t          j        dgd          } |                     d          }|d         }| d         }| |k                                    rJ || k                                    rJ ||k                                    rJ ||k                                    rJ d S )Nrn  date32[pyarrow]rW   rQ  r   )re   r   r   r  )r   r  rk  r  s       r1   (test_date_vs_timestamp_scalar_comparisonrr    s    
)\N*;
<
<
<C::.//D	aB	QB r	     c	      
!!!!!d
!!!!!!!r3   c                 (   t          j        dgd          } |                     d          }|                     d          }| |k                                    rJ || k                                    rJ | |k                                    sJ || k                                    sJ | |k                                    rJ || k                                    rJ | |k                                    sJ || k                                    sJ d S )Nrn  rq  rW   rQ  r+  )re   r   r   r  r  )r   r  r  s      r1   'test_date_vs_timestamp_array_comparisonrt    s%    )\N*;
<
<
<C::.//D::&''Dt  """""  """""4KCKt  """""  """""4KCKr3   c                @   t          j        g dd          }|t          j        z
  }| r)|                                                                sJ n(|                                                                rJ |t          j        z  }| r)|                                                                sJ n(|                                                                rJ |dz  }| r|                                d         sJ d S |                                d         rJ d S )NrA   r   r?   r   rW   r   r?   )re   r   r   r   rD  r  r  )r   r   r   s      r1   test_ops_with_nan_is_narw    s   
)JJJ&6
7
7
7C26\F '{{}}  """""";;==$$&&&&&26\F '{{}}  """""";;==$$&&&&&1WF ${{}}Q;;==######r3   c                d   t          j        g dd          }| r,t          j        |d<   |                                d         sJ nNd}t          j        t          j        j	        |          5  t          j        |d<   d d d            n# 1 swxY w Y   t          j        dt          j        dgd          }| rY|                                d         sJ |d         t           j
        u sJ t          j        |d<   |d         t           j
        u sJ d S |                                d         rJ t          |d         t                    sJ t          j        |d                   sJ t          j        |d	<   t          |d	         t                    sJ t          j        |d	                   sJ d S )
Nrv  r   rW   r?   z@Could not convert nan with type float: tried to convert to int64r   rA   r  r;   )re   r   r   r   rD  r*   r(   r-   r   r.   rX  r   r  isnan)r   r   r3  s      r1   test_setitem_float_nan_is_narz    s   
)JJJ&6
7
7
7C Axxzz!}}P]26.c::: 	 	VCF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 )RO+=
>
>
>C  xxzz!}}1vA1v 88::a=   #a&%(((((xAA#a&%(((((xAs   .B

BBc                     t          j        d d gd          } |                     d          }t          j        t           j        t           j        gd          }t	          j        ||           d S )Nr  rW   r;   )re   r   r  rX  r   r   )r  r   r   s      r1   test_pow_with_all_na_floatr|    sb     		4,&8999AUU1XXFy"%/ABBBH68,,,,,r3   c                    t          j        t          d          d          } t          j        t          d          d          }t          j        g dd          }| |z  }t          j        ||           || z  }t          j        ||           | |k    }t          j        dgdz  d          }t          j        ||           || k    }t          j        ||           d S )NrK   r   rW   r  )r   r?   rq   r  r/  Tr   )re   r   r   r   r   )r   r   r   r   r  result3r  result4s           r1   *test_mul_numpy_nullable_with_pyarrow_floatr    s    9U1XXY///DIeAhh&8999Ey)))1CDDDHE\F68,,,dlG7H--- emG	4&1*O<<<I7I...tmG7I.....r3   ztype_name, expected_size))r  r?   )int16r;   )r  rq   )r*  r  )uint8r?   )uint16r;   )uint32rq   )r+  r  )float16r;   )rp  rq   )r   r  )r  r?   )r  rq   )r  r  )r  r  )time32rq   )r  r  )r  r/  )
decimal256r   c                .   t                               d          t                               d          t                               d          t                               dd          t                               dd          d}| |v r|                    |           }n t          t           |                       }t          |          }| dk    r|j	        j
        }|j
        |k    s/J |  d| d	|j
         d
t          |j        dd           d            d S )NrV  r  r  rJ   L   )r  r  r  r  r  r  z
 expected z, got z (bit_width=r   zN/A))r-   r  r  r  r  r  r  r   r   numpy_dtypeitemsizer7   )	type_nameexpected_sizeparametric_type_maprS  r9   s        r1   %test_arrow_dtype_itemsize_fixed_widthr    s,   D \\$''))C..))D//mmB++mmB++  '''(,,Y77

+WR++--
z""EG)2>]*** 	J 	J 	J 	JU^ 	J 	Je1;FF	J 	J 	J +****r3   r  )r   r	  large_stringc                     t          t          |                       }t          |          }|j        |j        j        k    sJ d S r   )r   r-   r   r  r  )r  rS  r9   s      r1   (test_arrow_dtype_itemsize_variable_widthr  :  sG     (Y''))Jz""E>U.7777777r3   c                     t          j        g d          } | j        }t          d          }|                    |g          }|j        j        }t          j        	                    |          sJ d S )Nr  rW   rd  )
re   r   rf   r   r  r9   r7   r-   rX   r]   )r   r   itemr   r   s        r1   %test_cast_pontwise_result_decimal_nanr  D  sj    
)B0
1
1
1C
)C5>>D''//Fl(G8w'''''''r3   c                    t          j        dt           j        gd          } t          j        |           }t          j        t          j        d          t           j        gd          }t          j        ||           d S )Nr  r  rW   )re   r   rX  r   sinr   r   r[  s      r1   test_ufunc_retains_missingr  P  sg    
)S"%L(:
;
;
;CVC[[Fy"&++ru-5GHHHH68,,,,,r3   )r   r  r  r   r   c                6   d|  d}t          j        t          d          t          d          g|          } t          ||                      }t	          |t           j                  sJ | d|  dt          |                       |j        | k    sJ d S )	NrU  rV  r?   )ri  r;   rW   r  
 returned )re   r   r   r   r   rn  rk   r  r  rK  r9   r   r   s        r1   #test_duration_reduction_consistencyr  Z  s     )(((E
)Yq)))9Q+?+?+?@
N
N
NC!WS&!!##Ffbl++  6666V66 + ;$r3   )r  r  r   c                :   d|  d}t          j        t          ddd          t          ddd          g|          } t          ||                      }t	          |t           j                  sJ | d|  dt          |                       |j        | k    sJ d S )	Nr_  rV  r  r?   r  rW   r  r  )re   r   r   r   r   r  rk   r  r  s        r1   $test_timestamp_reduction_consistencyr  f  s     *)))E
)XdAq))8D!Q+?+?@
N
N
NC!WS&!!##Ffbl++  6666V66 + ;$r3   (+  r  
__future__r   r   r   r   r   decimalr   ior	   r
   r  rL  rA  rr  numpyr   r*   pandas._libsr   pandas._libs.tslibsr   pandas.compatr   r   r   r   r   r   r   pandas.compat.pyarrowr   pandas.errorsr   pandas.core.dtypes.commonr   pandas.core.dtypes.dtypesr   r   pandasre   pandas._testing_testingr   pandas.api.extensionsr   pandas.api.typesr   r   r   r   r   r   r    r!   pandas.tests.extensionr"   importorskipr-   pandas.core.arrays.arrow.arrayr$   (pandas.core.arrays.arrow.extension_typesr%   r2   fixtureALL_PYARROW_DTYPESr   r9   rh   rm   ro   rw   r{   r~   r   ExtensionTestsr   r  r+   r  ALL_INT_PYARROW_DTYPESr  r  r  r  r  r  r"  r+  r.  r	  byteslarge_binaryr  rx  r*  r   
large_listmap_r   structr  dictr  r5  r<  r?  rA  rC  rE  rG  rI  rS  rW  r\  ra  rd  rf  r   rk  rn  rq  ru  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  compiler  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r!  r,   r  r'  r)  r1  r7  rL  rT  rV  r_  re  rj  ru  ry  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r"  r'  r-  r1  r4  r6  r<  r  rA  rD  rG  rJ  rM  r\  ra  re  rg  ro  rr  rx  r  r  r  r  r  r  r  r  r  r  r  FLOAT_PYARROW_DTYPESr  TIMEDELTA_PYARROW_DTYPESr  DATETIME_PYARROW_DTYPESr  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r$  SIGNED_INT_PYARROW_DTYPESr'  r+  FLOAT_PYARROW_DTYPES_STR_REPRr.  r0  r3  r6  r8  r?  rD  rF  rK  rO  rR  rW  r[  r_  skipifrb  rf  rl  ro  rr  rt  rw  rz  r|  r  r  r  r  r  r  r  r   r3   r1   <module>r     s$    # " " " " "                           				 



            ) ) ) ) ) )                  7 6 6 6 6 6 ( ( ( ( ( ( 2 2 2 2 2 2       
           , , , , , ,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ( ' ' ' ' 'V## > > > > > > D D D D D D	" 	" 	" 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 
 
 
 
 
 
   tO tO tO tO tOT( tO tO tOn^1 ^1 ^1 ^1 ^1 ^1 ^1 ^1B B$=>>- - ?>-0C C C  + + +5 5 57 7 7 III  cC:%677F1 F1 87 F1R 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1 1 1( ( (; ; ; 2 2 2- - -, , ,2 2 2&
2 
2 
2 #."&)A6(JKK2 2 LK22 2 2
2 
2 
26 6 6.  .- - -Q Q Q- - -  ", , ,  455- - 65-& & & (7G*<vx>PQ - - -# # # 	udED$<0	tT55$-0	udED$<0	eT4$6	dD$6	 	- -	 	-' ' '- - - 	tT#6#6#67	sE#8#8#89	S$ 4 4 45	T4!4!4!45	.@.@.@A	_d,>,>,>?	r4!5!5!56	R3334	 - - - !;<<- - =<- ZRZ__}vuo|L " "	 " 	c2uvtn-	c1efd^,	#r4&$0 - - -- - -/ / /&  - - - 	udT4L)	tTE4=)	tTE4=)	udT4L)	eTD$<0	dD5$-0
 
- -
 
-  
t7778	d7778	tT6667	ud7778	eT#=#=#=>	dD"="="=>	8889	5$ : : :;	t8889	4:::;	d$>$>$>?	$&@&@&@A	 *- -+ *- $	q$D	288::.	q!aY

+	q!b$Z,	r2Dz288::.	 - - -- - -- - -- - -- - - ";";";<< 9 9 9:: > > >??. . @? ;: =<.- - - 	
		
		
	 	- -	 	- J   - -	 -- - - 	q$t%	q!dD\"	
Aq4,	tR&$(	 - - - 	
AsVTN#	q#t}%	q$t% - - -    !!!   !!!!!!"""   !!!"""###%%%&&&   !!!% .- -/ .- 	y!	)	Y	)	)	Y
 
- -
 
-- - -          
 
- -
 
- 5 122- - 32- 5 122- - 32- Hh#788	F5112TQ 	
	 
   - -  98- 1a&))- - *)- GX#677	
D		
A 4 4  874 %11- - 21- 	
D		
A - - -- - -- - -, , ,- - -6 Hg#677- - 87-%, %, %,P, , ,D% % % D%=11	, 	, 21	,- - - !8!8!8996 6 :96   		
		a	A		a		1			!	q	A	1	dAq!!"	aAt$$%# ,- -- ,-6 55- - 65-*- - -&- - -&- - -& O]#CDD- - ED-- - -. $..- - /.- :::;;0 0 <;0, , , Z*\9,EF - - -- - - #=#=#=>>	9 	9 ?>	9 #=#=#=>>	& 	& ?>	& !I!I!IJJ#=#=#=>>- - ?> KJ-
- 
- 
- r2h//  0/	5 	5 	5- - - $..- - /.-  	((A2AFFFG	<2<(GHHI - - -! ! !
- 
- 
- $..
- 
- /.
- #;=T"UVV- - WV-    "
- 
-# "
-   
 
9 9
 
9( $;$;$;<<P P =<P"   		A			 - - -*- - -*2 2 2$, , ,>, , ,8 D%=11  21L L L&- - - 8->"?@@* * A@*    0   ( ( (/ / / 
r(()
sR__&&' 6 6 6, , , B$=@W$WXX	- 	- YX	- B$?@@	- 	- A@	- B$>??- - @?-  r)B,GG   G G G- - -; ; ; r)B,GG 6 6 6 r)B,GG 6 6 6  r)B,GG 6 6 6 r)B,GG 6 6 6 r)B,GG     r)B,GG   (- - - r)B,GGT    4.112 2 21 22	, 	, 	,    - - -4 4 4- - - B$?@@- - A@-  
4 
4 
4	? 	? 	?- - - - - -- - - #35F"GHH& & IH& B$@AA- - BA- B$@AA  BA ""BCC- - DC- "R"R"RSS- - TS- B$=>>& & ?>& #35F"GHH- - IH- #35F"GHH- - IH-- - -* * * #35G"HII- - JI-- - -- - -2 2 2 (9(9299;;'GHH. . IH.- - -- - -" !K     = = =
- 
- 
-
- 
- 
-" " "$  $$ $ $.     <- - -/ / /,    < = <4 &J&J&JKK8 8 LK8	( 	( 	(- - - #J#J#JKK  LK #;#;#;<<  =<  r3   