
    I jT                        S 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  \R                  S 5       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\R8                  R;                  S\R<                  \R>                  " S5      \ " S5      S\	RB                  /5      S 5       r"\R8                  R;                  SSS/5      S 5       r#S r$S r%S r&S r'S r(\R8                  R;                  SSS/5      S  5       r)\R8                  R;                  S!S"S#/5      S$ 5       r*\R8                  R;                  S!S"S#/5      \R8                  R;                  S%\	RV                  \	RX                  /5      S& 5       5       r-S' r.S( r/\R8                  Ra                  S)5      S* 5       r1\R8                  Ra                  S)5      S+ 5       r2\R8                  Ra                  S)5      S, 5       r3S- r4S. r5S/ r6S0 r7\R8                  R;                  S1\Rp                  \Rr                  \R>                  /5      S2 5       r:S3 r;S4 r<S5 r=S6 r>S7 r?S8 r@S9 rAS: rBS; rCS< rD\R8                  R;                  S%\	RV                  \	RX                  /5      S= 5       rE\R8                  R;                  S%\	RV                  \	RX                  /5      S> 5       rFg)?z
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_under19p0)is_dtype_equal)ArrowStringArrayc                 2    U u  p[         R                  " XS9$ )zKFixture giving StringDtype from parametrized storage and na_value argumentsstoragena_valuepdStringDtype)string_dtype_argumentsr   r	   s      x/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/pandas/tests/arrays/string_/test_string.pydtyper      s     /G>>'==    c                 2    U u  p[         R                  " XS9$ )Nr   r
   )string_dtype_arguments2r   r	   s      r   dtype2r      s    /G>>'==r   c                 "    U R                  5       $ )z3Fixture giving array type from parametrized 'dtype')construct_array_typer   s    r   clsr   !   s     %%''r   c                  `   [         R                  " S5        [        R                  " S5      n [        R                  " S5      n[        R                  " S[        R
                  S9nU [        R                  " S[        R                  S9:X  d   eX:w  d   eX:w  d   eU[        R                  " S[        R                  S9:X  d   eX:w  d   eX:w  d   eU[        R                  " S[        R
                  S9:X  d   eU[        R                  " S[        S5      S9:X  d   eX :w  d   eX!:w  d   eg )Npyarrowpythonr	   nan)pytestimportorskipr   r   npr   NAfloat)dtype1r   dtype3s      r   test_dtype_equalityr$   '   s    
	"^^H%F^^I&F^^I7FR^^Hruu====R^^I>>>>R^^I????R^^IeEEEEr   c                    [         R                  " S[         R                  " S[         R                  S/U S905      nU R                  [
        R                  L a  SnOSn[        U5      U:X  d   eU R                  [
        R                  L a  SnOSn[        UR                  5      U:X  d   eU R                  S	:X  a&  U R                  [         R                  L a	  S
nSU S3nOtU R                  S	:X  a&  U R                  [
        R                  L a	  S
nSU S3nO>U R                  S:X  a&  U R                  [
        R                  L 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   z     A
0    a
1  NaN
2    bz      A
0     a
1  <NA>
2     bz.0      a
1    NaN
2      b
Name: A, dtype: strz40       a
1    <NA>
2       b
Name: A, dtype: stringr   r   <z+>
['a', <NA>, 'b']
Length: 3, dtype: stringz'>
['a', nan, 'b']
Length: 3, dtype: strr   StringArray)
r   	DataFramearrayr    r	   r   r   reprr&   r   )r   dfexpectedarr_names       r   	test_reprr1   <   sC   	sBHHc255#%6eDE	FB~~378x~~FL:!!!}}	!enn&=%xj MN	)	#"&&(@%xj IJ	(	"u~~'? xj IJ xj MN

x'''r   c                 &   U R                   S:X  aA  U R                  [        R                  L a  [	        U 5      S:X  d   eg [	        U 5      S:X  d   eg U R                  [        R                  L a  [	        U 5      S:X  d   eg [	        U 5      S:X  d   eg )Nr   z<StringDtype(na_value=<NA>)>z<StringDtype(na_value=nan)>z.<StringDtype(storage='python', na_value=<NA>)>z-<StringDtype(storage='python', na_value=nan)>)r   r	   r   r    r-   r   s    r   test_dtype_reprr3   Y   sz    }}	!>>RUU";"@@@@;"????	255	 E{NNNNE{MMMMr   c                 t    U R                  / SQUS9nUS   c   eUS   UR                  R                  L d   eg )N)r'   Nr(   r      )_from_sequencer   r	   )r   r   r'   s      r   test_none_to_nanr7   e   sD    +59AQ4Q4177#####r   c                 <   U R                  SS/US9nSn[        R                  " [        US9   SUS'   S S S 5        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   z!Invalid value '10' for dtype 'strmatch
   r   zInvalid value for dtype 'strr5      )r6   r   raises	TypeErrorr   r,   )r   r   arrmsgs       r   test_setitem_validatesrA   k   s    


c3Zu

5C
-C	y	,A 
- )C	y	,1a&!A 
-	,	 
-	, 
-	,s   A<B<
B

B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   r?   r/   s      r   test_setitem_with_scalar_stringrG   w   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(   rC   r   r&   r   r5   rC   )r   r,   r   copyr    rE   rF   assert_numpy_array_equal)r   r?   value
value_origr/   s        r   $test_setitem_with_array_with_missingrN      ss     ((?%
0CHHc4[!EJAKxxbeeS)7H##C22r   c                    [         R                  " [         R                  " S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   ns)periodsunitr   zdatetime64[ns])	r   Series
date_rangeastyper   r   rE   assert_series_equaliloc)r   sercastedresultser2casted2result2s          r   test_astype_roundtripra      s    
))BMM&"4@
ACCFZZF&,,....]]+,F6' "Dkk% G'--////nnTZZ(G7)r   c           
         U [         R                  R                  L a  SnS[         R                  " 5       0nOSn0 n[        R
                  " [        US9   U " [        R                  " SS/SS940 UD6  S S S 5        [        R
                  " [        US9   U " [        R                  " / 5      40 UD6  S S S 5        U [         R                  R                  L aS  U " [        R                  " S[        R                  /[        S940 UD6  U " [        R                  " SS /[        S940 UD6  O[        R
                  " [        US9   U " [        R                  " S[        R                  /[        S940 UD6  S S S 5        [        R
                  " [        US9   U " [        R                  " SS /[        S940 UD6  S S S 5        [        R
                  " [        US9   U " [        R                  " S[         R                  /[        S940 UD6  S S S 5        [        R
                  " [        US9   U " [        R                  " S[        R                  " S	S
5      /[        S940 UD6  S S S 5        [        R
                  " [        US9   U " [        R                  " S[        R                  " S	S
5      /[        S940 UD6  S S S 5        g ! , (       d  f       GNY= f! , (       d  f       GN,= f! , (       d  f       GN|= f! , (       d  f       GNJ= f! , (       d  f       GN
= f! , (       d  f       N= f! , (       d  f       g = f)Nz7StringArray requires a sequence of strings or pandas.NAr   zBUnsupported type '<class 'numpy.ndarray'>' for ArrowExtensionArrayr9   r'   r(   S1r   NaTrR   )r   arraysr*   r   r   r=   
ValueErrorr   r,   r   objectrd   
datetime64timedelta64)r   r@   kwargss      r   test_constructor_raisesrk      s0   
bii###G2>>+,R	z	-BHHc3Zt,77 
. 
z	-BHHRL#F# 
. bii### 	BHHc266]&1<V<BHHc4[/:6:]]:S1#rvvf5@@ 2]]:S1#tF3>v> 2 
z	-BHHc266]&1<V< 
. 
z	-BHHc2==56fEPP 
. 
z	-BHHc2>>%67vFQ&Q 
.	-/ 
.	- 
.	- 2111 
.	- 
.	- 
.	-sT   KK1K*#K<1L,8L 8L1
K
K'*
K9<
L
L 
L.1
L?nar   c                 f   [         R                  R                  [        R                  " S[         R
                  /5      [         R                  " 5       S9n[         R                  R                  [        R                  " SU /SS9[         R                  " 5       S9n[        R                  " X!5        g )Nr'   r   rg   )	r   re   r*   r   r,   r    r   rE   rF   )rl   r/   r]   s      r   test_constructor_nan_likern      sw    yy$$RXXsBEEl%;2>>CS$THYY""
#r(+2>>3C # F ##F5r   rJ   TFc                    [         R                  " S[         R                  /[        S9nUR	                  5       n[         R                  " S[
        R                  /[        S9nUR                  X2U S9nU[        L a(  SS K	nU" UR                  XWR                  5       SS9US9nO*UR                  [         R                  L a  U" X2S9nOU" XRS9n[        R                  " Xh5        [        R                  " X45        g )Nr'   r   )r   rJ   r   Ttypefrom_pandas)r   r,   r   rg   rJ   r   r    r6   r   r   stringr	   rE   rF   rK   )	rJ   r   r   nan_arrexpected_inputna_arrr]   par/   s	            r   test_from_sequence_no_mutaterx      s    hhRVV}F3G\\^NXXsBEEl&1F4@F
HHV))+4H@
 
266	!w,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                  [        R                  L 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r5   r<      rz   r|   z#cannot convert float NaN to integerzJint\(\) argument must be a string, a bytes-like object or a( real)? numberr9   )r   r,   rX   r   rE   rK   r    r	   r   rf   r>   r   r=   )r   r?   r]   r/   errr@   s         r   test_astype_intr      s    
((?%
0CZZ Fxx	1H1
((C$E
2C~~3* 	 
s	&

7 
'	&	&s   >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 )Nrz   r|   r   Int64r5   r   )r   r,   r    rX   rE   rF   r   r?   r]   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[	        UR
                  [        R
                  5      (       a  [        R                  O[         R                  n[         R                  " SUS/US9n[        R                  " X55        g )Nz1.1z3.3r   g?gffffff
@)
r   rV   r    rX   
isinstancer   r   r   rE   rY   )r   any_float_dtyper[   r]   itemr/   s         r   test_astype_floatr      ss    
))UBEE5)
7CZZ(Fbhh77266RUUDyy#tS)AH6,r   c                 `    [         R                  " / SQUS9nUR                  U S9nUS:X  d   eg )NrI   r   skipnaabc)r   rV   sumr   r   r?   r]   s       r   test_reducer     s.    
))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(   rC   Nr   r   r   r   rV   r   isnar   s       r   test_reduce_missingr     sD    
))5U
CCWWFW#Fwwvr   	min_countr5   c                 V   [         R                  " / US9nUR                  XS9nUS:X  a	  US:X  d   eO[         R                  " U5      (       d   e[         R                  " S S /US9nUR                  XS9nU (       a  US:X  a	  US:X  d   eg [         R                  " U5      (       d   eg )Nr   )r   r   r    r   )r   r   r   r?   r]   s        r   test_reduce_emptyr     s    
))Be
$CWWFW8FA~||wwv ))T4L
.CWWFW8F)q.||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 XCR                  R                  L d   eg )Nr'   r(   rC   Nr   r   r   r'   rC   )r   rV   getattrr   r	   )r   r   r   r?   r]   r/   s         r   test_min_maxr   )  sT    
)))
7CS!0F E/3s!!!+++++r   boxc                 @   UR                   S:X  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Xx:X  d   eg )
Nr   z<'<=' not supported between instances of 'str' and 'NoneType'z0'ArrowStringArray' object has no attribute 'max')r=   reasonr   r   r   r'   rC   )
r   r   r,   r   markxfailr>   applymarkerr   r   )	r   r   r   requestr   r   r?   r]   r/   s	            r   test_min_max_numpyr   4  s     }}	!cRXXo"((?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
                  " X#5        UR                  [        R                  " S5      S9n[         R                  " SS/U S9n[        R
                  " X#5        Sn[        R                  " [        US9   UR                  SS9  S S S 5        g ! , (       d  f       g = f)Nr'   r   r(   )rL    Invalid value '1' for dtype 'strr9   r5   )r   r,   r    fillnarE   rF   r   str_r   r=   r>   )r   r?   resr/   r@   s        r   test_fillna_argsr   E  s     ((C<u
-C
**3*
Cxxc
%0H##C2
**2773<*
(Cxxc
%0H##C2
,C	y	,


 
-	,	,s   C&&
C4c                 j   [         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:X  a  UR                  XQR                  5       5      nUR                  U5      (       d   eg )Nr   r   rI   r   Trp   r   )r   r   pyarrow.computecomputer   r,   listlarge_stringr   castrs   equals)r   rw   pcdatar?   r/   s         r   test_arrow_arrayr   W  s    			Y	'B 88O51D
((4.CxxT
):xMH}} 778YY[1::hr   z0ignore:Passing a BlockManager:DeprecationWarningc                    [         R                  " S5      n[        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                  [        R                  " XR                  S	95      nU(       aA  UR                   R                  [        R                  " U["        R$                  S	95      Ul        [&        R(                  " Xx5        UR*                  S
   US   R                  R                  L d   eg ! , (       d  f       N= f)Nr   r'   r(   Nr   r'   r   rs   r   string_storager   )r<   r'   )r   r   r   r,   r+   tabler   fieldrq   option_context	to_pandasr   r   r   rX   r	   columnsr   r   rE   assert_frame_equalloc	r   r   using_infer_stringrw   r   r.   r   r]   r/   s	            r   test_arrow_roundtripr   d  sX    
		Y	'B88$E2D	sDk	"BHHRLE}} {{3$$000{{3$$666			+^	<" 
= fSk''8888yyPQH#++22NN>BFF;
 &+::f!2!2!;!;;;; 
=	<s   F??
Gc                 &   [         R                  " S5      nUR                  SUR                  / SQUR	                  5       S905      nUR                  5       nU (       d_  [        (       a  [        R                  " S/ SQ0SS9nOx[        R                  " S/ SQ0[        R                  " [        R                  S9S9nO>[        (       a  [        R                  " S/ SQ0SS9nO[        R                  " S/ SQ0SS9n[        R                  " X45        g )	Nr   r'   r   rq   rg   r   r   str)r   r   r   r,   rs   r   r   r   r+   r   r   r   rE   r   )r   rw   r   r]   r/   s        r   test_arrow_from_stringr   ~  s     
		Y	'BHHc288$4299;8GHIE__F||S*:$;8LH||&'r~~rvv/NH 
	<<&6 7xH<<&6 7uE&+r   c                    [         R                  " S5      n[        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#                  [        R                   " XR$                  S
95      nU(       aA  UR&                  R#                  [        R                   " U[(        R*                  S
95      Ul        [,        R.                  " Xx5        g ! , (       d  f       N= f)Nr   r   r'   r   rs   r   r   )schemar   r   )r   r   r   r,   r+   r   r   r   rq   chunked_arrayrs   r   r   r   r   r   r   rX   r	   r   r   r   rE   r   r   s	            r    test_arrow_load_from_zero_chunksr     s_    
		Y	'B88Be$D	sDk	"BHHRLE}} {{3$$000{{3$$666HHb&&r		&<=ellHSE			+^	<" 
= fSk''8888yyPQH#++22NN>BFF;
 &+ 
=	<s   6G		
Gc                    U R                   [        R                  L a  SnOU R                  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   int64[pyarrow]r   r'   r(   r   F)dropna)r<   r5   r5   )r   r5   r   countindexr   nameTr<   r5   )r	   r   r   r   r   r,   r    value_countsrV   rE   rY   )r   	exp_dtyper?   r]   r/   s        r   test_value_counts_nar     s    ~~		)	#$		
((Cc255)
7CU+Fyy#i.	PWXH6,T*Fyy!Qs2AwigNH6,r   c                 `   U R                   [        R                  L a  [        R                  nOU R                  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	S
/US S	 USS9S-  n[        R                  " X45        g )Nr   zdouble[pyarrow]Float64r'   r(   r   T)	normalizer<   r5   
proportionr   r   )r	   r   r   float64r   r   rV   r    r   rE   rY   r   r   r[   r]   r/   s        r    test_value_counts_with_normalizer     s    ~~JJ		)	#%		
))S#sBEE*%
8C-Fyy!Qs2AwilSVWWH6,r   c                    U R                   [        R                  L a  SnOU R                  S:X  a  SnOSn[        R
                  " / SQU S9nUR                  SS9n[        R
                  " / S	QUS S
 USS9n[        R                  " X45        g )Nr}   r   r   r   )r'   r(   rC   r(   r   F)sort)r5   r<   r5   r   r   r   )	r	   r   r   r   r   rV   r   rE   rY   r   s        r   test_value_counts_sort_falser     sy    ~~		)	#$		
))(
6C5)Fyy#bq'QH6,r   c                    U R                   S:X  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 )Nr   znot applicable for rI   r   r   T)deep)r   r   skipr   rV   nbytesmemory_usage)r   seriess     r   test_memory_usager     sr     }}	!)%--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   rV   rX   rE   rY   )r   r   r[   r]   r/   s        r   test_astype_from_float_dtyper     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 R                  S/[
        S9n[        R                  " X#5        g )Nr'   r(   r   )r   r,   r    r   r	   rg   rE   rK   r   s       r   "test_to_numpy_returns_pdna_defaultr     sS    
((C$E
2CXXc]Fxxennc2&AH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   r   )r   r,   r    to_numpyr   rg   rE   rK   )r   nulls_fixturer	   r?   r]   r/   s         r   test_to_numpy_na_valuer     sW    H
((C$E
2C\\8\,Fxxh,F;H1r   c                    [         R                  " S[         R                  S/U S9nSUl        UR	                  5       nU R
                  S:X  a  UR                  R                  (       a   eg UR                  R                  (       d   eg )Nr'   r(   r   Tr   )r   r,   r    	_readonlyr   r   flags	writeable)r   r?   r]   s      r   test_to_numpy_readonlyr     sd    
((C$E
2CCM\\^F}} <<)))))||%%%%r   c                    [         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        UR                  U/5      n[         R                  " / SQ5      n[        R                  " X45        g )Nr   r   r'   rC   TFFTFT)FFF)r   rV   isinrE   rY   r    )r   fixed_now_tssr]   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,VV\N#Fyy./H6,r   c                    [         R                  " / SQU S9nUR                  [         R                  " SS/US95      n[         R                  " / SQ5      n[        R
                  " X45        UR                  [         R                  " SS /US95      n[         R                  " / SQ5      n[        R
                  " X45        g )Nr   r   r'   rC   r   r   )r   rV   r   r,   rE   rY   )r   r   r   r]   r/   s        r   test_isin_string_arrayr     s    
		"%0AVVBHHc3Zv67Fyy-.H6,VVBHHc4[78Fyy,-H6,r   c           	      6   [         R                  " S5      n[        R                  " / SQU S9nUR	                  [        R
                  " SS/[        R                  " UR                  5       5      S95      n[        R                  " / SQ5      n[        R                  " X45        UR	                  [        R
                  " SS /[        R                  " UR                  5       5      S95      n[        R                  " / SQ5      n[        R                  " X45        g )Nr   r   r   r'   rC   r   r   )
r   r   r   rV   r   r,   
ArrowDtypers   rE   rY   )r   rw   r   r]   r/   s        r   test_isin_arrow_string_arrayr  *  s    			Y	'B
		"%0AVVBHHc3Zr}}RYY[/IJKFyy-.H6,VVBHHc4[biik0JKLFyy,-H6,r   c                 Z   [         R                  " / SQU S9n[        R                  " / SQ5      nS X'   UR                  S   UR                  R
                  L d   e[         R                  " / SQU S9nSn[        R                  " [        US9   SX'   S S S 5        g ! , (       d  f       g = f)NrI   r   )FTFr5   r   r9   )	r   rV   r   r,   r   r	   r   r=   r>   )r   r[   maskr@   s       r   (test_setitem_scalar_with_mask_validationr  7  s     ))O5
1C88()DCI99Q<399----- ))O5
1C
,C	y	,	 
-	,	,s   B
B*c                     / SQn[         R                  " U[         R                  S9n[        R                  " X S9n[        R                  " XS9n[        R
                  " X45        g NrI   r   )r   r,   r   r   rE   rF   r   valsr?   r]   r/   s        r   test_from_numpy_strr
  H  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,   tolistrE   assert_equalr  s        r   test_tolistr  P  s1    D
((4
%CZZ\FHOOF%r   c                      [         R                  " / SQSS9n [        R                  " [        SS9   U R                  S5        S S S 5        g ! , (       d  f       g = f)NrI   rs   r   z)Cannot change data-type for string array.r9   i8)r   r,   r   r=   r>   view)r?   s    r   !test_string_array_view_type_errorr  X  s9    
((?(
3C	y(S	T 
U	T	Ts   A
Ac                 2   U" / SQU S9n[         R                  " S SS5      nU" U5      nU[        R                  L a  [        R                  O[         R                  nU" / SQ[
        S9n[        R                  " XF5        [         R                  " S SS5      nU" U5      nU" / SQU S9nU R                  S:X  aG  U[        R                  L a  [         R                  " / SQ[
        S9nO[        R                  " / SQ5      n[        R                  " XF5        g )	Nr'   bbcccr   c                     [        U 5      $ )N)lenxs    r   <lambda>(test_numpy_array_ufunc.<locals>.<lambda>c  s    CFr   r5   r~   c                     U S-  $ )Nr<    r  s    r   r  r  k  s    Qr   )aabbbbccccccr   )	r   
frompyfuncr   rV   r,   rg   rE   r  r   )r   r   r?   str_len_ufuncr]   expected_clsr/   str_multiply_ufuncs           r   test_numpy_array_ufuncr&  ^  s    
 
.C MM"2Aq9M3F #ryy 0299bhhLIV4HOOF% 1=$F+59H}}	!"((?xx 8GH yy!9:HOOF%r   c                     U" / SQU S9n[         R                  R                  S5      nUR                  U5      n[	        U[         R
                  5      (       d   e[        UR                  5       5      / SQ:X  d   eg )Nr  r   r<   )r   randomdefault_rngpermutationr   ndarraysortedr  )r   r   r?   rngr]   s        r   test_numpy_random_permuter.  y  sd      
.C
))


"C__S!Ffbjj))))&--/"&8888r   )G__doc__numpyr   r   pandas.compat.pyarrowr   pandas.core.dtypes.commonr   pandasr   pandas._testing_testingrE   pandas.core.arrays.string_arrowr   fixturer   r   r   r$   r1   r3   r7   rA   rG   rN   ra   rk   r   parametrizer   r   r!   r    rn   rx   r   r   r   r   r   r   r   rV   r,   r   r   r   filterwarningsr   r   r   r   r   r   r   float16float32r   r   r   r   r   r   r  r  r
  r  r  r&  r.  r  r   r   <module>r<     s!  
   6 4  
 > > > >
 ( (
*(:	N$	"3
3*& RF 

5(95<ruuUV6 W6 $/9 09,(6- q!f- ." E5>2, 3, E5>2BHH 56 7 3$
  NO< P<2 NO, P,* NO, P,2-"
-
-W RZZ(LM- N-22&-0	-
-"6& BHH 56& 7&4 BHH 569 79r   