o
    �¨ÊhÀ|  ã                   @   sV   d dl Z d dlZd dlZd dlmZ d dlZd dlm	Z
 d dlmZ G dd„ dƒZdS )é    N)Úusing_pyarrow_string_dtype)Ú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jeƒ d4d5�ej d6e j!d7gd7d8gd9�d:gfe j!d7d8gd7d8gd9�d:d;gfg¡d<d=„ ƒƒZ"ej d>g d?¢g d@¢fdAgdBgfg¡dCdD„ ƒZ#dEdF„ Z$dGdH„ Z%ej dIg dJ¢d;dKdLdJœg dM¢fg dN¢dOdPdQdNœg dR¢fg¡dSdT„ ƒZ&ej dUg dJ¢g dV¢fg dW¢g dX¢fg¡dYdZ„ ƒZ'd[d\„ Z(ej d]d%d$g¡d^d_„ ƒZ)ej d]d%d$g¡d`da„ ƒZ*dbdc„ Z+ddde„ Z,dfe j-fdgdh„Z.didj„ Z/ej dkd$d%g¡dldm„ ƒZ0ej dnd$d%g¡ej dkd$d%g¡dodp„ ƒƒZ1dqdr„ Z2dsdt„ Z3ej dudvd$d%gd$d%id%d%gfdwd:d;gdxdydzœdxdygfd{d:d;gdxdydzœdxdygfd|d}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†dOd‡œd†dOgfe  4dw¡e5e  6d:d;¡e  6d;dK¡gƒe  6d:d;¡e  6dxdy¡ie5e  6dxdy¡e  6d;dK¡gƒfe  4d|¡e5e  6dˆd‰¡e  6dŠd‹¡gƒe  6dˆd‰¡e  6dŒd�¡ie5e  6dŒd�¡e  6dŠd‹¡gƒfe  7dŽ¡e j8d�dŽd��ge j8d�dŽd��e j8d‘dŽd��ie j8d‘dŽd��gfg	¡d’d“„ ƒZ9d”d•„ Z:d–d—„ Z;d˜d™„ Z<dšd›„ Z=ejjeƒ dœd5�ej d�d%d$g¡dždŸ„ ƒƒZ>d d¡„ Z?ej d¢d;e@jAd£g¡d¤d¥„ ƒZBd¦d§„ ZCej d¨d©d{g¡dªd«„ ƒZDej d¢d¬d­g¡d®d¯„ ƒZEd°d±„ ZFd²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 sUJ ‚t ||¡ t  g d¢¡}| dd ¡}t  g d¢¡}|j
d d u sxJ ‚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ÚnpÚzerosÚastypeÚilocÚarrayÚassert_frame_equal)ÚselfÚserÚresultÚexpectedÚdf© r$   úZ/var/www/html/env/lib/python3.10/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s"J ‚| tjd ¡}t ||¡ |j	tks6J ‚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   s:  d}t  tj d¡ |¡¡}tj|dd…< d|dd…< |jtjgddd	�}|d u s+J ‚| 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’w   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æw   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gg d¢¡}W d   ƒ n	1 �s>w   Y  t	 
||¡ t	jt|d�� |jtjddgddd	�}W d   ƒ n	1 �shw   Y  |d u �stJ ‚|d d… dk ¡ �s�J ‚|dd… dk ¡ �sŽJ ‚|dd… dk ¡ �s›J ‚d S )Né2   r	   r   é   é   r   r   T©Úinplacer
   ú
2020-01-01©Úperiodsr   é   ÚfooÚbarr   r   ú!Downcasting behavior in `replace`©Úmatchéþÿÿÿéýÿÿÿ©r   r9   r:   )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_replace6   sZ   
ýÿÿÿÿ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   r4   r5   r,   )r   r   r   r(   Úinfr   r   r   r?   ÚNaTÚcopy)r   r    Úfilledr$   r$   r%   Útest_replace_nan_with_infq   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 s3w   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 2r7   ©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   Údatetime_seriesr    rJ   r!   r$   r$   r%   Ú+test_replace_listlike_value_listlike_target{   s   ÿ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 s*w   Y  t 	||¡ t  dtjdddg¡}| ¡ }tjt|d�� | tj¡}W d   ƒ n1 s\w   Y  t 	||¡ d S )Nr   r	   r   r,   úPSeries.replace without 'value' and with non-dict-like 'to_replace' is deprecatedr7   )
r   r   r   r(   Úffillr   rB   rC   r   r   )r   r    r"   rJ   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Ú20130101r3   r1   Ú20120101r	   Ú20130103)	r   r   rA   rO   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   rN   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   r3   r1   r   r   r	   r,   )r   Útimedelta_ranger   r   r   r   )r   Útdir    r!   r"   r$   r$   r%   Útest_replace_timedelta_td64±   s
   
(z-TestSeriesReplace.test_replace_timedelta_td64c              	   C   sj  t  g d¢¡}d}tjt|d�� | g d¢¡}W d   ƒ n1 s"w   Y  t |t  g d¢¡¡ | ¡ }tjt|d�� |jg d¢dd�}W d   ƒ n1 sQw   Y  |d u s\J ‚t |t  g d¢¡¡ | ¡ }d}d	}tj	t
|d��/ tjt|d�� |jg d¢dd
d�}W d   ƒ n1 s“w   Y  |d u sžJ ‚W d   ƒ n1 s¨w   Y  t ||¡ d S )NrS   rZ   r7   rR   )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 deprecatedÚcrash_cymbal)r/   Úmethod)r   r   r   rB   rC   r   r   rO   rU   rV   rW   )r   r    Úmsg2r!   rg   rG   rJ   Úmsg3r$   r$   r%   Útest_replace_with_single_list»   s0   ÿÿÿÿÿý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 )Nr3   Úint64r   c                    sL   ˆ   ¡ }ˆ  | |¡}|j| |dd�}|d u sJ ‚t ||¡ t ||¡ d S )NTr.   )rO   r   r   r   )Úto_repÚvalr"   Úscr!   rG   ©r    r$   r%   Úcheck_replaceÛ   s   zATestSeriesReplace.test_replace_mixed_types.<locals>.check_replacer   g      @r   )r   r   r	   ç      @r,   rx   )r   r   r	   rx   r   r,   r   r   r	   r]   )r   r   r	   rx   Tr   Tz1/1/2001z	1/10/2001ÚD©Úfreq)ç      ð?r	   r   )r   r   r   Úaranger'   rA   r   r   r   Útolistr   r   )r   rw   ÚtrÚvÚeÚdrr!   r"   r$   rv   r%   Útest_replace_mixed_typesØ   s*   	("z*TestSeriesReplace.test_replace_mixed_typesc                 C   s*   t  g d¢¡}| dd¡}t ||¡ d S )N©TFTÚfunz
in-the-sun©r   r   r   r   r   )r   rg   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 )Nr„   TÚ2u)rˆ   Frˆ   r†   ©r   rg   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 )Nr„   TF)r   r   r   Úlenr   r   r‰   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 )Nr„   ÚasdbÚyes)ÚasdfT)rŽ   FrŽ   r†   r‰   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   Ú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 sJw   Y  |d d… dk ¡ s[J ‚|dd	… dk ¡ sgJ ‚|dd… dk ¡ ssJ ‚t  |d d… ¡ ¡ s€J ‚t
jt|d�� | tj	dddd
di¡}W d   ƒ n1 sžw   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
gg d¢¡}W d   ƒ n1 sòw   Y  t
 ||¡ t
jt|d�� |jtj	dd
gddd�}W d   ƒ n	1 �sw   Y  |d u �s(J ‚|d d… dk ¡ �s5J ‚|dd	… dk ¡ �sBJ ‚|dd… dk ¡ �sOJ ‚d S )Nr+   r	   r0   r1   r   r3   r4   r-   r   r5   r   r   r6   r7   r   r9   r:   r;   Tr.   )r   r   r   r@   r<   r=   r>   rA   r   r(   r   rB   rC   r   rD   rE   r   )r   rF   r    rJ   rI   rK   rG   r$   r$   r%   Útest_replace2$  sF   ýÿÿÿÿzTestSeriesReplace.test_replace2r/   TFc                 C   sX   t  g d¢¡}t  g d¢¡}|jg d¢g d¢|d�}|r$t ||¡ d S t ||¡ d S )NrR   ©r	   r   r,   r.   r†   )r   r/   r    r"   r)   r$   r$   r%   Útest_replace_cascadeO  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   Únullable_string_dtyper    r"   r!   r$   r$   r%   Ú+test_replace_with_dictlike_and_string_dtype\  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   rg   Úempty_seriesr$   r$   r%   Ú test_replace_with_empty_dictlikec  s   
z2TestSeriesReplace.test_replace_with_empty_dictlikec                 C   ó:   t  g d¢¡}| dtj¡}t  g d¢¡}t ||¡ d S ©NrR   rš   ©r   r   r   r   r(   r   r   r‰   r$   r$   r%   Útest_replace_string_with_numberk  ó   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   r†   )r   rg   r"   r!   r$   r$   r%   Ú(test_replace_replacer_equals_replacementr  s   z:TestSeriesReplace.test_replace_replacer_equals_replacementc                 C   r¢   r£   r¤   r‰   r$   r$   r%   Ú test_replace_unicode_with_numberz  r¦   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 s$w   Y  t  dtjdtjdd	g¡}t ||¡ d S )
N)r   r	   r   Ú4r,   r3   r6   r7   r	   r©   r   r   r,   r3   )	r   r   r   rB   rC   r   r   r(   r   )r   rg   rJ   r!   r"   r$   r$   r%   Ú$test_replace_mixed_types_with_string�  s   ÿz6TestSeriesReplace.test_replace_mixed_types_with_stringzcan't fill 0 in string)Úreasonzcategorical, numericÚAÚB)Ú
categoriesr   r	   c                 C   sˆ   t  |¡}d}d}tjt|d�� | dddœ¡}W d   ƒ n1 s#w   Y  t  |¡ d¡}d|jjvr<|j 	d¡}t 
||¡ d S )Nr6   ú#with CategoricalDtype is deprecatedr7   r   r	   )r¬   r­   Úcategory)r   r   r   rB   rC   r   r   Úcatr®   Úadd_categoriesr   )r   ÚcategoricalÚnumericr    rJ   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 s#w   Y  t j|dd�}t ||¡ d S )	Nr°   r   r¯   r7   r   r   T©Ú
to_replaceÚvaluer/   ©r   r   r   rB   rC   r   r   )r   ÚdataÚdata_expr!   rJ   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s-J ‚d}tj	t
|d	�� | |d d¡}W d   ƒ n1 sIw   Y  t ||¡ |d dks\J ‚d}tj	t
|d	�� |j|d dd
d�}W d   ƒ n1 szw   Y  |d u s…J ‚t ||¡ |d }d}tj	t
|d	�� |j|d |d d
d�}W d   ƒ n1 s¯w   Y  |d u sºJ ‚|d |d   krÉ|ksÌJ ‚ J ‚d S )Nú
2016-01-01r   ú
US/Pacific©r2   rd   r°   r4   r	   r¯   r7   Tr.   r   r   )r   rA   r   r   rO   r±   r²   Úremove_unused_categoriesr   rB   rC   r   r   )	r   Údtirg   r·   r"   rJ   r!   rG   Úfirst_valuer$   r$   r%   Útest_replace_categorical_single¬  s6   


ÿÿÿ(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 )NrS   r   Ú100000000000000000000)r   r   r	   rÆ   r,   )r   rÆ   Ú100000000000000000001r   )r   r   rÇ   r†   r‰   r$   r$   r%   Ú"test_replace_with_no_overflowerrorË  s   z4TestSeriesReplace.test_replace_with_no_overflowerrorzser, to_replace, exprR   r   r,   r•   )r™   rš   Ú3rš   rÉ   r©   )rš   rÉ   r©   c                 C   s.   t  |¡}t  |¡}| |¡}t ||¡ d S ©Nr†   )r   r    r¹   rH   Ú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	   Tr†   )r   r    rH   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��/ tjt|d�� | dd„ ¡ W d   ƒ n1 s,w   Y  W d   ƒ d S W d   ƒ d S 1 sDw   Y  d S )N©r   r   zc zZExpecting 'to_replace' to be either a scalar, array-like, dict or None, got invalid type.*rZ   r7   c                 S   s   |   ¡ S rÊ   )Ústrip)rÍ   r$   r$   r%   Ú<lambda>  s    zCTestSeriesReplace.test_replace_invalid_to_replace.<locals>.<lambda>)	r   r   rU   rV   Ú	TypeErrorr   rB   rC   r   )r   rË   rJ   ro   r$   r$   r%   Útest_replace_invalid_to_replace÷  s   ÿÿÿÿ"ÿz1TestSeriesReplace.test_replace_invalid_to_replaceÚframec                 C   sb   t  g d¢¡}|r| ¡ }d}tjt|d�� |jdgdd� W d   ƒ d S 1 s*w   Y  d S )NrÏ   z4'to_replace' must be 'None' if 'regex' is not a boolr7   r   r4   )r¹   Úregex)r   r   Úto_framerU   rV   rW   r   )r   rÔ   ÚobjrJ   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 sJ ‚|jdddd�}t ||¡ ||us0J ‚d S )Nr   r,   r3   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 s+w   Y  d}dd	dœ}d
}tjt|d�� | ||¡ W d   ƒ d S 1 sRw   Y  d S )Nr   r	   r¬   T)r   r	   r4   zASeries.replace cannot use dict-like to_replace and non-None valuer7   r5   z<Series.replace cannot use dict-value and non-None to_replace)r   r   rU   rV   rW   r   )r   Úfixed_now_tsr    r¹   rº   rJ   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 )NrR   ÚInt64r   r   )r   r   r   r   rÚ   )r   Úframe_or_seriesr×   r!   r$   r$   r%   Útest_replace_extension_other.  s   z.TestSeriesReplace.test_replace_extension_otherr    c                 C   sœ  |  ¡ }d}tjt|d�� |j|d dd�}W d   ƒ n1 s!w   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_w   Y  t 
||  ¡ ¡ | ¡ }tjt|d�� |j|d dd
d�}	W d   ƒ n1 sŒw   Y  |	d u s—J ‚t 	||¡ tjt|d�� |j|d dd
d�}
W d   ƒ n1 s¹w   Y  |
d u sÄJ ‚t 
||  ¡ ¡ d S )Nrl   r7   r   Úpad)rn   r   r	   r   z7The 'method' keyword in DataFrame.replace is deprecatedT)rn   r/   )rÖ   r   rB   rC   r   r   r   rŸ   r   r   r   rO   )r   r    r#   Úmsg1r)   r"   ro   Úres_dfÚser2Úres2Úres_df2r$   r$   r%   Ú_check_replace_with_method5  s.   ÿ,ÿÿÿ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   Úany_numeric_ea_dtypeÚarrr    r$   r$   r%   Ú!test_replace_ea_dtype_with_methodN  s   
z3TestSeriesReplace.test_replace_ea_dtype_with_methodÚas_categoricalc                 C   s6   t j tdƒ¡}t  |¡}|r| d¡}|  |¡ d S )Nr,   r°   )r   ÚIntervalIndexÚfrom_breaksÚranger   r   rç   )r   rë   Úidxr    r$   r$   r%   Ú!test_replace_interval_with_methodT  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< |r$| d¡}|  |¡ d S )Nr¿   r3   rÀ   rÁ   ry   r9   r°   )	r   rA   Útz_localizeÚ	to_periodr   rN   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   rg   rÕ   r!   r"   r$   r$   r%   Ú test_replace_with_compiled_regexm  s
   
z2TestSeriesReplace.test_replace_with_compiled_regexc                 C   sh   t jddddddt jgdd�}dddd	d
œ}|j|dd�}t jddd	dddt jgdd�}t ||¡ d S )NÚAAÚBBÚCCÚDDÚEEr   Ústringr   zCC-REPL)rú   rû   rþ   rü   Trö   ©r   r   r‘   r   r   r   )r   r    Úregex_mappingr!   rH   r$   r$   r%   Útest_pandas_replace_nau  s   üz(TestSeriesReplace.test_pandas_replace_naz,dtype, input_data, to_replace, expected_dataÚboolrr   r   r   )r   r	   rÞ   rÙ   çš™™™™™ñ?çš™™™™™@g333333$@g     €4@)r  r  ÚFloat64rÿ   r—   r˜   r™   r›   r|   gš™™™™™@gffffff@gÍÌÌÌÌÌ@g333333%@gÍÌÌÌÌÌ4@ÚMz2020-05rz   z2020-06c                 C   s6   t j||d�}| |¡}t j||d�}t ||¡ d S )Nr   r†   )r   r   Ú
input_datar¹   Ú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å   Ú	expected2Úser3Úres3Ú	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 stringÚxyzr†   ©r   r    r)   r"   r$   r$   r%   Ú)test_replace_string_dtype_list_to_replace¸  ó   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ö   r†   r  r$   r$   r%   Útest_replace_string_dtype_regex¿  r  z1TestSeriesReplace.test_replace_string_dtype_regexc                 C   s–  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s1J ‚| dd¡j|jks=J ‚|jddgddgd�}|j|jksPJ ‚t jg d	¢t  ¡ d�}| d
di¡j|jkshJ ‚| d
d¡j|jkstJ ‚| 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 s¦w   Y  tjtdd�� | d
d¡ W d   ƒ d S 1 sÄw   Y  d S )N)r|   ç       @gË¡E¶óý@gš™™™™™@r   r|   é	   g      "@r  g      $@©r¹   rº   )r   r	   r   r,   r   zInvalid valuer7   g      #@)	r   r   ÚFloat64Dtyper   r   Ú
Int64DtyperU   rV   rÒ   )r   Úfloatsr)   Úintsr$   r$   r%   Útest_replace_nullable_numericÆ  s$   ÿ"ÿz/TestSeriesReplace.test_replace_nullable_numericzcan't fill 1 in stringrÕ   c                 C   sj   t  dg¡}t  dg¡}d}tjt|d�� |jdd|d�}W d   ƒ n1 s(w   Y  t ||¡ d S )NÚ0r   r6   r7   )r¹   rº   rÕ   r»   )r   rÕ   rË   r"   rJ   r!   r$   r$   r%   Útest_replace_regex_dtype_seriesÞ  s   ÿz1TestSeriesReplace.test_replace_regex_dtype_seriesc                 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ÚvaluesrT   r   r   r   )r   Úany_int_numpy_dtypeÚlabsÚmapsÚmap_dictr!   r"   r$   r$   r%   Ú test_replace_different_int_typesé  s   
z2TestSeriesReplace.test_replace_different_int_typesrt   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   rt   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¡}|rtnd }tj|dd�� |d  dgtjg¡|d< W d   ƒ n1 s/w   Y  t j ddtjdgi¡}t 	||¡ t j dg d¢i¡}|d  d gtjg¡|d< t 	||¡ t j dg d¢i¡}|d  
tj¡|d< t 	||¡ d S )	NÚTest)ú0.5Tú0.6ÚDowncastingr7   Tr-  r.  )r-  Nr.  )r   r   Ú	from_dictrC   r   rB   r   r   r(   r   r?   )r   Úusing_infer_stringr#   Úwarnr"   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   rt   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   Fr|   ÚbooleanT)r   r   rO   r   r   r   ra   r$   r$   r%   Útest_replace_ea_float_with_bool#  s   z1TestSeriesReplace.test_replace_ea_float_with_boolN)GÚ__name__Ú
__module__Ú__qualname__r&   r*   rL   rQ   rY   r\   rb   rh   rk   rq   rƒ   r‡   rŠ   rŒ   r�   r“   r”   rU   ÚmarkÚparametrizer–   r�   r¡   r¥   r§   r¨   rª   Úxfailr   r   ÚCategoricalrµ   r¾   rÅ   rÈ   rÌ   rÎ   rÓ   rØ   rÛ   rÝ   rà   r   rç   rê   rð   rô   rù   r  ÚIntervalDtyper   ÚIntervalÚPeriodDtypeÚPeriodr
  r  r  r  r   r"  r*  r   r(   r+  r3  r4  r5  r7  r$   r$   r$   r%   r      sÚ    ;


+	+
	þþÿ
	þþ
 ÿ


	


üüüíþ
	




r   )r÷   Únumpyr   rU   Úpandas._configr   Úpandasr   Úpandas._testingÚ_testingr   Úpandas.core.arraysr   r   r$   r$   r$   r%   Ú<module>   s    