
    Mh]              	          S r SSKrSSKrSSKrSSKJr  SSKJr  SSK	r
SSKJr  SSKJrJr  S r\R$                  S 5       r\R$                  S 5       rS	 rS
 rS rS rS rS rS rS rS rS r\R>                  RA                  SS9S 5       r!\R>                  RA                  SS9S 5       r"S r#S r$S r%S r&S r'\R>                  RQ                  S\RR                  \RT                  " S5      \+" S5      S\
RX                  /5      S 5       r-\R>                  RQ                  SS S!/5      S" 5       r.S# r/S$ r0S% r1\R>                  RQ                  S&S S!/5      \R>                  RA                  S'S9S( 5       5       r2\R>                  RQ                  S&S S!/5      \R>                  RA                  S'S9S) 5       5       r3\R>                  RQ                  S*S+S,/5      \R>                  RQ                  S&S S!/5      S- 5       5       r4\R>                  RQ                  S*S+S,/5      \R>                  RQ                  S.\
Rj                  \
Rl                  /5      S/ 5       5       r7S0 r8S1 r9\R>                  Ru                  S25      S3 5       r;\R>                  Ru                  S25      S4 5       r<S5 r=S6 r>\R>                  RQ                  S7/ S8Q\Rl                  " / S9Q5      4/ S:Q\Rl                  " / S;Q5      4/5      S< 5       r?S= r@\R>                  RQ                  S>\R                  \R                  \RT                  /5      S? 5       rCS@ rDSA rESB rFSC rGSD rHSE rIg)Fz
This module tests the functionality of StringArray and ArrowStringArray.
Tests for the str accessors are in pandas/tests/strings/test_string_array.py
    N)pa_version_under12p0)is_dtype_equal)ArrowStringArrayArrowStringArrayNumpySemanticsc                 b    U R                   S:X  a  [        R                  $ [        R                  $ )Npyarrow_numpy)storagenpnanpdNAdtypes    Y/var/www/html/env/lib/python3.13/site-packages/pandas/tests/arrays/string_/test_string.pyna_valr      s     }}'vvuu    c                 *    [         R                  " U S9$ )z=Fixture giving StringDtype from parametrized 'string_storage')r	   )r   StringDtype)string_storages    r   r   r      s     >>.11r   c                 "    U R                  5       $ )z3Fixture giving array type from parametrized 'dtype')construct_array_typer   s    r   clsr   #   s     %%''r   c                    [         R                  " S[         R                  " S[         R                  S/U S905      nU R                  S:X  a  SnOSn[        U5      U:X  d   eU R                  S:X  a  SnOS	n[        UR                  5      U:X  d   eU R                  S
:X  a	  SnSU S3nO!U R                  S:X  a	  SnSU S3nOSnSU S3n[        UR                  R                  5      U:X  d   eg )NAabr   r   z     A
0    a
1  NaN
2    bz      A
0     a
1  <NA>
2     bz10      a
1    NaN
2      b
Name: A, dtype: stringz40       a
1    <NA>
2       b
Name: A, dtype: stringpyarrowr   <z+>
['a', <NA>, 'b']
Length: 3, dtype: stringr   z*>
['a', nan, 'b']
Length: 3, dtype: stringStringArray)r   	DataFramearrayr   r	   reprr   )r   dfexpectedarr_names       r   	test_reprr&   )   s    	sBHHc255#%6eDE	FB}}'378x}}'IL:!!!}}	!%xj MN	/	)3xj LM xj MN

x'''r   c                 r    U R                  / SQUS9nUS   c   eUS   [        UR                  5      L d   eg )N)r   Nr   r      )_from_sequencer   r   )r   r   r   s      r   test_none_to_nanr*   C   sB    +59AQ4Q46!''?"""r   c                    U R                  SS/US9nU [        R                  R                  L a  SnOSn[        R
                  " [        US9   SUS'   S S S 5        U [        R                  R                  L a  S	nOSn[        R
                  " [        US9   [        R                  " S
S/5      US S & S S S 5        g ! , (       d  f       Nn= f! , (       d  f       g = f)Nr   r   r   z4Cannot set non-string value '10' into a StringArray.Scalar must be NA or strmatch
   r   zMust provide strings.r(      )	r)   r   arraysr   pytestraises	TypeErrorr
   r!   )r   r   arrmsgs       r   test_setitem_validatesr7   I   s    


c3Zu

5C
bii###D(	y	,A 
- bii###%(	y	,1a&!A 
-	, 
-	, 
-	,s   B<C<
C

Cc                     [         R                  " SS/U S9nSUS'   [         R                  " SS/U S9n[        R                  " X5        g )Nr   cr   dr   r   r!   tmassert_extension_array_equal)r   r5   r$   s      r   test_setitem_with_scalar_stringr>   [   sC     ((C:U
+CCFxxc
%0H##C2r   c                 2   [         R                  " / SQU S9n[        R                  " SS /5      nUR                  5       nX!SS/'   [         R                  " S[         R                  S/U S9n[
        R                  " X5        [
        R                  " X#5        g )Nr   r   r9   r   r   r   r(   r9   )r   r!   r
   copyr   r<   r=   assert_numpy_array_equal)r   r5   value
value_origr$   s        r   $test_setitem_with_array_with_missingrE   d   ss     ((?%
0CHHc4[!EJAKxxbeeS)7H##C22r   c                    [         R                  " [         R                  " SSS95      nS US'   UR                  U 5      n[	        UR
                  U 5      (       d   eUR                  S5      n[        R                  " X15        XR                  S   -
  nUR                  U 5      n[	        UR
                  U 5      (       d   eUR                  UR
                  5      n[        R                  " Xd5        g )N2000   )periodsr   zdatetime64[ns])	r   Series
date_rangeastyper   r   r<   assert_series_equaliloc)r   sercastedresultser2casted2result2s          r   test_astype_roundtriprV   q   s    
))BMM&"5
6CCFZZF&,,....]]+,F6' "Dkk% G'--////nnTZZ(G7)r   c                    [         R                  " / SQU S9n[         R                  " / SQU S9nX-   n[         R                  " / SQU S9n[        R                  " X45        UR	                  U5      n[        R                  " X45        UR                  U5      n[         R                  " / SQU S9n[        R                  " X45        UR	                  USS9n[         R                  " / SQU S9n[        R                  " X45        g )	N)r   r   r9   NNr   )xyNzN)axbyNNN)xaybNNN-)
fill_value)r[   r\   zc-z-zN)r   rK   r<   rN   addradd)r   r   r   rR   r$   s        r   test_addrc      s    
		-U;A
		-U;AUFyy7uEH6,UU1XF6,VVAYFyy7uEH6,UU1U%Fyy7uEH6,r   c                    U R                   U;   a1  Sn[        R                  R                  S US9nUR	                  U5        [
        R                  " / SQU S9n[        R                  " / SQ/[        S9n[        R                  " [        SS9   XV-     S S S 5        [
        R                  " U5      n[        R                  " [        SS9   Xv-     S S S 5        g ! , (       d  f       NK= f! , (       d  f       g = f)Nz*Failed: DID NOT RAISE <class 'ValueError'>r3   reasonr@   r   z3 != 1r-   )r	   r2   markxfailapplymarkerr   r!   r
   objectr3   
ValueErrorrK   )r   requestarrow_string_storagerf   rg   r   r   ss           r   test_add_2dro      s    }},,={{  V <D!
.A
/"&1A	z	2	 
3 			!A	z	2	 
3	2	 
3	2 
3	2s   C
C)
C&)
C7c                     [         R                  " / SQU S9n/ SQnX-   n[         R                  " / SQU S9n[        R                  " X45        X!-   n[         R                  " / SQU S9n[        R                  " X45        g )N)r   r   NNr   )rX   NrY   N)r[   NNN)r]   NNNr;   )r   r   otherrR   r$   s        r   test_add_sequencerr      sd    
'u5A"EYFxx0>H##F5YFxx0>H##F5r   c                     [         R                  " / SQU S9nUS-  n[         R                  " / SQU S9n[        R                  " X#5        SU-  n[        R                  " X#5        g )Nr   r   Nr   r0   )aabbNr;   )r   r   rR   r$   s       r   test_mulrw      sR    
!/AUFxx*%8H##F5UF##F5r   zGH-28527rf   c                    [         R                  " / SQU S9n[         R                  " / SQ/[        S9nUR	                  U5      [
        L d   eX-   n[         R                  " / SQ/5      R                  U 5      n[        R                  " X45        X!-   n[         R                  " / SQ/5      R                  U 5      n[        R                  " X45        g )N)r   r   r9   r:   r   )trY   vw)atr\   cvdw)tar^   vcwd)	r   r!   r    rj   __add__NotImplementedrM   r<   assert_frame_equalr   r5   r#   rR   r$   s        r   test_add_stringsr      s    
(('u
5C	+,F	;B;;r?n,,,XF||567>>uEH&+XF||567>>uEH&+r   c                    [         R                  " SS[        R                  [        R                  /U S9n[         R                  " S[        R                  S[        R                  //5      nUR                  U5      [        L d   eX-   n[         R                  " S[        R                  [        R                  [        R                  //5      R                  U 5      n[        R                  " X45        X!-   n[         R                  " S[        R                  [        R                  [        R                  //5      R                  U 5      n[        R                  " X45        g )Nr   r   r   rX   rY   r[   r]   )
r   r!   r
   r   r    r   r   rM   r<   r   r   s        r   test_add_framer      s    
((Cbffbff-U
;C	RVVS"&&12	3B;;r?n,,,XF||dBFFBFFBFF;<=DDUKH&+XF||dBFFBFFBFF;<=DDUKH&+r   c           	         SU R                    S3n[        R                  " / SQUS9nSn[        X25      " U5      nUR                  S:X  a  [
        R                  " U Vs/ s H  n[        Xb5      " U5      PM     sn5      nU [        R                  :X  a  SUS'   OSUS'   [        R                  " XWR                  [
        R                  5      5        g UR                  S	:X  a  S
OSn[
        R                  " U Vs/ s H  n[        Xb5      " U5      PM     sn[        S9n[        R                  " XxS9n[        R                  " XW5        g s  snf s  snf )N__r   Nr9   r   r   r   Tr(   Fr   boolean[pyarrow]boolean)__name__r   r!   getattrr	   r
   operatorner<   rB   rM   bool_rj   r=   )	comparison_opr   op_namer   rq   rR   itemr$   expected_dtypes	            r   test_comparison_methods_scalarr      s   =))*"-G
!/AEQ 'F}}'88qIqtWT3E:qIJHKK'HQKHQK
##FOOBHH,EF/4}}	/I+y88qIqtWT3E:qIQWX88H;
''9 J Js   E<Ec                    SU R                    S3n[        R                  " / SQUS9n[        X25      " [        R                  5      nUR
                  S:X  a\  [        R                  U :X  a  [        R                  " / SQ5      nO[        R                  " / SQ5      n[        R                  " XE5        g UR
                  S:X  a  SOS	n[        R                  " / S
QUS9n[        R                  " XE5        [        R                  " XE5        g )Nr   r   r   r   TTTFFFr   r   r   NNN)r   r   r!   r   r   r	   r   r   r
   r<   rB   r=   )r   r   r   r   rR   r$   r   s          r   $test_comparison_methods_scalar_pd_nar      s    =))*"-G
!/AQ 'F}}';;-'xx 23Hxx 56H
##F5/4}}	/I+y88.nE
''9
''9r   c                 4   SU R                    S3n[        R                  " / SQUS9nSnUS;  a4  [        R                  " [
        SS9   [        X25      " U5        S S S 5        g [        X25      " U5      nUR                  S:X  a9  / S	Q/ S
QS.U   n[        R                  " U5      n[        R                  " XW5        g / SQ/ SQS.U   nUR                  S:X  a  SOSn[        R                  " XhS9n[        R                  " XW5        g ! , (       d  f       g = f)Nr   r   r   *   )__eq____ne__z(Invalid comparison|not supported betweenr-   r   r   r   )FNF)TNTr   r   r   )r   r   r!   r2   r3   r4   r   r	   r
   r<   rB   r=   )	r   r   r   r   rq   rR   expected_datar$   r   s	            r   )test_comparison_methods_scalar_not_stringr     s    =))*"-G
!/AE**]]9,VWA& X 	Q 'F}}'+(
  88M*
##F5#7CUV
 05}}	/I+y88M@
''9) XW 	s   	D		
Dc                    SU R                    S3n[        R                  " / SQUS9n/ SQn[        X25      " U5      nUR                  S:X  a  [
        R                  U :X  a  [        R                  " / SQ5      nO3[        R                  " / SQ5      n[        US   U5      " US   5      US'   [        R                  " XV5        [        X25      " [        R                  5      n[
        R                  U :X  a  [        R                  " / S	Q5      nO[        R                  " / SQ5      n[        R                  " XV5        g UR                  S
:X  a  SOSn[        R                  " [        U5      S SS9n[        US   U5      " US   5      US'   [        R                  " XgS9n[        R                  " XV5        [        X25      " [        R                  5      n[        R                  " / SQUS9n[        R                  " XV5        g )Nr   r   r   )NNr9   r   )TTFr   rJ   r   r   r   r   rj   )r`   r   r   )r   r   r!   r   r	   r   r   r
   r<   rB   r   fulllenr=   )r   r   r   r   rq   rR   r$   r   s           r   test_comparison_methods_arrayr   !  s~   =))*"-G
!/AEQ 'F}}';;-'xx 34Hxx 56H"59g6qu=HRL
##F5$RUU+;;-'xx 23Hxx 56H
##F5 05}}	/I+y773q6d(CuRy'21R5988H;
''9$RUU+88.nE
''9r   c           
      @   U [         R                  R                  L a  SnOSn[        R                  " [
        US9   U " [        R                  " SS/SS95        S S S 5        [        R                  " [
        US9   U " [        R                  " / 5      5        S S S 5        U [         R                  R                  L aQ  U " [        R                  " S[        R                  /[        S95        U " [        R                  " SS /[        S95        O[        R                  " [
        US9   U " [        R                  " S[        R                  /[        S95        S S S 5        [        R                  " [
        US9   U " [        R                  " SS /[        S95        S S S 5        [        R                  " [
        US9   U " [        R                  " S[         R                  /[        S95        S S S 5        [        R                  " [
        US9   U " [        R                  " S[        R                  " SS	5      /[        S95        S S S 5        [        R                  " [
        US9   U " [        R                  " S[        R                  " SS	5      /[        S95        S S S 5        g ! , (       d  f       GNQ= f! , (       d  f       GN%= f! , (       d  f       GNx= f! , (       d  f       GNG= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       g = f)
Nz7StringArray requires a sequence of strings or pandas.NAzBUnsupported type '<class 'numpy.ndarray'>' for ArrowExtensionArrayr-   r   r   S1r   NaTns)r   r1   r   r2   r3   rk   r
   r!   r   rj   r   
datetime64timedelta64)r   r6   s     r   test_constructor_raisesr   B  s   
bii###GR	z	-BHHc3Zt,- 
. 
z	-BHHRL 
. bii### 	BHHc266]&12BHHc4[/0]]:S1#rvvf56 2]]:S1#tF34 2 
z	-BHHc266]&12 
. 
z	-BHHc2==56fEF 
. 
z	-BHHc2>>%67vFG 
.	-/ 
.	- 
.	- 2111 
.	- 
.	- 
.	-sS   J$;J6'0K8"K;0K,7K>$7L$
J36
K
K
K),
K;>
L
Lnar   c           	         [         R                  R                  [        R                  " S[         R
                  /5      5      n[        R                  " [         R                  R                  [        R                  " SU /SS95      U5        g )Nr   rj   r   )r   r1   r   r
   r!   r   r<   r=   )r   r$   s     r   test_constructor_nan_liker   c  sX    yy$$RXXsBEEl%;<H##
		bhhRyABHr   rA   TFc                    [         R                  " S[         R                  /[        S9nUR	                  5       n[         R                  " S[
        R                  /[        S9nUR                  X2U S9nU[        [        4;   a)  SS K
nU" UR                  XWR                  5       SS95      nOU" U5      n[        R                  " Xh5        [        R                  " X45        g )Nr   r   )r   rA   r   Ttypefrom_pandas)r
   r!   r   rj   rA   r   r   r)   r   r   r   stringr<   r=   rB   )	rA   r   r   nan_arrexpected_inputna_arrrR   par$   s	            r   test_from_sequence_no_mutater   k  s    hhRVV}F3G\\^NXXsBEEl&1F4@F
!?@@rxxYY[dxKLv;##F58r   c                    [         R                  " / SQU S9nUR                  S5      n[        R                  " / SQSS9n[        R
                  " X#5        [         R                  " S[         R                  S/U S9nU R                  S:X  a	  [        nSnO[        nS	n[        R                  " XES
9   UR                  S5        S S S 5        g ! , (       d  f       g = f)N)123r   int64)r(   r0      r   r   r   z#cannot convert float NaN to integerzJint\(\) argument must be a string, a bytes-like object or a( real)? numberr-   )r   r!   rM   r
   r<   rB   r   r	   rk   r4   r2   r3   )r   r5   rR   r$   errr6   s         r   test_astype_intr   ~  s    
((?%
0CZZ Fxx	1H1
((C$E
2C}}'3* 	 
s	&

7 
'	&	&s   1C
Cc                     [         R                  " S[         R                  S/U S9nUR                  S5      n[         R                  " S[         R                  S/SS9n[        R
                  " X#5        g )Nr   r   r   Int64r(   r   )r   r!   r   rM   r<   r=   r   r5   rR   r$   s       r   test_astype_nullable_intr     sS    
((C$E
2CZZ FxxBEE1W5H##F5r   c                     [         R                  " S[         R                  S/U S9nUR                  U5      n[         R                  " S[        R
                  S/US9n[        R                  " X45        g )Nz1.1z3.3r   g?gffffff
@)r   rK   r   rM   r
   r   r<   rN   )r   any_float_dtyperP   rR   r$   s        r   test_astype_floatr     sT    
))UBEE5)
7CZZ(Fyy#rvvs+?CH6,r   skipnazNot implemented StringArray.sumc                 `    [         R                  " / SQUS9nUR                  U S9nUS:X  d   eg )Nr@   r   r   abc)r   rK   sumr   r   r5   rR   s       r   test_reducer     s0     ))O5
1CWWFW#FU??r   c                     [         R                  " / SQUS9nUR                  U S9nU (       a	  US:X  d   eg [         R                  " U5      (       d   eg )N)Nr   Nr   r9   Nr   r   r   )r   rK   r   isnar   s       r   test_reduce_missingr     sF     ))5U
CCWWFW#Fwwvr   methodminmaxc                     [         R                  " / SQUS9n[        X05      " US9nU(       a  U S:X  a  SOSnXE:X  d   eg U[        UR                  5      L d   eg )Nr   r   r9   Nr   r   r   r   r9   )r   rK   r   r   r   )r   r   r   r5   rR   r$   s         r   test_min_maxr     sW     )))
7CS!0F E/3s!!!		****r   boxc                 @   UR                   U;   a^  U[        R                  L aK  U[        R                  L a  SnOSn[        R                  R                  [        US9nUR                  U5        U" / SQUS9n[        [        U 5      " U5      nU S:X  a  SOSn	X:X  d   eg )	Nz<'<=' not supported between instances of 'str' and 'NoneType'z0'ArrowStringArray' object has no attribute 'max're   r   r   r   r   r9   )
r	   r   r!   r2   rg   rh   r4   ri   r   r
   )
r   r   r   rl   rm   rf   rg   r5   rR   r$   s
             r   test_min_max_numpyr     s     }},,"((?SFGF{{  	& AD!
#5
1CR %Fos3Hr   c                    [         R                  " S[         R                  /U S9nUR                  SS9n[         R                  " SS/U S9n[        R
                  " X45        UR                  [        R                  " S5      S9n[         R                  " SS/U S9n[        R
                  " X45        U R                  U;   a  SnOSn[        R                  " [        US9   UR                  SS9  S S S 5        g ! , (       d  f       g = f)	Nr   r   r   )rC   z"Invalid value '1' for dtype stringz3Cannot set non-string value '1' into a StringArray.r-   r(   )r   r!   r   fillnar<   r=   r
   str_r	   r2   r3   r4   )r   rm   r5   resr$   r6   s         r   test_fillna_argsr     s     ((C<u
-C
**3*
Cxxc
%0H##C2
**2773<*
(Cxxc
%0H##C2}},,2C	y	,


 
-	,	,s    C99
Dc                    [         R                  " S5      nSS KJn  [        R
                  " / SQU S9nUR                  U5      nUR                  [        U5      UR                  5       SS9nU R                  S;   a  [        (       a  UR                  U5      nU R                  S:X  a  UR                  XQR                  5       5      nUR                  U5      (       d   eg )	Nr   r   r@   r   Tr   )r   r   python)r2   importorskippyarrow.computecomputer   r!   listlarge_stringr	   r   chunked_arraycastr   equals)r   r   pcdatar5   r$   s         r   test_arrow_arrayr     s    			Y	'B 88O51D
((4.CxxT
):xMH}}449M9M##H-}} 778YY[1::hr   z0ignore:Passing a BlockManager:DeprecationWarningc                 P   [         R                  " S5      nU(       a2  US:w  a,  UR                  [         R                  R	                  SS95        [
        R                  " / SQU S9n[
        R                  " SU05      nUR                  U5      nU R                  S:X  a"  UR                  S5      R                  S	:X  d   eO!UR                  S5      R                  S
:X  d   e[
        R                  " SU5         UR                  5       nS S S 5        [        WS   R                  [
        R                   5      (       d   eUR#                  SU S35      n	[$        R&                  " X5        UR(                  S   [+        US   R                  5      L d   eg ! , (       d  f       N= f)Nr   r   1infer_string takes precedence over string storagerx   rt   r   r   r   r   r   r   string[])r0   r   )r2   r   ri   rg   rh   r   r!   r    tabler	   fieldr   option_context	to_pandas
isinstancer   r   rM   r<   r   locr   
r   string_storage2rl   using_infer_stringr   r   r#   r   rR   r$   s
             r   test_arrow_roundtripr     sV    
		Y	'Bo@KKJ  	
 88$E2D	sDk	"BHHRLE}} {{3$$000{{3$$666			+_	=" 
>fSk''8888yy7?"3156H&+::fs(9(9!:::: 
>	=s   :F
F%c                 f   [         R                  " S5      nU(       a2  US:w  a,  UR                  [         R                  R	                  SS95        [
        R                  " / U S9n[
        R                  " SU05      nUR                  U5      nU R                  S:X  a"  UR                  S5      R                  S:X  d   eO!UR                  S5      R                  S	:X  d   eUR                  UR                  / UR                  5       S
9/UR                  S9n[
        R                  " SU5         UR!                  5       nS S S 5        [#        WS   R$                  [
        R&                  5      (       d   eUR)                  SU S35      n	[*        R,                  " X5        g ! , (       d  f       Nh= f)Nr   r   r   rx   r   r   r   r   r   )r   )schemar   r   r   )r2   r   ri   rg   rh   r   r!   r    r   r	   r   r   r   r   r   r   r   r   r   r   rM   r<   r   r   s
             r    test_arrow_load_from_zero_chunksr     s^   
 
		Y	'Bo@KKJ  	
 88Be$D	sDk	"BHHRLE}} {{3$$000{{3$$666HHb&&r		&<=ellHSE			+_	=" 
>fSk''8888yy7?"3156H&+	 
>	=s   /F""
F0c                    [        U SS5      S:X  a  SnO[        U SS5      S:X  a  SnOSn[        R                  " SS	S[        R                  /U S
9nUR	                  SS9n[        R
                  " / SQU/ SQ   USS9n[        R                  " X45        UR	                  SS9n[        R
                  " SS/US S USS9n[        R                  " X45        g )Nr	    r   zint64[pyarrow]r   r   r   r   r   r   F)dropna)r0   r(   r(   )r   r(   r   countindexr   nameTr0   r(   )r   r   r!   r   value_countsrK   r<   rN   )r   	exp_dtyper5   rR   r$   s        r   test_value_counts_nar
  0  s    ui$	1$			2	&/	9		
((Cc255)
7CU+Fyy#i.	PWXH6,T*Fyy!Qs2AwigNH6,r   c                 J   [        U SS5      S:X  a  SnO$[        U SS5      S:X  a  [        R                  nOSn[        R                  " SSS[        R
                  /U S	9nUR                  S
S9n[        R                  " SS/US S USS9S-  n[        R                  " X45        g )Nr	   r  r   zdouble[pyarrow]r   Float64r   r   r   T)	normalizer0   r(   
proportionr  r   )	r   r
   float64r   rK   r   r  r<   rN   )r   r	  rP   rR   r$   s        r    test_value_counts_with_normalizer  A  s    ui$	1%			2	&/	9JJ		
))S#sBEE*%
8C-Fyy!Qs2AwilSVWWH6,r   zvalues, expectedr@   r   rt   )FFTc                    [         R                  " XS9n Sn[        R                  " [        US9   [         R
                  " SS5         U R                  5       n[        R                  " XA5        [         R                  " U 5      R                  5       n[         R                  " U5      n[        R                  " XA5        [         R                  " U 5      R                  5       n[         R                  " U5      n[        R                  " XA5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr   z"use_inf_as_na option is deprecatedr-   zmode.use_inf_as_naT)r   r!   r<   assert_produces_warningFutureWarningr   r   rB   rK   rN   r    r   )valuesr$   r   r6   rR   s        r   test_use_inf_as_nar  N  s     XXf*F
.C		#	#M	=3T:[[]F''9YYv&++-Fyy*H""64\\&)..0F||H-H!!&3 ; 
>	=:: 
>	=s$   D1CD D1 
D.	*D11
D?c                    U R                   U;   a#  [        R                  " SU R                    35        [        R                  " / SQU S9nSUR
                  s=:  a)  UR                  5       s=::  a  UR                  SS9:  d   e   eg )Nznot applicable for r@   r   r   T)deep)r	   r2   skipr   rK   nbytesmemory_usage)r   rm   seriess      r   test_memory_usager  g  ss     }},,)%--9:YYe4Fv}}V 3 3 5V8K8KQU8K8VVVVVVr   float_dtypec                     [         R                  " S/U S9nUR                  U5      n[         R                  " S/US9n[        R                  " X45        g )Ng?r   z0.1)r   rK   rM   r<   rN   )r  r   rP   rR   r$   s        r   test_astype_from_float_dtyper  r  sD     ))SE
-CZZFyy%.H6,r   c                     [         R                  " S[         R                  S/U S9n[        R                  " U5      n[        R                  " S[	        U 5      S/[
        S9n[        R                  " X#5        g )Nr   r   r   )r   r!   r   r
   r   rj   r<   rB   r   s       r   "test_to_numpy_returns_pdna_defaultr!  {  sS    
((C$E
2CXXc]FxxfUmS1@H1r   c                     Un[         R                  " S[         R                  S/U S9nUR                  US9n[        R                  " SUS/[
        S9n[        R                  " XE5        g )Nr   r   r   )na_value)r   r!   r   to_numpyr
   rj   r<   rB   )r   nulls_fixturer#  r5   rR   r$   s         r   test_to_numpy_na_valuer&    sW    H
((C$E
2C\\8\,Fxxh,F;H1r   c                 R   [         R                  " / SQU S9nUR                  SS/5      n[         R                  " / SQ5      n[        R                  " X45        UR                  S[         R
                  /5      n[         R                  " / SQ5      n[        R                  " X45        UR                  / 5      n[         R                  " / SQ5      n[        R                  " X45        UR                  SU/5      n[         R                  " / SQ5      n[        R                  " X45        g )Nrt   r   r   r9   )TFF)TFTr   )r   rK   isinr<   rN   r   )r   fixed_now_tsrn   rR   r$   s        r   	test_isinr*    s    
		"%0AVVS#JFyy-.H6,VVS"%%L!Fyy,-H6,VVBZFyy./H6,VVS,'(Fyy-.H6,r   c                    [         R                  " / SQU S9n[        R                  " / SQ5      nS X'   UR                  S   [	        UR
                  5      L d   e[         R                  " / SQU S9n[        UR                  5      [         R                  R                  L a  SnOSn[        R                  " [        US9   SX'   S S S 5        g ! , (       d  f       g = f)Nr@   r   )FTFr(   zCannot set non-string valuer,   r-   )r   rK   r
   r!   r   r   r   r1   r   r2   r3   r4   )r   rP   maskr6   s       r   (test_setitem_scalar_with_mask_validationr-    s     ))O5
1C88()DCI99Q<6#)),,,, ))O5
1CCII"))///+(	y	,	 
-	,	,s    C
Cc                     / SQn[         R                  " U[         R                  S9n[        R                  " X S9n[        R                  " XS9n[        R
                  " X45        g Nr@   r   )r
   r!   r   r   r<   r=   r   valsr5   rR   r$   s        r   test_from_numpy_strr2    sE    D
((4rww
'CXXc'Fxx*H##F5r   c                     / SQn[         R                  " XS9nUR                  5       nUn[        R                  " X45        g r/  )r   r!   tolistr<   assert_equalr0  s        r   test_tolistr6    s1    D
((4
%CZZ\FHOOF%r   )J__doc__r   numpyr
   r2   pandas.compat.pyarrowr   pandas.core.dtypes.commonr   pandasr   pandas._testing_testingr<   pandas.core.arrays.string_arrowr   r   r   fixturer   r   r&   r*   r7   r>   rE   rV   rc   ro   rr   rw   rg   rh   r   r   r   r   r   r   r   parametrizer   r  floatr   r   r   r   r   r   r   r   r   rK   r!   r   r   r   filterwarningsr   r   r
  r  r  r  float16float32r  r!  r&  r*  r-  r2  r6   r   r   <module>rF     s      6 4   2 2
 ( (
(4#"$3
3*&-( 
66 *%, &, *%, &,:&:$:<:BHB 

5(95<ruuUV W $/9 09$(6- D%=1;< = 2 D%=1;< = 2 E5>2D%=1+ 2 3+ E5>2BHH 56 7 3*  NO; P;6 NO, P,:-"
- 	"((#89:	288$89:44$W RZZ(LM- N-22-((6&r   