
    yochfi              	          d Z ddlZddlZddlZddlmZ ddlmZm	Z	 ddl
mZ ddlZddlmZ ddlmZ ddlmZ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"d Z#d Z$d Z%ejL                  jO                  d      d        Z(ejL                  jO                  d      d        Z)d Z*d Z+d Z,d Z-d Z.ejL                  j_                  d ej`                   ejb                  d!       e2d!      dejf                  g      d"        Z4ejL                  j_                  d#d$d%g      d&        Z5d' Z6d( Z7d) Z8ejL                  j_                  d*d$d%g      d+        Z9ejL                  j_                  d*d$d%g      d,        Z:ejL                  j_                  d-d.d/g      ejL                  j_                  d*d$d%g      d0               Z;ejL                  j_                  d-d.d/g      ejL                  j_                  d1ejx                  ejz                  g      d2               Z>d3 Z?d4 Z@ejL                  j                  d5      d6        ZBejL                  j                  d5      d7        ZCejL                  j                  d5      d8        ZDd9 ZEd: ZFejL                  j_                  d;g d< ejz                  g d=      fg d> ejz                  g d?      fg      d@        ZGdA ZHdB ZIejL                  j_                  dCej                  ej                  ejb                  g      dD        ZLdE ZMdF ZNdG ZOdH ZPdI ZQdJ ZRdK ZSdL ZTy)Mz
This module tests the functionality of StringArray and ArrowStringArray.
Tests for the str accessors are in pandas/tests/strings/test_string_array.py
    N)using_string_dtype)pa_version_under12p0pa_version_under19p0)is_dtype_equal)StringArrayNumpySemantics)ArrowStringArrayArrowStringArrayNumpySemanticsc                 :    | \  }}t        j                  ||      S )zKFixture giving StringDtype from parametrized storage and na_value argumentsstoragena_valuepdStringDtype)string_dtype_argumentsr   r   s      v/mnt/ACDE16A4DE16673C/PROJECTS/MIS_PORTAL/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                     t        j                  d       t        j                  t              5  t        j                  d      } d d d         t        j                  dt        j                        k(  sJ y # 1 sw Y   4xY w)Npyarrowpyarrow_numpyr   )	pytestimportorskiptmassert_produces_warningFutureWarningr   r   npnanr   s    r   test_dtype_constructorr'   /   s^    
	"		#	#M	2 0/0BNN9rvv>>>>0 0s   A88B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 )Nr   pythonr   r&   )r    r!   r   r   r%   r&   NAfloat)dtype1r   dtype3s      r   test_dtype_equalityr.   7   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: stringr	   z'>
['a', nan, 'b']
Length: 3, dtype: strr)   r   StringArray)
r   	DataFramearrayr*   r   r%   r&   reprr0   r   )r   dfexpectedarr_names       r   	test_reprr;   L   sC   	sBHHc255#%6eDE	FB~~378x~~FL:!!!}}	!enn&=%xj MN	)	#"&&(@3xj IJ	(	"u~~'?.xj IJ xj MN

x'''r   c                 v    | j                  g d|      }|d   J |d   |j                  j                  u sJ y )N)r1   Nr2   r      )_from_sequencer   r   )r   r   r1   s      r   test_none_to_nanr?   i   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)Nr1   r2   r   z!Invalid value '10' for dtype 'strmatch
   r   zInvalid value for dtype 'strr=      )r>   r    raises	TypeErrorr%   r6   )r   r   arrmsgs       r   test_setitem_validatesrI   o   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 )Nr1   cr   dr   r   r6   r"   assert_extension_array_equal)r   rG   r9   s      r   test_setitem_with_scalar_stringrO   {   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r1   r2   rK   r   r0   r   r=   rK   )r   r6   r%   copyr*   r"   rN   assert_numpy_array_equal)r   rG   value
value_origr9   s        r   $test_setitem_with_array_with_missingrV      sy     ((?%
0CHHc4[!EJCAKxxbeeS)7H##C2z2r   c                    t        j                  t        j                  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   )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_roundtriprg      s    
))BMM&"5
6CCFZZF&,,...]]+,F63' "Dkk% G'--///nnTZZ(G7D)r   c                 "   t        j                  g d|       }t        j                  g d|       }||z   }t        j                  g d|       }t        j                  ||       |j	                  |      }t        j                  ||       |j                  |      }t        j                  g d|       }t        j                  ||       |j	                  |d      }t        j                  g d|       }t        j                  ||       y )	N)r1   r2   rK   NNr   )xyNzN)axbyNNN)xaybNNN-)
fill_value)rl   rm   zc-z-zN)r   r\   r"   r_   addradd)r   r1   r2   rc   r9   s        r   test_addrt      s    
		-U;A
		-U;AUFyy7uEH68,UU1XF68,VVAYFyy7uEH68,UU1U%Fyy7uEH68,r   c                    | j                   dk(  r4d}t        j                  j                  d |      }|j	                  |       t        j                  g d|       }t        j                  g dgt              }t        j                  t        d      5  ||z    d d d        t        j                  |      }t        j                  t        d      5  ||z    d d d        y # 1 sw Y   HxY w# 1 sw Y   y xY w)Nr   z*Failed: DID NOT RAISE <class 'ValueError'>rE   reasonrQ   r   z3 != 1rA   )r   r    markxfailapplymarkerr   r6   r%   objectrE   
ValueErrorr\   )r   requestrw   rx   r1   r2   ss          r   test_add_2dr      s    }}	!={{  V <D!
.A
/"&1A	z	2 	A 			!A	z	2 	A 	  s   C#C/#C,/C8c                    t        j                  g d|       }g d}||z   }t        j                  g d|       }t        j                  ||       ||z   }t        j                  g d|       }t        j                  ||       y )N)r1   r2   NNr   )ri   Nrj   N)rl   NNN)rn   NNNrM   )r   r1   otherrc   r9   s        r   test_add_sequencer      sl    
'u5A"EYFxx0>H##FH5QYFxx0>H##FH5r   c                     t        j                  g d|       }|dz  }t        j                  g d|       }t        j                  ||       d|z  }t        j                  ||       y )Nr1   r2   Nr   rD   )aabbNrM   )r   r1   rc   r9   s       r   test_mulr      sV    
!/AUFxx*%8H##FH5UF##FH5r   zGH-28527)rw   c                    t        j                  g d|       }t        j                  g dgt              }|j	                  |      t
        u sJ ||z   }t        j                  g dg      j                  |       }t        j                  ||       ||z   }t        j                  g dg      j                  |       }t        j                  ||       y )N)r1   r2   rK   rL   r   )trj   vw)atrm   cvdw)taro   vcwd)	r   r6   r5   r{   __add__NotImplementedr^   r"   assert_frame_equalr   rG   r8   rc   r9   s        r   test_add_stringsr      s    
(('u
5C	+,F	;B;;r?n,,,2XF||567>>uEH&(+#XF||567>>uEH&(+r   c                    t        j                  ddt        j                  t        j                  g|       }t        j                  dt        j                  dt        j                  gg      }|j                  |      t        u sJ ||z   }t        j                  dt        j                  t        j                  t        j                  gg      j                  |       }t        j                  ||       ||z   }t        j                  dt        j                  t        j                  t        j                  gg      j                  |       }t        j                  ||       y )Nr1   r2   r   ri   rj   rl   rn   )
r   r6   r%   r&   r5   r   r   r^   r"   r   r   s        r   test_add_framer      s    
((Cbffbff-U
;C	RVVS"&&12	3B;;r?n,,,2XF||dBFFBFFBFF;<=DDUKH&(+#XF||dBFFBFFBFF;<=DDUKH&(+r   c           
         d| j                    d}t        j                  g d|      }d} t        ||      |      }|j                  t
        j                  u rt        j                  |D cg c]  } t        ||      |       c}      }| t        j                  k(  rd|d<   nd|d<   t        j                  ||j                  t
        j                               y |j                  dk(  rd	nd
}t        j                  |D cg c]  } t        ||      |       c}t              }t        j                  ||      }t        j                  ||       y c c}w c c}w )N__r1   NrK   r   r1   Tr=   Fr   boolean[pyarrow]boolean)__name__r   r6   getattrr   r%   r&   operatorner"   rS   r^   bool_r   r{   rN   )	comparison_opr   op_namer1   r   rc   itemr9   expected_dtypes	            r   test_comparison_methods_scalarr      s   =))*"-G
!/AE WQ 'F~~88qIt3WT73E:IJHKK'HQKHQK
##FHOOBHH,EF/4}}	/I+y88qIt3WT73E:IQWX88HN;
''9 J Js   -EEc                 0   d| j                    d}t        j                  g d|      } t        ||      t        j                        }|j
                  t        j                  u rYt        j                  | k(  rt        j                  g d      }nt        j                  g d      }t        j                  ||       y |j                  dk(  rdnd}t        j                  g d	|      }t        j                  ||       t        j                  ||       y )
Nr   r   r   TTTFFFr   r   r   NNN)r   r   r6   r   r*   r   r%   r&   r   r   r"   rS   r   rN   )r   r   r   r1   rc   r9   r   s          r   $test_comparison_methods_scalar_pd_nar     s    =))*"-G
!/A WQ 'F~~;;-'xx 23Hxx 56H
##FH5/4}}	/I+y88.nE
''9
''9r   c                 L   d| j                    d}t        j                  g d|      }d}|dvr7t        j                  t
        d      5   t        ||      |       d d d        y  t        ||      |      }|j                  t        j                  u r8g dg d	d|   }t        j                  |      }t        j                  ||       y g d
g dd|   }|j                  dk(  rdnd}t        j                  ||      }t        j                  ||       y # 1 sw Y   y xY w)Nr   r   r   *   )__eq____ne__z(Invalid comparison|not supported betweenrA   r   r   )FNF)TNTr   r   r   )r   r   r6   r    rE   rF   r   r   r%   r&   r"   rS   r   rN   )	r   r   r   r1   r   rc   expected_datar9   r   s	            r   )test_comparison_methods_scalar_not_stringr   #  s   =))*"-G
!/AE**]]9,VW 	'GAw&	' 	 WQ 'F~~+(
  88M*
##FH5#7CUV
 05}}	/I+y88M@
''9)	' 	s   DD#c                 (   d| j                    d}t        j                  g d|      }g d} t        ||      |      }|j                  t
        j                  u rt        j                  | k(  rt        j                  g d      }n2t        j                  g d      } t        |d   |      |d         |d<   t        j                  ||        t        ||      t        j                        }t        j                  | k(  rt        j                  g d      }nt        j                  g d      }t        j                  ||       y |j                  d	k(  rd
nd}t        j                  t        |      d d      } t        |d   |      |d         |d<   t        j                  ||      }t        j                  ||        t        ||      t        j                        }t        j                  g d|      }t        j                  ||       y )Nr   r   r   )NNrK   )TTFr   r[   r   r   r   r   r{   )rq   r   r   )r   r   r6   r   r   r%   r&   r   r   r"   rS   r*   r   fulllenrN   )r   r   r   r1   r   rc   r9   r   s           r   test_comparison_methods_arrayr   A  s   =))*"-G
!/AE WQ 'F~~;;-'xx 34Hxx 56H6759g6qu=HRL
##FH5$G$RUU+;;-'xx 23Hxx 56H
##FH5 05}}	/I+y773q6d(C2wuRy'21R5988HN;
''9$G$RUU+88.nE
''9r   c           
      P   | t         j                  j                  u rd}n| t        u rd}nd}t	        j
                  t        |      5   | t        j                  ddgd             d d d        t	        j
                  t        |      5   | t        j                  g              d d d        | t         j                  j                  u s| t        u rU | t        j                  dt        j                  gt                      | t        j                  dd gt                     nt	        j
                  t        |      5   | t        j                  dt        j                  gt                     d d d        t	        j
                  t        |      5   | t        j                  dd gt                     d d d        t	        j
                  t        |      5   | t        j                  dt         j                  gt                     d d d        t	        j
                  t        |      5   | t        j                  dt        j                  d	d
      gt                     d d d        t	        j
                  t        |      5   | t        j                  dt        j                  d	d
      gt                     d d d        y # 1 sw Y   jxY w# 1 sw Y   8xY w# 1 sw Y   wx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.NAz?StringArrayNumpySemantics requires a sequence of strings or NaNzBUnsupported type '<class 'numpy.ndarray'>' for ArrowExtensionArrayrA   r1   r2   S1r   NaTns)r   arraysr4   r   r    rE   r|   r%   r6   r&   r{   r   
datetime64timedelta64)r   rH   s     r   test_constructor_raisesr   b  sA   
bii###G	)	)OR	z	- .BHHc3Zt,-. 
z	- BHHRL bii###s.G'G 	BHHc266]&12BHHc4[/0]]:S1 	7#rvvf56	7]]:S1 	5#tF34	5 
z	- 3BHHc266]&123 
z	- GBHHc2==56fEFG 
z	- HBHHc2>>%67vFGH H/. . 	7 	7	5 	53 3G GH HsT    KK2K*$K72L48L8LKK'*K47LLLL%nar&   c                    t         j                  j                  t        j                  dt         j
                  g            }t        j                  t         j                  j                  t        j                  d| gd            |       y )Nr1   r{   r   )r   r   r4   r%   r6   r*   r"   rN   )r   r9   s     r   test_constructor_nan_liker     sX    yy$$RXXsBEEl%;<H##
		bhhRyABHr   rR   TFc                    t        j                  dt         j                  gt              }|j	                         }t        j                  dt
        j                  gt              }|j                  |||       }|t        t        fv r-dd l
} ||j                  ||j                         d            }n|t        u r	 ||      }n ||      }t        j                  ||       t        j                  ||       y )Nr1   r   )r   rR   r   Ttypefrom_pandas)r%   r6   r&   r{   rR   r   r*   r>   r   r	   r   stringr   r"   rN   rS   )	rR   r   r   nan_arrexpected_inputna_arrrc   par9   s	            r   test_from_sequence_no_mutater     s    hhRVV}F3G\\^NXXsBEEl&1Fu4@F
!?@@rxxRYY[dxKL	)	)w<v;##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)r=   rD      r   r   z#cannot convert float NaN to integerzJint\(\) argument must be a string, a bytes-like object or a( real)? numberrA   )r   r6   r^   r%   r"   rS   r*   r   r&   r|   rF   r    rE   )r   rG   rc   r9   errrH   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 )Nr   r   r   Int64r=   r   )r   r6   r*   r^   r"   rN   r   rG   rc   r9   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                  dt        j
                  dg|      }t        j                  ||       y )Nz1.1z3.3r   g?gffffff
@)r   r\   r*   r^   r%   r&   r"   r_   )r   any_float_dtypera   rc   r9   s        r   test_astype_floatr     sV    
))UBEE5)
7CZZ(Fyy#rvvs+?CH68,r   skipnac                 h    t        j                  g d|      }|j                  |       }|dk(  sJ y )NrQ   r   r   abc)r   r\   sumr   r   rG   rc   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)Nr1   Nr2   rK   Nr   r   r   )r   r\   r   isnar   s       r   test_reduce_missingr     sB    
))5U
CCWWFW#F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r1   r2   rK   Nr   r   r   r1   rK   )r   r\   r   r   r   )r   r   r   rG   rc   r9   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'rv   r   r   r   r1   rK   )
r   r   r6   r    rx   ry   rF   rz   r   r%   )	r   r   r   r}   rw   rx   rG   rc   r9   s	            r   test_min_max_numpyr     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)Nr1   r   r2   )rT    Invalid value '1' for dtype 'strrA   r=   )r   r6   r*   fillnar"   rN   r%   str_r    rE   rF   )r   rG   resr9   rH   s        r   test_fillna_argsr     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                    t        j                  d      }dd lm} t	        j
                  g d|       }|j                  |      }|j                  t        |      |j                         d      }| j                  dk(  rt        r|j                  |      }| j                  dk(  r |j                  ||j                               }|j                  |      sJ y )Nr   r   rQ   r   Tr   r)   )r    r!   pyarrow.computecomputer   r6   listlarge_stringr   r   chunked_arraycastr   equals)r   r   pcdatarG   r9   s         r   test_arrow_arrayr     s    			Y	'B 88O51D
((4.CxxT
):xMH}}	!&:##H-}} 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        | j                  t        j                  u r|sd   j                  d	k(  sJ y 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   r1   r)   r   r   string_storager{   r   )rD   r1   )r    r!   r   r6   r5   tabler   fieldr   option_context	to_pandasr   r%   r&   r   
isinstancer   r^   columnsr"   r   loc	r   r   using_infer_stringr   r   r8   r  rc   r9   s	            r   test_arrow_roundtripr
    s    
		Y	'B88$E2D	sDk	"BHHRLE}} {{3$$000{{3$$666			+^	< #"#~~(:c{  H,,,&+++R^^<<<99R^^NU^^TU'//66~? H 	fh/zz&!VC[%6%6%?%????# #s   <G''G1c                 `   t        j                  d      }|j                  d|j                  g d|j	                               i      }|j                         }| r"t        st        j                  dg did      }nt        j                  dg did      }t        j                  ||       y )Nr   r1   r   r   strr   r{   )r    r!   r  r6   r   r  r   r   r5   r"   r   )r	  r   r  rc   r9   s        r   test_arrow_from_stringr  1  s     
		Y	'BHHc288$4299;8GHIE__F"6<<&6 7uE<<&6 7xH&(+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        | j                  t        j                   u rt#               sd   j$                  d
k(  sJ y t'        d   j$                  t        j(                        sJ |j+                  t        j(                  || j                              }|rC|j,                  j+                  t        j(                  |t        j                               |_        t/        j0                  ||       y # 1 sw Y   xY w)Nr   r   r1   r)   r   r   r  )schemar   r{   r   )r    r!   r   r6   r5   r  r   r  r   r   r   r  r  r  r   r%   r&   r   r   r  r   r^   r  r"   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			+^	< #"# ~~(:(<c{  H,,,&+++R^^<<<99R^^NU^^TU'//66~? H 	fh/# #s   7H  H	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   r1   r2   r   F)dropna)rD   r=   r=   )r   r=   r   countindexr   nameTrD   r=   )r   r%   r&   r   r   r6   r*   value_countsr\   r"   r_   )r   	exp_dtyperG   rc   r9   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]Float64r1   r2   r   T)	normalizerD   r=   
proportionr  r   )r   r%   r&   float64r   r   r\   r*   r  r"   r_   r   r  ra   rc   r9   s        r    test_value_counts_with_normalizer"  n  s    ~~JJ		)	#%		
))S#sBEE*%
8C-Fyy!Qs2AwilSVWWH68,r   zvalues, expectedrQ   r   r   )FFTc                 p   t        j                  | |      } d}t        j                  t        |      5  t        j
                  dd      5  | j                         }t        j                  ||       t        j                  |       j                         }t        j                  |      }t        j                  ||       t        j                  |       j                         }t        j                  |      }t        j                  ||       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr   z"use_inf_as_na option is deprecatedrA   zmode.use_inf_as_naT)r   r6   r"   r#   r$   r  r   rS   r\   r_   r5   r   )valuesr9   r   rH   rc   s        r   test_use_inf_as_nar%  {  s     XXfE*F
.C		#	#M	= 43T: 
	4[[]F''9YYv&++-Fyy*H""684\\&)..0F||H-H!!&(3
	44 4
	4 
	44 4s$   D,CD D, D)	%D,,D5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   )r1   r2   rK   r2   r   F)sort)r=   rD   r=   r   r  r  )	r   r%   r&   r   r   r\   r  r"   r_   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 rQ   r   r   T)deep)r   r    skipr   r\   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   r\   r^   r"   r_   )r0  r   ra   rc   r9   s        r   test_astype_from_float_dtyper2    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 )Nr1   r2   r   )r   r6   r*   r%   r   r{   r"   rS   r   s       r   "test_to_numpy_returns_pdna_defaultr4    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 )Nr1   r2   r   r   )r   r6   r*   to_numpyr%   r{   r"   rS   )r   nulls_fixturer   rG   rc   r9   s         r   test_to_numpy_na_valuer8    sY    H
((C$E
2C\\8\,Fxxh,F;H1r   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   r1   rK   TFFTFTr   )r   r\   isinr"   r_   r*   )r   fixed_now_tsr~   rc   r9   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   r1   rK   r:  r;  )r   r\   r<  r6   r"   r_   )r   r   r~   rc   r9   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   r1   rK   r:  r;  )
r    r!   r   r\   r<  r6   
ArrowDtyper   r"   r_   )r   r   r~   rc   r9   s        r   test_isin_arrow_string_arrayrC    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)NrQ   r   )FTFr=   r   rA   )	r   r\   r%   r6   r   r   r    rE   rF   )r   ra   maskrH   s       r   (test_setitem_scalar_with_mask_validationrF    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 NrQ   r   )r%   r6   r   r   r"   rN   r   valsrG   rc   r9   s        r   test_from_numpy_strrK    sK    D
((4rww
'CXXc'FxxE*H##FH5r   c                     g d}t        j                  ||       }|j                         }|}t        j                  ||       y rH  )r   r6   tolistr"   assert_equalrI  s        r   test_tolistrO    s5    D
((4u
%CZZ\FHOOFH%r   )U__doc__r   numpyr%   r    pandas._configr   pandas.compat.pyarrowr   r   pandas.core.dtypes.commonr   pandasr   pandas._testing_testingr"   pandas.core.arrays.string_r   pandas.core.arrays.string_arrowr   r	   fixturer   r   r   r'   r.   r;   r?   rI   rO   rV   rg   rt   r   r   r   rx   ry   r   r   r   r   r   r   r   parametrizer&   r   r+   r*   r   r   r   r   r   r   r   r   r\   r6   r   r   r   filterwarningsr
  r  r  r  r"  r%  r(  r/  float16float32r2  r4  r8  r>  r@  rC  rF  rK  rO   r   r   <module>r`     s      -
 5   @ > > > >
 ( (
?*(:$	"3
3*&-( 
66 *%, &, *%, &,:&:$:<:B HF 


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, NO0 P08-"
- 	("((#89:	8288$89:44$
-W RZZ(LM- N-22-0	-
-"6&r   