
    Owg                   X$   d Z ddlmZ ddlmZmZmZmZ ddlmZ ddl	m
Z
mZ ddlZddlZddlZddlZddlZddlmZ ddlmZ dd	lmZmZmZmZmZmZmZ ddlmc m Z! dd
l"m#Z#m$Z$ ddl%Z&ddl'm(Z) ddl*m+Z+ ddl,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3 ddl4m5Z5  ejl                  d      Z7ddl8m9Z9 ddl:m;Z; d Z< ejz                  e)j|                  e?      d        Z@ejz                  d        ZAejz                  d        ZB ejz                  ddg      d        ZCejz                  d        ZDejz                  d        ZEejz                  d        ZFejz                  d        ZG G d de5j                        ZI G d  d!      ZJej                  j                  d"e)j                        d#        ZNd$ ZOd% ZPd& ZQd' ZRd( ZSej                  j                  d)g d*      ej                  j                  d+d,d,d,gg      d-               ZTej                  j                  d.g d/d0dggg d1dgggd2d3g4      d5        ZUd6 ZVej                  j                  d7e7j                         eXge7j                  d8      eXge7j                         eXge7j                         e?ge7j                  e7j                               e]ge7j                  e7j                               e]ge7j                  e7j                         e7j                               e]ge7j                  d9e7j                         fd:e7j                         fg      ecge7j                  e7j                         e7j                               e$gg	      d;        Zed< Zfd= Zgd> Zhd? Zid@ ZjdA ZkdB ZldC ZmdD ZndE ZodF ZpdG Zqej                  j                  dHejV                  ej                  fdIg      dJ        ZsdK ZtdL ZudM ZvdN ZwdO ZxdP ZydQ ZzdR Z{dS Z|ej                  j                  dTdUdVg      dW        Z}dX Z~ej                  j                  dYdZd[gd\d]gd^d_gg      d`        Zda Zej                  j                  dbdcddddddedggdfdeddddddggdcdddedddedeggdgddddededggdhdeddedddggg      di        Zdj Zej                  j                  dkdldcdg dmgdldnddg dogdpdndeg dqgdpdrdg dmgdldsdg dtgdpdudg dtgdldvdg dwgdpdvdg dwgg      dx        Zej                  j                  dydz      d{        Zej                  j                  d|dT ej
                  dn      gd}e?gd~ddgddgg      d        Zej                  j                  ddddddddggdddddddggddddeddggg      d        Zd Zd Zd Zej                  j                  ddcddddedggdfdeddddggdrdeddddggdcdddededeggdgddddedggdhdeddddggg      d        Zej                  j                  ddUdddg dgddedg dgdrdedg dgdcdddg dgdVdddg dgdhdedg dgddddg dgddddg dgddedg dgddedg dgg
      d        Zej                  j                  ddcddddge7j                         gdrddddge7j                         gg      d        Zd Zd Zej                  j                  ddg dgdg dgdg dgdg dgd0g dgg      d        Zej                  j%                  de      d        Zd Zej                  j                  dddddcdggddddcdggddddrdggg      d        Zej                  j                  ddddddggdddddggdddddggg      d        Zej                  j                  dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg d¢g dâg dĢg dŢg      dƄ        Zej                  j                  dddgddgddgddgddgddgg      dӄ        ZdԄ Zej                  j                  dg d֢g dעg dآg d٢g dڢg dۢg      d܄        Zej                  j                  dddUg      d߄        Zej                  j                  dddUg      d        Zej                  j                  dddg      ej                  j                  dddgddgg      d               Zej                  j                  dddg      d        Zej                  j                  dddg      ej                  j                  dddgdd0gg      d               Zej                  j                  dddg      d        Zej                  j                  dddgdd0gg      d        Zd Zd Zd Zd Zej                  j                  dddg      d        Zd Zd Zd Zej                  j                  d deddg      d        Zd Zej                  j                  dg d      d        Zd Zej                  j                  ddd	gd
dgddgddgddgddgddgddgdd0gdddgddgddgddgddgddgd ed	dd      gd edd0dd      gg      d        Zd Zd Zd  Zej                  j                  dd!d"g      d#        Zd$ Zej                  j                  dd%d&g      d'        Zej                  j                  d(g d)      d*        Zd+ Zej                  j                  dǐd,d-gd.d/gg      d0        Zd1 Zej                  j                  dg d2      d3        Zej                  j                  dg d2      d4        Zej                  j                  d5g d6      ej                  j                  dg d2      d7               Zd8 Zej                  j                  d9d:d;g      d<        Zd= Zd> Zej                  j                  dd%d&g      d?        Zej                  j                  d@dA ed	ddBdC      gdD e&j                  dE      gg      dF        ZÐdG ZĐdH Zej                  j                  dd%d&g      dI        Zej                  j                  dJdKdLg      dM        Zej                  j                  ddNdgdOdgdPdgdQd0gg      dR        ZȐdS ZɐdT ZʐdU Zej                  j                  dVdeddg      dW        Z̐dX Z͐dY Zej                  j                  dJdZd[g      d\        Z G d] d^e9      ZАd_ Zѐd` Zej                  j                  dadbdcge7j                         fddnge7j                         fg      dd        ZӐde Zej                  j                  d"e)j                  e)j                  z         df        Zej                  j                  d"e)j                        dg        Zej                  j                  d"e)j                        dh        Zej                  j                  d"e)j                  e)j                  z         di        Zېdj Zܐdk Zݐdl Zej                  j                  d"e)j                  e)j                  z         dm        Zej                  j                  d"e)j                  e)j                  z         dn        Zej                  j                  d"e)j                  e)j                  z         do        Zej                  j                  d"e)j                  e)j                  z         dp        Zej                  j                  d"e)j                  e)j                  z         dq        Zej                  j                  d"e)j                  e)j                  z         dr        Zds Zej                  j                  d"e)j                  e)j                  z   e4      ej                  j                  dJdeg      dt               Zdu Zdv Zdw Zdx Zej                  j                  d"e)j                        dy        Zdz Zd{ Zd| Zd} Zd~ Zej                  j                  dJddg      d        Zej                  j                  d"e)j                        d        Zej                  j                  d"e)j                        d        Zej                  j                  dJe)j                        d        Zej                  j                  dJg d      d        Zej                  j                  d"e)j                        d        Zej                  j                  dJddg      d        Zej                  j                  dJddg      d        Zd Zd Zd Zd Z d Zy(  ag  
This file contains a minimal set of tests for compliance with the extension
array interface test suite, and should contain no other tests.
The test suite for the full functionality of the array is located in
`pandas/tests/arrays/`.
The tests in this file are inherited from the BaseExtensionTests, and only
minimal tweaks should be applied to get the tests passing (by overwriting a
parent method).
Additional tests should either be added to one of the BaseExtensionTests
classes (if they are relevant for the extension interface for all dtypes), or
be added to the array-specific tests in `pandas/tests/arrays/`.
    )annotations)datedatetimetime	timedelta)Decimal)BytesIOStringION)lib)	timezones)PY311PY312is_ci_environmentis_platform_windowspa_version_under11p0pa_version_under13p0pa_version_under14p0)
ArrowDtypeCategoricalDtypeType)
no_default)is_bool_dtypeis_float_dtypeis_integer_dtypeis_numeric_dtypeis_signed_integer_dtypeis_string_dtypeis_unsigned_integer_dtype)basepyarrow)ArrowExtensionArray)ArrowPeriodTypec                    t               rLt               rAt        j                  j	                  t
        j                  d      }| j                  |       y y y )Nz_TODO: Set ARROW_TIMEZONE_DATABASE environment variable on CI to path to the tzdata for pyarrow.raisesreason)r   r   pytestmarkxfailpaArrowInvalidapplymarker)requestr'   s     X/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/extension/test_arrow.py_require_timezone_databaser.   G   sK    !2!4{{  ??; ! 
 	D! "5    )paramsidsc                .    t        | j                        S )N)pyarrow_dtype)r   param)r,   s    r-   dtyper5   S   s    GMM22r/   c           
        | j                   }t        j                  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                  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                  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                  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                  j                  |      rTt        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   }nqt        j                  j                  |      r`t        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   }nt        j                  j                  |      rjt        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   }nit        j                  j                  |      rTt        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   }nt        j                  j                  |      rYt!        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                  j#                  |      rdd gdz  d gz   dd!gdz  z   d gz   d"d#gz   }nBt        j                  j%                  |      rd$d%gdz  d gz   d&d'gdz  z   d gz   d(d)gz   }nt&        t)        j*                  || *      S )+NTF   ,         ?        g       g            ?g     X@   r   c      10.0z-2.0z-1.0z0.5z33.123            i
      ab2!>   a   b   1   2   !   >r5   )r3   r)   types
is_booleanis_floatingis_signed_integeris_unsigned_integer
is_decimalr   is_dater   is_timestampr   is_durationr   is_timer   	is_string	is_binaryNotImplementedErrorpdarray)r5   pa_dtypedatas      r-   rf   rf   X   sf   ""H	xx8$e}q D6)T5MB,>>$G4QV-W			h	'SzA~&$)::dVCsDkQ		#	#H	-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1	2 	 
		(	#$1tD"b12Q6fD!QdAq!12R78 f D"b!4b"#56	7 	 
		x	(dAq!Q1-xaAq!Q/OPSTTfaA&q!Q(?@2EF f a#XdAq%9:	; 	 
		h	'q\9Q?+a/f}il+b01 f ~y}-	. 	 
		(	#"a[$q"+&*fAqz41:&+, f Aqz41:&	' 	 
		H	%SzA~&#sb8D6AS#JN			H	%d|a4&(D$<"+<<vEtT!!88D&&r/   c                X    t        |       j                  d| d   g| j                        S )zLength-2 array with [NA, Valid]Nr   rU   type_from_sequencer5   )rf   s    r-   data_missingrk      s*     :$$dDG_DJJ$GGr/   rf   rk   )r0   c                H    | j                   dk(  r|S | j                   dk(  r|S y)zParametrized fixture returning 'data' or 'data_missing' integer arrays.

    Used to test dtype conversion with and without missing values.
    rf   rk   N)r4   )r,   rf   rk   s      r-   all_datarm      s,     }}	.	( 
)r/   c           
        | j                   }t        j                  j                  |      rd}d}d}n#t        j                  j	                  |      rd}d}d}nt        j                  j                  |      rd}d}d}nt        j                  j                  |      rd}d}d	}nt        j                  j                  |      r)t        d
dd      }t        ddd      }t        ddd      }nft        j                  j                  |      r.t        d
dddddd      }t        ddd      }t        dddd      }nt        j                  j                  |      r#t        d      }t        d      }t        dd      }nt        j                  j                  |      r%t        dd      }t        dd      }t        dd      }nt        j                  j                  |      rd}d}d}nmt        j                  j!                  |      rd}d}d}nGt        j                  j#                  |      r"t%        d      }t%        d      }t%        d      }nt&        t)        j*                  ||dd||||g|       S )z
    Data for factorization, grouping, and unique tests.

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

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

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

    This should be three items [B, NA, A] with
    A < B and NA missing.
    r   r@   r7   rU   rh   rw   s    r-   data_missing_for_sortingr{      ry   r/   c                t   | j                   j                  }t        j                  j	                  |      s]t        j                  j                  |      s>t        j                  j                  |      st        j                  j                  |      r%t        j                  dgdz  | j                         S | S )z3Length-100 array in which all the elements are two.r@   d   rU   )
r5   r3   r)   rV   
is_integerrX   r[   r^   rc   rd   rf   re   s     r-   data_for_twosr      s{     zz''H
H%88)88x(88)xxc	44Kr/   c            
      \    e Zd Zd Zej
                  j                  dddg      d        Z fdZej
                  j                  dd ej                  d	 e
j                  d
            g       fd       Z fdZd Zd Zd Zd ZdFdZej
                  j                  dddg       fd       ZdFdZdGdZej
                  j                  dddg       fd       Zej
                  j                  dddg       fd       ZdHdZej
                  j                  dddg       fd       Zej
                  j                  dg d      d        Z fd Z fd!Z fd"Zd# Z fd$Z fd%Z ej
                  jC                  d&d'       fd(       Z"d) Z#ej
                  jC                  d*d'       fd+       Z$ej
                  jC                  d*d'       fd,       Z%ej
                  j                  d-d
e&g      ej
                  j                  d.d/d0g      d1               Z' fd2Z(ej
                  j                  d3d4d5g       fd6       Z)d7 Z*d8Z+e,Z-d9 Z.dId:Z/d; Z0	 	 	 	 dJd<Z1d= Z2 fd>Z3 fd?Z4d@ Z5 fdAZ6dB Z7ej
                  j                  dCg dD      dE        Z8 xZ9S )KTestArrowArrayc                \    t        j                  |      }| j                  ||||d          y )Nr   )rc   Series_compare_other)selfrf   comparison_opsers       r-   test_compare_scalarz"TestArrowArray.test_compare_scalar  s'    iioC}d1g>r/   	na_actionNignorec                   |j                   j                  dv rA|j                  d |      }|j                  t              }t        j                  ||       y |j                  d |      }|j                   dk(  r"|j                  dt        j                        }n|j                         }t        j                  ||       y )	NmMc                    | S N xs    r-   <lambda>z)TestArrowArray.test_map.<locals>.<lambda>       r/   r   rU   c                    | S r   r   r   s    r-   r   z)TestArrowArray.test_map.<locals>.<lambda>  r   r/   float32[pyarrow]float64r5   na_value)	r5   kindmapto_numpyobjecttmassert_numpy_array_equalnpnan)r   rk   r   resultexpecteds        r-   test_mapzTestArrowArray.test_map  s    ""d*!%%kY%GF#,,6,:H''9!%%kY%GF!!%77'00y2660R'002''9r/   c                   |j                   j                  }t        j                  j	                  |      r4|j                  t        j                  j                  d| d             nyt        j                  j                  |      r|j                  t        j                  j                  |      r/|j                  t        j                  j                  d             t        | 5  |       y )NzFor z .astype(str) decodes.r%   8pd.Timestamp/pd.Timedelta repr different from numpy repr)r5   r3   r)   rV   ra   r+   r&   r'   r(   r]   tzr^   supertest_astype_strr   rf   r,   re   	__class__s       r-   r   zTestArrowArray.test_astype_str!  s    ::++88h'!!!(+AB "  HH!!(+0CXX!!(+!!U " 
 	%r/   nullable_string_dtypezstring[python]string[pyarrow]r   )marksc                D   |j                   j                  }t        j                  j	                  |      r|j
                  t        j                  j                  |      r/|j                  t        j                  j                  d             t        | 1  ||       y )Nr   r   )r5   r3   r)   rV   r]   r   r^   r+   r&   r'   r(   r   test_astype_string)r   rf   r   r,   re   r   s        r-   r   z!TestArrowArray.test_astype_string3  s{     ::++HH!!(+0CXX!!(+!!U " 
 	"4)>?r/   c                x   |j                   j                  }t        j                  j	                  |      st        j                  j                  |      rVt        j                  j	                  |      rd}nd| }|j                  t        j                  j                  |             t        | -  |       y )Nz1ArrowDtype(pa.string()) != StringDtype('pyarrow')$pyarrow.type_for_alias cannot infer r   )r5   r3   r)   rV   r`   r[   r+   r&   r'   r(   r   test_from_dtype)r   rf   r,   re   r%   r   s        r-   r   zTestArrowArray.test_from_dtypeF  s    ::++88h'288+>+>x+Hxx!!(+L?zJ!!! " 
 	%r/   c                   t        |      j                  |j                  |j                        }t	        j
                  ||       t        |j                  t        j                        sJ t        |      j                  |j                  j                         |j                        }t	        j
                  ||       t        |j                  t        j                        sJ y NrU   )
ri   rj   	_pa_arrayr5   r   assert_extension_array_equal
isinstancer)   ChunkedArraycombine_chunksr   rf   r   s      r-   test_from_sequence_pa_arrayz*TestArrowArray.test_from_sequence_pa_arrayU  s     d**4>>*L
''5&**BOO<<<d**NN))+4:: + 
 	''5&**BOO<<<r/   c                    t        j                  t        d      5  t        j                  dgt
        j                                d d d        y # 1 sw Y   y xY w)NzConverting strings tomatchz12-1rU   )r&   r$   rb   r    _from_sequence_of_stringsr)   month_day_nano_interval)r   r,   s     r-   *test_from_sequence_pa_array_notimplementedz9TestArrowArray.test_from_sequence_pa_array_notimplementedb  sE    ]].6MN 	99 : : <	 	 	s   +AAc                   |j                   j                  }t        j                  j	                  |      rG|j                  d      r6t        s0|j                  t        j                  j                  d             nt        rt        j                  j                  |      st        j                  j                  |      rB|j                  t        j                  j                  t        j                  d|              n6t        j                  j                  |      r|j                   t#        |       |j$                  j'                  t        j)                               }t+        |      j-                  ||j                         }t/        j0                  ||       |j3                         }t+        |      j-                  ||j                         }t/        j0                  ||       y )Nz
time64[ns]z&Nanosecond time parsing not supported.r   z pyarrow doesn't support parsing r#   rU   )r5   r3   r)   rV   	is_time64equalsr   r+   r&   r'   r(   r   r^   r[   ArrowNotImplementedErrorr]   r   r.   r   caststringri   r   r   r   r   )r   rf   r,   re   pa_arrayr   s         r-   &test_from_sequence_of_strings_pa_arrayz5TestArrowArray.test_from_sequence_of_strings_pa_arrayh  s`   ::++88h'HOOL,IRW!!C " 
 "HH  *bhh.A.A(.K!!66=hZH "  XX""8,1H&w/>>&&ryy{3d55hdjj5Q
''5**,d55hdjj5Q
''5r/   c                    t        ||      |      }|j                  j                  }t        j                  j                  |      r6|j                  dk(  rd}nd}|j                  |      }|j                  |      }|j                  d      } t        |j                  d      |      |      }t        j                  ||d       y )Nskipna    int32[pyarrow]int64[pyarrow]Float64F)check_dtype)
getattrr5   r3   r)   rV   is_temporal	bit_widthastyper   assert_series_equal)r   r   op_namer   r   pa_typeint_typer   s           r-   check_accumulatezTestArrowArray.check_accumulate  s    &g&f5))))88(  B&++**X&C]]8,Fy):73::i0':&I
vxUCr/   c                   |j                   j                  }t        j                  j	                  |      s>t        j                  j                  |      st        j                  j                  |      r|dv ryyt        j                  j                  |      r|dv ryyt        j                  j                  |      r+|dk(  r t        j                  j                  |      sy|dk(  ryy)N)cumsumcumprodcummaxcumminF)r   r   r   r   r   T)
r5   r3   r)   rV   r`   ra   r[   rW   r   r^   )r   r   r   r   s       r-   _supports_accumulationz%TestArrowArray._supports_accumulation  s     )))) HHw'xx!!'*xx""7+CC  XX  )99  XX!!'*("288+?+?+HI%r/   r   TFc                   |j                   j                  }|}t        j                  |      }| j	                  ||      st
        
|   |||      S t        r|dk7  r}|j                  j                  }|j                  r&d|j                  v rt        j                  | d       t        j                  j                  | d      }	|j                  |	       n||dk(  rwt         j"                  j%                  |      st         j"                  j'                  |      r9|j                  t        j                  j                  | d| t(                     | j+                  |||       y )Nr   znot slowz  not implemented for pyarrow < 9r   z not implemented for r%   r$   )r5   r3   rc   r   r   r   test_accumulate_seriesr   configoptionmarkexprr&   skipr'   r(   r+   r)   rV   rW   r[   rb   r   )r   rf   all_numeric_accumulationsr   r,   r   r   r   optr'   r   s             r-   r   z%TestArrowArray.test_accumulate_series  sD   ****+iio**3871/   $=$I ..''C||
cll :011QR ;;$$344TU % D %&(2HH(BHH,?,?,H!!788MgYW. "  	c7F3r/   c                   |j                   }|j                  }t        j                  j	                  |      r)|dv r%t        j                  j                  |      r|dv rnDyt        j                  j                  |      st        j                  j                  |      r|dv ryt        j                  j	                  |      r$t        j                  j                  |      s|dv ryy)N)sumvarskewkurtprod)r   F)	r   meanmedianr   stdsemr   r   r   )anyallT)r5   r3   r)   rV   r   r^   r`   ra   )r   r   r   r5   re   s        r-   _supports_reductionz"TestArrowArray._supports_reduction  s    		 &&88)g :
 /
 xx##H-'W2DHHx(BHH,>,>x,H 

 

  HH  *HH((2>)
 r/   c                   |j                   j                  }t        j                  j	                  |      st        j                  j                  |      r|j                  d      }n|}|dk(  r# t        ||             } t        ||             }n& t        ||      |      } t        ||      |      }t        j                  ||       y )Nr   countr   )
r5   r3   r)   rV   r~   rX   r   r   r   assert_almost_equal)r   r   r   r   re   altr   r   s           r-   check_reducezTestArrowArray.check_reduce  s     99**88x(BHH,@,@,J**Y'C
 C g*WS'*,F,wsG,.H*WS'*&9F,wsG,F;H
vx0r/   c                   |j                   }|j                  }t        j                  j	                  t
        | dt        j                   d|       }|dv r-|j                  s|j                  dk(  r|j                  |       n4t        j                  j                  |      r|dv r|j                  |       t        | 9  |||       y )N is not implemented in pyarrow= for r#   >   r   r   rK   >   r   r   r   r   )r5   r3   r&   r'   r(   	TypeErrorr)   __version___is_numericr   r+   rV   rW   r   test_reduce_series_numeric)	r   rf   all_numeric_reductionsr   r,   r5   re   
xfail_markr   s	           r-   r  z)TestArrowArray.test_reduce_series_numeric  s    

&&[[&&)* +>>*%z; ' 

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

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

3##%&ZZ_((d(;CCF!!&(3G+,=>& &s   ? C99Dc                   |j                   }t        j                  j                  |      r7|j	                  t
        j                  j                  t        d|              t        j                  j                  |      rBd}t        j                  t        |      5  |j                  |j                         d d d        y t        | =  |       y # 1 sw Y   y xY w)Nr   r#   z6string\[pyarrow\] should be constructed by StringDtyper   )r3   r)   rV   r[   r+   r&   r'   r(   rb   r`   r$   r  construct_from_stringr  r   #test_construct_from_string_own_name)r   r5   r,   re   r-  r   s        r-   r0  z2TestArrowArray.test_construct_from_string_own_names  s    &&88x(!!.A(L "  88h'KCy4 8++EJJ78 3E:8 s    CCc                t   |j                   }t        j                  j                  |      r't	        |      j                  |j                        rJ y t        j                  j                  |      r7|j                  t        j                  j                  t        d|              t        | 9  |       y )Nr   r#   )r3   r)   rV   r`   ri   is_dtyper  r[   r+   r&   r'   r(   rb   r   test_is_dtype_from_namer   r5   r,   re   r   s       r-   r3  z&TestArrowArray.test_is_dtype_from_name  s    &&88h'E{++EJJ7777xx""8,##KK%%2!EhZP &  G+E2r/   c                    d}t        j                  t        |      5  t        |      j	                  d       d d d        y # 1 sw Y   y xY w)Nz*'another_type' must end with '\[pyarrow\]'r   another_type)r&   r$   r  ri   r/  )r   r5   r-  s      r-   .test_construct_from_string_another_type_raisesz=TestArrowArray.test_construct_from_string_another_type_raises  s<    ;]]9C0 	>K--n=	> 	> 	>s   AAc                   |j                   }t        j                  j                  |      st        j                  j	                  |      sit        j                  j                  |      r|j                  >t        j                  j                  |      st        j                  j                  |      r2|j                  t        j                  j                  | d             t        | 9  |       y )NzB does not have associated numpy dtype findable by find_common_typer   )r3   r)   rV   r\   r_   r]   r   ra   r[   r+   r&   r'   r(   r   test_get_common_dtyper4  s       r-   r9  z$TestArrowArray.test_get_common_dtype  s    &&HHX&xx)%%h/HKK4Kxx!!(+xx""8,!!#* %= > "  	%e,r/   c                    |j                   }t        j                  j                  |      rt	        |      sJ y t
        |   |       y r   )r3   r)   rV   r`   r   r   test_is_not_string_type)r   r5   re   r   s      r-   r;  z&TestArrowArray.test_is_not_string_type  s;    &&88h'"5)))G+E2r/   z6GH 45419: pyarrow.ChunkedArray does not support views.)r%   runc                $    t         |   |       y r   )r   	test_viewr   rf   r   s     r-   r>  zTestArrowArray.test_view  s     	$r/   c                    ||j                             }|d   }|j                  |      }||usJ t        j                  ||       |j                  d      }||usJ t        j                  ||       y )Nr   backfill)method)isnafillnar   r   )r   rf   validr   s       r-   test_fillna_no_op_returns_copyz-TestArrowArray.test_fillna_no_op_returns_copy  sw    TYY[L!QU#T!!!
''5J/T!!!
''5r/   z5GH 45419: pyarrow.ChunkedArray does not support viewsc                $    t         |   |       y r   )r   test_transposer?  s     r-   rH  zTestArrowArray.test_transpose  s     	t$r/   c                $    t         |   |       y r   )r   test_setitem_preserves_viewsr?  s     r-   rJ  z+TestArrowArray.test_setitem_preserves_views  s     	,T2r/   dtype_backendenginero   pythonc           	        |j                   j                  }t        j                  j	                  |      r9|j                  t        j                  j                  t        d| d             nt        j                  j                  |      rC|j                  dv r5|j                  t        j                  j                  t        d             nNt        j                  j                  |      r/|j                  t        j                  j                  d             t        j                  dt        j                   |t#        |j                         	      i      }|j%                  d
t&        j(                        }t        j                  j                  |      rt+        |      }nt-        |      }t        j.                  |dt#        |j                         i||      }|}	t1        j2                  ||	       y )NzParameterized types z not supported.r#   )usnsz1https://github.com/pandas-dev/pandas/issues/49767z)CSV parsers don't correctly handle binaryr   
with_dtyperU   F)indexna_rep)r5   rL  rK  )r5   r3   r)   rV   r[   r+   r&   r'   r(   rb   r]   unit
ValueErrorra   rc   r$  r   strto_csvr   r   r	   r
   read_csvr   assert_frame_equal)
r   rL  rf   rK  r,   re   r,  
csv_outputr   r   s
             r-   test_EA_typeszTestArrowArray.test_EA_types  s}    ::++88x(!!.1(?K "  XX""8,,1N!!%N "  XX)!!)T!U \\<4s4::)OPQYYU266Y:
88h' ,J!*-JTZZ1'	
 
fh/r/   c                X   |j                   j                  }t        j                  j	                  |      st        j                  j                  |      s`t        j                  j                  |      sA|j                  t        j                  j                  t        j                  d|              t        rTt        j                  j	                  |      r5t        j                  t        dd      5  t         | E  |       d d d        y t         | E  |       y # 1 sw Y   y xY w)Nz$pyarrow.compute.invert does support r#   zBitwise inversionF)r   check_stacklevel)r5   r3   r)   rV   rW   r~   r`   r+   r&   r'   r(   r   r   r   assert_produces_warningDeprecationWarningr   test_invertr   s       r-   r`  zTestArrowArray.test_invert  s    ::++HH)xx""8,xx!!(+!!66A(L "  RXX((2++"*=PU * #D)* *
 G%* *s   7D  D)periodsr<   r=   c           
     $   |j                   j                  }t        j                  j	                  |      rJ|dk(  rE|j                  t        j                  j                  t        j                  d| d| d             t        | -  ||       y )Nr<   z
diff with z and periods=z will overflowr#   )r5   r3   r)   rV   rZ   r+   r&   r'   r(   r*   r   	test_diff)r   rf   ra  r,   re   r   s        r-   rc  zTestArrowArray.test_diff  sy    ::++88''1gl!!??$XJmG9NS "  	$(r/   c                    |d d }|j                         }|j                  t        t        j	                               k(  sJ y )NrH   )value_countsr5   r   r)   r  r   s      r-   'test_value_counts_returns_pyarrow_int64z6TestArrowArray.test_value_counts_returns_pyarrow_int64  s8    CRy""$||z"((*5555r/   zbool[pyarrow]c                r    |j                  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-   ri  z1TestArrowArray.get_op_from_name.<locals>.rtruediv*  s    yyA&r/   	rfloordivc                .    t        j                  ||       S r   )r   floor_dividerl  s     r-   r   z1TestArrowArray.get_op_from_name.<locals>.<lambda>/  s    1 5 r/   )stripr   get_op_from_name)r   r   short_opnameri  s       r-   rr  zTestArrowArray.get_op_from_name%  sC    }}S):%' O[(55""7++r/   c                   |}|dv r|j                  d      S d}t        |t        j                        r3d}|j                  d d df   }|j                  d d df   j
                  }n|}|j
                  }|j                  }	|st        |t        j                        rt        j                  j                  |	      sEt        j                  j                  |	      r|dvs!t        j                  j                  |	      st        j                  j                  |	      st        j                  j                  |	      st        j                  j                  |	      s|S |dk(  rt        j                  j                  |	      s~t        j                  j                  |	      s_t        j                  j                  |	      s@t        j                  j                  |	      s!t        j                  j                  |	      s|S t        j!                  |j"                        }
t        j                  j                  |
j$                        rt        j                  j                  |	      r%t        j                  j'                  |	      rd}n,d	}n)|	j(                  }t%        |      t*        t,        fv r|d
v rd}|
j/                  d| d      }
nNt        j                  j                  |
j$                        rt        j                  j                  |	      r t1        ||      |      }t3        j4                  |      }t        |t6              sJ |dk(  r.t        |t8              rt7        t        j;                               }nw|dk(  rGt        |t        j                        r-|j
                  |k(  rt7        t        j;                               }n+t        j                  j                  |j                        sJ |j                  |      S |
j/                  |	      }
 t%        |j"                        |
      }|r.t        j                  ||j<                  |j>                        }|S t        j                  |      }|S )N)eqneltlegtgeboolean[pyarrow]FTr   )__truediv____rtruediv____floordiv__mss)r  r  rO  z	duration[]__pow__)rR  r)  ) r   r   rc   r$  ilocr5   r3   r   r)   rV   rX   r~   r^   r]   r\   r[   rd   _valuesri   	is_date64rT  r   r   r   r   r   	get_dtyper   r   r   rR  r)  )r   r   objotherpointwise_resultr   	was_frameexpected_dataoriginal_dtypeorig_pa_typepa_expectedrT  r   	alt_dtypepd_expecteds                  r-   _cast_pointwise_resultz%TestArrowArray._cast_pointwise_result3  s[    $::#**+=>>	h-I$MM!Q$/M XXad^11N$M YYN%33Zryy9 $$\2HH''5'FF88''588((688##L188&&|4  &288+>+>|+Lxx##L1xx$$\2xx-xx""<0 Ohh}44588 0 01xx-88%%l3DD
 $((;8Y"77DK<O  D%**YtfA+>?KXX  !1!12rxx7J7J8

 ('#w'.CS)Ii444)#
5'(B&rzz|4	9$ubii0KK>1 'rzz|4	xx**9+B+BCCC??9-- &**<8K1d=001+>||8>>8;K;KH
  yy-Hr/   c                    |dv xs |dv xr t          xr t        j                  j                  |      xs% |dv xr t        j                  j	                  |      S )N__add____radd__r|  r}  r~  __rfloordiv____sub____rsub__)r   r)   rV   r^   r   )r   opnamere   s      r-   _is_temporal_supportedz%TestArrowArray._is_temporal_supported  sn     11 WX 100/ $$X.
/ 00 /$$X.	
r/   c                   |dv r| j                   S t        j                  |      }|j                  }| j	                  ||      }|dv rt
        }|S |rd }|S |dv rBt        j                  j                  |      st        j                  j                  |      rd }|S t        j                  j                  |      sPt        j                  j                  |      s1t        j                  j                  |      st        j                  }|S d }|S )N)
__divmod____rdivmod__>   __mod____rmod__r  )
divmod_excr   r  r3   r  rb   r)   rV   r`   ra   rX   r~   r[   r   )r   r   r  r  r5   re   arrow_temporal_supportedexcs           r-   _get_expected_exceptionz&TestArrowArray._get_expected_exception  s    33??"S! &&#'#>#>w#Q  
 
 &C$ 
# &C  
 //HHx(BHH,>,>x,HC 
 HH  *xx""8,xx""8,
 --C 
 C
r/   c                   d }| j                  ||      }|dk(  rt        j                  j                  |      s>t        j                  j	                  |      st        j                  j                  |      r%t        j                  j                  d|       }|S |rot        j                  j                  |      s#|dv rLt        j                  j                  |      r-t        j                  j                  t        | d| d      }|S |dk(  rot        j                  j	                  |      st        j                  j                  |      r1t        j                  j                  t        j                  d	      }|S |d
k(  rNt        j                  j                  |      r/t        j                  j                  t        j                  d	      }|S )N__rpow__z<GH#29997: 1**pandas.NA == 1 while 1**pyarrow.NA == NULL for r   r  z  not supported betweenpd.NA and z Python scalarr#   r  zdivide by 0r}  )r  r)   rV   rX   r~   r[   r&   r'   r(   r_   r^   r  r*   )r   r  re   r'   r  s        r-   _get_arith_xfail_markerz&TestArrowArray._get_arith_xfail_marker  s   #'#>#>vx#P ZHH  *xx""8,xx""8,;;$$#*& % DD 9 &HHX&STHH((2 ;;$$ h !!)
.: % D(  &HH)RXX-@-@-J;;$$$ % D  ~%"((*=*=h*G;;$$$ % D
 r/   c                   |j                   j                  }|dk(  r5t        j                  j	                  |      rt        j                  d       nv|dv rrt        j                  j	                  |      st        j                  j                  |      r4|j                  t
        j                  j                  t        d             | j                  ||      }||j                  |       t        | 9  ||       y Nr  z%Skip testing Python string formatting__rmul____mul__'Can only string multiply by an integer.r#   )r5   r3   r)   rV   ra   r&   r   r`   r+   r'   r(   r  r  r   test_arith_series_with_scalarr   rf   all_arithmetic_operatorsr,   re   r'   r   s         r-   r  z,TestArrowArray.test_arith_series_with_scalar  s    ::++#z1bhh6H6H6RKK?@%)@@HHx(BHH,>,>x,H!!$-V "  ++,DhO%-d4LMr/   c                :   |j                   j                  }|dk(  rTt        j                  j	                  |      st        j                  j                  |      rt        j                  d       nv|dv rrt        j                  j                  |      st        j                  j	                  |      r4|j                  t        j                  j                  t        d             | j                  ||      }||j                  |       t        | 9  ||       y r  )r5   r3   r)   rV   r`   ra   r&   r   r+   r'   r(   r  r  r   test_arith_frame_with_scalarr  s         r-   r  z+TestArrowArray.test_arith_frame_with_scalar  s    ::++#z1HHx(BHH,>,>x,HKK?@%)@@HHx(BHH,>,>x,H!!$-V "  ++,DhO%,T3KLr/   c                    |j                   j                  }|dv rat        j                  j	                  |      rB|j                  t        j                  j                  t        j                  d|              nv|dv rrt        j                  j                  |      st        j                  j                  |      r4|j                  t        j                  j                  t        d             | j                  ||      }||j                  |       |}t        j                  |      }t        j                  t        j                   |j"                  d   gt%        |      z  |j                               }| j'                  |||       y )Nr  zJImplemented pyarrow.compute.subtract_checked which raises on overflow for r#   r  r  r   rU   )r5   r3   r)   rV   rZ   r+   r&   r'   r(   r*   ra   r`   r  r  rc   r   rd   r  lencheck_opname)	r   rf   r  r,   re   r'   r   r   r  s	            r-   test_arith_series_with_arrayz+TestArrowArray.test_arith_series_with_array$  sF   ::++# (
 
 hh**84!!??88@zC "  &)@@HHx(BHH,>,>x,H!!$-V "  ++,DhO%*iio 		"((CHHQK=3s8#;4::NO#w.r/   c                    |j                   j                  }|j                  d      rA|j                  t        j
                  j                  t        j                  d|              t        | )  |       y )Nint8zraises on overflow for r#   )r5   r3   r   r+   r&   r'   r(   r)   r*   r   $test_add_series_with_extension_arrayr   s       r-   r  z3TestArrowArray.test_add_series_with_extension_arrayI  sc    ::++??6"!!??4XJ? "  	4T:r/   c                    t        j                  t        d      5   ||t                      d d d        y # 1 sw Y   y xY w)Nz'.* not implemented for <class 'object'>r   )r&   r$   rb   r   )r   rf   r   s      r-   test_invalid_other_compz&TestArrowArray.test_invalid_other_compU  s7    ]]'P
 	* $)	* 	* 	*s	   7A masked_dtype)booleanInt64r   c                   g d}t        j                  ||      }t        j                  ||j                          d      } |||      }|t        j                  t        j
                  t        j                  fv rg d}ng d}t        j                  |t        t        j                                     }t        j                  ||       y )N)r<   r   NrU   r  )FFN)TTN)rc   r   loweroperatorrw  ry  rv  r   r)   bool_r   r   )	r   r  r   rf   
ser_maskedser_par   expr   s	            r-   test_comp_masked_numpyz%TestArrowArray.test_comp_masked_numpy\  s     YYt<8
4,*<*<*>)?y'IJvz2X[[(++x{{CC&C$C99S
288:(>?
vx0r/   )r   	pd.Seriesr   rV  returnbool)r   r  r   rV  r   r  )r   rV  r   r  )r   rV  )r   rV  r  ztype[Exception] | None):__name__
__module____qualname__r   r&   r'   parametrizer   r   r4   td
skip_if_nor   r   r   r   r   r   r   r   r   r   r  r	  r  r  r  r+  r0  r3  r7  r9  r;  r(   r>  rF  rH  rJ  r   r[  r`  rc  rf  _combine_le_expected_dtyperb   r  rr  r  r  r  r  r  r  r  r  r  r  __classcell__r   s   @r-   r   r     s'   ? [[[4*:;: <:&$ [[FLL*-"--	2JK	

@
@&=68D", [[Xe}5"4 6"4H*X1* [[Xe}5Q 6Q2 [[Xe}5X 6X$$ [[Xe}5O 6O [[U$BC D
?(;(3>
-&3 [[GU    
6 [[FE  %% [[FE  33 [[_y*.EF[[XX7!0 8 G!0F&* [[YB0) 1)6 "1$J,dL
""	"H,\N(M,#/J
;* [[^-LM1 N1r/   r   c                     e Zd ZdZd Zej                  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                  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                  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                  j                  dddgddgddgg      d        Zy)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             y )NTr!  Fr{  rU   TFN)	TTTTFNTNNrc   r   r   r   r   rJ   rK   r   r   s        r-   test_kleene_orzTestLogicalOps.test_kleene_orn  s    IItfqjE7Q;.$!;CUVII)A-5GHQ99C$
 	vx0Q
vx0 	IItfqjE7Q;.$!;CUV	
 	ryy,q08JK	
r/   zother, expectedN)TNNT)TTTFr  c                *   t        j                  g dd      }||z  }t        j                  |d      }t        j                  ||       ||z  }t        j                  ||       t        j                  |t        j                  g dd             y Nr  r{  rU   r  r   r  r   rJ   r   s        r-   test_kleene_or_scalarz$TestLogicalOps.test_kleene_or_scalar  {     II)1CDU99X-?@
vx0
vx0 	ryy,4FG	
r/   c                   t        j                  dgdz  dgdz  z   d gdz  z   d      }t        j                  g ddz  d      }||z  }t        j                  g dd      }t        j                  ||       ||z  }t        j                  ||       t        j                  |t        j                  dgdz  dgdz  z   d gdz  z   d             t        j                  |t        j                  g ddz  d             y )NTr!  Fr{  rU   r  )	TFNFFFNFNr  r  s        r-   test_kleene_andzTestLogicalOps.test_kleene_and  s    IItfqjE7Q;.$!;CUVII)A-5GHQ99G$
 	vx0Q
vx0 	IItfqjE7Q;.$!;CUV	
 	ryy,q08JK	
r/   )NFNFFFc                *   t        j                  g dd      }||z  }t        j                  |d      }t        j                  ||       ||z  }t        j                  ||       t        j                  |t        j                  g dd             y r  r  r  s        r-   test_kleene_and_scalarz%TestLogicalOps.test_kleene_and_scalar  r  r/   c                   t        j                  dgdz  dgdz  z   d gdz  z   d      }t        j                  g ddz  d      }||z  }t        j                  g dd      }t        j                  ||       ||z  }t        j                  ||       t        j                  |t        j                  dgdz  dgdz  z   d gdz  z   d             t        j                  |t        j                  g ddz  d             y )NTr!  Fr{  rU   r  )	FTNTFNNNNr  r  s        r-   test_kleene_xorzTestLogicalOps.test_kleene_xor  s    IItfqjE7Q;.$!;CUVII)A-5GHQ99D$
 	vx0Q
vx0 	IItfqjE7Q;.$!;CUV	
 	ryy,q08JK	
r/   NNN)FTNc                *   t        j                  g dd      }||z  }t        j                  |d      }t        j                  ||       ||z  }t        j                  ||       t        j                  |t        j                  g dd             y r  r  r  s        r-   test_kleene_xor_scalarz%TestLogicalOps.test_kleene_xor_scalar  s{     II)1CDU99X-?@
vx0
vx0 	ryy,4FG	
r/   zop, exp__and____or____xor__c                "   g d}t        j                  |d      }t        j                  |d      } t        ||      |      }t        j                  |dd gt        t        j                                     }t        j                  ||       y )Nr  r  rU   r{  F)rc   r   r   r   r)   r  r   r   )r   opr  rf   r  r  r   r   s           r-   test_logical_masked_numpyz(TestLogicalOps.test_logical_masked_numpy  so     #YYt95
4'9:$$Z099c5$/z"((*7MN
vx0r/   )r  r  r  __doc__r  r&   r'   r  rc   NAr   r  r  r  r  r  r  r  r   r/   r-   r  r  k  s   ;
, [[%&UU&'%&RXXd^/0'(RXXe_12	





, [[&'UU'(&')*RXXd^01RXXe_34	





, [[%&UU&'&'RXXd^01RXXe_12	
	
	
 [[t	
11r/   r  r   c                   t        |       }t        j                  g d|      }t        j                  g d|      }||z  }t        j                  g d|      }t        j                  ||       ||z  }t        j                  g d|      }t        j                  ||       ||z  }t        j                  g d|      }t        j                  ||       | }|j                  d      j                          }t        j                  ||      j                  |j                               }t        j                  ||       y )N)r<   Nr!  r7   rU   )Nr!  rI   r7   )NNrv   r7   )NNr<   r7   )NN   r   r   )	r   rc   r   r   r   rD  r   maskisnull)r   r5   leftrightr   r   s         r-   test_bitwiser    s     wE99_E2DIIoU3EE\Fyy35AH68,E\Fyy35AH68,E\Fyy35AH68,UFQ((*+Hyy/44T[[]CH68,r/   c                    t        j                  t        d      5  t        j                  d       d d d        t        j                  t        d      5  t        j                  d       d d d        y # 1 sw Y   CxY w# 1 sw Y   y xY w)NzPassing pyarrow typer   z#not_a_real_dype[s, tz=UTC][pyarrow]zdecimal(7, 2)[pyarrow])r&   r$   rb   r   r/  r   r/   r-   Ftest_arrowdtype_construct_from_string_type_with_unsupported_parametersr  %  sz    	*2H	I P(()NOP 
*2H	I C(()ABC CP PC Cs   A4B 4A= B	c                 z    t        j                  d      } t        t        j                  dd            }| |k(  sJ y )Nztimestamp[s, tz=UTC][pyarrow]r  UTC)r   r/  r)   	timestamp)r5   r   s     r-   5test_arrowdtype_construct_from_string_supports_dt64tzr  -  s6    ,,-LME",,sE23HHr/   c                     d} d}t        j                  t        |      5  t        j                  t        d      |        d d d        y # 1 sw Y   y xY w)Nzint64[pyarrow]foobar[pyarrow]zYPassing pyarrow type specific parameters \(\[pyarrow\]\) in the string is not supported\.r   r!  rU   )r&   r$   rb   rc   r   range)invalidr-  s     r-   ;test_arrowdtype_construct_from_string_type_only_one_pyarrowr  4  sI    -G	%  
*#	6 +
		%('*+ + +s   !A

Ac                 r   t        j                  ddgt        t        j	                                     } t        j                  ddgd      }| |z  }t        j                  ddgt        t        j	                                     }t        j                  ||       || z  }t        j                  ||       y )	NabcdefgrU   r@   r=   r   abcabc rc   r   r   r)   r   r   r   )binaryrepeatr   r   reflected_results        r-    test_arrow_string_multiplicationr  ?  s    YYvj.EFFYY2w&67Ff_Fyy(Bz"))+/FGH68,6#34r/   c                 @   t        j                  ddgt        t        j	                                     } | dz  }t        j                  ddgt        t        j	                                     }t        j                  ||       d| z  }t        j                  ||       y )Nr  r  rU   r@   r  defgdefgr  )r	  r   r   r  s       r-   .test_arrow_string_multiplication_scalar_repeatr  J  su    YYvj.EFFaZFyy(J/z"))+7NOH68,6z+X6r/   interpolation)linearr  highernearestmidpointquantiler;   c                   | j                   j                  }| j                  g d      } t        j                  |       }t
        j                  j                  |      s>t
        j                  j                  |      st
        j                  j                  |      rDd}t        j                  t
        j                  |      5  |j                  ||       d d d        y t
        j                  j                  |      s>t
        j                  j                  |      st
        j                  j!                  |      rnut
        j                  j#                  | j$                  j&                        rnA|j)                  t        j*                  j-                  t
        j                  d|              | j                  g d      } t        j                  |       }|j                  ||      }t
        j                  j/                  |      r|dvr|j0                  rd|j2                   d	|j0                   d
}nd|j2                   d
}|j5                  |      }	|	j                  ||      }
|dk(  r)|j2                  dk(  r|
j7                  d      }
||
k(  sJ y |j2                  dk(  r|
j8                  j;                  d      }
t=        j>                  ||
j5                  | j                                y |dk(  r|| d   k(  sJ y t        j                  | j                  ddg      ddg      }
t
        j                  j                  |      s>t
        j                  j                  |      st
        j                  j!                  |      r"|
j5                  d      }
|j5                  d      }t=        j>                  ||
       y # 1 sw Y   y xY w)Nr   r   r   z=Function 'quantile' has no kernel matching input types \(.*\)r   )qr  z&quantile not supported by pyarrow for r#   )r  r  zM8[z, r  r;   rO  F)warnr   rR  r  ) r5   r3   takerc   r   r)   rV   r`   ra   rW   r&   r$   r   r  r~   rX   r[   r   r   ri   r+   r'   r(   r]   r   rT  r   to_pydatetimedtfloorr   r   )rf   r  r  r,   re   r   r-  r   pd_dtypeser_npr   s              r-   test_quantiler!  S  s   
 zz''H99YD
))D/C 	8$88h'88x( O]]266cB 	BLL8=LA	B 	H%88)88x(			dnn11	2KK22?zJ  	
 99YD
))D/C\\HM\BF	xxX&=@S+S ;;X]]O2hkk]!<HX]]O1-HH%??X]?Ks?}}$#11u1=X%%%
 	 }}$#;;,,T2""68??4::+FG3a    99TYY1v.sCjAHH)xx##H-xx""8,'9:H]]#56F
vx0q	Bs   OOztake_idx, exp_idx)r   r   r@   r@   r7   r7   r7   )r   r   r   r@   r7   r7   
multi_modesingle_mode)r1   c                    | j                  |      }t        j                  |      }|j                  d      }t        j                  | j                  |            }t	        j
                  ||       y )NTdropna)r  rc   r   moder   r   )rt   take_idxexp_idxrf   r   r   r   s          r-   test_mode_dropna_truer*    s[     !!(+D
))D/CXXTX"Fyy*//89H68,r/   c                   t        j                  d d | d   g| j                        }|j                  d      }t        j                  d g| j                        }t	        j
                  ||       t        j                  | d   d g| j                        }|j                  d      }t	        j
                  ||       y )Nr   rU   Fr%  )rc   r   r5   r'  r   r   )rf   	more_nansr   r   s       r-   test_mode_dropna_false_mode_nar-    s    		4tAw/tzzBI^^5^)Fyy$tzz2H68,yy$q'4

;H]]%](F68,r/   zarrow_dtype, expected_type   f1f2c                8    t        |       j                  |k(  sJ y r   )r   ri   )arrow_dtypeexpected_types     r-   test_arrow_dtype_typer4    s    " k"''=888r/   c                 h   t        t        j                  g d            } t        |       sJ t        j
                  j                  j                  |       sJ t	        j                  t        t        |                   }||    }|t        j                  |          }t        j                  ||       y )NTFT)r    r)   rd   r   rc   corecommonis_bool_indexerr   r   r  r   asarrayr   r   )rf   r  r   r   s       r-   test_is_bool_dtyper;    s    rxx(;<=D77>>))$///
		%D	"#AtWFD!"H68,r/   c                    | j                   j                  }t        j                  j	                  |      s>t        j                  j                  |      st        j                  j                  |      rt        |       sJ y t        |       rJ y r   )r5   r3   r)   rV   rX   r~   r[   r   rf   r   s     r-   test_is_numeric_dtyper>    sf    jj&&G
W%88w'88w'%%%#D))))r/   c                    | j                   j                  }t        j                  j	                  |      rt        |       sJ y t        |       rJ y r   )r5   r3   r)   rV   r~   r   r=  s     r-   test_is_integer_dtyper@    sB    jj&&G	xx7#%%%#D))))r/   c                    | j                   j                  }t        j                  j	                  |      rt        |       sJ y t        |       rJ y r   )r5   r3   r)   rV   rY   r   r=  s     r-   test_is_signed_integer_dtyperB    sB    jj&&G	xx!!'*&t,,,*40000r/   c                    | j                   j                  }t        j                  j	                  |      rt        |       sJ y t        |       rJ y r   )r5   r3   r)   rV   rZ   r   r=  s     r-   test_is_unsigned_integer_dtyperD    sB    jj&&G	xx##G,(...,T2222r/   c                    | j                   j                  }t        j                  j	                  |      rt        |       sJ y t        |       rJ y r   )r5   r3   r)   rV   rX   r   r=  s     r-   test_is_float_dtyperF    sB    jj&&G	xxG$d###!$''''r/   c                   t        j                  |       }|j                  d      }t        j                  |      }t        j                  |      }t        |      t        |      kD  sJ t        j                  |      }t        j                  ||       t        j                  |      }t        j                  ||       y )Nr@   )	rc   r   headpickledumpsr  loadsr   r   )rf   r   expected_slicedfull_pickledsliced_pickledr   result_sliceds          r-   test_pickle_roundtriprP    s    yyHmmA&O<<)L\\/2N|s>2222\\,'F68,LL0M=/:r/   c                   | j                   j                         j                  }|j                  | j                        }t        |j                  t              rJ t        |j                  t              sJ t        j                  ||        y r   )	r   	to_pandasrd   r   r5   r   r   r   r   )rf   pd_arrayr   s      r-   test_astype_from_non_pyarrowrT    sd    ~~'')//H__TZZ(F(..*555fllJ///##FD1r/   c                     t        j                  dg      } | j                  d      }t        j                  dgd      }t        j                  ||       y )N1.0r  r9   rU   rc   r   r   r   r   r   r   r   s      r-   &test_astype_float_from_non_pyarrow_strrY    sD    
))UG
CZZ*+Fyy#&89H68,r/   c                     t        j                  ddgid      } | j                  dd      }t        j                  ||        y )Ncoli@fr   rU   float[pyarrow]r   )errors)rc   r$  r   r   rY  )r   r   s     r-   test_astype_errors_ignorer^  '  s=    ||UXJ/7GHH__-h_?F&(+r/   c                   | j                         }| j                  j                  }t        j                  j                  |      st        j                  j                  |      rt        j                  d       n]t        j                  j                  |      rt        j                  t        |             }nt        j                  | j                        }| j                  rPt        | j                        s;j!                  t"              }t$        j&                  |t%        j(                  |       <   t+        j,                  |       y )Nz Tested in test_to_numpy_temporal)r   r   ri   r)   rV   r^   r]   r&   r   r\   r   rd   list_hasnar   r5   r   r   rc   r  rC  r   r   )rf   r   r   r   s       r-   test_to_numpy_with_defaultsrb  .  s    ]]_Fnn!!G	xxG$(=(=g(F67			'	"88DJ'88DNN+{{+DJJ7??6*"$%%1r/   c                     dd g} t        j                  | d      }|j                         }t        j                  dt        j                  g      }t        |d   t              sJ t        j                  ||       y )Nr<   r   rU   r   )	rc   rd   r   r   r   r   floatr   r   )rf   r  r   r   s       r-   test_to_numpy_int_with_nare  A  sa    t9D
((4/
0C\\^FxxBFF$HfQi'''1r/   zna_val, exp)r<   r<   c                    t        j                  t         j                  t         j                  gd      }|j                  d|       }t	        j                  |gdz  d      }t        j                  ||       y )Nnull[pyarrow]rU   r   r   r@   rc   rd   r  r   r   r   r   )na_valr  r  r   r   s        r-   test_to_numpy_null_arrayrj  K  sX     ((BEE255>
9C\\	F\;Fxx	3H1r/   c                    t        j                  t         j                  t         j                  gd      } | j                  d       }t	        j                  t         j                  gdz  d      }t        j                  ||       y )Nrg  rU   r@   r   rh  r  r   r   s      r-   !test_to_numpy_null_array_no_dtyperm  T  sX    
((BEE255>
9C\\\%Fxx!84H1r/   c                    t        j                  dt         j                  gd      } | j                  d      }t	        j                  ddgt        j
                        }t        j                  ||       t        j                  dt         j                  gd      } | j                  d      }t	        j                  ddgt        j                        }t        j                  ||       y )	NTr{  rU   F)r   r9   r   r:   )	rc   rd   r  r   r   r  r   r   float32rl  s      r-   test_to_numpy_without_dtyperp  \  s    
((D"%%=(:
;C\\5\)FxxuRXX6H1
((C<'9
:C\\3\'Fxxc
"**5H1r/   c                   | j                         }|j                         }| d   |d d  t        j                  | d   gt        |       z  | j                        }t        j                  ||       |j                         }| d d d   |d d  | d d d   }t        j                  ||       |j                         }| j                         |d d  | }t        j                  ||       y )Nr   rU   r>   )copyr    rj   r  r5   r   r   tolist)rf   origr   r   s       r-   test_setitem_null_sliceru  i  s    99;DYY[FQF1I"11	a	CIjjH ##FH5YY[FTrT
F1IDbDzH##FH5YY[FF1IH##FH5r/   c                   | j                   j                  }t        j                  j	                  |      st        j                  j                  |      rd}t        }d}n|t        j                  j                  |      s>t        j                  j                  |      st        j                  j                  |      rd}t        j                  }d}n
d}t        }d}t        j                  ||      5  || d d  d d d        y # 1 sw Y   y xY w)N{   zInvalid value '123' for dtypefoozCould not convertzInvalid value 'foo' for dtyper   )r   ri   r)   rV   r`   ra   r  r~   rX   rW   r*   r&   r$   )rf   r   
fill_valueerrr-  s        r-   test_setitem_invalid_dtyper{    s    nn!!G	xx'"bhh&8&8&A
-
G$88(88w'
oo!
-	s#	& Q  s   3DDc                    t         j                  t        j                  d      t        j                  d      gt         j	                               } | j                  t         j	                         t        t         j                               ij                        }t        j                  t        j                  d      t        j                  d      gt        t         j                                     }t        j                  ||       y )Nz
2019-12-31ri   types_mapperrU   )r)   rd   rc   	Timestampdate32rR  r   date64getr   r   r   )
date_arrayr   r   s      r-   &test_from_arrow_respecting_given_dtyper    s    	l	#R\\,%?@ryy{  J !!iik:biik#:;?? " F yy	l	#R\\,%?@%H 68,r/   c                 d   t         j                  ddgt         j                               } t        j                  t         j
                  d      5  | j                  t         j                         t        t         j                               ij                         d d d        y # 1 sw Y   y xY w)Nr        @r}  zFloat value 1.5 was truncatedr   r~  )
r)   rd   r   r&   r$   r*   rR  r   r  r  )rd   s    r-   -test_from_arrow_respecting_given_dtype_unsafer    st    HHc3ZbjjlH3E	r.M	N QbjjlJrxxz4J%K%O%OPQ Q Qs   AB&&B/c                    d} t        j                  dddt         j                  g|       }|j                  d      }t        j                  dddt         j                  g|       }t	        j
                  ||       t        j                  d	t         j                  d
g|       }|j                  d      }t        j                  dt         j                  dg|       }t	        j
                  ||       y )Nr  r:   gGz?g{Gz@rU   r<   g333333?g@g^@gp=
cL@r>   g      ^@g      N@)rc   r   r  roundr   r   r5   r   r   r   s       r-   
test_roundr    s    E
))S$bee,E
:CYYq\Fyy#sC/u=H68,
))UBEE5)
7CYYr]Fyy%-U;H68,r/   c                   | \  }}}| j                  g d      }t        j                  |d<   |rt        j                  |      }d}t	        j
                  t        |      5  |j                  |       d d d        y # 1 sw Y   y xY w)N)r@   r   r<   r>   zOsearchsorted requires array to be sorted, which is impossible with NAs present.r   )r  rc   r  r   r&   r$   rU  searchsorted)rx   	as_seriesrK   ro   rJ   r  r-  s          r-    test_searchsorted_with_na_raisesr    sw    GAq!


	
*CeeCGiin	0  
z	-   s   !A<<Bc                 \   t        j                  t        j                  ddgt        t        j                  t        j                         t        j                                           ddgd      } | j                         }| j                  ddg	      }t        j                  ||       y )
Nr   rm  rU   r<   r@   rJ   rK   rJ   rK   )by)rc   r$  r   r   r)   
dictionaryint32r   rr  sort_valuesr   rY  )r,  r   r   s      r-   test_sort_values_dictionaryr    s    	c
*R]]288:ryy{-S"T Q		

B wwyH^^Sz^*F&(+r/   patr  z	a[a-z]{2}c                6   t        j                  dd gt        t        j	                                     }|j
                  j                  |       }t        j                  dd gt        t        j                                     }t        j                  ||       y )Nr  rU   r<   )
rc   r   r   r)   r   rV  r   r  r   r   )r  r   r   r   s       r-   test_str_countr    sb    
))UDMBIIK)@
ACWW]]3Fyy!T*RXXZ*@AH68,r/   c                    t        j                  dd gt        t        j	                                     } t        j                  t        d      5  | j                  j                  dd       d d d        y # 1 sw Y   y xY w)Nr  rU   z	count notr   r<   flags)
rc   r   r   r)   r   r&   r$   rb   rV  r   r   s    r-    test_str_count_flags_unsupportedr    sY    
))UDMBIIK)@
AC	*+	> &e1%& & &   A77B zside, str_funcr  rjustr  ljustbothcenterc                ^   t        j                  dd gt        t        j	                                     }|j
                  j                  d| d      }t        j                   t        d|      dd      d gt        t        j	                                     }t        j                  ||       y )NrJ   rU   r!  r   )widthsidefillchar)
rc   r   r   r)   r   rV  padr   r   r   )r  str_funcr   r   r   s        r-   test_str_padr    s     ))S$Kz"))+'>
?CWW[[qtc[:Fyy	h	3	'.j6MH 68,r/   c                    t        j                  dd gt        t        j	                                     } t        j                  t        d      5  | j                  j                  ddd       d d d        y # 1 sw Y   y xY w)NrJ   rU   zInvalid side: foor   r!  rx  r   )
rc   r   r   r)   r   r&   r$   rU  rV  r  r  s    r-   test_str_pad_invalid_sider    sY    
))S$Kz"))+'>
?C	z)<	= #Auc"# # #r  zpat, case, na, regex, expabFTAbz	a[a-z]{1}z	A[a-z]{1}c                :   t        j                  dd gt        t        j	                                     }|j
                  j                  | |||      }t        j                  |t        t        j                                     }t        j                  ||       y )Nr  rU   )casenaregex)
rc   r   r   r)   r   rV  containsr  r   r   )r  r  r  r  r  r   r   r   s           r-   test_str_containsr    sk     ))UDMBIIK)@
ACWWc5AFyyJrxxz$:;H68,r/   c                    t        j                  dd gt        t        j	                                     } t        j                  t        d      5  | j                  j                  dd       d d d        y # 1 sw Y   y xY w)Nr  rU   zcontains notr   rJ   r<   r  )
rc   r   r   r)   r   r&   r$   rb   rV  r  r  s    r-   #test_str_contains_flags_unsupportedr  	  s\    
))UDMBIIK)@
AC	*.	A 'A&' ' 'r  zside, pat, na, exp
startswith)TNFrK   r  endswith)FTFbc)rJ   eg)TNT)rJ   ro   r  r   )FNFc                8   t        j                  g dt        t        j	                                     } t        |j                  |       ||      }t        j                  |t        t        j                                     }t        j                  ||       y )N)r  NefgrU   )r  
rc   r   r   r)   r   r   rV  r  r   r   )r  r  r  r  r   r   r   s          r-   test_str_start_ends_withr    sd     ))(
299;0G
HC#WSWWd#CB/FyyJrxxz$:;H68,r/   r  )r  r  c                8   t        j                  d d gt        t        j	                                     } t        |j                  |       d      }t        j                  d d gt        t        j                                     }t        j                  ||       y )NrU   r   r  )r  r   r   r   s       r-   /test_str_starts_ends_with_all_nulls_empty_tupler  #  si    
))T4L
299;(?
@C#WSWWd#B'F yy$Z
-CDH68,r/   zarg_name, argreplr  r  r<   c                   t        j                  dd gt        t        j	                                     }dddd}||| <   t        j                  t        d      5   |j                  j                  d	i | d d d        y # 1 sw Y   y xY w)
Nr  rU   rK   r   T)r  r  r  zreplace is not supportedr   r   )
rc   r   r   r)   r   r&   r$   rb   rV  replace)arg_nameargr   kwargss       r-   test_str_replace_unsupportedr  -  ss    
 ))UDMBIIK)@
AC#5FF8	*2L	M "!&!" " "s   BB
zpat, repl, n, regex, exprJ   r   r>   xbxcxbacz[a-b]xxxcc                :   t        j                  dd gt        t        j	                                     }|j
                  j                  | |||      }t        j                  |t        t        j	                                     }t        j                  ||       y )NabacrU   )nr  	rc   r   r   r)   r   rV  r  r   r   )r  r  r  r  r  r   r   r   s           r-   test_str_replacer  9  sh     ))VTN*RYY[*A
BCWW__S$!5_9FyyJryy{$;<H68,r/   c                 <   t        j                  ddgt        t        j	                                     } | j
                  j                  dddd      }t        j                  ddgt        t        j	                                     }t        j                  ||       y )	Nr  aaaaaarU   rJ   r  Tr  r  )r   actualr   s      r-   test_str_replace_negative_nr  H  si    
))UH%Z		-D
ECWW__S"b$/Fyy$:biik+BCH8V,r/   c                    t        j                  dd gt        t        j	                                     } t        j                  t        d      5  | j                  j                  ddg       d d d        y # 1 sw Y   y xY w)Nr  rU   zrepeat is notr   r<   r@   )
rc   r   r   r)   r   r&   r$   rb   rV  r
  r  s    r-   test_str_repeat_unsupportedr  P  sY    
))UDMBIIK)@
AC	*/	B 1v  r  c                 6   t        j                  dd gt        t        j	                                     } | j
                  j                  d      }t        j                  dd gt        t        j	                                     }t        j                  ||       y )Nr  rU   r@   r  )	rc   r   r   r)   r   rV  r
  r   r   rX  s      r-   test_str_repeatr  V  sc    
))UDMBIIK)@
ACWW^^AFyy(D)BIIK1HIH68,r/   zpat, case, na, expc                8   t        j                  dd gt        t        j	                                     }|j
                  j                  | ||      }t        j                  |t        t        j                                     }t        j                  ||       y )Nr  rU   r  r  
rc   r   r   r)   r   rV  r   r  r   r   r  r  r  r  r   r   r   s          r-   test_str_matchr  ]  sf     ))UDMBIIK)@
ACWW]]3Tb]1FyyJrxxz$:;H68,r/   )TTFNAbc)FFFNabc$TFFNzabc\$FTFNzAbc$zAbc\$c                8   t        j                  g dt        t        j	                                     }|j
                  j                  | ||      }t        j                  |t        t        j                                     }t        j                  ||       y )N)r  r  z$abcNrU   r  r  r  s          r-   test_str_fullmatchr  o  sc    " ))1BIIK9P
QCWW]]3Tb]1FyyJrxxz$:;H68,r/   zsub, start, end, exp, exp_typr!  c                   t        j                  dd gt        t        j	                                     }|j
                  j                  | ||      }t        j                  |t        |            }t        j                  ||       y )Nr  rU   )startend)	rc   r   r   r)   r   rV  findr   r   )subr  r  r  exp_typr   r   r   s           r-   test_str_findr    s`    
 ))UDMBIIK)@
ACWW\\#U\4FyyJw$78H68,r/   c                 <   t        j                  dd gt        t        j	                                     } | j
                  j                  ddd      }t        j                  dd gt        t        j                                     }t        j                  ||       y )Nr  rU   rK   ir!  )r  r  r  r<   )
rc   r   r   r)   r   rV  r  r  r   r   rX  s      r-   test_str_find_negative_startr    sh    
))UDMBIIK)@
ACWW\\cA\6Fyy!T*RXXZ*@AH68,r/   c                    t        j                  dd gt        t        j	                                     } t        j                  t        d      5  | j                  j                  dd       d d d        y # 1 sw Y   y xY w)Nr  rU   zfind not implementedr   r  r<   )r  )
rc   r   r   r)   r   r&   r$   rb   rV  r  r  s    r-   test_str_find_notimplementedr    sZ    
))UDMBIIK)@
AC	*2H	I $T#$ $ $r  zi, exp)rK   r  N)ro   r  Nr@   )ro   NNr  )rJ   NNr  c                2   t        j                  g dt        t        j	                                     }|j
                  j                  |       }t        j                  |t        t        j	                                     }t        j                  ||       y )N)r  deNrU   )	rc   r   r   r)   r   rV  r  r   r   )r  r  r   r   r   s        r-   test_str_getr    s\     ))'z"))+/F
GCWW[[^FyyJryy{$;<H68,r/   z=TODO: StringMethods._validate should support Arrow list typesr   c            
     Z   t        j                  t        t        j	                  t        d      t        d      d g                  } | j                  j                  d      }t        j                  g dt        t        j                                     }t        j                  ||       y )Nr  123=za=b=cz1=2=3NrU   )rc   r   r    r)   rd   r`  rV  joinr   r   r   r   rX  s      r-   test_str_joinr    sn    
 ))'$u+tE{D1Q(RS
TCWW\\#Fyy1BIIK9PQH68,r/   c                 4   t        j                  t        t        j	                  g d                  } | j
                  j                  d      }t        j                  g dt        t        j                                     }t        j                  ||       y )N)r  r  Nr  r  rU   )rc   r   r    r)   rd   rV  r  r   r   r   r   rX  s      r-   test_str_join_string_typer    s^    
))'1E(FG
HCWW\\#Fyy1BIIK9PQH68,r/   zstart, stop, step, expc                6   t        j                  dd gt        t        j	                                     }|j
                  j                  | ||      }t        j                  |t        t        j	                                     }t        j                  ||       y NabcdrU   )	rc   r   r   r)   r   rV  slicer   r   )r  stopstepr  r   r   r   s          r-   test_str_slicer    sd     ))VTN*RYY[*A
BCWW]]5$-FyyJryy{$;<H68,r/   zstart, stop, repl, expaxcdxcdcdc                6   t        j                  dd gt        t        j	                                     }|j
                  j                  | ||      }t        j                  |t        t        j	                                     }t        j                  ||       y r  )	rc   r   r   r)   r   rV  slice_replacer   r   )r  r   r  r  r   r   r   s          r-   test_str_slice_replacer    sf     ))VTN*RYY[*A
BCWW""5$5FyyJryy{$;<H68,r/   zvalue, method, exp)a1cisalnumT)z!|,r
  F)aaaisalphaT)z!!!r  F)u   ٠	isdecimalT)z~!r  F)rL   isdigitT)~r  F)r  islowerT)aaAr  F)r  	isnumericT)11Ir  F) isspaceT)r  r  F)zThe ThatistitleT)zthe Thatr  F)AAAisupperT)AAcr  Fc                6   t        j                  | d gt        t        j	                                     } t        |j                  |             }t        j                  |d gt        t        j                                     }t        j                  ||       y r   r  )valuerB  r  r   r   r   s         r-   test_str_is_functionsr    sg    0 ))UDMBIIK)@
AC%WSWWf%'Fyy#tJrxxz,BCH68,r/   zmethod, exp
capitalizezAbc deftitlezAbc DefswapcasezAbC Defr  zabc defupperzABC DEFcasefoldc                6   t        j                  dd gt        t        j	                                     } t        |j                  |              }t        j                  |d gt        t        j	                                     }t        j                  ||       y )NzaBc dEFrU   	rc   r   r   r)   r   r   rV  r   r   )rB  r  r   r   r   s        r-   test_str_transform_functionsr$    sh     ))Y%Z		-D
EC%WSWWf%'Fyy#tJryy{,CDH68,r/   c                 4   t        j                  dd gt        t        j	                                     } | j
                  j                         }t        j                  dd gt        t        j                                     }t        j                  ||       y )Nr  rU   r7   )
rc   r   r   r)   r   rV  r  r  r   r   rX  s      r-   test_str_lenr&    s_    
))VTN*RYY[*A
BCWW[[]Fyy!T*RXXZ*@AH68,r/   zmethod, to_strip, val)rq  Nz abc )rq  r   xabcx)lstripNz abc)r(  r   xabc)rstripNzabc )r*  r   abcxc                :   t        j                  |d gt        t        j	                                     } t        |j                  |       |      }t        j                  dd gt        t        j	                                     }t        j                  ||       y )NrU   )to_stripr  r#  )rB  r-  valr   r   r   s         r-   test_str_stripr/    si     ))S$Kz"))+'>
?C%WSWWf%x8Fyy%j.EFH68,r/   r.  abc123c                6   t        j                  | d gt        t        j	                                     }|j
                  j                  d      }t        j                  dd gt        t        j	                                     }t        j                  ||       y NrU   r  r  )	rc   r   r   r)   r   rV  removesuffixr   r   r.  r   r   r   s       r-   test_str_removesuffixr5  )  d    
))S$Kz"))+'>
?CWW!!%(Fyy%j.EFH68,r/   123abcc                6   t        j                  | d gt        t        j	                                     }|j
                  j                  d      }t        j                  dd gt        t        j	                                     }t        j                  ||       y r2  )	rc   r   r   r)   r   rV  removeprefixr   r   r4  s       r-   test_str_removeprefixr:  1  r6  r/   r]  r   strictzencoding, exputf8s   abcutf32s     a   b   c   c                8   t        j                  dd gt        t        j	                                     }|j
                  j                  ||       }t        j                  |d gt        t        j                                     }t        j                  ||       y Nr  rU   )
rc   r   r   r)   r   rV  encoder	  r   r   )r]  encodingr  r   r   r   s         r-   test_str_encoderB  9  sf     ))UDMBIIK)@
ACWW^^Hf-Fyy#tJryy{,CDH68,r/   c           	     d   t        j                  g dt        t        j	                                     }|j
                  j                  d|       }t        j                  dgg d gt        t        j                  t        j	                                           }t        j                  ||       y )N)r  r  NrU   rK   r  )
rc   r   r   r)   r   rV  findalllist_r   r   )r  r   r   r   s       r-   test_str_findallrF  H  sq    
))(
299;0G
HCWW__S_.Fyy3%T**RXXbiik=R2STH68,r/   rB  rR  rindexz
start, endc                   t        j                  dd gt        t        j	                                     } t        |j                  |       d||      }t        j                  dd gt        t        j                                     }t        j                  ||       t        j                  t        d      5   t        |j                  |       d||       d d d        y # 1 sw Y   y xY w)NabcbarU   ro   r@   zsubstring not foundr   rx  )rc   r   r   r)   r   r   rV  r  r   r   r&   r$   rU  )rB  r  r  r   r   r   s         r-   test_str_r_indexrJ  P  s     ))WdO:biik+B
CC%WSWWf%c5#6Fyy!T*RXXZ*@AH68,	z)>	? 4  s34 4 4s   8C  C)formNFCNFKCc                    t        j                  dd gt        t        j	                                     }|j
                  j                  |       }|j                         }t        j                  ||       y r?  )
rc   r   r   r)   r   rV  	normalizerr  r   r   )rK  r   r   r   s       r-   test_str_normalizerP  b  sP    
))UDMBIIK)@
ACWWt$FxxzH68,r/   c                :   t        j                  g dt        t        j	                                     }|j
                  j                  d| |      }t        j                  g dt        t        j                                     }t        j                  ||       y )N)rI  rx  NrU   ro   )r@   r>   N)
rc   r   r   r)   r   rV  rfindr  r   r   )r  r  r   r   r   s        r-   test_str_rfindrS  j  sa     ))**RYY[2I
JCWW]]3s+Fyyj.DEH68,r/   c                 :   t        j                  dd gt        t        j	                                     } | j
                  j                  ddi      }t        j                  dd gt        t        j	                                     }t        j                  ||       y )NrI  rU   a   rK   bbcbb)	rc   r   r   r)   r   rV  	translater   r   rX  s      r-   test_str_translaterX  x  sh    
))WdO:biik+B
CCWWCy)Fyy'4
299;0GHH68,r/   c                 6   t        j                  dd gt        t        j	                                     } | j
                  j                  d      }t        j                  dd gt        t        j	                                     }t        j                  ||       y )NrI  rU   r!  zabc
ba)	rc   r   r   r)   r   rV  wrapr   r   rX  s      r-   test_str_wrapr[    sb    
))WdO:biik+B
CCWW\\!_Fyy)T**RYY[2IJH68,r/   c                 H   t        j                  g dt        t        j	                                     } | j
                  j                         }t        j                  g dg dg dgt        t        j                               g d      }t        j                  ||       y )N)za|bNza|crU   )TTFr  r6  )rJ   rK   ro   )r5   r)  )rc   r   r   r)   r   rV  get_dummiesr$  r  r   rY  rX  s      r-   test_get_dummiesr^    sm    
))(
299;0G
HCWW  "F||	35HI$H
 &(+r/   c                    t        j                  dd gt        t        j	                                     } | j
                  j                  d      }t        j                  g dg dgt        t        j	                                     }t        j                  ||       | j
                  j                  dd      }t        j                  t        t        j                  g dd g                  }t        j                  ||       | j
                  j                  d      }t        j                  g dg dgt        t        j	                                     }t        j                  ||       | j
                  j                  dd      }t        j                  t        t        j                  g dd g                  }t        j                  ||       y )	NrI  rU   rK   )rJ   rK   cbar  Fexpand)r  rK   rJ   )rc   r   r   r)   r   rV  	partitionr$  r   rY  r    rd   r   
rpartitionrX  s      r-   test_str_partitionre    sM   
))WdO:biik+B
CCWWs#F||	./z"))+7NH &(+WWs51Fyy,RXX7H$6O-PQRH68,WW$F||	./z"))+7NH &(+WWE2Fyy,RXX7H$6O-PQRH68,r/   rsplitsplitc                8   t        j                  dd gt        t        j	                                     } t        |j                  |              }t        j                  t        t        j                  g dd g                  }t        j                  ||       y )Nza1 cbc
brU   )a1cbcrK   )rc   r   r   r)   r   r   rV  r    rd   r   r   rB  r   r   r   s       r-   test_str_split_pat_nonerl    sl     ))[$'z"))+/F
GC%WSWWf%'Fyy,RXX7I46P-QRSH68,r/   c            	        t        j                  g dt        t        j	                                     } | j
                  j                  d      }t        j                  t        t        j                  g dg dd g                  }t        j                  ||       | j
                  j                  dd      }t        j                  t        t        j                  dd	gd
d	gd g                  }t        j                  ||       | j
                  j                  dd      }t        j                  t        t        j                  ddgddgd g                  }t        j                  ||       | j
                  j                  ddd      }t        j                  t        t        j                  g d            t        t        j                  g d            d      }t        j                  ||       | j
                  j                  dd      }t        j                  t        t        j                  g d            t        t        j                  g d            d      }t        j                  ||       y )Na1cbcba2cbcbNrU   ro   ri  rK   rK   a2rK   rK   r<   r  ri  bcbrs  z[1-2]T)r  rJ   cbcb)r  rb  )rJ   rJ   N)rv  rv  Nr   r<   rA   ra  rJ   rp  Nrv  NN)rc   r   r   r)   r   rV  rg  r    rd   r   r   r$  rY  rX  s      r-   test_str_splitrz    s   
)).j6M
NCWW]]3FyyBHH&68H$%OPQH 68,WW]]3!]$FyyBHHtUmdE]D%IJKH 68,WW]]7$]/FyyBHHsFmc6]D%IJKH 68,WW]]7$t]<F||"288,<#=>"288,B#CD	
H &(+WW]]3t],F||"288,A#BC"288,@#AB	
H &(+r/   c            	     2   t        j                  g dt        t        j	                                     } | j
                  j                  d      }t        j                  t        t        j                  g dg dd g                  }t        j                  ||       | j
                  j                  dd      }t        j                  t        t        j                  dd	gd
d	gd g                  }t        j                  ||       | j
                  j                  ddd      }t        j                  t        t        j                  g d            t        t        j                  g d            d      }t        j                  ||       | j
                  j                  dd      }t        j                  t        t        j                  g d            t        t        j                  g d            d      }t        j                  ||       y )Nrn  rU   ro   rq  rr  r<   rt  a1cbrK   a2cbT)r  rb  )r|  r}  N)rK   rK   Nrw  rA   ra  rx  ry  )rc   r   r   r)   r   rV  rf  r    rd   r   r   r$  rY  rX  s      r-   test_str_rsplitr~    s   
)).j6M
NCWW^^C FyyBHH&68H$%OPQH 68,WW^^C1^%FyyBHHvsmfc]D%IJKH 68,WW^^C1T^2F||"288,B#CD"288,<#=>	
H &(+WW^^C^-F||"288,A#BC"288,@#AB	
H &(+r/   c                    t        j                  g dt        t        j	                                     } t        j                  t        d      5  | j                  j                  d       d d d        y # 1 sw Y   y xY w)Nri  b2c3rU   z*pat=.* must contain a symbolic group name.r   z[ab](\d))
rc   r   r   r)   r   r&   r$   rU  rV  extractr  s    r-   test_str_extract_non_symbolicr    sR    
))&j.E
FC	z)U	V %$% % %s   A55A>rb  c           	     z   t        j                  g dt        t        j	                                     }|j
                  j                  d|       }t        j                  t        t        j                  g d            t        t        j                  g d            d      }t        j                  ||       y )Nr  rU   z(?P<letter>[ab])(?P<digit>\d)ra  )rJ   rK   NrA   rL   N)letterdigit)rc   r   r   r)   r   rV  r  r$  r    rd   r   rY  )rb  r   r   r   s       r-   test_str_extractr  	  s~    
))&j.E
FCWW__=f_MF||)"((3C*DE(2B)CD	
H &(+r/   c            	        t        j                  g dt        t        j	                                     } | j
                  j                  dd      }t        j                  dt        t        j                  g d            i      }t        j                  ||       | j
                  j                  dd      }t        j                  t        t        j                  g d            d	      }t        j                  ||       y )
Nr  rU   z[ab](?P<digit>\d)Tra  r  r  Fr  )rc   r   r   r)   r   rV  r  r$  r    rd   r   rY  r   rX  s      r-   test_str_extract_expandr  	  s    
))&j.E
FCWW__1$_?F||(2B)CD	
H
 &(+WW__1%_@Fyy,RXX6F-GHwWH68,r/   rT  )rP  rO  r  r  c                    ddg}t         j                  |       }t        j                  ||      }t        t         j	                  dd g|            }t        j                  ||       y )N1000NaTrU     r}  )r)   durationr    r   rd   r   r   )rT  stringsr   r   r   s        r-   #test_duration_from_strings_with_natr  	  sX     uoGkk$G ::7'RF"288T4Lw8#GHH##FH5r/   c                   | j                   j                  }t        j                  j	                  |      sDt        j                  t        d      5  t        j                  |       j                   d d d        y y # 1 sw Y   y xY w)Nz2Can only use .dt accessor with datetimelike valuesr   )r5   r3   r)   rV   r   r&   r$   AttributeErrorrc   r   r  r   s     r-   test_unsupported_dtr  '	  sg    zz''H88)]]"V
 	 IIdO	 	 *	 	s    A;;Bzprop, expectedyear  dayday_of_week	dayofweekweekdayday_of_year	dayofyearhourminuteis_leap_yearmicrosecondrI   month
nanosecondr  quartersecondrv   r   r   c                   t        j                  t        j                  dddddddd	      d gt        t        j                  d
                  }t        |j                  |       }d }t        |t              rt        j                         }n%t        |t              rt        j                  d
      }t        j                  t        t        j                  |d g|                  }t        j                   ||       y )Nr  r<   r@   r!  r7   rv   rI   r  )r  r  r  r  r  r  r  r  rP  rU   r}  )rc   r   r  r   r)   r  r   r  r   r   r  r   time64r    rd   r   r   )propr   r   r   exp_types        r-   test_dt_propertiesr  0	  s    . ))LL	 	
 d+,C  SVVT"FH(D!99;	Hd	#99T?yy,RXXx6FXX-VWXH68,r/   c            
     @   t        j                  t        dddd      t        dddd      t        dddd      d gt        t        j                  d            	      } | j                  j                  }t        j                  g d
t        t        j                               	      }t        j                  ||       | j                  j                  }t        j                  g dt        t        j                               	      }t        j                  ||       y )Nr  rE   r@   r!  r  r  r  r  r<   rF   rO  rU   r  FFTN)rc   r   r   r   r)   r  r  is_month_startr  r   r   is_month_endrX  s      r-   test_dt_is_month_start_endr  a	  s    
))$baa8$aQQ7$aRa8		
 d+,C VV""Fyy3:bhhj;QRH68,VV  Fyy3:bhhj;QRH68,r/   c            
     @   t        j                  t        dddd      t        dddd      t        dddd      d gt        t        j                  d                  } | j                  j                  }t        j                  g d	t        t        j                                     }t        j                  ||       | j                  j                  }t        j                  g d
t        t        j                                     }t        j                  ||       y )Nr  rE   rF   r!  r  r<   rO  rU   r  r  )rc   r   r   r   r)   r  r  is_year_startr  r   r   is_year_endrX  s      r-   test_dt_is_year_start_endr  t	  s    
))$bbq9$aQQ7$aRa8		
 d+,C VV!!Fyy3:bhhj;QRH68,VVFyy3:bhhj;QRH68,r/   c            
     @   t        j                  t        dddd      t        dddd      t        dddd      d gt        t        j                  d            	      } | j                  j                  }t        j                  g d
t        t        j                               	      }t        j                  ||       | j                  j                  }t        j                  g dt        t        j                               	      }t        j                  ||       y )Nr        r!  r  r<   rF   rO  rU   r  r  )rc   r   r   r   r)   r  r  is_quarter_startr  r   r   is_quarter_endrX  s      r-   test_dt_is_quarter_start_endr  	  s    
))$bbq9$aQQ7$aRa8		
 d+,C VV$$Fyy3:bhhj;QRH68,VV""Fyy3:bhhj;QRH68,r/   days_in_monthdaysinmonthc           
        t        j                  t        dddd      t        dddd      t        dddd      d gt        t        j                  d            	      }t        |j                  |       }t        j                  g d
t        t        j                               	      }t        j                  ||       y )Nr  r!  r  r  r7   r<   r@   rO  rU   )rF   r     N)rc   r   r   r   r)   r  r   r  r  r   r   rk  s       r-   test_dt_days_in_monthr  	  s    
))$aRa8$aQQ7$aQQ7		
 d+,C SVVV$Fyy+:bhhj3IJH68,r/   c                    t        j                  t        ddd      t        dddd      t        dddd	d
d
      d gt        t        j                  d                  } | j                  j                         }t        j                  t        ddd      t        ddd      t        ddd      d gt        t        j                  d                  }t        j                  ||       y )Nr  r!  r  r  r  r  r7   r<   r  r@      ;   )r  r  r  r  r  r  rO  rU   )
rc   r   r   r   r)   r  r  rO  r   r   rX  s      r-   test_dt_normalizer  	  s    
))$aR0$aQQ7$aQR2N		
 d+,C VVFyy$aR0$aQ/$aQ/		
 d+,H 68,r/   rO  rP  c           
        t        j                  t        dddd      d gt        t        j                  |                   }|j                  j                  | k(  sJ |j                  j                  }t        j                  t        t        j                  t        dd      d gt        j                  |                         }t        j                  ||       y )	Nr  r<   r@   r!  r  rU   r   r}  )rc   r   r   r   r)   r  r  rT  r   r    rd   r  r   r   rT  r   r   r   s       r-   test_dt_time_preserve_unitr  	  s    
))	t1!!	4d;d+,C 66;;$VV[[FyyBHHd1aj$%7biioHNOH 68,r/   r   )Nr  
US/Pacificc           	         t        j                  t        dddd      d gt        t        j                  d|                   }|j                  j                  }|t        j                  |       k(  sJ y )	Nr  r<   r@   r!  r  rP  r   rU   )
rc   r   r   r   r)   r  r  r   r   maybe_get_tz)r   r   r   s      r-   
test_dt_tzr  	  s`    
))	t1!!	4d;dr23C VVYYFY++B////r/   c                 (   t        j                  t        dddd      d gt        t        j                  d                  } | j                  j                         }t        j                  g dg d	gg d
d      }t        j                  ||       y )Nr  r<   r@   r!  r  rP  rU   )r  r<   r<   r  )r  weekr  r   r)  r5   )rc   r   r   r   r)   r  r  isocalendarr$  r   rY  rX  s      r-   test_dt_isocalendarr  	  sv    
))	t1!!	4d;d+,C VV!F||	y!'H
 &(+r/   day_nameSunday
month_nameJanuaryc                d   t        |       t        j                  t        ddd      d gt	        t
        j                  d                  } t        |j                  |              }t        j                  |d gt	        t
        j                                     }t        j                  ||       y )Nr  r<   r  rU   )r.   rc   r   r   r   r)   r  r   r  r   r   r   )rB  r  r,   r   r   r   s         r-   test_dt_day_month_namer  	  s}    
 w'
))XdAq)40
2<<PTCU8V
WC$WSVVV$&Fyy#tJryy{,CDH68,r/   c                h   t        |        t        j                  t        dddd      d gt	        t
        j                  d                  }|j                  j                  d      }t        j                  d	d gt	        t
        j                                     }t        j                  ||       y )
Nr  r<   r@   r!  r  rP  rU   z%Y-%m-%dT%H:%M:%Sz2023-01-02T03:00:00.000000000)r.   rc   r   r   r   r)   r  r  strftimer   r   r   )r,   r   r   r   s       r-   test_dt_strftimer  	  s    w'
))	t1!!	4d;d+,C VV__01Fyy	($/z"))+7NH 68,r/   )ceilr  r  c                   t        j                  t        dddd      d gt        t        j                  d                  }t        j                  t        d	      5   t        |j                  |       d
d       d d d        t        j                  t        d	      5   t        |j                  |       d
d       d d d        y # 1 sw Y   LxY w# 1 sw Y   y xY w)Nr  r<   r@   r!  r  rP  rU   zambiguous is not supported.r   1hr  	ambiguousznonexistent is not supported.nonexistent)rc   r   r   r   r)   r  r&   r$   rb   r   r  rB  r   s     r-   *test_dt_roundlike_tz_options_not_supportedr  
  s    
))	t1!!	4d;d+,C 
*2O	P 767 
*2Q	R 9%89 97 79 9s   C CCCc                   t        j                  t        dddd      d gt        t        j                  d                  }t        j                  t        d	      5   t        |j                  |       d
       d d d        t        j                  t        d	      5   t        |j                  |       d        d d d        y # 1 sw Y   JxY w# 1 sw Y   y xY w)Nr  r<   r@   r!  r  rP  rU   zfreq='1B' is not supportedr   1Bz$Must specify a valid frequency: None)rc   r   r   r   r)   r  r&   r$   rU  r   r  r  s     r-   "test_dt_roundlike_unsupported_freqr  
  s    
))	t1!!	4d;d+,C 
z)E	F &%& 
z)O	P &%& && && &s   CCCCfreq)Dhr  r  r  rO  rP  c                j   t        j                  t        ddd      d g      }t        t        j                  d            } t        |j                  |      d|        j                  |      } t        |j                  |      j                  |      d|        }t        j                  ||       y )Nr  r<   r  rP  rA   )rc   r   r   r   r)   r  r   r  r   r   r   )r  rB  r   re   r   r   s         r-   test_dt_ceil_year_floorr  
  s     ))	t1!	,d3C ",,t,-H&wsvvv&4&z299(CH5WSZZ),,f5$jAF68,r/   c                    t        ddd      t        ddd      g} t        j                  | t        t        j                  d                  }d}t        j                  t        |      5  |j                  j                         }d d d        t        j                  | t              }t        j                  |       t        d |D              sJ d	}t        j                  t        |      5  |j!                  d
      j                  j                         }d d d        t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   ,xY w)NrC   r<   r  rP  rU   CThe behavior of ArrowTemporalProperties.to_pydatetime is deprecatedr   c              3  >   K   | ]  }t        |      t        u   y wr   )ri   r   .0ress     r-   	<genexpr>z(test_dt_to_pydatetime.<locals>.<genexpr>3
  s     7tCyH$7   z>The behavior of DatetimeProperties.to_pydatetime is deprecateddatetime64[ns])r   rc   r   r   r)   r  r   r^  FutureWarningr  r  r   rd   r   r   r   r   )rf   r   r-  r   r   s        r-   test_dt_to_pydatetimer  )
  s   T1a (4A"67D
))D
2<<+= >
?C
OC		#	#M	= (%%'(xxF+H177777
JC		#	#M	= C::./22@@BC1( (C Cs   +D90*E9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                  j                          d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)	NrC   rE   rF   r   rU   r  r   z#to_pydatetime cannot be called with)rc   r   r   r   r   r)   r   r^  r  r&   r$   rU  r  r  )r  r   r-  s      r-    test_dt_to_pydatetime_date_errorr  ;
  s     ))	dB	8tI;%78:;C PC		#	#M	= #]]:-RS 	#FF  "	## #	# 	## #s$    B4<B(B4(B1	-B44B=c                    t        j                  t        dddd      d gt        t        j                  d                  } t        j                  t        d	      5  | j                  j                  d
d       d d d        t        j                  t        d	      5  | j                  j                  d
d       d d d        y # 1 sw Y   KxY w# 1 sw Y   y xY w)Nr  r<   r@   r!  r  rP  rU   z ambiguous='NaT' is not supportedr   r  r  r  z"nonexistent='NaT' is not supportedr  )rc   r   r   r   r)   r  r&   r$   rb   r  tz_localizer  s    r-   *test_dt_tz_localize_unsupported_tz_optionsr  H
  s    
))	t1!!	4d;d+,C 
*2T	U 35E23 
*2V	W 55e45 53 35 5s   CCCCc            	     r   t        j                  t        dddd      d gt        t        j                  dd            	      } | j                  j                  d       }t        j                  t        dddd      d gt        t        j                  d            	      }t        j                  ||       y )
Nr  r<   r@   r!  r  rP  r  r  rU   )
rc   r   r   r   r)   r  r  r  r   r   rX  s      r-   test_dt_tz_localize_noner   T
  s    
))	t1!!	4d;d|<=C VV%Fyy	t1!!	4d;d+,H 68,r/   c                   t        |       t        j                  t        dddd      d gt	        t
        j                  |                   }|j                  j                  d      }t
        j                  t        dddd      d gt
        j                  |             }t
        j                  j                  |d      }t        j                  t        |            }t        j                  ||       y )	Nr  r<   r@   r!  r  rU   r  r}  r.   rc   r   r   r   r)   r  r  r  rd   computeassume_timezoner    r   r   )rT  r,   r   r   exp_datar   s         r-   test_dt_tz_localizer  a
  s    w'
))	t1!!	4d;d+,C VV-Fxx	t1!!	4d;",,tBT  H zz))(LAHyy,X67H68,r/   znonexistent, exp_dateshift_forwardrE   r  shift_backwardz2023-03-12 01:59:59.999999999c           	        t        |       t        j                  t        ddddd      d gt	        t
        j                  d                  }|j                  j                  d	| 
      }t
        j                  |d gt
        j                  d            }t
        j                  j                  |d	      }t        j                  t        |            }t        j                  ||       y )Nr  r!  rE   r@   r  )r  r  r  r  r  rP  rU   r  r  r}  r  )r  exp_dater,   r   r   r  r   s          r-   test_dt_tz_localize_nonexistentr  r
  s     w'
))	t1"1R	@$Gd+,C VV+FFxx4(r||D/AxBHzz))(LAHyy,X67H68,r/   c                    t        j                  t        dddd      d gt        t        j                  d                  } t        j                  t        d	      5  | j                  j                  d
       d d d        y # 1 sw Y   y xY w)Nr  r<   r@   r!  r  rP  rU   z"Cannot convert tz-naive timestampsr   r  )rc   r   r   r   r)   r  r&   r$   r  r  
tz_convertr  s    r-    test_dt_tz_convert_not_tz_raisesr  
  sl    
))	t1!!	4d;d+,C 
y(L	M !% ! ! !s   BBc            	     p   t        j                  t        dddd      d gt        t        j                  dd                  } | j                  j                  d       }t        j                  t        dddd      d gt        t        j                  d                  }t        j                  ||       y )	Nr  r<   r@   r!  r  rP  r  rU   
rc   r   r   r   r)   r  r  r  r   r   rX  s      r-   test_dt_tz_convert_noner  
  s    
))	t1!!	4d;dL9:C VVt$Fyy	t1!!	4d;d+,H 68,r/   c           	     r   t        j                  t        dddd      d gt        t        j                  | d                  }|j                  j                  d      }t        j                  t        dddd      d gt        t        j                  | d                  }t        j                  ||       y )	Nr  r<   r@   r!  r  r  rU   z
US/Easternr  r  s       r-   test_dt_tz_convertr  
  s    
))	t1!!	4d;dL9:C VV|,Fyy	t1!!	4d;dL9:H 68,r/   r5   ztimestamp[ms][pyarrow]zduration[ms][pyarrow]c                    t        j                  dd g|       }|j                  j                  d      }|j	                  | j                  dd            }t        j                  ||       y )Nr  rU   rP  r  )rc   r   r  as_unitr   r  r   r   r  s       r-   test_as_unitr  
  sS     ))T4L
.CVV^^D!Fzz%--d34H68,r/   dayssecondsmicrosecondsnanosecondsc           	        t        j                  t        j                  dddd      d gt        t        j                  d                  }t        |j                  |       }t        j                  t        t        j                  |d gt        j                                           }t        j                  ||       y )	Nr<   r@   r!  r7   r  r  r  r  rP  rU   r}  )rc   r   	Timedeltar   r)   r  r   r  r    rd   r  r   r   )r  r   r   r   s       r-   test_dt_timedelta_propertiesr  
  s     ))LL	 	
 T*+C SVVT"FyyBHHh%5BHHJHGHH 68,r/   c            	        t        j                  t        j                  dddd      d gt        t        j                  d                  } | j                  j                         }t        j                  t        t        j                  dd gt        j                         	                  }t        j                  ||       y )
Nr<   r@   r!  r7   r  rP  rU   gN%  @r}  )rc   r   r  r   r)   r  r  total_secondsr    rd   r   r   r   rX  s      r-   test_dt_timedelta_total_secondsr!  
  s    
))LL	 	
 T*+C VV!!#FyyBHHlD%9

HMNH 68,r/   c                    t        ddd      t        ddd      g} t        j                  | t        t        j                  d                  }|j                  j                         }t        j                  | t              }t        j                  ||       t        d |D              sJ |j                  d      j                  j                         }t        j                  ||       y )	Nr<   r@   r!  r7   rP  rU   c              3  >   K   | ]  }t        |      t        u   y wr   )ri   r   r  s     r-   r  z)test_dt_to_pytimedelta.<locals>.<genexpr>
  s     8#tCyI%8r  timedelta64[ns])r   rc   r   r   r)   r  r  to_pytimedeltar   rd   r   r   r   r   r   rf   r   r   r   s       r-   test_dt_to_pytimedeltar'  
  s    aA	!Q 23D
))D
2;;t+< =
>CVV""$FxxF+H188888zz+,//>>@H1r/   c                 4   t        j                  t        j                  dddd      d gt        t        j                  d                  } | j                  j                  }t        j                  g dg d	gg d
d      }t        j                  ||       y )Nr<   r@   r!  r7   r  rP  rU   )r<   r   r   r@   r   r!  r7   )NNNNNNN)r  hoursminutesr  millisecondsr  r  r   r  )rc   r   r  r   r)   r  r  
componentsr$  r   rY  rX  s      r-   test_dt_componentsr-  
  s    
))LL	 	
 T*+C VVF||	 JK
 H &(+r/   r   c                    t        j                  d gd      } t        ||       |      }|r| dk(  }nt         j                  }||u sJ y )Nr  rU   r   r   )rc   r   r   r  )r
  r   r   r   r   s        r-   #test_boolean_reduce_series_all_nullr/    sO     ))TF"4
5C1WS01@F)U255Xr/   c                    g d} g d}d g}| |z   |z   }dgt        |       z  dgt        |      z  z   d gt        |      z  z   }t        j                  |t        j	                               }t        j                  |d      }t        j                  ||       ddg}t        j                  t        j                  d	
      5  t        j                  |t        j	                                d d d        y # 1 sw Y   y xY w)N)trueTRUETruerA   rV  )falseFALSEFalse0rB   TFrU   r{  r3  rx  zFailed to parser   )r  r    r   r)   r  rc   rd   r   r   r&   r$   r*   )true_stringsfalse_stringsnullsr  boolsr   r   s          r-   %test_from_sequence_of_strings_booleanr<     s    7L;MFE]*U2G	\""eWs=/A%AATFSQVZDWW 
 !::7"((*UFxx%78H##FH5uoG	r.?	@ Q55gRXXZPQ Q Qs   *C55C>c                    t        j                  g |       }|j                         }t        j                  |t	        j
                  g t        j                           g      }t        j                  ||       y r   )	rc   r   rr  concatr   rd   r  r   r   )r5   r   r   r   s       r-   %test_concat_empty_arrow_backed_seriesr?  2  sR    
))Be
$CxxzHYYBHHRrxx89:;F68,r/   r   r   c                    t         j                  dj                               }t        j                  ||       }t        j                  t        |      |       }t        j                  ||       y )Nzthe quick brown foxrU   )r)   rd   rg  rc   r   r    r   r   )r5   r  r   r   s       r-   test_series_from_string_arrayrA  :  sP    
(((..0
1C
))Cu
%Cyy,S1?H3)r/   c                       e Zd Z fdZ xZS )OldArrowExtensionArrayc                L    t         |          }|j                  d      |d<   |S )Nr   _data)r   __getstate__pop)r   stater   s     r-   rF  z#OldArrowExtensionArray.__getstate__D  s'    $&;/gr/   )r  r  r  rF  r  r  s   @r-   rC  rC  C  s     r/   rC  c                 &   t         j                  dg      } t        |       }t        j                  t        j
                  |            }t        j                  ||       |j                  t         j                  |       k(  sJ t        |d      rJ y )Nr<   rE  )r)   rd   rC  rI  rK  rJ  r   r   r   chunked_arrayhasattr)rf   r   r   s      r-   #test_pickle_old_arrowextensionarrayrL  J  st    88QC=D%d+H\\&,,x01F##FH5r//5555vw''''r/   c                 6   d} t        t        j                  t        j                  | ft        j
                        g            }|j                         }d|t        j                  | ft        j
                        <   |j                  |j                  k(  sJ y )Nih6 rU   F)	r    r)   rJ  r   onesr  rr  zerosr   )Nr  r   s      r-   /test_setitem_boolean_replace_with_mask_segfaultrQ  S  sn    A
b..BHH0M/NO
PCxxzH*/C!RXX&'==H.....r/   zdata, arrow_dtyperO   rP   c                    t        |      }t        j                  t        j                  |       |      }t        j                  | |      }t	        j
                  ||       y r   )r   rc   rd   r   r   r   )rf   r2  r5   r   r   s        r-   -test_conversion_large_dtypes_from_numpy_arrayrS  \  sF     {#EXXbhhtnE2FxxE*H##FH5r/   c                 :   t        j                  dd d git        t        j	                                     } t        j                  dddgid      }t        j
                  | |gd      }t        j                  dg did      }t        j                  ||       y )	NrJ   rU   r   r<   r   T)ignore_index)NNr   r<   )rc   r$  r   r)   nullr>  r   rY  )r,  df2r   r   s       r-   test_concat_null_arrayrX  j  sz    	sT4L)BGGI1F	GB
,,aV},<
=CYYCyt4F||S"45=MNH&(+r/   c                   t        j                  g dt        |             }|j                         }t        j                  g dt        t        j                               g d      }t        j                  ||       y )Nr<   r@   r!  rU   )r!  r@   r<   r<   r  g       @r  r!  r   r   r   r  25%50%75%r  r5   rR  )rc   r   r   describer)   r   r   r   r   rf   r   r   s       r-   test_describe_numeric_datarb  s  sX     99Yj&9:D]]_Fyy&&IH
 68,r/   c                F   t        j                  t        dd      t        |             }|j	                         }t        j                  dgt        j
                  g d| j                        j                         z   t        g d      }t        j                  ||       y )	Nr<   rH   rU   	   )rI   r@   r<   r!  rI   rv   rd  rT  r[  r_  )rc   r   r   r   r`  to_timedeltarT  rs  r   r   r   ra  s       r-   test_describe_timedelta_datarg    ss     99U1b\G)<=D]]_Fyy	
boo3',,GNNPPIH
 68,r/   c                b   t        j                  t        dd      t        |             }|j	                         }t        j                  dgdD cg c].  }t        j
                  || j                  | j                        0 c}z   t        g d      }t        j                  ||       y c c}w )	Nr<   rH   rU   rd  )rI   r<   r!  rI   rv   rd  )r   rT  )r   r   r  r\  r]  r^  r  r_  )rc   r   r   r   r`  r  r   rT  r   r   r   )r   rf   r   vr   s        r-   test_describe_datetime_datarj    s     99U1b\G)<=D]]_Fyy	
 (
 LLwzz=
	

 BH 68,
s   3B,
c                    g d}t        j                  |t        |             }|j                  d      }|d   }||k(  sJ y )NrZ  rU   g?r   )rc   r   r   r  )r   rf   r   r   r   s        r-   test_quantile_temporalrl    sC    
 D
))D
7 3
4C\\#F1vHXr/   c                     t         j                  t        j                  d      gt         j	                               } t        j                  | t        | j                              }t        |      dk(  sJ y )Nz
2020-01-01r}  rU   z+0    2020-01-01
dtype: date32[day][pyarrow])
r)   rd   r   fromisoformatr  rc   r   r   ri   repr)arrow_dtr   s     r-   test_date32_reprrq    sT    xx++L9:xMH
))HJx}}$=
>C9FFFFr/   c                    t        j                  dd g      } t        j                  dd g      }t        j                  | t	        t
        j                  d                  }t        j                  |t	        t
        j                  d                  }||z   }t        j                  dd gt	        t
        j                  d                  }t        j                  ||       y )Nr<   rP  rU   r@   )
rc   to_datetimerf  r   r   r)   r  r  r   r   )data_tsdata_tdser_tsser_tdr   r   s         r-   2test_duration_overflow_from_ndarray_containing_natrx    s    nnaY'Gooq$i(GYYwjd1C&DEFYYwjT1B&CDFf_Fyy!T*R\\$5G*HIH68,r/   c                   t        j                  |       }|dk7  sJ | j                  r5|dv r1t        j                  j                  d      }|j                  |       |t        j                  t        |       d      k(  sJ y )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_dtypera  r&   r'   r(   r+   r`  )rf   r,   r  r'   s       r-   test_infer_dtype_pyarrow_dtyper~    sy    
//$
C/!!!{{sGG{{  B ! 
 	D!#//$t*T::::r/   c                   d}| j                   }t        j                  j                  |       r(t	        j
                  ||      j                  |      g}n2t	        j                  ||| j                        j                  |      g}t        j                  ||       }t        t        j                  |g|             }t        j                  ||       y )Nr!  re  rT  r   rU   r}  )rT  r)   rV   r^   rc   r  r  r  r   r    rj   rd   r   r   )r   r.  rT  seqr   r   s         r-   test_from_sequence_temporalr    s    
 C<<D	xxG$||Cd+33D9:||Cdwzz:BB4HI //7CF"288SE8#@AH##FH5r/   c                   | j                   }t        j                  j                  |       r't	        j
                  d|      j                  |      }n1t	        j                  d|| j                        j                  |      }t        t        j                  g d|             }|j                         }||d d  t        t        j                  g d|             }t        j                  ||       y )Nr<   re  r  rZ  r}  )r<   r<   r<   )rT  r)   rV   r^   rc   r  r  r  r   r    rd   rr  r   r   r   rT  r.  r  r   r   s         r-   test_setitem_temporalr    s    
 <<D	xxG$ll14(006ll14GJJ7??E
bhhywh?
@CXXZFF1I"288IG8#DEH##FH5r/   c                "   t        t        j                  g d|             }| j                  }|t	        j
                  d|      j                  |      z
  }t        t        j                  g d|             }t        j                  ||       y )NrZ  r}  r<   re  )r   r<   r@   )	r    r)   rd   rT  rc   r  r  r   r   )r   r,   r  rT  r   r   s         r-   test_arithmetic_temporalr    sk    
 bhhywh?
@C<<D2<<-55d;;F"288IG8#DEH##FH5r/   c                   | j                   }t        j                  j                  |       r't	        j
                  d|      j                  |      }n1t	        j                  d|| j                        j                  |      }t        t        j                  g d|             }||kD  }t        t        j                  g dt        j                                     }t        j                  ||       y )Nr<   re  r  rZ  r}  )FTT)rT  r)   rV   r^   rc   r  r  r  r   r    rd   r  r   r   r  s         r-   test_comparison_temporalr    s    
 <<D	xxG$ll14(006ll14GJJ7??E
bhhywh?
@C3YF"288,?bhhj8#QRH##FH5r/   c                B   t        t        j                  g d|             }|d   }t        j                  j	                  |       rVt        j                  d| j                        j                  | j                        }t        |t
        j                        scJ t        j                  d| j                  | j                        j                  | j                        }t        |t
        j                        sJ |j                  |j                  k(  sJ ||k(  sJ y )NrZ  r}  r<   r@   re  r  )r    r)   rd   rV   r^   rc   r  rT  r  r   r  r   r   r  r   r   s       r-   test_getitem_temporalr    s    
 bhhywh?
@CVF	xxG$<<5==gllK&",,///<<DLLLL
 &",,///;;(--'''Xr/   c                   t        t        j                  dd g|             }t        |      }t        j                  j                  |       rit        j                  d| j                        j                  | j                        t        j                  g}t        |d   t        j                        svJ t        j                  d| j                  | j                        j                  | j                        t        j                  g}t        |d   t        j                        sJ |d   j                  |d   j                  k(  sJ ||k(  sJ y )Nr<   r}  re  r   r  )r    r)   rd   r`  rV   r^   rc   r  rT  r  r  r   r  r   r  s       r-   test_iter_temporalr    s   
 bhh4ywh?
@C#YF	xxG$LL.66w||DEE
 &)R\\222 LL'**=EEgllSEE
 &)R\\222!9>>Xa[-----Xr/   c                    t        j                  | d d g d      }|j                  d      j                         }t        j                  ddgdd	d
g      }t	        j
                  ||       y )Nr!  )rJ   rJ   rK   r  r   )levelr@   r<   r   rJ   rK   r_  )rc   r   r(  sizer   r   r&  s       r-   'test_groupby_series_size_returns_pa_intr  6  s\    
))D!HO
4C[[q[!&&(Fyy!Q'7SzJH68,r/   c                   t        t        j                  dd g|             }|j                  |      }t        j                  j                  |       r;t        j                  d| j                        j                  | j                        }nEt        j                  d| j                  | j                        j                  | j                        }|t        k(  s+t        j                  j                  |       rq| j                  e|t        k(  rt        j                  }nt        j                  }t!        j                  ||gt              }|d   j                  |j                  k(  s}J | j#                         j%                  d| j                        }|j                         }t!        j                  ||g      }t!        j&                  |d         d   | j                  k(  sJ t)        j*                  ||       y )Nr<   r}  rU   re  r  r   nat)r    r)   rd   r   rV   r^   rc   r  rT  r  r  r   r   r]   r  r  r   to_pandas_dtyperi   datetime_datar   r   )r   r5   r  r   r  r  r   s          r-   test_to_numpy_temporalr  >  sh    bhh4ywh?
@C\\\&F	xxG$QW\\2::7<<HQW\\gjjAII',,W288009gjj>TF?BB88UBKv6ay~~+++$$&++E7<<@ 88UBK(q	*1-===1r/   c                   t        j                  ddg| | d      }|j                  d      j                         }t        j                  ddggt        j                  dgd      ddgd      }t        j                  ||       y )	Nr<   r"  rq   r  rr   rs   r   )rR  r)  r5   )rc   r$  r(  r   r%  r   rY  )rk   r,  r   r   s       r-   %test_groupby_count_return_arrow_dtyper  [  st    	QFLI	JBZZ_""$F||
Qhhs%c
	H &(+r/   c            	         t        j                  ddgddggt        t        j	                  t        j                         d                  } | j                  j                  }|t        k(  sJ y )Nr<   r@   r!  r7   )	list_sizerU   )	rc   r   r   r)   rE  r  r5   ri   r`  )r   r   s     r-   test_fixed_size_listr  g  sU    
))
Q!Q
288BHHJ!8+L MC YY^^FT>>r/   c            	         t        j                  t        j                  dd      dgt        t	        d                  } t        |       }d}||k(  sJ y )N2012r!  )ra  r[  r  r  z#     col
0  15340
1  15341
2  15342)rc   r$  period_ranger   r!   ro  )r,  r   r   s      r-   'test_arrowextensiondtype_dataframe_reprr  p  sP    	
*-.
B
 "XF 8HXr/   c                     t        j                  dd gd      } | j                  d d      }t        j                  dd gd      }t        j                  ||       y )Nr@   r   rU   r!  )ry     )rc   r   powr   r   )kr   r   s      r-   test_pow_missing_operandr  ~  sN    
		1d)#34AUU4AU&Fyy!T*:;H68,r/   c                N   t        j                  d dgt        |             }t        j                  t        j                  ddgd| j
                   d            }|j                  |      }t        j                  ddgt        |             }t        j                  ||       y )Nr@   rU   r<   r!  zm8[r  )	rc   r   r   r   rd   rT  rD  r   r   )r   ser1ser2r   r   s        r-   test_duration_fillna_numpyr    s~     99dAYj&9:D99RXXq!fc',,q,ABCD[[Fyy!Qz'':;H68,r/   c                     t        j                  dgd      } t        j                  d gd      }t        j                  t        j
                  j                  d      5  | |k   d d d        y # 1 sw Y   y xY w)Nl            r  rU   r   zInteger valuer   )rc   r   r&   r$   r)   r   r*   r  s     r-   +test_comparison_not_propagating_arrow_errorr    s\    
		7)#45A
		4& 01A	rvv**/	B 	A  s    A//A8c                    t         j                  t         j                  dg      j                         t         j                  dg      j                         g      } t	        j
                  t        |             }|j                         \  }}t        j                  ddgt        j                        }t	        j                  t        | j                                     }t        j                  ||       t        j                  ||       y )NrJ   rK   r   r<   rU   )r)   rJ  rd   dictionary_encoderc   r   r    	factorizer   intpr%  r   r   r   r*  )r   r   res_indicesres_uniquesexp_indiciesexp_uniquess         r-   !test_factorize_chunked_dictionaryr    s    	3%	*	*	,bhhuo.O.O.QRH ))'1
2C"}}K88QF"''2L((.x/F/F/HIJK\:+{3r/   c                 V   t         j                  t        j                  g d            j                         t         j                  t        j                  g d            j                         g} t	        j
                  t        t         j                  |                   }|j                  d      }t	        j                  g dt        t         j                                     }t	        j
                  g dt	        j                  |            }t        j                  ||       y )N)rJ   r   ro   rJ   )rJ   dro   category)rJ   r   ro   r  rU   )rJ   r   ro   rJ   rJ   r  ro   )
categories)r)   rd   r   r  rc   r   r    rJ  r   r%  r   r   CategoricalDtyper   r   )arrsr   r   r  r   s        r-   "test_dictionary_astype_categoricalr    s     	./0BBD
/*+==?D ))'(8(8(>?
@CZZ
#F.j6MNJyy+!!Z8H 68,r/   c                     t        j                  dgd      } t        j                  dgd      }t        j                  dgd      }| |z  }t        j                  ||       y )Nir   rU   r7   r=   r  )rJ   rK   r   r   s       r-   test_arrow_floordivr    sT    
		2$./A
		1#-.Ayy"%56H!VF68,r/   c                     t        j                  dgd      } t        j                  dgd      }| dz  }t        j                  ||       y )Nl     ^ \K r   rU   l    \p/i@B r  )rJ   r   r   s      r-    test_arrow_floordiv_large_valuesr    sC    
		&'/?@Ayy-0@AH)^F68,r/   r   r  c                j    t        j                  dg|       }|dz  }t        j                  ||       y )N   rU   r<   r  )r5   rJ   r   s      r-   )test_arrow_floordiv_large_integral_resultr    s1     			$%U3A!VF61%r/   c                    t        |       }t        j                  dg|      }|dz  }t        j                  dg|      }t        j                  ||       y )NirU      r>   )r   rc   r   r   r   )r   r5   rJ   r   r   s        r-   "test_arrow_floordiv_larger_divisorr    sK     wE
		3%u%A"WFyy"U+H68,r/   c                   t        j                  | j                               j                  }t	        j
                  |gt        |             }t        j                  t        j                  j                  d      5  |dz   d d d        t        j                  t        j                  j                  d      5  |dz   d d d        y # 1 sw Y   GxY w# 1 sw Y   y xY w)NrU   zoverflow|not in ranger   r>   zdivide by zeror   )r   iinfor  r  rc   r   r   r&   r$   r)   r   r*   )r   	min_valuerJ   s      r-   $test_arrow_floordiv_integral_invalidr    s     002377I
		9+Z%89A	rvv**2I	J 	R	rvv**2B	C 	Q   s   >C
;C
CCc                    t        j                  dg|       }|dz  }t        j                  t        d      g|       }t        j                  ||       y )Nr@   rU   r   inf)rc   r   rd  r   r   )r5   rJ   r   r   s       r-   &test_arrow_floordiv_floating_0_divisorr    sE     			1#U#A!VFyy%,u5H68,r/   )r   r  r$  c                    t        j                  dd gd      }|j                  |       }t        j                  dd g|       }t        j                  ||       y )Nr<   r   rU   rW  r  s       r-   (test_astype_int_with_null_to_numpy_dtyper    sK     ))QI%5
6CZZFyy!T%0H68,r/   c                
   t        j                  | j                               j                  }t	        |       }t        j                  |g|      }t        j                  dg|      }||z  }t        j                  ||       y )NrU   r<   )	r   r  r  r  r   rc   r   r   r   )r   	max_valuer5   rJ   rK   r   s         r-   )test_arrow_integral_floordiv_large_valuesr    sh     002377IwE
		9+U+A
		1#U#A!VF61%r/   c                    t        j                  dg|       }t        j                  dg|       }t        j                  dgd      }||z  }t        j                  ||       y )Nr   rU   r  r  r  r5   rJ   rK   r   r   s        r-   &test_arrow_true_division_large_divisorr     sV     			1#U#A
		$%U3Ayy!$67HUF68,r/   c                    t        j                  dg|       }t        j                  dg|       }t        j                  dg|       }||z  }t        j                  ||       y )Nr   rU   r  r  r  s        r-   'test_arrow_floor_division_large_divisorr  
  sU     			1#U#A
		$%U3Ayy!E*H!VF68,r/   c            	         g d} t        j                  | d      }t        j                  t        t        j	                  t        j
                  |       d                  }t        j                  ||       y )N)2020-01-01 04:30:00z2020-01-02 00:00:00z2020-01-03 00:00:00timestamp[ns][pyarrow]rU   Tfrom_pandas)rc   r   r    r)   rd   rs  r   r   )string_datesr   r   s      r-   $test_string_to_datetime_parsing_castr    sV    XLYY|+CDFyyBHHR^^L%AtHTUH 68,r/   c                     dg} t        j                  | d      }t        j                  t        t        j	                  t        dddd      gd	                  }t        j                  ||       y )
Nz11:41:43.076160ztime64[us][pyarrow]rU   r  )   +   i) Tr  )rc   r   r    r)   rd   r   r   r   )string_timesr   r   s      r-    test_string_to_time_parsing_castr    s^    %&LYY|+@AFyyBHHd2r2u&=%>DHQRH 68,r/   c                     t        j                  g dd      } | j                  d      }t        j                  ddt        j                  gd      }t        j                  ||       y )Nr   (   Nr\  rU   r   r   r  )rc   r   r   r   r   r   r   rX  s      r-   test_to_numpy_floatr  (  sL    
))N*:
;CZZ	"Fyy"b"&&);H68,r/   c                     t        j                  dgd      } | j                  t        j                        }t        j
                  dg      }t        j                  ||       y )Nr  r  rU   l    P)#-/ )rc   r   r   r   r  rd   r   r   rX  s      r-   test_to_numpy_timestamp_to_intr  0  sM    
))*+3K
LC\\\)Fxx,-.H1r/   c                     t        j                  g dd      } | j                  d d      }t        j                  ddt        j                  gd      }t        j                  ||       y )	Nr  r   rU   c                     y)N*   r   r   s    r-   r   z,test_map_numeric_na_action.<locals>.<lambda>:  s    r/   r   r   g      E@r   )rc   r   r   r   r   r   r   rX  s      r-   test_map_numeric_na_actionr  8  sP    
))N*:
;CWW\XW6Fyy$bff-Y?H68,r/   (  r  
__future__r   r   r   r   r   decimalr   ior	   r
   r  rI  r&  numpyr   r&   pandas._libsr   pandas._libs.tslibsr   pandas.compatr   r   r   r   r   r   r   pandas.util._test_decoratorsutil_test_decoratorsr  pandas.core.dtypes.dtypesr   r   pandasrc   pandas._testing_testingr   pandas.api.extensionsr   pandas.api.typesr   r   r   r   r   r   r   pandas.tests.extensionr   importorskipr)   pandas.core.arrays.arrow.arrayr    (pandas.core.arrays.arrow.extension_typesr!   r.   fixtureALL_PYARROW_DTYPESrV  r5   rf   rk   rm   rt   rx   r{   r   ExtensionTestsr   r  r'   r  ALL_INT_PYARROW_DTYPESr  r  r  r  r  r  r!  r*  r-  r	  byteslarge_binarylarge_stringrE  r  r`  
large_listmap_r   structr  dictr  r4  r;  r>  r@  rB  rD  rF  rP  rT  rY  r^  rb  re  r   rj  rm  rp  ru  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  compiler  r  r  r  r  r  r  r  r  r  r  r  r(   r  r  r  r  r  r  r$  r&  r/  r5  r:  rB  rF  rJ  rP  rS  rX  r[  r^  re  rl  rz  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r!  r'  r-  r/  r<  r?  rA  rC  rL  rQ  rS  rX  FLOAT_PYARROW_DTYPESrb  TIMEDELTA_PYARROW_DTYPESrg  DATETIME_PYARROW_DTYPESrj  rl  rq  rx  r~  r  r  r  r  r  r  r  ro  r   r  r  r  r  r  r  r  r  r  r  r  r  SIGNED_INT_PYARROW_DTYPESr  r  FLOAT_PYARROW_DTYPES_STR_REPRr  r  r  r  r  r  r  r  r  r  r   r/   r-   <module>r     sT   #     	    )   * )
   ,   (V# > D	" r,,#63 73 8' 8'v H H
 /0 1 7A 7At 
 
 
 
  [1T(( [1|^1 ^1B B$=$=>- ?-0C+57 I cC:%67F1 8F1R 1a&!$6#<=	}%  
-
-	-  	e	2		E"		C 	"((*	t$	rxxz	"D)	bhhj	)40	T2779%biik':;	<dC	rxxz288:	.0DE
99-
**13(; 2-,2&2 #.."&&)A6(JK2 L22
26..-Q-",  45- 6-& (7G*<vx>PQ--# 	udED$<0	tT55$-0	udED$<0	eT4$6	dD$6	-	-' 	tT#67	sE#89	S$ 45	T4!45	.@A	_d,>?	r4!56	R34	-- !;<- =- ZRZZ_}vuo|L"	" 	c2uvtn-	c1efd^,	#r4&$0---- 	udT4L)	tTE4=)	tTE4=)	udT4L)	eTD$<0	dD5$-0
-
- 	t67	d78	tT67	ud56	eT#<=	dD"=>	89	5$ :;	t89	4:; -! - #
AtaY
+dAq1d)RXXZ-PQ-	--$ 	
		
		
	-	- J  -	-- 	q$t%	q!dD\"	
Aq4,-- 	
AsVTN#	q#t}%	q$t%--  ! !!" !"#%& !%.-/.- 	y!	)	Y	)	)	Y
-
--    
-
- 5 12- 3- 5 12- 3- Hh#78		LM- 9- 1a&)- *- GX#67	
D		
A4 84 %1- 2- 	
D		
A----,-. Hg#67- 8-%,P,D% D%=1	, 2	,- !896 :6 		
		a	A		a		1			!	q	A	1	dAq!"	aAq!"#,--,-6-&-&-& O]#CD- E--. $.- /- :;0 <0, Z*\9,EF--- #=>	9 ?	9 #=>	& ?	& !IJ#=>- ? K-2$ r2h/	# 0	#	5
- $.- /-  	(A2AFG	<2<<(GHI--!
- $.
- /
- #;=T"UV- W- 		A			--*-*2,> D%=1 2Q$- 8->"?@* A*0 (/ 
r()
sR__&'66, B$=$=@W@W$WX	- Y	- B$?$?@	- A	- B$>$>?- @-  r))B,G,GGG-; r))B,G,GG66 r))B,G,GG66  r))B,G,GG66 r))B,G,GG66 r))B,G,GG  r))B,G,GG(- r))B,G,GGT   4.12 222	,- B$?$?@- A-
4- -- #35F"GH& I& B$@$@A- B- B$@$@A B ""B"BC- D- "RS- T- B$=$=>& ?& #35F"GH- I- #35F"GH- I----2-r/   