
    g                   $   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 ddlmc 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/m0Z0m1Z1m2Z2m3Z3 ddl4m5Z5  ej6        d          Z7ddl8m9Z9 ddl:m;Z; d Z< ej=        e)j>        e?          d             Z@ej=        d             ZAej=        d             ZB ej=        ddg          d             ZCej=        d             ZDej=        d             ZEej=        d             ZFej=        d             ZG G d de5jH                  ZI G d  d!          ZJejK        L                    d"e)jM                  d#             ZNd$ ZOd% ZPd& ZQd' ZRd( ZSejK        L                    d)g d*          ejK        L                    d+d,d,d,gg          d-                         ZTejK        L                    d.g d/d0dggg d1dgggd2d3g4          d5             ZUd6 ZVejK        L                    d7e7W                                eXge7W                    d8          eXge7Y                                eXge7Z                                e?ge7[                    e7\                                          e]ge7^                    e7\                                          e]ge7_                    e7`                                e7\                                          e]ge7a                    d9e7b                                fd:e7`                                fg          ecge7d                    e7\                                e7\                                          e$gg	          d;             Zed< Zfd= Zgd> Zhd? Zid@ ZjdA ZkdB ZldC ZmdD ZndE ZodF ZpdG ZqejK        L                    dHej+        ejr        fdIg          dJ             ZsdK ZtdL ZudM ZvdN ZwdO ZxdP ZydQ ZzdR Z{dS Z|ejK        L                    dTdUdVg          dW             Z}dX Z~ejK        L                    dYdZd[gd\d]gd^d_gg          d`             Zda ZejK        L                    dbdcddddddedggdfdeddddddggdcdddedddedeggdgddddededggdhdeddedddggg          di             Zdj ZejK        L                    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jK        L                    dydz          d{             ZejK        L                    d|dT ej        dn          gd}e?gd~ddgddgg          d             ZejK        L                    ddddddddggdddddddggddddeddggg          d             Zd Zd Zd ZejK        L                    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jK        L                    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g
          d             ZejK        L                    ddcddddge7                                gdrddddge7\                                gg          d             Zd Zd ZejK        L                    ddg dgdg dgdg dgdg dgd0g dgg          d             ZejK                            de          d             Zd ZejK        L                    dddddcdggddddcdggddddrdggg          d             ZejK        L                    ddddddggdddddggdddddggg          d             ZejK        L                    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jK        L                    dddgddgddgddgddgddgg          dӄ             ZdԄ ZejK        L                    dg d֢g dעg dآg d٢g dڢg dۢg          d܄             ZejK        L                    dddUg          d߄             ZejK        L                    dddUg          d             ZejK        L                    dddg          ejK        L                    dddgddgg          d                         ZejK        L                    dddg          d             ZejK        L                    dddg          ejK        L                    dddgdd0gg          d                         ZejK        L                    dddg          d             ZejK        L                    dddgdd0gg          d             Zd Zd Zd Zd ZejK        L                    dddg          d             Zd Zd Zd ZejK        L                    d deddg          d             Zd ZejK        L                    dg d          d             Zd ZejK        L                    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jK        L                    dd!d"g          d#             Zd$ ZejK        L                    dd%d&g          d'             ZejK        L                    d(g d)          d*             Zd+ ZejK        L                    dǐd,d-gd.d/gg          d0             Zd1 ZejK        L                    dg d2          d3             ZejK        L                    dg d2          d4             ZejK        L                    d5g d6          ejK        L                    dg d2          d7                         Zd8 ZejK        L                    d9d:d;g          d<             Zd= Zd> ZejK        L                    dd%d&g          d?             ZejK        L                    d@dA ed	ddBdC          gdD e&j        dE          gg          dF             ZÐdG ZĐdH ZejK        L                    dd%d&g          dI             ZejK        L                    dJdKdLg          dM             ZejK        L                    ddNdgdOdgdPdgdQd0gg          dR             ZȐdS ZɐdT ZʐdU ZejK        L                    dVdeddg          dW             Z̐dX Z͐dY ZejK        L                    dJdZd[g          d\             Z G d] d^e9          ZАd_ Zѐd` ZejK        L                    dadbdcge7Y                                fddnge7Z                                fg          dd             ZӐde ZejK        L                    d"e)jM        e)j        z             df             ZejK        L                    d"e)j                  dg             ZejK        L                    d"e)j                  dh             ZejK        L                    d"e)j        e)j        z             di             Zېdj Zܐdk Zݐdl ZejK        L                    d"e)j        e)j        z             dm             ZejK        L                    d"e)j        e)j        z             dn             ZejK        L                    d"e)j        e)j        z             do             ZejK        L                    d"e)j        e)j        z             dp             ZejK        L                    d"e)j        e)j        z             dq             ZejK        L                    d"e)j        e)j        z             dr             Zds ZejK        L                    d"e)j        e)j        z   e4          ejK        L                    dJdeg          dt                         Zdu Zdv Zdw Zdx ZejK        L                    d"e)j                  dy             Zdz Zd{ Zd| Zd} Zd~ ZejK        L                    dJddg          d             ZejK        L                    d"e)j                  d             ZejK        L                    d"e)j                  d             ZejK        L                    dJe)j                  d             ZejK        L                    dJg d          d             ZejK        L                    d"e)jM                  d             ZejK        L                    dJddg          d             ZejK        L                    dJddg          d             Z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)
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     m/var/www/html/nodeJS/PythonScripts/venv3.11/lib/python3.11/site-packages/pandas/tests/extension/test_arrow.py_require_timezone_databaser.   G   st     "!2!4!4 "{  ?; ! 
 
 	D!!!!!" " " "    )paramsidsc                ,    t          | j                  S )N)pyarrow_dtype)r   param)r,   s    r-   dtyper5   S   s    GM2222r/   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   !   >r5   )r3   r)   types
is_booleanis_floatingis_signed_integeris_unsigned_integer
is_decimalr   is_dater   is_timestampr   is_durationr   is_timer   	is_string	is_binaryNotImplementedErrorpdarray)r5   pa_dtypedatas      r-   rf   rf   X   s   "H	x8$$ 5"e}q D6)T5MB,>>$G4QV-W			h	'	' 3"SzA~&$)::dVCsDkQ		#	#H	-	- 1"1vzTF"b"X]2dV;q"gE		%	%h	/	/ /"1vzTF"aVb[0D69QGC			X	&	& -"S\\75>>*Q.fv0256 f u~~wx001	2 	 
		(	#	# %"$1tD"b112Q6fD!QdAq!1!12R78 f D"b!!4b"#5#56	7 	 
		x	(	( "dAq!Q1--xaAq!Q/O/OPSTTfaA&&q!Q(?(?@2EF f a##XdAq%9%9:	; 	 
		h	'	' "q\\9Q??+a/f}}ill+b01 f ~~y}}-	. 	 
		(	#	# ""a[[$q"++&*fAqzz41::&+, f Aqzz41::&	' 	 
		H	%	% "SzA~&#sb8D6AS#JN			H	%	% "d|a4&(D$<"+<<vEtT!!8D&&&&r/   c                d    t          |                               d| d         g| j                  S )zLength-2 array with [NA, Valid]Nr   rU   type_from_sequencer5   )rf   s    r-   data_missingrk      s-     ::$$dDG_DJ$GGGr/   rf   rk   )r0   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.
    rf   rk   N)r4   )r,   rf   rk   s      r-   all_datarm      s1     }	.	(	( 
)	(r/   c           
     Z   | j         }t          j                            |          rd}d}d}n`t          j                            |          rd}d}d}n9t          j                            |          rd}d}d}nt          j                            |          rd}d}d	}nt          j                            |          r5t          d
dd          }t          ddd          }t          ddd          }nt          j        	                    |          r:t          d
dddddd          }t          ddd          }t          dddd          }n>t          j                            |          r/t          d          }t          d          }t          dd          }nt          j                            |          r1t          dd          }t          dd          }t          dd          }nt          j                            |          rd}d}d}nzt          j                            |          rd}d}d}nTt          j                            |          r.t%          d          }t%          d          }t%          d          }nt&          t)          j        ||dd||||g|           S )z
    Data for factorization, grouping, and unique tests.

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

    Where A < B < C and NA is missing
    FTgr:   g?r>   r   r<   rH   rD   rE   rF   i  rC   rG   r7   rJ   rK   crO   rP      cz-1.1rB   z1.1NrU   )r3   r)   rV   rW   rX   rY   rZ   r\   r   r]   r   r^   r   r_   r   r`   ra   r[   r   rb   rc   rd   )r5   re   ABCs        r-   data_for_groupingrt      s    "H	x8$$ -"			h	'	' )"		#	#H	-	- %"		%	%h	/	/ !"			(	#	# "r2q!q!			x	(	( "T1aAq!,,T1a  T1a##			h	'	' "bMMaLLaOO			(	#	# "AJJBKKRLL			H	%	% "			H	%	% 	"			X	&	& "FOOENNENN!!8Q4q!Q2%@@@@r/   c                ~    t          |                               | d         | d         | d         g| j                  S )zn
    Length-3 array with a known sort order.

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

    This should be three items [B, NA, A] with
    A < B and NA missing.
    r   r@   r7   rU   rh   rw   s    r-   data_missing_for_sortingr{      ry   r/   c                T   | j         j        }t          j                            |          s]t          j                            |          s>t          j                            |          st          j                            |          rt          j	        dgdz  | j                   S | S )z3Length-100 array in which all the elements are two.r@   d   rU   )
r5   r3   r)   rV   
is_integerrX   r[   r^   rc   rd   rf   re   s     r-   data_for_twosr      s     z'H
H%%58))5 8x((5 8))	5 xc	4444Kr/   c            
          e Zd Zd Zej                            dddg          d             Z fdZej                            dd ej	        d	 e
j        d
                    g           fd            Z fdZd Zd Zd Zd ZdMdZej                            dddg           fd            ZdMdZdNdZej                            dddg           fd            Zej                            dddg           fd             ZdOd!Zej                            dddg           fd"            Zej                            d#g d$          d%             Z f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        !                    d0d-           fd1            Z$ej        !                    d0d-           fd2            Z%ej                            d3d
e&g          ej                            d4d5d6g          d7                         Z' fd8Z(ej                            d9d:d;g           fd<            Z)d= Z*d>Z+e,Z-d? Z.dPd@Z/dA Z0dQdCZ1dD Z2 fdEZ3 fdFZ4dG Z5 fdHZ6dI Z7ej                            dJg dK          dL             Z8 xZ9S )RTestArrowArrayc                j    t          j        |          }|                     ||||d                    d S )Nr   )rc   Series_compare_other)selfrf   comparison_opsers       r-   test_compare_scalarz"TestArrowArray.test_compare_scalar  s3    iooC}d1g>>>>>r/   	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>       r/   r   rU   c                    | S r   r   r   s    r-   r   z)TestArrowArray.test_map.<locals>.<lambda>  r   r/   float32[pyarrow]float64r5   na_value)	r5   kindmapto_numpyobjecttmassert_numpy_array_equalnpnan)r   rk   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9r/   c                    |j         j        }t          j                            |          r8|                    t          j                            d| d                     nxt          j        	                    |          r|j
        t          j                            |          r3|                    t          j                            d                     t                                          |           d S )NzFor z .astype(str) decodes.r%   8pd.Timestamp/pd.Timedelta repr different from numpy repr)r5   r3   r)   rV   ra   r+   r&   r'   r(   r]   tzr^   supertest_astype_strr   rf   r,   re   	__class__s       r-   r   zTestArrowArray.test_astype_str!  s    :+8h'' 	!!B(BBB "      H!!(++	080CX!!(++ 1D!!U "    
 	%%%%%r/   nullable_string_dtypezstring[python]string[pyarrow]r   )marksc                T   |j         j        }t          j                            |          r|j        t          j                            |          r3|                    t          j	        
                    d                     t                                          ||           d S )Nr   r   )r5   r3   r)   rV   r]   r   r^   r+   r&   r'   r(   r   test_astype_string)r   rf   r   r,   re   r   s        r-   r   z!TestArrowArray.test_astype_string3  s     :+H!!(++	080CX!!(++ 1D!!U "    
 	""4)>?????r/   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   )r5   r3   r)   rV   r`   r[   r+   r&   r'   r(   r   test_from_dtype)r   rf   r,   re   r%   r   s        r-   r   zTestArrowArray.test_from_dtypeF  s    :+8h'' 
	28+>+>x+H+H 
	x!!(++ KLJJJ!!! "    
 	%%%%%r/   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 NrU   )
ri   rj   	_pa_arrayr5   r   assert_extension_array_equal
isinstancer)   ChunkedArraycombine_chunksr   rf   r   s      r-   test_from_sequence_pa_arrayz*TestArrowArray.test_from_sequence_pa_arrayU  s     d**4>*LL
'555&*BO<<<<<d**N))++4: + 
 
 	'555&*BO<<<<<<<r/   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-1rU   )r&   r$   rb   r    _from_sequence_of_stringsr)   month_day_nano_interval)r   r,   s     r-   *test_from_sequence_pa_array_notimplementedz9TestArrowArray.test_from_sequence_pa_array_notimplementedb  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#   rU   )r5   r3   r)   rV   	is_time64equalsr   r+   r&   r'   r(   r   r^   r[   ArrowNotImplementedErrorr]   r   r.   r   caststringri   r   r   r   r   )r   rf   r,   re   pa_arrayr   s         r-   &test_from_sequence_of_strings_pa_arrayz5TestArrowArray.test_from_sequence_of_strings_pa_arrayh  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5r/   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)
getattrr5   r3   r)   rV   is_temporal	bit_widthastyper   assert_series_equal)r   r   op_namer   r   pa_typeint_typer   s           r-   check_accumulatezTestArrowArray.check_accumulate  s    &g&&f555))8(( 	- B&&++**X&&C]]8,,Fy)):73::i00'::&III
vxUCCCCCCr/   r   	pd.Seriesr   strreturnboolc                   |j         j        }t          j                            |          s>t          j                            |          st          j                            |          r|dv 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cumminF)r   r   r   r   r   T)
r5   r3   r)   rV   r`   ra   r[   rW   r   r^   )r   r   r   r   s       r-   _supports_accumulationz%TestArrowArray._supports_accumulation  s     )) Hw''	x!!'**	 x""7++	
 CCCu DX  )) 	999u :X!!'** 	(""28+?+?+H+H"uI%%utr/   r   TFc                   |j         j        }|}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 )Nr   znot slowz  not implemented for pyarrow < 9r   z not implemented for r%   r$   )r5   r3   rc   r   r   r   test_accumulate_seriesr   configoptionmarkexprr&   skipr'   r(   r+   r)   rV   rW   r[   rb   r   )r   rf   all_numeric_accumulationsr   r,   r   r   r   optr'   r   s             r-   r   z%TestArrowArray.test_accumulate_series  s   **+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3r/   c                   |j         }|j        }t          j                            |          r*|dv r&t          j                            |          r|dv rnFd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)sumvarskewkurtprod)r   F)	r   meanmedianr   stdsemr   r   r   )anyallT)r5   r3   r)   rV   r   r^   r`   ra   )r   r   r   r5   re   s        r-   _supports_reductionz"TestArrowArray._supports_reduction  s    	 &8)) 	g :
 /
 /
 x##H-- 'W2D2DuHx((	,.H,>,>x,H,H	 

 

 

 5 H  **	H((22	 >))
 5tr/   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   )
r5   r3   r)   rV   r~   rX   r   r   r   assert_almost_equal)r   r   r   r   re   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0r/   c                   |j         }|j        }t          j                            t
          | dt          j         d|           }|dv r(|j        s|j	        dk    r|
                    |           n8t          j                            |          r|dv r|
                    |           t                                          |||           d S )N is not implemented in pyarrow= for r#   >   r   r   rK   >   r   r   r   r   )r5   r3   r&   r'   r(   	TypeErrorr)   __version___is_numericr   r+   rV   rW   r   test_reduce_series_numeric)	r   rf   all_numeric_reductionsr   r,   r5   re   
xfail_markr   s	           r-   r	  z)TestArrowArray.test_reduce_series_numeric  s    
&[&&) ; ;>; ;08; ; ' 
 

 "%555 6!&s!2!2
++++X  ** 	,/E J
 0
 0
 
+++**41GPPPPPr/   c                x   |j         j        }t          j                            t
          | dt          j         d|           }t          j        	                    |          st          j        
                    |          r|                    |           t                                          |||          S )Nr  r  r#   )r5   r3   r&   r'   r(   r  r)   r  rV   r`   ra   r+   r   test_reduce_series_boolean)	r   rf   all_boolean_reductionsr   r   r,   re   r  r   s	           r-   r  z)TestArrowArray.test_reduce_series_boolean+  s     :+[&&) ; ;>; ;08; ; ' 
 

 8h'' 	,28+=+=h+G+G 	, 
+++ww11$8NPVWWWr/   c                    |dv r|j         }n<|j         j        dk    r|dvr|j         }n d}n|dv rd}ndddd|j         j                 }|S )	N)maxminzdecimal128(7, 3)[pyarrow])r   r   r   float64[pyarrow])r   r   r   r   r   r   uint64[pyarrow])iuf)r5   namer   )r   arrr   r   	cmp_dtypes        r-   _get_expected_reduction_dtypez,TestArrowArray._get_expected_reduction_dtype>  s    n$$	IIY^:::666I		.		@@@*II &&'  in	I
 r/   c                    |}|dk    rA|j         j        r5t          j                            d          }|                    |           t                                          |||          S )Nr   zskew not implementedr   )r5   r  r&   r'   r(   r+   r   test_reduce_frame)r   rf   r
  r   r,   r   r'   r   s          r-   r  z TestArrowArray.test_reduce_frameP  sj    (fz% *{((0F(GG##D)))ww((/EvNNNr/   typ)int64uint64r   c                p    t          j        ddg| d                                          }|dk    sJ d S )Nr<   r@   	[pyarrow]rU         ?)rc   r   r   )r   r  r   s      r-   test_median_not_approximatez*TestArrowArray.test_median_not_approximateY  sB     Aq6C):):):;;;BBDD}}}}}}r/   c                D   |j         }t          |          rt          j        g d|g dd          }t          j        dg          }t          j        d|           }t          j        t          |          5  |
                    d                                           d d d            n# 1 swxY w Y   |
                    d                              d	          j        }t          j        ||           d S t                                          |           d S )
N)r<   r<   r@   r@      r%  r<   r7   )r<   r<   r<   r<   r<   r<   r<   r<   rq   rr   rs   rs   z%agg function failed [how->sum,dtype->r   rq   T)numeric_only)r5   r   rc   	DataFrameIndexreescaper&   r$   r  groupbyr   columnsr   assert_index_equalr   test_in_numeric_groupby)r   rt   r5   dfr   msgr   r   s          r-   r/  z&TestArrowArray.test_in_numeric_groupby_  sU   !'5!! 	?111*111  B xH)KEKKLLCy444 & &

3##%%%& & & & & & & & & & & & & & &ZZ__((d(;;CF!&(33333GG++,=>>>>>s   ;(B//B36B3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   )r3   r)   rV   r[   r+   r&   r'   r(   rb   r`   r$   r  construct_from_stringr  r   #test_construct_from_string_own_name)r   r5   r,   re   r1  r   s        r-   r4  z2TestArrowArray.test_construct_from_string_own_names  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#   )r3   r)   rV   r`   ri   is_dtyper  r[   r+   r&   r'   r(   rb   r   test_is_dtype_from_namer   r5   r,   re   r   s       r-   r7  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2r/   c                    d}t          j        t          |          5  t          |                              d           d d d            d S # 1 swxY w Y   d S )Nz*'another_type' must end with '\[pyarrow\]'r   another_type)r&   r$   r  ri   r3  )r   r5   r1  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   )r3   r)   rV   r\   r_   r]   r   ra   r[   r+   r&   r'   r(   r   test_get_common_dtyper8  s       r-   r=  z$TestArrowArray.test_get_common_dtype  s    &HX&&	x))	 %%h//	 5=K4Kx!!(++ 5Lx""8,, 5L !!# > > > "     	%%e,,,,,r/   c                    |j         }t          j                            |          rt	          |          sJ d S t                                          |           d S r   )r3   r)   rV   r`   r   r   test_is_not_string_type)r   r5   re   r   s      r-   r?  z&TestArrowArray.test_is_not_string_type  s[    &8h'' 	3"5)))))))GG++E22222r/   z6GH 45419: pyarrow.ChunkedArray does not support views.)r%   runc                J    t                                          |           d S r   )r   	test_viewr   rf   r   s     r-   rB  zTestArrowArray.test_view  s#     	$r/   c                   ||                                           }|d         }|                    |          }||usJ t          j        ||           |                    d          }||usJ t          j        ||           d S )Nr   backfill)method)isnafillnar   r   )r   rf   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5r/   z5GH 45419: pyarrow.ChunkedArray does not support viewsc                J    t                                          |           d S r   )r   test_transposerC  s     r-   rL  zTestArrowArray.test_transpose  s#     	t$$$$$r/   c                J    t                                          |           d S r   )r   test_setitem_preserves_viewsrC  s     r-   rN  z+TestArrowArray.test_setitem_preserves_views  s#     	,,T22222r/   dtype_backendenginero   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_dtyperU   F)indexna_rep)r5   rP  rO  )r5   r3   r)   rV   r[   r+   r&   r'   r(   rb   r]   unit
ValueErrorra   rc   r(  r   r   to_csvr   r   r	   r
   read_csvr   assert_frame_equal)
r   rP  rf   rO  r,   re   r0  
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/////r/   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)r5   r3   r)   rV   rW   r~   r`   r+   r&   r'   r(   r   r   r   assert_produces_warningDeprecationWarningr   test_invertr   s       r-   rc  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#   )r5   r3   r)   rV   rZ   r+   r&   r'   r(   r*   r   	test_diff)r   rf   rd  r,   re   r   s        r-   rf  zTestArrowArray.test_diff  s    :+8''11 	gll!!?SXSSGSSS "     	$(((((r/   c                    |d d         }|                                 }|j        t          t                                                    k    sJ d S )NrH   )value_countsr5   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5r/   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-   rl  z1TestArrowArray.get_op_from_name.<locals>.rtruediv*  s    yA&r/   	rfloordivc                ,    t          j        ||           S r   )r   floor_dividero  s     r-   r   z1TestArrowArray.get_op_from_name.<locals>.<lambda>/  s    1 5 5 r/   )stripr   get_op_from_name)r   r   short_opnamerl  s       r-   ru  zTestArrowArray.get_op_from_name%  sY    }}S)):%%' ' ' O[((555"7+++r/   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)r  r  rS  z	duration[]__pow__)rV  r-  ) r   r   rc   r(  ilocr5   r3   r   r)   rV   rX   r~   r^   r]   r\   r[   rd   _valuesri   	is_date64rX  r   r   r   r   r   	get_dtyper   r   r   rV  r-  )r   r   objotherpointwise_resultr   	was_frameexpected_dataoriginal_dtypeorig_pa_typepa_expectedrX  r  	alt_dtypepd_expecteds                  r-   _cast_pointwise_resultz%TestArrowArray._cast_pointwise_result3  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r/   c                    |dv p|dv ot            rt          j                            |          p"|dv ot          j                            |          S )N__add____radd__r  r  r  __rfloordiv____sub____rsub__)r   r)   rV   r^   r   )r   opnamere   s      r-   _is_temporal_supportedz%TestArrowArray._is_temporal_supported  sp     11 WX 100/ $$X..
/ 00 /$$X..	
r/   type[Exception] | Nonec                   |dv r| j         S t          j        |          }|j        }|                     ||          }|dv rt
          }n|rd }n|dv rAt          j                            |          st          j        	                    |          rd }nlt          j        
                    |          sKt          j                            |          s,t          j                            |          st          j        }nd }|S )N)
__divmod____rdivmod__>   __mod____rmod__r  )
divmod_excr   r  r3   r  rb   r)   rV   r`   ra   rX   r~   r[   r   )r   r   r  r  r5   re   arrow_temporal_supportedexcs           r-   _get_expected_exceptionz&TestArrowArray._get_expected_exception  s    333?"S!! &#'#>#>w#Q#Q  
 
 
 &CC% 	CC///Hx(( 0,.H,>,>x,H,H 0 CCH  **
	x""8,,
	 x""8,,
	 -CCC
r/   c                   d }|                      ||          }|dk    rt          j                            |          s>t          j                            |          st          j                            |          r%t          j                            d|           }n1|rot          j        	                    |          s#|dv rLt          j        
                    |          r-t          j                            t          | d| d          }n|dk    rjt          j                            |          st          j                            |          r,t          j                            t          j        d	          }nP|d
k    rJt          j                            |          r+t          j                            t          j        d	          }|S )N__rpow__z<GH#29997: 1**pandas.NA == 1 while 1**pyarrow.NA == NULL for r   r  z  not supported betweenpd.NA and z Python scalarr#   r  zdivide by 0r  )r  r)   rV   rX   r~   r[   r&   r'   r(   r_   r^   r  r*   )r   r  re   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
 r/   c                (   |j         j        }|dk    r4t          j                            |          rt          j        d           n{|dv rwt          j                            |          st          j                            |          r9|                    t
          j	        
                    t          d                     |                     ||          }||                    |           t                                          ||           d S Nr  z%Skip testing Python string formatting__rmul____mul__'Can only string multiply by an integer.r#   )r5   r3   r)   rV   ra   r&   r   r`   r+   r'   r(   r  r  r   test_arith_series_with_scalarr   rf   all_arithmetic_operatorsr,   re   r'   r   s         r-   r  z,TestArrowArray.test_arith_series_with_scalar  s   :+#z11bh6H6H6R6R1K?@@@@%)@@@Hx(( A,.H,>,>x,H,H A !!$-V "     ++,DhOO%%%--d4LMMMMMr/   c                f   |j         j        }|dk    rSt          j                            |          st          j                            |          rt          j        d           n{|dv rwt          j                            |          st          j                            |          r9|                    t          j	        
                    t          d                     |                     ||          }||                    |           t                                          ||           d S r  )r5   r3   r)   rV   r`   ra   r&   r   r+   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?@@@@%)@@@Hx(( A,.H,>,>x,H,H A !!$-V "     ++,DhOO%%%,,T3KLLLLLr/   c                $   |j         j        }|dv rat          j                            |          rB|                    t          j                            t          j	        d|                      n{|dv rwt          j        
                    |          st          j                            |          r9|                    t          j                            t          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  r  r   rU   )r5   r3   r)   rV   rZ   r+   r&   r'   r(   r*   ra   r`   r  r  rc   r   rd   r  lencheck_opname)	r   rf   r  r,   re   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 "      &)@@@Hx(( A,.H,>,>x,H,H A !!$-V "     ++,DhOO%%%*ioo 	"(CHQK=3s88#;4:NNNOO#w.....r/   c                   |j         j        }|                    d          rA|                    t          j                            t          j        d|                      t                      
                    |           d S )Nint8zraises on overflow for r#   )r5   r3   r   r+   r&   r'   r(   r)   r*   r   $test_add_series_with_extension_arrayr   s       r-   r  z3TestArrowArray.test_add_series_with_extension_arrayI  s    :+??6"" 	!!??X?? "     	44T:::::r/   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$   rb   r   )r   rf   r   s      r-   test_invalid_other_compz&TestArrowArray.test_invalid_other_compU  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   NrU   r!  )FFN)TTN)rc   r   loweroperatorrz  r|  ry  r   r)   bool_r   r   )	r   r  r   rf   
ser_maskedser_par   expr   s	            r-   test_comp_masked_numpyz%TestArrowArray.test_comp_masked_numpy\  s     ||Yt<888
4,*<*<*>*>'I'I'IJJJvz22X[(+x{CCC&&&CC$$$C9S
288::(>(>???
vx00000r/   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   )r   r   )r   r   r   r  ):__name__
__module____qualname__r   r&   r'   parametrizer   r   r4   td
skip_if_nor   r   r   r   r   r   r   r   r   r  r	  r  r  r  r#  r/  r4  r7  r;  r=  r?  r(   rB  rJ  rL  rN  r   r^  rc  rf  ri  _combine_le_expected_dtyperb   r  ru  r  r  r  r  r  r  r  r  r  r  __classcell__r   s   @r-   r   r     s       ? ? ? [[4*:;;: : <;:& & & & &$ [FL*-"-	2J2JKKK	
 
@ 
@ 
@ 
@ 
@& & & & &= = =  6 6 68D D D"   , [Xe}55"4 "4 "4 "4 65"4H* * * *X1 1 1 1* [Xe}55Q Q Q Q 65Q2 [Xe}55X X X X 65X$   $ [Xe}55O O O O 65O [U$B$B$BCC  DC
? ? ? ? ?(; ; ; ; ;(3 3 3 3 3> > >
- - - - -&3 3 3 3 3 [GU            
6 
6 
6 [FE   % % % % % [FE   3 3 3 3 3 [_y*.EFF[XX77!0 !0 87 GF!0F& & & & &* [YB00) ) ) ) 10)6 6 6 "1$J, , ,d d d dL
 
 
" " " "H, , ,\N N N N N(M M M M M,#/ #/ #/J
; 
; 
; 
; 
;* * * [^-L-L-LMM1 1 NM1 1 1 1 1r/   r   c                     e Zd ZdZd Zej                            ddg dfej	        g dfdg df e
j        d          g dfdg d	f e
j        d          g d	fg          d
             Zd Zej                            ddg dfej	        g dfdg d	fdg df e
j        d          g d	f e
j        d          g dfg          d             Zd Zej                            ddg dfej	        g dfdg df e
j        d          g df e
j        d          g d	fg          d             Zej                            dddgddgddgg          d             ZdS )TestLogicalOpsz1Various Series and DataFrame logical ops methods.c                   t          j        dgdz  dgdz  z   d gdz  z   d          }t          j        g ddz  d          }||z  }t          j        g dd          }t          j        ||           ||z  }t          j        ||           t          j        |t          j        dgdz  dgdz  z   d gdz  z   d                     t          j        |t          j        g ddz  d                     d S )NTr%  Fr~  rU   TFN)	TTTTFNTNNrc   r   r   r   r   rJ   rK   r   r   s        r-   test_kleene_orzTestLogicalOps.test_kleene_orn  s;   ItfqjE7Q;.$!;CUVVVI)))A-5GHHHQ9CCC$
 
 
 	vx000Q
vx000 	ItfqjE7Q;.$!;CUVVV	
 	
 	
 	ry,,,q08JKKK	
 	
 	
 	
 	
r/   zother, expectedN)TNNT)TTTFr  c                    t          j        g dd          }||z  }t          j        |d          }t          j        ||           ||z  }t          j        ||           t          j        |t          j        g dd                     d S Nr  r~  rU   r  r   r  r   rJ   r   s        r-   test_kleene_or_scalarz$TestLogicalOps.test_kleene_or_scalar       I)))1CDDDU9X-?@@@
vx000
vx000 	ry,,,4FGGG	
 	
 	
 	
 	
r/   c                   t          j        dgdz  dgdz  z   d gdz  z   d          }t          j        g ddz  d          }||z  }t          j        g dd          }t          j        ||           ||z  }t          j        ||           t          j        |t          j        dgdz  dgdz  z   d gdz  z   d                     t          j        |t          j        g ddz  d                     d S )NTr%  Fr~  rU   r  )	TFNFFFNFNr  r  s        r-   test_kleene_andzTestLogicalOps.test_kleene_and  s;   ItfqjE7Q;.$!;CUVVVI)))A-5GHHHQ9GGG$
 
 
 	vx000Q
vx000 	ItfqjE7Q;.$!;CUVVV	
 	
 	
 	ry,,,q08JKKK	
 	
 	
 	
 	
r/   )NFNFFFc                    t          j        g dd          }||z  }t          j        |d          }t          j        ||           ||z  }t          j        ||           t          j        |t          j        g dd                     d S r  r  r  s        r-   test_kleene_and_scalarz%TestLogicalOps.test_kleene_and_scalar  r  r/   c                   t          j        dgdz  dgdz  z   d gdz  z   d          }t          j        g ddz  d          }||z  }t          j        g dd          }t          j        ||           ||z  }t          j        ||           t          j        |t          j        dgdz  dgdz  z   d gdz  z   d                     t          j        |t          j        g ddz  d                     d S )NTr%  Fr~  rU   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	
 	
 	
 	
 	
r/   NNN)FTNc                    t          j        g dd          }||z  }t          j        |d          }t          j        ||           ||z  }t          j        ||           t          j        |t          j        g dd                     d S r  r  r  s        r-   test_kleene_xor_scalarz%TestLogicalOps.test_kleene_xor_scalar  s     I)))1CDDDU9X-?@@@
vx000
vx000 	ry,,,4FGGG	
 	
 	
 	
 	
r/   zop, exp__and____or____xor__c                <   g d}t          j        |d          }t          j        |d          } t          ||          |          }t          j        |dd gt          t                                                              }t          j        ||           d S )Nr  r  rU   r~  F)rc   r   r   r   r)   r  r   r   )r   opr  rf   r  r  r   r   s           r-   test_logical_masked_numpyz(TestLogicalOps.test_logical_masked_numpy  s     #""Yt9555
4'9:::$$$Z009c5$/z"((**7M7MNNN
vx00000r/   )r  r  r  __doc__r  r&   r'   r  rc   NAr   r  r  r  r  r  r  r  r   r/   r-   r  r  k  s       ;;
 
 
, [%%%&U&&&'%%%&RXd^^///0'''(RXe__1112	

 

 

 


 
 
, [&&&'U'''(&&&')))*RXd^^0001RXe__3334	

 

 

 


 
 
, [%%%&U&&&'&&&'RXd^^0001RXe__1112	
	 	
 
	 	
 [t	
 1 1 1 1 1r/   r  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%  r7   rU   )Nr%  rI   r7   )NNrv   r7   )NNr<   r7   )NN   r   r   )	r   rc   r   r   r   rH  r   maskisnull)r   r5   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,,,,,r/   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$   rb   r   r3  r   r/   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]r  UTC)r   r3  r)   	timestamp)r5   r   s     r-   5test_arrowdtype_construct_from_string_supports_dt64tzr  -  sE    ,-LMME",,sE2233HHr/   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%  rU   )r&   r$   rb   rc   r   range)invalidr1  s     r-   ;test_arrowdtype_construct_from_string_type_only_one_pyarrowr  4  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defgrU   r@   r=   r   abcabc rc   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4r/   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  rU   r@   r  defgdefgr	  )r
  r   r   r  s       r-   .test_arrow_string_multiplication_scalar_repeatr  J  s    Yvj.E.EFFFFaZFy(J/z"))++7N7NOOOH68,,,6z+X66666r/   interpolation)linearr  highernearestmidpointquantiler;   c                   | j         j        }|                     g d          } t          j        |           }t
          j                            |          s>t
          j                            |          st
          j        	                    |          rSd}t          j        t
          j        |          5  |                    ||           d d d            n# 1 swxY w Y   d S t
          j                            |          s>t
          j                            |          st
          j                            |          rnkt
          j                            | j        j                  rnA|                    t          j                            t
          j        d|                      |                     g d          } t          j        |           }|                    ||          }t
          j                            |          r|dvr|j        rd|j         d	|j         d
}nd|j         d
}|                    |          }	|	                    ||          }
|dk    r*|j        dk    r|
                    d          }
||
k    sJ nR|j        dk    r|
j                            d          }
t=          j        ||
                    | j                              d S |dk    r|| d         k    sJ d S t          j        |                     ddg          ddg          }
t
          j                            |          s>t
          j                            |          st
          j                            |          r*|
                    d          }
|                    d          }t=          j        ||
           d S )Nr   r   r   z=Function 'quantile' has no kernel matching input types \(.*\)r   )qr  z&quantile not supported by pyarrow for r#   )r  r  zM8[z, r  r;   rS  F)warnr   rV  r  ) r5   r3   takerc   r   r)   rV   r`   ra   rW   r&   r$   r   r  r~   rX   r[   r   r   ri   r+   r'   r(   r]   r   rX  r   to_pydatetimedtfloorr   r   )rf   r  r  r,   re   r   r1  r   pd_dtypeser_npr   s              r-   test_quantiler"  S  s   
 z'H99YYYD
)D//C 	8$$
8h''
 8x((
 O]26cBBB 	B 	BLL8=LAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	H%%
8))
 8x((

 				dn1	2	2 
K2JJJ   	
 	
 	
 99YYYD
)D//C\\HM\BBF	xX&& =@S+S+S ; 	.<X]<<hk<<<HH-X]---HH%%??X]?KKs??}$$#11u1==X%%%%%}$$#;,,T22"68??4:+F+FGGG3a       9TYY1v..sCjAAAH))	7x##H--	7 x""8,,	7
  '9::H]]#566F
vx00000s   7CC"Cztake_idx, exp_idx)r   r   r@   r@   r7   r7   r7   )r   r   r   r@   r7   r7   
multi_modesingle_mode)r1   c                    |                      |          }t          j        |          }|                    d          }t          j        |                      |                    }t	          j        ||           d S )NTdropna)r  rc   r   moder   r   )rt   take_idxexp_idxrf   r   r   r   s          r-   test_mode_dropna_truer+    sn     !!(++D
)D//CXXTX""Fy*//8899H68,,,,,r/   c                x   t          j        d d | d         g| j                  }|                    d          }t          j        d g| j                  }t	          j        ||           t          j        | d         d g| j                  }|                    d          }t	          j        ||           d S )Nr   rU   Fr&  )rc   r   r5   r(  r   r   )rf   	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,,,,,r/   zarrow_dtype, expected_type   f1f2c                :    t          |           j        |k    sJ d S r   )r   ri   )arrow_dtypeexpected_types     r-   test_arrow_dtype_typer5    s&    " k""'=888888r/   c                    t          t                              g d                    } t          |           sJ t          j        j                            |           sJ t	          j        t          t          |                               }||          }|t          j        |                    }t          j        ||           d S )NTFT)r    r)   rd   r   rc   corecommonis_bool_indexerr   r  r  r   asarrayr   r   )rf   r  r   r   s       r-   test_is_bool_dtyper<    s    rxx(;(;(;<<==D7>))$/////
	%D		""##AtWFD!!"H68,,,,,r/   c                    | j         j        }t          j                            |          s>t          j                            |          st          j                            |          rt          |           sJ d S t          |           rJ d S r   )r5   r3   r)   rV   rX   r~   r[   r   rf   r   s     r-   test_is_numeric_dtyper?    s    j&G
W%%*8w''* 8w''*
  %%%%%%%#D)))))))r/   c                    | j         j        }t          j                            |          rt          |           sJ d S t          |           rJ d S r   )r5   r3   r)   rV   r~   r   r>  s     r-   test_is_integer_dtyperA    sX    j&G	x7## *%%%%%%%#D)))))))r/   c                    | j         j        }t          j                            |          rt          |           sJ d S t          |           rJ d S r   )r5   r3   r)   rV   rY   r   r>  s     r-   test_is_signed_integer_dtyperC    sX    j&G	x!!'** 1&t,,,,,,,*40000000r/   c                    | j         j        }t          j                            |          rt          |           sJ d S t          |           rJ d S r   )r5   r3   r)   rV   rZ   r   r>  s     r-   test_is_unsigned_integer_dtyperE    sX    j&G	x##G,, 3(.......,T2222222r/   c                    | j         j        }t          j                            |          rt          |           sJ d S t          |           rJ d S r   )r5   r3   r)   rV   rX   r   r>  s     r-   test_is_float_dtyperG    sX    j&G	xG$$ (d#######!$'''''''r/   c                   t          j        |           }|                    d          }t          j        |          }t          j        |          }t          |          t          |          k    sJ t          j        |          }t          j        ||           t          j        |          }t          j        ||           d S )Nr@   )	rc   r   headpickledumpsr  loadsr   r   )rf   r   expected_slicedfull_pickledsliced_pickledr   result_sliceds          r-   test_pickle_roundtriprQ    s    yHmmA&&O<))L\/22N|s>222222\,''F68,,,L00M=/:::::r/   c                   | j                                         j        }|                    | j                  }t          |j        t                    rJ t          |j        t                    sJ t          j        ||            d S r   )	r   	to_pandasrd   r   r5   r   r   r   r   )rf   pd_arrayr   s      r-   test_astype_from_non_pyarrowrU    st    ~''))/H__TZ((F(.*55555flJ/////#FD11111r/   c                     t          j        dg          } |                     d          }t          j        dgd          }t          j        ||           d S )N1.0r  r9   rU   rc   r   r   r   r   r   r   r   s      r-   &test_astype_float_from_non_pyarrow_strrZ    sU    
)UG

CZZ*++Fy#&8999H68,,,,,r/   c                     t          j        ddgid          } |                     dd          }t          j        ||            d S )Ncoli@fr   rU   float[pyarrow]r   )errors)rc   r(  r   r   r\  )r   r   s     r-   test_astype_errors_ignorer_  '  sM    |UXJ/7GHHHH__-h_??F&(+++++r/   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   ri   r)   rV   r^   r]   r&   r   r\   r   rd   list_hasnar   r5   r   r   rc   r  rG  r   r   )rf   r   r   r   s       r-   test_to_numpy_with_defaultsrc  .  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1r/   c                    dd g} t          j        | d          }|                                }t          j        dt          j        g          }t          |d         t                    sJ t          j        ||           d S )Nr<   r   rU   r   )	rc   rd   r   r   r   r   floatr   r   )rf   r  r   r   s       r-   test_to_numpy_int_with_narf  A  su    t9D
(4/
0
0
0C\\^^FxBF$$HfQi'''''11111r/   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]rU   r   r   r@   rc   rd   r  r   r   r   r   )na_valr  r  r   r   s        r-   test_to_numpy_null_arrayrk  K  sh     (BE25>
9
9
9C\\	F\;;Fx	333H11111r/   c                     t          j        t           j        t           j        gd          } |                     d           }t	          j        t           j        gdz  d          }t          j        ||           d S )Nrh  rU   r@   r   ri  r  r   r   s      r-   !test_to_numpy_null_array_no_dtypern  T  sf    
(BE25>
9
9
9C\\\%%Fx!8444H11111r/   c                    t          j        dt           j        gd          } |                     d          }t	          j        ddgt          j                  }t          j        ||           t          j        dt           j        gd          } |                     d          }t	          j        ddgt          j                  }t          j        ||           d S )	NTr~  rU   F)r   r9   r   r:   )	rc   rd   r  r   r   r  r   r   float32rm  s      r-   test_to_numpy_without_dtyperq  \  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1r/   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   rU   r>   )copyr    rj   r  r5   r   r   tolist)rf   origr   r   s       r-   test_setitem_null_slicerv  i  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5r/   c                   | j         j        }t          j                            |          st          j                            |          rd}t          }d}nyt          j                            |          s>t          j                            |          st          j        	                    |          rd}t          j
        }d}nd}t          }d}t          j        ||          5  || d d <   d d d            d S # 1 swxY w Y   d S )N{   zInvalid value '123' for dtypefoozCould not convertzInvalid value 'foo' for dtyper   )r   ri   r)   rV   r`   ra   r  r~   rX   rW   r*   r&   r$   )rf   r   
fill_valueerrr1  s        r-   test_setitem_invalid_dtyper|    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ri   types_mapperrU   )r)   rd   rc   	Timestampdate32rS  r   date64getr   r   r   )
date_arrayr   r   s      r-   &test_from_arrow_respecting_given_dtyper    s    	l	#	#R\,%?%?@ryy{{   J !!iikk:biikk#:#:;? "  F y	l	#	#R\,%?%?@%%  H 68,,,,,r/   c                    t                               ddgt                                                     } t          j        t           j        d          5  |                     t                                           t          t                                                     ij	                   d d d            d S # 1 swxY w Y   d S )Nr"        @r~  zFloat value 1.5 was truncatedr   r  )
r)   rd   r   r&   r$   r*   rS  r   r  r  )rd   s    r-   -test_from_arrow_respecting_given_dtype_unsafer    s    HHc3ZbjjllH33E	r.M	N	N	N Q QbjjllJrxxzz4J4J%K%OPPPQ Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Qs   AB<<C C c                    d} t          j        dddt           j        g|           }|                    d          }t          j        dddt           j        g|           }t	          j        ||           t          j        d	t           j        d
g|           }|                    d          }t          j        dt           j        dg|           }t	          j        ||           d S )Nr  r:   gGz?g{Gz@rU   r<   g333333?g@g^@gp=
cL@r>   g      ^@g      N@)rc   r   r  roundr   r   r5   r   r   r   s       r-   
test_roundr    s    E
)S$be,E
:
:
:CYYq\\Fy#sC/u===H68,,,
)UBE5)
7
7
7CYYr]]Fy%-U;;;H68,,,,,r/   c                    | \  }}}|                      g d          }t          j        |d<   |rt          j        |          }d}t	          j        t          |          5  |                    |           d d d            d S # 1 swxY w Y   d S )N)r@   r   r<   r>   zOsearchsorted requires array to be sorted, which is impossible with NAs present.r   )r  rc   r  r   r&   r$   rY  searchsorted)rx   	as_seriesrK   ro   rJ   r  r1  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   rp  rU   r<   r@   rJ   rK   rJ   rK   )by)rc   r(  r   r   r)   
dictionaryint32r   rs  sort_valuesr   r\  )r0  r   r   s      r-   test_sort_values_dictionaryr    s    	c
*R]]288::ryy{{-S-S"T"T   Q		
 	

 
B wwyyH^^Sz^**F&(+++++r/   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  rU   r<   )
rc   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,,,,,r/   c                    t          j        dd gt          t                                                              } t          j        t          d          5  | j        	                    dd           d d d            d S # 1 swxY w Y   d S )Nr  rU   z	count notr   r<   flags)
rc   r   r   r)   r   r&   r$   rb   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 )NrJ   rU   r%  r   )widthsidefillchar)
rc   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,,,,,r/   c                    t          j        dd gt          t                                                              } t          j        t          d          5  | j        	                    ddd           d d d            d S # 1 swxY w Y   d S )NrJ   rU   zInvalid side: foor   r%  ry  r   )
rc   r   r   r)   r   r&   r$   rY  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  rU   )casenaregex)
rc   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,,,,,r/   c                    t          j        dd gt          t                                                              } t          j        t          d          5  | j        	                    dd           d d d            d S # 1 swxY w Y   d S )Nr  rU   zcontains notr   rJ   r<   r  )
rc   r   r   r)   r   r&   r$   rb   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)TNFrK   r  endswith)FTFbc)rJ   eg)TNT)rJ   ro   r  r   )FNFc                \   t          j        g dt          t                                                              } t          |j        |           ||          }t          j        |t          t                                                              }t          j	        ||           d S )N)r  NefgrU   )r  
rc   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,,,,,r/   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 )NrU   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,,,,,r/   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  rU   rK   r   T)r  r  r  zreplace is not supportedr   r   )
rc   r   r   r)   r   r&   r$   rb   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, exprJ   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abacrU   )nr  	rc   r   r   r)   r   r   r  r   r   )r  r  r  r  r  r   r   r   s           r-   test_str_replacer  9  s     )VTN*RYY[[*A*A
B
B
BCW__S$!5_99FyJryy{{$;$;<<<H68,,,,,r/   c                 Z   t          j        ddgt          t                                                              } | j                            dddd          }t          j        ddgt          t                                                              }t          j        ||           d S )	Nr  aaaaaarU   rJ   r  Tr  r  )r   actualr   s      r-   test_str_replace_negative_nr  H  s    
)UH%Z		-D-D
E
E
ECW__S"b$//Fy$:biikk+B+BCCCH8V,,,,,r/   c                    t          j        dd gt          t                                                              } t          j        t          d          5  | j        	                    ddg           d d d            d S # 1 swxY w Y   d S )Nr  rU   zrepeat is notr   r<   r@   )
rc   r   r   r)   r   r&   r$   rb   r   r  r  s    r-   test_str_repeat_unsupportedr  P  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  rU   r@   r  )	rc   r   r   r)   r   r   r  r   r   rY  s      r-   test_str_repeatr  V  s    
)UDMBIIKK)@)@
A
A
ACW^^AFy(D)BIIKK1H1HIIIH68,,,,,r/   zpat, case, na, expc                V   t          j        dd gt          t                                                              }|j                            | ||          }t          j        |t          t                                                              }t          j	        ||           d S )Nr  rU   r  r  
rc   r   r   r)   r   r   r   r  r   r   r  r  r  r  r   r   r   s          r-   test_str_matchr  ]  s     )UDMBIIKK)@)@
A
A
ACW]]3Tb]11FyJrxxzz$:$:;;;H68,,,,,r/   )TTFNAbc)FFFNabc$TFFNzabc\$FTFNzAbc$zAbc\$c                V   t          j        g dt          t                                                              }|j                            | ||          }t          j        |t          t                                                              }t          j	        ||           d S )N)r  r  z$abcNrU   r  r  r  s          r-   test_str_fullmatchr  o  s    " )111BIIKK9P9P
Q
Q
QCW]]3Tb]11FyJrxxzz$:$:;;;H68,,,,,r/   zsub, start, end, exp, exp_typr%  c                (   t          j        dd gt          t                                                              }|j                            | ||          }t          j        |t          |                    }t          j        ||           d S )Nr  rU   )startend)	rc   r   r   r)   r   r   findr   r   )subr  r  r  exp_typr   r   r   s           r-   test_str_findr    sz    
 )UDMBIIKK)@)@
A
A
ACW\\#U\44FyJw$7$7888H68,,,,,r/   c                 Z   t          j        dd gt          t                                                              } | j                            ddd          }t          j        dd gt          t                                                              }t          j	        ||           d S )Nr  rU   rK   ir%  )r  r  r  r<   )
rc   r   r   r)   r   r   r  r  r   r   rY  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,,,,,r/   c                    t          j        dd gt          t                                                              } t          j        t          d          5  | j        	                    dd           d d d            d S # 1 swxY w Y   d S )Nr  rU   zfind not implementedr   r  r<   )r  )
rc   r   r   r)   r   r&   r$   rb   r   r  r  s    r-   test_str_find_notimplementedr    s    
)UDMBIIKK)@)@
A
A
AC	*2H	I	I	I $ $T###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $r  zi, exp)rK   r  N)ro   r  Nr@   )ro   NNr  )rJ   NNr  c                P   t          j        g dt          t                                                              }|j                            |           }t          j        |t          t                                                              }t          j        ||           d S )N)r  deNrU   )	rc   r   r   r)   r   r   r  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,,,,,r/   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=3NrU   )rc   r   r    r)   rd   ra  r   joinr   r   r   r   rY  s      r-   test_str_joinr    s    
 )'$u++tE{{D1Q(R(RSS
T
TCW\\#Fy111BIIKK9P9PQQQH68,,,,,r/   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  rU   )rc   r   r    r)   rd   r   r  r   r   r   r   rY  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,,,,,r/   zstart, stop, step, expc                T   t          j        dd gt          t                                                              }|j                            | ||          }t          j        |t          t                                                              }t          j        ||           d S NabcdrU   )	rc   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,,,,,r/   zstart, stop, repl, expaxcdxcdcdc                T   t          j        dd gt          t                                                              }|j                            | ||          }t          j        |t          t                                                              }t          j        ||           d S r  )	rc   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,,,,,r/   zvalue, method, exp)a1cisalnumT)z!|,r  F)aaaisalphaT)z!!!r  F)u   ٠	isdecimalT)z~!r  F)rL   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  )valuerF  r  r   r   r   s         r-   test_str_is_functionsr    s    0 )UDMBIIKK)@)@
A
A
AC%WSWf%%''Fy#tJrxxzz,B,BCCCH68,,,,,r/   zmethod, exp
capitalizezAbc deftitlezAbc DefswapcasezAbC Defr  zabc defupperzABC DEFcasefoldc                Z   t          j        dd gt          t                                                              } t          |j        |                       }t          j        |d gt          t                                                              }t          j        ||           d S )NzaBc dEFrU   	rc   r   r   r)   r   r   r   r   r   )rF  r  r   r   r   s        r-   test_str_transform_functionsr%    s     )Y%Z		-D-D
E
E
EC%WSWf%%''Fy#tJryy{{,C,CDDDH68,,,,,r/   c                 R   t          j        dd gt          t                                                              } | j                                        }t          j        dd gt          t                                                              }t          j	        ||           d S )Nr  rU   r7   )
rc   r   r   r)   r   r   r  r  r   r   rY  s      r-   test_str_lenr'    sz    
)VTN*RYY[[*A*A
B
B
BCW[[]]Fy!T*RXXZZ*@*@AAAH68,,,,,r/   zmethod, to_strip, val)rt  Nz abc )rt  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 )NrU   )to_stripr  r$  )rF  r.  valr   r   r   s         r-   test_str_stripr0    s     )S$Kz"))++'>'>
?
?
?C%WSWf%%x888Fy%j.E.EFFFH68,,,,,r/   r/  abc123c                T   t          j        | d gt          t                                                              }|j                            d          }t          j        dd gt          t                                                              }t          j        ||           d S NrU   r  r  )	rc   r   r   r)   r   r   removesuffixr   r   r/  r   r   r   s       r-   test_str_removesuffixr6  )      
)S$Kz"))++'>'>
?
?
?CW!!%((Fy%j.E.EFFFH68,,,,,r/   123abcc                T   t          j        | d gt          t                                                              }|j                            d          }t          j        dd gt          t                                                              }t          j        ||           d S r3  )	rc   r   r   r)   r   r   removeprefixr   r   r5  s       r-   test_str_removeprefixr;  1  r7  r/   r^  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  rU   )
rc   r   r   r)   r   r   encoder
  r   r   )r^  encodingr  r   r   r   s         r-   test_str_encoderC  9  s     )UDMBIIKK)@)@
A
A
ACW^^Hf--Fy#tJryy{{,C,CDDDH68,,,,,r/   c           	        t          j        g dt          t                                                              }|j                            d|           }t          j        dgg d gt          t                              t                                                                        }t          j	        ||           d S )N)r  r  NrU   rK   r  )
rc   r   r   r)   r   r   findalllist_r   r   )r  r   r   r   s       r-   test_str_findallrG  H  s    
)(((
299;;0G0G
H
H
HCW__S_..Fy3%T**RXXbiikk=R=R2S2STTTH68,,,,,r/   rF  rV  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abcbarU   ro   r@   zsubstring not foundr   ry  )rc   r   r   r)   r   r   r   r  r   r   r&   r$   rY  )rF  r  r  r   r   r   s         r-   test_str_r_indexrK  P  s     )WdO:biikk+B+B
C
C
CC%WSWf%%c5#66Fy!T*RXXZZ*@*@AAAH68,,,	z)>	?	?	? 4 4   s3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s   	!C77C;>C;formNFCNFKCc                   t          j        dd gt          t                                                              }|j                            |           }|                                }t          j	        ||           d S r@  )
rc   r   r   r)   r   r   	normalizers  r   r   )rL  r   r   r   s       r-   test_str_normalizerQ  b  se    
)UDMBIIKK)@)@
A
A
ACWt$$FxxzzH68,,,,,r/   c                X   t          j        g dt          t                                                              }|j                            d| |          }t          j        g dt          t                                                              }t          j	        ||           d S )N)rJ  ry  NrU   ro   )r@   r>   N)
rc   r   r   r)   r   r   rfindr  r   r   )r  r  r   r   r   s        r-   test_str_rfindrT  j  s     )****RYY[[2I2I
J
J
JCW]]3s++Fyj.D.DEEEH68,,,,,r/   c                 X   t          j        dd gt          t                                                              } | j                            ddi          }t          j        dd gt          t                                                              }t          j        ||           d S )NrJ  rU   a   rK   bbcbb)	rc   r   r   r)   r   r   	translater   r   rY  s      r-   test_str_translaterY  x  s    
)WdO:biikk+B+B
C
C
CCWCy))Fy'4
299;;0G0GHHHH68,,,,,r/   c                 T   t          j        dd gt          t                                                              } | j                            d          }t          j        dd gt          t                                                              }t          j        ||           d S )NrJ  rU   r%  zabc
ba)	rc   r   r   r)   r   r   wrapr   r   rY  s      r-   test_str_wrapr\    s}    
)WdO:biikk+B+B
C
C
CCW\\!__Fy)T**RYY[[2I2IJJJH68,,,,,r/   c                 f   t          j        g dt          t                                                              } | j                                        }t          j        g dg dg dgt          t                                                    g d          }t          j
        ||           d S )N)za|bNza|crU   )TTFr  r7  )rJ   rK   ro   )r5   r-  )rc   r   r   r)   r   r   get_dummiesr(  r  r   r\  rY  s      r-   test_get_dummiesr_    s    
)(((
299;;0G0G
H
H
HCW  ""F|			3335H5H5HI$$  H
 &(+++++r/   c                    t          j        dd gt          t                                                              } | j                            d          }t          j        g dg dgt          t                                                              }t          j	        ||           | j                            dd          }t          j        t          t                              g dd g                              }t          j        ||           | j                            d          }t          j        g dg dgt          t                                                              }t          j	        ||           | j                            dd          }t          j        t          t                              g dd g                              }t          j        ||           d S )	NrJ  rU   rK   )rJ   rK   cbar  Fexpand)r  rK   rJ   )rc   r   r   r)   r   r   	partitionr(  r   r\  r    rd   r   
rpartitionrY  s      r-   test_str_partitionrf    s   
)WdO:biikk+B+B
C
C
CCWs##F|			.../z"))++7N7N  H &(+++Ws511Fy,RXX7H7H7H$6O-P-PQQRRH68,,,W$$F|			.../z"))++7N7N  H &(+++WE22Fy,RXX7H7H7H$6O-P-PQQRRH68,,,,,r/   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
brU   )a1cbcrK   )rc   r   r   r)   r   r   r   r    rd   r   r   rF  r   r   r   s       r-   test_str_split_pat_nonerm    s     )[$'z"))++/F/F
G
G
GC%WSWf%%''Fy,RXX7I7I7I46P-Q-QRRSSH68,,,,,r/   c            	     z   t          j        g dt          t                                                              } | j                            d          }t          j        t          t                              g dg dd g                              }t          j
        ||           | j                            dd          }t          j        t          t                              dd	gd
d	gd g                              }t          j
        ||           | j                            dd          }t          j        t          t                              ddgddgd g                              }t          j
        ||           | j                            ddd          }t          j        t          t                              g d                    t          t                              g d                    d          }t          j        ||           | j                            dd          }t          j        t          t                              g d                    t          t                              g d                    d          }t          j        ||           d S )Na1cbcba2cbcbNrU   ro   rj  rK   rK   a2rK   rK   r<   r  rj  bcbrt  z[1-2]T)r  rJ   cbcb)r  rc  )rJ   rJ   N)rw  rw  Nr   r<   rA   rb  rJ   rq  Nrw  NN)rc   r   r   r)   r   r   rh  r    rd   r   r   r(  r\  rY  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 &(+++++r/   c            	        t          j        g dt          t                                                              } | j                            d          }t          j        t          t                              g dg dd g                              }t          j
        ||           | j                            dd          }t          j        t          t                              dd	gd
d	gd g                              }t          j
        ||           | j                            ddd          }t          j        t          t                              g d                    t          t                              g d                    d          }t          j        ||           | j                            dd          }t          j        t          t                              g d                    t          t                              g d                    d          }t          j        ||           d S )Nro  rU   ro   rr  rs  r<   ru  a1cbrK   a2cbT)r  rc  )r}  r~  N)rK   rK   Nrx  rA   rb  ry  rz  )rc   r   r   r)   r   r   rg  r    rd   r   r   r(  r\  rY  s      r-   test_str_rsplitr    s   
)...j6M6M
N
N
NCW^^C  FyBHH&6&6&68H8H8H$%OPPQQ H 68,,,W^^C1^%%FyBHHvsmfc]D%IJJKK H 68,,,W^^C1T^22F|"288,B,B,B#C#CDD"288,<,<,<#=#=>>	
 	
 H &(+++W^^C^--F|"288,A,A,A#B#BCC"288,@,@,@#A#ABB	
 	
 H &(+++++r/   c                    t          j        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rj  b2c3rU   z*pat=.* must contain a symbolic group name.r   z[ab](\d))
rc   r   r   r)   r   r&   r$   rY  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rc  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  rU   z(?P<letter>[ab])(?P<digit>\d)rb  )rJ   rK   NrA   rL   N)letterdigit)rc   r   r   r)   r   r   r  r(  r    rd   r   r\  )rc  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 &(+++++r/   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  rU   z[ab](?P<digit>\d)Trb  r  r  Fr  )rc   r   r   r)   r   r   r  r(  r    rd   r   r\  r   rY  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,,,,,r/   rX  )rT  rS  r  r  c                    ddg}t                               |           }t          j        ||          }t          t                               dd g|                    }t          j        ||           d S )N1000NaTrU     r~  )r)   durationr    r   rd   r   r   )rX  stringsr   r   r   s        r-   #test_duration_from_strings_with_natr  	  sm     uoGkk$G :7'RRRF"288T4Lw8#G#GHHH#FH55555r/   c                    | j         j        }t          j                            |          sOt          j        t          d          5  t          j	        |           j
         d d d            d S # 1 swxY w Y   d S d S )Nz2Can only use .dt accessor with datetimelike valuesr   )r5   r3   r)   rV   r   r&   r$   AttributeErrorrc   r   r  r   s     r-   test_unsupported_dtr  '	  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microsecondrI   month
nanosecondr  quartersecondrv   r   r   c                B   t          j        t          j        dddddddd	          d gt          t                              d
                              }t          |j        |           }d }t          |t                    rt          
                                }n/t          |t                    rt                              d
          }t          j        t          t                              |d g|                              }t          j        ||           d S )Nr  r<   r@   r%  r7   rv   rI   r  )r  r  r  r  r  r  r  r  rT  rU   r~  )rc   r   r  r   r)   r  r   r  r   r   r  r   time64r    rd   r   r   )propr   r   r   exp_types        r-   test_dt_propertiesr  0	  s	   . )L	 	 	 	
 d++,,  C  SVT""FH(D!! #99;;	Hd	#	# #99T??y,RXXx6FXX-V-VWWXXH68,,,,,r/   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  rE   r@   r%  r  r  r  r  r<   rF   rS  rU   r  FFTN)rc   r   r   r   r)   r  r  is_month_startr  r   r   is_month_endrY  s      r-   test_dt_is_month_start_endr  a	  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,,,,,r/   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  rE   rF   r%  r  r<   rS  rU   r  r  )rc   r   r   r   r)   r  r  is_year_startr  r   r   is_year_endrY  s      r-   test_dt_is_year_start_endr  t	  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,,,,,r/   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<   rF   rS  rU   r  r  )rc   r   r   r   r)   r  r  is_quarter_startr  r   r   is_quarter_endrY  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,,,,,r/   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  r7   r<   r@   rS  rU   )rF   r     N)rc   r   r   r   r)   r  r   r  r  r   r   rl  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,,,,,r/   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  r7   r<   r  r@      ;   )r  r  r  r  r  r  rS  rU   )
rc   r   r   r   r)   r  r  rP  r   r   rY  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,,,,,r/   rS  rT  c           
        t          j        t          dddd          d gt          t                              |                               }|j        j        | k    sJ |j        j        }t          j        t          t          
                    t          dd          d gt                              |                                         }t          j        ||           d S )	Nr  r<   r@   r%  r  rU   r   r~  )rc   r   r   r   r)   r  r  rX  r   r    rd   r  r   r   rX  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,,,,,r/   r   )Nr  
US/Pacificc           	         t          j        t          dddd          d gt          t                              d|                               }|j        j        }|t          j	        |           k    sJ d S )	Nr  r<   r@   r%  r  rT  r   rU   )
rc   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////////r/   c                 <   t          j        t          dddd          d gt          t                              d                              } | j                                        }t          j        g dg d	gg d
d          }t          j
        ||           d S )Nr  r<   r@   r%  r  rT  rU   )r  r<   r<   r  )r  weekr  r   r-  r5   )rc   r   r   r   r)   r  r  isocalendarr(  r   r\  rY  s      r-   test_dt_isocalendarr  	  s    
)	t1!!	4	4	4d;d++,,  C V!!F|	yyy!'''  H
 &(+++++r/   day_nameSunday
month_nameJanuaryc                   t          |           t          j        t          ddd          d gt	          t
                              d                              } t          |j        |                       }t          j        |d gt	          t
          	                                                    }t          j        ||           d S )Nr  r<   r  rU   )r.   rc   r   r   r   r)   r  r   r  r   r   r   )rF  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,,,,,r/   c                   t          |            t          j        t          dddd          d gt	          t
                              d                              }|j                            d          }t          j        d	d gt	          t
          	                                                    }t          j        ||           d S )
Nr  r<   r@   r%  r  rT  rU   z%Y-%m-%dT%H:%M:%Sz2023-01-02T03:00:00.000000000)r.   rc   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,,,,,r/   )ceilr  r  c                   t          j        t          dddd          d gt          t                              d                              }t          j        t          d	          5   t          |j
        |           d
d           d d d            n# 1 swxY w Y   t          j        t          d	          5   t          |j
        |           d
d           d d d            d S # 1 swxY w Y   d S )Nr  r<   r@   r%  r  rT  rU   zambiguous is not supported.r   1hr  	ambiguousznonexistent is not supported.nonexistent)rc   r   r   r   r)   r  r&   r$   rb   r   r  rF  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<   r@   r%  r  rT  rU   zfreq='1B' is not supportedr   1Bz$Must specify a valid frequency: None)rc   r   r   r   r)   r  r&   r$   rY  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  r  r  rS  rT  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  rT  rA   )rc   r   r   r   r)   r  r   r  r   r   r   )r  rF  r   re   r   r   s         r-   test_dt_ceil_year_floorr  
  s     )	t1!	,	,	,d3 C ",,t,,--H&wsvv&&z4zz2299(CCH5WSZZ)),f55j$jjAAF68,,,,,r/   c                    t          ddd          t          ddd          g} t          j        | t          t                              d                              }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 )NrC   r<   r  rT  rU   CThe behavior of ArrowTemporalProperties.to_pydatetime is deprecatedr   c              3  B   K   | ]}t          |          t          u V  d S r   )ri   r   .0ress     r-   	<genexpr>z(test_dt_to_pydatetime.<locals>.<genexpr>3
  s-      77tCyyH$777777r/   z>The behavior of DatetimeProperties.to_pydatetime is deprecateddatetime64[ns])r   rc   r   r   r)   r  r   ra  FutureWarningr  r  r   rd   r   r   r   r   )rf   r   r1  r   r   s        r-   test_dt_to_pydatetimer  )
  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 )	NrC   rE   rF   r   rU   r  r   z#to_pydatetime cannot be called with)rc   r   r   r   r   r)   r   ra  r  r&   r$   rY  r  r  )r  r   r1  s      r-    test_dt_to_pydatetime_date_errorr  ;
  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<   r@   r%  r  rT  rU   z ambiguous='NaT' is not supportedr   r  r  r  z"nonexistent='NaT' is not supportedr  )rc   r   r   r   r)   r  r&   r$   rb   r  tz_localizer  s    r-   *test_dt_tz_localize_unsupported_tz_optionsr  H
  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<   r@   r%  r  rT  r  r  rU   )
rc   r   r   r   r)   r  r  r  r   r   rY  s      r-   test_dt_tz_localize_noner   T
  s    
)	t1!!	4	4	4d;d|<<==  C V%%Fy	t1!!	4	4	4d;d++,,  H 68,,,,,r/   c                .   t          |           t          j        t          dddd          d gt	          t
                              |                               }|j                            d          }t
          	                    t          dddd          d gt
                              |                     }t
          j
                            |d          }t          j        t          |                    }t          j        ||           d S )	Nr  r<   r@   r%  r  rU   r  r~  r.   rc   r   r   r   r)   r  r  r  rd   computeassume_timezoner    r   r   )rX  r,   r   r   exp_datar   s         r-   test_dt_tz_localizer  a
  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,,,,,r/   znonexistent, exp_dateshift_forwardrE   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%  rE   r@   r  )r  r  r  r  r  rT  rU   r  r  r~  r  )r  exp_dater,   r   r   r  r   s          r-   test_dt_tz_localize_nonexistentr  r
  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,,,,,r/   c                 >   t          j        t          dddd          d gt          t                              d                              } t          j        t          d	          5  | j	        
                    d
           d d d            d S # 1 swxY w Y   d S )Nr  r<   r@   r%  r  rT  rU   z"Cannot convert tz-naive timestampsr   r  )rc   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<   r@   r%  r  rT  r  rU   
rc   r   r   r   r)   r  r  r  r   r   rY  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,,,,,r/   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<   r@   r%  r  r  rU   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,,,,,r/   r5   ztimestamp[ms][pyarrow]zduration[ms][pyarrow]c                    t          j        dd g|           }|j                            d          }|                    |                     dd                    }t          j        ||           d S )Nr  rU   rT  r  )rc   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,,,,,r/   dayssecondsmicrosecondsnanosecondsc           	        t          j        t          j        dddd          d gt          t                              d                              }t          |j        |           }t          j        t          t          	                    |d gt          
                                                              }t          j        ||           d S )	Nr<   r@   r%  r7   r  r  r  r  rT  rU   r~  )rc   r   	Timedeltar   r)   r  r   r  r    rd   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,,,,,r/   c            	        t          j        t          j        dddd          d gt          t                              d                              } | j                                        }t          j        t          t          	                    dd gt          
                                	                              }t          j        ||           d S )
Nr<   r@   r%  r7   r  rT  rU   gN%  @r~  )rc   r   r  r   r)   r  r  total_secondsr    rd   r   r   r   rY  s      r-   test_dt_timedelta_total_secondsr!  
  s    
)L	   	
 T**++  C V!!##FyBHHlD%9

HMMNN H 68,,,,,r/   c                 
   t          ddd          t          ddd          g} t          j        | t          t                              d                              }|j                                        }t          j	        | t                    }t          j        ||           t          d |D                       sJ |                    d          j                                        }t          j        ||           d S )	Nr<   r@   r%  r7   rT  rU   c              3  B   K   | ]}t          |          t          u V  d S r   )ri   r   r  s     r-   r  z)test_dt_to_pytimedelta.<locals>.<genexpr>
  s-      88#tCyyI%888888r/   timedelta64[ns])r   rc   r   r   r)   r  r  to_pytimedeltar   rd   r   r   r   r   r   rf   r   r   r   s       r-   test_dt_to_pytimedeltar'  
  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1r/   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<   r@   r%  r7   r  rT  rU   )r<   r   r   r@   r   r%  r7   )NNNNNNN)r  hoursminutesr  millisecondsr  r  r   r  )rc   r   r  r   r)   r  r  
componentsr(  r   r\  rY  s      r-   test_dt_componentsr-  
  s    
)L	   	
 T**++  C VF|			 J J JK
 
 
   H &(+++++r/   r   c                    t          j        d gd          } t          ||           |          }|r| dk    }nt           j        }||u sJ d S )Nr  rU   r   r   )rc   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r/   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TruerA   rW  )falseFALSEFalse0rB   TFrU   r~  r3  ry  zFailed to parser   )r  r    r   r)   r  rc   rd   r   r   r&   r$   r*   )true_stringsfalse_stringsnullsr  boolsr   r   s          r-   %test_from_sequence_of_strings_booleanr<     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   )	rc   r   rs  concatr   rd   r  r   r   )r5   r   r   r   s       r-   %test_concat_empty_arrow_backed_seriesr?  2  sd    
)Be
$
$
$CxxzzHYBHRrx8889:;;F68,,,,,r/   r   r   c                    t                               d                                          }t          j        ||           }t          j        t          |          |           }t          j        ||           d S )Nzthe quick brown foxrU   )r)   rd   rh  rc   r   r    r   r   )r5   r  r   r   s       r-   test_series_from_string_arrayrA  :  sj    
(((..00
1
1C
)Cu
%
%
%Cy,S11???H3)))))r/   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-   rF  z#OldArrowExtensionArray.__getstate__D  s2    $$&&;//gr/   )r  r  r  rF  r  r  s   @r-   rC  rC  C  s8                r/   rC  c                 >   t                               dg          } t          |           }t          j        t          j        |                    }t          j        ||           |j        t           	                    |           k    sJ t          |d          rJ d S )Nr<   rE  )r)   rd   rC  rJ  rL  rK  r   r   r   chunked_arrayhasattr)rf   r   r   s      r-   #test_pickle_old_arrowextensionarrayrL  J  s    88QC==D%d++H\&,x0011F#FH555r//555555vw'''''''r/   c                 ,   d} t          t                              t          j        | ft          j                  g                    }|                                }d|t          j        | ft          j                  <   |j        |j        k    sJ d S )Nih6 rU   F)	r    r)   rJ  r   onesr  rs  zerosr   )Nr  r   s      r-   /test_setitem_boolean_replace_with_mask_segfaultrQ  S  s~    A
b..BH0M0M0M/NOO
P
PCxxzzH*/C!RX&&&'=H.......r/   zdata, arrow_dtyperO   rP   c                    t          |          }t          j        t          j        |           |          }t          j        | |          }t	          j        ||           d S r   )r   rc   rd   r   r   r   )rf   r3  r5   r   r   s        r-   -test_conversion_large_dtypes_from_numpy_arrayrS  \  sZ     {##EXbhtnnE222FxE***H#FH55555r/   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 )	NrJ   rU   r   r<   r   T)ignore_index)NNr   r<   )rc   r(  r   r)   nullr>  r   r\  )r0  df2r   r   s       r-   test_concat_null_arrayrX  j  s    	sT4L)BGGII1F1F	G	G	GB
,aV},<
=
=
=CYCyt444F|S"4"4"45=MNNNH&(+++++r/   c                    t          j        g dt          |                     }|                                }t          j        g dt          t                                                    g d          }t          j        ||           d S )Nr<   r@   r%  rU   )r%  r@   r<   r<   r"  g       @r  r%  r   r   r   r  25%50%75%r  r5   rV  )rc   r   r   describer)   r   r   r   r   rf   r   r   s       r-   test_describe_numeric_datarb  s  s     9YYYj&9&9:::D]]__Fy&&&&&III  H
 68,,,,,r/   c                X   t          j        t          dd          t          |                     }|                                }t          j        dgt          j        g d| j                                                  z   t          g d          }t          j
        ||           d S )	Nr<   rH   rU   	   )rI   r@   r<   r%  rI   rv   rd  rX  r[  r_  )rc   r   r  r   r`  to_timedeltarX  rt  r   r   r   ra  s       r-   test_describe_timedelta_datarg    s     9U1b\\G)<)<===D]]__Fy	
bo333',GGGNNPPPIII  H
 68,,,,,r/   c                    t          j        t          dd          t                               }|                                }t          j        dg fddD             z   t
          g d          }t          j        ||           d S )	Nr<   rH   rU   rd  c                R    g | ]#}t          j        |j        j                   $S ))r   rX  )rc   r  r   rX  )r  vr   s     r-   
<listcomp>z/test_describe_datetime_data.<locals>.<listcomp>  s>     
 
 
 Lwz===
 
 
r/   )rI   r<   r%  rI   rv   rd  )r   r   r  r\  r]  r^  r  r_  )rc   r   r  r   r`  r   r   r   ra  s   `   r-   test_describe_datetime_datarl    s     9U1b\\G)<)<===D]]__Fy	

 
 
 
'
 
 
	

 BBB  H 68,,,,,r/   c                    g d}t          j        |t          |                     }|                    d          }|d         }||k    sJ d S )NrZ  rU   g?r   )rc   r   r   r  )r   rf   r   r   r   s        r-   test_quantile_temporalrn    sZ    
 99D
)D
7 3 3
4
4
4C\\#F1vHXr/   c                    t                               t          j        d          gt                                                     } t          j        | t          | j                            }t          |          dk    sJ d S )Nz
2020-01-01r~  rU   z+0    2020-01-01
dtype: date32[day][pyarrow])
r)   rd   r   fromisoformatr  rc   r   r   ri   repr)arrow_dtr   s     r-   test_date32_reprrs    si    xx+L99:xMMH
)HJx}$=$=
>
>
>C99FFFFFFFr/   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<   rT  rU   r@   )
rc   to_datetimerf  r   r   r)   r  r  r   r   )data_tsdata_tdser_tsser_tdr   r   s         r-   2test_duration_overflow_from_ndarray_containing_natrz    s    naY''Goq$i((GYwjd1C1C&D&DEEEFYwjT1B1B&C&CDDDFf_Fy!T*R\\$5G5G*H*HIIIH68,,,,,r/   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_dtyperb  r&   r'   r(   r+   ra  )rf   r,   r  r'   s       r-   test_infer_dtype_pyarrow_dtyper    s    
/$

C/!!!!{ "sGGG{  B ! 
 
 	D!!!#/$t**T:::::::::r/   c                   d}| j         }t          j                            |           r+t	          j        ||                              |          g}n0t	          j        ||| j                                      |          g}t          j
        ||           }t          t                              |g|                     }t          j        ||           d S )Nr%  re  rX  r   rU   r~  )rX  r)   rV   r^   rc   r  r  r  r   r    rj   rd   r   r   )r   r/  rX  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5r/   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<   re  r  rZ  r~  )r<   r<   r<   )rX  r)   rV   r^   rc   r  r  r  r   r    rd   rs  r   r   r   rX  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5r/   c                B   t          t                              g d|                     }| j        }|t	          j        d|                              |          z
  }t          t                              g d|                     }t          j        ||           d S )NrZ  r~  r<   re  )r   r<   r@   )	r    r)   rd   rX  rc   r  r  r   r   )r   r,   r  rX  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5r/   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<   re  r  rZ  r~  )FTT)rX  r)   rV   r^   rc   r  r  r  r   r    rd   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5r/   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 )NrZ  r~  r<   r@   re  r  )r    r)   rd   rV   r^   rc   r  rX  r  r   r  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r/   c                   t          t                              dd g|                     }t          |          }t          j                            |           rbt          j        d| j                  	                    | j                  t          j
        g}t          |d         t          j                  sJ ngt          j        d| j        | j                  	                    | j                  t          j
        g}t          |d         t          j                  sJ |d         j        |d         j        k    sJ ||k    sJ d S )Nr<   r~  re  r   r  )r    r)   rd   ra  rV   r^   rc   r  rX  r  r  r   r  r   r  s       r-   test_iter_temporalr    s"   
 bhh4ywh??
@
@C#YYF	xG$$ 3L...66w|DDE
 &)R\222222 L'*===EEglSSE
 &)R\22222!9>Xa[-----Xr/   c                    t          j        | d d         g d          }|                    d                                          }t          j        ddgdd	d
g          }t	          j        ||           d S )Nr%  )rJ   rJ   rK   r  r   )levelr@   r<   r   rJ   rK   r_  )rc   r   r,  sizer   r   r&  s       r-   'test_groupby_series_size_returns_pa_intr  6  sy    
)D!HOOO
4
4
4C[[q[!!&&((Fy!Q'7SzJJJH68,,,,,r/   c                   t          t                              dd g|                     }|                    |          }t          j                            |           r4t          j        d| j                  	                    | j                  }n9t          j
        d| j        | j                  	                    | j                  }|t          k    s&t          j                            |           ra| j        Z|t          k    rt          j        }nt          j        }t!          j        ||gt                    }|d         j        |j        k    sJ n|                                                     d| j                  }|                                }t!          j        ||g          }t!          j        |d                   d         | j        k    sJ t)          j        ||           d S )Nr<   r~  rU   re  r  r   nat)r    r)   rd   r   rV   r^   rc   r  rX  r  r  r   r   r]   r  r  r   to_pandas_dtyperi   datetime_datar   r   )r   r5   r  r   r  r  r   s          r-   test_to_numpy_temporalr  >  s    bhh4ywh??
@
@C\\\&&F	xG$$ XQW\222::7<HHQW\gjAAAII',WW280099gj>TF??BBB8UBKv666ay~+++++$$&&++E7<@@  8UBK((q	**1-====11111r/   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<   r&  rq   r  rr   rs   r   )rV  r-  r5   )rc   r(  r,  r   r)  r   r\  )rk   r0  r   r   s       r-   %test_groupby_count_return_arrow_dtyper  [  s    	QFLII	J	JBZZ__""$$F|
Qhs%%%c
	  H &(+++++r/   c            	         t          j        ddgddggt          t                              t                                          d                              } | j        j        }|t          k    sJ d S )Nr<   r@   r%  r7   )	list_sizerU   )	rc   r   r   r)   rF  r  r5   ri   ra  )r   r   s     r-   test_fixed_size_listr  g  sf    
)
Q!Q
288BHHJJ!8+L+L M M  C Y^FT>>>>>>r/   c            	         t          j        t          j        dd          dgt          t	          d                              } t          |           }d}||k    sJ d S )N2012r%  )rd  r\  r  r  z#     col
0  15340
1  15341
2  15342)rc   r(  period_ranger   r!   rq  )r0  r   r   s      r-   'test_arrowextensiondtype_dataframe_reprr  p  sm    	
***--..
 
 
B
 "XXF 8HXr/   c                     t          j        dd gd          } |                     d d          }t          j        dd gd          }t          j        ||           d S )Nr@   r   rU   r%  )rz     )rc   r   powr   r   )kr   r   s      r-   test_pow_missing_operandr  ~  sb    
	1d)#3444AUU4AU&&Fy!T*:;;;H68,,,,,r/   c                T   t          j        d dgt          |                     }t          j        t          j        ddgd| j         d                    }|                    |          }t          j        ddgt          |                     }t          j        ||           d S )Nr@   rU   r<   r%  zm8[r  )	rc   r   r   r   rd   rX  rH  r   r   )r   ser1ser2r   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,,,,,r/   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  rU   r   zInteger valuer   )rc   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 )NrJ   rK   r   r<   rU   )r)   rJ  rd   dictionary_encoderc   r   r    	factorizer   intpr)  r   r   r   r.  )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3r/   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)rJ   r   ro   rJ   )rJ   dro   category)rJ   r   ro   r  rU   )rJ   r   ro   rJ   rJ   r  ro   )
categories)r)   rd   r   r  rc   r   r    rJ  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,,,,,r/   c                     t          j        dgd          } t          j        dgd          }t          j        dgd          }| |z  }t          j        ||           d S )Nir   rU   r7   r=   r  )rJ   rK   r   r   s       r-   test_arrow_floordivr    si    
	2$.///A
	1#-...Ay"%5666H!VF68,,,,,r/   c                     t          j        dgd          } t          j        dgd          }| dz  }t          j        ||           d S )Nl     ^ \K r   rU   l    \p/i@B r  )rJ   r   r   s      r-    test_arrow_floordiv_large_valuesr    sT    
	&'/?@@@Ay-0@AAAH)^F68,,,,,r/   r   r  c                h    t          j        dg|           }|dz  }t          j        ||           d S )N   rU   r<   r  )r5   rJ   r   s      r-   )test_arrow_floordiv_large_integral_resultr    s>     		$%U333A!VF61%%%%%r/   c                    t          |           }t          j        dg|          }|dz  }t          j        dg|          }t          j        ||           d S )NirU      r>   )r   rc   r   r   r   )r   r5   rJ   r   r   s        r-   "test_arrow_floordiv_larger_divisorr    s_     wE
	3%u%%%A"WFy"U+++H68,,,,,r/   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 )NrU   zoverflow|not in ranger   r>   zdivide by zeror   )r   iinfor  r  rc   r   r   r&   r$   r)   r   r*   )r   	min_valuerJ   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 )Nr@   rU   r   inf)rc   r   re  r   r   )r5   rJ   r   r   s       r-   &test_arrow_floordiv_floating_0_divisorr    sX     		1#U###A!VFy%,,u555H68,,,,,r/   )r   r  r$  c                    t          j        dd gd          }|                    |           }t          j        dd g|           }t          j        ||           d S )Nr<   r   rU   rX  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,,,,,r/   c                
   t          j        |                                           j        }t	          |           }t          j        |g|          }t          j        dg|          }||z  }t          j        ||           d S )NrU   r<   )	r   r  r  r  r   rc   r   r   r   )r   	max_valuer5   rJ   rK   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%%%%%r/   c                    t          j        dg|           }t          j        dg|           }t          j        dgd          }||z  }t          j        ||           d S )Nr   rU   r  r  r  r5   rJ   rK   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,,,,,r/   c                    t          j        dg|           }t          j        dg|           }t          j        dg|           }||z  }t          j        ||           d S )Nr   rU   r  r  r  s        r-   'test_arrow_floor_division_large_divisorr  
  sj     		1#U###A
	$%U333Ay!E***H!VF68,,,,,r/   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]rU   Tfrom_pandas)rc   r   r    r)   rd   ru  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,,,,,r/   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]rU   r  )   +   i) Tr  )rc   r   r    r)   rd   r   r   r   )string_timesr   r   s      r-    test_string_to_time_parsing_castr    sw    %&LY|+@AAAFyBHHd2r2u&=&=%>DHQQRR H 68,,,,,r/   c                     t          j        g dd          } |                     d          }t          j        ddt          j        gd          }t          j        ||           d S )Nr   (   Nr]  rU   r   r   r  )rc   r   r   r   r   r   r   rY  s      r-   test_to_numpy_floatr  (  sb    
)NNN*:
;
;
;CZZ	""Fy"b"&);;;H68,,,,,r/   c                     t          j        dgd          } |                     t          j                  }t          j        dg          }t          j        ||           d S )Nr  r  rU   l    P)#-/ )rc   r   r   r   r  rd   r   r   rY  s      r-   test_to_numpy_timestamp_to_intr  0  s\    
)*+3K
L
L
LC\\\))Fx,-..H11111r/   c                     t          j        g dd          } |                     d d          }t          j        ddt          j        gd          }t          j        ||           d S )	Nr  r   rU   c                    dS )N*   r   r   s    r-   r   z,test_map_numeric_na_action.<locals>.<lambda>:  s    r r/   r   r   g      E@r   )rc   r   r   r   r   r   r   rY  s      r-   test_map_numeric_na_actionr  8  sh    
)NNN*:
;
;
;CWW\\XW66Fy$bf-Y???H68,,,,,r/   (  r  
__future__r   r   r   r   r   decimalr   ior	   r
   r  rJ  r*  numpyr   r&   pandas._libsr   pandas._libs.tslibsr   pandas.compatr   r   r   r   r   r   r   pandas.util._test_decoratorsutil_test_decoratorsr  pandas.core.dtypes.dtypesr   r   pandasrc   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!   r.   fixtureALL_PYARROW_DTYPESr   r5   rf   rk   rm   rt   rx   r{   r   ExtensionTestsr   r  r'   r  ALL_INT_PYARROW_DTYPESr  r  r  r  r  r  r"  r+  r.  r
  byteslarge_binarylarge_stringrF  r  ra  
large_listmap_r   structr  dictr  r5  r<  r?  rA  rC  rE  rG  rQ  rU  rZ  r_  rc  rf  r   rk  rn  rq  rv  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  compiler  r  r  r  r  r  r  r  r  r  r  r  r(   r  r  r  r  r	  r  r%  r'  r0  r6  r;  rC  rG  rK  rQ  rT  rY  r\  r_  rf  rm  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r!  r'  r-  r/  r<  r?  rA  rC  rL  rQ  rS  rX  FLOAT_PYARROW_DTYPESrb  TIMEDELTA_PYARROW_DTYPESrg  DATETIME_PYARROW_DTYPESrl  rn  rs  rz  r  r  r  r  r  r  r  r  rq  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/   r-   <module>r     ss    # " " " " "                           				            ) ) ) ) ) )                  * ) ) ) ) ) ) ) )       
           , , , , , ,                  ( ' ' ' ' '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 
 
 
 
 
 
   [1 [1 [1 [1 [1T( [1 [1 [1|^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6667	d7778	tT6667	ud5556	eT#<#<#<=	dD"="="=>	8889	5$ : : :;	t8889	4:::;  - -!  - #
AtaY

+dAq1d)RXXZZ-PQ - -	 -- - -$ $ $ 	
		
		
	 	- -	 	- J   - -	 -- - - 	q$t%	q!dD\"	
Aq4, - - - 	
AsVTN#	q#t}%	q$t% - - -    !!!   !!!!!!"""   !!!"""###%%%&&&   !!!% .- -/ .- 	y!	)	Y	)	)	Y
 
- -
 
-- - -          
 
- -
 
- 5 122- - 32- 5 122- - 32- Hh#788		LM - -  98- 1a&))- - *)- GX#677	
D		
A 4 4  874 %11- - 21- 	
D		
A - - -- - -- - -, , ,- - -. 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-- - -- - -- - -2 2 2- - - - -r/   