
    iT                        d Z ddlZddlZddlmZ ddlmZ ddlZ	ddl
mZ ddlmZ ej                  d        Zej                  d        Zej                  d        Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zej8                  j;                  dej<                   ej>                  d       e d      de	jB                  g      d        Z"ej8                  j;                  dddg      d        Z#d Z$d Z%d Z&d Z'd Z(ej8                  j;                  dddg      d         Z)ej8                  j;                  d!d"d#g      d$        Z*ej8                  j;                  d!d"d#g      ej8                  j;                  d%e	jV                  e	jX                  g      d&               Z-d' Z.d( Z/ej8                  ja                  d)      d*        Z1ej8                  ja                  d)      d+        Z2ej8                  ja                  d)      d,        Z3d- Z4d. Z5d/ Z6d0 Z7ej8                  j;                  d1ejp                  ejr                  ej>                  g      d2        Z:d3 Z;d4 Z<d5 Z=d6 Z>d7 Z?d8 Z@d9 ZAd: ZBd; ZCd< ZDej8                  j;                  d%e	jV                  e	jX                  g      d=        ZEej8                  j;                  d%e	jV                  e	jX                  g      d>        ZFy)?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                 :    | \  }}t        j                  ||      S )zKFixture giving StringDtype from parametrized storage and na_value argumentsstoragena_valuepdStringDtype)string_dtype_argumentsr   r	   s      d/app/cer_product_mecsu/.venv/lib/python3.12/site-packages/pandas/tests/arrays/string_/test_string.pydtyper      s     /GX>>'H==    c                 :    | \  }}t        j                  ||      S )Nr   r
   )string_dtype_arguments2r   r	   s      r   dtype2r      s    /GX>>'H==r   c                 "    | j                         S )z3Fixture giving array type from parametrized 'dtype')construct_array_typer   s    r   clsr   !   s     %%''r   c                  f   t        j                  d       t        j                  d      } t        j                  d      }t        j                  dt        j
                        }| t        j                  dt        j                        k(  sJ | |k7  sJ | |k7  sJ |t        j                  dt        j                        k(  sJ || k7  sJ ||k7  sJ |t        j                  dt        j
                        k(  sJ |t        j                  dt        d            k(  sJ || k7  sJ ||k7  sJ y )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====VVR^^I>>>>VVR^^I????R^^IeEEEEVVr   c                    t        j                  dt        j                  dt         j                  dg|       i      }| j                  t
        j                  u rd}nd}t        |      |k(  sJ | j                  t
        j                  u rd}nd}t        |j                        |k(  sJ | j                  d	k(  r%| j                  t         j                  u r	d
}d| d}np| j                  d	k(  r%| j                  t
        j                  u r	d
}d| d}n<| j                  dk(  r%| j                  t
        j                  u r	d}d| d}nd}d| d}t        |j                  j                        |k(  sJ y )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                    | j                   dk(  r>| j                  t        j                  u rt	        |       dk(  sJ t	        |       dk(  sJ y y | j                  t        j                  u rt	        |       dk(  sJ y t	        |       dk(  sJ y )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   s    }}	!>>RUU";"@@@@;"???? A 
255	 E{NNNNE{MMMMr   c                 v    | j                  g d|      }|d   J |d   |j                  j                  u sJ y )N)r'   Nr(   r      )_from_sequencer   r	   )r   r   r'   s      r   test_none_to_nanr7   e   sD    +59AQ4Q4177#####r   c                 4   | j                  ddg|      }d}t        j                  t        |      5  d|d<   d d d        d}t        j                  t        |      5  t	        j
                  d	d
g      |d d  d d d        y # 1 sw Y   JxY w# 1 sw Y   y xY w)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   BBBBc                     t        j                  ddg|       }d|d<   t        j                  ddg|       }t        j                  ||       y )Nr'   cr   dr   )r   r,   tmassert_extension_array_equal)r   r?   r/   s      r   test_setitem_with_scalar_stringrG   w   sE     ((C:U
+CCFxxc
%0H##C2r   c                 :   t        j                  g d|       }t        j                  dd g      }|j                         }||ddg<   t        j                  dt         j                  dg|       }t        j                  ||       t        j                  ||       y )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      sy     ((?%
0CHHc4[!EJCAKxxbeeS)7H##C2z2r   c                    t        j                  t        j                  ddd            }d |d<   |j                  |       }t	        |j
                  |       sJ |j                  d      }t        j                  ||       ||j                  d   z
  }|j                  |       }t	        |j
                  |       sJ |j                  |j
                        }t        j                  ||       y )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63' "Dkk% G'--///nnTZZ(G7D)r   c           
      l   | t         j                  j                  u rd}dt        j                         i}nd}i }t	        j
                  t        |      5   | t        j                  ddgd      fi | d d d        t	        j
                  t        |      5   | t        j                  g       fi | d d d        | t         j                  j                  u rW | t        j                  dt        j                  gt              fi |  | t        j                  dd gt              fi | nt	        j
                  t        |      5   | t        j                  dt        j                  gt              fi | d d d        t	        j
                  t        |      5   | t        j                  dd gt              fi | d d d        t	        j
                  t        |      5   | t        j                  dt         j                  gt              fi | d d d        t	        j
                  t        |      5   | t        j                  dt        j                  d	d
      gt              fi | d d d        t	        j
                  t        |      5   | t        j                  dt        j                  d	d
      gt              fi | d d d        y # 1 sw Y   jxY w# 1 sw Y   7xY w# 1 sw Y   {xY w# 1 sw Y   @xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)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      sr   
bii###G2>>+,R	z	- 8BHHc3Zt,778 
z	- $BHHRL#F#$ bii### 	BHHc266]&1<V<BHHc4[/:6:]]:S1 	A#rvvf5@@	A]]:S1 	?#tF3>v>	? 
z	- =BHHc266]&1<V<= 
z	- QBHHc2==56fEPPQ 
z	- RBHHc2>>%67vFQ&QR R/8 8$ $	A 	A	? 	?= =Q QR RsT   !KK+3K8"%L*3L 9L9L*K(+K58LLLL'*L3nar   c                 p   t         j                  j                  t        j                  dt         j
                  g      t        j                               }t         j                  j                  t        j                  d| gd      t        j                               }t        j                  ||       y )Nr'   r   rg   )	r   re   r*   r   r,   r    r   rE   rF   )rl   r/   r]   s      r   test_constructor_nan_likern      sy    yy$$RXXsBEEl%;2>>CS$THYY""
#r(+2>>3C # F ##FH5r   rJ   TFc                     t        j                  dt         j                  gt              }|j	                         }t        j                  dt
        j                  gt              }|j                  |||       }|t        u r/dd l	} ||j                  ||j                         d      |      }n1|j                  t         j                  u r |||      }n
 |||      }t        j                  ||       t        j                  ||       y )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u4@F
HHV"))+4H@
 
266	!we,vU+##FH58r   c                    t        j                  g d|       }|j                  d      }t        j                  g dd      }t	        j
                  ||       t        j                  dt         j                  dg|       }| j                  t        j                  u r	t        }d}nt        }d}t        j                  ||	      5  |j                  d       d d d        y # 1 sw Y   y xY w)
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                     t        j                  dt         j                  dg|       }|j                  d      }t        j                  dt         j                  dgd      }t	        j
                  ||       y )Nrz   r|   r   Int64r5   r   )r   r,   r    rX   rE   rF   r   r?   r]   r/   s       r   test_astype_nullable_intr      sU    
((C$E
2CZZ FxxBEE1W5H##FH5r   c                 ^   t        j                  dt         j                  dg|       }|j                  |      }t	        |j
                  t        j
                        rt        j                  nt         j                  }t        j                  d|dg|      }t        j                  ||       y )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      sr    
))UBEE5)
7CZZ(Fbhh7266RUUDyy#tS)AH68,r   c                 h    t        j                  g d|      }|j                  |       }|dk(  sJ y )NrI   r   skipnaabc)r   rV   sumr   r   r?   r]   s       r   test_reducer     s.    
))O5
1CWWFW#FU??r   c                     t        j                  g d|      }|j                  |       }| r|dk(  sJ y t        j                  |      sJ y )N)Nr'   Nr(   rC   Nr   r   r   r   rV   r   isnar   s       r   test_reduce_missingr     sB    
))5U
CCWWFW#Fwwvr   	min_countr5   c                 B   t        j                  g |      }|j                  | |      }|dk(  r|dk(  sJ t        j                  |      sJ t        j                  d d g|      }|j                  | |      }| r|dk(  r|dk(  sJ y t        j                  |      sJ y )Nr   )r   r   r    r   )r   r   r   r?   r]   s        r   test_reduce_emptyr     s    
))Be
$CWWFiW8FA~||wwv ))T4L
.CWWFiW8F)q.||wwvr   methodminmaxc                     t        j                  g d|      } t        ||       |      }|r| dk(  rdnd}||k(  sJ y ||j                  j                  u sJ y )Nr'   r(   rC   Nr   r   r   r'   rC   )r   rV   getattrr   r	   )r   r   r   r?   r]   r/   s         r   test_min_maxr   )  s\    
)))
7C!WS&!0F E/3s!!!+++++r   boxc                 D   |j                   dk(  r_|t        j                  u rM|t        j                  u rd}nd}t        j                  j                  t        |      }|j                  |        |g d|      } t        t        |       |      }| dk(  rdnd	}||k(  sJ y )
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 WR %Fos3HXr   c                    t        j                  dt         j                  g|       }|j                  d      }t        j                  ddg|       }t	        j
                  ||       |j                  t        j                  d            }t        j                  ddg|       }t	        j
                  ||       d}t        j                  t        |      5  |j                  d       d d d        y # 1 sw Y   y xY w)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   C66C?c                 h   t        j                  d      }dd lm} t	        j
                  g d|       }|j                  |      }|j                  t        |      |j                         d      }| j                  dk(  r |j                  ||j                               }|j                  |      sJ y )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}} 778RYY[1::hr   z0ignore:Passing a BlockManager:DeprecationWarningc                    t        j                  d      }t        j                  g d|       }t        j                  d|i      }|j                  |      }| j                  dk(  r |j                  d      j                  dk(  s"J |j                  d      j                  dk(  sJ t        j                  d|      5  |j                         }d d d        t        d   j                  t        j                        sJ |j                  t        j                  || j                  	            }|rC|j                   j                  t        j                  |t"        j$                  	            |_        t'        j(                  ||       |j*                  d
   |d   j                  j                  u sJ y # 1 sw Y   xY w)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  s`    
		Y	'B88$E2D	sDk	"BHHRLE}} {{3$$000{{3$$666			+^	< #"# fSk''888yyPQH#++22NN>BFF;
 &(+::f!2!2!;!;;;;# #s   <F44F=c                     t        j                  d      }|j                  d|j                  g d|j	                               i      }|j                         }| s`t        rt        j                  dg did      }n{t        j                  dg dit        j                  t        j                              }n=t        rt        j                  dg did      }nt        j                  dg did      }t        j                  ||       y )	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                    t        j                  d      }t        j                  g |       }t        j                  d|i      }|j                  |      }| j                  dk(  r |j                  d      j                  dk(  s"J |j                  d      j                  dk(  sJ |j                  |j                  g |j                               g|j                        }t        j                  d	|      5  |j                         }d d d        t        d   j                  t        j                         sJ |j#                  t        j                   || j$                  
            }|rC|j&                  j#                  t        j                   |t(        j*                  
            |_        t-        j.                  ||       y # 1 sw Y   xY w)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     sg    
		Y	'B88Be$D	sDk	"BHHRLE}} {{3$$000{{3$$666HHb&&r		&<=ellHSE			+^	< #"# fSk''888yyPQH#++22NN>BFF;
 &(+# #s   7GGc                    | j                   t        j                  u rd}n| j                  dk(  rd}nd}t	        j
                  dddt        j                  g|       }|j                  d	      }t	        j                  g d
|g d   |d      }t        j                  ||       |j                  d	      }t	        j                  ddg|d d |d      }t        j                  ||       y )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68,T*Fyy!Qs2AwigNH68,r   c                 j   | j                   t        j                  u rt        j                  }n| j                  dk(  rd}nd}t        j                  dddt
        j                  g|       }|j                  d      }t        j                  d	d
g|d d	 |d      dz  }t        j                  ||       y )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68,r   c                 (   | j                   t        j                  u rd}n| j                  dk(  rd}nd}t	        j
                  g d|       }|j                  d      }t	        j
                  g d	|d d
 |d      }t        j                  ||       y )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     s{    ~~		)	#$		
))(
6C5)Fyy#bq'QH68,r   c                    | j                   dk(  r"t        j                  d| j                           t        j                  g d|       }d|j
                  cxk  r*|j                         cxk  r|j                  d      k  sJ  J y )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                     t        j                  dg|       }|j                  |      }t        j                  dg|      }t        j                  ||       y )Ng?r   z0.1)r   rV   rX   rE   rY   )r   r   r[   r]   r/   s        r   test_astype_from_float_dtyper     sF     ))SE
-CZZFyy%.H68,r   c                     t        j                  dt         j                  dg|       }t        j                  |      }t        j                  d| j                  dgt
              }t        j                  ||       y )Nr'   r(   r   )r   r,   r    r   r	   rg   rE   rK   r   s       r   "test_to_numpy_returns_pdna_defaultr     sU    
((C$E
2CXXc]Fxxennc2&AH1r   c                     |}t        j                  dt         j                  dg|       }|j                  |      }t	        j                  d|dgt
              }t        j                  ||       y )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     sY    H
((C$E
2C\\8\,Fxxh,F;H1r   c                    t        j                  dt         j                  dg|       }d|_        |j	                         }| j
                  dk(  r|j                  j                  rJ y |j                  j                  sJ y )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                    t        j                  g d|       }|j                  ddg      }t        j                  g d      }t        j                  ||       |j                  dt         j
                  g      }t        j                  g d      }t        j                  ||       |j                  g       }t        j                  g d      }t        j                  ||       |j                  d|g      }t        j                  g d      }t        j                  ||       |j                  |g      }t        j                  g d      }t        j                  ||       y )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68,VVS"%%L!Fyy,-H68,VVBZFyy./H68,VVS,'(Fyy-.H68,VV\N#Fyy./H68,r   c                    t        j                  g d|       }|j                  t        j                  ddg|            }t        j                  g d      }t	        j
                  ||       |j                  t        j                  dd g|            }t        j                  g d      }t	        j
                  ||       y )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68,VVBHHc4[78Fyy,-H68,r   c           	      8   t        j                  d      }t        j                  g d|       }|j	                  t        j
                  ddgt        j                  |j                                           }t        j                  g d      }t        j                  ||       |j	                  t        j
                  dd gt        j                  |j                                           }t        j                  g d      }t        j                  ||       y )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68,VVBHHc4[biik0JKLFyy,-H68,r   c                 \   t        j                  g d|       }t        j                  g d      }d ||<   |j                  d   |j                  j
                  u sJ t        j                  g d|       }d}t        j                  t        |      5  d||<   d d d        y # 1 sw Y   y xY w)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CI99Q<399----- ))O5
1C
,C	y	, D	  s   B""B+c                     g d}t        j                  |t         j                        }t        j                  ||       }t        j                  ||       }t	        j
                  ||       y NrI   r   )r   r,   r   r   rE   rF   r   valsr?   r]   r/   s        r   test_from_numpy_strr
  H  sK    D
((4rww
'CXXc'FxxE*H##FH5r   c                     g d}t        j                  ||       }|j                         }|}t        j                  ||       y r  )r   r,   tolistrE   assert_equalr  s        r   test_tolistr  P  s5    D
((4u
%CZZ\FHOOFH%r   c                      t        j                  g dd      } t        j                  t        d      5  | j                  d       d d d        y # 1 sw Y   y xY w)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  sA    
((?(
3C	y(S	T   s   AAc                 <    |g d|       }t        j                  d dd      } ||      }|t        j                  u rt        j                  nt         j                  } |g dt
              }t        j                  ||       t        j                  d dd      } ||      } |g d|       }| j                  dk(  rG|t        j                  u rt        j                  g dt
              }nt        j                  g d      }t        j                  ||       y )	Nr'   bbcccr   c                     t        |       S )N)lenxs    r   <lambda>z(test_numpy_array_ufunc.<locals>.<lambda>c  s
    CF r   r5   r~   c                     | dz  S )Nr<    r  s    r   r  z(test_numpy_array_ufunc.<locals>.<lambda>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OOFH% 1=$F+59H}}	!"((?xx 8GH yy!9:HOOFH%r   c                      |g d|       }t         j                  j                  d      }|j                  |      }t	        |t         j
                        sJ t        |j                               g dk(  sJ y )Nr  r   r<   )r   randomdefault_rngpermutationr   ndarraysortedr  )r   r   r?   rngr]   s        r   test_numpy_random_permuter-  y  sa      
.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   