
    bMh                   h&   d Z ddlmZ ddlmZmZmZmZ ddlmZ ddl	m
Z
mZ ddlZddlZddlZddlZddlZddlmZ ddlmZ dd	lmZmZmZmZmZmZmZmZ dd
lm Z m!Z! ddl"Z#ddl$m%Z& ddl'm(Z( ddl)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 ddl1m2Z2  ej3        d          Z4ddl5m6Z6 ddl7m8Z8 d Z9 ej:        e&j;        e<          d             Z=ej:        d             Z>ej:        d             Z? ej:        ddg          d             Z@ej:        d             ZAej:        d             ZBej:        d             ZCej:        d             ZD G d de2jE                  ZF G d  d!          ZGejH        I                    d"e&jJ                  d#             ZKd$ ZLd% ZMd& ZNd' ZOd( ZPejH        I                    d)g d*          ejH        I                    d+d,d,d,gg          d-                         ZQejH        I                    d.g d/d0dggg d1dgggd2d3g4          d5             ZRd6 ZSejH        I                    d7e4T                                eUge4T                    d8          eUge4V                                eUge4W                                e<ge4X                    e4Y                                          eZge4[                    e4Y                                          eZge4\                    e4]                                e4Y                                          eZge4^                    d9e4_                                fd:e4]                                fg          e`ge4a                    e4Y                                e4Y                                          e!gg	          d;             Zbd< Zcd= Zdd> Zed? Zfd@ ZgdA ZhdB ZidC ZjdD ZkdE ZldF ZmdG ZnejH        I                    dHej(        ejo        fdIg          dJ             ZpdK ZqdL ZrdM ZsdN ZtdO ZudP ZvdQ ZwdR ZxdS ZyejH        I                    dTdUdVg          dW             ZzdX Z{ejH        I                    dYdZd[gd\d]gd^d_gg          d`             Z|da Z}ejH        I                    dbdcddddddedggdfdeddddddggdcdddedddedeggdgddddededggdhdeddedddggg          di             Z~dj ZejH        I                    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jH        I                    dydz          d{             ZejH        I                    d|dT ej        dn          gd}e<gd~ddgddgg          d             ZejH        I                    ddddddddggdddddddggddddeddggg          d             Zd Zd Zd ZejH        I                    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jH        I                    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jH        I                    ddcddddge4                                gdrddddge4Y                                gg          d             Zd Zd Zd Zd ZejH                            ed          ejH        I                    dg d          ejH        I                    dg d          ejH        I                    dg d          d                                                 Zd ZejH        I                    ddg dgdg dgdg dgdg dgd0g dgg          d             ZejH                            de          d             Zd ZejH        I                    dddddcdggddddcdggddddrdggdddddgfg          d             ZejH        I                    ddddddggdddddggdddddggg          d             ZejH        I                    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jH        I                    dddgddgddgddgddgddgg          d             Zd ZejH        I                    dg dg dg dg dg dg dg          d             ZejH        I                    dddUg          d             ZejH        I                    dddUg          d             ZejH        I                    dddg          ejH        I                    dddgddgg          d                         ZejH        I                    dddg          d             ZejH        I                    dddg          ejH        I                    dddgdd0gg          d                         ZejH        I                    ddd g          d             ZejH        I                    dddgdd0gg          d             Zd Zd Zd Zd ZejH        I                    dddg          d	             Zd
 Zd Zd ZejH        I                    ddeddg          d             Zd ZejH        I                    dg d          d             Zd ZejH        I                    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jH        I                    dd.d/g          d0             Zd1 ZejH        I                    dd2d3g          d4             ZejH        I                    d5g d6          d7             Zd8 ZejH        I                    dԐd9d:gd;d<gg          d=             Zd> ZejH        I                    dg d?          d@             ZejH        I                    dg d?          dA             ZejH        I                    dBg dC          ejH        I                    dg d?          dD                         ZdE ZejH        I                    dFdGdHg          dI             ZdJ ZdK ZejH        I                    dd2d3g          dL             ZejH        I                    dMdN edddOdP          gdQ e#j        dR          gg          dS             ZŐdT ZƐdU ZejH        I                    dd2d3g          dV             ZejH        I                    dWdXdYg          dZ             ZejH        I                    dd[dgd\dgd]dgd^d0gg          d_             Zʐd` Zːda Z̐db ZejH        I                    dcdeddg          dd             Zΐde Zϐdf ZejH        I                    dWdgdhg          di             Z G dj dke6          ZҐdl ZӐdm ZejH        I                    dndodpge4V                                fddnge4W                                fg          dq             ZՐdr ZejH        I                    d"e&jJ        e&j        z             ds             ZejH        I                    d"e&j                  dt             ZejH        I                    d"e&j                  du             ZejH        I                    d"e&j        e&j        z             dv             Zݐdw Zސdx Zߐdy ZejH        I                    d"e&j        e&j        z             dz             ZejH        I                    d"e&j        e&j        z             d{             ZejH        I                    d"e&j        e&j        z             d|             ZejH        I                    d"e&j        e&j        z             d}             ZejH        I                    d"e&j        e&j        z             d~             ZejH        I                    d"e&j        e&j        z             d             Zd ZejH        I                    d"e&j        e&j        z   e4          ejH        I                    dWdeg          d                         Zd Zd Zd Zd ZejH        I                    d"e&j                  d             Zd Zd Zd Zd Zd ZejH        I                    dWddg          d             ZejH        I                    d"e&j                  d             ZejH        I                    d"e&j                  d             ZejH        I                    dWe&j                  d             ZejH        I                    dWg d          d             ZejH        I                    d"e&jJ                  d             ZejH        I                    dWddg          d             ZejH        I                    dWddg          d             Zd ZejH                            ed          d             Z d Zd Zd Zd ZdS (  ag  
This file contains a minimal set of tests for compliance with the extension
array interface test suite, and should contain no other tests.
The test suite for the full functionality of the array is located in
`pandas/tests/arrays/`.
The tests in this file are inherited from the BaseExtensionTests, and only
minimal tweaks should be applied to get the tests passing (by overwriting a
parent method).
Additional tests should either be added to one of the BaseExtensionTests
classes (if they are relevant for the extension interface for all dtypes), or
be added to the array-specific tests in `pandas/tests/arrays/`.
    )annotations)datedatetimetime	timedelta)Decimal)BytesIOStringION)lib)	timezones)PY311PY312is_ci_environmentis_platform_windowspa_version_under11p0pa_version_under13p0pa_version_under14p0pa_version_under20p0)
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     a/var/www/html/test/jupyter/venv/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.   dtyper6   S   s    GM2222r0   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   !   >r6   )r4   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)r6   pa_dtypedatas      r.   rg   rg   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&&&&r0   c                d    t          |                               d| d         g| j                  S )zLength-2 array with [NA, Valid]Nr   rV   type_from_sequencer6   )rg   s    r.   data_missingrl      s-     ::$$dDG_DJ$GGGr0   rg   rl   )r1   c                :    | j         dk    r|S | j         dk    r|S dS )zParametrized fixture returning 'data' or 'data_missing' integer arrays.

    Used to test dtype conversion with and without missing values.
    rg   rl   N)r5   )r-   rg   rl   s      r.   all_datarn      s1     }	.	(	( 
)	(r0   c           
     Z   | j         }t          j                            |          rd}d}d}n`t          j                            |          rd}d}d}n9t          j                            |          rd}d}d}nt          j                            |          rd}d}d	}nt          j                            |          r5t          d
dd          }t          ddd          }t          ddd          }nt          j        	                    |          r:t          d
dddddd          }t          ddd          }t          dddd          }n>t          j                            |          r/t          d          }t          d          }t          dd          }nt          j                            |          r1t          dd          }t          dd          }t          dd          }nt          j                            |          rd}d}d}nzt          j                            |          rd}d}d}nTt          j                            |          r.t%          d          }t%          d          }t%          d          }nt&          t)          j        ||dd||||g|           S )z
    Data for factorization, grouping, and unique tests.

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

    Where A < B < C and NA is missing
    FTgr;   g?r?   r   r=   rI   rE   rF   rG   i  rD   rH   r8   rK   rL   crP   rQ      cz-1.1rC   z1.1NrV   )r4   r*   rW   rX   rY   rZ   r[   r]   r   r^   r   r_   r   r`   r   ra   rb   r\   r   rc   rd   re   )r6   rf   ABCs        r.   data_for_groupingru      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%@@@@r0   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      r8   rV   ri   ru   s    r.   data_for_sortingry      K     !""11	1	035Fq5IJ% 2   r0   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   rA   r8   rV   ri   rx   s    r.   data_missing_for_sortingr|      rz   r0   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.rA   d   rV   )
r6   r4   r*   rW   
is_integerrY   r\   r_   rd   re   rg   rf   s     r.   data_for_twosr      s     z'H
H%%58))5 8x((5 8))	5 xc	4444Kr0   c                      e Zd Zd Zej                            dddg          d             Z fdZ fdZ	d Z
d	 Zd
 Zd ZdGdZej                            dddg           fd            ZdGdZdHdZej                            dddg           fd            Zej                            dddg           fd            ZdIdZej                            dddg           fd            Zej                            dg d          d             Z fd Z fd!Zd" Z fd#Z fd$Zej                            d%d&           fd'            Zd( Zej                            d)d&           fd*            Zej                            d)d&           fd+            Z ej                            d,d-e!g          ej                            d.d/d0g          d1                         Z" fd2Z#ej                            d3d4d5g           fd6            Z$d7 Z%d8Z&d9 Z'dJd:Z(d; Z)dKd=Z*d> Z+ fd?Z, fd@Z-dA Z. fdBZ/dC Z0ej                            dDg dE          dF             Z1 xZ2S )LTestArrowArrayc                j    t          j        |          }|                     ||||d                    d S )Nr   )rd   Series_compare_other)selfrg   comparison_opsers       r.   test_compare_scalarz"TestArrowArray.test_compare_scalar  s3    iooC}d1g>>>>>r0   	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>       r0   r   rV   c                    | S r   r   r   s    r.   r   z)TestArrowArray.test_map.<locals>.<lambda>  r   r0   float32[pyarrow]float64r6   na_value)	r6   kindmapto_numpyobjecttmassert_numpy_array_equalnpnan)r   rl   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9r0   c                   |j         j        }t          j                            |          r8|                    t          j                            d| d                     nz|sxt          j        	                    |          r|j
        t          j                            |          r3|                    t          j                            d                     t                                          |           d S )NzFor z .astype(str) decodes.r&   z8pd.Timestamp/pd.Timedelta repr different from numpy repr)r6   r4   r*   rW   rb   r,   r'   r(   r)   r^   tzr_   supertest_astype_str)r   rg   r-   using_infer_stringrf   	__class__s        r.   r   zTestArrowArray.test_astype_str!  s   :+8h'' 	!!B(BBB "     
 $ 	X""8,,	191Dx##H-- 2E !!U "    
 	%%%%%r0   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   )r6   r4   r*   rW   ra   r\   r,   r'   r(   r)   r   test_from_dtype)r   rg   r-   rf   r&   r   s        r.   r   zTestArrowArray.test_from_dtype4  s    :+8h'' 
	28+>+>x+H+H 
	x!!(++ KLJJJ!!! "    
 	%%%%%r0   c                   t          |                              |j        |j                  }t	          j        ||           t          |j        t          j                  sJ t          |                              |j        	                                |j                  }t	          j        ||           t          |j        t          j                  sJ d S NrV   )
rj   rk   	_pa_arrayr6   r   assert_extension_array_equal
isinstancer*   ChunkedArraycombine_chunksr   rg   r   s      r.   test_from_sequence_pa_arrayz*TestArrowArray.test_from_sequence_pa_arrayC  s     d**4>*LL
'555&*BO<<<<<d**N))++4: + 
 
 	'555&*BO<<<<<<<r0   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-1rV   )r'   r%   rc   r!   _from_sequence_of_stringsr*   month_day_nano_interval)r   r-   s     r.   *test_from_sequence_pa_array_notimplementedz9TestArrowArray.test_from_sequence_pa_array_notimplementedP  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$   rV   )r6   r4   r*   rW   	is_time64equalsr   r,   r'   r(   r)   r   r_   r\   ArrowNotImplementedErrorr^   r   r/   r   caststringrj   r   r   r   r   )r   rg   r-   rf   pa_arrayr   s         r.   &test_from_sequence_of_strings_pa_arrayz5TestArrowArray.test_from_sequence_of_strings_pa_arrayV  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5r0   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)
getattrr6   r4   r*   rW   is_temporal	bit_widthastyper   assert_series_equal)r   r   op_namer   r   pa_typeint_typer   s           r.   check_accumulatezTestArrowArray.check_accumulater  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Cr0   r   	pd.Seriesr   strreturnboolc                   |j         j        }t          j                            |          st          j                            |          r|dv rdS nt          j                            |          r	|dk    rdS ntt          j                            |          r|dv rdS nNt          j                            |          r/|dk    r!t          j        	                    |          sdS |dk    rdS dS )N)cumsumcumprodcummaxcumminFr   )r   r   r   r   T)
r6   r4   r*   rW   rb   r\   ra   rX   r   r_   )r   r   r   r   s       r.   _supports_accumulationz%TestArrowArray._supports_accumulation  s    ))8g&& 	"(*=*=g*F*F 	CCCu DX(( 
	)##u $X  )) 	999u :X!!'** 	(""28+?+?+H+H"uI%%utr0   r   TFc                ,   |j         j        }|}t          j                            |          r|dv rd S t          j        |          }|                     ||          s#t                      	                    |||          S t          rr|dk    rl|j        j        }|j        r d|j        v rt          j        | d           t          j                            | d          }	|                    |	           n|dk    r|t          j                            |          st          j                            |          r>|                    t          j                            | d| t*                               |                     |||           d S )N)r   r   r   r   znot slowz  not implemented for pyarrow < 9r   z not implemented for r&   r%   )r6   r4   r*   rW   ra   rd   r   r   r   test_accumulate_seriesr   configoptionmarkexprr'   skipr(   r)   r,   rX   r\   	TypeErrorr   )r   rg   all_numeric_accumulationsr   r-   r   r   r   optr(   r   s             r.   r   z%TestArrowArray.test_accumulate_series  s   **+8g&& 	76T+T+T Fioo**388 	7711/     	$=$I$I .'C| 
cl : :0RRR   ;$$3UUU %  D %%%%&(22H(( 3,.H,?,?,H,H 3 !!7WWgWW$ "     	c7F33333r0   c                8   |dk    st           r|dk    rdS |j        }|j        }t          j                            |          r*|dv r&t          j                            |          r|dv rnkdS t          j                            |          r|dv rdS t          j                            |          st          j                            |          r|dv rdS t          j                            |          r%t          j                            |          s|dv rdS d	S )
NkurtskewF)sumvarr   r   prod)r   )r   r   )meanmedianr   stdsemr   r   r   )anyallT)	r   r6   r4   r*   rW   r   r_   rb   ra   )r   r   r   r6   rf   s        r.   _supports_reductionz"TestArrowArray._supports_reduction  sC   f!5'V:K:K5	 &8)) 	g :
 /
 /
 x##H-- 'W2D2DuX)) 	g.H.H5Hx((	,.H,>,>x,H,H	 	
 	
 	
 5 H  **	H((22	 >))
 5tr0   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   )
r6   r4   r*   rW   r   rY   r   r   r   assert_almost_equal)r   r   r   r   rf   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0r0   c                   |j         }|j        }t          j                            t
          | dt          j         d|           }t          j        	                    |          r|dv r|
                    |           nt          s|dk    rt          j        	                    |          s@|rqt          j                            |          st          j                            |          r3|
                    t          j                            d                     t                                          |||           d S )N is not implemented in pyarrow= for r$   >   r   r   r   r   r   z,https://github.com/apache/arrow/issues/45733r   )r6   r4   r'   r(   r)   r   r*   __version__rW   rX   r,   r   r   rY   r   test_reduce_series_numeric)	r   rg   all_numeric_reductionsr   r-   r6   rf   
xfail_markr   s	           r.   r  z)TestArrowArray.test_reduce_series_numeric  se   
&[&&) ; ;>; ;08; ; ' 
 

 8x(( 	-C H
 .
 .
 
++++$	&&00##H-- 1 	 1 ++H55 1 :<9M9Mh9W9W 1 !!I "    
 	**41GPPPPPr0   c                x   |j         j        }t          j                            t
          | dt          j         d|           }t          j        	                    |          st          j        
                    |          r|                    |           t                                          |||          S )Nr   r  r$   )r6   r4   r'   r(   r)   r   r*   r  rW   ra   rb   r,   r   test_reduce_series_boolean)	r   rg   all_boolean_reductionsr   r   r-   rf   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Wr0   c                   |j         j        }|dv r|j        }ni|j        j        dk    r|dvr|j        }nMd}nJ|dv rd}nC|dk    r't          j                            |          r|j        }ndddd	|j        j                 }|S )
N)maxminzdecimal128(7, 3)[pyarrow])r   r   r   r   float64[pyarrow])r   r   r   r   r   r   r   uint64[pyarrow])iuf)r   rj   r6   namer*   rW   ra   r   )r   arrr   r   r   	cmp_dtypes         r.   _get_expected_reduction_dtypez,TestArrowArray._get_expected_reduction_dtypeB  s    -$n$$	IIY^:::>>>I		.		@@@*II"("4"4W"="=	II &&'  in	I
 r0   c                    |}|dk    rHt           rA|j        j        r5t          j                            d          }|                    |           t                                          |||          S )Nr   zskew not implementedr   )	r   r6   _is_numericr'   r(   r)   r,   r   test_reduce_frame)r   rg   r  r   r-   r   r(   r   s          r.   r  z TestArrowArray.test_reduce_frameW  sp    (f!5z% *{((0F(GG##D)))ww((/EvNNNr0   typ)int64uint64r   c                p    t          j        ddg| d                                          }|dk    sJ d S )Nr=   rA   	[pyarrow]rV         ?)rd   r   r   )r   r  r   s      r.   test_median_not_approximatez*TestArrowArray.test_median_not_approximate`  sB     Aq6C):):):;;;BBDD}}}}}}r0   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   )r4   r*   rW   r\   r,   r'   r(   r)   rc   ra   r%   r   construct_from_stringr  r   #test_construct_from_string_own_name)r   r6   r-   rf   msgr   s        r.   r!  z2TestArrowArray.test_construct_from_string_own_namef  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$   )r4   r*   rW   ra   rj   is_dtyper  r\   r,   r'   r(   r)   rc   r   test_is_dtype_from_namer   r6   r-   rf   r   s       r.   r%  z&TestArrowArray.test_is_dtype_from_namez  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2r0   c                    d}t          j        t          |          5  t          |                              d           d d d            d S # 1 swxY w Y   d S )Nz*'another_type' must end with '\[pyarrow\]'r   another_type)r'   r%   r   rj   r   )r   r6   r"  s      r.   .test_construct_from_string_another_type_raisesz=TestArrowArray.test_construct_from_string_another_type_raises  s    ;]9C000 	> 	>KK--n===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>s   #AAAc                   |j         }t          j                            |          st          j                            |          sdt          j                            |          r|j        >t          j                            |          st          j                            |          r6|	                    t          j                            | d                     t                                          |           d S )NzB does not have associated numpy dtype findable by find_common_typer   )r4   r*   rW   r]   r`   r^   r   rb   r\   r,   r'   r(   r)   r   test_get_common_dtyper&  s       r.   r+  z$TestArrowArray.test_get_common_dtype  s    &HX&&	x))	 %%h//	 5=K4Kx!!(++ 5Lx""8,, 5L !!# > > > "     	%%e,,,,,r0   c                    |j         }t          j                            |          rt	          |          sJ d S t                                          |           d S r   )r4   r*   rW   ra   r   r   test_is_not_string_type)r   r6   rf   r   s      r.   r-  z&TestArrowArray.test_is_not_string_type  s[    &8h'' 	3"5)))))))GG++E22222r0   z6GH 45419: pyarrow.ChunkedArray does not support views.)r&   runc                J    t                                          |           d S r   )r   	test_viewr   rg   r   s     r.   r0  zTestArrowArray.test_view  s#     	$r0   c                   ||                                           }|d         }|                    |          }||usJ t          j        ||           |                    d          }||usJ t          j        ||           d S )Nr   backfill)method)isnafillnar   r   )r   rg   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5r0   z5GH 45419: pyarrow.ChunkedArray does not support viewsc                J    t                                          |           d S r   )r   test_transposer1  s     r.   r:  zTestArrowArray.test_transpose  s#     	t$$$$$r0   c                J    t                                          |           d S r   )r   test_setitem_preserves_viewsr1  s     r.   r<  z+TestArrowArray.test_setitem_preserves_views  s#     	,,T22222r0   dtype_backendr    enginerp   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_dtyperV   F)indexna_rep)r6   r>  r=  )r6   r4   r*   rW   r\   r,   r'   r(   r)   rc   r^   unit
ValueErrorrb   rd   	DataFramer   r   to_csvr   r   r	   r
   read_csvr   assert_frame_equal)
r   r>  rg   r=  r-   rf   df
csv_outputr   r   s
             r.   test_EA_typeszTestArrowArray.test_EA_types  s    :+8x(( 	!!.K(KKK "      X""8,, 
	,1N1N!!%N "      X)) 	!!)T!UU   \<4s4:)O)O)OPQQYYU26Y::
8h'' 	. ,,JJ!*--JTZ1'	
 
 
 
fh/////r0   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)r6   r4   r*   rW   rX   r   ra   r,   r'   r(   r)   r   r   r   assert_produces_warningDeprecationWarningr   test_invertr   rg   r-   rf   r   s       r.   rS  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$   )r6   r4   r*   rW   r[   r,   r'   r(   r)   r+   r   	test_diff)r   rg   rU  r-   rf   r   s        r.   rW  zTestArrowArray.test_diff   s    :+8''11 	gll!!?SXSSGSSS "     	$(((((r0   c                    |d d         }|                                 }|j        t          t                                                    k    sJ d S )NrI   )value_countsr6   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5r0   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.   r]  z1TestArrowArray.get_op_from_name.<locals>.rtruediv  s    yA&r0   	rfloordivc                ,    t          j        ||           S r   )r   floor_divider`  s     r.   r   z1TestArrowArray.get_op_from_name.<locals>.<lambda>   s    1 5 5 r0   )stripr   get_op_from_name)r   r   short_opnamer]  s       r.   rf  zTestArrowArray.get_op_from_name  sY    }}S)):%%' ' ' O[((555"7+++r0   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)rt  rs  rA  z	duration[]__pow__)rD  columns) r   r   rd   rH  ilocr6   r4   r   r*   rW   rY   r   r_   r^   r]   r\   re   _valuesrj   	is_date64rF  r   r   r   r   r   	get_dtyper   r   r   rD  rw  )r   r   objotherpointwise_resultr   	was_frameexpected_dataoriginal_dtypeorig_pa_typepa_expectedrF  r   	alt_dtypepd_expecteds                  r.   _cast_pointwise_resultz%TestArrowArray._cast_pointwise_result$  s0    $:::#**+=>>>	h-- 	'I$M!!!Q$/M Xaaad^1NN$M YN%3 	Zry99 	 $$\22  H''55   'FFF8''55 G 8((66 G 8##L11	 G
 8&&|44 G  &&28+>+>|+L+L&x##L11 'x$$\22 ' x-- ' x""<00	 ' Ohh}4558 011 +	9x--  8%%l33 DDDD
 $(;;8Y"777DK<O<O  D%**+>t+>+>+>??KKX  !122 	9rx7J7J8
 8
 	9
 ('#w''..CS))Ii44444)##
5'(B(B#&rzz||44		9$$ubi00 %K>11 'rzz||44		x**9+BCCCCC??9--- &**<88K1d=011+>> 	.|8>8;K  HH y--Hr0   c                    |dv p|dv ot            rt          j                            |          p"|dv ot          j                            |          S )N__add____radd__rp  rq  rr  __rfloordiv____sub____rsub__)r   r*   rW   r_   r   )r   opnamerf   s      r.   _is_temporal_supportedz%TestArrowArray._is_temporal_supported  sp     11 WX 100/ $$X..
/ 00 /$$X..	
r0   4type[Exception] | tuple[type[Exception], ...] | Nonec                   |dv rt           t          fS t          j        |          }|j        }|                     ||          }|dv rt           t          f}n|rd }n|dv rAt          j                            |          st          j        	                    |          rd }ngt          j        
                    |          sFt          j                            |          s't          j                            |          st          }nd }|S )N)
__divmod____rdivmod__>   __mod____rmod__r  )rc   r   r   r{  r4   r  r*   rW   ra   rb   rY   r   r\   )r   r   r|  r}  r6   rf   arrow_temporal_supportedexcs           r.   _get_expected_exceptionz&TestArrowArray._get_expected_exception  s    333'33 S!! &#'#>#>w#Q#Q  
 
 
 '	2CC% 	CC///Hx(( 0,.H,>,>x,H,H 0 CCH  **	x""8,,	 x""8,,	
 CCC
r0   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 0rq  )r  r*   rW   rY   r   r\   r'   r(   r)   r`   r_   r   r+   )r   r  rf   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
 r0   c                0   |j         j        }|dk    r3t          j                            |          rt          j        d           |                     ||          }||                    |           t                      
                    ||           d S Nr  z%Skip testing Python string formatting)r6   r4   r*   rW   rb   r'   r   r  r,   r   test_arith_series_with_scalarr   rg   all_arithmetic_operatorsr-   rf   r(   r   s         r.   r  z,TestArrowArray.test_arith_series_with_scalar  s    :+#z11bh6H6H6R6R1K?@@@++,DhOO%%%--d4LMMMMMr0   c                n   |j         j        }|dk    rRt          j                            |          st          j                            |          rt          j        d           |                     ||          }||	                    |           t                                          ||           d S r  )r6   r4   r*   rW   ra   rb   r'   r   r  r,   r   test_arith_frame_with_scalarr  s         r.   r  z+TestArrowArray.test_arith_frame_with_scalar  s    :+#z11Hx(( 2,.H,>,>x,H,H 2 K?@@@++,DhOO%%%,,T3KLLLLLr0   c                ,   |j         j        }|dv r`t          j                            |          rA|                    t          j                            t          j	        d|                      | 
                    ||          }||                    |           |}t          j        |          }t          j        t          j        |j        d         gt          |          z  |j                             }|                     |||           d S )Nr  zJImplemented pyarrow.compute.subtract_checked which raises on overflow for r$   r   rV   )r6   r4   r*   rW   r[   r,   r'   r(   r)   r+   r  rd   r   re   rx  lencheck_opname)	r   rg   r  r-   rf   r(   r   r   r}  s	            r.   test_arith_series_with_arrayz+TestArrowArray.test_arith_series_with_array  s   :+# (
 
 
 h**844
 !!?C8@C C "     ++,DhOO%%%*ioo 	"(CHQK=3s88#;4:NNNOO#w.....r0   c                   |j         j        }|                    d          rA|                    t          j                            t          j        d|                      t                      
                    |           d S )Nint8zraises on overflow for r$   )r6   r4   r   r,   r'   r(   r)   r*   r+   r   $test_add_series_with_extension_arrayrT  s       r.   r  z3TestArrowArray.test_add_series_with_extension_array   s    :+??6"" 	!!??X?? "     	44T:::::r0   c                    t          j        t          d          5   ||t                                 d d d            d S # 1 swxY w Y   d S )Nz'.* not implemented for <class 'object'>r   )r'   r%   rc   r   )r   rg   r   s      r.   test_invalid_other_compz&TestArrowArray.test_invalid_other_comp,  s    ]'P
 
 
 	* 	* M$)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   AA	Amasked_dtype)booleanInt64r   c                   g d}t          j        ||          }t          j        ||                                 d          } |||          }|t          j        t          j        t          j        fv rg d}ng d}t          j        |t          t          	                                                    }t          j        ||           d S )N)r=   r   NrV   r  )FFN)TTN)rd   r   loweroperatorrk  rm  rj  r   r*   bool_r   r   )	r   r  r   rg   
ser_maskedser_par   expr   s	            r.   test_comp_masked_numpyz%TestArrowArray.test_comp_masked_numpy3  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0r0   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   )r   r   )r   r   r   r  )3__name__
__module____qualname__r   r'   r(   parametrizer   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r!  r%  r)  r+  r-  r)   r0  r8  r:  r<  r   rN  rS  rW  rZ  _combine_le_expected_dtyperf  r  r  r  r  r  r  r  r  r  r  __classcell__r   s   @r.   r   r     so       ? ? ? [[4*:;;: : <;:& & & & &&& & & & &= = =  6 6 68D D D"   * [Xe}55(4 (4 (4 (4 65(4T. . . .`1 1 1 1* [Xe}55$Q $Q $Q $Q 65$QL [Xe}55X X X X 65X$   * [Xe}55O O O O 65O [U$B$B$BCC  DC
; ; ; ; ;(3 3 3 3 3> > >
- - - - -&3 3 3 3 3 [GU            
6 
6 
6 [FE   % % % % % [FE   3 3 3 3 3 [_y*.EFF[XX77!0 !0 87 GF!0F& & & & &* [YB00) ) ) ) 10)6 6 6 "1, , ,d d d dL
 
 
       D, , ,\
N 
N 
N 
N 
NM M M M M/ / /:
; 
; 
; 
; 
;* * * [^-L-L-LMM1 1 NM1 1 1 1 1r0   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 )NT   Fro  rV   TFN)	TTTTFNTNNrd   r   r   r   r   rK   rL   r   r   s        r.   test_kleene_orzTestLogicalOps.test_kleene_orE  s;   ItfqjE7Q;.$!;CUVVVI)))A-5GHHHQ9CCC$
 
 
 	vx000Q
vx000 	ItfqjE7Q;.$!;CUVVV	
 	
 	
 	ry,,,q08JKKK	
 	
 	
 	
 	
r0   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  ro  rV   r  r   r}  r   rK   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	
 	
 	
 	
 	
r0   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  Fro  rV   r  )	TFNFFFNFNr  r  s        r.   test_kleene_andzTestLogicalOps.test_kleene_andt  s;   ItfqjE7Q;.$!;CUVVVI)))A-5GHHHQ9GGG$
 
 
 	vx000Q
vx000 	ItfqjE7Q;.$!;CUVVV	
 	
 	
 	ry,,,q08JKKK	
 	
 	
 	
 	
r0   )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  r0   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  Fro  rV   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	
 	
 	
 	
 	
r0   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	
 	
 	
 	
 	
r0   zop, exp__and____or____xor__c                <   g d}t          j        |d          }t          j        |d          } t          ||          |          }t          j        |dd gt          t                                                              }t          j        ||           d S )Nr  r  rV   ro  F)rd   r   r   r   r*   r  r   r   )r   opr  rg   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0r0   )r  r  r  __doc__r  r'   r(   r  rd   NAr   r  r  r  r  r  r  r  r   r0   r.   r  r  B  s       ;;
 
 
, [%%%&U&&&'%%%&RXd^^///0'''(RXe__1112	

 

 

 


 
 
, [&&&'U'''(&&&')))*RXd^^0001RXe__3334	

 

 

 


 
 
, [%%%&U&&&'&&&'RXd^^0001RXe__1112	
	 	
 
	 	
 [t	
 1 1 1 1 1r0   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  r8   rV   )Nr  rJ   r8   )NNrw   r8   )NNr=   r8   )NN   r   r   )	r   rd   r   r   r   r6  r   maskisnull)r   r6   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,,,,,r0   c                 $   t          j        t          d          5  t          j        d           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        d           d d d            d S # 1 swxY w Y   d S )NzPassing pyarrow typer   z#not_a_real_dype[s, tz=UTC][pyarrow]zdecimal(7, 2)[pyarrow])r'   r%   rc   r   r   r   r0   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]rt  UTC)r   r   r*   	timestamp)r6   r   s     r.   5test_arrowdtype_construct_from_string_supports_dt64tzr    sE    ,-LMME",,sE2233HHr0   c                     d} d}t          j        t          |          5  t          j        t          d          |            d d d            d S # 1 swxY w Y   d S )Nzint64[pyarrow]foobar[pyarrow]zYPassing pyarrow type specific parameters \(\[pyarrow\]\) in the string is not supported\.r   r  rV   )r'   r%   rc   rd   r   range)invalidr"  s     r.   ;test_arrowdtype_construct_from_string_type_only_one_pyarrowr    s    -G	%  
*#	6	6	6 + +
	%(('****+ + + + + + + + + + + + + + + + + +s   $AAAc                    t          j        ddgt          t                                                              } t          j        ddgd          }| |z  }t          j        ddgt          t                                                              }t          j        ||           || z  }t          j        ||           d S )	NabcdefgrV   rA   r>   r   abcabc rd   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4r0   c                 ^   t          j        ddgt          t                                                              } | dz  }t          j        ddgt          t                                                              }t          j        ||           d| z  }t          j        ||           d S )Nr  r  rV   rA   r  defgdefgr  )r  r   r   r  s       r.   .test_arrow_string_multiplication_scalar_repeatr  !  s    Yvj.E.EFFFFaZFy(J/z"))++7N7NOOOH68,,,6z+X66666r0   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, ru  r<   rA  F)warnr   rD  r  ) r6   r4   takerd   r   r*   rW   ra   rb   rX   r'   r%   r   r  r   rY   r\   r   r   rj   r,   r(   r)   r^   r   rF  r   to_pydatetimedtfloorr   r   )rg   r  r  r-   rf   r   r"  r   pd_dtypeser_npr   s              r.   test_quantiler  *  s   
 z'H99YYYD
)D//C 	8$$
8h''
 8x((
 O]26cBBB 	B 	BLL8=LAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	H%%
8))
 8x((

 				dn1	2	2 
K2JJJ   	
 	
 	
 99YYYD
)D//C\\HM\BBF	xX&& =@S+S+S ; 	.<X]<<hk<<<HH-X]---HH%%??X]?KKs??}$$#11u1==X%%%%%}$$#;,,T22"68??4:+F+FGGG3a       9TYY1v..sCjAAAH))	7x##H--	7 x""8,,	7
  '9::H]]#566F
vx00000s   7CC"Cztake_idx, exp_idx)r   r   rA   rA   r8   r8   r8   )r   r   r   rA   r8   r8   
multi_modesingle_mode)r2   c                    |                      |          }t          j        |          }|                    d          }t          j        |                      |                    }t	          j        ||           d S )NTdropna)r  rd   r   moder   r   )ru   take_idxexp_idxrg   r   r   r   s          r.   test_mode_dropna_truer  w  sn     !!(++D
)D//CXXTX""Fy*//8899H68,,,,,r0   c                x   t          j        d d | d         g| j                  }|                    d          }t          j        d g| j                  }t	          j        ||           t          j        | d         d g| j                  }|                    d          }t	          j        ||           d S )Nr   rV   Fr  )rd   r   r6   r  r   r   )rg   	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,,,,,r0   zarrow_dtype, expected_type   f1f2c                :    t          |           j        |k    sJ d S r   )r   rj   )arrow_dtypeexpected_types     r.   test_arrow_dtype_typer!    s&    " k""'=888888r0   c                    t          t                              g d                    } t          |           sJ t          j        j                            |           sJ t	          j        t          t          |                               }||          }|t          j        |                    }t          j        ||           d S )NTFT)r!   r*   re   r   rd   corecommonis_bool_indexerr   r  r  r   asarrayr   r   )rg   rt  r   r   s       r.   test_is_bool_dtyper(    s    rxx(;(;(;<<==D7>))$/////
	%D		""##AtWFD!!"H68,,,,,r0   c                    | j         j        }t          j                            |          s>t          j                            |          st          j                            |          rt          |           sJ d S t          |           rJ d S r   )r6   r4   r*   rW   rY   r   r\   r   rg   r   s     r.   test_is_numeric_dtyper+    s    j&G
W%%*8w''* 8w''*
  %%%%%%%#D)))))))r0   c                    | j         j        }t          j                            |          rt          |           sJ d S t          |           rJ d S r   )r6   r4   r*   rW   r   r   r*  s     r.   test_is_integer_dtyper-    sX    j&G	x7## *%%%%%%%#D)))))))r0   c                    | j         j        }t          j                            |          rt          |           sJ d S t          |           rJ d S r   )r6   r4   r*   rW   rZ   r   r*  s     r.   test_is_signed_integer_dtyper/    sX    j&G	x!!'** 1&t,,,,,,,*40000000r0   c                    | j         j        }t          j                            |          rt          |           sJ d S t          |           rJ d S r   )r6   r4   r*   rW   r[   r   r*  s     r.   test_is_unsigned_integer_dtyper1    sX    j&G	x##G,, 3(.......,T2222222r0   c                    | j         j        }t          j                            |          rt          |           sJ d S t          |           rJ d S r   )r6   r4   r*   rW   rY   r   r*  s     r.   test_is_float_dtyper3    sX    j&G	xG$$ (d#######!$'''''''r0   c                   t          j        |           }|                    d          }t          j        |          }t          j        |          }t          |          t          |          k    sJ t          j        |          }t          j        ||           t          j        |          }t          j        ||           d S )NrA   )	rd   r   headpickledumpsr  loadsr   r   )rg   r   expected_slicedfull_pickledsliced_pickledr   result_sliceds          r.   test_pickle_roundtripr=    s    yHmmA&&O<))L\/22N|s>222222\,''F68,,,L00M=/:::::r0   c                   | j                                         j        }|                    | j                  }t          |j        t                    rJ t          |j        t                    sJ t          j        ||            d S r   )	r   	to_pandasre   r   r6   r   r   r   r   )rg   pd_arrayr   s      r.   test_astype_from_non_pyarrowrA    st    ~''))/H__TZ((F(.*55555flJ/////#FD11111r0   c                     t          j        dg          } |                     d          }t          j        dgd          }t          j        ||           d S )N1.0r  r:   rV   rd   r   r   r   r   r   r   r   s      r.   &test_astype_float_from_non_pyarrow_strrF    sU    
)UG

CZZ*++Fy#&8999H68,,,,,r0   c                     t          j        ddgid          } |                     dd          }t          j        ||            d S )Ncoli@fr   rV   float[pyarrow]r   )errors)rd   rH  r   r   rK  )r   r   s     r.   test_astype_errors_ignorerK    sM    |UXJ/7GHHHH__-h_??F&(+++++r0   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   rj   r*   rW   r_   r^   r'   r   r]   r   re   list_hasnar   r6   r   r   rd   r  r5  r   r   )rg   r   r   r   s       r.   test_to_numpy_with_defaultsrO    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1r0   c                    dd g} t          j        | d          }|                                }t          j        dt          j        g          }t          |d         t                    sJ t          j        ||           d S )Nr=   r   rV   r   )	rd   re   r   r   r   r   floatr   r   )rg   r  r   r   s       r.   test_to_numpy_int_with_narR    su    t9D
(4/
0
0
0C\\^^FxBF$$HfQi'''''11111r0   zna_val, exp)r=   r=   c                    t          j        t           j        t           j        gd          }|                    d|           }t	          j        |gdz  d          }t          j        ||           d S )Nnull[pyarrow]rV   r   r   rA   rd   re   r  r   r   r   r   )na_valr  r  r   r   s        r.   test_to_numpy_null_arrayrW  "  sh     (BE25>
9
9
9C\\	F\;;Fx	333H11111r0   c                     t          j        t           j        t           j        gd          } |                     d           }t	          j        t           j        gdz  d          }t          j        ||           d S )NrT  rV   rA   r   rU  r  r   r   s      r.   !test_to_numpy_null_array_no_dtyperZ  +  sf    
(BE25>
9
9
9C\\\%%Fx!8444H11111r0   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 )	NTro  rV   F)r   r:   r   r;   )	rd   re   r  r   r   r  r   r   float32rY  s      r.   test_to_numpy_without_dtyper]  3  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1r0   c                   |                                  }|                                 }| d         |d d <   t          j        | d         gt          |           z  | j                  }t          j        ||           |                                 }| d d d         |d d <   | d d d         }t          j        ||           |                                 }|                                 |d d <   | }t          j        ||           d S )Nr   rV   r?   )copyr!   rk   r  r6   r   r   tolist)rg   origr   r   s       r.   test_setitem_null_slicerb  @  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5r0   c                   | j         j        }t          j                            |          st          j                            |          rd}t          }d}nyt          j                            |          s>t          j                            |          st          j        	                    |          rd}t          j
        }d}nd}t          }d}t          j        ||          5  || d d <   d d d            d S # 1 swxY w Y   d S )N{   zInvalid value '123' for dtypefoozCould not convertzInvalid value 'foo' for dtyper   )r   rj   r*   rW   ra   rb   r   r   rY   rX   r+   r'   r%   )rg   r   
fill_valueerrr"  s        r.   test_setitem_invalid_dtyperh  W  s@   n!G	x'"" .bh&8&8&A&A .
-
G$$.8((. 8w''.
 
o!
-	s#	&	&	&  QQQ                 s   &C;;C?C?c                 R   t                               t          j        d          t          j        d          gt                                                     } |                     t                                           t          t                                                     ij                  }t          j	        t          j        d          t          j        d          gt          t                                                               }t          j        ||           d S )Nz
2019-12-31rj   types_mapperrV   )r*   re   rd   	Timestampdate32r?  r   date64getr   r   r   )
date_arrayr   r   s      r.   &test_from_arrow_respecting_given_dtyperr  n  s    	l	#	#R\,%?%?@ryy{{   J !!iikk:biikk#:#:;? "  F y	l	#	#R\,%?%?@%%  H 68,,,,,r0   c                    t                               ddgt                                                     } t          j        t           j                  5  |                     t                                           t          t                                                     ij	                   d d d            d S # 1 swxY w Y   d S )Nr        @rj  rk  )
r*   re   r   r   external_error_raisedr+   r?  r   r  rp  )re   s    r.   -test_from_arrow_respecting_given_dtype_unsaferv  |  s    HHc3ZbjjllH33E		!"/	2	2 Q QbjjllJrxxzz4J4J%K%OPPPQ Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Qs   AB::B>B>c                    d} t          j        dddt           j        g|           }|                    d          }t          j        dddt           j        g|           }t	          j        ||           t          j        d	t           j        d
g|           }|                    d          }t          j        dt           j        dg|           }t	          j        ||           d S )Nr  r;   gGz?g{Gz@rV   r=   g333333?g@g^@gp=
cL@r?   g      ^@g      N@)rd   r   r  roundr   r   r6   r   r   r   s       r.   
test_roundrz    s    E
)S$be,E
:
:
:CYYq\\Fy#sC/u===H68,,,
)UBE5)
7
7
7CYYr]]Fy%-U;;;H68,,,,,r0   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)rA   r   r=   r?   zOsearchsorted requires array to be sorted, which is impossible with NAs present.r   )r  rd   r  r   r'   r%   rG  searchsorted)ry   	as_seriesrL   rp   rK   r  r"  s          r.    test_searchsorted_with_na_raisesr~    s    GAq!


			
*
*CeCG inn	0  
z	-	-	-                   s    BB
Bc                    t          j        t          j        ddgt          t                              t                                          t                                                                        ddgd          } |                                 }| 	                    ddg	          }t          j        ||           d S )
Nr   ra  rV   r=   rA   rK   rL   rK   rL   )by)rd   rH  r   r   r*   
dictionaryint32r   r_  sort_valuesr   rK  )rL  r   r   s      r.   test_sort_values_dictionaryr    s    	c
*R]]288::ryy{{-S-S"T"T   Q		
 	

 
B wwyyH^^Sz^**F&(+++++r0   patr  z	a[a-z]{2}c                T   t          j        dd gt          t                                                              }|j                            |           }t          j        dd gt          t                                                              }t          j	        ||           d S )Nr  rV   r=   )
rd   r   r   r*   r   r   r   r  r   r   )r  r   r   r   s       r.   test_str_countr    s~    
)UDMBIIKK)@)@
A
A
ACW]]3Fy!T*RXXZZ*@*@AAAH68,,,,,r0   c                    t          j        dd gt          t                                                              } t          j        t          d          5  | j        	                    dd           d d d            d S # 1 swxY w Y   d S )Nr  rV   z	count notr   r=   flags)
rd   r   r   r*   r   r'   r%   rc   r   r   r   s    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 )NrK   rV   r  r   )widthsidefillchar)
rd   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,,,,,r0   c                    t          j        dd gt          t                                                              } t          j        t          d          5  | j        	                    ddd           d d d            d S # 1 swxY w Y   d S )NrK   rV   zInvalid side: foor   r  re  r   )
rd   r   r   r*   r   r'   r%   rG  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  rV   )casenaregex)
rd   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,,,,,r0   c                    t          j        dd gt          t                                                              } t          j        t          d          5  | j        	                    dd           d d d            d S # 1 swxY w Y   d S )Nr  rV   zcontains notr   rK   r=   r  )
rd   r   r   r*   r   r'   r%   rc   r   r  r  s    r.   #test_str_contains_flags_unsupportedr    s    
)UDMBIIKK)@)@
A
A
AC	*.	A	A	A ' 'A&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'r  zside, pat, na, exp
startswith)TNFrL   r  endswith)FTFbc)rK   eg)TNT)rK   rp   r  r   )FNFc                \   t          j        g dt          t                                                              } t          |j        |           ||          }t          j        |t          t                                                              }t          j	        ||           d S )N)r  NefgrV   )r  
rd   r   r   r*   r   r   r   r  r   r   )r  r  r  r  r   r   r   s          r.   test_str_start_ends_withr    s     )(((
299;;0G0G
H
H
HC#WSWd##CB///FyJrxxzz$:$:;;;H68,,,,,r0   r  )r  r  c                \   t          j        d d gt          t                                                              } t          |j        |           d          }t          j        d d gt          t                                                              }t          j	        ||           d S )NrV   r   r  )r  r   r   r   s       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,,,,,r0   zarg_name, argreplr  r  r=   c                    t          j        dd gt          t                                                              }dddd}||| <   t          j        t          d          5   |j        j	        d	i | d d d            d S # 1 swxY w Y   d S )
Nr  rV   rL   r   T)r  r  r  zreplace is not supportedr   r   )
rd   r   r   r*   r   r'   r%   rc   r   replace)arg_nameargr   kwargss       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, exprK   r   r?   xbxcxbacz[a-b]xxxcc                X   t          j        dd gt          t                                                              }|j                            | |||          }t          j        |t          t                                                              }t          j        ||           d S )NabacrV   )nr  )	rd   r   r   r*   r   r   r  r   r   )r  r  r  r  r  r   r   r   s           r.   test_str_replacer    s     )VTN*RYY[[*A*A
B
B
BCW__S$!5_99FyJryy{{$;$;<<<H68,,,,,r0   c                 @   t          j        ddgt          t                                                              } | j                            dddd          }t          j        ddgt          t                                                              }t          j        ||           | 	                    t          j
        d	
                    }|j                            dddd          }|	                    |j                  }t          j        ||           | 	                    t          j
        d	t          j                            }|j                            dddd          }|	                    |j                  }t          j        ||           d S )Nr  aaaaaarV   rK   r  Tr  r    storage)r  r   )rd   r   r   r*   r   r   r  r   r   r   StringDtyper6   r   r   )	r   actualr   ser2actual2	expected2ser3actual3	expected3s	            r.   test_str_replace_negative_nr    sI   
)UH%Z		-D-D
E
E
ECW__S"b$//Fy$:biikk+B+BCCCH8V,,, ::bnY77788DhsBD11G
++I9g...::bnYHHHIIDhsBD11G
++I9g.....r0   c                    t          j        dd gt          t                                                              } t          j        t          d          5  | j        	                    ddg           d d d            d S # 1 swxY w Y   d S )Nr  rV   zrepeat is notr   r=   rA   )
rd   r   r   r*   r   r'   r%   rc   r   r  r  s    r.   test_str_repeat_unsupportedr  2  s    
)UDMBIIKK)@)@
A
A
AC	*/	B	B	B  1v                 r  c                 T   t          j        dd gt          t                                                              } | j                            d          }t          j        dd gt          t                                                              }t          j        ||           d S )Nr  rV   rA   r  )	rd   r   r   r*   r   r   r  r   r   rE  s      r.   test_str_repeatr  8  s    
)UDMBIIKK)@)@
A
A
ACW^^AFy(D)BIIKK1H1HIIIH68,,,,,r0   zpat, case, na, expc                V   t          j        dd gt          t                                                              }|j                            | ||          }t          j        |t          t                                                              }t          j	        ||           d S )Nr  rV   r  r  
rd   r   r   r*   r   r   r   r  r   r   r  r  r  r  r   r   r   s          r.   test_str_matchr  ?  s     )UDMBIIKK)@)@
A
A
ACW]]3Tb]11FyJrxxzz$:$:;;;H68,,,,,r0   )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$abcNrV   r  r  r  s          r.   test_str_fullmatchr  Q  s    " )111BIIKK9P9P
Q
Q
QCW]]3Tb]11FyJrxxzz$:$:;;;H68,,,,,r0   zsub, start, end, exp, exp_typr  c                (   t          j        dd gt          t                                                              }|j                            | ||          }t          j        |t          |                    }t          j        ||           d S )Nr  rV   )startend	rd   r   r   r*   r   r   findr   r   )subr  r  r  exp_typr   r   r   s           r.   test_str_findr  h  sz    
 )UDMBIIKK)@)@
A
A
ACW\\#U\44FyJw$7$7888H68,,,,,r0   c                 Z   t          j        dd gt          t                                                              } | j                            ddd          }t          j        dd gt          t                                                              }t          j	        ||           d S )Nr  rV   rL   ir  r  r  r  r=   
rd   r   r   r*   r   r   r  r  r   r   rE  s      r.   test_str_find_negative_startr  s  s    
)UDMBIIKK)@)@
A
A
ACW\\cA\66Fy!T*RXXZZ*@*@AAAH68,,,,,r0   c                    t          j        dd gt          t                                                              } | j                            dd          }t          j        dd gd          }t          j        ||           d S )Nr  rV   r  r=   )r  r?   r   r  rE  s      r.   test_str_find_no_endr  {  ss    
)UDMBIIKK)@)@
A
A
ACW\\$a\((Fy"d+;<<<H68,,,,,r0   c                 Z   t          j        dd gt          t                                                              } | j                            ddd          }t          j        dd gt          t                                                              }t          j	        ||           d S )NabcdefgrV   dr  r  r  r  rE  s      r.   )test_str_find_negative_start_negative_endr    s    
)Y%Z		-D-D
E
E
ECW\\c\44Fy!T*RXXZZ*@*@AAAH68,,,,,r0   c                 X   t          j        dd gt          t                                                              } | j                            dd          }t          j        dd gt          t                                                              }t          j	        ||           d S )Nr  rV   r  r  )r  r  r?   r  rE  s      r.   test_str_find_large_startr    s    
)Y%Z		-D-D
E
E
ECW\\c\,,Fy"d:bhhjj+A+ABBBH68,,,,,r0   z,https://github.com/apache/arrow/issues/36311r   r  )r  r   r=      Nr  )r  r?   r   r  r  Nr  )r  azabcerK   caac                z   t          j        g dt          t                                                              }|                    t          j        d                    }|j                            || |          }|j                            || |                              |j	                  }t          j        ||           |                    t          j        d                    }|j                            || |                              |j	                  }t          j        ||           d S )N)abcaadefr  abcdeddefgj8292r  rK   r  rV   r?  r  r    )rd   r   r   r*   r   r   r  r   r  r6   r   r   )	r  r  r  rt  object_seriesr   r   arrow_str_seriesresult2s	            r.   test_str_find_e2er    s    		===%%	 	 	A HHR^H===>>MUZZUC((F %%c5#66==flKKH68,,,xxy A A ABB"''UC88??MMG7H-----r0   c                 Z   t          j        dd gt          t                                                              } | j                            ddd          }t          j        dd gt          t                                                              }t          j	        ||           d S )Nr  rV   r  r  r  r  r?   r  rE  s      r.   2test_str_find_negative_start_negative_end_no_matchr    s    
)Y%Z		-D-D
E
E
ECW\\c\44Fy"d:bhhjj+A+ABBBH68,,,,,r0   zi, exp)rL   r  N)rp   r  NrA   )rp   NNr  )rK   NNr  c                P   t          j        g dt          t                                                              }|j                            |           }t          j        |t          t                                                              }t          j        ||           d S )N)r  deNrV   )	rd   r   r   r*   r   r   rp  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,,,,,r0   z=TODO: StringMethods._validate should support Arrow list typesr   c            
        t          j        t          t                              t          d          t          d          d g                              } | j                            d          }t          j        g dt          t          	                                                    }t          j        ||           d S )Nr  123=za=b=cz1=2=3NrV   )rd   r   r!   r*   re   rM  r   joinr   r   r   r   rE  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,,,,,r0   c                 R   t          j        t          t                              g d                              } | j                            d          }t          j        g dt          t                                                              }t          j
        ||           d S )N)r  r  Nr  r  rV   )rd   r   r!   r*   re   r   r  r   r   r   r   rE  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,,,,,r0   zstart, stop, step, expdcbac                T   t          j        dd gt          t                                                              }|j                            | ||          }t          j        |t          t                                                              }t          j        ||           d S NabcdrV   )	rd   r   r   r*   r   r   slicer   r   )r  stopstepr  r   r   r   s          r.   test_str_slicer    s     )VTN*RYY[[*A*A
B
B
BCW]]5$--FyJryy{{$;$;<<<H68,,,,,r0   zstart, stop, repl, expaxcdxcdcdc                T   t          j        dd gt          t                                                              }|j                            | ||          }t          j        |t          t                                                              }t          j        ||           d S r  )	rd   r   r   r*   r   r   slice_replacer   r   )r  r  r  r  r   r   r   s          r.   test_str_slice_replacer    s     )VTN*RYY[[*A*A
B
B
BCW""5$55FyJryy{{$;$;<<<H68,,,,,r0   zvalue, method, exp)a1cisalnumT)z!|,r  F)aaaisalphaT)z!!!r  F)u   ٠	isdecimalT)z~!r  F)rM   isdigitT)~r  F)r  islowerT)aaAr  F)r  	isnumericT)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  )valuer4  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,,,,,r0   zmethod, exp
capitalizezAbc deftitlezAbc DefswapcasezAbC Defr  zabc defupperzABC DEFcasefoldc                Z   t          j        dd gt          t                                                              } t          |j        |                       }t          j        |d gt          t                                                              }t          j        ||           d S )NzaBc dEFrV   	rd   r   r   r*   r   r   r   r   r   )r4  r  r   r   r   s        r.   test_str_transform_functionsr3    s     )Y%Z		-D-D
E
E
EC%WSWf%%''Fy#tJryy{{,C,CDDDH68,,,,,r0   c                 R   t          j        dd gt          t                                                              } | j                                        }t          j        dd gt          t                                                              }t          j	        ||           d S )Nr  rV   r8   )
rd   r   r   r*   r   r   r  r  r   r   rE  s      r.   test_str_lenr5  !  sz    
)VTN*RYY[[*A*A
B
B
BCW[[]]Fy!T*RXXZZ*@*@AAAH68,,,,,r0   zmethod, to_strip, val)re  Nz abc )re  r   xabcx)lstripNz abc)r7  r   xabc)rstripNzabc )r9  r   abcxc                ^   t          j        |d gt          t                                                              } t          |j        |           |          }t          j        dd gt          t                                                              }t          j        ||           d S )NrV   )to_stripr  r2  )r4  r<  valr   r   r   s         r.   test_str_stripr>  (  s     )S$Kz"))++'>'>
?
?
?C%WSWf%%x888Fy%j.E.EFFFH68,,,,,r0   r=  abc123c                T   t          j        | d gt          t                                                              }|j                            d          }t          j        dd gt          t                                                              }t          j        ||           d S NrV   r  r  )	rd   r   r   r*   r   r   removesuffixr   r   r=  r   r   r   s       r.   test_str_removesuffixrD  :      
)S$Kz"))++'>'>
?
?
?CW!!%((Fy%j.E.EFFFH68,,,,,r0   123abcc                T   t          j        | d gt          t                                                              }|j                            d          }t          j        dd gt          t                                                              }t          j        ||           d S rA  )	rd   r   r   r*   r   r   removeprefixr   r   rC  s       r.   test_str_removeprefixrI  B  rE  r0   rJ  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  rV   )
rd   r   r   r*   r   r   encoder  r   r   )rJ  encodingr  r   r   r   s         r.   test_str_encoderQ  J  s     )UDMBIIKK)@)@
A
A
ACW^^Hf--Fy#tJryy{{,C,CDDDH68,,,,,r0   c           	        t          j        g dt          t                                                              }|j                            d|           }t          j        dgg d gt          t                              t                                                                        }t          j	        ||           d S )N)r  r  NrV   rL   r  )
rd   r   r   r*   r   r   findalllist_r   r   )r  r   r   r   s       r.   test_str_findallrU  Y  s    
)(((
299;;0G0G
H
H
HCW__S_..Fy3%T**RXXbiikk=R=R2S2STTTH68,,,,,r0   r4  rD  rindexz
start, endc                   t          j        dd gt          t                                                              } t          |j        |           d||          }t          j        dd gt          t                                                              }t          j	        ||           t          j        t          d          5   t          |j        |           d||           d d d            d S # 1 swxY w Y   d S )NabcbarV   rp   rA   zsubstring not foundr   re  )rd   r   r   r*   r   r   r   r  r   r   r'   r%   rG  )r4  r  r  r   r   r   s         r.   test_str_r_indexrY  a  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 rN  )
rd   r   r   r*   r   r   	normalizer_  r   r   )rZ  r   r   r   s       r.   test_str_normalizer_  s  se    
)UDMBIIKK)@)@
A
A
ACWt$$FxxzzH68,,,,,r0   c                X   t          j        g dt          t                                                              }|j                            d| |          }t          j        g dt          t                                                              }t          j	        ||           d S )N)rX  re  NrV   rp   )rA   r?   N)
rd   r   r   r*   r   r   rfindr  r   r   )r  r  r   r   r   s        r.   test_str_rfindrb  {  s     )****RYY[[2I2I
J
J
JCW]]3s++Fyj.D.DEEEH68,,,,,r0   c                 X   t          j        dd gt          t                                                              } | j                            ddi          }t          j        dd gt          t                                                              }t          j        ||           d S )NrX  rV   a   rL   bbcbb)	rd   r   r   r*   r   r   	translater   r   rE  s      r.   test_str_translaterg    s    
)WdO:biikk+B+B
C
C
CCWCy))Fy'4
299;;0G0GHHHH68,,,,,r0   c                 T   t          j        dd gt          t                                                              } | j                            d          }t          j        dd gt          t                                                              }t          j        ||           d S )NrX  rV   r  zabc
ba)	rd   r   r   r*   r   r   wrapr   r   rE  s      r.   test_str_wraprj    s}    
)WdO:biikk+B+B
C
C
CCW\\!__Fy)T**RYY[[2I2IJJJH68,,,,,r0   c                 f   t          j        g dt          t                                                              } | j                                        }t          j        g dg dg dgt          t                                                    g d          }t          j
        ||           d S )N)za|bNza|crV   )TTFr  r#  )rK   rL   rp   )r6   rw  )rd   r   r   r*   r   r   get_dummiesrH  r  r   rK  rE  s      r.   test_get_dummiesrm    s    
)(((
299;;0G0G
H
H
HCW  ""F|			3335H5H5HI$$  H
 &(+++++r0   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 )	NrX  rV   rL   )rK   rL   cbar  Fexpand)r  rL   rK   )rd   r   r   r*   r   r   	partitionrH  r   rK  r!   re   r   
rpartitionrE  s      r.   test_str_partitionrt    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,,,,,r0   rsplitsplitc                \   t          j        dd gt          t                                                              } t          |j        |                       }t          j        t          t                              g dd g                              }t          j
        ||           d S )Nza1 cbc
brV   )a1cbcrL   )rd   r   r   r*   r   r   r   r!   re   r   r   r4  r   r   r   s       r.   test_str_split_pat_noner{    s     )[$'z"))++/F/F
G
G
GC%WSWf%%''Fy,RXX7I7I7I46P-Q-QRRSSH68,,,,,r0   c            	     z   t          j        g dt          t                                                              } | j                            d          }t          j        t          t                              g dg dd g                              }t          j
        ||           | j                            dd          }t          j        t          t                              dd	gd
d	gd g                              }t          j
        ||           | j                            dd          }t          j        t          t                              ddgddgd g                              }t          j
        ||           | j                            ddd          }t          j        t          t                              g d                    t          t                              g d                    d          }t          j        ||           | j                            dd          }t          j        t          t                              g d                    t          t                              g d                    d          }t          j        ||           d S )Na1cbcba2cbcbNrV   rp   rx  rL   rL   a2rL   rL   r=   r  rx  bcbr  z[1-2]T)r  rK   cbcb)r  rq  )rK   rK   N)r  r  Nr   r=   rB   rp  rK   r  Nr  NN)rd   r   r   r*   r   r   rv  r!   re   r   r   rH  rK  rE  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 &(+++++r0   c            	        t          j        g dt          t                                                              } | j                            d          }t          j        t          t                              g dg dd g                              }t          j
        ||           | j                            dd          }t          j        t          t                              dd	gd
d	gd g                              }t          j
        ||           | j                            ddd          }t          j        t          t                              g d                    t          t                              g d                    d          }t          j        ||           | j                            dd          }t          j        t          t                              g d                    t          t                              g d                    d          }t          j        ||           d S )Nr}  rV   rp   r  r  r=   r  a1cbrL   a2cbT)r  rq  )r  r  N)rL   rL   Nr  rB   rp  r  r  )rd   r   r   r*   r   r   ru  r!   re   r   r   rH  rK  rE  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 &(+++++r0   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rx  b2c3rV   z*pat=.* must contain a symbolic group name.r   z[ab](\d))
rd   r   r   r*   r   r'   r%   rG  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rq  c           	        t          j        g dt          t                                                              }|j                            d|           }t          j        t          t          	                    g d                    t          t          	                    g d                    d          }t          j        ||           d S )Nr  rV   z(?P<letter>[ab])(?P<digit>\d)rp  )rK   rL   NrB   rM   N)letterdigit)rd   r   r   r*   r   r   r  rH  r!   re   r   rK  )rq  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 &(+++++r0   c            	     6   t          j        g dt          t                                                              } | j                            dd          }t          j        dt          t          	                    g d                    i          }t          j        ||           | j                            dd          }t          j        t          t          	                    g d                    d	          }t          j        ||           d S )
Nr  rV   z[ab](?P<digit>\d)Trp  r  r  Fr  )rd   r   r   r*   r   r   r  rH  r!   re   r   rK  r   rE  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,,,,,r0   rF  )rB  rA  rs  rt  c                    ddg}t                               |           }t          j        ||          }t          t                               dd g|                    }t          j        ||           d S )N1000NaTrV     rj  )r*   durationr!   r   re   r   r   )rF  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5r0   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   )r6   r4   r*   rW   r   r'   r%   AttributeErrorrd   r   r
  r   s     r.   test_unsupported_dtr  8	  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microsecondrJ   month
nanosecondr  quartersecondrw   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=   rA   r  r8   rw   rJ   r  )r  r  r  r  r  r  r  r  rB  rV   rj  )rd   r   rm  r   r*   r  r   r
  r   r   rn  r   time64r!   re   r   r   )propr   r   r   exp_types        r.   test_dt_propertiesr  A	  s	   . )L	 	 	 	
 d++,,  C  SVT""FH(D!! #99;;	Hd	#	# #99T??y,RXXx6FXX-V-VWWXXH68,,,,,r0   c            
     ^   t          j        t          dddd          t          dddd          t          dddd          d gt          t                              d                    	          } | j        j        }t          j        g d
t          t                                                    	          }t          j
        ||           | j        j        }t          j        g dt          t                                                    	          }t          j
        ||           d S )Nr  rF   rA   r  r  r  r  r  r=   rG   rA  rV   r  FFTN)rd   r   r   r   r*   r  r
  is_month_startr  r   r   is_month_endrE  s      r.   test_dt_is_month_start_endr  r	  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,,,,,r0   c            
     ^   t          j        t          dddd          t          dddd          t          dddd          d gt          t                              d                              } | j        j        }t          j        g d	t          t                                                              }t          j
        ||           | j        j        }t          j        g d
t          t                                                              }t          j
        ||           d S )Nr  rF   rG   r  r  r=   rA  rV   r  r  )rd   r   r   r   r*   r  r
  is_year_startr  r   r   is_year_endrE  s      r.   test_dt_is_year_start_endr  	  s   
)$bbq999$aQQ777$aRa888		
 d++,,  C V!Fy333:bhhjj;Q;QRRRH68,,,VFy333:bhhjj;Q;QRRRH68,,,,,r0   c            
     ^   t          j        t          dddd          t          dddd          t          dddd          d gt          t                              d                    	          } | j        j        }t          j        g d
t          t                                                    	          }t          j
        ||           | j        j        }t          j        g dt          t                                                    	          }t          j
        ||           d S )Nr        r  r  r=   rG   rA  rV   r  r  )rd   r   r   r   r*   r  r
  is_quarter_startr  r   r   is_quarter_endrE  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,,,,,r0   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  r8   r=   rA   rA  rV   )rG   r     N)rd   r   r   r   r*   r  r   r
  r  r   r   rz  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,,,,,r0   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  r8   r=   r  rA      ;   )r  r  r  r  r  r  rA  rV   )
rd   r   r   r   r*   r  r
  r^  r   r   rE  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,,,,,r0   rA  rB  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=   rA   r  r  rV   r   rj  )rd   r   r   r   r*   r  r
  rF  r   r!   re   r  r   r   rF  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,,,,,r0   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=   rA   r  r  rB  r   rV   )
rd   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////////r0   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=   rA   r  r  rB  rV   )r  r=   r=   r  )r  weekr  r   rw  r6   )rd   r   r   r   r*   r  r
  isocalendarrH  r   rK  rE  s      r.   test_dt_isocalendarr  	  s    
)	t1!!	4	4	4d;d++,,  C V!!F|	yyy!'''  H
 &(+++++r0   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=   rs  rV   )r/   rd   r   r   r   r*   r  r   r
  r   r   r   )r4  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,,,,,r0   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=   rA   r  r  rB  rV   z%Y-%m-%dT%H:%M:%Sz2023-01-02T03:00:00.000000000)r/   rd   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,,,,,r0   )ceilr  rx  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=   rA   r  r  rB  rV   zambiguous is not supported.r   1hr  	ambiguousznonexistent is not supported.nonexistent)rd   r   r   r   r*   r  r'   r%   rc   r   r
  r4  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=   rA   r  r  rB  rV   zfreq='1B' is not supportedr   1Bz$Must specify a valid frequency: None)rd   r   r   r   r*   r  r'   r%   rG  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  rt  rs  rA  rB  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  rB  rB   )rd   r   r   r   r*   r  r   r
  r   r   r   )r  r4  r   rf   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,,,,,r0   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 )NrD   r=   r  rB  rV   CThe behavior of ArrowTemporalProperties.to_pydatetime is deprecatedr   c              3  B   K   | ]}t          |          t          u V  d S r   )rj   r   .0ress     r.   	<genexpr>z(test_dt_to_pydatetime.<locals>.<genexpr>D
  s-      77tCyyH$777777r0   z>The behavior of DatetimeProperties.to_pydatetime is deprecateddatetime64[ns])r   rd   r   r   r*   r  r   rQ  FutureWarningr
  r	  r   re   r   r   r   r   )rg   r   r"  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 )	NrD   rF   rG   r   rV   r  r   z#to_pydatetime cannot be called with)rd   r   r   r   r   r*   r   rQ  r  r'   r%   rG  r
  r	  )r  r   r"  s      r.    test_dt_to_pydatetime_date_errorr	  L
  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=   rA   r  r  rB  rV   z ambiguous='NaT' is not supportedr   r  r  r  z"nonexistent='NaT' is not supportedr  )rd   r   r   r   r*   r  r'   r%   rc   r
  tz_localizer  s    r.   *test_dt_tz_localize_unsupported_tz_optionsr  Y
  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=   rA   r  r  rB  r  r  rV   )
rd   r   r   r   r*   r  r
  r  r   r   rE  s      r.   test_dt_tz_localize_noner  e
  s    
)	t1!!	4	4	4d;d|<<==  C V%%Fy	t1!!	4	4	4d;d++,,  H 68,,,,,r0   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=   rA   r  r  rV   r  rj  r/   rd   r   r   r   r*   r  r
  r  re   computeassume_timezoner!   r   r   )rF  r-   r   r   exp_datar   s         r.   test_dt_tz_localizer  r
  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,,,,,r0   znonexistent, exp_dateshift_forwardrF   r  shift_backwardz2023-03-12 01:59:59.999999999c           	        t          |           t          j        t          ddddd          d gt	          t
                              d                              }|j                            d	| 
          }t
          	                    |d gt
                              d                    }t
          j
                            |d	          }t          j        t          |                    }t          j        ||           d S )Nr  r  rF   rA   r  )r  r  r  r  r  rB  rV   r  r  rj  r  )r  exp_dater-   r   r   r  r   s          r.   test_dt_tz_localize_nonexistentr  
  s     w'''
)	t1"1R	@	@	@$Gd++,,  C V+FFFxx4(r||D/A/AxBBHz))(LAAHy,X6677H68,,,,,r0   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=   rA   r  r  rB  rV   z"Cannot convert tz-naive timestampsr   r  )rd   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=   rA   r  r  rB  r  rV   
rd   r   r   r   r*   r  r
  r  r   r   rE  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,,,,,r0   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=   rA   r  r  r  rV   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,,,,,r0   r6   ztimestamp[ms][pyarrow]zduration[ms][pyarrow]c                    t          j        dd g|           }|j                            d          }|                    |                     dd                    }t          j        ||           d S )Nr  rV   rB  rs  )rd   r   r
  as_unitr   r  r   r   ry  s       r.   test_as_unitr$  
  sg     )T4L
.
.
.CV^^D!!Fzz%--d3344H68,,,,,r0   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=   rA   r  r8   r%  r&  r'  r(  rB  rV   rj  )rd   r   	Timedeltar   r*   r  r   r
  r!   re   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,,,,,r0   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=   rA   r  r8   r*  rB  rV   gN%  @rj  )rd   r   r+  r   r*   r  r
  total_secondsr!   re   r   r   r   rE  s      r.   test_dt_timedelta_total_secondsr/  
  s    
)L	   	
 T**++  C V!!##FyBHHlD%9

HMMNN H 68,,,,,r0   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=   rA   r  r8   rB  rV   c              3  B   K   | ]}t          |          t          u V  d S r   )rj   r   r  s     r.   r  z)test_dt_to_pytimedelta.<locals>.<genexpr>   s-      88#tCyyI%888888r0   timedelta64[ns])r   rd   r   r   r*   r  r
  to_pytimedeltar   re   r   r   r   r   r   rg   r   r   r   s       r.   test_dt_to_pytimedeltar5  
  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1r0   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=   rA   r  r8   r*  rB  rV   )r=   r   r   rA   r   r  r8   )NNNNNNN)r%  hoursminutesr&  millisecondsr'  r(  r   r  )rd   r   r+  r   r*   r  r
  
componentsrH  r   rK  rE  s      r.   test_dt_componentsr;    s    
)L	   	
 T**++  C VF|			 J J JK
 
 
   H &(+++++r0   r   c                    t          j        d gd          } t          ||           |          }|r| dk    }nt           j        }||u sJ d S )Nr  rV   r   r   )rd   r   r   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r0   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TruerB   rC  )falseFALSEFalse0rC   TFrV   ro  rA  re  zFailed to parser   )r  r!   r   r*   r  rd   re   r   r   r'   r%   r+   )true_stringsfalse_stringsnullsr  boolsr   r   s          r.   %test_from_sequence_of_strings_booleanrJ  1  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   )	rd   r   r_  concatr   re   r  r   r   )r6   r   r   r   s       r.   %test_concat_empty_arrow_backed_seriesrM  C  sd    
)Be
$
$
$CxxzzHYBHRrx8889:;;F68,,,,,r0   r   zstring[pyarrow]c                    t                               d                                          }t          j        ||           }t          j        t          |          |           }t          j        ||           d S )Nzthe quick brown foxrV   )r*   re   rv  rd   r   r!   r   r   )r6   r  r   r   s       r.   test_series_from_string_arrayrO  K  sj    
(((..00
1
1C
)Cu
%
%
%Cy,S11???H3)))))r0   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.   rT  z#OldArrowExtensionArray.__getstate__U  s2    $$&&;//gr0   )r  r  r  rT  r  r  s   @r.   rQ  rQ  T  s8                r0   rQ  c                 >   t                               dg          } t          |           }t          j        t          j        |                    }t          j        ||           |j        t           	                    |           k    sJ t          |d          rJ d S )Nr=   rS  )r*   re   rQ  r6  r8  r7  r   r   r   chunked_arrayhasattr)rg   r   r   s      r.   #test_pickle_old_arrowextensionarrayrZ  [  s    88QC==D%d++H\&,x0011F#FH555r//555555vw'''''''r0   c                 ,   d} t          t                              t          j        | ft          j                  g                    }|                                }d|t          j        | ft          j                  <   |j        |j        k    sJ d S )Nih6 rV   F)	r!   r*   rX  r   onesr  r_  zerosr   )Nr  r   s      r.   /test_setitem_boolean_replace_with_mask_segfaultr_  d  s~    A
b..BH0M0M0M/NOO
P
PCxxzzH*/C!RX&&&'=H.......r0   zdata, arrow_dtyperP   rQ   c                    t          |          }t          j        t          j        |           |          }t          j        | |          }t	          j        ||           d S r   )r   rd   re   r   r   r   )rg   r  r6   r   r   s        r.   -test_conversion_large_dtypes_from_numpy_arrayra  m  sZ     {##EXbhtnnE222FxE***H#FH55555r0   c                 D   t          j        dd d git          t                                                              } t          j        dddgid          }t          j        | |gd          }t          j        dg did          }t          j        ||           d S )	NrK   rV   r   r=   r   T)ignore_index)NNr   r=   )rd   rH  r   r*   nullrL  r   rK  )rL  df2r   r   s       r.   test_concat_null_arrayrf  {  s    	sT4L)BGGII1F1F	G	G	GB
,aV},<
=
=
=CYCyt444F|S"4"4"45=MNNNH&(+++++r0   c                    t          j        g dt          |                     }|                                }t          j        g dt          t                                                    g d          }t          j        ||           d S )Nr=   rA   r  rV   )r  rA   r=   r=   r  g       @rt  r  r   r   r   r  25%50%75%r
  r6   rD  )rd   r   r   describer*   r   r   r   r   rg   r   r   s       r.   test_describe_numeric_datarp    s     9YYYj&9&9:::D]]__Fy&&&&&III  H
 68,,,,,r0   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=   rI   rV   	   )rJ   rA   r=   r  rJ   rw   rr  rF  ri  rm  )rd   r   r  r   rn  to_timedeltarF  r`  r   r   r   ro  s       r.   test_describe_timedelta_dataru    s     9U1b\\G)<)<===D]]__Fy	
bo333',GGGNNPPPIII  H
 68,,,,,r0   c                    t          j        t          dd          t                               }|                                }t          j        dg fddD             z   t
          g d          }t          j        ||           d S )	Nr=   rI   rV   rr  c                R    g | ]#}t          j        |j        j                   $S ))r   rF  )rd   rm  r   rF  )r   vr   s     r.   
<listcomp>z/test_describe_datetime_data.<locals>.<listcomp>  s>     
 
 
 Lwz===
 
 
r0   )rJ   r=   r  rJ   rw   rr  )r   r   r  rj  rk  rl  r
  rm  )rd   r   r  r   rn  r   r   r   ro  s   `   r.   test_describe_datetime_datarz    s     9U1b\\G)<)<===D]]__Fy	

 
 
 
'
 
 
	

 BBB  H 68,,,,,r0   c                    g d}t          j        |t          |                     }|                    d          }|d         }||k    sJ d S )Nrh  rV   g?r   )rd   r   r   r  )r   rg   r   r   r   s        r.   test_quantile_temporalr|    sZ    
 99D
)D
7 3 3
4
4
4C\\#F1vHXr0   c                    t                               t          j        d          gt                                                     } t          j        | t          | j                            }t          |          dk    sJ d S )Nz
2020-01-01rj  rV   z+0    2020-01-01
dtype: date32[day][pyarrow])
r*   re   r   fromisoformatrn  rd   r   r   rj   repr)arrow_dtr   s     r.   test_date32_reprr    si    xx+L99:xMMH
)HJx}$=$=
>
>
>C99FFFFFFFr0   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=   rB  rV   rA   )
rd   to_datetimert  r   r   r*   r  r  r   r   )data_tsdata_tdser_tsser_tdr   r   s         r.   2test_duration_overflow_from_ndarray_containing_natr    s    naY''Goq$i((GYwjd1C1C&D&DEEEFYwjT1B1B&C&CDDDFf_Fy!T*R\\$5G5G*H*HIIIH68,,,,,r0   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_dtyperN  r'   r(   r)   r,   rM  )rg   r-   r  r(   s       r.   test_infer_dtype_pyarrow_dtyper    s    
/$

C/!!!!{ "sGGG{  B ! 
 
 	D!!!#/$t**T:::::::::r0   c                   d}| j         }t          j                            |           r+t	          j        ||                              |          g}n0t	          j        ||| j                                      |          g}t          j
        ||           }t          t                              |g|                     }t          j        ||           d S )Nr  rs  rF  r   rV   rj  )rF  r*   rW   r_   rd   r+  r#  rm  r   r!   rk   re   r   r   )r   r=  rF  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5r0   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=   rs  r  rh  rj  )r=   r=   r=   )rF  r*   rW   r_   rd   r+  r#  rm  r   r!   re   r_  r   r   r   rF  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5r0   c                B   t          t                              g d|                     }| j        }|t	          j        d|                              |          z
  }t          t                              g d|                     }t          j        ||           d S )Nrh  rj  r=   rs  )r   r=   rA   )	r!   r*   re   rF  rd   r+  r#  r   r   )r   r-   r  rF  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5r0   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=   rs  r  rh  rj  )FTT)rF  r*   rW   r_   rd   r+  r#  rm  r   r!   re   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5r0   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 )Nrh  rj  r=   rA   rs  r  )r!   r*   re   rW   r_   rd   r+  rF  r#  r   rm  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r0   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=   rj  rs  r   r  )r!   r*   re   rM  rW   r_   rd   r+  rF  r#  r  r   rm  r   r  s       r.   test_iter_temporalr  0  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r0   c                    t          j        | d d         g d          }|                    d                                          }t          j        ddgdd	d
g          }t	          j        ||           d S )Nr  )rK   rK   rL   r  r   )levelrA   r=   r   rK   rL   rm  )rd   r   groupbysizer   r   r4  s       r.   'test_groupby_series_size_returns_pa_intr  G  sy    
)D!HOOO
4
4
4C[[q[!!&&((Fy!Q'7SzJJJH68,,,,,r0   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=   rj  rV   rs  r  r   nat)r!   r*   re   r   rW   r_   rd   r+  rF  r#  rm  r   r   r^   r  r  r   to_pandas_dtyperj   datetime_datar   r   )r   r6   r  r   r*  r  r   s          r.   test_to_numpy_temporalr  O  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1r0   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=   )rr   rs   rt   rr   r  rs   rt   r   )rD  rw  r6   )rd   rH  r  r   Indexr   rK  )rl   rL  r   r   s       r.   %test_groupby_count_return_arrow_dtyper  l  s    	QFLII	J	JBZZ__""$$F|
Qhs%%%c
	  H &(+++++r0   c            	         t          j        ddgddggt          t                              t                                          d                              } | j        j        }|t          k    sJ d S )Nr=   rA   r  r8   )	list_sizerV   )	rd   r   r   r*   rT  r  r6   rj   rM  )r   r   s     r.   test_fixed_size_listr  x  sf    
)
Q!Q
288BHHJJ!8+L+L M M  C Y^FT>>>>>>r0   c            	         t          j        t          j        dd          dgt          t	          d                              } t          |           }d}||k    sJ d S )N2012r  )rU  rH  r  r  z#     col
0  15340
1  15341
2  15342)rd   rH  period_ranger   r"   r  )rL  r   r   s      r.   'test_arrowextensiondtype_dataframe_reprr    sm    	
***--..
 
 
B
 "XXF 8HXr0   c                     t          j        dd gd          } |                     d d          }t          j        dd gd          }t          j        ||           d S )NrA   r   rV   r  )rf     )rd   r   powr   r   )kr   r   s      r.   test_pow_missing_operandr    sb    
	1d)#3444AUU4AU&&Fy!T*:;;;H68,,,,,r0   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 )NrA   rV   r=   r  zm8[ru  )	rd   r   r   r   re   rF  r6  r   r   )r   ser1r  r   r   s        r.   test_duration_fillna_numpyr    s     9dAYj&9&9:::D9RXq!f,A',,A,A,ABBBCCD[[Fy!Qz'':':;;;H68,,,,,r0   c                     t          j        dgd          } t          j        d gd          }t          j        t          j        j        d          5  | |k      d d d            d S # 1 swxY w Y   d S )Nl            r  rV   r   zInteger valuer   )rd   r   r'   r%   r*   r   r+   r  s     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 )NrK   rL   r   r=   rV   )r*   rX  re   dictionary_encoderd   r   r!   	factorizer   intpr  r   r   r   assert_index_equal)r   r   res_indicesres_uniquesexp_indiciesexp_uniquess         r.   !test_factorize_chunked_dictionaryr    s    	3%	*	*	,	,bhhuoo.O.O.Q.QR H )'11
2
2C"}}K8QF"'222L(.x/F/F/H/HIIJJK\:::+{33333r0   c                    t                               t          j        g d                                                    t                               t          j        g d                                                    g} t	          j        t          t                               |                               }|                    d          }t	          j	        g dt          t                                                               }t	          j        g dt	          j        |                    }t          j        ||           d S )N)rK   r   rp   rK   )rK   r  rp   category)rK   r   rp   r  rV   )rK   r   rp   rK   rK   r  rp   )
categories)r*   re   r   r  rd   r   r!   rX  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,,,,,r0   c                     t          j        dgd          } t          j        dgd          }t          j        dgd          }| |z  }t          j        ||           d S )Nir   rV   r8   r>   r  )rK   rL   r   r   s       r.   test_arrow_floordivr    si    
	2$.///A
	1#-...Ay"%5666H!VF68,,,,,r0   c                     t          j        dgd          } t          j        dgd          }| dz  }t          j        ||           d S )Nl     ^ \K r   rV   l    \p/i@B r  )rK   r   r   s      r.    test_arrow_floordiv_large_valuesr    sT    
	&'/?@@@Ay-0@AAAH)^F68,,,,,r0   r   r  c                h    t          j        dg|           }|dz  }t          j        ||           d S )N   rV   r=   r  )r6   rK   r   s      r.   )test_arrow_floordiv_large_integral_resultr    s>     		$%U333A!VF61%%%%%r0   c                    t          |           }t          j        dg|          }|dz  }t          j        dg|          }t          j        ||           d S )NirV      r?   )r   rd   r   r   r   )r   r6   rK   r   r   s        r.   "test_arrow_floordiv_larger_divisorr    s_     wE
	3%u%%%A"WFy"U+++H68,,,,,r0   c                   t          j        |                                           j        }t	          j        |gt          |                     }t          j        t          j
        j        d          5  |dz   d d d            n# 1 swxY w Y   t          j        t          j
        j        d          5  |dz   d d d            d S # 1 swxY w Y   d S )NrV   zoverflow|not in ranger   r?   zdivide by zeror   )r   iinfor  r  rd   r   r   r'   r%   r*   r   r+   )r   	min_valuerK   s      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 )NrA   rV   r   inf)rd   r   rQ  r   r   )r6   rK   r   r   s       r.   &test_arrow_floordiv_floating_0_divisorr    sX     		1#U###A!VFy%,,u555H68,,,,,r0   )r   r  r2  c                    t          j        dd gd          }|                    |           }t          j        dd g|           }t          j        ||           d S )Nr=   r   rV   rD  ry  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,,,,,r0   c                
   t          j        |                                           j        }t	          |           }t          j        |g|          }t          j        dg|          }||z  }t          j        ||           d S )NrV   r=   )	r   r  r  r
  r   rd   r   r   r   )r   	max_valuer6   rK   rL   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%%%%%r0   c                    t          j        dg|           }t          j        dg|           }t          j        dgd          }||z  }t          j        ||           d S )Nr   rV   r  r  r  r6   rK   rL   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,,,,,r0   c                    t          j        dg|           }t          j        dg|           }t          j        dg|           }||z  }t          j        ||           d S )Nr   rV   r  r  r  s        r.   'test_arrow_floor_division_large_divisorr    sj     		1#U###A
	$%U333Ay!E***H!VF68,,,,,r0   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]rV   Tfrom_pandas)rd   r   r!   r*   re   r  r   r   )string_datesr   r   s      r.   $test_string_to_datetime_parsing_castr  %  ss    XXXLY|+CDDDFyBHHR^L%A%AtHTTUU H 68,,,,,r0   z0pairwise_diff_checked not implemented in pyarrowc                8   | j         j        st          j        |           }t	          j        d|j          d          }t          j        t          |          5  t          j        |           	                                 d d d            d S # 1 swxY w Y   d S d S )NzCannot interpolate with z dtyper   )
r6   r  rd   r   reescaper'   r%   r   interpolate)rg   r   r"  s      r.   test_interpolate_not_numericr  /  s     :! *iooiD39DDDEE]9C000 	* 	*IdOO'')))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	** *s   'BBBc                     dg} t          j        | d          }t          j        t          t                              t          dddd          gd	                              }t          j        ||           d S )
Nz11:41:43.076160ztime64[us][pyarrow]rV   r  )   +   i) Tr  )rd   r   r!   r*   re   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,,,,,r0   c                     t          j        g dd          } |                     d          }t          j        ddt          j        gd          }t          j        ||           d S )Nr   (   NrI  rV   r   r   r  )rd   r   r   r   r   r   r   rE  s      r.   test_to_numpy_floatr  D  sb    
)NNN*:
;
;
;CZZ	""Fy"b"&);;;H68,,,,,r0   c                     t          j        dgd          } |                     t          j                  }t          j        dg          }t          j        ||           d S )Nr  r  rV   l    P)#-/ )rd   r   r   r   r  re   r   r   rE  s      r.   test_to_numpy_timestamp_to_intr  L  s\    
)*+3K
L
L
LC\\\))Fx,-..H11111r0   c                     t          j        g dd          } |                     d d          }t          j        ddt          j        gd          }t          j        ||           d S )	Nr  r   rV   c                    dS )N*   r   r   s    r.   r   z,test_map_numeric_na_action.<locals>.<lambda>V  s    r r0   r   r   g      E@r   )rd   r   r   r   r   r   r   rE  s      r.   test_map_numeric_na_actionr  T  sh    
)NNN*:
;
;
;CWW\\XW66Fy$bf-Y???H68,,,,,r0   (  r  
__future__r   r   r   r   r   decimalr   ior	   r
   r  r6  r  numpyr   r'   pandas._libsr   pandas._libs.tslibsr   pandas.compatr   r   r   r   r   r   r   r   pandas.core.dtypes.dtypesr   r   pandasrd   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   r6   rg   rl   rn   ru   ry   r|   r   ExtensionTestsr   r  r(   r  ALL_INT_PYARROW_DTYPESr  r  r  r  r  r  r  r  r  r  byteslarge_binarylarge_stringrT  r  rM  
large_listmap_r   structr  dictr  r!  r(  r+  r-  r/  r1  r3  r=  rA  rF  rK  rO  rR  r   rW  rZ  r]  rb  rh  rr  rv  rz  r~  r  r  r  r  r  r  r  r  r  compiler  r  r  r  r  r  r  r  r  r  r  r  r  skipifr  r  r  r)   r  r  r	  r  r  r+  r3  r5  r>  rD  rI  rQ  rU  rY  r_  rb  rg  rj  rm  rt  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  rm  r  r  r  r!  r$  r,  r/  r5  r;  r=  rJ  rM  rO  rQ  rZ  r_  ra  rf  FLOAT_PYARROW_DTYPESrp  TIMEDELTA_PYARROW_DTYPESru  DATETIME_PYARROW_DTYPESrz  r|  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  SIGNED_INT_PYARROW_DTYPESr  r  FLOAT_PYARROW_DTYPES_STR_REPRr  r  r  r  r  r  r  r  r  r  r  r   r0   r.   <module>r&     s     # " " " " "                           				            ) ) ) ) ) )	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	       
           , , , , , ,                  ( ' ' ' ' 'V## > > > > > > D D D D D D	" 	" 	" r,#6663 3 763 8' 8' 8'v H H H
 /000  10 7A 7A 7At 
 
 
 
 
 
   r1 r1 r1 r1 r1T( r1 r1 r1j^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 - -	 -- - -- - -- - -- - - !O    ";";";<< 9 9 9:: > > >??. . @? ;: =< .- - - 	
		
		
	 	- -	 	- J   - -	 -- - - 	q$t%	q!dD\"	
Aq4,	tR&$(	 - - - 	
AsVTN#	q#t}%	q$t% - - -    !!!   !!!!!!"""   !!!"""###%%%&&&   !!!% .- -/ .- 	y!	)	Y	)	)	Y
 
- -
 
-- - -          
 
- -
 
- 5 122- - 32- 5 122- - 32- Hh#788		LM - -  98- 1a&))- - *)- GX#677	
D		
A 4 4  874 %11- - 21- 	
D		
A - - -- - -- - -, , ,- - -. Hg#677- - 87-%, %, %,P, , ,D% % % D%=11	, 	, 21	,- - - !8!8!8996 6 :96   		
		a	A		a		1			!	q	A	1	dAq!!"	aAq!!"# ,- -- ,-6- - -&- - -&- - -& O]#CDD- - ED-- - -. $..- - /.- :::;;0 0 <;0, , , Z*\9,EF - - -- - - #=#=#=>>	9 	9 ?>	9 #=#=#=>>	& 	& ?>	& !I!I!IJJ#=#=#=>>- - ?> KJ-2 2 2$ r2h//	# 	# 0/	#	5 	5 	5
- 
- 
- $..- - /.-  	((A2AFFFG	<2<(GHHI - - -! ! !
- 
- 
- $..
- 
- /.
- #;=T"UVV- - WV- 		A			 - - -*- - -*2 2 2, , ,> D%=11  21Q Q Q$- - - 8->"?@@* * A@*    0   ( ( (/ / / 
r(()
sR__&&' 6 6 6, , , B$=@W$WXX	- 	- YX	- B$?@@	- 	- A@	- B$>??- - @?-  r)B,GG   G G G- - -; ; ; r)B,GG 6 6 6 r)B,GG 6 6 6  r)B,GG 6 6 6 r)B,GG 6 6 6 r)B,GG     r)B,GG   (- - - r)B,GGT    4.112 2 21 22	, 	, 	,    - - - B$?@@- - A@-  
4 
4 
4- - - - - -- - - #35F"GHH& & IH& B$@AA- - BA- B$@AA  BA ""BCC- - DC- "R"R"RSS- - TS- B$=>>& & ?>& #35F"GHH- - IH- #35F"GHH- - IH-- - - !S   * * *- - -- - -2 2 2- - - - -r0   