a
    é´«j#õ  ã                   @  s¨   d dl mZ d dlmZ d dlZd dlZd dlZd dlZd dlm	Z	m
Z
mZmZmZ d dlmZ ejddœdd„ƒZejd	dœd
d„ƒZG dd„ dƒZG dd„ dƒZdS )é    )Úannotations)ÚdatetimeN)Ú	DataFrameÚIndexÚSeriesÚ	TimestampÚ
date_rangezdict[str, list[int | str]])Úreturnc                   C  s   t tdƒƒt dƒdœS )Né   úab..©ÚaÚb)ÚlistÚrange© r   r   úf/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/frame/methods/test_replace.pyÚmix_ab   s    r   zdict[str, list[float | str]]c                   C  s"   t tdƒƒt dƒddtjdgdœS )Nr
   r   r   r   Úd©r   r   Úc)r   r   ÚnpÚnanr   r   r   r   Úmix_abc   s    r   c                   @  s	  e Zd Zdd„ Zej dddgejdgddejejgdgd	 d
g g d¢dœfddgddgg d¢g d¢g d¢dœfddgddgg d¢g d¢g d¢dœfg¡ej dddg¡ej dddg¡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d0d1„ Zej d2ejd3d4œd3ejd5œg¡d6d7„ ƒZej d8g d9¢¡d:d;„ ƒZej d<d=d>gd?d@dAœdBdCgfg dD¢dEejid@ejejgfg¡dFdG„ ƒZdHdI„ ZdJdK„ ZdLdM„ ZdNdO„ ZdPdQ„ ZdRdS„ ZdTdU„ Z dVdW„ Z!dXdY„ Z"dZd[„ Z#d\d]„ Z$ej d^g d_¢¡d`da„ ƒZ%dbdc„ Z&ddde„ Z'dfdg„ Z(dhdi„ Z)djdk„ Z*dldm„ Z+dndo„ Z,ej dpe-dqg dr¢iƒdsdte-dqg du¢iƒfe-dqg dr¢iej.dv�dsdte-dqg du¢iej.dv�fe-dqg dr¢iej/dv�dsdte-dqg du¢iej/dv�fe-dwg dx¢iƒdde-dwg dy¢iƒfe-dzg d{¢iƒd|dte-dzg d}¢iƒfe-d~e0e1dd€d�ƒe1dd‚d�ƒe1dd€d�ƒgƒiƒe1dd€d�ƒe1dd‚d�ƒe-d~e0e1dd‚d�ƒgd	 ƒiƒfe-e1dƒd„d…ƒgd†gd‡œƒd†dˆe-e1dƒd„d…ƒgdˆgd‡œƒfe-d‰e1dŠd‹dsƒgiƒe1dŠd‹dsƒe1dŒd‹dsƒe-d‰e1dŒd‹dsƒgiƒfe-e2d�d	dŽd��dtejd�gd‘œƒe3d’dŽd“�e3d”dŽd“�e-e 4e3d�dŽd“�e3d”dŽd“�e3d•dŽd“�g¡ 5d–¡dtejd�gd‘œƒfe-dsd—gd�d˜ggƒd—d€e-d€d™gd�d˜ggƒfe-dsd—gd�d˜ggƒdsd€e-d€d™gd�d˜ggƒfe-dsd—gd�d˜ggƒd—d™e-d€d™gd�d˜ggƒfe-dsd—gd�d˜ggƒdsd™e-d€d™gd�d˜ggƒfg¡dšd›„ ƒZ6dœd�„ Z7dždŸ„ Z8d d¡„ Z9d¢d£„ Z:d¤d¥„ Z;d¦d§„ Z<d¨d©„ Z=dªd«„ Z>d¬d­„ Z?d®d¯„ Z@d°d±„ ZAd²d³„ ZBd´dµ„ ZCd¶d·„ ZDd¸d¹„ ZEdºd»„ ZFd¼d½„ ZGd¾d¿„ ZHdÀdÁ„ ZIdÂdÃ„ ZJej dÄdtdÅg dÆ¢d€ejd‚gg d¢dÇœfejdÅg dÈ¢g dÉ¢g d¢dÇœfd@dÊg dÈ¢d€ejd‚gg d¢dÇœfdtd�gdÅg dÆ¢d€ejd‚gg d¢dÇœfdsd�gdËg dÌ¢d€ejd‚gg d¢dÇœfdÍdÅg dÎ¢d€ejd‚gg d¢dÇœfdd?gdÊg dÈ¢d€ejd‚gg dÏ¢dÇœfg¡dÐdÑ„ ƒZKej dÒdsdsdAœd	d	gd�d�ggfdsd�dAœd	dsgd�d	ggfg¡dÓdÔ„ ƒZLej dÕg dr¢g dÖ¢d×œd€dØd‚dÖœg dr¢g dÙ¢d×œfg dr¢g dÚ¢d×œdÛdÜdÝdÚœg dr¢g dÞ¢d×œfg¡dßdà„ ƒZMej dáe3dâƒe Nds¡e /ds¡e Ods¡e Pds¡g¡dãdä„ ƒZQdådæ„ ZRdçdè„ ZSej d^g dé¢¡ej dêejejg¡dëdì„ ƒƒZTej díejd€g¡dîdï„ ƒZUej dêe Vdð¡e Wdtd€¡g¡dñdò„ ƒZXdódô„ ZYdõdö„ ZZd÷dø„ Z[dùdú„ Z\dûdü„ Z]dýdþ„ Z^ej dÿdsgd—gdtgdtgfdsgdsgdtgdtgfd—gd—gdtg�d gfd—gdsgdtg�d gfg¡ej �de_e`ejag¡�d�d„ ƒƒZbej �dd�ejd˜g¡�d�d„ ƒZc�d�d„ Zd�d	S (
  ÚTestDataFrameReplacec                 C  s*  t j|j|jd d… df< t j|j|jdd … df< | ¡ }|jt jddd�}|d u sZJ ‚t || d¡¡ |}t j|j	dd…|j
 d¡f< t j|j	d	d …|j
 d¡f< | t jd¡}| ¡ }|d  t¡|d< |jdd
�}t ||¡ | ¡ }|jt jgdgdd�}|d u �sJ ‚t || d¡¡ d S )Né   ÚAéûÿÿÿr   T©Úinplaceé   Úfooéöÿÿÿ©Úvalue)r   r   ÚlocÚindexÚcopyÚreplaceÚtmÚassert_frame_equalÚfillnaÚilocÚcolumnsÚget_locÚastypeÚobject)ÚselfÚdatetime_frameÚfloat_string_frameÚtsframeÚreturn_valueÚmfÚresultÚexpectedr   r   r   Útest_replace_inplace   s$    z)TestDataFrameReplace.test_replace_inplacezto_replace,values,expectedú\s*\.\s*ze|f|gÚcrapr   r   é   Úh©r=   r;   ÚlÚor   ú
\s*(\.)\s*z(e|f|g)ú\1\1ú\1_crap©r   r   ú..rE   )Úe_crapZf_crapZg_crapr=   )r=   rF   r?   r@   Úe©r;   ÚfÚgr=   r   TFÚuse_value_regex_argsc                 C  sp   t tdƒtdƒtdƒdœƒ}|r2|j|||d�}n|j||d|d�}|rX|d u sTJ ‚|}t |ƒ}t ||¡ d S )Nr   ÚefghÚhelor   )r$   Úregexr   T©rN   r   )r   r   r(   r)   r*   )r1   Ú
to_replaceÚvaluesr8   r   rK   Údfr7   r   r   r   Útest_regex_replace_list_obj8   s    *z0TestDataFrameReplace.test_regex_replace_list_objc           	      C  sF  t |ƒ}ddg}tjdg}ttdƒƒtdƒtdƒdœ}t |ƒ}|j||dd	�}t |d dd
tjtjgg d¢dœƒ}t ||¡ ddg}ddg}|j||dd	�}t |d g d¢dœƒ}t ||¡ g d¢}g d¢}|j||dd	�}t |d g d¢dœƒ}t ||¡ g d¢}g d¢}|j||d�}t |d g d¢dœƒ}t ||¡ d S )Nr:   r   r;   r
   r   Zhalor   T©rN   r   r>   rA   ú(a|b)rB   rC   ©Za_crapÚb_craprE   rE   r   ©rA   r   z(b)©rB   r;   rC   ©r;   rW   rE   rE   ©rN   r$   )r   r   r   r   r   r(   r)   r*   )	r1   r   ÚdfmixÚto_replace_resrQ   Zmix2Zdfmix2ÚresÚexpecr   r   r   Útest_regex_replace_list_mixedp   s8    
ýÿz2TestDataFrameReplace.test_regex_replace_list_mixedc                 C  sv  t |ƒ}ddg}tjdg}| ¡ }|j||ddd�}|d u s@J ‚t |d ddtjtjgdœƒ}t ||¡ dd	g}d
dg}| ¡ }|j||ddd�}|d u s J ‚t |d g d¢dœƒ}t ||¡ g d¢}g d¢}| ¡ }|j||ddd�}|d u søJ ‚t |d g d¢dœƒ}t ||¡ g d¢}g d¢}| ¡ }|j||dd�}|d u �sPJ ‚t |d g d¢dœƒ}t ||¡ d S )Nr:   r   r;   T©r   rN   r   r   rA   rU   rB   rC   rV   rX   rY   rZ   ©rN   r$   r   )r   r   r   r'   r(   r)   r*   )r1   r   r\   r]   rQ   r^   r5   r_   r   r   r   Ú%test_regex_replace_list_mixed_inplace™   s:    
z:TestDataFrameReplace.test_regex_replace_list_mixed_inplacec                 C  s~  t |ƒ}|jddidtjidd�}| ¡ }|jddidtjiddd�}|d u sRJ ‚t |d ddtjtjg|d dœƒ}t ||¡ t ||¡ |jdd	idd
idd�}| ¡ }|jdd	idd
iddd�}|d u sÔJ ‚t |d g d¢|d dœƒ}t ||¡ t ||¡ |jdd	idd
id�}| ¡ }|jdd	idd
idd�}|d u �sLJ ‚t |d g d¢|d dœƒ}t ||¡ t ||¡ t |d tjdddg|d dœƒ}|jddtjidd�}| ¡ }|jddtjiddd�}|d u �sæJ ‚t ||¡ t ||¡ |jddtjidd�}| ¡ }|jddtjidd�}|d u �s@J ‚t |d tjdddg|d dœƒ}t ||¡ t ||¡ d S )Nr   r:   TrT   ra   r   r   r   rA   z\1ty)r   r   ú.tyrd   r[   rb   Ú.rO   ©r   r(   r   r   r'   r)   r*   )r1   r   r\   r^   Úres2r5   r_   r   r   r   Útest_regex_replace_dict_mixedÁ   sh    ÿÿÿÿÿÿÿÿz2TestDataFrameReplace.test_regex_replace_dict_mixedc           	      C  sè   t |ƒ}|jddtjiidd�}| ¡ }| ¡ }|jddtjiiddd�}|d u sVJ ‚|jddtjiid�}|jddtjiidd�}|d u s�J ‚t |d ddtjtjg|d d	œƒ}t ||¡ t ||¡ t ||¡ t ||¡ d S )
Nr   r:   TrT   ra   rO   r   r   r   rf   )	r1   r   r\   r^   rg   Zres4r5   Úres3r_   r   r   r   Útest_regex_replace_dict_nested  s$    ÿÿz3TestDataFrameReplace.test_regex_replace_dict_nestedc                 C  sN   |}t dg d¢i|d�}|jddidd�}t dg d¢i|d�}t ||¡ d S )	NÚfirst)ÚabcZbcaZcab©Údtyper   re   TrT   )z.bczbc.zc.b©r   r(   r)   r*   )r1   Úany_string_dtypern   rR   r7   r8   r   r   r   Ú2test_regex_replace_dict_nested_non_first_character  s
    zGTestDataFrameReplace.test_regex_replace_dict_nested_non_first_characterc                 C  s‚   t tg d¢td�ddœƒ}t g d¢ddœƒ}d}tjt|d��$ | dd	d
dœi¡}W d   ƒ n1 sh0    Y  t ||¡ d S )N)ÚQÚTrr   rr   rs   rm   é   )ÚTypeÚtmp)r   é   r   r   rw   ú!Downcasting behavior in `replace`©Úmatchru   r   rw   )rr   rs   )r   r   r0   r)   Úassert_produces_warningÚFutureWarningr(   r*   ©r1   rR   r8   Úmsgr7   r   r   r   Ú%test_regex_replace_dict_nested_gh4115#  s    ÿ2z:TestDataFrameReplace.test_regex_replace_dict_nested_gh4115c                 C  sz  t |ƒ}t |d tjgd tjtjtjdgdœƒ}|rH|d  d¡|d< d}|rTd nt}tj||d��& |jd	d
gtjdd�}W d   ƒ n1 s’0    Y  | ¡ }| ¡ }	tj||d��( |jd	d
gtjddd�}
W d   ƒ n1 sè0    Y  |
d u sþJ ‚tj||d��& |	jd	d
gtjdd�}
W d   ƒ n1 �s:0    Y  |
d u �sRJ ‚t 	||¡ t 	||¡ t 	|	|¡ d S )Nr   r
   r   r   r   Ústrrx   ry   r:   za|bTrT   rO   rb   )
r   r   r   r/   r|   r)   r{   r(   r'   r*   )r1   r   Úusing_infer_stringrR   r_   r~   Úwarnr^   rg   ri   r5   r   r   r   Ú!test_regex_replace_list_to_scalar.  s8    
ýÿ4ÿ$ÿ&z6TestDataFrameReplace.test_regex_replace_list_to_scalarc                 C  s¦   t |ƒ}|jdddd�}| ¡ }|jddddd�}|d u s>J ‚| ¡ }|jdddd�}|d u sbJ ‚t |d g d¢|d	 d
œƒ}t ||¡ t ||¡ t ||¡ d S )Nr:   r   TrT   ra   rb   r   )r   r   r   r   r   r   )r   r(   r'   r)   r*   ©r1   r   rR   r^   rg   r5   ri   r_   r   r   r   Ú!test_regex_replace_str_to_numericM  s    z6TestDataFrameReplace.test_regex_replace_str_to_numericc                 C  s¸   t |ƒ}|jddgddd�}| ¡ }|jddgdddd�}|d u sFJ ‚| ¡ }|jddgddd�}|d u snJ ‚t |d g d	¢ddtjd
gdœƒ}t ||¡ t ||¡ t ||¡ d S )Nr:   r   r   TrT   rO   rb   r   )r   r   r   r   r   r   )r   r(   r'   r   r   r)   r*   r„   r   r   r   Ú(test_regex_replace_regex_list_to_numeric\  s    ÿz=TestDataFrameReplace.test_regex_replace_regex_list_to_numericc           
      C  sÈ   t |ƒ}tddiƒ}tdtjiƒ}|j||dd�}| ¡ }|j||ddd�}|d u sXJ ‚| ¡ }|j||dd�}|d u s|J ‚t |d ddtjtjg|d d	œƒ}	t ||	¡ t ||	¡ t ||	¡ d S )
Nr   r:   TrT   ra   rb   r   r   r   )r   r   r   r   r(   r'   r)   r*   )
r1   r   rR   Ús1Ús2r^   rg   r5   ri   r_   r   r   r   Ú$test_regex_replace_series_of_regexesl  s     ÿz9TestDataFrameReplace.test_regex_replace_series_of_regexesc                 C  sR   t |ƒ}t g d¢|d |d dœƒ}| dd¡}t ||¡ |jjtjksNJ ‚d S )N)r   rw   rt   r<   r   r   r   r   r   )r   r(   r)   r*   r   rn   r   Zobject_)r1   r   rR   r_   r^   r   r   r   Ú/test_regex_replace_numeric_to_object_conversion~  s
    zDTestDataFrameReplace.test_regex_replace_numeric_to_object_conversionrP   Ú )r‹   ú,)rŒ   r‹   c                 C  sX   t g d¢g d¢g d¢dœƒ}|j|d�}t g d¢dtjdgg d¢dœƒ}t ||¡ d S )	N)z1,000r   Ú3)r   r‹   r   r   ©Úcol1Úcol2Úcol3rT   )Z1000r   r�   r   r   ©r   r(   r   r   r)   r*   )r1   rP   rR   r7   r8   r   r   r   Ú+test_joint_simple_replace_and_regex_replace…  s    ýÿ
ýÿz@TestDataFrameReplace.test_joint_simple_replace_and_regex_replaceÚmetachar)z[]z()z\dz\wz\sc                 C  sB   t d|dgiƒ}| d|dii¡}t dddgiƒ}t ||¡ d S )Nr   ÚelseZparenro   )r1   r”   rR   r7   r8   r   r   r   Útest_replace_regex_metachar›  s    z0TestDataFrameReplace.test_replace_regex_metacharzdata,to_replace,expectedZxaxZxbxr   r   r   ZxcxZxdx)r   r‹   r‹   ú^\s*$c           	      C  s:   |}|||d�}|j |dd�}|||d�}t ||¡ d S )Nrm   TrT   ©r(   r)   Úassert_equal)	r1   ÚdatarP   r8   Úframe_or_seriesrp   rn   Úobjr7   r   r   r   Útest_regex_replace_string_types¢  s
    z4TestDataFrameReplace.test_regex_replace_string_typesc                 C  s8  t j|j|jd d… df< t j|j|jdd … df< | t jd¡}t || d¡¡ t | dt j¡|¡ t j|j|jd d… df< t j|j|jdd … df< d|j|jd d… df< tddgd�}t || dd	¡¡ td
t	 
d¡fdt	 
d¡fgƒ}| d
t j¡}tt jt	 
d¡fdt	 
d¡fgƒ}t ||¡ d S )Nr   r   r   ç    „×—ÁÚBr   r   ©r&   é   ú-Z20150101Z20150102)r   r   r%   r&   r(   r)   r*   r+   r   ÚpdÚto_datetime)r1   r2   Úzero_filledrR   Údf1Zexpected_dfr   r   r   Útest_replace´  s$    ÿÿz!TestDataFrameReplace.test_replacec                 C  s¶   t dƒt dƒt dƒdœ}t|ƒ}ddg}tjdg}| ||¡}tdd	tjtjgg d
¢g d¢dœƒ}t ||¡ ddg}ddg}| ||¡}tg d¢g d¢g d¢dœƒ}t ||¡ d S )Nr   rL   rM   r   re   rG   r;   r   r   rH   r>   rI   rE   rD   )rG   r;   rJ   r=   )r=   rG   r?   r@   )r   r   r   r   r(   r)   r*   )r1   rœ   Zdfobjr]   rQ   r^   r_   r   r   r   Útest_replace_listÏ  s,    
ýÿýÿz&TestDataFrameReplace.test_replace_listc                 C  sæ   t ddgg tjdggƒ}td|iƒ}t ||¡}|}| g tj¡}t ||¡ d}tj	t
|jdd�d��  | tjg i¡ W d   ƒ n1 sŽ0    Y  tj	t
|jd	d�d��$ | tjd
dgi¡ W d   ƒ n1 sØ0    Y  d S )Nr   r   rw   ÚcolzwNumPy boolean array indexing assignment cannot assign {size} input values to the 1 output values where the mask is truer   )Úsizery   rt   ÚdummyZalt)r   r   r   r   r)   Úget_objr(   r™   ÚpytestÚraisesÚ
ValueErrorÚformat)r1   r›   Úserrœ   r8   r7   r~   r   r   r   Útest_replace_with_empty_listî  s    ÿ.z1TestDataFrameReplace.test_replace_with_empty_listc                 C  sî   t dddœdddœdœƒ}| ddddœ¡}t dddœdddœdœƒ}t ||¡ | d| ¡ ¡}t ||¡ t dddœdddœdœƒ}tdddœƒ}| |dddœ¡}t dddœdddœdœƒ}t ||¡ | || ¡ ¡}t ||¡ d S )	Nç        rw   r   ç       @r   )ÚzeroÚoneç      à?ç      ð?)r   r(   r)   r*   Úmeanr   )r1   rR   r7   r8   Úsr   r   r   Útest_replace_series_dict  s    z-TestDataFrameReplace.test_replace_series_dictc                 C  s‚   t g d¢g d¢gƒ}ddddœ}d}tjt|d�� | |¡}W d   ƒ n1 sR0    Y  ttjgd ƒ}|j}t 	||¡ d S )N)r!   ÚbarÚbah)r¼   r!   r½   rw   rt   r<   ú"Downcasting behavior in `replace` ry   )
r   r)   r{   r|   r(   r   r   Úint64ÚdtypesÚassert_series_equal)r1   rR   Úmr~   Úrepr_   r^   r   r   r   Útest_replace_convert  s    (z)TestDataFrameReplace.test_replace_convertc                 C  s   |}t j|jdd…|j d¡f< t j|jdd …|j d¡f< | t jd¡}| ¡ }|d  t¡|d< |j	dd�}t
 ||¡ | ¡ }|d  t¡|d< t
 | dt j¡|¡ | t jd¡}| ¡ }|d  t¡|d< |j	dd�}t
 ||¡ | ¡ }|d  t¡|d< t
 | dt j¡|¡ d S )	Nr   r    r!   r"   r   iîÿÿÿr#   rž   )r   r   r,   r-   r.   r(   r'   r/   r0   r+   r)   r*   )r1   r3   r6   r7   r8   Z	expected2r   r   r   Útest_replace_mixed   s&    z'TestDataFrameReplace.test_replace_mixedc                 C  s�   t tddgdd�tddgdd�dœƒ}t tddgdd�td	dgdd�dœƒ}| dd	¡}t ||¡ |jdd	d
d�}|d u s€J ‚t ||¡ d S )Nr¸   r´   Úfloat64rm   r   rw   r¿   ©r   rŸ   r·   Tr   ©r   r   r(   r)   r*   )r1   rR   r8   r7   r5   r   r   r   Ú&test_replace_mixed_int_block_upcasting7  s    þÿþÿz;TestDataFrameReplace.test_replace_mixed_int_block_upcastingc                 C  s„   t tddgdd�tddgdd�tddgdd�d	œƒ}t tddgdd�td
dgdd�tddgdd�d	œƒ}| dd
¡}t ||¡ d S )Nr¸   r´   rÆ   rm   r   rw   r¿   rt   ©r   rŸ   ÚCr·   rÈ   ©r1   rR   r8   r7   r   r   r   Ú&test_replace_mixed_int_block_splittingL  s    ýÿýÿz;TestDataFrameReplace.test_replace_mixed_int_block_splittingc                 C  s®   t tddgdd�tddgdd�dœƒ}t tdd	gd
d�tddgdd�dœƒ}| dd	¡}t ||¡ t td	dgd
d�tdd	gd
d�dœƒ}| ddgd	dg¡}t ||¡ d S )Nr¸   r´   rÆ   rm   r   rw   r¿   rÇ   r!   r0   rt   r¼   rÈ   )r1   r�   rR   r8   r7   r   r   r   Útest_replace_mixed2_  s&    þÿþÿþÿz(TestDataFrameReplace.test_replace_mixed2c                 C  s€   t tddgdd�tddgdd�dœƒ}| d| ¡  ¡ ¡}| ¡  d¡}| ¡ }|jd |jd< |jd |jd	< t 	||¡ d S )
Nr<   r   r¿   rm   rÇ   rÆ   ©r   r   rw   )rw   rw   )
r   r   r(   r¹   Úto_dictr'   r/   r,   r)   r*   )r1   rR   r7   r8   rÂ   r   r   r   Útest_replace_mixed3y  s     ÿz(TestDataFrameReplace.test_replace_mixed3c                 C  sT   t dddtjgg d¢dœƒ}|d  d¡|d< | dtj¡}t |d |d ¡ d S )	Nrw   rt   r<   )ZsomeÚstringsÚhereÚher   r   ÚInt64r‹   )r   r   r   r/   r(   r)   rÁ   ©r1   rR   r^   r   r   r   Ú1test_replace_nullable_int_with_string_doesnt_cast…  s    zFTestDataFrameReplace.test_replace_nullable_int_with_string_doesnt_castrn   )ÚbooleanrÕ   ZFloat64c                 C  sP   t g d¢|d�}tg d¢|dœƒ}| dd¡}tg d¢|dœƒ}t ||¡ d S )N)rw   r   rw   rm   )r   rŸ   ÚxrÇ   rÙ   ÚX)r   rŸ   rÚ   ©r   r   r(   r)   r*   )r1   rn   Znullable_serrR   r7   r8   r   r   r   Ú!test_replace_with_nullable_column�  s
    z6TestDataFrameReplace.test_replace_with_nullable_columnc                 C  sb   t dtddƒiƒ}t dg d¢iƒ}| ddddœi¡}t ||¡ | dddœ¡}t ||¡ d S )Nr©   rw   r   ©r   rt   r<   r   r   r   )rw   r
   ©r   r   r(   r)   r*   rÌ   r   r   r   Útest_replace_simple_nested_dict–  s    z4TestDataFrameReplace.test_replace_simple_nested_dictc                 C  sf   t dtddƒiƒ}t dg d¢iƒ}| ddddœ¡}t ||¡ | dddddœi¡}t ||¡ d S )	Nr©   rw   r   rÝ   r¢   r   r   )éÿÿÿÿrw   r
   rÞ   rÌ   r   r   r   Ú6test_replace_simple_nested_dict_with_nonexistent_value¡  s    zKTestDataFrameReplace.test_replace_simple_nested_dict_with_nonexistent_valuec                 C  sN   t ddd giƒ ddi¡}| tjd i¡}t ddd gitd�}t ||¡ d S )Nr$   é*   rÕ   rm   )r   r/   r(   r£   ÚNAr0   r)   r*   ©r1   rR   r7   r8   r   r   r   Útest_replace_NA_with_None«  s    z.TestDataFrameReplace.test_replace_NA_with_Nonec                 C  sB   t tjtjgƒ}| tjd tjd i¡}t d d gƒ}t ||¡ d S ©N)r   r£   ÚNaTr(   r   r   r)   r*   rä   r   r   r   Útest_replace_NAT_with_None²  s    z/TestDataFrameReplace.test_replace_NAT_with_Nonec                 C  sb   t g d¢dd�}tt g d¢dd�|dœƒ}| dd i¡}tt g d¢d	d�|dœƒ}t ||¡ d S )
N)r   r   r   r   Úcategoryrm   )r   r
   r<   rt   rÆ   )Úidr©   r<   )ç      @g      @Nr´   r0   rÛ   )r1   Z
cat_seriesrR   r7   r8   r   r   r   Ú(test_replace_with_None_keeps_categorical¹  s    þÿþÿz=TestDataFrameReplace.test_replace_with_None_keeps_categoricalc                 C  s¸   |j d }|j d }tj|j d< d|j d< |jtjdid�}|jjtjdid�j}t ||¡ |jtjdddid�}| ¡ }d|j d< d|j d< |}t ||¡ ||j d< ||j d< d S )NrÏ   ©rw   r   rw   r   ©rP   rž   )r,   r   r   r(   rs   r)   r*   r'   )r1   r2   Z
orig_valueZorig2r7   r8   r4   r   r   r   Útest_replace_value_is_noneÌ  s    





z/TestDataFrameReplace.test_replace_value_is_nonec                 C  s   |  ¡  tj¡}tj|j|jd d… df< tj|j|jdd … df< | tjd¡}t 	|| 
d¡¡ t 	| dtj¡|¡ tj|j|jd d… df< tj|j|jdd … df< tj|j|jd d… df< d}tjt|d��0 |j
dd	�}t 	||j
dd	�¡ W d   ƒ n1 �s0    Y  d S )
Nr   r   r   rž   rŸ   z,DataFrame.fillna with 'method' is deprecatedry   Úbfill)Úmethod)r'   r/   r   Úfloat32r   r%   r&   r(   r)   r*   r+   r{   r|   )r1   r2   r4   r¥   r~   r7   r   r   r   Útest_replace_for_new_dtypesà  s    z0TestDataFrameReplace.test_replace_for_new_dtypesz"frame, to_replace, value, expectedZints©rw   rt   r<   rw   r   )r   rt   r<   rm   Zbools©TFT)TTTÚcomplex)ù              ð?ù               @ù              @r÷   )y                rø   rù   Z
datetime64iâ  r   é   r¡   iÉ  é   r    r!   )Údtr€   r¼   rü   éh  é
   iä  Ú20130101ú
US/Eastern©ZperiodsÚtzrt   rÇ   Ú20130102©r  Ú20130104Ú20130103Únsr¸   r´   rë   c                 C  sj   d }t |tƒr|jdkrt}d}tj||d�� | ||¡}W d   ƒ n1 sP0    Y  t ||¡ d S )Nrý   r¾   ry   )Ú
isinstancer   Úyearr|   r)   r{   r(   r*   )r1   ÚframerP   r$   r8   r‚   r~   r7   r   r   r   Útest_replace_dtypesó  s    l*z(TestDataFrameReplace.test_replace_dtypesc           	        sÈ  t jdddœ‰ ddddœ‰tt jdt jgg d¢g d¢dœƒ}| ˆ ˆ¡}‡ ‡fdd	„| ¡ D ƒ}t |t|ƒ¡ | g d¢g d
¢¡}tt jdt jgg d
¢g d¢dœƒ}t ||¡ ddddœ‰tt jdt jgg d¢g d¢dœƒ}| t jˆ¡}‡fdd	„| ¡ D ƒ}t |t|ƒ¡ t jddg‰ g d¢‰| ˆ ˆ¡}| ¡ }t	ˆ ˆƒD ](\}}|j||dd�}|d u �sFJ ‚�qFt ||¡ d}t
jt|d��$ | ˆ ˆdd … ¡ W d   ƒ n1 �sº0    Y  d S )Nr   r‹   rÊ   rà   Úmissing©r   rt   r   ©r‹   ÚasdfÚfdc                   s&   i | ]\}}||  ˆ | ˆ| ¡“qS r   ©r(   ©Ú.0ÚkÚv©Úto_reprQ   r   r   Ú
<dictcomp>o  ó    zLTestDataFrameReplace.test_replace_input_formats_listlike.<locals>.<dictcomp>)r   rt   r   r   c                   s$   i | ]\}}||  tjˆ | ¡“qS r   )r(   r   r   r  )rQ   r   r   r  ~  r  )éþÿÿÿrà   r  Tr   z:Replacement lists must match in length\. Expecting 3 got 2ry   rw   )r   r   r   Úinfr(   Úitemsr)   r*   r'   Úzipr­   r®   r¯   )	r1   rR   Úfilledr8   r7   rÃ   r$   r5   r~   r   r  r   Ú#test_replace_input_formats_listlikeg  s>    ÿÿÿz8TestDataFrameReplace.test_replace_input_formats_listlikec                   sþ   t tjdtjgg d¢g d¢dœƒ}tjdddœ‰ | ˆ d¡}‡ fdd„| ¡ D ƒ}t |t |ƒ¡ d}tj	t
|d	��$ | ˆ tjddg¡ W d   ƒ n1 sž0    Y  tjddg‰ | ˆ d
¡}| ¡ }ˆ D ] }|j|d
dd�}|d u sÌJ ‚qÌt ||¡ d S )Nr   r  r  rÊ   r‹   c                   s"   i | ]\}}||  ˆ | d ¡“qS )r   r  r  ©r  r   r   r  —  r  zJTestDataFrameReplace.test_replace_input_formats_scalar.<locals>.<dictcomp>z.value argument must be scalar, dict, or Seriesry   rà   Tr   )r   r   r   r  r(   r  r)   r*   r­   r®   Ú	TypeErrorr'   )r1   rR   r  r8   r~   r7   rÃ   r5   r   r   r   Ú!test_replace_input_formats_scalar�  s"    ÿ2z6TestDataFrameReplace.test_replace_input_formats_scalarc                 C  s   d S ræ   r   )r1   r   r   r   Útest_replace_limit§  s    z'TestDataFrameReplace.test_replace_limitc                 C  sˆ   t ddddddœ|d�}dd	d
dddœ}t ddd
d	ddœƒ}d}tjt|d�� | |¡}W d   ƒ n1 sn0    Y  t ||¡ d S ©NúStrongly AgreeÚAgreeÚNeutralÚDisagreeúStrongly Disagree)r   rw   rt   r<   r
   rm   r
   rt   r<   r   rw   )r&  r(  r'  r%  r)  r¾   ry   ©r   r)   r{   r|   r(   rÁ   ©r1   rp   ZanswerÚweightsr8   r~   r7   r   r   r   Útest_replace_dict_no_regex«  s(    ûøû(z/TestDataFrameReplace.test_replace_dict_no_regexc                 C  sŒ   t ddddddœ|d�}t dd	d
dddœƒ}t ddd
d	ddœƒ}d}tjt|d�� | |¡}W d   ƒ n1 sr0    Y  t ||¡ d S r$  r*  r+  r   r   r   Útest_replace_series_no_regexÃ  s,    ûø
ûÿ	(z1TestDataFrameReplace.test_replace_series_no_regexc                 C  s�   t dtjdgiƒ}|jtjdddid�}|jdtjfddgd�}|jdtjgddgd�}t dddgiƒ}t ||¡ t ||¡ t ||¡ d S )Nr   rw   r   rž   rî   ©rP   r$   )r   r   r   r(   r)   r*   )r1   rR   Zres1rg   ri   r8   r   r   r   Ú6test_replace_dict_tuple_list_ordering_remains_the_sameÝ  s    zKTestDataFrameReplace.test_replace_dict_tuple_list_ordering_remains_the_samec                 C  s@   t g d¢g d¢g d¢g d¢dœƒ}| ddi¡}t ||¡ d S )N)rw   rt   rt   r<   )Ú0Zvrr1  r1  )r1  r1  r1  Zbt)Zvor1  r1  r1  )ZfolZT_oppZT_DirZT_Enhz\Drw   ro   rÖ   r   r   r   Ú)test_replace_doesnt_replace_without_regexè  s    üÿz>TestDataFrameReplace.test_replace_doesnt_replace_without_regexc                 C  sF   t ddgtdƒdœƒ}| dd¡}t ddg|jdœƒ}t ||¡ d S )NTFÚabr   r   )r   r   r(   r   r)   r*   rä   r   r   r   Útest_replace_bool_with_stringô  s    z2TestDataFrameReplace.test_replace_bool_with_stringc                 C  s6   t tj d¡ d¡dkƒ}| dd¡}t ||¡ d S )Nrt   ©rt   rt   r·   r  Zfdsa)r   r   ÚrandomÚdefault_rngr(   r)   r*   ©r1   rR   r7   r   r   r   Ú(test_replace_pure_bool_with_string_no_opú  s    z=TestDataFrameReplace.test_replace_pure_bool_with_string_no_opc                 C  sH   t tj d¡ d¡dkƒ}| dd¡}t tjdtd�ƒ}t ||¡ d S )Nrt   r5  r·   FTrm   )	r   r   r6  r7  r(   ÚonesÚboolr)   r*   rä   r   r   r   Útest_replace_bool_with_boolÿ  s    z0TestDataFrameReplace.test_replace_bool_with_boolc                 C  sL   t ddgddgdœƒ}| dddœ¡}t ddgddgdœƒ}t ||¡ d S )NTF©r   rw   ZasdbÚyes)r  Tro   rä   r   r   r   Ú%test_replace_with_dict_with_bool_keys  s    z:TestDataFrameReplace.test_replace_with_dict_with_bool_keysc                 C  sV   t ddgddgdœƒ}| ddi¡}t ||¡ |d  ddi¡}t ||d ¡ d S )	Nrw   rt   r<   r
   )ÚY0ZY1Zreplace_stringÚtestr@  )r   r(   r)   r*   rÁ   r8  r   r   r   Ú!test_replace_dict_strings_vs_ints  s
    z6TestDataFrameReplace.test_replace_dict_strings_vs_intsc                 C  s<   t dddgiƒ}| tjtj gtj¡}|}t ||¡ d S )Nr   T)r   r(   r   r  r   r)   r*   )r1   rR   ÚrrG   r   r   r   Útest_replace_truthy  s    z(TestDataFrameReplace.test_replace_truthyc              	   C  sj   t dttddƒƒiƒ}| dtttddƒtddƒƒƒi¡}| tttddƒtddƒƒƒ¡}t ||¡ d S )Nr   rw   r   rt   é   )r   r   r   r(   Údictr  r)   r*   rä   r   r   r   Ú-test_nested_dict_overlapping_keys_replace_int  s    $ zBTestDataFrameReplace.test_nested_dict_overlapping_keys_replace_intc                 C  sp   t  dd¡}| t¡}t  dd¡ t¡}td|iƒ}| tt||ƒƒ¡}| dtt||ƒƒi¡}t 	||¡ d S )Nrw   r   rt   rE  r   )
r   Zaranger/   r€   r   r(   rF  r  r)   r*   )r1   r   ZastrZbstrrR   r7   r8   r   r   r   Ú-test_nested_dict_overlapping_keys_replace_str$  s    
zBTestDataFrameReplace.test_nested_dict_overlapping_keys_replace_strc                 C  sŒ   t dg d¢iƒ}| ddddœi¡}t dg d¢itd�}t ||¡ t dg d¢iƒ}| dddd	œi¡}t dg d¢itd�}t ||¡ d S )
Nr   rõ   ÚYÚN)TF)rI  rJ  rI  rm   )r   rw   r   r=  ©r   r(   r0   r)   r*   )r1   rR   r^   Úexpectr   r   r   Útest_replace_swapping_bug.  s    z.TestDataFrameReplace.test_replace_swapping_bugc                   s  dt jdddd�t jdddd�t jdddd�t jdd	dd�t jdddd�t jdddd�t jd
ddd�dœi‰ tg d¢dgd�}t|jjƒtˆ d  ¡ ƒksžJ ‚td‡ fdd„|jjD ƒiƒ}|jjd dksÐJ ‚d}t	j
t|d�� | ˆ ¡}W d   ƒ n1 �s0    Y  t	 ||¡ d S )NÚfnameiÛ  é   ÚM)r	  ÚmonthÚfreqrw   iÜ  r   r
   iÝ  é	   ©úout_augmented_AUG_2011.jsonúout_augmented_JAN_2011.jsonúout_augmented_MAY_2012.jsonúout_augmented_SUBSIDY_WEEK.jsonúout_augmented_AUG_2012.jsonúout_augmented_MAY_2011.jsonúout_augmented_SEP_2013.json©rY  r[  rX  rW  rZ  rU  rV  ©r-   c                   s   g | ]}ˆ d  | ‘qS ©rN  r   ©r  r  ©r   r   r   Ú
<listcomp>V  r  z<TestDataFrameReplace.test_replace_period.<locals>.<listcomp>r   z	Period[M]r¾   ry   )r£   ÚPeriodr   ÚsetrN  rQ   ÚkeysrÀ   r,   r)   r{   r|   r(   r*   r}   r   r`  r   Útest_replace_period9  s.    ÿ÷ÿ	ö *z(TestDataFrameReplace.test_replace_periodc              	     sÐ   dt dƒt dƒt dƒt dƒt dƒt dƒt dƒd	œi‰ tg d
¢dgd�}t|jjƒtˆ d  ¡ ƒksfJ ‚td‡ fdd„|jjD ƒiƒ}d}tjt|d�� | 	ˆ ¡}W d   ƒ n1 s¶0    Y  t 
||¡ d S )NrN  z2011-08z2011-01z2012-05z2011-04z2012-08z2011-05z2013-09rT  r\  r]  c                   s   g | ]}ˆ d  | ‘qS r^  r   r_  r`  r   r   ra  w  r  z>TestDataFrameReplace.test_replace_datetime.<locals>.<listcomp>r¾   ry   )r   r   rc  rN  rQ   rd  r)   r{   r|   r(   r*   r}   r   r`  r   Útest_replace_datetime]  s(    ùÿ	ö (z*TestDataFrameReplace.test_replace_datetimec                 C  sL  t tdddd�dtjdgdœƒ}| tjd¡}t tdddd�tg d	¢d
d�dœƒ}t ||¡ | d¡}t ||¡ | dtj¡}t tdddd�tjtjdgdœƒ}t ||¡ | t	ddd�t	ddd�¡}t t	ddd�t	ddd�t	ddd�gdtjdgdœƒ}|d j
 d¡|d< t ||¡ | ¡ }tj|jd< | dtjit	ddd�¡}t ||¡ | ¡ }tj|jd< | dtjit	ddd�¡}t t	ddd�t	ddd� d¡t	ddd�gdtjdgdœƒ}|d j
 d¡|d< t ||¡ | ¡ }tj|jd< | dtjit	dƒ¡}t t	ddd�t	dƒt	ddd�gdtjdgdœƒ}t ||¡ d S )Nrÿ   r<   r   r  r   rt   rÇ   rw   ©r   rw   rt   rÆ   rm   r  r  r  r  r   r  rí   z
US/Pacific)r   r   r   r   r(   r   r)   r*   r+   r   rü   Úas_unitr'   r,   r£   rç   Z
tz_converträ   r   r   r   Útest_replace_datetimetz}  s€    
þÿþÿ
þÿ

þ


ý
úÿ


ý
úÿ


ý
úÿ
z,TestDataFrameReplace.test_replace_datetimetzc              	   C  sh   t |ƒ}t || i ¡¡ t || tg td�¡¡ t || di i¡¡ t || tdi iƒ¡¡ d S )Nrm   r   )r   r)   r*   r(   r   r0   )r1   r   rR   r   r   r   Ú test_replace_with_empty_dictlikeÑ  s
    z5TestDataFrameReplace.test_replace_with_empty_dictlikezto_replace, method, expectedrð   )rw   rw   rt   rÊ   rg  )rë   ç      @rk  ZffillÚpad)r   r   r   )rw   rt   )r   rt   rt   )r   r   r   c                 C  sz   t g d¢dtjdgg d¢dœƒ}d}tjt|d��  |j|d |d�}W d   ƒ n1 sX0    Y  t |ƒ}t ||¡ d S )	Nrg  r   r¡   r   rÊ   z7The 'method' keyword in DataFrame.replace is deprecatedry   )rP   r$   rñ   )r   r   r   r)   r{   r|   r(   r*   )r1   rP   rñ   r8   rR   r~   r7   r   r   r   Útest_replace_methodÚ  s    " .z(TestDataFrameReplace.test_replace_methodzreplace_dict, final_datac                 C  sr  t ddgddggddgdd�}t |¡}tj|d d …df ddgd	�}|d dkrZddgnddg}tj|d d …df |d	�}t ||d
œƒ}d}tjt|d�� | |d¡}	W d   ƒ n1 s¾0    Y  t 	|	|¡ d}
t
jt|
d�� t 	||¡ W d   ƒ n1 �s
0    Y  tjt|d��  |j|ddd�}W d   ƒ n1 �sJ0    Y  |d u �sbJ ‚t 	||¡ d S )Nrw   rt   r   r   ré   )r-   rn   r   r<   )Ú
categoriesr   z#with CategoricalDtype is deprecatedry   zHAttributes of DataFrame.iloc\[:, 0\] \(column name=\"a\"\) are differentTr   )r   r   Úarrayr£   ZCategoricalr)   r{   r|   r(   r*   r­   r®   ÚAssertionError)r1   Zreplace_dictZ
final_datarR   r   Zex_catr   r8   Úmsg2r7   r~   r5   r   r   r   Ú"test_categorical_replace_with_dict  s$    
*ÿ,0z7TestDataFrameReplace.test_categorical_replace_with_dictzdf, to_replace, exp©r
   r   rE  )r�   r�   rE  )r   rE  r¡   )Ú4Ú5Ú6ru  rv  Ú7)ru  rv  rw  c                 C  s*   t |ƒ}t |ƒ}| |¡}t ||¡ d S ræ   ro   )r1   rR   rP   Úexpr8   r7   r   r   r   Útest_replace_commutative$  s    
z-TestDataFrameReplace.test_replace_commutativeÚreplacerZ20170827c                 C  sj   t dgtd�}d}tjt|d��  | ||dœ¡}W d   ƒ n1 sF0    Y  t |gƒ}t ||¡ d S )Nr   rm   r¾   ry   r   )r   r0   r)   r{   r|   r(   r*   )r1   rz  rR   r~   r7   r8   r   r   r   Útest_replace_replacer_dtype>  s    .
z0TestDataFrameReplace.test_replace_replacer_dtypec                 C  sD   t dg d¢idd�}| dd¡}t dg d¢idd�}t ||¡ d S )NÚgrp)rw   rt   r<   r
   r   rÕ   rm   rw   rþ   )rþ   rt   r<   r
   r   ro   rä   r   r   r   Ú!test_replace_after_convert_dtypesQ  s    z6TestDataFrameReplace.test_replace_after_convert_dtypesc              	   C  sŒ   t g d¢g d¢dœƒ}d}d}tjt|d��L tjt|d�� | dd„ ¡ W d   ƒ n1 s`0    Y  W d   ƒ n1 s~0    Y  d S )	N)r   zb r   )zd ze zf )r¶   ÚtwozZExpecting 'to_replace' to be either a scalar, array-like, dict or None, got invalid type.*zSDataFrame.replace without 'value' and with non-dict-like 'to_replace' is deprecatedry   c                 S  s   |   ¡ S ræ   )Ústrip)rÙ   r   r   r   Ú<lambda>f  r  zFTestDataFrameReplace.test_replace_invalid_to_replace.<locals>.<lambda>)r   r­   r®   r!  r)   r{   r|   r(   )r1   rR   r~   rq  r   r   r   Útest_replace_invalid_to_replaceX  s    ÿÿz4TestDataFrameReplace.test_replace_invalid_to_replace)ÚfloatrÆ   r¿   rÕ   rØ   r$   c                 C  s<   t t d¡|d�}|jd tj tjg|d�}t ||¡ d S )Nrt   rm   r/  )r   r   Úeyer(   r  r)   r*   )r1   rn   r$   rR   r7   r   r   r   Ú"test_replace_no_replacement_dtypesh  s    z7TestDataFrameReplace.test_replace_no_replacement_dtypesÚreplacementc                 C  sr   t g d¢g d¢g d¢dœƒ}tdƒ|_t g d¢g d¢|ddgdœƒ}tdƒ|_|d  d	|¡|d< t ||¡ d S )
Nrô   rs  )r¡   rO  rS  )r   ÚA1rŸ   ZAABrO  rS  rŸ   r¡   )r   r   r-   r(   r)   r*   )r1   r…  r7   r8   r   r   r   Ú#test_replace_with_duplicate_columnsp  s    
ÿ
z8TestDataFrameReplace.test_replace_with_duplicate_columnsz2020-01c                 C  sB   t d|gd iƒ}t ||¡}| ¡ }| dd¡}t ||¡ d S )NZPerr<   r¸   r³   )r   r)   r¬   r'   r(   r™   )r1   r›   r$   rœ   r8   r7   r   r   r   Útest_replace_ea_ignore_float  s
    z1TestDataFrameReplace.test_replace_ea_ignore_floatc                 C  s^  g d¢g d¢g d¢g d¢g d¢dœ}t |d� ddd	œ¡}|d
 jjg d¢dd�|d
< |d jjg d¢dd�|d< g d¢g d¢g d¢g d¢g d¢dœ}t |d� ddd	œ¡}|d
 jjg d¢dd�|d
< |d jjg d¢dd�|d< d}tjt|d��4 | dd¡}| dd¡}| dd¡}W d  ƒ n1 �s20    Y  | ddddœ¡}t ||¡ dS )zt
        Test for #23305: to ensure category dtypes are maintained
        after replace with direct values
        )rw   rt   r<   r
   )r   r   r   r   )g      ø?g      @g      @g      @)Úcat1Úcat2Úcat3Úcat4)Úobj1Úobj2Úobj3Úobj4)r�   r�   r‘   Úcol4Úcol5©rš   ré   )r�   r‘  r�   T)Zorderedr‘  )r   r   r   Úz)r‰  ÚcatXr‹  rŒ  )Úobj9rŽ  r�  r�  úOThe behavior of Series\.replace \(and DataFrame.replace\) with CategoricalDtypery   r   r”  r�  r–  rŠ  r•  Nr¿   rÆ   r€   )r�   r‘   r’  )	r   r/   ÚcatZreorder_categoriesr)   r{   r|   r(   r*   ©r1   Z
input_dictZinput_dfÚexpected_dictr8   r~   r7   r   r   r   Ú test_replace_value_category_type‰  sL    û
ÿ
ÿ

ÿ
û
ÿ
ÿ

ÿ
ÿ,z5TestDataFrameReplace.test_replace_value_category_typec                 C  s¨   dgdgdgdœ}t |d� ddddœ¡}dgdgd	gdœ}t |d� ddddœ¡}d
}tjt|d��" | ddd	dœ¡}W d  ƒ n1 sŽ0    Y  t ||¡ dS )zf
        Test to ensure category dtypes are maintained
        after replace with dict values
        r   r�  r‰  rŽ   r“  ré   r”  r–  r•  r—  ry   )r   r�  r‰  N)r   r/   r)   r{   r|   r(   r*   r™  r   r   r   Útest_replace_dict_category_typeÂ  s    

ÿ

ÿÿ0z4TestDataFrameReplace.test_replace_dict_category_typec                 C  sD   t g d¢ƒ}t d¡}|j|didd�}t g d¢ƒ}t ||¡ d S )Nr   z^a$r”  TrT   )r”  r   r   )r   ÚreÚcompiler(   r)   r*   )r1   rR   rN   r7   r8   r   r   r   Ú test_replace_with_compiled_regexá  s
    
z5TestDataFrameReplace.test_replace_with_compiled_regexc                 C  s^   t dt dd¡t dd¡giƒ}| dt dd¡dii¡}t dddgitd�}t ||¡ d S )Nr   r   rw   rÙ   rm   )r   r£   ÚIntervalr(   r0   r)   r*   rä   r   r   r   Útest_replace_intervalsé  s     z+TestDataFrameReplace.test_replace_intervalsc                 C  sN   dddddœi}t dt d¡iƒ}| |¡}t dt d¡iƒ}t ||¡ d S )NZpositiverw   r   )u   æ­£é�¢u   ä¸­ç«‹u   è´Ÿé�¢r<   )r   r   r:  r(   r)   r*   )r1   Zcolumns_values_mapr¦   r7   r8   r   r   r   Útest_replace_unicodeð  s
    
z)TestDataFrameReplace.test_replace_unicodec                 C  s8   |dgƒ  d¡}| ¡ }| d tji¡}t ||¡ d S )Nr@   z|S)r/   r'   r(   r   r   r)   r™   )r1   r›   rœ   r8   r   r   r   Útest_replace_bytesø  s    z'TestDataFrameReplace.test_replace_bytesz!data, to_replace, value, expectedr³   Úboxc           	      C  s0   ||ƒ}||ƒ}|  ||ƒ|¡}t ||¡ d S ræ   r˜   )	r1   rš   rP   r$   r8   r¤  r›   rœ   r7   r   r   r   Ú!test_replace_list_with_mixed_typeÿ  s    z6TestDataFrameReplace.test_replace_list_with_mixed_typeÚvalc                 C  sj   t dd|giƒ}| |d ¡}t ddd gitd�}t ||¡ t dd|giƒ}| |d i¡}t ||¡ d S )Nr   rw   rm   rK  )r1   r¦  rR   r7   r8   r   r   r   Ú%test_replace_value_none_dtype_numeric  s    z:TestDataFrameReplace.test_replace_value_none_dtype_numericc                 C  sH   t ddtjgiƒ}t ddtjgiddgd�}| dd¡}t ||¡ d S )Nr   Únilzanything elser   rw   r    )r   r£   rã   r(   r)   r*   )r1   r±   r8   r7   r   r   r   Útest_replace_with_nil_na  s    z-TestDataFrameReplace.test_replace_with_nil_naN)eÚ__name__Ú
__module__Ú__qualname__r9   r­   ÚmarkÚparametrizer   r   rS   r`   rc   rh   rj   rq   r   rƒ   r…   r†   r‰   rŠ   r“   r–   r£   rã   r�   r§   r¨   r²   r»   rÄ   rÅ   rÉ   rÍ   rÎ   rÑ   r×   rÜ   rß   rá   rå   rè   rì   rï   ró   r   Zint32Zint16r   r   r   r   ZDatetimeIndexrh  r  r  r"  r#  r-  r.  r0  r2  r4  r9  r<  r?  rB  rD  rG  rH  rM  re  rf  ri  rj  rm  rr  ry  Zint8rò   rÆ   r{  r}  r�  r„  r‡  rb  r   rˆ  r›  rœ  rŸ  r¡  r¢  r£  r   Útuplero  r¥  r§  r©  r   r   r   r   r      s  ýýýýýýèþ%)(Eÿ

þþ


"üüüü


ýÿÿÿ

òü

ü
þÿ




ýÿú
øÿ÷üüüüŸþk
	(
	
$ T	 ý ýýýýéþ 

2þ

ý
ýúþ
ûþ

	

	9üþ		r   c                	   @  sÆ   e Zd Zej dedƒedƒdœedƒeedƒƒdœg¡ej ddej	fdg¡ej d	d
dg¡ej dd
dg¡ej dd
dg¡dd„ ƒƒƒƒƒZ
ej ddd
g¡dd„ ƒZdd„ Zdd„ Zdd„ ZdS )ÚTestDataFrameReplaceRegexrš   r   rL   r   r
   zto_replace,valuer:   )rA   z\1\1\1Úcompile_regexTFÚregex_kwargr   c                 C  s’   t |ƒ}| ¡ }|rt |¡}|r,|}	d }nd}	|j||||	d�}
|rV|
d u sRJ ‚|}
|tju rhtj}nd}||j|d dkdf< t 	|
|¡ d S )NTra   z...r   re   )
r   r'   r�  rž  r(   r   r   r%   r)   r*   )r1   rš   rP   r$   r±  r²  r   rR   r8   rN   r7   Zexpected_replace_valr   r   r   Útest_regex_replace_scalar'  s"    

z3TestDataFrameReplaceRegex.test_regex_replace_scalarrN   c           	      C  sä   t dgdgdœƒ}t dgdgdœƒ}d}tjt|d��  |jdd|d�}W d   ƒ n1 s\0    Y  t ||¡ t dgdgdœƒ}t dgdgdœƒ}tjt|d��  |jdd|d�}W d   ƒ n1 sÊ0    Y  t ||¡ d S )Nr1  rÇ   rw   rx   ry   )rP   r$   rN   Ú1)r   r)   r{   r|   r(   r*   )	r1   rN   r¦   Zexpected_df1r~   Z
result_df1Zdf2Zexpected_df2Z
result_df2r   r   r   Útest_replace_regex_dtype_frameQ  s    ..z8TestDataFrameReplaceRegex.test_replace_regex_dtype_framec                 C  sV   t g d¢g d¢dœƒ}| dtjdœ¡}t dtjdgtjddgdœƒ}t ||¡ d S )Nrg  )rw   r   rt   rÇ   rw   r=  rt   r’   rä   r   r   r   Ú+test_replace_with_value_also_being_replaceda  s    zETestDataFrameReplaceRegex.test_replace_with_value_also_being_replacedc                 C  sH   t g d¢g d¢dœdd�}| ¡ }|jddgdd gd	�}t ||¡ d S )
N)r¶   r~  NÚthree)r¶   Nr~  r·  r   ré   rm   re   ÚdefÚ_r/  )r   r'   r(   r)   r*   rÌ   r   r   r   Ú'test_replace_categorical_no_replacementh  s    þûzATestDataFrameReplaceRegex.test_replace_categorical_no_replacementc                 C  s‚   t dgddœƒ}|r*t|jjƒdks>J ‚nt|jjƒdks>J ‚|jddddd	� |rjt|jjƒdks~J ‚nt|jjƒdks~J ‚d S )
Nr   r   r   rt   rw   r—   r‹   T)rP   r$   r   rN   )r   ÚlenZ_mgrÚblocksr(   )r1   r�   rR   r   r   r   Útest_replace_object_splittingv  s    z7TestDataFrameReplaceRegex.test_replace_object_splittingN)rª  r«  r¬  r­   r­  r®  r   r   r   r   r³  rµ  r¶  rº  r½  r   r   r   r   r°  &  s$   þþÿ
r°  )Ú
__future__r   r   r�  Únumpyr   r­   Zpandasr£   r   r   r   r   r   Zpandas._testingZ_testingr)   Zfixturer   r   r   r°  r   r   r   r   Ú<module>   s2               