a
    é´«jn}  ã                   @   sJ   d dl Z d dlZd dlZd dlZd dlmZ d dl	m
Z
 G dd„ dƒZdS )é    N)ÚIntervalArrayc                   @   sâ  e Z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dd„ Zdd „ Zd!d"„ Zej d#d$d%g¡d&d'„ ƒZd(d)„ Zd*d+„ Zd,d-„ Zd.d/„ Zd0d1„ Zd2d3„ Zej d4ejd5gd5d6gd7�d8gfejd5d6gd5d6gd7�d8d9gfg¡d:d;„ ƒZ ej d<g d=¢g d>¢fd?gd@gfg¡dAdB„ ƒZ!dCdD„ Z"dEdF„ Z#ej dGg dH¢d9dIdJdHœg dK¢fg dL¢dMdNdOdLœg dP¢fg¡dQdR„ ƒZ$ej dSg dH¢g dT¢fg dU¢g dV¢fg¡dWdX„ ƒZ%dYdZ„ Z&ej d[d%d$g¡d\d]„ ƒZ'ej d[d%d$g¡d^d_„ ƒZ(d`da„ Z)dbdc„ Z*ej+ddœdedf„Z,dgdh„ Z-ej did$d%g¡djdk„ ƒZ.ej dld$d%g¡ej did$d%g¡dmdn„ ƒƒZ/dodp„ Z0dqdr„ Z1ej dsdtd$d%gd$d%id%d%gfdud8d9gdvdwdxœdvdwgfdyd8d9gdvdwdxœdvdwgfdzd{d|gd}d~dœd}d~gfd€d{d|gd}d~dœd}d~gfd�d‚dƒgd„dMd…œd„dMgfe 2du¡e3e 4d8d9¡e 4d9dI¡gƒe 4d8d9¡e 4dvdw¡ie3e 4dvdw¡e 4d9dI¡gƒfe 2dz¡e3e 4d†d‡¡e 4dˆd‰¡gƒe 4d†d‡¡e 4dŠd‹¡ie3e 4dŠd‹¡e 4dˆd‰¡gƒfe 5dŒ¡ej6d�dŒdŽ�gej6d�dŒdŽ�ej6d�dŒdŽ�iej6d�dŒdŽ�gfg	¡d�d‘„ ƒZ7d’d“„ Z8d”d•„ Z9d–d—„ Z:d˜d™„ Z;ej dšd%d$g¡d›dœ„ ƒZ<ej dšd%d$g¡d�dž„ ƒZ=dŸd „ Z>ej d¡d9e?j@d¢g¡d£d¤„ ƒZAd¥d¦„ ZBej d§d¨dyg¡d©dª„ ƒZCej d¡d«d¬g¡d­d®„ ƒZDd¯d°„ ZEd±S )²ÚTestSeriesReplacec                 C   s   t jg d¢td�}| dd ¡}t jg d¢td�}t ||¡ t  t d¡¡ 	dti¡}d|j
d< | dd ¡}t  t d¡t d¡tjg d	¢td�d
œ¡}|j
d d u sªJ ‚t ||¡ t  g d¢¡}| dd ¡}t  g d¢¡}|j
d d u sðJ ‚t ||¡ d S )N)r   r   Ú ©Údtyper   )r   r   N)é   r   é   )r   r   r   )ç        r	   N)r   é   r   )é
   é   é   Úar   Úbr   r   )r   r   r   NNr   Néÿÿÿÿ)ÚpdÚSeriesÚobjectÚreplaceÚtmÚassert_series_equalÚ	DataFrameÚnpZzerosÚastypeÚilocÚarrayÚassert_frame_equal)ÚselfÚserÚresultÚexpectedÚdf© r"   úg/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/series/methods/test_replace.pyÚtest_replace_explicit_none   s(    
ýÿz,TestSeriesReplace.test_replace_explicit_nonec                 C   sp   t jd d t  d¡gtd�}| tjd i¡}t ||¡ |j	tksDJ ‚| tjd ¡}t ||¡ |j	tkslJ ‚d S )Nz2021-12-16 17:31r   )
r   r   Ú	Timestampr   r   r   Únanr   r   r   )r   r   Úresr"   r"   r#   Ú!test_replace_noop_doesnt_downcast(   s    z3TestSeriesReplace.test_replace_noop_doesnt_downcastc              	   C   sH  d}t  tj d¡ |¡¡}tj|dd…< d|dd…< |jtjgddd	�}|d u sVJ ‚| d¡}t	 
||¡ | d
tj¡}tj||d
k< t	 
||¡ t jt tj d¡ |¡¡t jd|d�td�}tj|d d…< d|dd…< d|dd…< d}t	jt|d��$ | tjddgd¡}W d   ƒ n1 �s&0    Y  |d d… dk ¡ �sJJ ‚|dd… dk ¡ �sdJ ‚|dd… dk ¡ �s~J ‚t  |d d… ¡ ¡ �sšJ ‚t	jt|d��( | tjdddddi¡}W d   ƒ n1 �sØ0    Y  |d d… dk ¡ �süJ ‚|dd… dk ¡ �sJ ‚|dd… dk ¡ �s0J ‚t  |d d… ¡ ¡ �sLJ ‚t	jt|d��( | tjddgg d¢¡}W d   ƒ n1 �sŠ0    Y  t	 
||¡ t	jt|d��( |jtjddgddd	�}W d   ƒ n1 �sÞ0    Y  |d u �söJ ‚|d d… dk ¡ �sJ ‚|dd… dk ¡ �s*J ‚|dd… dk ¡ �sDJ ‚d S )Né2   r   r   é   é   r   r   T©Úinplacer	   ú
2020-01-01©Úperiodsr   é   ÚfooÚbarr   r   ú!Downcasting behavior in `replace`©Úmatchéþÿÿÿéýÿÿÿ©r   r7   r8   )r   r   r   ÚrandomÚdefault_rngÚstandard_normalr&   r   Úfillnar   r   ÚfabsÚ
date_ranger   Úassert_produces_warningÚFutureWarningÚallÚisna)r   ÚNr   Úreturn_valueÚexpÚrsÚmsgÚrs2r"   r"   r#   Útest_replace4   sR    
ý4888zTestSeriesReplace.test_replacec              	   C   s”   t  tjdtjg¡}t | tjd¡| d¡¡ t  tjdddtjd t j	g¡}t | tjd¡| d¡¡ | 
¡ }d|d< t | tjd¡|¡ d S )Nr   r2   r3   r*   )r   r   r   r&   Úinfr   r   r   r=   ÚNaTÚcopy)r   r   Zfilledr"   r"   r#   Útest_replace_nan_with_info   s    z+TestSeriesReplace.test_replace_nan_with_infc                 C   sÎ   t  |j¡}t | tjd¡| d¡¡ d}t	j
t|d��& | g d¢tjdg¡ W d   ƒ n1 sf0    Y  | ddgtjdg¡}t ||¡ t  g d¢¡}| g d¢g d¢¡}t |t  g d¢¡¡ d S )	Nr   z:Replacement lists must match in length\. Expecting 3 got 2r5   ©r
   r   r   r
   r   ©r   r
   r   r   r*   )r*   r   r   r
   r   )r   r   Úindexr   r   r   r   r&   r=   ÚpytestÚraisesÚ
ValueError)r   Zdatetime_seriesr   rH   r   r"   r"   r#   Ú+test_replace_listlike_value_listlike_targety   s    4z=TestSeriesReplace.test_replace_listlike_value_listlike_targetc                 C   sÒ   t  dtjdddg¡}| ¡ }d}tjt|d�� | tjg¡}W d   ƒ n1 sT0    Y  t 	||¡ t  dtjdddg¡}| ¡ }tjt|d�� | tj¡}W d   ƒ n1 s¸0    Y  t 	||¡ d S )Nr   r   r   r*   úPSeries.replace without 'value' and with non-dict-like 'to_replace' is deprecatedr5   )
r   r   r   r&   Zffillr   r@   rA   r   r   )r   r   r    rH   r   r"   r"   r#   Útest_replace_gh5319Š   s    ÿ,*z%TestSeriesReplace.test_replace_gh5319c                 C   sz   t  t jddd�¡}| ¡ }t  d¡|jd< | t  d¡t  d¡i¡}t ||¡ | t  d¡t  d¡¡}t ||¡ d S )NÚ20130101r1   r/   Z20120101r   Z20130103)	r   r   r?   rM   r%   Úlocr   r   r   ©r   r   r    r   r"   r"   r#   Útest_replace_datetime64�   s    z)TestSeriesReplace.test_replace_datetime64c                 C   sf   t jddd�}t  t jt jddd�g¡}| tjt jgt jj¡}t jt jj|gtd�}t	 
||¡ d S )Nz
2015/01/01ÚUTC)Útzr   )r   r%   r   rL   r   r   r&   Úminr   r   r   )r   ÚtsÚsr   r    r"   r"   r#   Útest_replace_nat_with_tz§   s
    z*TestSeriesReplace.test_replace_nat_with_tzc                 C   sf   t jddd�}t  |¡}| |d |d i¡}t  |d |d |d |d |d g¡}t ||¡ d S )Nr   r1   r/   r
   r   r   r*   )r   Ztimedelta_ranger   r   r   r   )r   Ztdir   r   r    r"   r"   r#   Útest_replace_timedelta_td64¯   s
    
(z-TestSeriesReplace.test_replace_timedelta_td64c              	   C   sp  t  g d¢¡}d}tjt|d�� | g d¢¡}W d   ƒ n1 sD0    Y  t |t  g d¢¡¡ | ¡ }tjt|d��" |jg d¢dd�}W d   ƒ n1 s¢0    Y  |d u s¸J ‚t |t  g d¢¡¡ | ¡ }d}d	}tj	t
|d��b tjt|d��$ |jg d¢dd
d�}W d   ƒ n1 �s(0    Y  |d u �s@J ‚W d   ƒ n1 �sV0    Y  t ||¡ d S )NrP   rV   r5   rO   )r   r   r   r   r*   Tr,   zVInvalid fill method\. Expecting pad \(ffill\) or backfill \(bfill\)\. Got crash_cymbalú4The 'method' keyword in Series.replace is deprecatedZcrash_cymbal)r-   Úmethod)r   r   r   r@   rA   r   r   rM   rR   rS   rT   )r   r   Úmsg2r   r`   rE   rH   Zmsg3r"   r"   r#   Útest_replace_with_single_list¹   s(    ÿ,0ÿ4.z/TestSeriesReplace.test_replace_with_single_listc              	      s€  t jt d¡dd�‰ ‡ fdd„}dgdg }}|||ˆ ƒ ||d |d ˆ ƒ t  g d	¢¡}dgd
g }}||||ƒ t  g d¢¡}ddgd
dg }}||||ƒ t  dddd
t  d¡g¡}ddgd
t  d¡g }}||||ƒ t jg d¢dd�}ddgd
dg }}||||ƒ t  t jdddd�¡}| t¡ |d |d |d gg d¢¡}t jg d¢|dd …  	¡  td�}t
 ||¡ d S )Nr1   Úint64r   c                    sL   ˆ   ¡ }ˆ  | |¡}|j| |dd�}|d u s0J ‚t ||¡ t ||¡ d S )NTr,   )rM   r   r   r   )Zto_repÚvalr    Úscr   rE   ©r   r"   r#   Úcheck_replaceÙ   s    zATestSeriesReplace.test_replace_mixed_types.<locals>.check_replacer   g      @r   )r   r
   r   ç      @r*   rl   )r   r
   r   rl   r   r*   r   r
   r   rX   )r   r
   r   rl   Tr   Tz1/1/2001z	1/10/2001ÚD©Úfreq)ç      ð?r   r   )r   r   r   Zaranger%   r?   r   r   r   Útolistr   r   )r   rk   ÚtrÚvÚeZdrr   r    r"   rj   r#   Útest_replace_mixed_typesÖ   s*    	("z*TestSeriesReplace.test_replace_mixed_typesc                 C   s*   t  g d¢¡}| dd¡}t ||¡ d S )N©TFTZfunz
in-the-sun©r   r   r   r   r   )r   r`   r   r"   r"   r#   Ú#test_replace_bool_with_string_no_op  s    z5TestSeriesReplace.test_replace_bool_with_string_no_opc                 C   s8   t  g d¢¡}| dd¡}t  g d¢¡}t ||¡ d S )Nrv   TÚ2u)ry   Fry   rw   ©r   r`   r   r    r"   r"   r#   Útest_replace_bool_with_string  s    z/TestSeriesReplace.test_replace_bool_with_stringc                 C   s>   t  g d¢¡}| dd¡}t  dgt|ƒ ¡}t ||¡ d S )Nrv   TF)r   r   r   Úlenr   r   rz   r"   r"   r#   Útest_replace_bool_with_bool  s    z-TestSeriesReplace.test_replace_bool_with_boolc                 C   s<   t  g d¢¡}| dddœ¡}t  g d¢¡}t ||¡ d S )Nrv   ZasdbÚyes)ZasdfT)r~   Fr~   rw   rz   r"   r"   r#   Ú%test_replace_with_dict_with_bool_keys  s    z7TestSeriesReplace.test_replace_with_dict_with_bool_keysc                 C   s|   t jdd g|d� dt j¡}t jt jt jg|d�}t ||¡ t jddg|d� dt j¡}|jdt jdd� t ||¡ d S )Nr   r   r
   Tr,   )r   r   r   ÚNAr   r   )r   Zany_int_ea_dtyper   r    r"   r"   r#   Útest_replace_Int_with_na  s    z*TestSeriesReplace.test_replace_Int_with_nac              	   C   s°  d}t jt tj d¡ |¡¡t jd|d�td�}tj	|d d…< d|dd	…< d
|dd…< d}t
jt|d��$ | tj	dd
gd¡}W d   ƒ n1 s”0    Y  |d d… dk ¡ s¶J ‚|dd	… dk ¡ sÎJ ‚|dd… dk ¡ sæJ ‚t  |d d… ¡ ¡ �sJ ‚t
jt|d��( | tj	dddd
di¡}W d   ƒ n1 �s@0    Y  |d d… dk ¡ �sdJ ‚|dd	… dk ¡ �s~J ‚|dd… dk ¡ �s˜J ‚t  |d d… ¡ ¡ �s´J ‚t
jt|d��( | tj	dd
gg d¢¡}W d   ƒ n1 �sò0    Y  t
 ||¡ t
jt|d��( |jtj	dd
gddd�}W d   ƒ n1 �sF0    Y  |d u �s^J ‚|d d… dk ¡ �sxJ ‚|dd	… dk ¡ �s’J ‚|dd… dk ¡ �s¬J ‚d S )Nr)   r   r.   r/   r   r1   r2   r+   r   r3   r   r   r4   r5   r   r7   r8   r9   Tr,   )r   r   r   r>   r:   r;   r<   r?   r   r&   r   r@   rA   r   rB   rC   r   )r   rD   r   rH   rG   rI   rE   r"   r"   r#   Útest_replace2"  s>    ý2888zTestSeriesReplace.test_replace2r-   TFc                 C   sV   t  g d¢¡}t  g d¢¡}|jg d¢g d¢|d�}|rFt ||¡ nt ||¡ d S )NrO   ©r   r   r*   r,   rw   )r   r-   r   r    r'   r"   r"   r#   Útest_replace_cascadeM  s    z&TestSeriesReplace.test_replace_cascadec                 C   sL   t jddtjg|d�}t jddtjg|d�}| dddœ¡}t ||¡ d S )NÚoneÚtwor   Ú1Ú2©r…   r†   )r   r   r   r&   r   r   r   )r   Znullable_string_dtyper   r    r   r"   r"   r#   Ú+test_replace_with_dictlike_and_string_dtypeZ  s    z=TestSeriesReplace.test_replace_with_dictlike_and_string_dtypec                 C   s@   t  tdƒ¡}t || i ¡¡ t  g ¡}t || |¡¡ d S )NÚabcd)r   r   Úlistr   r   r   )r   r`   Zempty_seriesr"   r"   r#   Ú test_replace_with_empty_dictlikea  s    
z2TestSeriesReplace.test_replace_with_empty_dictlikec                 C   s:   t  g d¢¡}| dtj¡}t  g d¢¡}t ||¡ d S ©NrO   rˆ   ©r   r   r   r   r&   r   r   rz   r"   r"   r#   Útest_replace_string_with_numberi  s    z1TestSeriesReplace.test_replace_string_with_numberc                 C   s<   t  ddg¡}t  ddg¡}| dddœ¡}t ||¡ d S )Nr   r   )r   r   rw   )r   r`   r    r   r"   r"   r#   Ú(test_replace_replacer_equals_replacementp  s    z:TestSeriesReplace.test_replace_replacer_equals_replacementc                 C   s:   t  g d¢¡}| dtj¡}t  g d¢¡}t ||¡ d S rŽ   r�   rz   r"   r"   r#   Ú test_replace_unicode_with_numberx  s    z2TestSeriesReplace.test_replace_unicode_with_numberc                 C   s|   t  g d¢¡}d}tjt|d��" | ddgtj¡}W d   ƒ n1 sH0    Y  t  dtjdtjdd	g¡}t ||¡ d S )
N)r
   r   r   Ú4r*   r1   r4   r5   r   r“   r
   r   r*   r1   )	r   r   r   r@   rA   r   r   r&   r   )r   r`   rH   r   r    r"   r"   r#   Ú$test_replace_mixed_types_with_string  s    0z6TestSeriesReplace.test_replace_mixed_types_with_stringzcategorical, numericÚAÚB)Ú
categoriesr
   r   c                 C   sˆ   t  |¡}d}d}tjt|d��  | dddœ¡}W d   ƒ n1 sF0    Y  t  |¡ d¡}d|jjvrx|j 	d¡}t 
||¡ d S )Nr4   ú#with CategoricalDtype is deprecatedr5   r
   r   )r•   r–   Úcategory)r   r   r   r@   rA   r   r   Úcatr—   Úadd_categoriesr   )r   ZcategoricalÚnumericZusing_infer_stringr   rH   r   r    r"   r"   r#   Útest_replace_categoricalˆ  s    	
.z*TestSeriesReplace.test_replace_categoricalzdata, data_exp©r   r   Úc)r   r   rŸ   r   r   c                 C   sn   t j|dd�}d}tjt|d��  |jdddd� W d   ƒ n1 sF0    Y  t j|dd�}t ||¡ d S )	Nr™   r   r˜   r5   r   r   T©Ú
to_replaceÚvaluer-   ©r   r   r   r@   rA   r   r   )r   ÚdataZdata_expr   rH   r    r"   r"   r#   Ú test_replace_categorical_inplace�  s    .z2TestSeriesReplace.test_replace_categorical_inplacec           	      C   s¤  t jdddd�}t  |¡}| d¡}| ¡ }|j d¡}d|d< |j ¡ }|d dksZJ ‚d}tj	t
|d	��  | |d d¡}W d   ƒ n1 s’0    Y  t ||¡ |d dks¸J ‚d}tj	t
|d	��$ |j|d dd
d�}W d   ƒ n1 sô0    Y  |d u �sJ ‚t ||¡ |d }d}tj	t
|d	��( |j|d |d d
d�}W d   ƒ n1 �sb0    Y  |d u �szJ ‚|d |d   k�rš|k�s n J ‚d S )Nú
2016-01-01r   ú
US/Pacific©r0   r]   r™   r2   r   r˜   r5   Tr,   r   r
   )r   r?   r   r   rM   rš   r›   Zremove_unused_categoriesr   r@   rA   r   r   )	r   Zdtir`   rŸ   r    rH   r   rE   Zfirst_valuer"   r"   r#   Útest_replace_categorical_single©  s0    


.28z1TestSeriesReplace.test_replace_categorical_singlec                 C   st   t  g d¢¡}| dgdg¡}t  g d¢¡}t ||¡ t  g d¢¡}| dgdg¡}t  g d¢¡}t ||¡ d S )NrP   r   Ú100000000000000000000)r   r
   r   rª   r*   )r   rª   Ú100000000000000000001r
   )r   r
   r«   rw   rz   r"   r"   r#   Ú"test_replace_with_no_overflowerrorÈ  s    z4TestSeriesReplace.test_replace_with_no_overflowerrorzser, to_replace, exprO   r   r*   rƒ   )r‡   rˆ   Ú3rˆ   r­   r“   )rˆ   r­   r“   c                 C   s.   t  |¡}t  |¡}| |¡}t ||¡ d S ©Nrw   )r   r   r¡   rF   Úseriesr    r   r"   r"   r#   Útest_replace_commutativeÕ  s    


z*TestSeriesReplace.test_replace_commutativezser, exp)r
   Tr   )Úxr   r   )r±   Tr   c                 C   s0   t  |¡}| dd¡}t  |¡}t ||¡ d S )Nr   Trw   )r   r   rF   r¯   r   r    r"   r"   r#   Útest_replace_no_castç  s    

z&TestSeriesReplace.test_replace_no_castc              	   C   s„   t  g d¢¡}d}d}tjt|d��L tjt|d�� | dd„ ¡ W d   ƒ n1 sX0    Y  W d   ƒ n1 sv0    Y  d S )N©r   r   zc zZExpecting 'to_replace' to be either a scalar, array-like, dict or None, got invalid type.*rV   r5   c                 S   s   |   ¡ S r®   )Ústrip)r±   r"   r"   r#   Ú<lambda>  ó    zCTestSeriesReplace.test_replace_invalid_to_replace.<locals>.<lambda>)	r   r   rR   rS   Ú	TypeErrorr   r@   rA   r   )r   r¯   rH   re   r"   r"   r#   Útest_replace_invalid_to_replaceô  s    ÿÿz1TestSeriesReplace.test_replace_invalid_to_replaceÚframec                 C   s`   t  g d¢¡}|r| ¡ }d}tjt|d��  |jdgdd� W d   ƒ n1 sR0    Y  d S )Nr³   z4'to_replace' must be 'None' if 'regex' is not a boolr5   r   r2   )r¡   Úregex)r   r   Úto_framerR   rS   rT   r   )r   r¹   ÚobjrH   r"   r"   r#   Útest_replace_nonbool_regex  s    z,TestSeriesReplace.test_replace_nonbool_regexc                 C   sd   t jg tjd�}|r| ¡ }|jdddd�}|d u s8J ‚|jdddd�}t ||¡ ||us`J ‚d S )Nr   r*   r1   Tr,   F)r   r   r   Úfloat64r»   r   r   Úassert_equal)r   r¹   r¼   r'   r"   r"   r#   Útest_replace_empty_copy  s    z)TestSeriesReplace.test_replace_empty_copyc                 C   s°   t  ddd|dg¡}dddœ}d}d}tjt|d�� | ||¡ W d   ƒ n1 sV0    Y  d}dd	dœ}d
}tjt|d�� | ||¡ W d   ƒ n1 s¢0    Y  d S )Nr
   r   r•   T)r   r   r2   zASeries.replace cannot use dict-like to_replace and non-None valuer5   r3   z<Series.replace cannot use dict-value and non-None to_replace)r   r   rR   rS   rT   r   )r   Zfixed_now_tsr   r¡   r¢   rH   r"   r"   r#   Ú"test_replace_only_one_dictlike_arg  s    
*
z4TestSeriesReplace.test_replace_only_one_dictlike_argc                 C   s2   |t jg d¢dd�ƒ}| dd¡}t ||¡ d S )NrO   ÚInt64r   r   )r   r   r   r   r¿   )r   Zframe_or_seriesr¼   r   r"   r"   r#   Útest_replace_extension_other+  s    z.TestSeriesReplace.test_replace_extension_otherrj   c                 C   s¤  |  ¡ }d}tjt|d��" |j|d dd�}W d   ƒ n1 sB0    Y  tj|d |d gt|dd … ƒ |jd�}t 	||¡ d	}tjt|d��" |j|d dd�}W d   ƒ n1 s¾0    Y  t 
||  ¡ ¡ | ¡ }tjt|d��$ |j|d dd
d�}	W d   ƒ n1 �s0    Y  |	d u �s2J ‚t 	||¡ tjt|d��$ |j|d dd
d�}
W d   ƒ n1 �sx0    Y  |
d u �s�J ‚t 
||  ¡ ¡ d S )Nrc   r5   r
   Úpad)rd   r   r   r   z7The 'method' keyword in DataFrame.replace is deprecatedT)rd   r-   )r»   r   r@   rA   r   r   r   rŒ   r   r   r   rM   )r   r   r!   Zmsg1r'   r    re   Zres_dfÚser2Úres2Zres_df2r"   r"   r#   Ú_check_replace_with_method2  s&    0,044z,TestSeriesReplace._check_replace_with_methodc                 C   s0   t jddt jdg|d�}t  |¡}|  |¡ d S )Nr
   r   r*   r   )r   r   r€   r   rÇ   )r   Zany_numeric_ea_dtypeZarrr   r"   r"   r#   Ú!test_replace_ea_dtype_with_methodK  s    
z3TestSeriesReplace.test_replace_ea_dtype_with_methodÚas_categoricalc                 C   s6   t j tdƒ¡}t  |¡}|r(| d¡}|  |¡ d S )Nr*   r™   )r   ZIntervalIndexZfrom_breaksÚranger   r   rÇ   )r   rÉ   Úidxr   r"   r"   r#   Ú!test_replace_interval_with_methodQ  s
    

z3TestSeriesReplace.test_replace_interval_with_methodÚ	as_periodc                 C   sV   t jdddd�}|r$| d ¡ d¡}t  |¡}t j|jd< |rH| d¡}|  |¡ d S )Nr¦   r1   r§   r¨   rm   r7   r™   )	r   r?   Ztz_localizeZ	to_periodr   rL   r   r   rÇ   )r   rÍ   rÉ   rË   r   r"   r"   r#   Ú%test_replace_datetimelike_with_method\  s    

z7TestSeriesReplace.test_replace_datetimelike_with_methodc                 C   sH   t  g d¢¡}t d¡}|j|didd�}t  g d¢¡}t ||¡ d S )Nrž   z^a$ÚzT©rº   )rÏ   r   rŸ   )r   r   ÚreÚcompiler   r   r   )r   r`   rº   r   r    r"   r"   r#   Ú test_replace_with_compiled_regexj  s
    
z2TestSeriesReplace.test_replace_with_compiled_regexc              	   C   sl   t jddddddt jdgdd�}dddd	d
œ}|j|dd�}t jddd	dddt jdgdd�}t ||¡ d S )NÚAAÚBBÚCCZDDÚEEr   Ústringr   zCC-REPL)rÔ   rÕ   r×   rÖ   TrÐ   ©r   r   r€   r   r   r   )r   r   Zregex_mappingr   rF   r"   r"   r#   Útest_pandas_replace_nar  s     üÿz(TestSeriesReplace.test_pandas_replace_naz,dtype, input_data, to_replace, expected_dataÚboolrg   r   r   )r
   r   rÂ   r¾   çš™™™™™ñ?çš™™™™™@g333333$@g     €4@)rÜ   rÝ   ÚFloat64rØ   r…   r†   r‡   r‰   rp   gš™™™™™@gffffff@gÍÌÌÌÌÌ@g333333%@gÍÌÌÌÌÌ4@ÚMz2020-05rn   z2020-06c                 C   s6   t j||d�}| |¡}t j||d�}t ||¡ d S )Nr   rw   )r   r   Z
input_datar¡   Zexpected_datar   r   r    r"   r"   r#   Útest_replace_dtype‚  s    
z$TestSeriesReplace.test_replace_dtypec           
      C   sÌ   t jddtjgdd�}| dddœ¡}t jddtjgdd�}t ||¡ t jdtjgdd�}| dd	¡}t jd	tjgdd�}t ||¡ t jdd	gdd�}| dt j¡}t jt jd	gdd�}	t ||	¡ d S )
Nr…   r†   rØ   r   r‡   rˆ   r‰   r•   r–   )r   r   r   r&   r   r   r   r€   )
r   r   r'   r    rÅ   rÆ   Z	expected2Zser3Zres3Z	expected3r"   r"   r#   Útest_replace_string_dtype¦  s    z+TestSeriesReplace.test_replace_string_dtypec                 C   sD   t jddgdd�}| ddgd¡}t jddgdd�}t ||¡ d S )NÚabcÚdefrØ   r   zany other stringZxyzrw   ©r   r   r'   r    r"   r"   r#   Ú)test_replace_string_dtype_list_to_replace¸  s    z;TestSeriesReplace.test_replace_string_dtype_list_to_replacec                 C   sD   t jddgdd�}|jdddd�}t jddgdd�}t ||¡ d S )	Nr•   r–   rØ   r   Ú.ÚCTrÐ   rw   rä   r"   r"   r#   Útest_replace_string_dtype_regex¿  s    z1TestSeriesReplace.test_replace_string_dtype_regexc                 C   sœ  t jg d¢t  ¡ d�}| ddi¡j|jks0J ‚| dd¡j|jksHJ ‚| ddi¡j|jksbJ ‚| dd¡j|jkszJ ‚|jddgddgd�}|j|jks J ‚t jg d	¢t  ¡ d�}| d
di¡j|jksÐJ ‚| d
d¡j|jksèJ ‚| d
di¡j|jk�sJ ‚| d
d¡j|jk�sJ ‚tjtdd�� | d
di¡ W d   ƒ n1 �sR0    Y  tjtdd�� | d
d¡ W d   ƒ n1 �sŽ0    Y  d S )N)rp   ç       @gË¡E¶óý@gš™™™™™@r   rp   é	   g      "@ré   g      $@©r¡   r¢   )r
   r   r   r*   r
   zInvalid valuer5   g      #@)	r   r   ZFloat64Dtyper   r   Z
Int64DtyperR   rS   r·   )r   Zfloatsr'   Zintsr"   r"   r#   Útest_replace_nullable_numericÆ  s     .z/TestSeriesReplace.test_replace_nullable_numericrº   c                 C   sn   t jdgtd�}t  dg¡}d}tjt|d��  |jdd|d�}W d   ƒ n1 sT0    Y  t ||¡ d S )NÚ0r   r
   r4   r5   ©r¡   r¢   rº   )r   r   r   r   r@   rA   r   r   ©r   rº   r¯   r    rH   r   r"   r"   r#   Útest_replace_regex_dtype_seriesÞ  s    .z1TestSeriesReplace.test_replace_regex_dtype_seriesc                 C   sr   t jdgdd�}t jdgdd�}d}tjt|d��  |jdd|d�}W d   ƒ n1 sX0    Y  t ||¡ d S )	Nrí   Ústrr   r
   rg   r4   r5   rî   r£   rï   r"   r"   r#   Ú&test_replace_regex_dtype_series_stringè  s    .z8TestSeriesReplace.test_replace_regex_dtype_series_stringc                 C   sb   t jg d¢|d�}t jg d¢|d�}tt|j|jƒƒ}| |¡}| ddddœ¡}t ||¡ d S )N)r
   r
   r
   r   r   r   r   r   r   )r   r   r
   r   r
   r   )	r   r   ÚdictÚzipÚvaluesrQ   r   r   r   )r   Zany_int_numpy_dtypeZlabsÚmapsZmap_dictr   r    r"   r"   r#   Ú test_replace_different_int_typesñ  s    
z2TestSeriesReplace.test_replace_different_int_typesrh   ré   c                 C   s<   t  d|g¡}| |d ¡}t jdd gtd�}t ||¡ d S )Nr
   r   )r   r   r   r   r   r   )r   rh   r   r   r    r"   r"   r#   Ú%test_replace_value_none_dtype_numericü  s    z7TestSeriesReplace.test_replace_value_none_dtype_numericc                 C   sÌ   t jdg d¢itd�}|d  dgtjg¡|d< t jddtjdgitd�}t ||¡ t jdg d¢itd�}|d  d gtjg¡|d< t ||¡ t jdg d¢itd�}|d  tj¡|d< t ||¡ d S )NZTest)ú0.5Tú0.6r   Trù   rú   )rù   Nrú   )	r   r   r   r   r   r&   r   r   r=   )r   r!   r    r"   r"   r#   Ú test_replace_change_dtype_series  s    z2TestSeriesReplace.test_replace_change_dtype_seriesr   r   c                 C   sf   t jddt jg|d�}t jddt jg|d�}|jddd�}t ||¡ |jdddd� t ||¡ d S )Nr   r
   r   r   rë   Tr    rÙ   )r   r   r   r    r   r"   r"   r#   Útest_replace_na_in_obj_column  s    z/TestSeriesReplace.test_replace_na_in_obj_columnr   g      à?c                 C   s\   t  |dg¡}t  |t jg¡}|jdt jd�}t ||¡ |jdt jdd� t ||¡ d S )Nr
   rë   Tr    rÙ   )r   rh   r   r    r   r"   r"   r#   Ú#test_replace_numeric_column_with_na  s    z5TestSeriesReplace.test_replace_numeric_column_with_nac                 C   sd   t jdgdd�}| ¡ }| dd¡}t ||¡ t jdgdd�}| ¡ }| dd¡}t ||¡ d S )Nr	   rÞ   r   Frp   ÚbooleanT)r   r   rM   r   r   r   rZ   r"   r"   r#   Útest_replace_ea_float_with_bool)  s    z1TestSeriesReplace.test_replace_ea_float_with_boolN)FÚ__name__Ú
__module__Ú__qualname__r$   r(   rJ   rN   rU   rW   r[   ra   rb   rf   ru   rx   r{   r}   r   r�   r‚   rR   ÚmarkZparametrizer„   rŠ   r�   r�   r‘   r’   r”   r   ZCategoricalr�   r¥   r©   r¬   r°   r²   r¸   r½   rÀ   rÁ   rÃ   r   rÇ   rÈ   rÌ   rÎ   rÓ   rÚ   ZIntervalDtyper   ZIntervalZPeriodDtypeZPeriodrà   rá   rå   rè   rì   rð   rò   r÷   r   r&   rø   rû   rü   rý   rÿ   r"   r"   r"   r#   r      sØ   ;


+	+
	þþ
ÿ
	þþ
 ÿ


	


üüüíþ

	





r   )rÑ   Únumpyr   rR   Zpandasr   Zpandas._testingZ_testingr   Zpandas.core.arraysr   r   r"   r"   r"   r#   Ú<module>   s   