o
    �¨ÊhNý  ã                   @  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m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	„ƒZejddd„ƒZG dd„ dƒZG dd„ dƒZdS )é    )Úannotations)ÚdatetimeN)Úusing_pyarrow_string_dtype)Ú	DataFrameÚIndexÚSeriesÚ	TimestampÚ
date_rangeÚreturnúdict[str, list[int | str]]c                   C  s   t tdƒƒt dƒdœS )Né   úab..©ÚaÚb)ÚlistÚrange© r   r   úY/var/www/html/env/lib/python3.10/site-packages/pandas/tests/frame/methods/test_replace.pyÚmix_ab   s   r   ú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ejjeƒ dd�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ejjeƒ dd�d(d)„ ƒZejjeƒ dd�d*d+„ ƒZejjeƒ dd�d,d-„ ƒZejjeƒ dd�d.d/„ ƒZd0d1„ Zd2d3„ Zej d4e	j
d5d6œd5e	j
d7œg¡d8d9„ ƒZej d:g d;¢¡d<d=„ ƒZej d>d?d@gdAdBdCœdDdEgfg dF¢dGejidBejejgfg¡dHdI„ ƒZdJdK„ ZdLdM„ ZdNdO„ ZdPdQ„ Zejjeƒ dd�dRdS„ ƒZ ejjeƒ dd�dTdU„ ƒZ!dVdW„ Z"dXdY„ Z#dZd[„ Z$d\d]„ Z%d^d_„ Z&ej d`g da¢¡dbdc„ ƒZ'ddde„ Z(dfdg„ Z)dhdi„ Z*djdk„ Z+dldm„ Z,dndo„ Z-dpdq„ Z.ej dre/dsg dt¢iƒdudve/dsg dw¢iƒfe/dsg dt¢ie	j0dx�dudve/dsg dw¢ie	j0dx�fe/dsg dt¢ie	j1dx�dudve/dsg dw¢ie	j1dx�fe/dyg dz¢iƒdde/dyg d{¢iƒfe/d|g d}¢iƒd~dve/d|g d¢iƒfe/d€e2e3d�d‚dƒƒe3d�d„dƒƒe3d�d‚dƒƒgƒiƒe3d�d‚dƒƒe3d�d„dƒƒe/d€e2e3d�d„dƒƒgd ƒiƒfe/e3d…d†d‡ƒgdˆgd‰œƒdˆdŠe/e3d…d†d‡ƒgdŠgd‰œƒfe/d‹e3dŒd�duƒgiƒe3dŒd�duƒe3dŽd�duƒe/d‹e3dŽd�duƒgiƒfe/e4d�dd�d‘�dve	j
d’gd“œƒe5d”d�d•�e5d–d�d•�e/e 6e5d�d�d•�e5d–d�d•�e5d—d�d•�g¡ 7d˜¡dve	j
d’gd“œƒfe/dud™gd’dšggƒd™d‚e/d‚d›gd’dšggƒfe/dud™gd’dšggƒdud‚e/d‚d›gd’dšggƒfe/dud™gd’dšggƒd™d›e/d‚d›gd’dšggƒfe/dud™gd’dšggƒdud›e/d‚d›gd’dšggƒfg¡dœd�„ ƒZ8dždŸ„ Z9ejjeƒ dd�d d¡„ ƒZ:d¢d£„ Z;ejjeƒ dd�d¤d¥„ ƒZ<ejjeƒ dd�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»„ ZGejjeƒ dd�d¼d½„ ƒZHejjeƒ dd�d¾d¿„ ƒZIejjeƒ dd�dÀdÁ„ ƒZJdÂdÃ„ ZKdÄdÅ„ ZLej dÆdvdÇg dÈ¢d‚e	j
d„gg d¢dÉœfe	j
dÇg dÊ¢g dË¢g d¢dÉœfdBdÌg dÊ¢d‚e	j
d„gg d¢dÉœfdvd’gdÇg dÈ¢d‚e	j
d„gg d¢dÉœfdud’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
dAgdÌg dÊ¢d‚e	j
d„gg dÑ¢dÉœfg¡dÒdÓ„ ƒZMej dÔdududCœddgd’d’ggfdud’dCœddugd’dggfg¡dÕdÖ„ ƒZNej d×g dt¢g dØ¢dÙœd‚dÚd„dØœg dt¢g dÛ¢dÙœfg dt¢g dÜ¢dÙœdÝdÞdßdÜœg dt¢g dà¢dÙœfg¡dádâ„ ƒZOejjeƒ dd�ej dãe5däƒe	 Pdu¡e	 1du¡e	 Qdu¡e	 Rdu¡g¡dådæ„ ƒƒZSdçdè„ ZTdédê„ ZUej d`g dë¢¡ej dìe	j
ejg¡dídî„ ƒƒZVej dïe	j
d‚g¡dðdñ„ ƒZWej dìe Xdò¡e Ydvd‚¡g¡dódô„ ƒZZdõdö„ Z[d÷dø„ Z\dùdú„ Z]dûdü„ Z^dýdþ„ Z_dÿ�d „ Z`ej �ddugd™gdvgdvgfdugdugdvgdvgfd™gd™gdvg�dgfd™gdugdvg�dgfg¡ej �deaebe	jcg¡�d�d„ ƒƒZdej �dd’e	j
dšg¡�d�d„ ƒZe�d	�d
„ Zf�dS (  ÚTestDataFrameReplaceúcan't set float into string©Úreasonc                 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 s-J ‚t || d¡¡ |}t j|j	dd…|j
 d¡f< t j|j	d	d …|j
 d¡f< | t j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)Ú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©rA   r?   ÚlÚor   ú
\s*(\.)\s*z(e|f|g)ú\1\1ú\1_crap©r   r   ú..rI   )Úe_crapÚf_crapÚg_craprA   )rA   rJ   rC   rD   Úe©r?   ÚfÚgrA   r%   TFÚuse_value_regex_argsc                 C  sp   t tdƒtdƒtdƒdœƒ}|r|j|||d�}n	|j||d|d�}|r,|d u s*J ‚|}t |ƒ}t ||¡ d S )Nr   ÚefghÚhelor   )r*   Úregexr%   T©rT   r%   )r   r   r.   r/   r0   )r5   Ú
to_replaceÚvaluesr<   r%   rQ   Údfr;   r   r   r   Útest_regex_replace_list_obj;   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   Úhalor   T©rT   r   rB   rE   ú(a|b)rF   rG   ©Úa_crapÚb_craprI   rI   r   ©rE   r   z(b)©rF   r?   rG   ©r?   r_   rI   rI   ©rT   r*   )r   r   r   r   r   r.   r/   r0   )	r5   r   ÚdfmixÚto_replace_resrW   Úmix2Údfmix2ÚresÚexpecr   r   r   Útest_regex_replace_list_mixeds   s8   
ýÿz2TestDataFrameReplace.test_regex_replace_list_mixedc                 C  st  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 sPJ ‚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 s§J ‚t |d g d¢dœƒ}t ||¡ d S )Nr>   r   r?   T©r%   rT   r   r   rE   r\   rF   rG   r]   r`   ra   rb   ©rT   r*   r%   )r   r   r   r-   r.   r/   r0   )r5   r   rd   re   rW   rh   r9   ri   r   r   r   Ú%test_regex_replace_list_mixed_inplaceœ   s:   
z:TestDataFrameReplace.test_regex_replace_list_mixed_inplacec                 C  sz  t |ƒ}|jddidtjidd�}| ¡ }|jddidtjiddd�}|d u s)J ‚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 sjJ ‚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 s¥J ‚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>   Tr[   rk   r   r   r   rE   z\1ty)r   r   ú.tyrn   rc   rl   Ú.rU   ©r   r.   r   r   r-   r/   r0   )r5   r   rd   rh   Úres2r9   ri   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 s+J ‚|jddtjiid�}|jddtjiidd�}|d u sHJ ‚t |d ddtjtjg|d d	œƒ}t ||¡ t ||¡ t ||¡ t ||¡ d S )
Nr   r>   Tr[   rk   rU   r   r   r   rp   )	r5   r   rd   rh   rq   Úres4r9   Úres3ri   r   r   r   Útest_regex_replace_dict_nested	  s$   ÿÿz3TestDataFrameReplace.test_regex_replace_dict_nestedc                 C  s¬   |}t dg d¢i|d�}|r;|dkr;tjtdd�� |jddid	d
�}W d   ƒ n1 s-w   Y  t dg d¢iƒ}n|jddid	d
�}t dg d¢i|d�}t ||¡ d S )NÚfirst)ÚabcÚbcaÚcab©ÚdtypeÚobjectÚDowncasting©Úmatchr   ro   Tr[   )z.bczbc.zc.b©r   r/   Úassert_produces_warningÚFutureWarningr.   r0   )r5   Úany_string_dtypeÚusing_infer_stringr{   rX   r;   r<   r   r   r   Ú2test_regex_replace_dict_nested_non_first_character  s   ÿzGTestDataFrameReplace.test_regex_replace_dict_nested_non_first_characterc                 C  sz   t g d¢ddœƒ}t g d¢ddœƒ}d}tjt|d�� | ddd	d
œi¡}W d   ƒ n1 s0w   Y  t ||¡ d S )N)ÚQÚTr†   r†   r‡   é   )ÚTypeÚtmp)r   é   r   r   r‹   ú!Downcasting behavior in `replace`r~   r‰   r   r‹   )r†   r‡   r€   ©r5   rX   r<   Úmsgr;   r   r   r   Ú%test_regex_replace_dict_nested_gh4115.  s   ÿz:TestDataFrameReplace.test_regex_replace_dict_nested_gh4115c           	      C  sZ  t |ƒ}t |d t tjgd ¡tjtjtjdgdœƒ}d}tjt|d�� |jddgtjd	d
�}W d   ƒ n1 s;w   Y  | ¡ }| ¡ }tjt|d�� |jddgtjd	d	d�}W d   ƒ n1 sfw   Y  |d u sqJ ‚tjt|d�� |jddgtjd	d�}W d   ƒ n1 sŽw   Y  |d u s™J ‚t 	||¡ t 	||¡ t 	||¡ d S )Nr   r   r   r   rŒ   r~   r>   za|bTr[   rU   rl   )
r   r   Úarrayr   r/   r�   r‚   r.   r-   r0   )	r5   r   rX   ri   rŽ   rh   rq   rt   r9   r   r   r   Ú!test_regex_replace_list_to_scalar9  s8   ýÿÿÿÿÿÿ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 s1J ‚t |d g d¢|d	 d
œƒ}t ||¡ t ||¡ t ||¡ d S )Nr>   r   Tr[   rk   rl   r   )r   r   r   r   r   r   )r   r.   r-   r/   r0   ©r5   r   rX   rh   rq   r9   rt   ri   r   r   r   Ú!test_regex_replace_str_to_numericX  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 s#J ‚| ¡ }|jddgddd�}|d u s7J ‚t |d g d	¢ddtjd
gdœƒ}t ||¡ t ||¡ t ||¡ d S )Nr>   r   r   Tr[   rU   rl   r   )r   r   r   r   r   r   )r   r.   r-   r   r   r/   r0   r’   r   r   r   Ú(test_regex_replace_regex_list_to_numericj  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 s,J ‚| ¡ }|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>   Tr[   rk   rl   r   r   r   )r   r   r   r   r.   r-   r/   r0   )
r5   r   rX   Ús1Ús2rh   rq   r9   rt   ri   r   r   r   Ú$test_regex_replace_series_of_regexes}  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s'J ‚d S )N)r   r‹   rˆ   r@   r   r   r   r   r   )r   r.   r/   r0   r   r{   r   Úobject_)r5   r   rX   ri   rh   r   r   r   Ú/test_regex_replace_numeric_to_object_conversion�  s
   zDTestDataFrameReplace.test_regex_replace_numeric_to_object_conversionrV   Ú )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Úcol3r[   )Ú1000r   rœ   r   r   ©r   r.   r   r   r/   r0   )r5   rV   rX   r;   r<   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   ÚelseÚparen©r   r.   r/   r0   )r5   r¤   rX   r;   r<   r   r   r   Útest_replace_regex_metachar¬  s   z0TestDataFrameReplace.test_replace_regex_metacharzdata,to_replace,expectedÚxaxÚxbxr   r   r   ÚxcxÚxdx)r   rš   rš   ú^\s*$c                 C  s´   |}|||d�}	|rE|dkrEt |ƒdkr$t|	tƒr$|j tjjdd�¡ tj	t
dd�� |	j|dd	�}
d
}W d   ƒ n1 s?w   Y  n|	j|dd	�}
|||d�}t |
|¡ d S )Nrz   r|   r‹   z=object input array that gets downcasted raises on second passr   r}   r~   Tr[   zstring[pyarrow_numpy])ÚlenÚ
isinstancer   ÚnodeÚ
add_markerÚpytestÚmarkÚxfailr/   r�   r‚   r.   Úassert_equal)r5   ÚdatarV   r<   Úframe_or_seriesrƒ   r„   Úrequestr{   Úobjr;   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,   é   ú-Ú20150101Ú20150102)r   r   r+   r,   r.   r/   r0   r1   r   ÚpdÚto_datetime)r5   r6   Úzero_filledrX   Údf1Ú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   rR   rS   r   ro   rM   r?   r   r   rN   rB   rO   rI   rH   )rM   r?   rP   rA   )rA   rM   rC   rD   )r   r   r   r   r.   r/   r0   )r5   r¹   Údfobjre   rW   rh   ri   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 sGw   Y  tj	t
|jd	d�d�� | tjd
dgi¡ W d   ƒ d S 1 smw   Y  d S )Nr   r   r‹   ÚcolzwNumPy boolean array indexing assignment cannot assign {size} input values to the 1 output values where the mask is truer   )Úsizer~   rˆ   ÚdummyÚalt)r   r   r   r   r/   Úget_objr.   rµ   r²   ÚraisesÚ
ValueErrorÚformat)r5   r·   Úserr¹   r<   r;   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ç        r‹   r   ç       @r   )ÚzeroÚoneç      à?ç      ð?)r   r.   r/   r0   Úmeanr   )r5   rX   r;   r<   Ú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 s)w   Y  ttjgd ƒ}|j}t 	||¡ d S )N)r'   ÚbarÚbah)rÝ   r'   rÞ   r‹   rˆ   r@   ú"Downcasting behavior in `replace` r~   )
r   r/   r�   r‚   r.   r   r   Úint64ÚdtypesÚassert_series_equal)r5   rX   ÚmrŽ   Úrepri   rh   r   r   r   Útest_replace_convert9  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¡}|jdd�}t ||¡ t | dt j¡|¡ | t jd¡}|jdd�}t ||¡ t | dt j¡|¡ d S )	Nr!   r&   r'   r(   r"   iîÿÿÿr)   r»   )	r   r   r2   r3   r4   r.   r1   r/   r0   )r5   r7   r:   r;   r<   r   r   r   Útest_replace_mixedG  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Õ   Úfloat64rz   r   r‹   rà   ©r"   r¼   rØ   Tr$   ©r   r   r.   r/   r0   )r5   rX   r<   r;   r9   r   r   r   Ú&test_replace_mixed_int_block_upcastingY  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ç   rz   r   r‹   rà   rˆ   ©r"   r¼   ÚCrØ   ré   ©r5   rX   r<   r;   r   r   r   Ú&test_replace_mixed_int_block_splittingn  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ƒtdd	gd
d�dœƒ}|rgtjtdd�� | ddgd	dg¡}W d   ƒ n1 saw   Y  n
| ddgd	dg¡}t ||¡ d S )NrÙ   rÕ   rç   rz   r   r‹   rà   rè   r'   r|   rˆ   rÝ   r}   r~   )r   r   r.   r/   r0   r�   r‚   )r5   r„   rX   r<   r;   r   r   r   Útest_replace_mixed2�  s0   þÿþÿ
þÿÿ€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à   rz   rè   rç   ©r   r   r‹   )r‹   r‹   )
r   r   r.   rÚ   Úto_dictr-   Úastyper2   r/   r0   )r5   rX   r;   r<   rã   r   r   r   Útest_replace_mixed3Ÿ  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 )	Nr‹   rˆ   r@   )ÚsomeÚstringsÚhereÚher   r   ÚInt64rš   )r   r   r   rò   r.   r/   râ   ©r5   rX   rh   r   r   r   Ú1test_replace_nullable_int_with_string_doesnt_cast«  s   zFTestDataFrameReplace.test_replace_nullable_int_with_string_doesnt_castr{   )Úbooleanrø   ÚFloat64c                 C  sP   t g d¢|d�}tg d¢|dœƒ}| dd¡}tg d¢|dœƒ}t ||¡ d S )N)r‹   r   r‹   rz   )r"   r¼   Úxrè   rý   ÚX)r"   r¼   rþ   ©r   r   r.   r/   r0   )r5   r{   Únullable_serrX   r;   r<   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Ê   r‹   r!   ©r   rˆ   r@   r   r   r   )r‹   r   ©r   r   r.   r/   r0   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Ê   r‹   r!   r  r¿   r   r   )éÿÿÿÿr‹   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ø   rz   )r   rò   r.   rÂ   ÚNAr|   r/   r0   ©r5   rX   r;   r<   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/   r0   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   Úcategoryrz   )r!   r   r@   rˆ   rç   )ÚidrÊ   r@   )ç      @g      @NrÕ   r|   rÿ   )r5   Ú
cat_seriesrX   r;   r<   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ð   ©r‹   r   r‹   r   ©rV   r»   )r2   r   r   r.   r‡   r/   r0   r-   )r5   r6   Ú
orig_valueÚorig2r;   r<   r8   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�� |j
dd	�}t 	||j
dd	�¡ W d   ƒ d S 1 s‰w   Y  d S )
Nr!   r"   r#   r»   r¼   z,DataFrame.fillna with 'method' is deprecatedr~   Úbfill)Úmethod)r-   rò   r   Úfloat32r   r+   r,   r.   r/   r0   r1   r�   r‚   )r5   r6   r8   rÄ   rŽ   r;   r   r   r   Útest_replace_for_new_dtypes  s   "ýz0TestDataFrameReplace.test_replace_for_new_dtypesz"frame, to_replace, value, expectedÚints©r‹   rˆ   r@   r‹   r   )r   rˆ   r@   rz   Úbools©TFT)TTTÚcomplex)ù              ð?ù               @ù              @r!  )y                r"  r#  Ú
datetime64iâ  r!   é   r¾   iÉ  é   r&   r'   )ÚdtÚstrrÝ   r'  éh  é
   iä  Ú20130101ú
US/Eastern©ÚperiodsÚtzrˆ   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 s(w   Y  t ||¡ d S )Nr)  rß   r~   )r¯   r   Úyearr‚   r/   r�   r.   r0   )r5   ÚframerV   r*   r<   ÚwarnrŽ   r;   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 sµJ ‚q£t ||¡ d}t
jt|d�� | ˆ ˆdd … ¡ W d   ƒ d S 1 sÛw   Y  d S )Nr   rš   rë   r  Úmissing©r   rˆ   r!   ©rš   ÚasdfÚfdc                   s&   i | ]\}}||  ˆ | ˆ| ¡“qS r   ©r.   ©Ú.0ÚkÚv©Úto_reprW   r   r   Ú
<dictcomp>•  s   & zLTestDataFrameReplace.test_replace_input_formats_listlike.<locals>.<dictcomp>)r!   rˆ   r   r!   c                   s$   i | ]\}}||  tjˆ | ¡“qS r   )r.   r   r   r?  )rW   r   r   rE  ¤  s   $ )éþÿÿÿr  r9  Tr$   z:Replacement lists must match in length\. Expecting 3 got 2r~   r‹   )r   r   r   Úinfr.   Úitemsr/   r0   r-   Úzipr²   rÏ   rÐ   )	r5   rX   Úfilledr<   r;   rä   r*   r9   rŽ   r   rC  r   Ú#test_replace_input_formats_listlike�  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 sOw   Y  tjddg‰ | ˆ d
¡}| ¡ }ˆ D ]}|j|d
dd�}|d u svJ ‚qft ||¡ d S )Nr   r:  r;  rë   rš   c                   s"   i | ]\}}||  ˆ | d ¡“qS )r   r>  r?  ©rD  r   r   rE  À  s   " zJTestDataFrameReplace.test_replace_input_formats_scalar.<locals>.<dictcomp>z.value argument must be scalar, dict, or Seriesr~   r  Tr$   )r   r   r   rG  r.   rH  r/   r0   r²   rÏ   Ú	TypeErrorr-   )r5   rX   rJ  r<   rŽ   r;   rä   r9   r   rL  r   Ú!test_replace_input_formats_scalarµ  s$   ÿÿz6TestDataFrameReplace.test_replace_input_formats_scalarc                 C  s   d S r  r   )r5   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œ}t d
dd	dddœƒ}d}tjt|d�� | |¡}W d   ƒ n1 s5w   Y  t ||¡ d S ©NúStrongly AgreeÚAgreeÚNeutralÚDisagreeúStrongly Disagree)r   r‹   rˆ   r@   r   r   rˆ   r@   r!   r‹   )rR  rT  rS  rQ  rU  rß   r~   ©r   r/   r�   r‚   r.   râ   ©r5   ÚanswerÚweightsr<   rŽ   r;   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œƒ}t ddd	d
ddœƒ}t d
dd	dddœƒ}d}tjt|d�� | |¡}W d   ƒ n1 s7w   Y  t ||¡ d S rP  rV  rW  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"   r‹   r   r»   r  ©rV   r*   )r   r   r   r.   r/   r0   )r5   rX   Úres1rq   rt   r<   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)r‹   rˆ   rˆ   r@   )Ú0Úvrr_  r_  )r_  r_  r_  Úbt)Úvor_  r_  r_  )ÚfolÚT_oppÚT_DirÚT_Enhz\Dr‹   r§   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/   r0   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 )Nrˆ   ©rˆ   rˆ   rØ   r<  Úfdsa)r   r   ÚrandomÚdefault_rngr.   r/   r0   ©r5   rX   r;   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 )Nrˆ   rj  rØ   FTrz   )	r   r   rl  rm  r.   ÚonesÚboolr/   r0   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   r‹   ÚasdbÚyes)r<  Tr§   r	  r   r   r   Ú%test_replace_with_dict_with_bool_keys2  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 )	Nr‹   rˆ   r@   r   )ÚY0ÚY1Úreplace_stringÚtestrw  )r   r.   r/   r0   râ   rn  r   r   r   Ú!test_replace_dict_strings_vs_ints8  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   rG  r   r/   r0   )r5   rX   ÚrrM   r   r   r   Útest_replace_truthyB  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   r‹   r!   rˆ   é   )r   r   r   r.   ÚdictrI  r/   r0   r	  r   r   r   Ú-test_nested_dict_overlapping_keys_replace_intH  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 )Nr‹   r!   rˆ   r~  r   )
r   Úarangerò   r(  r   r.   r  rI  r/   r0   )r5   r   ÚastrÚbstrrX   r;   r<   r   r   r   Ú-test_nested_dict_overlapping_keys_replace_strQ  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 ||¡ t dg d¢iƒ}| ddddœi¡}t dg d¢iƒ}t ||¡ d S )	Nr   r  ÚYÚN)TF)r…  r†  r…  )r   r‹   r   rs  r§   )r5   r„   rX   rh   Ú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sOJ ‚td‡ fdd„|jjD ƒiƒ}|jjd dkshJ ‚d}t	j
t|d�� | ˆ ¡}W d   ƒ n1 s�w   Y  t	 ||¡ d S )NÚfnameiÛ  é   ÚM)r5  ÚmonthÚfreqr‹   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©r”  r–  r“  r’  r•  r�  r‘  ©r3   c                   ó   g | ]}ˆ d  | ‘qS ©r‰  r   ©r@  rA  ©r   r   r   Ú
<listcomp>‰  ó    z<TestDataFrameReplace.test_replace_period.<locals>.<listcomp>r   z	Period[M]rß   r~   )rÂ   ÚPeriodr   Úsetr‰  rW   Úkeysrá   r2   r/   r�   r‚   r.   r0   r�   r   rœ  r   Útest_replace_periodi  s0   ÿ÷ÿ	ö ÿ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s3J ‚td‡ fdd„|jjD ƒiƒ}d}tjt|d�� | 	ˆ ¡}W d   ƒ n1 s[w   Y  t 
||¡ d S )Nr‰  z2011-08z2011-01z2012-05z2011-04z2012-08z2011-05z2013-09r�  r—  r˜  c                   r™  rš  r   r›  rœ  r   r   r�  ­  rž  z>TestDataFrameReplace.test_replace_datetime.<locals>.<listcomp>rß   r~   )r   r   r   r‰  rW   r¡  r/   r�   r‚   r.   r0   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   rˆ   rè   r‹   ©r   r‹   rˆ   rç   rz   r0  r1  r2  r3  r"   r4  r  z
US/Pacific)r   r	   r   r   r.   r   r/   r0   r1   r   r'  Úas_unitr-   r2   rÂ   r  Ú
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 )Nrz   r   )r   r/   r0   r.   r   r|   )r5   r   rX   r   r   r   Ú test_replace_with_empty_dictlike  s
   z5TestDataFrameReplace.test_replace_with_empty_dictlikezto_replace, method, expectedr  )r‹   r‹   rˆ   rë   r¤  )r  ç      @r©  ÚffillÚpad)r   r   r   )r‹   rˆ   )r   rˆ   rˆ   )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 s,w   Y  t |ƒ}t ||¡ d S )	Nr¤  r!   r¾   r   rë   z7The 'method' keyword in DataFrame.replace is deprecatedr~   )rV   r*   r  )r   r   r   r/   r�   r‚   r.   r0   )r5   rV   r  r<   rX   rŽ   r;   r   r   r   Útest_replace_method  s    "ÿz(TestDataFrameReplace.test_replace_methodzreplace_dict, final_datac                 C  sl  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r-d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_w   Y  t 	|	|¡ d}
t
jt|
d�� t 	||¡ W d   ƒ n1 s„w   Y  tjt|d�� |j|ddd�}W d   ƒ n1 s£w   Y  |d u s®J ‚t 	||¡ d S )Nr‹   rˆ   r   r   r  )r3   r{   r   r@   )Ú
categoriesr   z#with CategoricalDtype is deprecatedr~   zHAttributes of DataFrame.iloc\[:, 0\] \(column name=\"a\"\) are differentTr$   )r   r   r�   rÂ   ÚCategoricalr/   r�   r‚   r.   r0   r²   rÏ   ÚAssertionError)r5   Úreplace_dictÚ
final_datarX   r   Úex_catr   r<   Úmsg2r;   rŽ   r9   r   r   r   Ú"test_categorical_replace_with_dict:  s*   
ÿÿþÿz7TestDataFrameReplace.test_categorical_replace_with_dictzdf, to_replace, exp©r   r!   r~  )rž   rŸ   r~  )r!   r~  r¾   )Ú4Ú5Ú6r·  r¸  Ú7)r·  r¸  r¹  c                 C  s*   t |ƒ}t |ƒ}| |¡}t ||¡ d S r  r§   )r5   rX   rV   Úexpr<   r;   r   r   r   Útest_replace_commutativeZ  s   
z-TestDataFrameReplace.test_replace_commutativeÚreplacerÚ20170827c                 C  sf   t dgƒ}d}tjt|d�� | ||dœ¡}W d   ƒ n1 s!w   Y  t |gƒ}t ||¡ d S )Nr   rß   r~   r   r€   )r5   r¼  rX   rŽ   r;   r<   r   r   r   Útest_replace_replacer_dtypet  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)r‹   rˆ   r@   r   r!   rø   rz   r‹   r*  )r*  rˆ   r@   r   r!   r§   r	  r   r   r   Ú!test_replace_after_convert_dtypesŠ  s   z6TestDataFrameReplace.test_replace_after_convert_dtypesc              	   C  sž   t g d¢g d¢dœƒ}d}d}tjt|d��/ tjt|d�� | dd„ ¡ W d   ƒ n1 s0w   Y  W d   ƒ d S W d   ƒ d S 1 sHw   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 deprecatedr~   c                 S  s   |   ¡ S r  )Ústrip)rý   r   r   r   Ú<lambda>Ÿ  s    zFTestDataFrameReplace.test_replace_invalid_to_replace.<locals>.<lambda>)r   r²   rÏ   rM  r/   r�   r‚   r.   )r5   rX   rŽ   r³  r   r   r   Útest_replace_invalid_to_replace‘  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 )Nrˆ   rz   r\  )r   r   Úeyer.   rG  r/   r0   )r5   r{   r*   rX   r;   r   r   r   Ú"test_replace_no_replacement_dtypes¡  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  rµ  )r¾   rŠ  rŽ  )r"   ÚA1r¼   ÚAABrŠ  rŽ  r¼   r¾   )r   r   r3   r.   r/   r0   )r5   rÈ  r;   r<   r   r   r   Ú#test_replace_with_duplicate_columns©  s   
ÿ
z8TestDataFrameReplace.test_replace_with_duplicate_columnsz2020-01c                 C  sB   t d|gd iƒ}t ||¡}| ¡ }| dd¡}t ||¡ d S )NÚPerr@   rÙ   rÔ   )r   r/   rÎ   r-   r.   rµ   )r5   r·   r*   r¹   r<   r;   r   r   r   Útest_replace_ea_ignore_float¸  s
   z1TestDataFrameReplace.test_replace_ea_ignore_floatc                 C  sJ  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�� | dd¡}| dd¡}| dd¡}W d  ƒ n1 s˜w   Y  t ||¡ dS )zt
        Test for #23305: to ensure category dtypes are maintained
        after replace with direct values
        )r‹   rˆ   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)ÚorderedrÖ  )r   r   r   Úz)rÎ  ÚcatXrÐ  rÑ  )Úobj9rÓ  rÔ  rÕ  úOThe behavior of Series\.replace \(and DataFrame.replace\) with CategoricalDtyper~   r   rÚ  rÒ  rÜ  rÏ  rÛ  N)	r   rò   ÚcatÚreorder_categoriesr/   r�   r‚   r.   r0   ©r5   Ú
input_dictÚinput_dfÚexpected_dictr<   rŽ   r;   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 sGw   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Ý  r~   )r   rÒ  rÎ  N)r   rò   r/   r�   r‚   r.   r0   rà  r   r   r   Útest_replace_dict_category_typeú  s   

ÿ

ÿÿÿ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Ú  Tr[   )rÚ  r   r   )r   ÚreÚcompiler.   r/   r0   )r5   rX   rT   r;   r<   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ƒ}|rtnd }tj|dd�� | dt dd¡dii¡}W d   ƒ n1 s5w   Y  t dddgiƒ}t ||¡ d S )Nr   r   r‹   r}   r~   rý   )r   rÂ   ÚIntervalr‚   r/   r�   r.   r0   )r5   r„   rX   Úwarningr;   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 )NÚpositiver‹   r   )u   æ­£é�¢u   ä¸­ç«‹u   è´Ÿé�¢r@   )r   r   rp  r.   r/   r0   )r5   Úcolumns_values_maprÅ   r;   r<   r   r   r   Útest_replace_unicode*  s
   
z)TestDataFrameReplace.test_replace_unicodec                 C  s8   |dgƒ  d¡}| ¡ }| d tji¡}t ||¡ d S )NrD   z|S)rò   r-   r.   r   r   r/   rµ   )r5   r·   r¹   r<   r   r   r   Útest_replace_bytes2  s   z'TestDataFrameReplace.test_replace_bytesz!data, to_replace, value, expectedrÔ   Úboxc           	      C  s0   ||ƒ}||ƒ}|  ||ƒ|¡}t ||¡ d S r  )r.   r/   rµ   )	r5   r¶   rV   r*   r<   rð  r·   r¹   r;   r   r   r   Ú!test_replace_list_with_mixed_type9  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   r‹   rz   )r   r.   r|   r/   r0   )r5   rò  rX   r;   r<   r   r   r   Ú%test_replace_value_none_dtype_numericL  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   r‹   r½   )r   rÂ   r  r.   r/   r0   )r5   rÒ   r<   r;   r   r   r   Útest_replace_with_nil_naX  s   z-TestDataFrameReplace.test_replace_with_nil_naN)gÚ__name__Ú
__module__Ú__qualname__r²   r³   r´   r   r=   Úparametrizer   r   rY   rj   rm   rr   ru   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  r   Úint32Úint16r   r   r	   r   ÚDatetimeIndexr¥  r8  rK  rN  rO  rZ  r[  r^  rg  ri  ro  rr  rv  r{  r}  r€  r„  rˆ  r¢  r£  r§  r¨  r¬  r´  r»  Úint8r  rç   r¾  rÀ  rÄ  rÇ  rË  rŸ  ré  rÍ  rä  rå  rè  rë  rî  rï  r   Útupler�   rñ  ró  rõ  r   r   r   r   r       sf   ÿ
ýýýýýýèþ%)(Eÿ
ÿ
ÿ
ÿ
ÿ

þþ
ÿ
ÿ


"üüüü


ýÿÿÿ

òü

ü
þÿ




ýÿ
øÿ÷üüüüŸþ
k	(ÿ
ÿ
ÿ

	
ÿ
ÿ
$ÿ
 T	 ý ýýýýéþ
 
2þ

ý
ýúþ
ÿûþ
	

	8	
üþ		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jeƒ dd�ej ddd
g¡dd„ ƒƒZdd„ Zdd„ Zdd„ ZdS )ÚTestDataFrameReplaceRegexr¶   r   rR   r   r   zto_replace,valuer>   )rE   z\1\1\1Úcompile_regexTFÚregex_kwargr%   c                 C  s’   t |ƒ}| ¡ }|rt |¡}|r|}	d }nd}	|j||||	d�}
|r+|
d u s)J ‚|}
|tju r4tj}nd}||j|d dkdf< t 	|
|¡ d S )NTrk   z...r   ro   )
r   r-   ræ  rç  r.   r   r   r+   r/   r0   )r5   r¶   rV   r*   r   r  r%   rX   r<   rT   r;   Úexpected_replace_valr   r   r   Útest_regex_replace_scalara  s"   

z3TestDataFrameReplaceRegex.test_regex_replace_scalarr   r   rT   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.w   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 sew   Y  t ||¡ d S )Nr_  rè   r‹   rŒ   r~   )rV   r*   rT   Ú1r€   )	r5   rT   rÅ   Úexpected_df1rŽ   Ú
result_df1Údf2Úexpected_df2Ú
result_df2r   r   r   Útest_replace_regex_dtype_frame‹  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 )Nr¤  )r‹   r   rˆ   rè   r‹   rs  rˆ   r¢   r	  r   r   r   Ú+test_replace_with_value_also_being_replacedž  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  rz   ro   ÚdefÚ_r\  )r   r-   r.   r/   r0   rí   r   r   r   Ú'test_replace_categorical_no_replacement¥  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	� |r6t|jjƒdks4J ‚d S t|jjƒdks@J ‚d S )
Nr   r   r   rˆ   r‹   r­   rš   T)rV   r*   r%   rT   )r   r®   Ú_mgrÚblocksr.   )r5   r„   rX   r   r   r   Útest_replace_object_splitting³  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   r   rÿ  `  s,    þþÿÿrÿ  )r
   r   )r
   r   )Ú
__future__r   r   ræ  Únumpyr   r²   Úpandas._configr   ÚpandasrÂ   r   r   r   r   r	   Úpandas._testingÚ_testingr/   Úfixturer   r   r   rÿ  r   r   r   r   Ú<module>   s6                L