
    Pi                   <+   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$m%Z% ddl&Z'ddl(m)Z* ddl+m,Z, ddl-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5 ddl6m7Z7  ej8        d          Z9ddl:m;Z; ddl<m=Z= d Z> ej?        e*j@        eA          d             ZBej?        d             ZCej?        d             ZD ej?        ddg          d             ZEej?        d             ZFej?        d             ZGej?        d             ZHej?        d             ZI G d  d!e7jJ                  ZK G d" d#          ZLejM        N                    d$e*jO                  d%             ZPd& ZQd' ZRd( ZSd) ZTd* ZUejM        N                    d+g d,          ejM        N                    d-d.d.d.gg          d/                         ZVejM        N                    d0g d1d2dggg d3dgggd4d5g6          d7             ZWd8 ZXejM        N                    d9e9Y                                eZge9Y                    d:          eZge9[                                eZge9\                                eAge9]                    e9^                                          e_ge9`                    e9^                                          e_ge9a                    e9b                                e9^                                          e_ge9c                    d;e9d                                fd<e9b                                fg          eege9f                    e9^                                e9^                                          e%gg	          d=             Zgd> Zhd? Zid@ ZjdA ZkdB ZldC ZmdD ZndE ZodF ZpdG ZqdH ZrdI ZsdJ ZtejM        N                    dKej,        eju        fdLg          dM             ZvdN ZwdO ZxdP ZydQ ZzdR Z{dS Z|dT Z}dU Z~dV ZejM        N                    dWdXdYg          dZ             Zd[ ZejM        N                    d\d]d^gd_d`gdadbgg          dc             Zdd ZejM        N                    dedfdgddgdhdggdidhddgdgdggdfdgdhdgdhdhggdjdgddhdhdggdkdhddhdgdggg          dl             Zdm ZejM        N                    dndodfdg dpgdodqdgg drgdsdqdhg dtgdsdudg dpgdodvdg dwgdsdxdg dwgdodydg dzgdsdydg dzgg          d{             ZejM        N                    d|d}          d~             ZejM        N                    ddW ej        dq          gdeAgddggddgg          d             ZejM        N                    dddddgddggddddgddggddddhddggg          d             Zd Zd Zd ZejM        N                    ddfdgddhdggdidhddgdggdudhddgdggdfdgdhdhdhggdjdgddhdggdkdhddgdggg          d             ZejM        N                    ddXdgdg dgddhdg dgdudhdg dgdfdgdg dgdYdgdg dgdkdhdg dgddgdg dgddgdg dgddhdg dgddhdg dgddhdg dgddhdg dgg          d             ZejM        N                    ddfddddge9                                gduddddge9^                                gdfddddge9^                                gdfddddge9^                                gg          d             Zd Zd Zd Zd ZejM        N                    dg d          ejM        N                    dg d          ejM        N                    dg d          d                                     Zd ZejM        N                    ddg dgdg dgdg dgdg dgd2g dgg          d             ZejM                            de          d             Zd ZejM        N                    dddddfdggddddfdggddddudggdddddgfg          d             ZejM        N                    ddddddggdddddggdddddggg          d             ZejM        N                    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jM        N                    dddgddgddgddgddgddgg          d             Zd ZejM        N                    dg dg dg dg dg dg dg          d             ZejM        N                    dddXg          d             ZejM        N                    dddXg          d             ZejM        N                    dddg          ejM        N                    ddddXdfddddfgddg6          d                         ZejM        N                    dddg          d             ZejM        N                    dddg          ejM        N                    d ddgdd2gg          d                         ZejM        N                    dddg          d             ZejM        N                    d ddgdd2gg          d             Zd Zd Zd	 Zd
 ZejM        N                    dddg          d             Zd Zd Zd ZejM        N                    ddhdgg          d             Zd ZejM        N                    dg d          d             Zd ZejM        N                    dddgddgddgddgddgddgd dgd!dgd"d2gd#dggd$d%gd&dgd'd(gd)dgd*d+gd, eddd          gd- edd2d+d%          gg          d.             ZejM        N                    d$g d/          d0             Zd1 Zd2 Zd3 ZejM        N                    dd4d5g          d6             Zd7 ZejM        N                    dd8d9g          d:             ZejM        N                    d;g d<          d=             Zd> ZejM        N                    d֐d?d@gdAdBgg          dC             ZdD ZejM        N                    dg dE          dF             ZejM        N                    dg dE          dG             ZejM        N                    dHg dI          ejM        N                    dg dE          dJ                         ZĐdK ZejM        N                    dLdMdNg          dO             ZƐdP ZǐdQ ZejM        N                    dd8d9g          dR             ZejM        N                    dSdT edddUdV          gdW e'j        dX          gg          dY             ZːdZ Z̐d[ ZejM        N                    dd8d9g          d\             ZejM        N                    d]d^d_g          d`             ZejM        N                    dag db          dc             ZejM        N                    dag dd          de             ZejM        N                    dfg dg          dh             ZҐdi ZejM        N                    ddjdgdkdgdldgdmd2gg          dn             ZԐdo ZՐdp Z֐dq Zאdr ZejM        N                    dsdhdgg          dt             Zِdu Zڐdv ZejM        N                    d]dwdxg          dy             Z G dz d{e;          Zݐd| Zސd} ZejM        N                    d~ddge9[                                fddqge9\                                fg          d             Zd ZejM        N                    d$e*jO        e*j        z             d             ZejM        N                    d$e*j                  d             ZejM        N                    d$e*j                  d             ZejM        N                    d$e*j        e*j        z             d             Zd Zd Zd ZejM        N                    d$e*j        e*j        z             d             ZejM        N                    d$e*j        e*j        z             d             ZejM        N                    d$e*j        e*j        z             d             ZejM        N                    d$e*j        e*j        z             d             ZejM        N                    d$e*j        e*j        z             d             ZejM        N                    d$e*j        e*j        z             d             Zd ZejM        N                    d$e*j        e*j        z   e6          ejM        N                    d]deg          d                         Zd Zd Zd Zd Zd Zd ZejM        N                    d$e*j                  d             Zd Zd Zd Zd Z d Zd ZejM        N                    d]ddg          d             ZejM        N                    d$e*j                  d             ZejM        N                    d$e*j                  d             ZejM        N                    d]e*j                  d             ZejM        N                    d]g d          d             Z	ejM        N                    d$e*jO                  d             Z
ejM        N                    d]ddg          d             ZejM        N                    d]ddg          d             Zd Zd ZejM        N                    d]ddg          d             Zd Zd Zd ZejM        N                    de9\                                e9b                                g          d             Zd Zd ZejM                            ed          d             Zd Zd Zd Zd Zd Zd Zd Zd Zd Z ejM        N                    dg d¢          dÄ             Z!ejM        N                    dg dŢ          dƄ             Z"dǄ Z#dȄ Z$ejM        N                    dg dɢ          dʄ             Z%ejM        N                    dg 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)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                      rPt                      rDt          j                            t
          j        d          }|                     |           d S d S d S )Nz_TODO: Set ARROW_TIMEZONE_DATABASE environment variable on CI to path to the tzdata for pyarrow.raisesreason)r   r   pytestmarkxfailpaArrowInvalidapplymarker)requestr*   s     u/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/extension/test_arrow.py_require_timezone_databaser1   K   st     "!2!4!4 "{  ?; ! 
 
 	D!!!!!" " " "    )paramsidsc                ,    t          | j                  S )N)pyarrow_dtype)r   param)r/   s    r0   dtyper8   W   s    GM2222r2   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   !   >r8   )r6   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)r8   pa_dtypedatas      r0   rg   rg   \   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&&&&r2   c                d    t          |                               d| d         g| j                  S )zLength-2 array with [NA, Valid]Nr   rV   type_from_sequencer8   )rg   s    r0   data_missingrl      s-     ::$$dDG_DJ$GGGr2   rg   rl   )r3   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.
    rg   rl   N)r7   )r/   rg   rl   s      r0   all_datarn      s1     }	.	(	( 
)	(r2   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?r@   r   r>   rI   rE   rF   rG   i  rD   rH      rK   rL   crP   rQ      cz-1.1rC   z1.1NrV   )r6   r,   rW   rX   rY   rZ   r[   r]   r   r^   r   r_   r   r`   r   ra   rb   r\   r   rc   rd   re   )r8   rf   ABCs        r0   data_for_groupingrv      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%@@@@r2   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      rp   rV   ri   rv   s    r0   data_for_sortingrz      K     !""11	1	035Fq5IJ% 2   r2   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:   rp   rV   ri   ry   s    r0   data_missing_for_sortingr}      r{   r2   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:   rI   rV   )
r8   r6   r,   rW   
is_integerrY   r\   r_   rd   re   rg   rf   s     r0   data_for_twosr     s     z'H
H%%48))4 8x((4 8))	4 xb
3333Kr2   c                  @    e 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dKdZej                            dddg           fd            ZdKdZdLdZej                            dddg           fd            ZdMd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                            d/d0e$g          ej                            d1d2d3g          d4                         Z% fd5Z&ej                            d6d7d8g           fd9            Z'd: Z(d;Z)d< Z*dNd=Z+d> Z,dOd@Z-dA Z. fdBZ/ fdCZ0dD Z1 fdEZ2dF Z3ej                            dGg dH          dI             Z4 fdJZ5 xZ6S )P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   ).0rK   rL   s      r0   
<listcomp>z=TestArrowArray._construct_for_combine_add.<locals>.<listcomp>  s     OOO6AqQOOOr2   T)strictrV   c                    g | ]}|z   S r   r   )r   rK   rights     r0   r   z=TestArrowArray._construct_for_combine_add.<locals>.<listcomp>"  s    ///qU///r2   )r8   r   
isinstancerj   rk   ziplist)selfleftr   r8   s     ` r0   _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/// '   r2   c                j    t          j        |          }|                     ||||d                    d S Nr   )rd   Series_compare_other)r   rg   comparison_opsers       r0   test_compare_scalarz"TestArrowArray.test_compare_scalar&  s3    iooC}d1g>>>>>r2   	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 Nr   xs    r0   <lambda>z)TestArrowArray.test_map.<locals>.<lambda>-       r2   r   rV   c                    | S r   r   r   s    r0   r   z)TestArrowArray.test_map.<locals>.<lambda>1  r   r2   float32[pyarrow]float64r8   na_value)	r8   kindmapto_numpyobjecttmassert_numpy_array_equalnpnan)r   rl   r   using_nan_is_naresultexpecteds         r0   test_mapzTestArrowArray.test_map*  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9r2   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)r8   r6   r,   rW   rb   r.   r)   r*   r+   r^   tzr_   supertest_astype_str)r   rg   r/   using_infer_stringrf   	__class__s        r0   r   zTestArrowArray.test_astype_str9  s   :+8h'' 	!!B(BBB "     
 $ 	X""8,,	191Dx##H-- 2E !!U "    
 	%%%%%r2   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   )r8   r6   r,   rW   ra   r\   r.   r)   r*   r+   r   test_from_dtype)r   rg   r/   rf   r(   r   s        r0   r   zTestArrowArray.test_from_dtypeL  s    :+8h'' 
	28+>+>x+H+H 
	x!!(++ KLJJJ!!! "    
 	%%%%%r2   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 NrV   )
rj   rk   	_pa_arrayr8   r   assert_extension_array_equalr   r,   ChunkedArraycombine_chunksr   rg   r   s      r0   test_from_sequence_pa_arrayz*TestArrowArray.test_from_sequence_pa_array[  s     d**4>*LL
'555&*BO<<<<<d**N))++4: + 
 
 	'555&*BO<<<<<<<r2   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-1rV   )r   r,   month_day_nano_intervalr)   r'   rc   r#   _from_sequence_of_strings)r   r/   r8   s      r0   *test_from_sequence_pa_array_notimplementedz9TestArrowArray.test_from_sequence_pa_array_notimplementedh  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   )r8   r6   r,   rW   r^   r   r1   r   caststringrj   r   r   r   r   )r   rg   r/   rf   pa_arrayr   s         r0   &test_from_sequence_of_strings_pa_arrayz5TestArrowArray.test_from_sequence_of_strings_pa_arraym  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5r2   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)
getattrr8   r6   r,   rW   is_temporal	bit_widthastyper   assert_series_equal)r   r   op_namer   r   pa_typeint_typer   s           r0   check_accumulatezTestArrowArray.check_accumulatez  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Cr2   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)
r8   r6   r,   rW   rb   r\   ra   rX   r   r_   )r   r   r   r   s       r0   _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tr2   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'   )r8   r6   r,   rW   ra   rd   r   r   r   test_accumulate_seriesrX   r\   r.   r)   r*   r+   	TypeErrorr   )	r   rg   all_numeric_accumulationsr   r/   r   r   r   r   s	           r0   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3r2   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   r8   r6   r,   rW   r   r_   rb   ra   rX   )r   r   r   r8   rf   s        r0   _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tr2   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   )
r8   r6   r,   rW   r   rY   r   r   r   assert_almost_equal)r   r   r   r   rf   altr   r   s           r0   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0r2   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&   )r8   r6   r)   r*   r+   r   r,   __version__rW   ra   rb   r.   r   test_reduce_series_boolean)	r   rg   all_boolean_reductionsr   r   r/   rf   
xfail_markr   s	           r0   r  z)TestArrowArray.test_reduce_series_boolean  s     :+[&&) ; ;>; ;08; ; ' 
 

 8h'' 	,28+=+=h+G+G 	, 
+++ww11$8NPVWWWr2   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   rj   r8   r,   rW   r   r_   r]   r   durationr`   unitnamer   
decimal128rX   ra   r   )r   arrr   r   r   	cmp_dtypes         r0   _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
 r2   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,   rW   r   r8   r6   rY   r.   r)   r*   r+   r   test_reduce_series_numeric)r   rg   all_numeric_reductionsr   r/   r   s        r0   r  z)TestArrowArray.test_reduce_series_numeric8  s     %		 '&00##DJ$<== 1 8''
(@AA 1 !!I "    
 ww11$8NPVWWWr2   c                    |}|dk    rHt           rA|j        j        r5t          j                            d          }|                    |           t                                          |||          S )Nr   zskew not implementedr   )	r   r8   _is_numericr)   r*   r+   r.   r   test_reduce_frame)r   rg   r  r   r/   r   r*   r   s          r0   r"  z TestArrowArray.test_reduce_frameK  sp    (f!5z% *{((0F(GG##D)))ww((/EvNNNr2   typ)int64uint64r   c                p    t          j        ddg| d                                          }|dk    sJ d S )Nr>   r:   	[pyarrow]rV         ?)rd   r   r   )r   r#  r   s      r0   test_median_not_approximatez*TestArrowArray.test_median_not_approximateT  sB     Aq6C):):):;;;BBDD}}}}}}r2   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   )r6   r,   rW   r\   r.   r)   r*   r+   rc   ra   r'   r   construct_from_stringr  r   #test_construct_from_string_own_name)r   r8   r/   rf   msgr   s        r0   r,  z2TestArrowArray.test_construct_from_string_own_nameZ  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&   )r6   r,   rW   ra   rj   is_dtyper  r\   r.   r)   r*   r+   rc   r   test_is_dtype_from_namer   r8   r/   rf   r   s       r0   r0  z&TestArrowArray.test_is_dtype_from_namen  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2r2   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   rj   r+  )r   r8   r-  s      r0   .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   )r6   r,   rW   r]   r`   r^   r   rb   r\   r.   r)   r*   r+   r   test_get_common_dtyper1  s       r0   r6  z$TestArrowArray.test_get_common_dtype  s    &HX&&	x))	 %%h//	 5=K4Kx!!(++ 5Lx""8,, 5L !!# > > > "     	%%e,,,,,r2   c                    |j         }t          j                            |          rt	          |          sJ d S t                                          |           d S r   )r6   r,   rW   ra   r   r   test_is_not_string_type)r   r8   rf   r   s      r0   r8  z&TestArrowArray.test_is_not_string_type  s[    &8h'' 	3"5)))))))GG++E22222r2   z6GH 45419: pyarrow.ChunkedArray does not support views.)r(   runc                J    t                                          |           d S r   )r   	test_viewr   rg   r   s     r0   r;  zTestArrowArray.test_view  s#     	$r2   c                    ||                                           }|d         }|                    |          }||usJ t          j        ||           d S r   )isnafillnar   r   )r   rg   validr   s       r0   test_fillna_no_op_returns_copyz-TestArrowArray.test_fillna_no_op_returns_copy  sZ    TYY[[L!QU##T!!!!
'55555r2   c                L   |                                 }d|_        |                    |d                   }|d         |d         k    sJ t          j        ||           |                    |d                   }|d         |d         k    sJ t          j        ||           d S )NTr>   r   )copy	_readonlyr?  r   r   )r   rl   rg   r   s       r0   test_fillna_readonlyz#TestArrowArray.test_fillna_readonly  s      "" \!_--ayLO++++
'l;;; \!_--ayLO++++
'l;;;;;r2   z5GH 45419: pyarrow.ChunkedArray does not support viewsc                J    t                                          |           d S r   )r   test_transposer<  s     r0   rG  zTestArrowArray.test_transpose  s#     	t$$$$$r2   c                J    t                                          |           d S r   )r   test_setitem_preserves_viewsr<  s     r0   rI  z+TestArrowArray.test_setitem_preserves_views  s#     	,,T22222r2   dtype_backendr"   enginerq   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_dtyperV   FNA)indexna_rep)r8   rK  rJ  )r8   r6   r,   rW   r\   r.   r)   r*   r+   rc   r^   r  
ValueErrorrb   rd   	DataFramer   r   to_csvr   r   r	   r
   read_csvr   assert_frame_equal)r   rK  rg   rJ  r/   r   rf   df
csv_outputr   r   s              r0   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/////r2   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)r8   r6   r,   rW   rX   r   ra   r.   r)   r*   r+   ArrowNotImplementedErrorr   r   assert_produces_warningDeprecationWarningr   test_invertr   rg   r/   rf   r   s       r0   rb  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&   )r8   r6   r,   rW   r[   r.   r)   r*   r+   r-   r   	test_diff)r   rg   rd  r/   rf   r   s        r0   rf  zTestArrowArray.test_diff  s    :+8''11 	gll!!?SXSSGSSS "     	$(((((r2   c                    |d d         }|                                 }|j        t          t                                                    k    sJ d S )NrI   )value_countsr8   r   r,   r$  r   s      r0   'test_value_counts_returns_pyarrow_int64z6TestArrowArray.test_value_counts_returns_pyarrow_int64  sI    CRCy""$$|z"((**55555555r2   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     r0   rl  z1TestArrowArray.get_op_from_name.<locals>.rtruediv  s    yA&r2   	rfloordivc                ,    t          j        ||           S r   )r   floor_dividero  s     r0   r   z1TestArrowArray.get_op_from_name.<locals>.<lambda>"  s    1 5 5 r2   )stripr   get_op_from_name)r   r   short_opnamerl  s       r0   ru  zTestArrowArray.get_op_from_name  sY    }}S)):%%' ' ' O[((555"7+++r2   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__)rS  columns)r   r   	get_dtyper   rd   rV  ilocrj   intr   floatr6   r   r,   rW   rY   r   r_   r^   r]   r\   re   _valuesr   r   r   r   r8   r   rS  r  )r   r   objotherpointwise_resultr   original_dtype	was_frameexpected_dataorig_pa_typepa_expectedr  	alt_dtypepd_expecteds                 r0   _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r2   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,   rW   r_   r   )r   opnamerf   s      r0   _is_temporal_supportedz%TestArrowArray._is_temporal_supported  so     11 WX 100/ $$X..
T //RBH4H4H4R4R
	Tr2   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  )rc   r   r   r  r6   r  r,   rW   ra   rb   rY   r   r\   )r   r   r  r  r8   rf   arrow_temporal_supportedexcs           r0   _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
r2   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,   rW   rY   r   r\   r)   r*   r+   r`   r_   r   r-   )r   r  rf   r*   r  s        r0   _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
 r2   c                0   |j         j        }|dk    r3t          j                            |          rt          j        d           |                     ||          }||                    |           t                      
                    ||           d S Nr  z%Skip testing Python string formatting)r8   r6   r,   rW   rb   r)   skipr  r.   r   test_arith_series_with_scalarr   rg   all_arithmetic_operatorsr/   rf   r*   r   s         r0   r  z,TestArrowArray.test_arith_series_with_scalar  s    :+#z11bh6H6H6R6R1K?@@@++,DhOO%%%--d4LMMMMMr2   c                n   |j         j        }|dk    rRt          j                            |          st          j                            |          rt          j        d           |                     ||          }||	                    |           t                                          ||           d S r  )r8   r6   r,   rW   ra   rb   r)   r  r  r.   r   test_arith_frame_with_scalarr  s         r0   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Lr2   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   rV   )r8   r6   r,   rW   r[   r.   r)   r*   r+   r-   r  rd   r   re   r  lencheck_opname)	r   rg   r  r/   rf   r*   r   r   r  s	            r0   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.....r2   c                   |j         j        }|                    d          rA|                    t          j                            t          j        d|                      t                      
                    |           d S )Nint8zraises on overflow for r&   )r8   r6   equalsr.   r)   r*   r+   r,   r-   r   $test_add_series_with_extension_arrayrc  s       r0   r  z3TestArrowArray.test_add_series_with_extension_array  s    :+??6"" 	!!??X?? "     	44T:::::r2   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'   rc   r   )r   rg   r   s      r0   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   NrV   r'  )FFN)TTN)rd   r   loweroperatorrz  r|  ry  r   r,   bool_r   r   )	r   r  r   rg   
ser_maskedser_par   expr   s	            r0   test_comp_masked_numpyz%TestArrowArray.test_comp_masked_numpy*  s     ||Yt<888
4,*<*<*>*>'I'I'IJJJvz22X[(+x{CCC&&&CC$$$C9S
288::(>(>???
vx00000r2   c                
   |j         j        }t          j                            |          r5t
          j                            d          }|                    |           t                      
                    |           d S )Nz4GH#62343 incorrectly casts to timestamp[ms][pyarrow]r   )r8   r6   r,   rW   r]   r)   r*   r+   r.   r   8test_loc_setitem_with_expansion_preserves_ea_index_dtype)r   rg   r/   rf   r*   r   s        r0   r  zGTestArrowArray.test_loc_setitem_with_expansion_preserves_ea_index_dtype8  sx    :+8H%% 	&;$$M %  D %%%HHNNNNNr2   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   )r   r   )r   r   r   r  )7__name__
__module____qualname__r   r   r)   r*   parametrizer   r   r   r   r   r   r   r   r   r   r  r  r  filterwarningsr  r"  r)  r,  r0  r4  r6  r8  r+   r;  rA  rE  rG  rI  r   r\  rb  rf  ri  _combine_le_expected_dtyperu  r  r  r  r  r  r  r  r  r  r  r  __classcell__r   s   @r0   r   r     s         (? ? ? [[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r2   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~  rV   TFN)	TTTTFNTNNrd   r   r   r   r   rK   rL   r   r   s        r0   test_kleene_orzTestLogicalOps.test_kleene_orE  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	
 	
 	
 	
 	
r2   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~  rV   r  r   r  r   rK   r   s        r0   test_kleene_or_scalarz$TestLogicalOps.test_kleene_or_scalar[       I)))1CDDDU9X-?@@@
vx000
vx000 	ry,,,4FGGG	
 	
 	
 	
 	
r2   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~  rV   r  )	TFNFFFNFNr  r  s        r0   test_kleene_andzTestLogicalOps.test_kleene_andt  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	
 	
 	
 	
 	
r2   )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        r0   test_kleene_and_scalarz%TestLogicalOps.test_kleene_and_scalar  r  r2   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~  rV   r  )	FTNTFNNNNr  r  s        r0   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	
 	
 	
 	
 	
r2   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        r0   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	
 	
 	
 	
 	
r2   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  rV   r~  F)rd   r   r   r   r,   r  r   r   )r   opr  rg   r  r  r   r   s           r0   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0r2   )r  r  r  __doc__r  r)   r*   r  rd   rR  r   r  r  r  r  r  r  r  r   r2   r0   r  r  B  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 1r2   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  rp   rV   )Nr  rJ   rp   )NNrx   rp   )NNr>   rp   )NN   r   r   )	r   rd   r   r   r   r?  r   maskisnull)r   r8   r   r   r   r   s         r0   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,,,,,r2   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'   rc   r   r+  r   r2   r0   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   r+  r,   	timestamp)r8   r   s     r0   5test_arrowdtype_construct_from_string_supports_dt64tzr    sE    ,-LMME",,sE2233HHr2   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  rV   )r)   r'   rc   rd   r   range)invalidr-  s     r0   ;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defgrV   r:   r?   r   abcabc rd   r   r   r,   r   r   r   )binaryrepeatr   r   reflected_results        r0    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4r2   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   rV   r:   r  defgdefgr  )r  r   r   r  s       r0   .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6r2   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=   rO  F)warnr   rS  r  ) r8   r6   takerd   r   r,   rW   ra   rb   rX   r)   r'   r_  r  r   rY   r\   r   r   rj   r.   r*   r+   r^   r   r  r   to_pydatetimedtfloorr   r   )rg   r  r  r/   rf   r   r-  r   pd_dtypeser_npr   s              r0   test_quantiler  *  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:   rp   rp   rp   )r   r   r   r:   rp   rp   
multi_modesingle_mode)r4   c                    |                      |          }t          j        |          }|                    d          }t          j        |                      |                    }t	          j        ||           d S )NTdropna)r  rd   r   moder   r   )rv   take_idxexp_idxrg   r   r   r   s          r0   test_mode_dropna_truer&  w  sn     !!(++D
)D//CXXTX""Fy*//8899H68,,,,,r2   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   rV   Fr!  )rd   r   r8   r#  r   r   )rg   	more_nansr   r   s       r0   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,,,,,r2   zarrow_dtype, expected_type   f1f2c                :    t          |           j        |k    sJ d S r   )r   rj   )arrow_dtypeexpected_types     r0   test_arrow_dtype_typer0    s&    " k""'=888888r2   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,   re   r   rd   corecommonis_bool_indexerr   r  r  r   asarrayr   r   )rg   r  r   r   s       r0   test_is_bool_dtyper7    s    rxx(;(;(;<<==D7>))$/////
	%D		""##AtWFD!!"H68,,,,,r2   c                    | j         j        }t          j                            |          s>t          j                            |          st          j                            |          rt          |           sJ d S t          |           rJ d S r   )r8   r6   r,   rW   rY   r   r\   r   rg   r   s     r0   test_is_numeric_dtyper:    s    j&G
W%%*8w''* 8w''*
  %%%%%%%#D)))))))r2   c                    | j         j        }t          j                            |          rt          |           sJ d S t          |           rJ d S r   )r8   r6   r,   rW   r   r   r9  s     r0   test_is_integer_dtyper<    sX    j&G	x7## *%%%%%%%#D)))))))r2   c                    | j         j        }t          j                            |          rt          |           sJ d S t          |           rJ d S r   )r8   r6   r,   rW   rZ   r   r9  s     r0   test_is_signed_integer_dtyper>    sX    j&G	x!!'** 1&t,,,,,,,*40000000r2   c                    | j         j        }t          j                            |          rt          |           sJ d S t          |           rJ d S r   )r8   r6   r,   rW   r[   r    r9  s     r0   test_is_unsigned_integer_dtyper@    sX    j&G	x##G,, 3(.......,T2222222r2   c                    | j         j        }t          j                            |          st          j                            |          rt          |           sJ d S t          |           rJ d S r   )r8   r6   r,   rW   r^   r]   r   r9  s     r0   test_is_datetime64_any_dtyperB    so    j&G	xW%% 1)9)9')B)B 1&t,,,,,,,*40000000r2   c                    | j         j        }t          j                            |          rt          |           sJ d S t          |           rJ d S r   )r8   r6   r,   rW   rY   r   r9  s     r0   test_is_float_dtyperD    sX    j&G	xG$$ (d#######!$'''''''r2   c                   t          j        |           }|                    d          }t          j        |          }t          j        |          }t          |          t          |          k    sJ t          j        |          }t          j        ||           t          j        |          }t          j        ||           d S )Nr:   )	rd   r   headpickledumpsr  loadsr   r   )rg   r   expected_slicedfull_pickledsliced_pickledr   result_sliceds          r0   test_pickle_roundtriprN    s    yHmmA&&O<))L\/22N|s>222222\,''F68,,,L00M=/:::::r2   c                2   |                                  }t          j        ||j                  }|                    | j                  }t          |j        t                    rJ t          |j        t                    sJ t          j        ||            d S r   )	r   rd   re   r8   r   r   r   r   r   )rg   np_arrpd_arrayr   s       r0   test_astype_from_non_pyarrowrR    s    ]]__Fxfl333H__TZ((F(.*55555flJ/////#FD11111r2   c                     t          j        dg          } |                     d          }t          j        dgd          }t          j        ||           d S )N1.0r  r;   rV   rd   r   r   r   r   r   r   r   s      r0   &test_astype_float_from_non_pyarrow_strrW    sU    
)UG

CZZ*++Fy#&8999H68,,,,,r2   c                     t          j        ddgid          } |                     dd          }t          j        ||            d S )Ncoli@fr   rV   float[pyarrow]r   )errors)rd   rV  r   r   rY  )r   r   s     r0   test_astype_errors_ignorer\    sM    |UXJ/7GHHHH__-h_??F&(+++++r2   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   rj   r,   rW   r_   r^   r)   r  r]   r   re   r   _hasnar   r8   r   r   rd   rR  r>  r   r   )rg   r   r   r   r   s        r0   test_to_numpy_with_defaultsr_    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1r2   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   rV   r   )rd   re   r   r   rR  r   r   r   r  r   r   )r   rg   r  r   r   s        r0   test_to_numpy_int_with_nara  !  s    t9D
(4/
0
0
0C\\^^F ,8QJf5558QK((&)U+++++11111r2   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]rV   r   r   r:   rd   re   rR  r   r   r   r   )na_valr  r  r   r   s        r0   test_to_numpy_null_arrayrf  .  sh     (BE25>
9
9
9C\\	F\;;Fx	333H11111r2   c                     t          j        t           j        t           j        gd          } |                     d           }t	          j        t           j        gdz  d          }t          j        ||           d S )Nrc  rV   r:   r   rd  r  r   r   s      r0   !test_to_numpy_null_array_no_dtyperi  7  sf    
(BE25>
9
9
9C\\\%%Fx!8444H11111r2   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~  rV   F)r   r;   r   r<   )	rd   re   rR  r   r   r  r   r   float32rh  s      r0   test_to_numpy_without_dtyperl  ?  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1r2   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   rV   r@   )rC  r#   rk   r  r8   r   r   tolist)rg   origr   r   s       r0   test_setitem_null_slicerp  L  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5r2   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   rj   r,   rW   ra   rb   r   r   rY   rX   r-   r)   r'   )rg   r   
fill_valueerrr-  s        r0   test_setitem_invalid_dtyperv  c  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rj   types_mapperrV   )r,   re   rd   	Timestampdate32	to_pandasr   date64getr   r   r   )
date_arrayr   r   s      r0   &test_from_arrow_respecting_given_dtyper  z  s    	l	#	#R\,%?%?@ryy{{   J !!iikk:biikk#:#:;? "  F y	l	#	#R\,%?%?@%%  H 68,,,,,r2   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(        @rx  ry  )
r,   re   r   r   external_error_raisedr-   r}  r   r$  r  )re   s    r0   -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@rV   r>   g333333?g@g^@gp=
cL@r@   g      ^@g      N@)rd   r   rR  roundr   r   r8   r   r   r   s       r0   
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,,,,,r2   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>   r@   zOsearchsorted requires array to be sorted, which is impossible with NAs present.r   )r  rd   rR  r   r)   r'   rU  searchsorted)rz   	as_seriesrL   rq   rK   r  r-  s          r0    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   rp  rV   r>   r:   rK   rL   rK   rL   )by)rd   rV  r   r   r,   
dictionaryint32r   rC  sort_valuesr   rY  )rZ  r   r   s      r0   test_sort_values_dictionaryr    s    	c
*R]]288::ryy{{-S-S"T"T   Q		
 	

 
B wwyyH^^Sz^**F&(+++++r2   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  rV   r>   )
rd   r   r   r,   r   r   r  r  r   r   )r  r   r   r   s       r0   test_str_countr    s~    
)UDMBIIKK)@)@
A
A
ACW]]3Fy!T*RXXZZ*@*@AAAH68,,,,,r2   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  rV   z	count notr   r>   flags)
rd   r   r   r,   r   r)   r'   rc   r   r  r   s    r0    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 )NrK   rV   r  r   )widthsidefillchar)
rd   r   r   r,   r   r   padr   r   r   )r  str_funcr   r   r   s        r0   test_str_padr    s     )S$Kz"))++'>'>
?
?
?CW[[qtc[::Fy	h		3	'	'.j6M6M  H 68,,,,,r2   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 )NrK   rV   zInvalid side: foor   r  rs  r   )
rd   r   r   r,   r   r)   r'   rU  r   r  r  s    r0   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  rV   )casenaregex)
rd   r   r   r,   r   r   containsr  r   r   )r  r  r  r  r  r   r   r   s           r0   test_str_containsr    s     )UDMBIIKK)@)@
A
A
ACWc5AAFyJrxxzz$:$:;;;H68,,,,,r2   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  rV   zcontains notr   rK   r>   r  )
rd   r   r   r,   r   r)   r'   rc   r   r  r  s    r0   #test_str_contains_flags_unsupportedr    s    
)UDMBIIKK)@)@
A
A
AC	*.	A	A	A ' 'A&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'r  zside, pat, na, exp
startswith)TNFrL   r  endswith)FTFbc)rK   eg)TNT)rK   rq   r  r   )FNFc                \   t          j        g dt          t                                                              } t          |j        |           ||          }t          j        |t          t                                                              }t          j	        ||           d S )N)r  NefgrV   )r  
rd   r   r   r,   r   r   r   r  r   r   )r  r  r  r  r   r   r   s          r0   test_str_start_ends_withr    s     )(((
299;;0G0G
H
H
HC#WSWd##CB///FyJrxxzz$:$:;;;H68,,,,,r2   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 )NrV   r   r  )r  r   r   r   s       r0   /test_str_starts_ends_with_all_nulls_empty_tupler    s    
)T4L
299;;(?(?
@
@
@C#WSWd##B''F y$Z

-C-CDDDH68,,,,,r2   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  rV   rL   r   T)r  r  r  zreplace is not supportedr   r   )
rd   r   r   r,   r   r)   r'   rc   r   replace)arg_nameargr   kwargss       r0   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, exprK   r   r@   xbxcxbacz[a-b]xxxcc                X   t          j        dd gt          t                                                              }|j                            | |||          }t          j        |t          t                                                              }t          j        ||           d S )NabacrV   )nr  )	rd   r   r   r,   r   r   r  r   r   )r  r  r  r  r  r   r   r   s           r0   test_str_replacer    s     )VTN*RYY[[*A*A
B
B
BCW__S$!5_99FyJryy{{$;$;<<<H68,,,,,r2   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  aaaaaarV   rK   r  Tr  r"   storage)r  r   )rd   r   r   r,   r   r   r  r   r   r   StringDtyper8   r   r   )	r   actualr   ser2actual2	expected2ser3actual3	expected3s	            r0   test_str_replace_negative_nr  +  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.....r2   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  rV   zrepeat is notr   r>   r:   )
rd   r   r   r,   r   r)   r'   rc   r   r  r  s    r0   test_str_repeat_unsupportedr  >  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  rV   r:   r  )	rd   r   r   r,   r   r   r  r   r   rV  s      r0   test_str_repeatr  D  s    
)UDMBIIKK)@)@
A
A
ACW^^AFy(D)BIIKK1H1HIIIH68,,,,,r2   zpat, case, na, expc                V   t          j        dd gt          t                                                              }|j                            | ||          }t          j        |t          t                                                              }t          j	        ||           d S )Nr  rV   r  r  )
rd   r   r   r,   r   r   r   r  r   r   r  r  r  r  r   r   r   s          r0   test_str_matchr  K  s     )UDMBIIKK)@)@
A
A
ACW]]3Tb]11FyJrxxzz$:$:;;;H68,,,,,r2   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$abcNrV   r  )
rd   r   r   r,   r   r   	fullmatchr  r   r   r  s          r0   test_str_fullmatchr  ]  s    , )111BIIKK9P9P
Q
Q
QCWs"55FyJrxxzz$:$:;;;H68,,,,,r2   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  rV   )startend	rd   r   r   r,   r   r   findr   r   )subr  r  r  exp_typer   r   r   s           r0   test_str_findr  y  sz     )UDMBIIKK)@)@
A
A
ACW\\#U\44FyJx$8$8999H68,,,,,r2   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  rV   rL   ir  r  r  r  r>   
rd   r   r   r,   r   r   r  r$  r   r   rV  s      r0   test_str_find_negative_startr    s    
)UDMBIIKK)@)@
A
A
ACW\\cA\66Fy!T*RXXZZ*@*@AAAH68,,,,,r2   c                    t          j        dd gt          t                                                              } | j                            dd          }t          j        dd gd          }t          j        ||           d S )Nr  rV   r  r>   )r  r@   r   r  rV  s      r0   test_str_find_no_endr    ss    
)UDMBIIKK)@)@
A
A
ACW\\$a\((Fy"d+;<<<H68,,,,,r2   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abcdefgrV   dr  r  r  r  rV  s      r0   )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,,,,,r2   c                 X   t          j        dd gt          t                                                              } | j                            dd          }t          j        dd gt          t                                                              }t          j	        ||           d S )Nr  rV   r  r*  )r  r  r@   r  rV  s      r0   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,,,,,r2   r  )r  r   r>      Nr  )r   r@   r   r  r  Nr  )r  azabcerK   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  rK   r  rV   rL  r  r"   )rd   r   r   r,   r   r   r  r   r  r8   r   r   )	r  r  r  r  object_seriesr   r   arrow_str_seriesresult2s	            r0   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-----r2   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  rV   r  r  r  r  r@   r  rV  s      r0   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,,,,,r2   zi, exp)rL   r  N)rq   r  Nr:   )rq   NN)rK   NNr  c                P   t          j        g dt          t                                                              }|j                            |           }t          j        |t          t                                                              }t          j        ||           d S )N)r  deNrV   )	rd   r   r   r,   r   r   r  r   r   )r  r  r   r   r   s        r0   test_str_getr    s}     )'''z"))++/F/F
G
G
GCW[[^^FyJryy{{$;$;<<<H68,,,,,r2   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=3NrV   )rd   r   r#   r,   re   r   r   joinr   r   r   r   rV  s      r0   test_str_joinr    s    
 )'$u++tE{{D1Q(R(RSS
T
TCW\\#Fy111BIIKK9P9PQQQH68,,,,,r2   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  rV   )rd   r   r#   r,   re   r   r  r   r   r   r   rV  s      r0   test_str_join_string_typer    s    
)'1E1E1E(F(FGG
H
HCW\\#Fy111BIIKK9P9PQQQH68,,,,,r2   zstart, stop, step, expdcbac                T   t          j        dd gt          t                                                              }|j                            | ||          }t          j        |t          t                                                              }t          j        ||           d S NabcdrV   )	rd   r   r   r,   r   r   slicer   r   )r  stopstepr  r   r   r   s          r0   test_str_slicer     s     )VTN*RYY[[*A*A
B
B
BCW]]5$--FyJryy{{$;$;<<<H68,,,,,r2   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  )	rd   r   r   r,   r   r   slice_replacer   r   )r  r  r  r  r   r   r   s          r0   test_str_slice_replacer&    s     )VTN*RYY[[*A*A
B
B
BCW""5$55FyJryy{{$;$;<<<H68,,,,,r2   zvalue, method, exp)a1cisalnumT)z!|,r(  F)aaaisalphaT)z!!!r*  F)u   ٠	isdecimalT)z~!r+  F)rM   isdigitT)~r,  F)r)  islowerT)aaAr.  F)r  	isnumericT)11Ir0  F) isspaceT)r  r3  F)zThe ThatistitleT)zthe Thatr4  F)AAAisupperT)AAcr6  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         r0   test_str_is_functionsr;    s    0 )UDMBIIKK)@)@
A
A
AC%WSWf%%''Fy#tJrxxzz,B,BCCCH68,,,,,r2   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 dEFrV   	rd   r   r   r,   r   r   r   r   r   )r:  r  r   r   r   s        r0   test_str_transform_functionsrC  "  s     )Y%Z		-D-D
E
E
EC%WSWf%%''Fy#tJryy{{,C,CDDDH68,,,,,r2   c                 R   t          j        dd gt          t                                                              } | j                                        }t          j        dd gt          t                                                              }t          j	        ||           d S )Nr  rV   rp   )
rd   r   r   r,   r   r   r  r  r   r   rV  s      r0   test_str_lenrE  4  sz    
)VTN*RYY[[*A*A
B
B
BCW[[]]Fy!T*RXXZZ*@*@AAAH68,,,,,r2   zmethod, to_strip, val)rt  Nz abc )rt  r   xabcx)lstripNz abc)rG  r   xabc)rstripNzabc )rI  r   abcxc                ^   t          j        |d gt          t                                                              } t          |j        |           |          }t          j        dd gt          t                                                              }t          j        ||           d S )NrV   )to_stripr  rB  )r:  rL  valr   r   r   s         r0   test_str_striprN  ;  s     )S$Kz"))++'>'>
?
?
?C%WSWf%%x888Fy%j.E.EFFFH68,,,,,r2   rM  abc123c                T   t          j        | d gt          t                                                              }|j                            d          }t          j        dd gt          t                                                              }t          j        ||           d S NrV   r  r  )	rd   r   r   r,   r   r   removesuffixr   r   rM  r   r   r   s       r0   test_str_removesuffixrT  M      
)S$Kz"))++'>'>
?
?
?CW!!%((Fy%j.E.EFFFH68,,,,,r2   123abcc                T   t          j        | d gt          t                                                              }|j                            d          }t          j        dd gt          t                                                              }t          j        ||           d S rQ  )	rd   r   r   r,   r   r   removeprefixr   r   rS  s       r0   test_str_removeprefixrY  U  rU  r2   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  rV   )rd   r   r   r,   r   r   encodesys	byteorderr  r   r   )r[  encodingr  r   r   r   s         r0   test_str_encoderd  ]  s      )UDMBIIKK)@)@
A
A
ACW^^Hf--Fy#cm,d3:biikk;R;RSSSH68,,,,,r2   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  NrV   rL   r  )
rd   r   r   r,   r   r   findalllist_r   r   )r  r   r   r   s       r0   test_str_findallrh  s  s    
)(((
299;;0G0G
H
H
HCW__S_..Fy3%T**RXXbiikk=R=R2S2STTTH68,,,,,r2   r:  rS  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abcbarV   rq   r:   zsubstring not foundr   rs  )rd   r   r   r,   r   r   r   r$  r   r   r)   r'   rU  )r:  r  r  r   r   r   s         r0   test_str_r_indexrl  {  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 r_  )
rd   r   r   r,   r   r   	normalizerC  r   r   )rm  r   r   r   s       r0   test_str_normalizerr    se    
)UDMBIIKK)@)@
A
A
ACWt$$FxxzzH68,,,,,r2   c                X   t          j        g dt          t                                                              }|j                            d| |          }t          j        g dt          t                                                              }t          j	        ||           d S )N)rk  rs  NrV   rq   )r:   r@   N)
rd   r   r   r,   r   r   rfindr$  r   r   )r  r  r   r   r   s        r0   test_str_rfindru    s     )****RYY[[2I2I
J
J
JCW]]3s++Fyj.D.DEEEH68,,,,,r2   c                 X   t          j        dd gt          t                                                              } | j                            ddi          }t          j        dd gt          t                                                              }t          j        ||           d S )Nrk  rV   a   rL   bbcbb)	rd   r   r   r,   r   r   	translater   r   rV  s      r0   test_str_translaterz    s    
)WdO:biikk+B+B
C
C
CCWCy))Fy'4
299;;0G0GHHHH68,,,,,r2   c                 T   t          j        dd gt          t                                                              } | j                            d          }t          j        dd gt          t                                                              }t          j        ||           d S )Nrk  rV   r  zabc
ba)	rd   r   r   r,   r   r   wrapr   r   rV  s      r0   test_str_wrapr}    s}    
)WdO:biikk+B+B
C
C
CCW\\!__Fy)T**RYY[[2I2IJJJH68,,,,,r2   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|crV   )TTFr  r2  )rK   rL   rq   r8   r  )rd   r   r   r,   r   r   get_dummiesrV  r  r   rY  rV  s      r0   test_get_dummiesr    s    
)(((
299;;0G0G
H
H
HCW  ""F|			3335H5H5HI$$  H
 &(+++++r2   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 )Nrk  rV   rL   )rK   rL   cbar  r  r  T)check_column_typeFexpand)r  rL   rK   )rd   r   r   r,   r   r   	partitionrV  
RangeIndexr   rY  r#   re   r   
rpartitionrV  s      r0   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,,,,,r2   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
brV   )a1cbcrL   )rd   r   r   r,   r   r   r   r#   re   r   r   r:  r   r   r   s       r0   test_str_split_pat_noner    s     )[$'z"))++/F/F
G
G
GC%WSWf%%''Fy,RXX7I7I7I46P-Q-QRRSSH68,,,,,r2   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a2cbcbNrV   rq   r  rL   rL   a2rL   rL   r>   r  r  bcbr  z[1-2]T)r  rK   cbcb)r  r  )rK   rK   N)r  r  Nr   r>   rB   r  rK   r  Nr  NN)rd   r   r   r,   r   r   r  r#   re   r   r   rV  rY  rV  s      r0   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 &(+++++r2   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  rV   rq   r  r  r>   r  a1cbrL   a2cbT)r  r  )r  r  N)rL   rL   Nr  rB   r  r  r  )rd   r   r   r,   r   r   r  r#   re   r   r   rV  rY  rV  s      r0   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 &(+++++r2   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c3rV   z*pat=.* must contain a symbolic group name.r   z[ab](\d))
rd   r   r   r,   r   r)   r'   rU  r   extractr  s    r0   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  rV   z(?P<letter>[ab])(?P<digit>\d)r  )rK   rL   NrB   rM   N)letterdigit)rd   r   r   r,   r   r   r  rV  r#   re   r   rY  )r  r   r   r   s       r0   test_str_extractr  0	  s    
)&&&j.E.E
F
F
FCW__=f_MMF|)"((3C3C3C*D*DEE(2B2B2B)C)CDD	
 	
 H &(+++++r2   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  rV   z[ab](?P<digit>\d)Tr  r  r  Fr  )rd   r   r   r,   r   r   r  rV  r#   re   r   rY  r   rV  s      r0   test_str_extract_expandr  =	  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,,,,,r2   r  )rP  rO  msr  c                   ddg}t                               |           }t          |          }t          j        ||          }t          t                               dd g|                    }t          j        ||           d S )N1000NaTrV     rx  )r,   r  r   r#   r   re   r   r   )r  stringsr   r8   r   r   s         r0   #test_duration_from_strings_with_natr  L	  sz     uoGkk$GwE :7%PPPF"288T4Lw8#G#GHHH#FH55555r2   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   )r8   r6   r,   rW   r   r)   r'   AttributeErrorrd   r   r  r   s     r0   test_unsupported_dtr  W	  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secondrx   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  rp   rx   r  r  )r  r  r  r  r  r  r  r  rP  rV   rx  )rd   r   r{  r   r,   r  r   r  r   r   r|  r   time64r#   re   r   r   )propr   r   r   r  s        r0   test_dt_propertiesr  `	  s	   . )L 	 	 	 	
 d++,,  C  SVT""FH(D!! #99;;	Hd	#	# #99T??y,RXXx6FXX-V-VWWXXH68,,,,,r2   )r  rJ   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  rx   rJ   r  )r  r  r  r  r  r  rP  rV   r   )
rd   r   r{  r   r,   r  r  r  r   r   )r  r   r   r   s       r0   test_dt_microsecondr  	  s     )L'   
	
 d++,,  C VFy+t,4DEEEH68,,,,,r2   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  rF   r:   r  r  r  r  r  r>   rG   rO  rV   r  FFTN)rd   r   r   r   r,   r  r  is_month_startr  r   r   is_month_endrV  s      r0   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,,,,,r2   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  rF   rG   r  r  r>   rO  rV   r  r  )rd   r   r   r   r,   r  r  is_year_startr  r   r   is_year_endrV  s      r0   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,,,,,r2   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>   rG   rO  rV   r  r  )rd   r   r   r   r,   r  r  is_quarter_startr  r   r   is_quarter_endrV  s      r0   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,,,,,r2   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  rp   r>   r:   rO  rV   )rG   r     N)rd   r   r   r   r,   r  r   r  r$  r   r   r  s       r0   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,,,,,r2   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  rp   r>   r  r:      ;   )r  r  r  r  r  r  rO  rV   )
rd   r   r   r   r,   r  r  rq  r   r   rV  s      r0   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,,,,,r2   rO  rP  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  rV   r   rx  )rd   r   r   r   r,   r  r  r  r   r#   re   r  r   r   r  r   r   r   s       r0   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,,,,,r2   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  rP  r   rV   )
rd   r   r   r   r,   r  r  r   r   maybe_get_tz)r   r   r   s      r0   
test_dt_tzr  
  sy    
)	t1!!	4	4	4d;dr2233  C VYFY+B////////r2   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  rP  rV   )r  r>   r>   r  )r  weekr  r   r  r8   )rd   r   r   r   r,   r  r  isocalendarrV  r   rY  rV  s      r0   test_dt_isocalendarr   
  s    
)	t1!!	4	4	4d;d++,,  C V!!F|	yyy!'''  H
 &(+++++r2   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  rV   )r1   rd   r   r   r   r,   r  r   r  r   r   r   )r:  r  r/   r   r   r   s         r0   test_dt_day_month_namer  .
  s    
 w'''
)XdAq))40
2<<PTCUCU8V8V
W
W
WC$WSVV$$&&Fy#tJryy{{,C,CDDDH68,,,,,r2   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  rP  rV   z%Y-%m-%dT%H:%M:%Sz2023-01-02T03:00:00.000000000)r1   rd   r   r   r   r,   r  r  strftimer   r   r   r/   r   r   r   s       r0   test_dt_strftimer  ;
  s    w'''
)	t1!!	4	4	4d;d++,,  C V__011Fy	($/z"))++7N7N  H 68,,,,,r2   )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  rP  rV   zambiguous is not supported.r   1hr  	ambiguousznonexistent is not supported.nonexistent)rd   r   r   r   r,   r  r)   r'   rc   r   r  r:  r   s     r0   *test_dt_roundlike_tz_options_not_supportedr  I
  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  rP  rV   zfreq='1B' is not supportedr   1Bz$Must specify a valid frequency: None)rd   r   r   r   r,   r  r)   r'   rU  r   r  r  s     r0   "test_dt_roundlike_unsupported_freqr  V
  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  rO  rP  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  rP  rB   )rd   r   r   r   r,   r  r   r  r   r   r   )r  r:  r   rf   r   r   s         r0   test_dt_ceil_year_floorr  c
  s     )	t1!	,	,	,d3 C ",,t,,--H&wsvv&&z4zz2299(CCH5WSZZ)),f55j$jjAAF68,,,,,r2   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 )NrD   r>   r  rP  rV   c              3  Z   K   | ]%}t          j        |                   t          u V  &d S r   )rj   r  r   )r   r  r   s     r0   	<genexpr>z(test_dt_to_pydatetime.<locals>.<genexpr>v
  s7      PPatHM!$%%1PPPPPPr2   datetime64[ns])r   rd   r   r   r,   r  r  r  r   r   r   r   r  r  r   rg   r   r   r   s      @r0   test_dt_to_pydatetimer  o
  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,,,,,r2   	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 )NrD   rF   rG   r   rV   z#to_pydatetime cannot be called withr   )rd   r   r   r   r   r,   r)   r'   rU  r  r  )r  r   s     r0    test_dt_to_pydatetime_date_errorr   |
  s     )	dB		8%7I%7%788::;;  C 
z)N	O	O	O                   s   -BBBc                    t          j        t          dddd          d gt          t                              d                              } t          j        t          d	          5  | j	        
                    d
d           d d d            n# 1 swxY w Y   t          j        t          d	          5  | j	        
                    d
d           d d d            d S # 1 swxY w Y   d S )Nr  r>   r:   r  r  rP  rV   z ambiguous='NaT' is not supportedr   r  r  r	  z"nonexistent='NaT' is not supportedr  )rd   r   r   r   r,   r  r)   r'   rc   r  tz_localizer  s    r0   *test_dt_tz_localize_unsupported_tz_optionsr#  
  si   
)	t1!!	4	4	4d;d++,,  C 
*2T	U	U	U 3 35E2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 
*2V	W	W	W 5 55e4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s$   *BBB9C##C'*C'c           	        t          |            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  rP  r  r  rV   r   )r1   rd   r   r   r   r,   r  r  r"  r   r   r  s       r0   test_dt_tz_localize_noner%  
  s    w'''
)	t1!!	4	4	4d;d|<<==  C V%%Fy	Q		D	!	!4(d++,,  H 68,,,,,r2   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  rV   r  rx  r1   rd   r   r   r   r,   r  r  r"  re   computeassume_timezoner#   r   r   )r  r/   r   r   exp_datar   s         r0   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,,,,,r2   znonexistent, exp_dateshift_forwardrF   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  rF   r:   r  )r  r  r  r  r  rP  rV   r  r  rx  r'  )r  exp_dater/   r   r   r*  r   s          r0   test_dt_tz_localize_nonexistentr0  
  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,,,,,r2   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  rP  rV   z"Cannot convert tz-naive timestampsr   r  )rd   r   r   r   r,   r  r)   r'   r   r  
tz_convertr  s    r0    test_dt_tz_convert_not_tz_raisesr3  
  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  rP  r  rV   r   
rd   r   r   r   r,   r  r  r2  r   r   rV  s      r0   test_dt_tz_convert_noner6  
  s    
)	t1!!	4	4	4d;dL99::  C Vt$$Fy	Q		4	 	 $'d++,,  H 68,,,,,r2   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  rV   
US/Easternr   r5  r  s       r0   test_dt_tz_convertr9  
  s    
)	t1!!	4	4	4d;dL99::  C V|,,Fy	Q		<	(	($/dL99::  H 68,,,,,r2   r8   ztimestamp[ms][pyarrow]zduration[ms][pyarrow]c                    t          j        dd g|           }|j                            d          }|                    |                     dd                    }t          j        ||           d S )Nr  rV   rP  r  )rd   r   r  as_unitr   r  r   r   r  s       r0   test_as_unitr<  
  sg     )T4L
.
.
.CV^^D!!Fzz%--d3344H68,,,,,r2   zfrom_unit,to_unit)rP  rO  rP  r  rP  r  )rO  r  )rO  r  )r  r  )r  r  )r  rO  r  rP  )r  rO  r  rP  rN  c                r   t          j        t          j        dd gd                              |                     }|                    d|  d          }|j                            |          }|j                            |                              d| d          }t          j        ||           d S )Nl   @W/U rP  r  	duration[
][pyarrow])rd   r   to_timedeltar;  r   r  r   r   )	from_unitto_unit	ser_numpy	ser_arrowr   r   s         r0    test_as_unit_duration_truncationrK  
  s    ( 	
.T:::BB9MM I   !BY!B!B!BCCI\!!'**F|##G,,334S4S4S4STTH68,,,,,r2   )r=  r>  r?  r@  rA  rN  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[rE  rV   zdatetime64[r  )rd   r   r{  r   r  r;  r   r  r"  r   r>  r   )rG  rH  rJ  rI  r   expected_numpys         r0   test_as_unit_timestamprP    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8r2   rH  )r  r  rO  rP  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 )NrM  r8  rP  "timestamp[ns, US/Eastern][pyarrow]rN  z, US/Eastern][pyarrow]z, tz=US/Eastern][pyarrow])rd   r   to_datetimer"  r;  r   r  r   r   r   r8   )rH  rI  rJ  r   r   s        r0   $test_as_unit_timestamp_with_timezonerT  2  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Or2   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:   rV   zas_unit not implementedr   rP  )
rd   r   r   r,   r|  r)   r'   rc   r  r;  r  s    r0   test_as_unit_date_raisesrV  D  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  rp   rW  rX  rY  rZ  rP  rV   rx  )rd   r   	Timedeltar   r,   r  r   r  r#   re   r  r   r   )r  r   r   r   s       r0   test_dt_timedelta_propertiesr^  K  s     )L	   	
 T**++  C SVT""FyBHHh%5BHHJJHGGHH H 68,,,,,r2   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  rp   r\  rP  rV   gN%  @rx  )rd   r   r]  r   r,   r  r  total_secondsr#   re   r   r   r   rV  s      r0   test_dt_timedelta_total_secondsra  i  s    
)L	   	
 T**++  C V!!##FyBHHlD%9

HMMNN H 68,,,,,r2   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  rp   rP  rV   zDThe behavior of ArrowTemporalProperties.to_pytimedelta is deprecatedr   c              3  B   K   | ]}t          |          t          u V  d S r   )rj   r   )r   ress     r0   r  z)test_dt_to_pytimedelta.<locals>.<genexpr>  s-      88#tCyyI%888888r2   z@The behavior of TimedeltaProperties.to_pytimedelta is deprecatedtimedelta64[ns])r   rd   r   r   r,   r  r   r`  r   r  to_pytimedeltar   re   r   r   r   r   )rg   r   r-  r   r   s        r0   test_dt_to_pytimedeltarg  ~  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  rp   r\  rP  rV   )r>   r   r   r:   r   r  rp   rW  hoursminutesrX  millisecondsrY  rZ  r   r  rd   r   r]  r   r,   r  r  
componentsrV  rR  r   rY  rV  s      r0   test_dt_componentsro    s    
)L	   	
 T**++  C VF|			rubeRUBE25 QR
 
 
   H &(+++++r2   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.999000rP  rV   )im  r  r  r  i  r   r   ri  r   r  rm  rV  s      r0   test_dt_components_large_valuesrq    s    
)L344	
 T**++  C VF|(((UBE25"%ru=	

 
 
   H  &(+++++r2   r   c                    t          j        d gd          } t          ||           |          }|r| dk    }nt           j        }||u sJ d S )Nr  rV   r   r   )rd   r   r   rR  )r	  r   r   r   r   s        r0   #test_boolean_reduce_series_all_nullrs    sj     )TF"4
5
5
5C1WS011@@@F )U25Xr2   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TruerB   rT  )falseFALSEFalse0rC   TFrV   r~  rw  rs  zFailed to parser   )r  r   r,   r  r#   r   rd   re   r   r   r)   r'   r-   )true_stringsfalse_stringsnullsr  boolsr8   r   r   s           r0   %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   )	rd   r   rC  concatr   re   r  r   r   )r8   r   r   r   s       r0   %test_concat_empty_arrow_backed_seriesr    sd    
)Be
$
$
$CxxzzHYBHRrx8889:;;F68,,,,,r2   r   string[pyarrow]c                    t                               d                                          }t          j        ||           }t          j        t          |          |           }t          j        ||           d S )Nzthe quick brown foxrV   )r,   re   r  rd   r   r#   r   r   )r8   r  r   r   s       r0   test_series_from_string_arrayr    sj    
(((..00
1
1C
)Cu
%
%
%Cy,S11???H3)))))r2   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     r0   r  z#OldArrowExtensionArray.__getstate__  s2    $$&&;//gr2   )r  r  r  r  r  r  s   @r0   r  r    s8                r2   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,   re   r  rG  rI  rH  r   r   r   chunked_arrayhasattr)rg   r   r   s      r0   #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'''''''r2   c                 ,   d} t          t                              t          j        | ft          j                  g                    }|                                }d|t          j        | ft          j                  <   |j        |j        k    sJ d S )Nih6 rV   F)	r#   r,   r  r   onesr  rC  zerosr   )Nr  r   s      r0   /test_setitem_boolean_replace_with_mask_segfaultr    s~    A
b..BH0M0M0M/NOO
P
PCxxzzH*/C!RX&&&'=H.......r2   zdata, arrow_dtyperP   rQ   c                    t          |          }t          j        t          j        |           |          }t          j        | |          }t	          j        ||           d S r   )r   rd   re   r   r   r   )rg   r.  r8   r   r   s        r0   -test_conversion_large_dtypes_from_numpy_arrayr    sZ     {##EXbhtnnE222FxE***H#FH55555r2   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 )	NrK   rV   r   r>   r   T)ignore_index)NNr   r>   )rd   rV  r   r,   nullr  r   rY  )rZ  df2r   r   s       r0   test_concat_null_arrayr  "  s    	sT4L)BGGII1F1F	G	G	GB
,aV},<
=
=
=CYCyt444F|S"4"4"45=MNNNH&(+++++r2   c                    t          j        g dt          |                     }|                                }t          j        g dt          t                                                    g d          }t          j        ||           d S )Nr>   r:   r  rV   )r  r:   r>   r>   r(  g       @r  r  r  r   r   r  25%50%75%r  r8   rS  )rd   r   r   describer,   r   r   r   r   rg   r   r   s       r0   test_describe_numeric_datar  +  s     9YYYj&9&9:::D]]__Fy&&&&&III  H
 68,,,,,r2   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>   rI   rV   	   )rJ   r:   r>   r  rJ   rx   r  rC  r  r  )rd   r   r  r   r  rF  r  rn  r   r   r   r  s       r0   test_describe_timedelta_datar  8  s     9U1b\\G)<)<===D]]__Fy	
PR_222FFFMMOOPIII  H
 68,,,,,r2   c                    t          j        t          dd          t                               }|                                }t          j        dg fddD             z   t
          g d          }t          j        ||           d S )	Nr>   rI   rV   r  c                R    g | ]#}t          j        |j        j                   $S ))r   r  )rd   r{  r   r  )r   vr   s     r0   r   z/test_describe_datetime_data.<locals>.<listcomp>L  s>     
 
 
 Lwz===
 
 
r2   )rJ   r>   r  rJ   rx   r  )r  r   r  r  r  r  r  r  )rd   r   r  r   r  r   r   r   r  s   `   r0   test_describe_datetime_datar  E  s     9U1b\\G)<)<===D]]__Fy	

 
 
 
'
 
 
	

 BBB  H 68,,,,,r2   c                    g d}t          j        |t          |                     }|                    d          }|d         }||k    sJ d S )Nr  rV   皙?r   )rd   r   r   r  )r   rg   r   r   r   s        r0   test_quantile_temporalr  V  sZ    
 99D
)D
7 3 3
4
4
4C\\#F1vHXr2   c                    t                               t          j        d          gt                                                     } t          j        | t          | j                            }t          |          dk    sJ d S )Nz
2020-01-01rx  rV   z+0    2020-01-01
dtype: date32[day][pyarrow])
r,   re   r   fromisoformatr|  rd   r   r   rj   repr)arrow_dtr   s     r0   test_date32_reprr  b  si    xx+L99:xMMH
)HJx}$=$=
>
>
>C99FFFFFFFr2   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>   rP  rV   r:   )
rd   rS  rF  r   r   r,   r  r  r   r   )data_tsdata_tdser_tsser_tdr   r   s         r0   2test_duration_overflow_from_ndarray_containing_natr  i  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,,,,,r2   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_dtyper^  r)   r*   r+   r.   r   )rg   r/   rd  r*   s       r0   test_infer_dtype_pyarrow_dtyper  t  s    
/$

C/!!!!{ "s;;;{  B ! 
 
 	D!!!#/$t**T:::::::::r2   c                   d}| j         }t          j                            |           r+t	          j        ||                              |          g}n0t	          j        ||| j                                      |          g}t          j
        ||           }t          t                              |g|                     }t          j        ||           d S )Nr  rC  r  r   rV   rx  )r  r,   rW   r_   rd   r]  r;  r{  r   r#   rk   re   r   r   )r   rM  r  seqr   r   s         r0   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5r2   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>   rC  r  r  rx  )r>   r>   r>   )r  r,   rW   r_   rd   r]  r;  r{  r   r#   re   rC  r   r   r   r  rM  r  r   r   s         r0   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5r2   c                B   t          t                              g d|                     }| j        }|t	          j        d|                              |          z
  }t          t                              g d|                     }t          j        ||           d S )Nr  rx  r>   rC  )r   r>   r:   )	r#   r,   re   r  rd   r]  r;  r   r   )r   r/   r  r  r   r   s         r0   test_arithmetic_temporalr    s    
 bhhyyywh??
@
@C<D2<---55d;;;F"288IIIG8#D#DEEH#FH55555r2   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>   rC  r  r  rx  )FTT)r  r,   rW   r_   rd   r]  r;  r{  r   r#   re   r  r   r   r  s         r0   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5r2   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  rx  r>   r:   rC  r  )r#   r,   re   rW   r_   rd   r]  r  r;  r   r{  r   r   r  r   r   s       r0   test_getitem_temporalr    s    
 bhhyyywh??
@
@CVF	xG$$ 0<555==glKK&",//////<DDDLLL
 
 &",/////;(-''''Xr2   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>   rx  rC  r   r  )r#   r,   re   r   rW   r_   rd   r]  r  r;  rR  r   r{  r   r  s       r0   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r2   c                    t          j        | d d         g d          }|                    d                                          }t          j        ddgdd	d
g          }t	          j        ||           d S )Nr  )rK   rK   rL   r  r   )levelr:   r>   r   rK   rL   r  )rd   r   groupbysizer   r   r  s       r0   'test_groupby_series_size_returns_pa_intr    sy    
)D!HOOO
4
4
4C[[q[!!&&((Fy!Q'7SzJJJH68,,,,,r2   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>   rx  rV   rC  r  r   nat)r#   r,   re   r   rW   r_   rd   r]  r  r;  r{  r   r   r^   rR  r  r   to_pandas_dtyperj   datetime_datar   r   )r   r8   r  r   r9  r  r   s          r0   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1r2   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>   )rs   rt   ru   rs   r  rt   ru   r   )rS  r  r8   )rd   rV  r  r  Indexr   rY  )rl   rZ  r   r   s       r0   %test_groupby_count_return_arrow_dtyper    s    	QFLII	J	JBZZ__""$$F|
Qhs%%%c
	  H &(+++++r2   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  rp   )	list_sizerV   )	rd   r   r   r,   rg  r$  r8   rj   r   )r   r   s     r0   test_fixed_size_listr    sf    
)
Q!Q
288BHHJJ!8+L+L M M  C Y^FT>>>>>>r2   c            	         t          j        t          j        dd          dgt          t	          d                              } t          |           }d}||k    sJ d S )N2012r  )rd  rY  r  r  z#     col
0  15340
1  15341
2  15342)rd   rV  period_ranger   r$   r  rZ  r   r   s      r0   'test_arrowextensiondtype_dataframe_reprr  (  sm    	
***--..
 
 
B
 "XXF 8HXr2   c                     t          j        dd gd          } |                     d d          }t          j        dd gd          }t          j        ||           d S )Nr:   r   rV   r  )rt     )rd   r   powr   r   )kr   r   s      r0   test_pow_missing_operandr  6  sb    
	1d)#3444AUU4AU&&Fy!T*:;;;H68,,,,,r2   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.2345rV   z3Rescaling Decimal(128)? value would cause data lossr   r>   r   )rd   r   r   r,   r   r)   r'   r   r-   r   r  r  s    r0   test_decimal_parse_raisesr  >  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  rV   rJ   rp   )
rd   r   r   r,   r   r  r   r   r   r   )r   r8   r   r   s       r0   test_decimal_parse_succeedsr  G  s    
)XJj&=&=
>
>
>Cr}}Q**++EZZFy'(++,E:::H68,,,,,r2   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:   rV   r>   r  zm8[r  )	rd   r   r   r   re   r  r?  r   r   )r   ser1r  r   r   s        r0   test_duration_fillna_numpyr  P  s     9dAYj&9&9:::D9RXq!f,A',,A,A,ABBBCCD[[Fy!Qz'':':;;;H68,,,,,r2   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  rV   r   zInteger valuer   )rd   r   r)   r'   r,   r   r-   r  s     r0   +test_comparison_not_propagating_arrow_errorr  Z  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 )NrK   rL   r   r>   rV   )r,   r  re   dictionary_encoderd   r   r#   	factorizer   intpr  r   r   r   assert_index_equal)r   r   res_indicesres_uniquesexp_indicesexp_uniquess         r0   !test_factorize_chunked_dictionaryr  b  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3r2   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  rV   F)use_na_sentinelr   r>   )rd   re   rR  r   r,   r  r  rZ  r  r   r  r   r   r   r   )r  indicesuniquesexpected_indicesexpected_uniquess        r0   !test_factorize_dictionary_with_nar  o  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-=>>>>>r2   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)rK   r   rq   rK   )rK   r  rq   category)rK   r   rq   r  rV   )rK   r   rq   rK   rK   r  rq   )
categories)r,   re   r   r  rd   r   r#   r  r   r  r   r   CategoricalDtyper   r   )arrsr   r   r	  r   s        r0   "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,,,,,r2   c                     t          j        dgd          } t          j        dgd          }t          j        dgd          }| |z  }t          j        ||           d S )Nir   rV   rp   r?   r  )rK   rL   r   r   s       r0   test_arrow_floordivr    si    
	2$.///A
	1#-...Ay"%5666H!VF68,,,,,r2   c                     t          j        dgd          } t          j        dgd          }| dz  }t          j        ||           d S )Nl     ^ \K r   rV   l    \p/i@B r  )rK   r   r   s      r0    test_arrow_floordiv_large_valuesr    sT    
	&'/?@@@Ay-0@AAAH)^F68,,,,,r2   r   r  c                h    t          j        dg|           }|dz  }t          j        ||           d S )N   rV   r>   r  )r8   rK   r   s      r0   )test_arrow_floordiv_large_integral_resultr    s>     		$%U333A!VF61%%%%%r2   c                    t          |           }t          j        dg|          }|dz  }t          j        dg|          }t          j        ||           d S )NirV      r@   )r   rd   r   r   r   )r   r8   rK   r   r   s        r0   "test_arrow_floordiv_larger_divisorr    s_     wE
	3%u%%%A"WFy"U+++H68,,,,,r2   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 )NrV   zoverflow|not in ranger   r@   zdivide by zeror   )r   iinfor  r  rd   r   r   r)   r'   r,   r   r-   )r   	min_valuerK   s      r0   $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:   rV   r   inf)rd   r   r  r   r   )r8   rK   r   r   s       r0   &test_arrow_floordiv_floating_0_divisorr    sX     		1#U###A!VFy%,,u555H68,,,,,r2   )r   r  re  c                    t          j        dd gd          }|                    |           }t          j        dd g|           }t          j        ||           d S )Nr>   r   rV   rU  r  s       r0   (test_astype_int_with_null_to_numpy_dtyper    s_     )QI%5
6
6
6CZZFy!T%000H68,,,,,r2   c                
   t          j        |                                           j        }t	          |           }t          j        |g|          }t          j        dg|          }||z  }t          j        ||           d S )NrV   r>   )	r   r  r  r  r   rd   r   r   r   )r   	max_valuer8   rK   rL   r   s         r0   )test_arrow_integral_floordiv_large_valuesr"    s}     0022337IwE
	9+U+++A
	1#U###A!VF61%%%%%r2   c                    t          j        dg|           }t          j        dg|           }t          j        dgd          }||z  }t          j        ||           d S )Nr   rV   r  r  r  r8   rK   rL   r   r   s        r0   &test_arrow_true_division_large_divisorr%    sk     		1#U###A
	$%U333Ay!$6777HUF68,,,,,r2   c                    t          j        dg|           }t          j        dg|           }t          j        dg|           }||z  }t          j        ||           d S )Nr   rV   r  r  r$  s        r0   'test_arrow_floor_division_large_divisorr'    sj     		1#U###A
	$%U333Ay!E***H!VF68,,,,,r2   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]rV   r  Tfrom_pandas)	rd   r   rS  r;  r#   r,   re   r   r   )string_datesr   pd_resr   s       r0   $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,,,,,r2   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   )
r8   r!  rd   r   reescaper)   r'   r   interpolate)rg   r   r-  s      r0   test_interpolate_not_numericr3    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:   Nrp   NrV   )Nr>   r:   r  rp   N)rd   r   r2  r   r   r  s       r0   test_interpolate_linearr5    s`    
)///u
=
=
=C__Fy111???H68,,,,,r2   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]rV   r  )   +   i) Tr*  )rd   r   r#   r,   re   r   r   r   )string_timesr   r   s      r0    test_string_to_time_parsing_castr:    sw    %&LY|+@AAAFyBHHd2r2u&=&=%>DHQQRR H 68,,,,,r2   c                     t          j        g dd          } |                     d          }t          j        ddt          j        gd          }t          j        ||           d S )Nr   (   NrZ  rV   r   r   r=  )rd   r   r   r   r   r   r   rV  s      r0   test_to_numpy_floatr>    sb    
)NNN*:
;
;
;CZZ	""Fy"b"&);;;H68,,,,,r2   c                     t          j        dgd          } |                     t          j                  }t          j        dg          }t          j        ||           d S )Nr)  timestamp[ns][pyarrow]rV   l    P)#-/ )rd   r   r   r   r$  re   r   r   rV  s      r0   test_to_numpy_timestamp_to_intrA    s\    
)*+3K
L
L
LC\\\))Fx,-..H11111r2   
arrow_typec                   t          j        dddgid          }t          t                              t                                          |                     }|                    d|i          }|j        j        d         |k    sJ d S )NrK   r   rp  r  rV   r   )	rd   rV  r   r,   r  r  r   dtypesr  )rB  rZ  	data_typer   s       r0   *test_cast_dictionary_different_value_dtyperF    sz    	sS#J'/@	A	A	AB2==Z@@AAIYYY'((F=a I------r2   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 )
Nr<  r   rV   c                    dS )N*   r   r   s    r0   r   z,test_map_numeric_na_action.<locals>.<lambda>(  s    r r2   r   r   g      E@r   r   )rd   r   r   rR  r   r   r   r   )r   r   r   r   s       r0   test_map_numeric_na_actionrJ  &  s    
)NNN*:
;
;
;CWW\\XW66F D9dD"%0AAA9dD"&1CCC68,,,,,r2   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 )Nrs   r  r  rV   Fr!  r>   )r8   r  r  r$  )rS  r  r8   )rd   rV  r   r,   r  r  rZ  rh  r   
MultiIndexfrom_arraysr  r   r   r   r  s      r0   &test_categorical_from_arrow_dictionaryrN  0  s    		tTl:bmmBHHJJ		.R.R#S#S
 
 
B __E_**Fy	
Am''XtTl*RYY[[*A*ALLLM
 
   H 68,,,,,r2   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   rj   r   )r8   r   s     r0   test_arrow_json_typerQ  A  s=    
 rxx		,,--EZFS======r2   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   rO  rV   )rd   r{  r   r)   r'   r   rS  re   r   r,   r  )valsr-  s     r0   &test_timestamp_dtype_disallows_decimalrU  K  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]rR  z2025-07-03 18:10rV   r"   )rJ  )rd   r{  r   convert_dtypesr   r   )dtype1dtype2tsr   r   s        r0   (test_timestamp_dtype_matches_to_datetimer[  Y  sr    )F1F	(	)	)BYt6***Fy"V,,,;;);TTH68,,,,,r2   c                     t          j        dgd          } |                     d          }| |k    }t          j        dgd          }t          j        ||           || k    }t          j        ||           d S )N
2016-01-01r@  rV   r  Tr   rU  )r   r   r   r   s       r0   !test_timestamp_vs_dt64_comparisonr^  f  s    9l^+CDDDDKK())EU]Fy$777H68,,,d]F68,,,,,r2   c                 N   t          j        dgd          } |                     d          }|d         }| d         }| |k                                    rJ || k                                    rJ ||k                                    rJ ||k                                    rJ d S )Nr]  date32[pyarrow]rV   r@  r   )rd   r   r   r   )r   r  rZ  r  s       r0   (test_date_vs_timestamp_scalar_comparisonra  t  s    
)\N*;
<
<
<C::.//D	aB	QB r	     c	      
!!!!!d
!!!!!!!r2   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 )Nr]  r`  rV   r@  r  )rd   r   r   r   r   )r   r  r  s      r0   'test_date_vs_timestamp_array_comparisonrc    s%    )\N*;
<
<
<C::.//D::&''Dt  """""  """""4KCKt  """""  """""4KCKr2   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r@   r   r>   r   rV   r   r>   )rd   r   r   r   r>  r   r   )r   r   r   s      r0   test_ops_with_nan_is_narf    s   
)JJJ&6
7
7
7C26\F '{{}}  """""";;==$$&&&&&26\F '{{}}  """""";;==$$&&&&&1WF ${{}}Q;;==######r2   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 )
Nre  r   rV   r>   z@Could not convert nan with type float: tried to convert to int64r   r@   r  r:   )rd   r   r   r   r>  r)   r'   r,   r   r-   rR  r   r  isnan)r   r   r-  s      r0   test_setitem_float_nan_is_nari    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  rV   r:   )rd   r   r  rR  r   r   )r  r   r   s      r0   test_pow_with_all_na_floatrk    sb     		4,&8999AUU1XXFy"%/ABBBH68,,,,,r2   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 )NrJ   r   rV   r  )r   r>   rp   r  r*  Tr   )rd   r   r  r   r   )r   r   r   r   r
  result3r  result4s           r0   *test_mul_numpy_nullable_with_pyarrow_floatro    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.....r2   ztype_name, expected_size))r  r>   )int16r:   )r  rp   )r$  r  )uint8r>   )uint16r:   )uint32rp   )r%  r  )float16r:   )rk  rp   )r   r  )r  r>   )r|  rp   )r~  r  )r  r  )time32rp   )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 )NrP  r  r  rI   L   )r  ru  r  r  rv  r  z
 expected z, got z (bit_width=r   zN/A))r,   r  ru  r  r  rv  r  r   r   numpy_dtypeitemsizer6   )	type_nameexpected_sizeparametric_type_maprB  r8   s        r0   %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 +****r2   r|  )r   r  large_stringc                     t          t          |                       }t          |          }|j        |j        j        k    sJ d S r   )r   r,   r   r{  rz  )r|  rB  r8   s      r0   (test_arrow_dtype_itemsize_variable_widthr  $  sG     (Y''))Jz""E>U.7777777r2   c                     t          j        g d          } | j        }t          d          }|                    |g          }|j        j        }t          j        	                    |          sJ d S )Nr  rV   rS  )
rd   r   re   r   r  r8   r6   r,   rW   r\   )r   r  itemr   r   s        r0   %test_cast_pontwise_result_decimal_nanr  .  sj    
)B0
1
1
1C
)C5>>D''//Fl(G8w'''''''r2   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  rV   )rd   r   rR  r   sinr   r   rV  s      r0   test_ufunc_retains_missingr  :  sg    
)S"%L(:
;
;
;CVC[[Fy"&++ru-5GHHHH68,,,,,r2   )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 )	NrD  rE  r>   )rX  r:   rV   r  
 returned )rd   r   r   r   r   r]  rj   r  r  r:  r8   r   r   s        r0   #test_duration_reduction_consistencyr  D  s     )(((E
)Yq)))9Q+?+?+?@
N
N
NC!WS&!!##Ffbl++  6666V66 + ;$r2   )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 )	NrN  rE  r  r>   r  rV   r  r  )rd   r   r   r   r   r{  rj   r  r  s        r0   $test_timestamp_reduction_consistencyr  P  s     *)))E
)XdAq))8D!Q+?+?@
N
N
NC!WS&!!##Ffbl++  6666V66 + ;$r2   ('  r  
__future__r   r   r   r   r   decimalr   ior	   r
   r  rG  r0  ra  numpyr   r)   pandas._libsr   pandas._libs.tslibsr   pandas.compatr   r   r   r   r   r   r   pandas.errorsr   pandas.core.dtypes.commonr   pandas.core.dtypes.dtypesr   r   pandasrd   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$   r1   fixtureALL_PYARROW_DTYPESr   r8   rg   rl   rn   rv   rz   r}   r   ExtensionTestsr   r  r*   r  ALL_INT_PYARROW_DTYPESr  r  r  r  r  r
  r  r&  r)  r  byteslarge_binaryr  rg  r$  r   
large_listmap_r   structr  dictr  r0  r7  r:  r<  r>  r@  rB  rD  rN  rR  rW  r\  r_  ra  r   rf  ri  rl  rp  rv  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   r&  r;  rC  rE  rN  rT  rY  rd  rh  rl  rr  ru  rz  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r#  r%  r+  r{  r0  r3  r6  r9  r<  rK  rP  rT  rV  r^  ra  rg  ro  rq  rs  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  r  r"  r%  r'  r.  r3  r5  r:  r>  rA  rF  rJ  rN  skipifrQ  rU  r[  r^  ra  rc  rf  ri  rk  ro  r  r  r  r  r  r  r   r2   r0   <module>r     s|$    # " " " " "                           				 



            ) ) ) ) ) )                  ) ( ( ( ( ( 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 
 
 
 
 
 
   nO nO nO nO nOT( nO nO nOb^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 #;#;#;<<  =<  r2   