
    yhh.                   &   d Z ddlmZ ddlmZmZmZmZ ddlmZ ddl	m
Z
mZ ddlZddlZddlZddlZddlZddlmZ ddlmZ dd	lmZmZmZmZmZmZmZmZmZ dd
l m!Z!m"Z" ddl#Z$ddl%m&Z' ddl(m)Z) ddl*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1 ddl2m3Z3  ej4        d          Z5ddl6m7Z7 ddl8m9Z9 d Z: ej;        e'j<        e=          d             Z>ej;        d             Z?ej;        d             Z@ ej;        ddg          d             ZAej;        d             ZBej;        d             ZCej;        d             ZDej;        d             ZE G d de3jF                  ZG G d  d!          ZHejI        J                    d"e'jK                  d#             ZLd$ ZMd% ZNd& ZOd' ZPd( ZQejI        J                    d)g d*          ejI        J                    d+d,d,d,gg          d-                         ZRejI        J                    d.g d/d0dggg d1dgggd2d3g4          d5             ZSd6 ZTejI        J                    d7e5U                                eVge5U                    d8          eVge5W                                eVge5X                                e=ge5Y                    e5Z                                          e[ge5\                    e5Z                                          e[ge5]                    e5^                                e5Z                                          e[ge5_                    d9e5`                                fd:e5^                                fg          eage5b                    e5Z                                e5Z                                          e"gg	          d;             Zcd< Zdd= Zed> Zfd? Zgd@ ZhdA ZidB ZjdC ZkdD ZldE ZmdF ZndG ZoejI        J                    dHej)        ejp        fdIg          dJ             ZqdK ZrdL ZsdM ZtdN ZudO ZvdP ZwdQ ZxdR ZydS ZzejI        J                    dTdUdVg          dW             Z{dX Z|ejI        J                    dYdZd[gd\d]gd^d_gg          d`             Z}da Z~ejI        J                    dbdcddddddedggdfdeddddddggdcdddedddedeggdgddddededggdhdeddedddggg          di             Zdj ZejI        J                    dkdldcdg dmgdldnddg dogdpdndeg dqgdpdrdg dmgdldsdg dtgdpdudg dtgdldvdg dwgdpdvdg dwgg          dx             ZejI        J                    dydz          d{             ZejI        J                    d|dT ej        dn          gd}e=gd~ddgddgg          d             ZejI        J                    ddddddddggdddddddggddddeddggg          d             Zd Zd Zd ZejI        J                    ddcddddedggdfdeddddggdrdeddddggdcdddededeggdgddddedggdhdeddddggg          d             ZejI        J                    ddUdddg dgddedg dgdrdedg dgdcdddg dgdVdddg dgdhdedg dgddddg dgddddg dgddedg dgddedg dgddedg dgddedg dgg          d             ZejI        J                    ddcddddge5                                gdrddddge5Z                                gg          d             Zd Zd Zd Zd ZejI                            ed          ejI        J                    dg d          ejI        J                    dg d          ejI        J                    dg d          d                                                 Zd ZejI        J                    ddg dgdg dgdg dgdg dgd0g dgg          d             ZejI                            de          d             Zd ZejI        J                    dddddcdggddddcdggddddrdggdddddgfg          d             ZejI        J                    ddddddggdddddggdddddggg          d             ZejI        J                    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jI        J                    dddgddgddgddgddgddgg          d             Zd ZejI        J                    dg dg dg dg dg dg dg          d             ZejI        J                    dddUg          d             ZejI        J                    dddUg          d             ZejI        J                    dddg          ejI        J                    dddgddgg          d                         ZejI        J                    dddg          d             ZejI        J                    dddg          ejI        J                    dddgdd0gg          d                         ZejI        J                    dd dg          d             ZejI        J                    dddgdd0gg          d             Zd Zd Zd Zd ZejI        J                    ddd	g          d
             Zd Zd Zd ZejI        J                    ddeddg          d             Zd ZejI        J                    dg d          d             Zd ZejI        J                    dddgddgddgddgddgddgddgddgdd0gd ddgd!d"gd#dgd$d%gd&dgd'd(gd) eddd          gd* edd0d(d"          gg          d+             Zd, Zd- Zd. ZejI        J                    dd/d0g          d1             Zd2 ZejI        J                    dd3d4g          d5             ZejI        J                    d6g d7          d8             Zd9 ZejI        J                    dՐd:d;gd<d=gg          d>             Zd? ZejI        J                    dg d@          dA             ZejI        J                    dg d@          dB             ZejI        J                    dCg dD          ejI        J                    dg d@          dE                         ZdF ZejI        J                    dGdHdIg          dJ             ZdK ZdL ZejI        J                    dd3d4g          dM             ZejI        J                    dNdO edddPdQ          gdR e$j        dS          gg          dT             ZƐdU ZǐdV ZejI        J                    dd3d4g          dW             ZejI        J                    dXdYdZg          d[             ZejI        J                    dd\dgd]dgd^dgd_d0gg          d`             Zːda Z̐db Z͐dc ZejI        J                    dddeddg          de             Zϐdf ZАdg ZejI        J                    dXdhdig          dj             Z G dk dle7          ZӐdm ZԐdn ZejI        J                    dodpdqge5W                                fddnge5X                                fg          dr             Z֐ds ZejI        J                    d"e'jK        e'j        z             dt             ZejI        J                    d"e'j                  du             ZejI        J                    d"e'j                  dv             ZejI        J                    d"e'j        e'j        z             dw             Zސdx Zߐdy Zdz ZejI        J                    d"e'j        e'j        z             d{             ZejI        J                    d"e'j        e'j        z             d|             ZejI        J                    d"e'j        e'j        z             d}             ZejI        J                    d"e'j        e'j        z             d~             ZejI        J                    d"e'j        e'j        z             d             ZejI        J                    d"e'j        e'j        z             d             Zd ZejI        J                    d"e'j        e'j        z   e4          ejI        J                    dXdeg          d                         Zd Zd Zd Zd ZejI        J                    d"e'j                  d             Zd Zd Zd Zd Zd ZejI        J                    dXddg          d             ZejI        J                    d"e'j                  d             ZejI        J                    d"e'j                  d             ZejI        J                    dXe'j                  d             ZejI        J                    dXg d          d             ZejI        J                    d"e'jK                  d             ZejI        J                    dXddg          d             ZejI        J                    dXddg          d             Zd Z ejI                            ed          d             Zd Zd Zd Zd ZdS (  ag  
This file contains a minimal set of tests for compliance with the extension
array interface test suite, and should contain no other tests.
The test suite for the full functionality of the array is located in
`pandas/tests/arrays/`.
The tests in this file are inherited from the BaseExtensionTests, and only
minimal tweaks should be applied to get the tests passing (by overwriting a
parent method).
Additional tests should either be added to one of the BaseExtensionTests
classes (if they are relevant for the extension interface for all dtypes), or
be added to the array-specific tests in `pandas/tests/arrays/`.
    )annotations)datedatetimetime	timedelta)Decimal)BytesIOStringION)lib)	timezones)	PY311PY312is_ci_environmentis_platform_windowspa_version_under11p0pa_version_under13p0pa_version_under14p0pa_version_under20p0pa_version_under21p0)
ArrowDtypeCategoricalDtypeType)
no_default)is_bool_dtypeis_float_dtypeis_integer_dtypeis_numeric_dtypeis_signed_integer_dtypeis_string_dtypeis_unsigned_integer_dtype)basepyarrow)ArrowExtensionArray)ArrowPeriodTypec                    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     X/var/www/histauto/venv/lib/python3.11/site-packages/pandas/tests/extension/test_arrow.py_require_timezone_databaser0   H   st     "!2!4!4 "{  ?; ! 
 
 	D!!!!!" " " "    )paramsidsc                ,    t          | j                  S )N)pyarrow_dtype)r   param)r.   s    r/   dtyper7   T   s    GM2222r1   c           
        | j         }t          j                            |          rddgdz  d gz   ddgdz  z   d gz   ddgz   }nt          j                            |          rddgdz  d gz   ddgdz  z   d gz   d	d
gz   }nt          j                            |          rddgdz  d gz   ddgdz  z   d gz   ddgz   }nt          j                            |          rddgdz  d gz   ddgdz  z   d gz   ddgz   }n^t          j                            |          rlt          d          t          d          gdz  d gz   t          d          t          d          gdz  z   d gz   t          d          t          d          gz   }nt          j        	                    |          rxt          ddd          t          ddd          gdz  d gz   t          ddd          t          ddd          gdz  z   d gz   t          ddd          t          ddd          gz   }n<t          j                            |          rt          ddddddd          t          ddddddd          gdz  d gz   t          dddd          t          dddd          gdz  z   d gz   t          ddd          t          ddd          gz   }nt          j                            |          rmt          d          t          dd          gdz  d gz   t          d          t          d          gdz  z   d gz   t          d          t          d          gz   }nt          j                            |          rqt!          dd          t!          dd          gdz  d gz   t!          dd          t!          dd          gdz  z   d gz   t!          dd          t!          dd          gz   }nt          j                            |          rdd gdz  d gz   dd!gdz  z   d gz   d"d#gz   }nCt          j                            |          rd$d%gdz  d gz   d&d'gdz  z   d gz   d(d)gz   }nt&          t)          j        || *          S )+NTF   ,         ?        g       g            ?g     X@   r   c      10.0z-2.0z-1.0z0.5z33.123            i
      ab2!>   a   b   1   2   !   >r7   )r5   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)r7   pa_dtypedatas      r/   rh   rh   Y   s   "H	x8$$ 5"e}q D6)T5MB,>>$G4QV-W			h	'	' 3"SzA~&$)::dVCsDkQ		#	#H	-	- 1"1vzTF"b"X]2dV;q"gE		%	%h	/	/ /"1vzTF"aVb[0D69QGC			X	&	& -"S\\75>>*Q.fv0256 f u~~wx001	2 	 
		(	#	# %"$1tD"b112Q6fD!QdAq!1!12R78 f D"b!!4b"#5#56	7 	 
		x	(	( "dAq!Q1--xaAq!Q/O/OPSTTfaA&&q!Q(?(?@2EF f a##XdAq%9%9:	; 	 
		h	'	' "q\\9Q??+a/f}}ill+b01 f ~~y}}-	. 	 
		(	#	# ""a[[$q"++&*fAqzz41::&+, f Aqzz41::&	' 	 
		H	%	% "SzA~&#sb8D6AS#JN			H	%	% "d|a4&(D$<"+<<vEtT!!8D&&&&r1   c                d    t          |                               d| d         g| j                  S )zLength-2 array with [NA, Valid]Nr   rW   type_from_sequencer7   )rh   s    r/   data_missingrm      s-     ::$$dDG_DJ$GGGr1   rh   rm   )r2   c                :    | j         dk    r|S | j         dk    r|S dS )zParametrized fixture returning 'data' or 'data_missing' integer arrays.

    Used to test dtype conversion with and without missing values.
    rh   rm   N)r6   )r.   rh   rm   s      r/   all_dataro      s1     }	.	(	( 
)	(r1   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>   rJ   rF   rG   rH   i  rE   rI   r9   rL   rM   crQ   rR      cz-1.1rD   z1.1NrW   )r5   r+   rX   rY   rZ   r[   r\   r^   r   r_   r   r`   r   ra   r   rb   rc   r]   r   rd   re   rf   )r7   rg   ABCs        r/   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%@@@@r1   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      r9   rW   rj   rv   s    r/   data_for_sortingrz      K     !""11	1	035Fq5IJ% 2   r1   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   rB   r9   rW   rj   ry   s    r/   data_missing_for_sortingr}      r{   r1   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.rB   d   rW   )
r7   r5   r+   rX   
is_integerrZ   r]   r`   re   rf   rh   rg   s     r/   data_for_twosr      s     z'H
H%%58))5 8x((5 8))	5 xc	4444Kr1   c                      e 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dGdZej                            dddg           fd            ZdGdZdHdZej                            dddg           fd            Zej                            dddg           fd            ZdId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ej                            d)d&           fd*            Zej                            d)d&           fd+            Z ej                            d,d-e!g          ej                            d.d/d0g          d1                         Z" fd2Z#ej                            d3d4d5g           fd6            Z$d7 Z%d8Z&d9 Z'dJd:Z(d; Z)dKd=Z*d> Z+ fd?Z, fd@Z-dA Z. fdBZ/dC Z0ej                            dDg dE          dF             Z1 xZ2S )LTestArrowArrayc                j    t          j        |          }|                     ||||d                    d S )Nr   )re   Series_compare_other)selfrh   comparison_opsers       r/   test_compare_scalarz"TestArrowArray.test_compare_scalar  s3    iooC}d1g>>>>>r1   	na_actionNignorec                   |j         j        dv rJ|                    d |          }|                    t                    }t          j        ||           d S |                    d |          }|j         dk    r"|                    dt          j                  }n|                                }t          j        ||           d S )	NmMc                    | S N xs    r/   <lambda>z)TestArrowArray.test_map.<locals>.<lambda>       r1   r   rW   c                    | S r   r   r   s    r/   r   z)TestArrowArray.test_map.<locals>.<lambda>  r   r1   float32[pyarrow]float64r7   na_value)	r7   kindmapto_numpyobjecttmassert_numpy_array_equalnpnan)r   rm   r   resultexpecteds        r/   test_mapzTestArrowArray.test_map  s    "d**!%%kkY%GGF#,,6,::H'99999!%%kkY%GGF!%777'00y260RR'0022'99999r1   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)r7   r5   r+   rX   rc   r-   r(   r)   r*   r_   tzr`   supertest_astype_str)r   rh   r.   using_infer_stringrg   	__class__s        r/   r   zTestArrowArray.test_astype_str"  s   :+8h'' 	!!B(BBB "     
 $ 	X""8,,	191Dx##H-- 2E !!U "    
 	%%%%%r1   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   )r7   r5   r+   rX   rb   r]   r-   r(   r)   r*   r   test_from_dtype)r   rh   r.   rg   r'   r   s        r/   r   zTestArrowArray.test_from_dtype5  s    :+8h'' 
	28+>+>x+H+H 
	x!!(++ KLJJJ!!! "    
 	%%%%%r1   c                   t          |                              |j        |j                  }t	          j        ||           t          |j        t          j                  sJ t          |                              |j        	                                |j                  }t	          j        ||           t          |j        t          j                  sJ d S NrW   )
rk   rl   	_pa_arrayr7   r   assert_extension_array_equal
isinstancer+   ChunkedArraycombine_chunksr   rh   r   s      r/   test_from_sequence_pa_arrayz*TestArrowArray.test_from_sequence_pa_arrayD  s     d**4>*LL
'555&*BO<<<<<d**N))++4: + 
 
 	'555&*BO<<<<<<<r1   c                    t          j        t          d          5  t          j        dgt
                                                     d d d            d S # 1 swxY w Y   d S )NzConverting strings tomatchz12-1rW   )r(   r&   rd   r"   _from_sequence_of_stringsr+   month_day_nano_interval)r   r.   s     r/   *test_from_sequence_pa_array_notimplementedz9TestArrowArray.test_from_sequence_pa_array_notimplementedQ  s    ].6MNNN 	 	9 : : < <   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   /AAAc                   |j         j        }t          j                            |          rP|                    d          r;t          s4|                    t          j	        
                    d                     nt          rt          j                            |          st          j                            |          rB|                    t          j	        
                    t          j        d|                      n5t          j                            |          r|j        t#          |           |j                            t                                                    }t+          |                              ||j                   }t/          j        ||           |                                }t+          |                              ||j                   }t/          j        ||           d S )Nz
time64[ns]z&Nanosecond time parsing not supported.r   z pyarrow doesn't support parsing r%   rW   )r7   r5   r+   rX   	is_time64equalsr   r-   r(   r)   r*   r   r`   r]   ArrowNotImplementedErrorr_   r   r0   r   caststringrk   r   r   r   r   )r   rh   r.   rg   pa_arrayr   s         r/   &test_from_sequence_of_strings_pa_arrayz5TestArrowArray.test_from_sequence_of_strings_pa_arrayW  s   :+8h'' 	0HOOL,I,I 	0RW 	0!!C "     
 " 
	0H  **
	0.0h.A.A(.K.K
	0 !!6HhHH "      X""8,, 	01H&w///>&&ryy{{33d55hdj5QQ
'555**,,d55hdj5QQ
'55555r1   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]int64[pyarrow]Float64F)check_dtype)
getattrr7   r5   r+   rX   is_temporal	bit_widthastyper   assert_series_equal)r   r   op_namer   r   pa_typeint_typer   s           r/   check_accumulatezTestArrowArray.check_accumulates  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Cr1   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)
r7   r5   r+   rX   rc   r]   rb   rY   r   r`   )r   r   r   r   s       r/   _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tr1   r   TFc                ,   |j         j        }|}t          j                            |          r|dv rd S t          j        |          }|                     ||          s#t                      	                    |||          S t          rr|dk    rl|j        j        }|j        r d|j        v rt          j        | d           t          j                            | d          }	|                    |	           n|dk    r|t          j                            |          st          j                            |          r>|                    t          j                            | d| t*                               |                     |||           d S )N)r   r   r   r   znot slowz  not implemented for pyarrow < 9r   z not implemented for r'   r&   )r7   r5   r+   rX   rb   re   r   r   r   test_accumulate_seriesr   configoptionmarkexprr(   skipr)   r*   r-   rY   r]   	TypeErrorr   )r   rh   all_numeric_accumulationsr   r.   r   r   r   optr)   r   s             r/   r   z%TestArrowArray.test_accumulate_series  s   **+8g&& 	76T+T+T Fioo**388 	7711/     	$=$I$I .'C| 
cl : :0RRR   ;$$3UUU %  D %%%%&(22H(( 3,.H,?,?,H,H 3 !!7WWgWW$ "     	c7F33333r1   c                8   |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 d	S )
NkurtskewF)sumvarr   r   prod)r   )r   r   )meanmedianr   stdsemr   r   r   )anyallT)	r   r7   r5   r+   rX   r   r`   rc   rb   )r   r   r   r7   rg   s        r/   _supports_reductionz"TestArrowArray._supports_reduction  sC   f!5'V:K:K5	 &8)) 	g :
 /
 /
 x##H-- 'W2D2DuX)) 	g.H.H5Hx((	,.H,>,>x,H,H	 	
 	
 	
 5 H  **	H((22	 >))
 5tr1   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   )
r7   r5   r+   rX   r   rZ   r   r   r   assert_almost_equal)r   r   r   r   rg   altr   r   s           r/   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0r1   c                   |j         }|j        }t          j                            t
          | dt          j         d|           }t          j        	                    |          r|dv r|
                    |           nt          s|dk    rt          j        	                    |          s@|rqt          j                            |          st          j                            |          r3|
                    t          j                            d                     t                                          |||           d S )N is not implemented in pyarrow= for r%   >   r   r   r   r   r   z,https://github.com/apache/arrow/issues/45733r   )r7   r5   r(   r)   r*   r   r+   __version__rX   rY   r-   r   r   rZ   r   test_reduce_series_numeric)	r   rh   all_numeric_reductionsr   r.   r7   rg   
xfail_markr   s	           r/   r  z)TestArrowArray.test_reduce_series_numeric	  se   
&[&&) ; ;>; ;08; ; ' 
 

 8x(( 	-C H
 .
 .
 
++++$	&&00##H-- 1 	 1 ++H55 1 :<9M9Mh9W9W 1 !!I "    
 	**41GPPPPPr1   c                x   |j         j        }t          j                            t
          | dt          j         d|           }t          j        	                    |          st          j        
                    |          r|                    |           t                                          |||          S )Nr  r  r%   )r7   r5   r(   r)   r*   r   r+   r  rX   rb   rc   r-   r   test_reduce_series_boolean)	r   rh   all_boolean_reductionsr   r   r.   rg   r  r   s	           r/   r  z)TestArrowArray.test_reduce_series_boolean0  s     :+[&&) ; ;>; ;08; ; ' 
 

 8h'' 	,28+=+=h+G+G 	, 
+++ww11$8NPVWWWr1   c                t   |j         j        }|dv r|j        }n|j        j        dk    rE|dk    r0t          s)t          t                              dd                    }nY|dvr|j        }nMd}nJ|dv rd}nC|dk    r't          j        	                    |          r|j        }nd	d
dd|j        j
                 }|S )N)maxminzdecimal128(7, 3)[pyarrow]r   &      )r   r   r   r   float64[pyarrow])r   r   r   r   r   r   uint64[pyarrow])iuf)r   rk   r7   namer   r   r+   
decimal128rX   rb   r   )r   arrr   r   r   	cmp_dtypes         r/   _get_expected_reduction_dtypez,TestArrowArray._get_expected_reduction_dtypeC  s    -$n$$	IIY^:::%(<&r}}R';';<<		 @@@I		.		@@@*II"("4"4W"="=	II &&'  in	I
 r1   c                    |}|dk    rHt           rA|j        j        r5t          j                            d          }|                    |           t                                          |||          S )Nr   zskew not implementedr   )	r   r7   _is_numericr(   r)   r*   r-   r   test_reduce_frame)r   rh   r  r   r.   r   r)   r   s          r/   r  z TestArrowArray.test_reduce_frame[  sp    (f!5z% *{((0F(GG##D)))ww((/EvNNNr1   typ)int64uint64r   c                p    t          j        ddg| d                                          }|dk    sJ d S )Nr>   rB   	[pyarrow]rW         ?)re   r   r   )r   r  r   s      r/   test_median_not_approximatez*TestArrowArray.test_median_not_approximated  sB     Aq6C):):):;;;BBDD}}}}}}r1   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   )r5   r+   rX   r]   r-   r(   r)   r*   rd   rb   r&   r   construct_from_stringr  r   #test_construct_from_string_own_name)r   r7   r.   rg   msgr   s        r/   r%  z2TestArrowArray.test_construct_from_string_own_namej  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%   )r5   r+   rX   rb   rk   is_dtyper  r]   r-   r(   r)   r*   rd   r   test_is_dtype_from_namer   r7   r.   rg   r   s       r/   r)  z&TestArrowArray.test_is_dtype_from_name~  s    &8h'' 	3E{{++EJ7777777x""8,, ##K%%2PhPP &     GG++E22222r1   c                    d}t          j        t          |          5  t          |                              d           d d d            d S # 1 swxY w Y   d S )Nz*'another_type' must end with '\[pyarrow\]'r   another_type)r(   r&   r   rk   r$  )r   r7   r&  s      r/   .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   )r5   r+   rX   r^   ra   r_   r   rc   r]   r-   r(   r)   r*   r   test_get_common_dtyper*  s       r/   r/  z$TestArrowArray.test_get_common_dtype  s    &HX&&	x))	 %%h//	 5=K4Kx!!(++ 5Lx""8,, 5L !!# > > > "     	%%e,,,,,r1   c                    |j         }t          j                            |          rt	          |          sJ d S t                                          |           d S r   )r5   r+   rX   rb   r   r   test_is_not_string_type)r   r7   rg   r   s      r/   r1  z&TestArrowArray.test_is_not_string_type  s[    &8h'' 	3"5)))))))GG++E22222r1   z6GH 45419: pyarrow.ChunkedArray does not support views.)r'   runc                J    t                                          |           d S r   )r   	test_viewr   rh   r   s     r/   r4  zTestArrowArray.test_view  s#     	$r1   c                   ||                                           }|d         }|                    |          }||usJ t          j        ||           |                    d          }||usJ t          j        ||           d S )Nr   backfill)method)isnafillnar   r   )r   rh   validr   s       r/   test_fillna_no_op_returns_copyz-TestArrowArray.test_fillna_no_op_returns_copy  s    TYY[[L!QU##T!!!!
'555J//T!!!!
'55555r1   z5GH 45419: pyarrow.ChunkedArray does not support viewsc                J    t                                          |           d S r   )r   test_transposer5  s     r/   r>  zTestArrowArray.test_transpose  s#     	t$$$$$r1   c                J    t                                          |           d S r   )r   test_setitem_preserves_viewsr5  s     r/   r@  z+TestArrowArray.test_setitem_preserves_views  s#     	,,T22222r1   dtype_backendr!   enginerq   pythonc           	        |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          }|                    d
t&          j                  }t          j                            |          rt+          |          }nt-          |          }t          j        |dt#          |j                   i||          }|}	t1          j        ||	           d S )NzParameterized types z not supported.r%   )usnsz1https://github.com/pandas-dev/pandas/issues/49767z)CSV parsers don't correctly handle binaryr   
with_dtyperW   F)indexna_rep)r7   rB  rA  )r7   r5   r+   rX   r]   r-   r(   r)   r*   rd   r_   unit
ValueErrorrc   re   	DataFramer   r   to_csvr   r   r	   r
   read_csvr   assert_frame_equal)
r   rB  rh   rA  r.   rg   df
csv_outputr   r   s
             r/   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YYU26Y::
8h'' 	. ,,JJ!*--JTZ1'	
 
 
 
fh/////r1   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)r7   r5   r+   rX   rY   r   rb   r-   r(   r)   r*   r   r   r   assert_produces_warningDeprecationWarningr   test_invertr   rh   r.   rg   r   s       r/   rW  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%   )r7   r5   r+   rX   r\   r-   r(   r)   r*   r,   r   	test_diff)r   rh   rY  r.   rg   r   s        r/   r[  zTestArrowArray.test_diff  s    :+8''11 	gll!!?SXSSGSSS "     	$(((((r1   c                    |d d         }|                                 }|j        t          t                                                    k    sJ d S )NrJ   )value_countsr7   r   r+   r  r   s      r/   'test_value_counts_returns_pyarrow_int64z6TestArrowArray.test_value_counts_returns_pyarrow_int64  sI    CRCy""$$|z"((**55555555r1   zbool[pyarrow]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     r/   ra  z1TestArrowArray.get_op_from_name.<locals>.rtruediv  s    yA&r1   	rfloordivc                ,    t          j        ||           S r   )r   floor_dividerd  s     r/   r   z1TestArrowArray.get_op_from_name.<locals>.<lambda>$  s    1 5 5 r1   )stripr   get_op_from_name)r   r   short_opnamera  s       r/   rj  zTestArrowArray.get_op_from_name  sY    }}S)):%%' ' ' O[((555"7+++r1   c                	   |}|dv r|                     d          S d}t          |t          j                  r*d}|j        d d df         }|j        d d df         j        }n	|}|j        }|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                  rt          j	                            |	          r%t          j	                            |	          rd}n-d	}n*|	j        }t%          |          t*          t,          fv r|d
v rd}|
                    d| d          }
nmt          j	                            |
j                  r3t          j	                            |	          r t1          ||          |          }t3          j        |          }t          |t6                    sJ |dk    r<t          |t8                    r't7          t                                                    }nx|dk    rLt          |t          j                  r2|j        |k    r't7          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   )__truediv____rtruediv____floordiv__mss)rx  rw  rE  z	duration[]__pow__)rH  columns) r   r   re   rL  ilocr7   r5   r   r+   rX   rZ   r   r`   r_   r^   r]   rf   _valuesrk   	is_date64rJ  r   r   r   r   r   	get_dtyper   r   r   rH  r{  )r   r   objotherpointwise_resultr   	was_frameexpected_dataoriginal_dtypeorig_pa_typepa_expectedrJ  r   	alt_dtypepd_expecteds                  r/   _cast_pointwise_resultz%TestArrowArray._cast_pointwise_result(  s0    $:::#**+=>>>	h-- 	'I$M!!!Q$/M Xaaad^1NN$M YN%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11 +	9x--  8%%l33 DDDD
 $(;;8Y"777DK<O<O  D%**+>t+>+>+>??KKX  !122 	9rx7J7J8
 8
 	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r1   c                    |dv p|dv ot            rt          j                            |          p"|dv ot          j                            |          S )N__add____radd__rt  ru  rv  __rfloordiv____sub____rsub__)r   r+   rX   r`   r   )r   opnamerg   s      r/   _is_temporal_supportedz%TestArrowArray._is_temporal_supported  sp     11 WX 100/ $$X..
/ 00 /$$X..	
r1   4type[Exception] | tuple[type[Exception], ...] | Nonec                   |dv rt           t          fS t          j        |          }|j        }|                     ||          }|dv rt           t          f}n|rd }n|dv rAt          j                            |          st          j        	                    |          rd }ngt          j        
                    |          sFt          j                            |          s't          j                            |          st          }nd }|S )N)
__divmod____rdivmod__>   __mod____rmod__r  )rd   r   r   r  r5   r  r+   rX   rb   rc   rZ   r   r]   )r   r   r  r  r7   rg   arrow_temporal_supportedexcs           r/   _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
r1   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 0ru  )r  r+   rX   rZ   r   r]   r(   r)   r*   ra   r`   r   r,   )r   r  rg   r)   r  s        r/   _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
 ;$$  : :!): : : %  DD &&H)) '-/X-@-@-J-J ' ;$$$ %  DD ~%%"(*=*=h*G*G%;$$$ %  D
 r1   c                0   |j         j        }|dk    r3t          j                            |          rt          j        d           |                     ||          }||                    |           t                      
                    ||           d S Nr  z%Skip testing Python string formatting)r7   r5   r+   rX   rc   r(   r   r  r-   r   test_arith_series_with_scalarr   rh   all_arithmetic_operatorsr.   rg   r)   r   s         r/   r  z,TestArrowArray.test_arith_series_with_scalar  s    :+#z11bh6H6H6R6R1K?@@@++,DhOO%%%--d4LMMMMMr1   c                n   |j         j        }|dk    rRt          j                            |          st          j                            |          rt          j        d           |                     ||          }||	                    |           t                                          ||           d S r  )r7   r5   r+   rX   rb   rc   r(   r   r  r-   r   test_arith_frame_with_scalarr  s         r/   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Lr1   c                ,   |j         j        }|dv r`t          j                            |          rA|                    t          j                            t          j	        d|                      | 
                    ||          }||                    |           |}t          j        |          }t          j        t          j        |j        d         gt          |          z  |j                             }|                     |||           d S )Nr  zJImplemented pyarrow.compute.subtract_checked which raises on overflow for r%   r   rW   )r7   r5   r+   rX   r\   r-   r(   r)   r*   r,   r  re   r   rf   r|  lencheck_opname)	r   rh   r  r.   rg   r)   r   r   r  s	            r/   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.....r1   c                   |j         j        }|                    d          rA|                    t          j                            t          j        d|                      t                      
                    |           d S )Nint8zraises on overflow for r%   )r7   r5   r   r-   r(   r)   r*   r+   r,   r   $test_add_series_with_extension_arrayrX  s       r/   r  z3TestArrowArray.test_add_series_with_extension_array$  s    :+??6"" 	!!??X?? "     	44T:::::r1   c                    t          j        t          d          5   ||t                                 d d d            d S # 1 swxY w Y   d S )Nz'.* not implemented for <class 'object'>r   )r(   r&   rd   r   )r   rh   r   s      r/   test_invalid_other_compz&TestArrowArray.test_invalid_other_comp0  s    ]'P
 
 
 	* 	* M$)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   AA	Amasked_dtype)booleanInt64r   c                   g d}t          j        ||          }t          j        ||                                 d          } |||          }|t          j        t          j        t          j        fv rg d}ng d}t          j        |t          t          	                                                    }t          j        ||           d S )N)r>   r   NrW   r   )FFN)TTN)re   r   loweroperatorro  rq  rn  r   r+   bool_r   r   )	r   r  r   rh   
ser_maskedser_par   expr   s	            r/   test_comp_masked_numpyz%TestArrowArray.test_comp_masked_numpy7  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0r1   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   )r   r   )r   r   r   r  )3__name__
__module____qualname__r   r(   r)   parametrizer   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r"  r%  r)  r-  r/  r1  r*   r4  r<  r>  r@  r   rR  rW  r[  r^  _combine_le_expected_dtyperj  r  r  r  r  r  r  r  r  r  r  __classcell__r   s   @r/   r   r     so       ? ? ? [[4*:;;: : <;:& & & & &&& & & & &= = =  6 6 68D D D"   * [Xe}55(4 (4 (4 (4 65(4T. . . .`1 1 1 1* [Xe}55$Q $Q $Q $Q 65$QL [Xe}55X X X X 65X$   0 [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!0F& & & & &* [YB00) ) ) ) 10)6 6 6 "1, , ,d d d dL
 
 
       D, , ,\
N 
N 
N 
N 
NM M M M M/ / /:
; 
; 
; 
; 
;* * * [^-L-L-LMM1 1 NM1 1 1 1 1r1   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  Frs  rW   TFN)	TTTTFNTNNre   r   r   r   r   rL   rM   r   r   s        r/   test_kleene_orzTestLogicalOps.test_kleene_orI  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	
 	
 	
 	
 	
r1   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  rs  rW   r  r   r  r   rL   r   s        r/   test_kleene_or_scalarz$TestLogicalOps.test_kleene_or_scalar_       I)))1CDDDU9X-?@@@
vx000
vx000 	ry,,,4FGGG	
 	
 	
 	
 	
r1   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  Frs  rW   r  )	TFNFFFNFNr  r  s        r/   test_kleene_andzTestLogicalOps.test_kleene_andx  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	
 	
 	
 	
 	
r1   )NFNFFFc                    t          j        g dd          }||z  }t          j        |d          }t          j        ||           ||z  }t          j        ||           t          j        |t          j        g dd                     d S r  r  r  s        r/   test_kleene_and_scalarz%TestLogicalOps.test_kleene_and_scalar  r  r1   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  Frs  rW   r  )	FTNTFNNNNr  r  s        r/   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	
 	
 	
 	
 	
r1   NNN)FTNc                    t          j        g dd          }||z  }t          j        |d          }t          j        ||           ||z  }t          j        ||           t          j        |t          j        g dd                     d S r  r  r  s        r/   test_kleene_xor_scalarz%TestLogicalOps.test_kleene_xor_scalar  s     I)))1CDDDU9X-?@@@
vx000
vx000 	ry,,,4FGGG	
 	
 	
 	
 	
r1   zop, exp__and____or____xor__c                <   g d}t          j        |d          }t          j        |d          } t          ||          |          }t          j        |dd gt          t                                                              }t          j        ||           d S )Nr  r  rW   rs  F)re   r   r   r   r+   r  r   r   )r   opr  rh   r  r  r   r   s           r/   test_logical_masked_numpyz(TestLogicalOps.test_logical_masked_numpy  s     #""Yt9555
4'9:::$$$Z009c5$/z"((**7M7MNNN
vx00000r1   )r  r  r  __doc__r  r(   r)   r  re   NAr   r  r  r  r  r  r  r  r   r1   r/   r  r  F  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 1r1   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  r9   rW   )Nr  rK   r9   )NNrx   r9   )NNr>   r9   )NN   r   r   )	r   re   r   r   r   r:  r   maskisnull)r   r7   leftrightr   r   s         r/   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,,,,,r1   c                 $   t          j        t          d          5  t          j        d           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        d           d d d            d S # 1 swxY w Y   d S )NzPassing pyarrow typer   z#not_a_real_dype[s, tz=UTC][pyarrow]zdecimal(7, 2)[pyarrow])r(   r&   rd   r   r$  r   r1   r/   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]rx  UTC)r   r$  r+   	timestamp)r7   r   s     r/   5test_arrowdtype_construct_from_string_supports_dt64tzr    sE    ,-LMME",,sE2233HHr1   c                     d} d}t          j        t          |          5  t          j        t          d          |            d d d            d S # 1 swxY w Y   d S )Nzint64[pyarrow]foobar[pyarrow]zYPassing pyarrow type specific parameters \(\[pyarrow\]\) in the string is not supported\.r   r  rW   )r(   r&   rd   re   r   range)invalidr&  s     r/   ;test_arrowdtype_construct_from_string_type_only_one_pyarrowr    s    -G	%  
*#	6	6	6 + +
	%(('****+ + + + + + + + + + + + + + + + + +s   $AAAc                    t          j        ddgt          t                                                              } t          j        ddgd          }| |z  }t          j        ddgt          t                                                              }t          j        ||           || z  }t          j        ||           d S )	NabcdefgrW   rB   r?   r   abcabc re   r   r   r+   r   r   r   )binaryrepeatr   r   reflected_results        r/    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4r1   c                 ^   t          j        ddgt          t                                                              } | dz  }t          j        ddgt          t                                                              }t          j        ||           d| z  }t          j        ||           d S )Nr  r  rW   rB   r  defgdefgr  )r  r   r   r  s       r/   .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6r1   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, ry  r=   rE  F)warnr   rH  r  ) r7   r5   takere   r   r+   rX   rb   rc   rY   r(   r&   r   r  r   rZ   r]   r   r   rk   r-   r)   r*   r_   r   rJ  r   to_pydatetimedtfloorr   r   )rh   r   r  r.   rg   r   r&  r   pd_dtypeser_npr   s              r/   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   rB   rB   r9   r9   r9   )r   r   r   rB   r9   r9   
multi_modesingle_mode)r3   c                    |                      |          }t          j        |          }|                    d          }t          j        |                      |                    }t	          j        ||           d S )NTdropna)r  re   r   moder   r   )rv   take_idxexp_idxrh   r   r   r   s          r/   test_mode_dropna_truer  {  sn     !!(++D
)D//CXXTX""Fy*//8899H68,,,,,r1   c                x   t          j        d d | d         g| j                  }|                    d          }t          j        d g| j                  }t	          j        ||           t          j        | d         d g| j                  }|                    d          }t	          j        ||           d S )Nr   rW   Fr  )re   r   r7   r  r   r   )rh   	more_nansr   r   s       r/   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,,,,,r1   zarrow_dtype, expected_type   f1f2c                :    t          |           j        |k    sJ d S r   )r   rk   )arrow_dtypeexpected_types     r/   test_arrow_dtype_typer$    s&    " k""'=888888r1   c                    t          t                              g d                    } t          |           sJ t          j        j                            |           sJ t	          j        t          t          |                               }||          }|t          j        |                    }t          j        ||           d S )NTFT)r"   r+   rf   r   re   corecommonis_bool_indexerr   r  r  r   asarrayr   r   )rh   rx  r   r   s       r/   test_is_bool_dtyper+    s    rxx(;(;(;<<==D7>))$/////
	%D		""##AtWFD!!"H68,,,,,r1   c                    | j         j        }t          j                            |          s>t          j                            |          st          j                            |          rt          |           sJ d S t          |           rJ d S r   )r7   r5   r+   rX   rZ   r   r]   r   rh   r   s     r/   test_is_numeric_dtyper.    s    j&G
W%%*8w''* 8w''*
  %%%%%%%#D)))))))r1   c                    | j         j        }t          j                            |          rt          |           sJ d S t          |           rJ d S r   )r7   r5   r+   rX   r   r   r-  s     r/   test_is_integer_dtyper0    sX    j&G	x7## *%%%%%%%#D)))))))r1   c                    | j         j        }t          j                            |          rt          |           sJ d S t          |           rJ d S r   )r7   r5   r+   rX   r[   r   r-  s     r/   test_is_signed_integer_dtyper2    sX    j&G	x!!'** 1&t,,,,,,,*40000000r1   c                    | j         j        }t          j                            |          rt          |           sJ d S t          |           rJ d S r   )r7   r5   r+   rX   r\   r   r-  s     r/   test_is_unsigned_integer_dtyper4    sX    j&G	x##G,, 3(.......,T2222222r1   c                    | j         j        }t          j                            |          rt          |           sJ d S t          |           rJ d S r   )r7   r5   r+   rX   rZ   r   r-  s     r/   test_is_float_dtyper6    sX    j&G	xG$$ (d#######!$'''''''r1   c                   t          j        |           }|                    d          }t          j        |          }t          j        |          }t          |          t          |          k    sJ t          j        |          }t          j        ||           t          j        |          }t          j        ||           d S )NrB   )	re   r   headpickledumpsr  loadsr   r   )rh   r   expected_slicedfull_pickledsliced_pickledr   result_sliceds          r/   test_pickle_roundtripr@    s    yHmmA&&O<))L\/22N|s>222222\,''F68,,,L00M=/:::::r1   c                   | j                                         j        }|                    | j                  }t          |j        t                    rJ t          |j        t                    sJ t          j        ||            d S r   )	r   	to_pandasrf   r   r7   r   r   r   r   )rh   pd_arrayr   s      r/   test_astype_from_non_pyarrowrD    st    ~''))/H__TZ((F(.*55555flJ/////#FD11111r1   c                     t          j        dg          } |                     d          }t          j        dgd          }t          j        ||           d S )N1.0r  r;   rW   re   r   r   r   r   r   r   r   s      r/   &test_astype_float_from_non_pyarrow_strrI    sU    
)UG

CZZ*++Fy#&8999H68,,,,,r1   c                     t          j        ddgid          } |                     dd          }t          j        ||            d S )Ncoli@fr   rW   float[pyarrow]r   )errors)re   rL  r   r   rO  )r   r   s     r/   test_astype_errors_ignorerN    sM    |UXJ/7GHHHH__-h_??F&(+++++r1   c                v   |                                  }| j        j        }t          j                            |          st          j                            |          rt          j        d           nZt          j        	                    |          r"t          j        t          |                     }nt          j        | j                  }| j        rOt          | j                  s;|                    t"                    }t$          j        |t%          j        |           <   t+          j        ||           d S )Nz Tested in test_to_numpy_temporal)r   r   rk   r+   rX   r`   r_   r(   r   r^   r   rf   list_hasnar   r7   r   r   re   r  r9  r   r   )rh   r   r   r   s       r/   test_to_numpy_with_defaultsrR  	  s    ]]__Fn!G	xG$$ ,(=(=g(F(F ,67777			'	"	" ,8DJJ''8DN++{ (+DJ77 (??6**"$%11111r1   c                    dd g} t          j        | d          }|                                }t          j        dt          j        g          }t          |d         t                    sJ t          j        ||           d S )Nr>   r   rW   r   )	re   rf   r   r   r   r   floatr   r   )rh   r  r   r   s       r/   test_to_numpy_int_with_narU    su    t9D
(4/
0
0
0C\\^^FxBF$$HfQi'''''11111r1   zna_val, exp)r>   r>   c                    t          j        t           j        t           j        gd          }|                    d|           }t	          j        |gdz  d          }t          j        ||           d S )Nnull[pyarrow]rW   r   r   rB   re   rf   r  r   r   r   r   )na_valr  r  r   r   s        r/   test_to_numpy_null_arrayrZ  &  sh     (BE25>
9
9
9C\\	F\;;Fx	333H11111r1   c                     t          j        t           j        t           j        gd          } |                     d           }t	          j        t           j        gdz  d          }t          j        ||           d S )NrW  rW   rB   r   rX  r  r   r   s      r/   !test_to_numpy_null_array_no_dtyper]  /  sf    
(BE25>
9
9
9C\\\%%Fx!8444H11111r1   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 )	NTrs  rW   F)r   r;   r   r<   )	re   rf   r  r   r   r  r   r   float32r\  s      r/   test_to_numpy_without_dtyper`  7  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1r1   c                   |                                  }|                                 }| d         |d d <   t          j        | d         gt          |           z  | j                  }t          j        ||           |                                 }| d d d         |d d <   | d d d         }t          j        ||           |                                 }|                                 |d d <   | }t          j        ||           d S )Nr   rW   r@   )copyr"   rl   r  r7   r   r   tolist)rh   origr   r   s       r/   test_setitem_null_slicere  D  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5r1   c                   | j         j        }t          j                            |          st          j                            |          rd}t          }d}nyt          j                            |          s>t          j                            |          st          j        	                    |          rd}t          j
        }d}nd}t          }d}t          j        ||          5  || d d <   d d d            d S # 1 swxY w Y   d S )N{   zInvalid value '123' for dtypefoozCould not convertzInvalid value 'foo' for dtyper   )r   rk   r+   rX   rb   rc   r   r   rZ   rY   r,   r(   r&   )rh   r   
fill_valueerrr&  s        r/   test_setitem_invalid_dtyperk  [  s@   n!G	x'"" .bh&8&8&A&A .
-
G$$.8((. 8w''.
 
o!
-	s#	&	&	&  QQQ                 s   &C;;C?C?c                 R   t                               t          j        d          t          j        d          gt                                                     } |                     t                                           t          t                                                     ij                  }t          j	        t          j        d          t          j        d          gt          t                                                               }t          j        ||           d S )Nz
2019-12-31rk   types_mapperrW   )r+   rf   re   	Timestampdate32rB  r   date64getr   r   r   )
date_arrayr   r   s      r/   &test_from_arrow_respecting_given_dtyperu  r  s    	l	#	#R\,%?%?@ryy{{   J !!iikk:biikk#:#:;? "  F y	l	#	#R\,%?%?@%%  H 68,,,,,r1   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!        @rm  rn  )
r+   rf   r   r   external_error_raisedr,   rB  r   r  rs  )rf   s    r/   -test_from_arrow_respecting_given_dtype_unsafery    s    HHc3ZbjjllH33E		!"/	2	2 Q QbjjllJrxxzz4J4J%K%OPPPQ Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Qs   AB::B>B>c                    d} t          j        dddt           j        g|           }|                    d          }t          j        dddt           j        g|           }t	          j        ||           t          j        d	t           j        d
g|           }|                    d          }t          j        dt           j        dg|           }t	          j        ||           d S )Nr  r<   gGz?g{Gz@rW   r>   g333333?g@g^@gp=
cL@r@   g      ^@g      N@)re   r   r  roundr   r   r7   r   r   r   s       r/   
test_roundr}    s    E
)S$be,E
:
:
:CYYq\\Fy#sC/u===H68,,,
)UBE5)
7
7
7CYYr]]Fy%-U;;;H68,,,,,r1   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)rB   r   r>   r@   zOsearchsorted requires array to be sorted, which is impossible with NAs present.r   )r  re   r  r   r(   r&   rK  searchsorted)rz   	as_seriesrM   rq   rL   r  r&  s          r/    test_searchsorted_with_na_raisesr    s    GAq!


			
*
*CeCG inn	0  
z	-	-	-                   s    BB
Bc                    t          j        t          j        ddgt          t                              t                                          t                                                                        ddgd          } |                                 }| 	                    ddg	          }t          j        ||           d S )
Nr   re  rW   r>   rB   rL   rM   rL   rM   )by)re   rL  r   r   r+   
dictionaryint32r   rb  sort_valuesr   rO  )rP  r   r   s      r/   test_sort_values_dictionaryr    s    	c
*R]]288::ryy{{-S-S"T"T   Q		
 	

 
B wwyyH^^Sz^**F&(+++++r1   patr  z	a[a-z]{2}c                T   t          j        dd gt          t                                                              }|j                            |           }t          j        dd gt          t                                                              }t          j	        ||           d S )Nr  rW   r>   )
re   r   r   r+   r   r   r   r  r   r   )r  r   r   r   s       r/   test_str_countr    s~    
)UDMBIIKK)@)@
A
A
ACW]]3Fy!T*RXXZZ*@*@AAAH68,,,,,r1   c                    t          j        dd gt          t                                                              } t          j        t          d          5  | j        	                    dd           d d d            d S # 1 swxY w Y   d S )Nr  rW   z	count notr   r>   flags)
re   r   r   r+   r   r(   r&   rd   r   r   r   s    r/    test_str_count_flags_unsupportedr    s    
)UDMBIIKK)@)@
A
A
AC	*+	>	>	> & &e1%%%& & & & & & & & & & & & & & & & & &   BB	Bzside, str_funcr  rjustr  ljustbothcenterc                   t          j        dd gt          t                                                              }|j                            d| d          }t          j         t          d|          dd          d gt          t                                                              }t          j	        ||           d S )NrL   rW   r  r   )widthsidefillchar)
re   r   r   r+   r   r   padr   r   r   )r  str_funcr   r   r   s        r/   test_str_padr    s     )S$Kz"))++'>'>
?
?
?CW[[qtc[::Fy	h		3	'	'.j6M6M  H 68,,,,,r1   c                    t          j        dd gt          t                                                              } t          j        t          d          5  | j        	                    ddd           d d d            d S # 1 swxY w Y   d S )NrL   rW   zInvalid side: foor   r  rh  r   )
re   r   r   r+   r   r(   r&   rK  r   r  r  s    r/   test_str_pad_invalid_sider    s    
)S$Kz"))++'>'>
?
?
?C	z)<	=	=	= # #Auc"""# # # # # # # # # # # # # # # # # #r  zpat, case, na, regex, expabFTAbz	a[a-z]{1}z	A[a-z]{1}c                X   t          j        dd gt          t                                                              }|j                            | |||          }t          j        |t          t                                                              }t          j	        ||           d S )Nr  rW   )casenaregex)
re   r   r   r+   r   r   containsr  r   r   )r  r  r  r  r  r   r   r   s           r/   test_str_containsr    s     )UDMBIIKK)@)@
A
A
ACWc5AAFyJrxxzz$:$:;;;H68,,,,,r1   c                    t          j        dd gt          t                                                              } t          j        t          d          5  | j        	                    dd           d d d            d S # 1 swxY w Y   d S )Nr  rW   zcontains notr   rL   r>   r  )
re   r   r   r+   r   r(   r&   rd   r   r  r  s    r/   #test_str_contains_flags_unsupportedr    s    
)UDMBIIKK)@)@
A
A
AC	*.	A	A	A ' 'A&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'r  zside, pat, na, exp
startswith)TNFrM   r  endswith)FTFbc)rL   eg)TNT)rL   rq   r  r   )FNFc                \   t          j        g dt          t                                                              } t          |j        |           ||          }t          j        |t          t                                                              }t          j	        ||           d S )N)r  NefgrW   )r  
re   r   r   r+   r   r   r   r  r   r   )r  r  r  r  r   r   r   s          r/   test_str_start_ends_withr    s     )(((
299;;0G0G
H
H
HC#WSWd##CB///FyJrxxzz$:$:;;;H68,,,,,r1   r  )r  r  c                \   t          j        d d gt          t                                                              } t          |j        |           d          }t          j        d d gt          t                                                              }t          j	        ||           d S )NrW   r   r  )r  r   r   r   s       r/   /test_str_starts_ends_with_all_nulls_empty_tupler    s    
)T4L
299;;(?(?
@
@
@C#WSWd##B''F y$Z

-C-CDDDH68,,,,,r1   zarg_name, argreplr  r  r>   c                    t          j        dd gt          t                                                              }dddd}||| <   t          j        t          d          5   |j        j	        d	i | d d d            d S # 1 swxY w Y   d S )
Nr  rW   rM   r   T)r  r  r  zreplace is not supportedr   r   )
re   r   r   r+   r   r(   r&   rd   r   replace)arg_nameargr   kwargss       r/   test_str_replace_unsupportedr    s    
 )UDMBIIKK)@)@
A
A
AC#55FF8	*2L	M	M	M " "!!&!!!" " " " " " " " " " " " " " " " " "s   #BB
Bzpat, repl, n, regex, exprL   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abacrW   )nr  )	re   r   r   r+   r   r   r  r   r   )r  r  r  r  r  r   r   r   s           r/   test_str_replacer    s     )VTN*RYY[[*A*A
B
B
BCW__S$!5_99FyJryy{{$;$;<<<H68,,,,,r1   c                 @   t          j        ddgt          t                                                              } | j                            dddd          }t          j        ddgt          t                                                              }t          j        ||           | 	                    t          j
        d	
                    }|j                            dddd          }|	                    |j                  }t          j        ||           | 	                    t          j
        d	t          j                            }|j                            dddd          }|	                    |j                  }t          j        ||           d S )Nr  aaaaaarW   rL   r  Tr  r!   storage)r  r   )re   r   r   r+   r   r   r  r   r   r   StringDtyper7   r   r   )	r   actualr   ser2actual2	expected2ser3actual3	expected3s	            r/   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.....r1   c                    t          j        dd gt          t                                                              } t          j        t          d          5  | j        	                    ddg           d d d            d S # 1 swxY w Y   d S )Nr  rW   zrepeat is notr   r>   rB   )
re   r   r   r+   r   r(   r&   rd   r   r  r  s    r/   test_str_repeat_unsupportedr  6  s    
)UDMBIIKK)@)@
A
A
AC	*/	B	B	B  1v                 r  c                 T   t          j        dd gt          t                                                              } | j                            d          }t          j        dd gt          t                                                              }t          j        ||           d S )Nr  rW   rB   r  )	re   r   r   r+   r   r   r  r   r   rH  s      r/   test_str_repeatr  <  s    
)UDMBIIKK)@)@
A
A
ACW^^AFy(D)BIIKK1H1HIIIH68,,,,,r1   zpat, case, na, expc                V   t          j        dd gt          t                                                              }|j                            | ||          }t          j        |t          t                                                              }t          j	        ||           d S )Nr  rW   r  r  )
re   r   r   r+   r   r   r   r  r   r   r  r  r  r  r   r   r   s          r/   test_str_matchr  C  s     )UDMBIIKK)@)@
A
A
ACW]]3Tb]11FyJrxxzz$:$:;;;H68,,,,,r1   TFFNAbc)FFFNabc$zabc\$FTFNzAbc$zAbc\$z(abc)|(abx)z((abc)|(abx))c                V   t          j        g dt          t                                                              }|j                            | ||          }t          j        |t          t                                                              }t          j	        ||           d S )N)r  r  z$abcNrW   r  )
re   r   r   r+   r   r   	fullmatchr  r   r   r  s          r/   test_str_fullmatchr  U  s    , )111BIIKK9P9P
Q
Q
QCWs"55FyJrxxzz$:$:;;;H68,,,,,r1   zsub, start, end, exp, exp_typr  c                (   t          j        dd gt          t                                                              }|j                            | ||          }t          j        |t          |                    }t          j        ||           d S )Nr  rW   )startend	re   r   r   r+   r   r   findr   r   )subr  r  r  exp_typr   r   r   s           r/   test_str_findr  q  sz    
 )UDMBIIKK)@)@
A
A
ACW\\#U\44FyJw$7$7888H68,,,,,r1   c                 Z   t          j        dd gt          t                                                              } | j                            ddd          }t          j        dd gt          t                                                              }t          j	        ||           d S )Nr  rW   rM   ir  r  r  r  r>   
re   r   r   r+   r   r   r  r  r   r   rH  s      r/   test_str_find_negative_startr  |  s    
)UDMBIIKK)@)@
A
A
ACW\\cA\66Fy!T*RXXZZ*@*@AAAH68,,,,,r1   c                    t          j        dd gt          t                                                              } | j                            dd          }t          j        dd gd          }t          j        ||           d S )Nr  rW   r  r>   )r  r@   r   r  rH  s      r/   test_str_find_no_endr    ss    
)UDMBIIKK)@)@
A
A
ACW\\$a\((Fy"d+;<<<H68,,,,,r1   c                 Z   t          j        dd gt          t                                                              } | j                            ddd          }t          j        dd gt          t                                                              }t          j	        ||           d S )NabcdefgrW   dr  r  r  r  rH  s      r/   )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,,,,,r1   c                 X   t          j        dd gt          t                                                              } | j                            dd          }t          j        dd gt          t                                                              }t          j	        ||           d S )Nr  rW   r  r  )r  r  r@   r  rH  s      r/   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,,,,,r1   z,https://github.com/apache/arrow/issues/36311r   r  )r  r   r>      Nr  )r  r@   r   r  r  Nr  )r  azabcerL   caac                z   t          j        g dt          t                                                              }|                    t          j        d                    }|j                            || |          }|j                            || |                              |j	                  }t          j        ||           |                    t          j        d                    }|j                            || |                              |j	                  }t          j        ||           d S )N)abcaadefr  abcdeddefgj8292r  rL   r  rW   rC  r  r!   )re   r   r   r+   r   r   r  r   r  r7   r   r   )	r  r  r  rx  object_seriesr   r   arrow_str_seriesresult2s	            r/   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-----r1   c                 Z   t          j        dd gt          t                                                              } | j                            ddd          }t          j        dd gt          t                                                              }t          j	        ||           d S )Nr  rW   r  r  r  r  r@   r  rH  s      r/   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,,,,,r1   zi, exp)rM   r  N)rq   r  NrB   )rq   NNr  )rL   NNr  c                P   t          j        g dt          t                                                              }|j                            |           }t          j        |t          t                                                              }t          j        ||           d S )N)r  deNrW   )	re   r   r   r+   r   r   rs  r   r   )r  r  r   r   r   s        r/   test_str_getr    s}     )'''z"))++/F/F
G
G
GCW[[^^FyJryy{{$;$;<<<H68,,,,,r1   z=TODO: StringMethods._validate should support Arrow list typesr   c            
        t          j        t          t                              t          d          t          d          d g                              } | j                            d          }t          j        g dt          t          	                                                    }t          j        ||           d S )Nr  123=za=b=cz1=2=3NrW   )re   r   r"   r+   rf   rP  r   joinr   r   r   r   rH  s      r/   test_str_joinr
    s    
 )'$u++tE{{D1Q(R(RSS
T
TCW\\#Fy111BIIKK9P9PQQQH68,,,,,r1   c                 R   t          j        t          t                              g d                              } | j                            d          }t          j        g dt          t                                                              }t          j
        ||           d S )N)r  r  Nr  r  rW   )re   r   r"   r+   rf   r   r	  r   r   r   r   rH  s      r/   test_str_join_string_typer    s    
)'1E1E1E(F(FGG
H
HCW\\#Fy111BIIKK9P9PQQQH68,,,,,r1   zstart, stop, step, expdcbac                T   t          j        dd gt          t                                                              }|j                            | ||          }t          j        |t          t                                                              }t          j        ||           d S NabcdrW   )	re   r   r   r+   r   r   slicer   r   )r  stopstepr  r   r   r   s          r/   test_str_slicer    s     )VTN*RYY[[*A*A
B
B
BCW]]5$--FyJryy{{$;$;<<<H68,,,,,r1   zstart, stop, repl, expaxcdxcdcdc                T   t          j        dd gt          t                                                              }|j                            | ||          }t          j        |t          t                                                              }t          j        ||           d S r  )	re   r   r   r+   r   r   slice_replacer   r   )r  r  r  r  r   r   r   s          r/   test_str_slice_replacer    s     )VTN*RYY[[*A*A
B
B
BCW""5$55FyJryy{{$;$;<<<H68,,,,,r1   zvalue, method, exp)a1cisalnumT)z!|,r  F)aaaisalphaT)z!!!r  F)u   ٠	isdecimalT)z~!r  F)rN   isdigitT)~r   F)r  islowerT)aaAr"  F)r  	isnumericT)11Ir$  F) isspaceT)r  r'  F)zThe ThatistitleT)zthe Thatr(  F)AAAisupperT)AAcr*  Fc                Z   t          j        | d gt          t                                                              } t          |j        |                      }t          j        |d gt          t                                                              }t          j	        ||           d S r   r  )valuer8  r  r   r   r   s         r/   test_str_is_functionsr.    s    0 )UDMBIIKK)@)@
A
A
AC%WSWf%%''Fy#tJrxxzz,B,BCCCH68,,,,,r1   zmethod, exp
capitalizezAbc deftitlezAbc DefswapcasezAbC Defr  zabc defupperzABC DEFcasefoldc                Z   t          j        dd gt          t                                                              } t          |j        |                       }t          j        |d gt          t                                                              }t          j        ||           d S )NzaBc dEFrW   	re   r   r   r+   r   r   r   r   r   )r8  r  r   r   r   s        r/   test_str_transform_functionsr6    s     )Y%Z		-D-D
E
E
EC%WSWf%%''Fy#tJryy{{,C,CDDDH68,,,,,r1   c                 R   t          j        dd gt          t                                                              } | j                                        }t          j        dd gt          t                                                              }t          j	        ||           d S )Nr  rW   r9   )
re   r   r   r+   r   r   r  r  r   r   rH  s      r/   test_str_lenr8  *  sz    
)VTN*RYY[[*A*A
B
B
BCW[[]]Fy!T*RXXZZ*@*@AAAH68,,,,,r1   zmethod, to_strip, val)ri  Nz abc )ri  r   xabcx)lstripNz abc)r:  r   xabc)rstripNzabc )r<  r   abcxc                ^   t          j        |d gt          t                                                              } t          |j        |           |          }t          j        dd gt          t                                                              }t          j        ||           d S )NrW   )to_stripr  r5  )r8  r?  valr   r   r   s         r/   test_str_striprA  1  s     )S$Kz"))++'>'>
?
?
?C%WSWf%%x888Fy%j.E.EFFFH68,,,,,r1   r@  abc123c                T   t          j        | d gt          t                                                              }|j                            d          }t          j        dd gt          t                                                              }t          j        ||           d S NrW   r  r  )	re   r   r   r+   r   r   removesuffixr   r   r@  r   r   r   s       r/   test_str_removesuffixrG  C      
)S$Kz"))++'>'>
?
?
?CW!!%((Fy%j.E.EFFFH68,,,,,r1   123abcc                T   t          j        | d gt          t                                                              }|j                            d          }t          j        dd gt          t                                                              }t          j        ||           d S rD  )	re   r   r   r+   r   r   removeprefixr   r   rF  s       r/   test_str_removeprefixrL  K  rH  r1   rM  r   strictzencoding, exputf8s   abcutf32s     a   b   c   c                V   t          j        dd gt          t                                                              }|j                            ||           }t          j        |d gt          t                                                              }t          j	        ||           d S Nr  rW   )
re   r   r   r+   r   r   encoder  r   r   )rM  encodingr  r   r   r   s         r/   test_str_encoderT  S  s     )UDMBIIKK)@)@
A
A
ACW^^Hf--Fy#tJryy{{,C,CDDDH68,,,,,r1   c           	        t          j        g dt          t                                                              }|j                            d|           }t          j        dgg d gt          t                              t                                                                        }t          j	        ||           d S )N)r  r  NrW   rM   r  )
re   r   r   r+   r   r   findalllist_r   r   )r  r   r   r   s       r/   test_str_findallrX  b  s    
)(((
299;;0G0G
H
H
HCW__S_..Fy3%T**RXXbiikk=R=R2S2STTTH68,,,,,r1   r8  rH  rindexz
start, endc                   t          j        dd gt          t                                                              } t          |j        |           d||          }t          j        dd gt          t                                                              }t          j	        ||           t          j        t          d          5   t          |j        |           d||           d d d            d S # 1 swxY w Y   d S )NabcbarW   rq   rB   zsubstring not foundr   rh  )re   r   r   r+   r   r   r   r  r   r   r(   r&   rK  )r8  r  r  r   r   r   s         r/   test_str_r_indexr\  j  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 rQ  )
re   r   r   r+   r   r   	normalizerb  r   r   )r]  r   r   r   s       r/   test_str_normalizerb  |  se    
)UDMBIIKK)@)@
A
A
ACWt$$FxxzzH68,,,,,r1   c                X   t          j        g dt          t                                                              }|j                            d| |          }t          j        g dt          t                                                              }t          j	        ||           d S )N)r[  rh  NrW   rq   )rB   r@   N)
re   r   r   r+   r   r   rfindr  r   r   )r  r  r   r   r   s        r/   test_str_rfindre    s     )****RYY[[2I2I
J
J
JCW]]3s++Fyj.D.DEEEH68,,,,,r1   c                 X   t          j        dd gt          t                                                              } | j                            ddi          }t          j        dd gt          t                                                              }t          j        ||           d S )Nr[  rW   a   rM   bbcbb)	re   r   r   r+   r   r   	translater   r   rH  s      r/   test_str_translaterj    s    
)WdO:biikk+B+B
C
C
CCWCy))Fy'4
299;;0G0GHHHH68,,,,,r1   c                 T   t          j        dd gt          t                                                              } | j                            d          }t          j        dd gt          t                                                              }t          j        ||           d S )Nr[  rW   r  zabc
ba)	re   r   r   r+   r   r   wrapr   r   rH  s      r/   test_str_wraprm    s}    
)WdO:biikk+B+B
C
C
CCW\\!__Fy)T**RYY[[2I2IJJJH68,,,,,r1   c                 f   t          j        g dt          t                                                              } | j                                        }t          j        g dg dg dgt          t                                                    g d          }t          j
        ||           d S )N)za|bNza|crW   )TTFr  r&  )rL   rM   rq   )r7   r{  )re   r   r   r+   r   r   get_dummiesrL  r  r   rO  rH  s      r/   test_get_dummiesrp    s    
)(((
299;;0G0G
H
H
HCW  ""F|			3335H5H5HI$$  H
 &(+++++r1   c                    t          j        dd gt          t                                                              } | j                            d          }t          j        g dg dgt          t                                                              }t          j	        ||           | j                            dd          }t          j        t          t                              g dd g                              }t          j        ||           | j                            d          }t          j        g dg dgt          t                                                              }t          j	        ||           | j                            dd          }t          j        t          t                              g dd g                              }t          j        ||           d S )	Nr[  rW   rM   )rL   rM   cbar  Fexpand)r  rM   rL   )re   r   r   r+   r   r   	partitionrL  r   rO  r"   rf   r   
rpartitionrH  s      r/   test_str_partitionrw    s   
)WdO:biikk+B+B
C
C
CCWs##F|			.../z"))++7N7N  H &(+++Ws511Fy,RXX7H7H7H$6O-P-PQQRRH68,,,W$$F|			.../z"))++7N7N  H &(+++WE22Fy,RXX7H7H7H$6O-P-PQQRRH68,,,,,r1   rsplitsplitc                \   t          j        dd gt          t                                                              } t          |j        |                       }t          j        t          t                              g dd g                              }t          j
        ||           d S )Nza1 cbc
brW   )a1cbcrM   )re   r   r   r+   r   r   r   r"   rf   r   r   r8  r   r   r   s       r/   test_str_split_pat_noner~    s     )[$'z"))++/F/F
G
G
GC%WSWf%%''Fy,RXX7I7I7I46P-Q-QRRSSH68,,,,,r1   c            	     z   t          j        g dt          t                                                              } | j                            d          }t          j        t          t                              g dg dd g                              }t          j
        ||           | j                            dd          }t          j        t          t                              dd	gd
d	gd g                              }t          j
        ||           | j                            dd          }t          j        t          t                              ddgddgd g                              }t          j
        ||           | j                            ddd          }t          j        t          t                              g d                    t          t                              g d                    d          }t          j        ||           | j                            dd          }t          j        t          t                              g d                    t          t                              g d                    d          }t          j        ||           d S )Na1cbcba2cbcbNrW   rq   r{  rM   rM   a2rM   rM   r>   r  r{  bcbr  z[1-2]T)r  rL   cbcb)r  rt  )rL   rL   N)r  r  Nr   r>   rC   rs  rL   r  Nr  NN)re   r   r   r+   r   r   ry  r"   rf   r   r   rL  rO  rH  s      r/   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 &(+++++r1   c            	        t          j        g dt          t                                                              } | j                            d          }t          j        t          t                              g dg dd g                              }t          j
        ||           | j                            dd          }t          j        t          t                              dd	gd
d	gd g                              }t          j
        ||           | j                            ddd          }t          j        t          t                              g d                    t          t                              g d                    d          }t          j        ||           | j                            dd          }t          j        t          t                              g d                    t          t                              g d                    d          }t          j        ||           d S )Nr  rW   rq   r  r  r>   r  a1cbrM   a2cbT)r  rt  )r  r  N)rM   rM   Nr  rC   rs  r  r  )re   r   r   r+   r   r   rx  r"   rf   r   r   rL  rO  rH  s      r/   test_str_rsplitr    s   
)...j6M6M
N
N
NCW^^C  FyBHH&6&6&68H8H8H$%OPPQQ H 68,,,W^^C1^%%FyBHHvsmfc]D%IJJKK H 68,,,W^^C1T^22F|"288,B,B,B#C#CDD"288,<,<,<#=#=>>	
 	
 H &(+++W^^C^--F|"288,A,A,A#B#BCC"288,@,@,@#A#ABB	
 	
 H &(+++++r1   c                    t          j        g dt          t                                                              } t          j        t          d          5  | j        	                    d           d d d            d S # 1 swxY w Y   d S )Nr{  b2c3rW   z*pat=.* must contain a symbolic group name.r   z[ab](\d))
re   r   r   r+   r   r(   r&   rK  r   extractr  s    r/   test_str_extract_non_symbolicr  	  s    
)&&&j.E.E
F
F
FC	z)U	V	V	V % %$$$% % % % % % % % % % % % % % % % % %s   B  BBrt  c           	        t          j        g dt          t                                                              }|j                            d|           }t          j        t          t          	                    g d                    t          t          	                    g d                    d          }t          j        ||           d S )Nr  rW   z(?P<letter>[ab])(?P<digit>\d)rs  )rL   rM   NrC   rN   N)letterdigit)re   r   r   r+   r   r   r  rL  r"   rf   r   rO  )rt  r   r   r   s       r/   test_str_extractr  	  s    
)&&&j.E.E
F
F
FCW__=f_MMF|)"((3C3C3C*D*DEE(2B2B2B)C)CDD	
 	
 H &(+++++r1   c            	     6   t          j        g dt          t                                                              } | j                            dd          }t          j        dt          t          	                    g d                    i          }t          j        ||           | j                            dd          }t          j        t          t          	                    g d                    d	          }t          j        ||           d S )
Nr  rW   z[ab](?P<digit>\d)Trs  r  r  Fr  )re   r   r   r+   r   r   r  rL  r"   rf   r   rO  r   rH  s      r/   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,,,,,r1   rJ  )rF  rE  rw  rx  c                    ddg}t                               |           }t          j        ||          }t          t                               dd g|                    }t          j        ||           d S )N1000NaTrW     rm  )r+   durationr"   r   rf   r   r   )rJ  stringsr   r   r   s        r/   #test_duration_from_strings_with_natr  7	  sm     uoGkk$G :7'RRRF"288T4Lw8#G#GHHH#FH55555r1   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   )r7   r5   r+   rX   r   r(   r&   AttributeErrorre   r   r  r   s     r/   test_unsupported_dtr  A	  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microsecondrK   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>   rB   r  r9   rx   rK   r  )r  r  r  r  r  r  r  r  rF  rW   rm  )re   r   rp  r   r+   r  r   r  r   r   rq  r   time64r"   rf   r   r   )propr   r   r   exp_types        r/   test_dt_propertiesr  J	  s	   . )L	 	 	 	
 d++,,  C  SVT""FH(D!! #99;;	Hd	#	# #99T??y,RXXx6FXX-V-VWWXXH68,,,,,r1   c            
     ^   t          j        t          dddd          t          dddd          t          dddd          d gt          t                              d                    	          } | j        j        }t          j        g d
t          t                                                    	          }t          j
        ||           | j        j        }t          j        g dt          t                                                    	          }t          j
        ||           d S )Nr  rG   rB   r  r  r  r  r  r>   rH   rE  rW   r  FFTN)re   r   r   r   r+   r  r  is_month_startr  r   r   is_month_endrH  s      r/   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,,,,,r1   c            
     ^   t          j        t          dddd          t          dddd          t          dddd          d gt          t                              d                              } | j        j        }t          j        g d	t          t                                                              }t          j
        ||           | j        j        }t          j        g d
t          t                                                              }t          j
        ||           d S )Nr  rG   rH   r  r  r>   rE  rW   r  r  )re   r   r   r   r+   r  r  is_year_startr  r   r   is_year_endrH  s      r/   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,,,,,r1   c            
     ^   t          j        t          dddd          t          dddd          t          dddd          d gt          t                              d                    	          } | j        j        }t          j        g d
t          t                                                    	          }t          j
        ||           | j        j        }t          j        g dt          t                                                    	          }t          j
        ||           d S )Nr        r  r  r>   rH   rE  rW   r  r  )re   r   r   r   r+   r  r  is_quarter_startr  r   r   is_quarter_endrH  s      r/   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,,,,,r1   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  r9   r>   rB   rE  rW   )rH   r     N)re   r   r   r   r+   r  r   r  r  r   r   r}  s       r/   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,,,,,r1   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  r9   r>   r  rB      ;   )r  r  r  r  r  r  rE  rW   )
re   r   r   r   r+   r  r  ra  r   r   rH  s      r/   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,,,,,r1   rE  rF  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>   rB   r  r  rW   r   rm  )re   r   r   r   r+   r  r  rJ  r   r"   rf   r  r   r   rJ  r   r   r   s       r/   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,,,,,r1   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>   rB   r  r  rF  r   rW   )
re   r   r   r   r+   r  r  r   r   maybe_get_tz)r   r   r   s      r/   
test_dt_tzr  	  sy    
)	t1!!	4	4	4d;dr2233  C VYFY+B////////r1   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>   rB   r  r  rF  rW   )r  r>   r>   r  )r  weekr  r   r{  r7   )re   r   r   r   r+   r  r  isocalendarrL  r   rO  rH  s      r/   test_dt_isocalendarr  	  s    
)	t1!!	4	4	4d;d++,,  C V!!F|	yyy!'''  H
 &(+++++r1   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>   rw  rW   )r0   re   r   r   r   r+   r  r   r  r   r   r   )r8  r  r.   r   r   r   s         r/   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,,,,,r1   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>   rB   r  r  rF  rW   z%Y-%m-%dT%H:%M:%Sz2023-01-02T03:00:00.000000000)r0   re   r   r   r   r+   r  r  strftimer   r   r   )r.   r   r   r   s       r/   test_dt_strftimer  
  s    w'''
)	t1!!	4	4	4d;d++,,  C V__011Fy	($/z"))++7N7N  H 68,,,,,r1   )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>   rB   r  r  rF  rW   zambiguous is not supported.r   1hr  	ambiguousznonexistent is not supported.nonexistent)re   r   r   r   r+   r  r(   r&   rd   r   r  r8  r   s     r/   *test_dt_roundlike_tz_options_not_supportedr  
  su   
)	t1!!	4	4	4d;d++,,  C 
*2O	P	P	P 7 766667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 
*2Q	R	R	R 9 9%88889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s$   *!BBB=!C++C/2C/c                   t          j        t          dddd          d gt          t                              d                              }t          j        t          d	          5   t          |j
        |           d
           d d d            n# 1 swxY w Y   t          j        t          d	          5   t          |j
        |           d            d d d            d S # 1 swxY w Y   d S )Nr  r>   rB   r  r  rF  rW   zfreq='1B' is not supportedr   1Bz$Must specify a valid frequency: None)re   r   r   r   r+   r  r(   r&   rK  r   r  r  s     r/   "test_dt_roundlike_unsupported_freqr  *
  si   
)	t1!!	4	4	4d;d++,,  C 
z)E	F	F	F & &%%%& & & & & & & & & & & & & & & 
z)O	P	P	P & &%%%& & & & & & & & & & & & & & & & & &s$   *BBB;C''C+.C+freq)Dhr  rx  rw  rE  rF  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  rF  rC   )re   r   r   r   r+   r  r   r  r   r   r   )r  r8  r   rg   r   r   s         r/   test_dt_ceil_year_floorr  7
  s     )	t1!	,	,	,d3 C ",,t,,--H&wsvv&&z4zz2299(CCH5WSZZ)),f55j$jjAAF68,,,,,r1   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 )NrE   r>   r  rF  rW   CThe behavior of ArrowTemporalProperties.to_pydatetime is deprecatedr   c              3  B   K   | ]}t          |          t          u V  d S r   )rk   r   .0ress     r/   	<genexpr>z(test_dt_to_pydatetime.<locals>.<genexpr>M
  s-      77tCyyH$777777r1   z>The behavior of DatetimeProperties.to_pydatetime is deprecateddatetime64[ns])r   re   r   r   r+   r  r   rU  FutureWarningr  r  r   rf   r   r   r   r   )rh   r   r&  r   r   s        r/   test_dt_to_pydatetimer  C
  s   T1a  (4A"6"67D
)D
2<<+=+= > >
?
?
?C
OC		#M	=	=	= ( (%%''( ( ( ( ( ( ( ( ( ( ( ( ( ( (xF+++H1117777777777
JC		#M	=	=	= C C::.//2@@BBC C C C C C C C C C C C C C C11111s$   ;B!!B%(B%-EEE	date_typer   @   c                   t          j        t          ddd          gt           t	          t
          d|                                            }d}t          j        t          |          5  t          j
        t          d          5  |j                                         d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )	NrE   rG   rH   r   rW   r   r   z#to_pydatetime cannot be called with)re   r   r   r   r   r+   r   rU  r  r(   r&   rK  r  r  )r	  r   r&  s      r/    test_dt_to_pydatetime_date_errorr  U
  sT    )	dB		8%7I%7%788::;;  C PC		#M	=	=	= # #]:-RSSS 	# 	#F  """	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	## # # # # # # # # # # # # # # # # #s6   /C	B1%C	1B5	5C	8B5	9C		CC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>   rB   r  r  rF  rW   z ambiguous='NaT' is not supportedr   r  r  r  z"nonexistent='NaT' is not supportedr  )re   r   r   r   r+   r  r(   r&   rd   r  tz_localizer  s    r/   *test_dt_tz_localize_unsupported_tz_optionsr  b
  si   
)	t1!!	4	4	4d;d++,,  C 
*2T	U	U	U 3 35E2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 
*2V	W	W	W 5 55e4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s$   *BBB9C##C'*C'c            	        t          j        t          dddd          d gt          t                              dd                    	          } | j                            d           }t          j        t          dddd          d gt          t                              d                    	          }t          j	        ||           d S )
Nr  r>   rB   r  r  rF  r  r  rW   )
re   r   r   r   r+   r  r  r  r   r   rH  s      r/   test_dt_tz_localize_noner  n
  s    
)	t1!!	4	4	4d;d|<<==  C V%%Fy	t1!!	4	4	4d;d++,,  H 68,,,,,r1   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>   rB   r  r  rW   r  rm  r0   re   r   r   r   r+   r  r  r  rf   computeassume_timezoner"   r   r   )rJ  r.   r   r   exp_datar   s         r/   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,,,,,r1   znonexistent, exp_dateshift_forwardrG   r  shift_backwardz2023-03-12 01:59:59.999999999c           	        t          |           t          j        t          ddddd          d gt	          t
                              d                              }|j                            d	| 
          }t
          	                    |d gt
                              d                    }t
          j
                            |d	          }t          j        t          |                    }t          j        ||           d S )Nr  r  rG   rB   r  )r  r  r  r  r  rF  rW   r  r  rm  r  )r  exp_dater.   r   r   r  r   s          r/   test_dt_tz_localize_nonexistentr  
  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,,,,,r1   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>   rB   r  r  rF  rW   z"Cannot convert tz-naive timestampsr   r  )re   r   r   r   r+   r  r(   r&   r   r  
tz_convertr  s    r/    test_dt_tz_convert_not_tz_raisesr  
  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        t          dddd          d gt          t                              d                              }t          j	        ||           d S )	Nr  r>   rB   r  r  rF  r  rW   
re   r   r   r   r+   r  r  r  r   r   rH  s      r/   test_dt_tz_convert_noner"  
  s    
)	t1!!	4	4	4d;dL99::  C Vt$$Fy	t1!!	4	4	4d;d++,,  H 68,,,,,r1   c           	        t          j        t          dddd          d gt          t                              | d                              }|j                            d          }t          j        t          dddd          d gt          t                              | d                              }t          j	        ||           d S )	Nr  r>   rB   r  r  r  rW   z
US/Easternr!  r  s       r/   test_dt_tz_convertr$  
  s    
)	t1!!	4	4	4d;dL99::  C V|,,Fy	t1!!	4	4	4d;dL99::  H 68,,,,,r1   r7   ztimestamp[ms][pyarrow]zduration[ms][pyarrow]c                    t          j        dd g|           }|j                            d          }|                    |                     dd                    }t          j        ||           d S )Nr  rW   rF  rw  )re   r   r  as_unitr   r  r   r   r|  s       r/   test_as_unitr'  
  sg     )T4L
.
.
.CV^^D!!Fzz%--d3344H68,,,,,r1   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>   rB   r  r9   r(  r)  r*  r+  rF  rW   rm  )re   r   	Timedeltar   r+   r  r   r  r"   rf   r  r   r   )r  r   r   r   s       r/   test_dt_timedelta_propertiesr/  
  s     )L	   	
 T**++  C SVT""FyBHHh%5BHHJJHGGHH H 68,,,,,r1   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>   rB   r  r9   r-  rF  rW   gN%  @rm  )re   r   r.  r   r+   r  r  total_secondsr"   rf   r   r   r   rH  s      r/   test_dt_timedelta_total_secondsr2  
  s    
)L	   	
 T**++  C V!!##FyBHHlD%9

HMMNN H 68,,,,,r1   c                 
   t          ddd          t          ddd          g} t          j        | t          t                              d                              }|j                                        }t          j	        | t                    }t          j        ||           t          d |D                       sJ |                    d          j                                        }t          j        ||           d S )	Nr>   rB   r  r9   rF  rW   c              3  B   K   | ]}t          |          t          u V  d S r   )rk   r   r  s     r/   r  z)test_dt_to_pytimedelta.<locals>.<genexpr>	  s-      88#tCyyI%888888r1   timedelta64[ns])r   re   r   r   r+   r  r  to_pytimedeltar   rf   r   r   r   r   r   rh   r   r   r   s       r/   test_dt_to_pytimedeltar8    s    aA	!Q 2 23D
)D
2;;t+<+< = =
>
>
>CV""$$FxF+++H1118888888888zz+,,/>>@@H11111r1   c                 ,   t          j        t          j        dddd          d gt          t                              d                              } | j        j        }t          j        g dg d	gg d
d          }t          j
        ||           d S )Nr>   rB   r  r9   r-  rF  rW   )r>   r   r   rB   r   r  r9   )NNNNNNN)r(  hoursminutesr)  millisecondsr*  r+  r   r  )re   r   r.  r   r+   r  r  
componentsrL  r   rO  rH  s      r/   test_dt_componentsr>    s    
)L	   	
 T**++  C VF|			 J J JK
 
 
   H &(+++++r1   r   c                    t          j        d gd          } t          ||           |          }|r| dk    }nt           j        }||u sJ d S )Nr  rW   r   r   )re   r   r   r  )r	  r   r   r   r   s        r/   #test_boolean_reduce_series_all_nullr@  .  sj     )TF"4
5
5
5C1WS011@@@F )U25Xr1   c                 &   g d} g d}d g}| |z   |z   }dgt          |           z  dgt          |          z  z   d gt          |          z  z   }t          j        |t                                                    }t          j        |d          }t          j        ||           ddg}t          j
        t          j        d	
          5  t          j        |t                                                     d d d            d S # 1 swxY w Y   d S )N)trueTRUETruerC   rF  )falseFALSEFalse0rD   TFrW   rs  rD  rh  zFailed to parser   )r  r"   r   r+   r  re   rf   r   r   r(   r&   r,   )true_stringsfalse_stringsnullsr  boolsr   r   s          r/   %test_from_sequence_of_strings_booleanrM  :  sj   777L;;;MFE]*U2G	\"""eWs=/A/A%AATFSQVZZDWW 
 !:7"((**UUUFx%7888H#FH555uoG	r.?	@	@	@ Q Q5gRXXZZPPPPQ Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Qs   .DD
D
c                    t          j        g |           }|                                }t          j        |t	          j        g t          j                           g          }t          j        ||           d S r   )	re   r   rb  concatr   rf   r  r   r   )r7   r   r   r   s       r/   %test_concat_empty_arrow_backed_seriesrP  L  sd    
)Be
$
$
$CxxzzHYBHRrx8889:;;F68,,,,,r1   r   zstring[pyarrow]c                    t                               d                                          }t          j        ||           }t          j        t          |          |           }t          j        ||           d S )Nzthe quick brown foxrW   )r+   rf   ry  re   r   r"   r   r   )r7   r  r   r   s       r/   test_series_from_string_arrayrR  T  sj    
(((..00
1
1C
)Cu
%
%
%Cy,S11???H3)))))r1   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     r/   rW  z#OldArrowExtensionArray.__getstate__^  s2    $$&&;//gr1   )r  r  r  rW  r  r  s   @r/   rT  rT  ]  s8                r1   rT  c                 >   t                               dg          } t          |           }t          j        t          j        |                    }t          j        ||           |j        t           	                    |           k    sJ t          |d          rJ d S )Nr>   rV  )r+   rf   rT  r9  r;  r:  r   r   r   chunked_arrayhasattr)rh   r   r   s      r/   #test_pickle_old_arrowextensionarrayr]  d  s    88QC==D%d++H\&,x0011F#FH555r//555555vw'''''''r1   c                 ,   d} t          t                              t          j        | ft          j                  g                    }|                                }d|t          j        | ft          j                  <   |j        |j        k    sJ d S )Nih6 rW   F)	r"   r+   r[  r   onesr  rb  zerosr   )Nr  r   s      r/   /test_setitem_boolean_replace_with_mask_segfaultrb  m  s~    A
b..BH0M0M0M/NOO
P
PCxxzzH*/C!RX&&&'=H.......r1   zdata, arrow_dtyperQ   rR   c                    t          |          }t          j        t          j        |           |          }t          j        | |          }t	          j        ||           d S r   )r   re   rf   r   r   r   )rh   r"  r7   r   r   s        r/   -test_conversion_large_dtypes_from_numpy_arrayrd  v  sZ     {##EXbhtnnE222FxE***H#FH55555r1   c                 D   t          j        dd d git          t                                                              } t          j        dddgid          }t          j        | |gd          }t          j        dg did          }t          j        ||           d S )	NrL   rW   r   r>   r   T)ignore_index)NNr   r>   )re   rL  r   r+   nullrO  r   rO  )rP  df2r   r   s       r/   test_concat_null_arrayri    s    	sT4L)BGGII1F1F	G	G	GB
,aV},<
=
=
=CYCyt444F|S"4"4"45=MNNNH&(+++++r1   c                    t          j        g dt          |                     }|                                }t          j        g dt          t                                                    g d          }t          j        ||           d S )Nr>   rB   r  rW   )r  rB   r>   r>   r!  g       @rw  r  r   r   r   r  25%50%75%r  r7   rH  )re   r   r   describer+   r   r   r   r   rh   r   r   s       r/   test_describe_numeric_datars    s     9YYYj&9&9:::D]]__Fy&&&&&III  H
 68,,,,,r1   c                X   t          j        t          dd          t          |                     }|                                }t          j        dgt          j        g d| j                                                  z   t          g d          }t          j
        ||           d S )	Nr>   rJ   rW   	   )rK   rB   r>   r  rK   rx   ru  rJ  rl  rp  )re   r   r  r   rq  to_timedeltarJ  rc  r   r   r   rr  s       r/   test_describe_timedelta_datarx    s     9U1b\\G)<)<===D]]__Fy	
bo333',GGGNNPPPIII  H
 68,,,,,r1   c                    t          j        t          dd          t                               }|                                }t          j        dg fddD             z   t
          g d          }t          j        ||           d S )	Nr>   rJ   rW   ru  c                R    g | ]#}t          j        |j        j                   $S ))r   rJ  )re   rp  r   rJ  )r  vr   s     r/   
<listcomp>z/test_describe_datetime_data.<locals>.<listcomp>  s>     
 
 
 Lwz===
 
 
r1   )rK   r>   r  rK   rx   ru  )r   r   r  rm  rn  ro  r  rp  )re   r   r  r   rq  r   r   r   rr  s   `   r/   test_describe_datetime_datar}    s     9U1b\\G)<)<===D]]__Fy	

 
 
 
'
 
 
	

 BBB  H 68,,,,,r1   c                    g d}t          j        |t          |                     }|                    d          }|d         }||k    sJ d S )Nrk  rW   g?r   )re   r   r   r  )r   rh   r   r   r   s        r/   test_quantile_temporalr    sZ    
 99D
)D
7 3 3
4
4
4C\\#F1vHXr1   c                    t                               t          j        d          gt                                                     } t          j        | t          | j                            }t          |          dk    sJ d S )Nz
2020-01-01rm  rW   z+0    2020-01-01
dtype: date32[day][pyarrow])
r+   rf   r   fromisoformatrq  re   r   r   rk   repr)arrow_dtr   s     r/   test_date32_reprr    si    xx+L99:xMMH
)HJx}$=$=
>
>
>C99FFFFFFFr1   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>   rF  rW   rB   )
re   to_datetimerw  r   r   r+   r  r  r   r   )data_tsdata_tdser_tsser_tdr   r   s         r/   2test_duration_overflow_from_ndarray_containing_natr    s    naY''Goq$i((GYwjd1C1C&D&DEEEFYwjT1B1B&C&CDDDFf_Fy!T*R\\$5G5G*H*HIIIH68,,,,,r1   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)floating
datetime64timedelta64zfin infer_dtype pd.NA is not ignored in these cases even with skipna=True in the list(data) check belowr   Tr   )r   infer_dtyperQ  r(   r)   r*   r-   rP  )rh   r.   r  r)   s       r/   test_infer_dtype_pyarrow_dtyper    s    
/$

C/!!!!{ "sGGG{  B ! 
 
 	D!!!#/$t**T:::::::::r1   c                   d}| j         }t          j                            |           r+t	          j        ||                              |          g}n0t	          j        ||| j                                      |          g}t          j
        ||           }t          t                              |g|                     }t          j        ||           d S )Nr  rv  rJ  r   rW   rm  )rJ  r+   rX   r`   re   r.  r&  rp  r   r"   rl   rf   r   r   )r   r@  rJ  seqr   r   s         r/   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5r1   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>   rv  r  rk  rm  )r>   r>   r>   )rJ  r+   rX   r`   re   r.  r&  rp  r   r"   rf   rb  r   r   r   rJ  r@  r  r   r   s         r/   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5r1   c                B   t          t                              g d|                     }| j        }|t	          j        d|                              |          z
  }t          t                              g d|                     }t          j        ||           d S )Nrk  rm  r>   rv  )r   r>   rB   )	r"   r+   rf   rJ  re   r.  r&  r   r   )r   r.   r  rJ  r   r   s         r/   test_arithmetic_temporalr    s    
 bhhyyywh??
@
@C<D2<---55d;;;F"288IIIG8#D#DEEH#FH55555r1   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>   rv  r  rk  rm  )FTT)rJ  r+   rX   r`   re   r.  r&  rp  r   r"   rf   r  r   r   r  s         r/   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5r1   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 )Nrk  rm  r>   rB   rv  r  )r"   r+   rf   rX   r`   re   r.  rJ  r&  r   rp  r   r   r  r   r   s       r/   test_getitem_temporalr  &  s    
 bhhyyywh??
@
@CVF	xG$$ 0<555==glKK&",//////<DDDLLL
 
 &",/////;(-''''Xr1   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>   rm  rv  r   r  )r"   r+   rf   rP  rX   r`   re   r.  rJ  r&  r  r   rp  r   r  s       r/   test_iter_temporalr  9  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r1   c                    t          j        | d d         g d          }|                    d                                          }t          j        ddgdd	d
g          }t	          j        ||           d S )Nr  )rL   rL   rM   r
  r   )levelrB   r>   r   rL   rM   rp  )re   r   groupbysizer   r   r7  s       r/   'test_groupby_series_size_returns_pa_intr  P  sy    
)D!HOOO
4
4
4C[[q[!!&&((Fy!Q'7SzJJJH68,,,,,r1   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>   rm  rW   rv  r  r   nat)r"   r+   rf   r   rX   r`   re   r.  rJ  r&  rp  r   r   r_   r  r  r   to_pandas_dtyperk   datetime_datar   r   )r   r7   r  r   r-  r  r   s          r/   test_to_numpy_temporalr  X  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1r1   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   )rH  r{  r7   )re   rL  r  r   Indexr   rO  )rm   rP  r   r   s       r/   %test_groupby_count_return_arrow_dtyper  u  s    	QFLII	J	JBZZ__""$$F|
Qhs%%%c
	  H &(+++++r1   c            	         t          j        ddgddggt          t                              t                                          d                              } | j        j        }|t          k    sJ d S )Nr>   rB   r  r9   )	list_sizerW   )	re   r   r   r+   rW  r  r7   rk   rP  )r   r   s     r/   test_fixed_size_listr    sf    
)
Q!Q
288BHHJJ!8+L+L M M  C Y^FT>>>>>>r1   c            	         t          j        t          j        dd          dgt          t	          d                              } t          |           }d}||k    sJ d S )N2012r  )rY  rK  r  r  z#     col
0  15340
1  15341
2  15342)re   rL  period_ranger   r#   r  )rP  r   r   s      r/   'test_arrowextensiondtype_dataframe_reprr    sm    	
***--..
 
 
B
 "XXF 8HXr1   c                     t          j        dd gd          } |                     d d          }t          j        dd gd          }t          j        ||           d S )NrB   r   rW   r  )ri     )re   r   powr   r   )kr   r   s      r/   test_pow_missing_operandr    sb    
	1d)#3444AUU4AU&&Fy!T*:;;;H68,,,,,r1   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 )NrB   rW   r>   r  zm8[ry  )	re   r   r   r   rf   rJ  r:  r   r   )r   ser1r  r   r   s        r/   test_duration_fillna_numpyr    s     9dAYj&9&9:::D9RXq!f,A',,A,A,ABBBCCD[[Fy!Qz'':':;;;H68,,,,,r1   c                     t          j        dgd          } t          j        d gd          }t          j        t          j        j        d          5  | |k      d d d            d S # 1 swxY w Y   d S )Nl            r  rW   r   zInteger valuer   )re   r   r(   r&   r+   r   r,   r  s     r/   +test_comparison_not_propagating_arrow_errorr    s    
	7)#4555A
	4& 0111A	rv*/	B	B	B  	A                 s   A((A,/A,c                 X   t                               t                               dg                                          t                               dg                                          g          } t	          j        t          |                     }|                                \  }}t          j        ddgt          j	                  }t	          j
        t          |                                                     }t          j        ||           t          j        ||           d S )NrL   rM   r   r>   rW   )r+   r[  rf   dictionary_encodere   r   r"   	factorizer   intpr  r   r   r   assert_index_equal)r   r   res_indicesres_uniquesexp_indiciesexp_uniquess         r/   !test_factorize_chunked_dictionaryr    s    	3%	*	*	,	,bhhuoo.O.O.Q.QR H )'11
2
2C"}}K8QF"'222L(.x/F/F/H/HIIJJK\:::+{33333r1   c                    t                               t          j        g d                                                    t                               t          j        g d                                                    g} t	          j        t          t                               |                               }|                    d          }t	          j	        g dt          t                                                               }t	          j        g dt	          j        |                    }t          j        ||           d S )N)rL   r   rq   rL   )rL   r  rq   category)rL   r   rq   r  rW   )rL   r   rq   rL   rL   r  rq   )
categories)r+   rf   r   r  re   r   r"   r[  r   r  r   r   CategoricalDtyper   r   )arrsr   r   r  r   s        r/   "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,,,,,r1   c                     t          j        dgd          } t          j        dgd          }t          j        dgd          }| |z  }t          j        ||           d S )Nir   rW   r9   r?   r  )rL   rM   r   r   s       r/   test_arrow_floordivr    si    
	2$.///A
	1#-...Ay"%5666H!VF68,,,,,r1   c                     t          j        dgd          } t          j        dgd          }| dz  }t          j        ||           d S )Nl     ^ \K r   rW   l    \p/i@B r  )rL   r   r   s      r/    test_arrow_floordiv_large_valuesr    sT    
	&'/?@@@Ay-0@AAAH)^F68,,,,,r1   r   r  c                h    t          j        dg|           }|dz  }t          j        ||           d S )N   rW   r>   r  )r7   rL   r   s      r/   )test_arrow_floordiv_large_integral_resultr    s>     		$%U333A!VF61%%%%%r1   c                    t          |           }t          j        dg|          }|dz  }t          j        dg|          }t          j        ||           d S )NirW      r@   )r   re   r   r   r   )r   r7   rL   r   r   s        r/   "test_arrow_floordiv_larger_divisorr    s_     wE
	3%u%%%A"WFy"U+++H68,,,,,r1   c                   t          j        |                                           j        }t	          j        |gt          |                     }t          j        t          j
        j        d          5  |dz   d d d            n# 1 swxY w Y   t          j        t          j
        j        d          5  |dz   d d d            d S # 1 swxY w Y   d S )NrW   zoverflow|not in ranger   r@   zdivide by zeror   )r   iinfor  r  re   r   r   r(   r&   r+   r   r,   )r   	min_valuerL   s      r/   $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 )NrB   rW   r   inf)re   r   rT  r   r   )r7   rL   r   r   s       r/   &test_arrow_floordiv_floating_0_divisorr    sX     		1#U###A!VFy%,,u555H68,,,,,r1   )r   r  r5  c                    t          j        dd gd          }|                    |           }t          j        dd g|           }t          j        ||           d S )Nr>   r   rW   rG  r|  s       r/   (test_astype_int_with_null_to_numpy_dtyper    s_     )QI%5
6
6
6CZZFy!T%000H68,,,,,r1   c                
   t          j        |                                           j        }t	          |           }t          j        |g|          }t          j        dg|          }||z  }t          j        ||           d S )NrW   r>   )	r   r  r  r  r   re   r   r   r   )r   	max_valuer7   rL   rM   r   s         r/   )test_arrow_integral_floordiv_large_valuesr    s}     0022337IwE
	9+U+++A
	1#U###A!VF61%%%%%r1   c                    t          j        dg|           }t          j        dg|           }t          j        dgd          }||z  }t          j        ||           d S )Nr   rW   r  r  r  r7   rL   rM   r   r   s        r/   &test_arrow_true_division_large_divisorr    sk     		1#U###A
	$%U333Ay!$6777HUF68,,,,,r1   c                    t          j        dg|           }t          j        dg|           }t          j        dg|           }||z  }t          j        ||           d S )Nr   rW   r  r  r  s        r/   'test_arrow_floor_division_large_divisorr  $  sj     		1#U###A
	$%U333Ay!E***H!VF68,,,,,r1   c            	         g d} t          j        | d          }t          j        t          t                              t          j        |           d                              }t          j        ||           d S )N)2020-01-01 04:30:00z2020-01-02 00:00:00z2020-01-03 00:00:00timestamp[ns][pyarrow]rW   Tfrom_pandas)re   r   r"   r+   rf   r  r   r   )string_datesr   r   s      r/   $test_string_to_datetime_parsing_castr  .  ss    XXXLY|+CDDDFyBHHR^L%A%AtHTTUU H 68,,,,,r1   z0pairwise_diff_checked not implemented in pyarrowc                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   )
r7   r  re   r   reescaper(   r&   r   interpolate)rh   r   r&  s      r/   test_interpolate_not_numericr  8  s     :! *iooiD39DDDEE]9C000 	* 	*IdOO'')))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	** *s   'BBBc                     dg} t          j        | d          }t          j        t          t                              t          dddd          gd	                              }t          j        ||           d S )
Nz11:41:43.076160ztime64[us][pyarrow]rW   r  )   +   i) Tr  )re   r   r"   r+   rf   r   r   r   )string_timesr   r   s      r/    test_string_to_time_parsing_castr  C  sw    %&LY|+@AAAFyBHHd2r2u&=&=%>DHQQRR H 68,,,,,r1   c                     t          j        g dd          } |                     d          }t          j        ddt          j        gd          }t          j        ||           d S )Nr   (   NrL  rW   r   r   r  )re   r   r   r   r   r   r   rH  s      r/   test_to_numpy_floatr  M  sb    
)NNN*:
;
;
;CZZ	""Fy"b"&);;;H68,,,,,r1   c                     t          j        dgd          } |                     t          j                  }t          j        dg          }t          j        ||           d S )Nr  r  rW   l    P)#-/ )re   r   r   r   r  rf   r   r   rH  s      r/   test_to_numpy_timestamp_to_intr  U  s\    
)*+3K
L
L
LC\\\))Fx,-..H11111r1   c                     t          j        g dd          } |                     d d          }t          j        ddt          j        gd          }t          j        ||           d S )	Nr  r   rW   c                    dS )N*   r   r   s    r/   r   z,test_map_numeric_na_action.<locals>.<lambda>_  s    r r1   r   r   g      E@r   )re   r   r   r   r   r   r   rH  s      r/   test_map_numeric_na_actionr  ]  sh    
)NNN*:
;
;
;CWW\\XW66Fy$bf-Y???H68,,,,,r1   (  r  
__future__r   r   r   r   r   decimalr   ior	   r
   r  r9  r  numpyr   r(   pandas._libsr   pandas._libs.tslibsr   pandas.compatr   r   r   r   r   r   r   r   r   pandas.core.dtypes.dtypesr   r   pandasre   pandas._testing_testingr   pandas.api.extensionsr   pandas.api.typesr   r   r   r   r   r   r   pandas.tests.extensionr    importorskipr+   pandas.core.arrays.arrow.arrayr"   (pandas.core.arrays.arrow.extension_typesr#   r0   fixtureALL_PYARROW_DTYPESr   r7   rh   rm   ro   rv   rz   r}   r   ExtensionTestsr   r  r)   r  ALL_INT_PYARROW_DTYPESr  r  r  r  r  r  r  r  r  r  byteslarge_binarylarge_stringrW  r  rP  
large_listmap_r   structr  dictr  r$  r+  r.  r0  r2  r4  r6  r@  rD  rI  rN  rR  rU  r   rZ  r]  r`  re  rk  ru  ry  r}  r  r  r  r  r  r  r  r  r  r  compiler  r  r  r  r  r  r  r  r  r  r  r  r  skipifr  r  r  r*   r  r
  r  r  r  r.  r6  r8  rA  rG  rL  rT  rX  r\  rb  re  rj  rm  rp  rw  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  rp  r  r  r"  r$  r'  r/  r2  r8  r>  r@  rM  rP  rR  rT  r]  rb  rd  ri  FLOAT_PYARROW_DTYPESrs  TIMEDELTA_PYARROW_DTYPESrx  DATETIME_PYARROW_DTYPESr}  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  SIGNED_INT_PYARROW_DTYPESr  r  FLOAT_PYARROW_DTYPES_STR_REPRr  r  r  r  r  r  r  r  r  r  r  r   r1   r/   <module>r)     s     # " " " " "                           				            ) ) ) ) ) )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
       
           , , , , , ,                  ( ' ' ' ' '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 
 
 
 
 
 
   u1 u1 u1 u1 u1T( u1 u1 u1p^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( ( (; ; ; 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	 *- -+ *- #
AtaY

+dAq1d)RXXZZ-PQ - -	 -- - -- - -- - -- - - !O    ";";";<< 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		LM - -  98- 1a&))- - *)- GX#677	
D		
A 4 4  874 %11- - 21- 	
D		
A - - -- - -- - -, , ,- - -. 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Aq!!"# ,- -- ,-6- - -&- - -&- - -& O]#CDD- - ED-- - -. $..- - /.- :::;;0 0 <;0, , , Z*\9,EF - - -- - - #=#=#=>>	9 	9 ?>	9 #=#=#=>>	& 	& ?>	& !I!I!IJJ#=#=#=>>- - ?> KJ-2 2 2$ r2h//	# 	# 0/	#	5 	5 	5
- 
- 
- $..- - /.-  	((A2AFFFG	<2<(GHHI - - -! ! !
- 
- 
- $..
- 
- /.
- #;=T"UVV- - WV- 		A			 - - -*- - -*2 2 2, , ,> D%=11  21Q Q Q$- - - 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	, 	, 	,    - - - 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-- - - !S   * * *- - -- - -2 2 2- - - - -r1   