o
    ôT·jx  ã                	   @   s¸  d Z ddlZddlZddlZddlmZ ddlmZ ddl	m
Z
mZ ddlm  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	d
„ ƒZejdd„ ƒZejdd„ ƒZdd„ Z dd„ Z!dd„ Z"dd„ Z#dd„ Z$dd„ Z%dd„ Z&dd„ Z'dd „ Z(d!d"„ Z)d#d$„ Z*d%d&„ Z+d'd(„ Z,d)d*„ Z-ej.j/d+d,�d-d.„ ƒZ0ej.j/d+d,�d/d0„ ƒZ1d1d2„ Z2d3d4„ Z3d5d6„ Z4d7d8„ Z5e 6d9¡d:d;„ ƒZ7d<d=„ Z8d>d?„ Z9ej. :d@ej;e <dA¡e=dAƒdej>g¡dBdC„ ƒZ?ej. :dDdEdFg¡dGdH„ ƒZ@dIdJ„ ZAdKdL„ ZBdMdN„ ZCej. :dOdEdFg¡dPdQ„ ƒZDej. :dOdEdFg¡dRdS„ ƒZEej. :dTdUdVg¡ej. :dOdEdFg¡dWdX„ ƒƒZFej. :dTdUdVg¡ej. :dYejGejHg¡dZd[„ ƒƒZId\d]„ ZJd^d_„ ZKej. Ld`¡dadb„ ƒZMej. Ld`¡dcdd„ ƒZNej. Ld`¡dedf„ ƒZOdgdh„ ZPdidj„ ZQej. :dkg dl¢e Hg dm¢¡fg dn¢e Hg do¢¡fg¡dpdq„ ƒZRdrds„ ZSdtdu„ ZTej. :dvejUejVej<g¡dwdx„ ƒZWdydz„ ZXd{d|„ ZYd}d~„ ZZdd€„ Z[d�d‚„ Z\dƒd„„ Z]d…d†„ Z^d‡dˆ„ Z_ej. :dYejGejHg¡d‰dŠ„ ƒZ`dS )‹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)Úusing_string_dtype)ÚHAS_PYARROW)Úpa_version_under12p0Úpa_version_under19p0)Úis_dtype_equal)ÚStringArrayNumpySemantics)ÚArrowStringArrayÚArrowStringArrayNumpySemanticsc                 C   ó   | \}}t j||d�S )zKFixture giving StringDtype from parametrized storage and na_value arguments©ÚstorageÚna_value©ÚpdÚStringDtype)Ústring_dtype_argumentsr   r   © r   új/home/dinkstrade/pdmp-scanner/venv/lib/python3.10/site-packages/pandas/tests/arrays/string_/test_string.pyÚdtype   s   r   c                 C   r
   )Nr   r   )Ústring_dtype_arguments2r   r   r   r   r   Údtype2%   s   r   c                 C   s   |   ¡ S )z3Fixture giving array type from parametrized 'dtype')Úconstruct_array_type©r   r   r   r   Úcls+   s   r   c                 C   s„   t r!tjdtjd�tjdtjd�tjdtjd�tjdtjd�g}ntjdtjd�tjdtjd�g}| | ¡}| |¡}|t||ƒ S )NÚpython©r   Úpyarrow)r   r   r   ÚnpÚnanÚNAÚindexÚmax)Údtype1r   ÚDTYPE_HIERARCHYÚh1Úh2r   r   r   Ústring_dtype_highest_priority1   s   üþ

r&   c                  C   sZ   t  d¡ t t¡� t d¡} W d   ƒ n1 sw   Y  | tjdtjd�ks+J ‚d S )Nr   Úpyarrow_numpyr   )	ÚpytestÚimportorskipÚtmÚassert_produces_warningÚFutureWarningr   r   r   r   r   r   r   r   Útest_dtype_constructorD   s
   
ÿr-   c                  C   sÜ   t  d¡ t d¡} t d¡}tjdtjd�}| tjdtjd�ks#J ‚| |ks)J ‚| |ks/J ‚|tjdtjd�ks;J ‚|| ksAJ ‚||ksGJ ‚|tjdtjd�ksSJ ‚|tjdtdƒd�ks`J ‚|| ksfJ ‚||kslJ ‚d S )Nr   r   r   r   )r(   r)   r   r   r   r   r   Úfloat)r"   r   Údtype3r   r   r   Útest_dtype_equalityL   s   


r0   c                 C   s  t  dt jdt jdg| d�i¡}| jtju rd}nd}t|ƒ|ks#J ‚| jtju r,d}nd}t|jƒ|ks7J ‚| j	d	krK| jt ju rKd
}d|› d�}n0| j	d	kr_| jtju r_d}d|› d�}n| j	dkrs| jtju rsd}d|› d�}nd}d|› d�}t|jjƒ|ks…J ‚d S )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   Úreprr1   r   )r   ÚdfÚexpectedÚarr_namer   r   r   Ú	test_repra   s*    r<   c                 C   sr   | j dkr| jtju rt| ƒdksJ ‚d S t| ƒdksJ ‚d S | jtju r/t| ƒdks-J ‚d S t| ƒdks7J ‚d S )Nr   zstring[pyarrow]z<StringDtype(na_value=nan)>zstring[python]z-<StringDtype(storage='python', na_value=nan)>)r   r   r   r   r8   r   r   r   r   Útest_dtype_repr~   s   
r=   c                 C   s:   | j g d¢|d�}|d d usJ ‚|d |jju sJ ‚d S )N)r2   Nr3   r   é   )Ú_from_sequencer   r   )r   r   r2   r   r   r   Útest_none_to_nanŠ   s   r@   c                 C   sš   | j ddg|d�}d}tjt|d�� d|d< W d   ƒ n1 s!w   Y  d}tjt|d�� t d	d
g¡|d d …< W d   ƒ d S 1 sFw   Y  d S )Nr2   r3   r   z!Invalid value '10' for dtype 'str©Úmatché
   r   zInvalid value for dtype 'strr>   é   )r?   r(   ÚraisesÚ	TypeErrorr   r7   )r   r   ÚarrÚmsgr   r   r   Útest_setitem_validates�   s   
ÿ"ÿrI   c                 C   s<   t jddg| d�}d|d< t jddg| d�}t ||¡ d S )Nr2   Úcr   Údr   ©r   r7   r*   Úassert_extension_array_equal)r   rG   r:   r   r   r   Útest_setitem_with_scalar_stringœ   s   rN   c                 C   sf   t jg d¢| d�}t dd g¡}| ¡ }||ddg< t jdt jdg| d�}t ||¡ t ||¡ d S )N©r2   r3   rJ   r   r1   r   r>   rJ   )r   r7   r   Úcopyr   r*   rM   Úassert_numpy_array_equal)r   rG   ÚvalueÚ
value_origr:   r   r   r   Ú$test_setitem_with_array_with_missing¥   s   rT   c                 C   s�   t  t jddd�¡}d |d< | | ¡}t|j| ƒsJ ‚| d¡}t ||¡ ||jd  }| | ¡}t|j| ƒs:J ‚| |j¡}t ||¡ d S )NÚ2000é   )Úperiodsr   zdatetime64[ns]éÿÿÿÿ)	r   ÚSeriesÚ
date_rangeÚastyper   r   r*   Úassert_series_equalÚiloc)r   ÚserÚcastedÚresultÚser2Úcasted2Úresult2r   r   r   Útest_astype_roundtrip²   s   


rd   c                 C   s¸   t jg d¢| d�}t jg d¢| d�}|| }t jg d¢| d�}t ||¡ | |¡}t ||¡ | |¡}t jg d¢| d�}t ||¡ |j|dd�}t jg d¢| d�}t ||¡ d S )	N)r2   r3   rJ   NNr   )ÚxÚyNÚzN)ÚaxÚbyNNN)ÚxaÚybNNNú-)Ú
fill_value)rh   ri   zc-z-zN)r   rY   r*   r\   ÚaddÚradd)r   r2   r3   r`   r:   r   r   r   Útest_addÅ   s   

rp   c                 C   sÊ   | j dkrd}tjjd |d�}| |¡ tjg d¢| d�}tjg d¢gtd�}tj	t
dd�� ||  W d   ƒ n1 s=w   Y  t |¡}tj	t
dd�� ||  W d   ƒ d S 1 s^w   Y  d S )Nr   z*Failed: DID NOT RAISE <class 'ValueError'>©rE   ÚreasonrO   r   z3 != 1rA   )r   r(   ÚmarkÚxfailÚapplymarkerr   r7   r   ÚobjectrE   Ú
ValueErrorrY   )r   Úrequestrr   rs   r2   r3   Úsr   r   r   Útest_add_2dÙ   s   


ÿ

"ÿrz   c                 C   sj   t jg d¢| d�}g d¢}|| }t jg d¢| d�}t ||¡ || }t jg d¢| d�}t ||¡ d S )N)r2   r3   NNr   )re   Nrf   N)rh   NNN)rj   NNNrL   )r   r2   Úotherr`   r:   r   r   r   Útest_add_sequenceé   s   r|   c                 C   sP   t jg d¢| d�}|d }t jg d¢| d�}t ||¡ d| }t ||¡ d S )N©r2   r3   Nr   rD   )ÚaaÚbbNrL   )r   r2   r`   r:   r   r   r   Útest_mulö   s   r€   zGH-28527)rr   c                 C   s�   t jg d¢| d�}t jg d¢gtd�}| |¡tu sJ ‚|| }t  g d¢g¡ | ¡}t ||¡ || }t  g d¢g¡ | ¡}t ||¡ d S )N)r2   r3   rJ   rK   r   )Útrf   ÚvÚw)Úatri   ÚcvÚdw)Útark   ÚvcÚwd)	r   r7   r6   rv   Ú__add__ÚNotImplementedr[   r*   Úassert_frame_equal©r   rG   r9   r`   r:   r   r   r   Útest_add_strings   s   rŽ   c                 C   s°   t jddtjtjg| d�}t  dtjdtjgg¡}| |¡tu s"J ‚|| }t  dtjtjtjgg¡ | ¡}t 	||¡ || }t  dtjtjtjgg¡ | ¡}t 	||¡ d S )Nr2   r3   r   re   rf   rh   rj   )
r   r7   r   r   r6   rŠ   r‹   r[   r*   rŒ   r�   r   r   r   Útest_add_frame  s     r�   c                    sÚ   d| j › d�‰ tjg d¢|d�}d‰t|ˆ ƒˆƒ}|jtju rFt ‡ ‡fdd„|D ƒ¡}| tjkr6d|d< nd	|d< t	 
|| tj¡¡ d S |jd
krMdnd}tj‡ ‡fdd„|D ƒtd�}tj||d�}t	 ||¡ d S )NÚ__©r2   NrJ   r   r2   c                    ó   g | ]	}t |ˆ ƒˆƒ‘qS r   ©Úgetattr©Ú.0Úitem©Úop_namer{   r   r   Ú
<listcomp>%  ó    z2test_comparison_methods_scalar.<locals>.<listcomp>Tr>   Fr   úboolean[pyarrow]Úbooleanc                    r’   r   r“   r•   r˜   r   r   rš   -  r›   )Ú__name__r   r7   r”   r   r   r   ÚoperatorÚner*   rQ   r[   Úbool_r   rv   rM   )Úcomparison_opr   r2   r`   r:   Úexpected_dtyper   r˜   r   Útest_comparison_methods_scalar  s   

r¤   c                 C   s´   d| j › d�}tjg d¢|d�}t||ƒtjƒ}|jtju r:tj	| kr+t g d¢¡}nt g d¢¡}t
 ||¡ d S |jdkrAdnd}tjg d	¢|d�}t
 ||¡ t
 ||¡ d S )
Nr�   r‘   r   ©TTT©FFFr   rœ   r�   )NNN)rž   r   r7   r”   r   r   r   r   rŸ   r    r*   rQ   r   rM   )r¢   r   r™   r2   r`   r:   r£   r   r   r   Ú$test_comparison_methods_scalar_pd_na2  s   
r§   c           	      C   sþ   d| j › d�}tjg d¢|d�}d}|dvr7tjtdd�� t||ƒ|ƒ W d   ƒ d S 1 s0w   Y  d S t||ƒ|ƒ}|jtj	u r\g d¢g d	¢dœ| }t |¡}t
 ||¡ d S g d
¢g d¢dœ| }|jdkrndnd}tj||d�}t
 ||¡ d S )Nr�   r‘   r   é*   )Ú__eq__Ú__ne__z(Invalid comparison|not supported betweenrA   r¦   r¥   )FNF)TNTr   rœ   r�   )rž   r   r7   r(   rE   rF   r”   r   r   r   r*   rQ   r   rM   )	r¢   r   r™   r2   r{   r`   Úexpected_datar:   r£   r   r   r   Ú)test_comparison_methods_scalar_not_stringD  s2   
ÿýþý
ÿr¬   c                 C   s&  d| j › d�}tjg d¢|d�}tjg d¢|d�}| ||ƒ}| ||ƒ}t ||¡ |jtju r^|jtju r^tj	| krBt g d¢¡}nt g d¢¡}t
|d |ƒ|d ƒ|d< t ||¡ d S t||ƒ}	|	jdkrkd	}
nd
}
tjt|ƒd dd�}t
|d |ƒ|d ƒ|d< tj||
d�}t ||¡ d S )Nr�   r‘   r   ©NNrJ   ©TTFr¦   rX   r   r�   úbool[pyarrow]rv   ©rm   r   )rž   r   r7   r*   Úassert_equalr   r   r   rŸ   r    r”   rQ   r&   r   ÚfullÚlenrM   )r¢   r   r   r™   r2   r{   r`   rc   r:   Ú	max_dtyper£   r   r   r   Útest_comparison_methods_arrayb  s(   




rµ   r   c           
      C   s¤   dd l }d| j› d�}t | ¡ ¡}tjg d¢|d�}tjg d¢|d�}| ||ƒ}| ||ƒ}t ||¡ tjg d¢dd�}	t|d |ƒ|d ƒ|	d< t 	||	¡ d S )	Nr   r�   r‘   r   r­   )NNTr¯   rX   )
r   rž   r   Ú
ArrowDtypeÚstringr7   r*   r±   r”   rM   )
r¢   r   Úpar™   r   r2   r{   r`   rc   r:   r   r   r   Ú-test_comparison_methods_array_arrow_extension‚  s   

r¹   c           	      C   s  d| j › d�}tjg d¢|d�}g d¢}| ||ƒ}| ||ƒ}t ||¡ |jtju rStj	| kr7t g d¢¡}nt g d¢¡}t
|d |ƒ|d ƒ|d< t ||¡ d S |jdkrZd	nd
}tjt|ƒd dd�}t
|d |ƒ|d ƒ|d< tj||d�}t ||¡ d S )Nr�   r‘   r   r­   r®   r¦   rX   r   rœ   r�   rv   r°   )rž   r   r7   r*   r±   r   r   r   rŸ   r    r”   rQ   r   r²   r³   rM   )	r¢   r   r™   r2   r{   r`   rc   r:   r£   r   r   r   Útest_comparison_methods_list–  s"   


rº   c                 C   sX  | t jju r	d}n	| tu rd}nd}tjt|d�� | tjddgdd�ƒ W d   ƒ n1 s/w   Y  tjt|d�� | t g ¡ƒ W d   ƒ n1 sMw   Y  | t jju s\| tu rt| tjdtj	gt
d�ƒ | tjdd gt
d�ƒ nEtjt|d�� | tjdtj	gt
d�ƒ W d   ƒ n1 s’w   Y  tjt|d�� | tjdd gt
d�ƒ W d   ƒ n1 s´w   Y  tjt|d�� | tjdt jgt
d�ƒ W d   ƒ n1 s×w   Y  tjt|d�� | tjdt d	d
¡gt
d�ƒ W d   ƒ n1 sýw   Y  tjt|d�� | tjdt d	d
¡gt
d�ƒ W d   ƒ d S 1 �s%w   Y  d S )Nz7StringArray requires a sequence of strings or pandas.NAz?StringArrayNumpySemantics requires a sequence of strings or NaNzBUnsupported type '<class 'numpy.ndarray'>' for ArrowExtensionArrayrA   r2   r3   ÚS1r   ÚNaTÚns)r   Úarraysr5   r   r(   rE   rw   r   r7   r   rv   r¼   Ú
datetime64Útimedelta64)r   rH   r   r   r   Útest_constructor_raises±  s:   ÿÿÿÿÿ ÿ $ÿrÁ   Únar   c                 C   s>   t j t dt jg¡¡}t t j tjd| gdd�¡|¡ d S )Nr2   rv   r   )r   r¾   r5   r   r7   r   r*   rM   )rÂ   r:   r   r   r   Útest_constructor_nan_likeÔ  s   ÿrÃ   rP   TFc           	      C   s¤   t jdt jgtd�}| ¡ }t jdtjgtd�}|j||| d�}|tt	fv r7dd l
}||j|| ¡ dd�ƒ}n|tu r@||ƒ}n||ƒ}t ||¡ t ||¡ d S )Nr2   r   )r   rP   r   T©ÚtypeÚfrom_pandas)r   r7   r   rv   rP   r   r   r?   r   r	   r   r·   r   r*   rM   rQ   )	rP   r   r   Únan_arrÚexpected_inputÚna_arrr`   r¸   r:   r   r   r   Útest_from_sequence_no_mutateÜ  s   
rÊ   c                 C   s¬   t jg d¢| d�}| d¡}tjg d¢dd�}t ||¡ t jdt jdg| d�}| jtju r3t	}d}nt
}d}tj||d	�� | d¡ W d   ƒ d S 1 sOw   Y  d S )
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   r7   r[   r   r*   rQ   r   r   r   rw   rF   r(   rE   )r   rG   r`   r:   ÚerrrH   r   r   r   Útest_astype_intñ  s   
ÿ"ÿrÒ   c                 C   sF   t jdt jdg| d�}| d¡}t jdt jdgdd�}t ||¡ d S )NrË   rÍ   r   ÚInt64r>   rÐ   )r   r7   r   r[   r*   rM   ©r   rG   r`   r:   r   r   r   Útest_astype_nullable_int  s   
rÕ   c                 C   sF   t jdt jdg| d�}| |¡}t jdtjdg|d�}t ||¡ d S )Nz1.1z3.3r   gš™™™™™ñ?gffffff
@)r   rY   r   r[   r   r   r*   r\   )r   Úany_float_dtyper^   r`   r:   r   r   r   Útest_astype_float  s   
r×   Úskipnac                 C   s.   t jg d¢|d�}|j| d�}|dksJ ‚d S )NrO   r   ©rØ   Úabc)r   rY   Úsum©rØ   r   rG   r`   r   r   r   Útest_reduce  s   rÝ   c                 C   sD   t jg d¢|d�}|j| d�}| r|dksJ ‚d S t  |¡s J ‚d S )N)Nr2   Nr3   rJ   Nr   rÙ   rÚ   )r   rY   rÛ   ÚisnarÜ   r   r   r   Útest_reduce_missing  s
   rß   ÚmethodÚminr!   c                 C   sZ   t jg d¢|d�}t|| ƒ|d�}|r#| dkrdnd}||ks!J ‚d S ||jju s+J ‚d S )N©r2   r3   rJ   Nr   rÙ   rá   r2   rJ   )r   rY   r”   r   r   )rà   rØ   r   rG   r`   r:   r   r   r   Útest_min_max&  s   rã   Úboxc           	      C   s€   |j dkr!|tju r!|tju rd}nd}tjjt|d�}| |¡ |g d¢|d�}tt	| ƒ|ƒ}| dkr6dnd	}||ks>J ‚d S )
Nr   z<'<=' not supported between instances of 'str' and 'NoneType'z0'ArrowStringArray' object has no attribute 'max'rq   râ   r   rá   r2   rJ   )
r   r   r7   r(   rs   rt   rF   ru   r”   r   )	rà   rä   r   rx   rr   rs   rG   r`   r:   r   r   r   Útest_min_max_numpy2  s   

rå   c                 C   s²   t jdt jg| d�}|jdd�}t jddg| d�}t ||¡ |jt d¡d�}t jddg| d�}t ||¡ d}tj	t
|d�� |jdd� W d   ƒ d S 1 sRw   Y  d S )Nr2   r   r3   )rR   ú Invalid value '1' for dtype 'strrA   r>   )r   r7   r   Úfillnar*   rM   r   Ústr_r(   rE   rF   )r   rG   Úresr:   rH   r   r   r   Útest_fillna_argsC  s   "ÿrê   c                 C   sŽ   t  d¡}dd lm} tjg d¢| d�}| |¡}|jt|ƒ| ¡ dd�}| jdkr1t	r1| 
|¡}| jdkr>| || ¡ ¡}| |¡sEJ ‚d S )Nr   r   rO   r   TrÄ   r   )r(   r)   Úpyarrow.computeÚcomputer   r7   ÚlistÚlarge_stringr   r   Úchunked_arrayÚcastr·   Úequals)r   r¸   ÚpcÚdatarG   r:   r   r   r   Útest_arrow_arrayU  s   



rô   z0ignore:Passing a BlockManager:DeprecationWarningc           	      C   s6  t  d¡}tjg d¢| d�}t d|i¡}| |¡}| jdkr*| d¡jdks)J ‚n
| d¡jdks4J ‚t 	d|¡� | 
¡ }W d   ƒ n1 sIw   Y  | jtju ra|sa|d jd	ks_J ‚d S t|d jtjƒslJ ‚| tj|| jd
�¡}|r†|j tj|tjd
�¡|_t ||¡ |jd |d jju s™J ‚d S )Nr   r}   r   r2   r   r·   rî   Ústring_storagerv   r   )rD   r2   )r(   r)   r   r7   r6   Útabler   ÚfieldrÅ   Úoption_contextÚ	to_pandasr   r   r   r   Ú
isinstancer   r[   Úcolumnsr*   rŒ   Úloc©	r   rõ   Úusing_infer_stringr¸   ró   r9   rö   r`   r:   r   r   r   Útest_arrow_roundtripd  s(   



ÿÿrÿ   c                 C   sx   t  d¡}| d|jg d¢| ¡ d�i¡}| ¡ }| r)ts)tjdg d¢idd�}ntjdg d¢idd�}t	 
||¡ d S )Nr   r2   r}   ©rÅ   Ústrr   rv   )r(   r)   rö   r7   r·   rù   r   r   r6   r*   rŒ   )rþ   r¸   rö   r`   r:   r   r   r   Útest_arrow_from_string€  s   
 r  c           	      C   s:  t  d¡}tjg | d�}t d|i¡}| |¡}| jdkr(| d¡jdks'J ‚n
| d¡jdks2J ‚|j|j	g | 
¡ d�g|jd�}t d	|¡� | ¡ }W d   ƒ n1 sWw   Y  | jtju rptƒ sp|d jd
ksnJ ‚d S t|d jtjƒs{J ‚| tj|| jd�¡}|r•|j tj|tjd�¡|_t ||¡ d S )Nr   r   r2   r   r·   rî   r   )Úschemarõ   rv   r   )r(   r)   r   r7   r6   rö   r   r÷   rÅ   rï   r·   r  rø   rù   r   r   r   r   r   rú   r   r[   rû   r*   rŒ   rý   r   r   r   Ú test_arrow_load_from_zero_chunks�  s(   


 
ÿÿr  c                 C   s®   | j tju r	d}n
| jdkrd}nd}tjdddtjg| d�}|jdd	�}tjg d
¢|g d¢ |dd�}t	 
||¡ |jdd	�}tjddg|d d… |dd�}t	 
||¡ d S )NrÎ   r   úint64[pyarrow]rÓ   r2   r3   r   F)Údropna)rD   r>   r>   )r   r>   rÐ   Úcount©r    r   ÚnameTrD   r>   )r   r   r   r   r   r7   r   Úvalue_countsrY   r*   r\   )r   Ú	exp_dtyperG   r`   r:   r   r   r   Útest_value_counts_na¬  s   
r  c                 C   s~   | j tju r
tj}n
| jdkrd}nd}tjdddtjg| d�}|jdd�}tjd	d
g|d d	… |dd�d }t	 
||¡ d S )Nr   zdouble[pyarrow]ÚFloat64r2   r3   r   T)Ú	normalizerD   r>   Ú
proportionr  rÐ   )r   r   r   Úfloat64r   r   rY   r   r
  r*   r\   ©r   r  r^   r`   r:   r   r   r   Ú test_value_counts_with_normalize½  s   
"r  zvalues, expectedrO   r¦   r}   )FFTc              	   C   sÞ   t j| |d�} d}tjt|d��U t  dd¡�6 |  ¡ }t ||¡ t  | ¡ ¡ }t  |¡}t 	||¡ t  
| ¡ ¡ }t  
|¡}t ||¡ W d   ƒ n1 sPw   Y  W d   ƒ d S W d   ƒ d S 1 shw   Y  d S )Nr   z"use_inf_as_na option is deprecatedrA   zmode.use_inf_as_naT)r   r7   r*   r+   r,   rø   rÞ   rQ   rY   r\   r6   rŒ   )Úvaluesr:   r   rH   r`   r   r   r   Útest_use_inf_as_naÊ  s    	

öÿ"ÿr  c                 C   sr   | j tju r	d}n
| jdkrd}nd}tjg d¢| d�}|jdd�}tjg d	¢|d d
… |dd�}t ||¡ d S )NrÎ   r   r  rÓ   )r2   r3   rJ   r3   r   F)Úsort)r>   rD   r>   rÐ   r  r  )	r   r   r   r   r   rY   r
  r*   r\   r  r   r   r   Útest_value_counts_sort_falseã  s   
r  c                 C   sf   | j dkrt d| j › �¡ tjg d¢| d�}d|j  k r.| ¡   kr.|jdd�k s1J ‚ J ‚d S )Nr   znot applicable for rO   r   r   T)Údeep)r   r(   Úskipr   rY   ÚnbytesÚmemory_usage)r   Úseriesr   r   r   Útest_memory_usageð  s   
8r  Úfloat_dtypec                 C   s:   t jdg| d�}| |¡}t jdg|d�}t ||¡ d S )Ngš™™™™™¹?r   z0.1)r   rY   r[   r*   r\   )r  r   r^   r`   r:   r   r   r   Útest_astype_from_float_dtypeû  s   
r  c                 C   sF   t jdt jdg| d�}t |¡}tjd| jdgtd�}t ||¡ d S )Nr2   r3   r   )r   r7   r   r   r   rv   r*   rQ   rÔ   r   r   r   Ú"test_to_numpy_returns_pdna_default  s   
r  c                 C   sJ   |}t jdt jdg| d�}|j|d�}tjd|dgtd�}t ||¡ d S )Nr2   r3   r   r   )r   r7   r   Úto_numpyr   rv   r*   rQ   )r   Únulls_fixturer   rG   r`   r:   r   r   r   Útest_to_numpy_na_value  s
   r"  c                 C   sÚ   t jg d¢| d�}| ddg¡}t  g d¢¡}t ||¡ | dt jg¡}t  g d¢¡}t ||¡ | g ¡}t  g d¢¡}t ||¡ | d|g¡}t  g d¢¡}t ||¡ | |g¡}t  g d¢¡}t ||¡ d S )Nr}   r   r2   rJ   ©TFF©TFTr¦   )r   rY   Úisinr*   r\   r   )r   Úfixed_now_tsry   r`   r:   r   r   r   Ú	test_isin  s    
r'  c                 C   sz   t jg d¢| d�}| t jddg|d�¡}t  g d¢¡}t ||¡ | t jdd g|d�¡}t  g d¢¡}t ||¡ d S )Nr}   r   r2   rJ   r#  r$  )r   rY   r%  r7   r*   r\   )r   r   ry   r`   r:   r   r   r   Útest_isin_string_array+  s   r(  c                 C   s˜   t  d¡}tjg d¢| d�}| tjddgt | ¡ ¡d�¡}t g d¢¡}t 	||¡ | tjdd gt | ¡ ¡d�¡}t g d¢¡}t 	||¡ d S )Nr   r}   r   r2   rJ   r#  r$  )
r(   r)   r   rY   r%  r7   r¶   r·   r*   r\   )r   r¸   ry   r`   r:   r   r   r   Útest_isin_arrow_string_array7  s   
""r)  c                 C   s�   t jg d¢| d�}t g d¢¡}d ||< |jd |jju sJ ‚t jg d¢| d�}d}tjt|d�� d||< W d   ƒ d S 1 sAw   Y  d S )NrO   r   )FTFr>   ræ   rA   )	r   rY   r   r7   r   r   r(   rE   rF   )r   r^   ÚmaskrH   r   r   r   Ú(test_setitem_scalar_with_mask_validationD  s   
"ÿr+  c                 C   sD   g d¢}t j|t jd�}tj|| d�}tj|| d�}t ||¡ d S ©NrO   r   )r   r7   rè   r   r*   rM   ©r   ÚvalsrG   r`   r:   r   r   r   Útest_from_numpy_strU  s
   r/  c                 C   s2   g d¢}t j|| d�}| ¡ }|}t ||¡ d S r,  )r   r7   Útolistr*   r±   r-  r   r   r   Útest_tolist]  s
   r1  c                 C   sÌ   |g d¢| d�}t  dd„ dd¡}||ƒ}|tju rtjnt j}|g d¢td�}t ||¡ t  dd„ dd¡}||ƒ}|g d¢| d�}| jd	kr^|tju rWt jg d¢td�}nt g d¢¡}t ||¡ d S )
N)r2   r   Úcccr   c                 S   s   t | ƒS )N)r³   ©re   r   r   r   Ú<lambda>j  ó    z(test_numpy_array_ufunc.<locals>.<lambda>r>   rÏ   c                 S   s   | d S )NrD   r   r3  r   r   r   r4  r  r5  )r~   ÚbbbbÚccccccr   )	r   Ú
frompyfuncr   rY   r7   rv   r*   r±   r   )r   rä   rG   Ústr_len_ufuncr`   Úexpected_clsr:   Ústr_multiply_ufuncr   r   r   Útest_numpy_array_ufunce  s   

r<  )aÚ__doc__rŸ   Únumpyr   r(   Úpandas._configr   Úpandas.compatr   Úpandas.compat.pyarrowr   r   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdÚpandas.core.dtypes.commonr   Úpandasr   Úpandas._testingÚ_testingr*   Úpandas.core.arrays.string_r   Úpandas.core.arrays.string_arrowr   r	   Úfixturer   r   r   r&   r-   r0   r<   r=   r@   rI   rN   rT   rd   rp   rz   r|   r€   rs   rt   rŽ   r�   r¤   r§   r¬   rµ   Ú
skip_if_nor¹   rº   rÁ   Úparametrizer   r  r.   r   rÃ   rÊ   rÒ   rÕ   r×   rÝ   rß   rã   rY   r7   rå   rê   rô   Úfilterwarningsrÿ   r  r  r  r  r  r  r  Úfloat16Úfloat32r  r  r"  r'  r(  r)  r+  r/  r1  r<  r   r   r   r   Ú<module>   sº    


	


 
$#



	






þþ

