o
    Û­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„ƒZejdd
d„ƒZG dd„ dƒZG dd„ dƒZdS )é    )Úannotations)ÚdatetimeN)Ú	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   úd/var/www/html/CropPilot/venv/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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 s-J ‚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   ú..rG   )Úe_crapÚf_crapÚg_crapr?   )r?   rH   rA   rB   Úe©r=   ÚfÚgr?   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©rR   r!   )r   r   r*   r+   r,   )r3   Ú
to_replaceÚvaluesr:   r!   rO   Údfr9   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   Úhalor   T©rR   r   r@   rC   ú(a|b)rD   rE   ©Úa_crapÚb_craprG   rG   r   ©rC   r   z(b)©rD   r=   rE   ©r=   r]   rG   rG   ©rR   r&   )r   r   r   r   r   r*   r+   r,   )	r3   r   ÚdfmixÚto_replace_resrU   Úmix2Údfmix2ÚresÚexpecr   r   r   Útest_regex_replace_list_mixedp   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!   rR   r   r   rC   rZ   rD   rE   r[   r^   r_   r`   ©rR   r&   r!   )r   r   r   r)   r*   r+   r,   )r3   r   rb   rc   rU   rf   r7   rg   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<   TrY   ri   r   r   r   rC   z\1ty)r   r   ú.tyrl   ra   rj   Ú.rS   ©r   r*   r   r   r)   r+   r,   )r3   r   rb   rf   Úres2r7   rg   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<   TrY   ri   rS   r   r   r   rn   )	r3   r   rb   rf   ro   Úres4r7   Úres3rg   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)ÚabcÚbcaÚcab©Údtyper   rm   TrY   )z.bczbc.zc.b©r   r*   r+   r,   )r3   Úany_string_dtypery   rV   r9   r:   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 s4w   Y  t ||¡ d S )N)ÚQÚTr}   r}   r~   rx   é   )ÚTypeÚtmp)r   é   r   r   r‚   ú!Downcasting behavior in `replace`©Úmatchr€   r   r‚   )r}   r~   )r   r   r2   r+   Úassert_produces_warningÚFutureWarningr*   r,   ©r3   rV   r:   Úmsgr9   r   r   r   Ú%test_regex_replace_dict_nested_gh4115#  s   ÿÿz:TestDataFrameReplace.test_regex_replace_dict_nested_gh4115c                 C  sv  t |ƒ}t |d tjgd tjtjtjdgdœƒ}|r$|d  d¡|d< d}|r*d nt}tj||d�� |jd	d
gtjdd�}W d   ƒ n1 sIw   Y  | ¡ }| ¡ }	tj||d�� |jd	d
gtjddd�}
W d   ƒ n1 stw   Y  |
d u sJ ‚tj||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   Ústrrƒ   r„   r<   za|bTrY   rS   rj   )
r   r   r   r1   r‡   r+   r†   r*   r)   r,   )r3   r   Úusing_infer_stringrV   rg   r‰   Úwarnrf   ro   rr   r7   r   r   r   Ú!test_regex_replace_list_to_scalar.  s>   
ýÿÿÿÿÿÿ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   TrY   ri   rj   r   )r   r   r   r   r   r   )r   r*   r)   r+   r,   ©r3   r   rV   rf   ro   r7   rr   rg   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 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   TrY   rS   rj   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 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<   TrY   ri   rj   r   r   r   )r   r   r   r   r*   r)   r+   r,   )
r3   r   rV   Ús1Ús2rf   ro   r7   rr   rg   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s'J ‚d S )N)r   r‚   r   r>   r   r   r   r   r   )r   r*   r+   r,   r   ry   r   Úobject_)r3   r   rV   rg   rf   r   r   r   Ú/test_regex_replace_numeric_to_object_conversion~  s
   zDTestDataFrameReplace.test_regex_replace_numeric_to_object_conversionrT   Ú )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Úcol3rY   )Ú1000r   r™   r   r   ©r   r*   r   r   r+   r,   )r3   rT   rV   r9   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Úparenrz   )r3   r¡   rV   r9   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�}|j |dd�}|||d�}t ||¡ d S )Nrx   TrY   ©r*   r+   Úassert_equal)	r3   ÚdatarT   r:   Úframe_or_seriesr{   ry   Úobjr9   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+   r,   r-   r   ÚpdÚto_datetime)r3   r4   Úzero_filledrV   Ú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   rP   rQ   r   rm   rK   r=   r   r   rL   r@   rM   rG   rF   )rK   r=   rN   r?   )r?   rK   rA   rB   )r   r   r   r   r*   r+   r,   )r3   r®   Údfobjrc   rU   rf   rg   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«   ÚpytestÚraisesÚ
ValueErrorÚformat)r3   r­   Úserr®   r:   r9   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+   r,   Úmeanr   )r3   rV   r9   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)r3   rV   Úmr‰   Úreprg   rf   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/   r0   r*   r)   r1   r2   r-   r+   r,   )r3   r5   r8   r9   r:   Ú	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Ë   Úfloat64rx   r   r‚   rÖ   ©r   r±   rÎ   Tr    ©r   r   r*   r+   r,   )r3   rV   r:   r9   r7   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Þ   rx   r   r‚   rÖ   r   ©r   r±   ÚCrÎ   rà   ©r3   rV   r:   r9   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Þ   rx   r   r‚   rÖ   rß   r#   r2   r   rÓ   rà   )r3   rŒ   rV   r:   r9   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Ö   rx   rß   rÞ   ©r   r   r‚   )r‚   r‚   )
r   r   r*   rÐ   Úto_dictr)   r1   r.   r+   r,   )r3   rV   r9   r:   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 )	Nr‚   r   r>   )ÚsomeÚstringsÚhereÚher   r   ÚInt64r—   )r   r   r   r1   r*   r+   rØ   ©r3   rV   rf   r   r   r   Ú1test_replace_nullable_int_with_string_doesnt_cast…  s   zFTestDataFrameReplace.test_replace_nullable_int_with_string_doesnt_castry   )Ú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‚   rx   )r   r±   Úxrß   ró   ÚX)r   r±   rô   ©r   r   r*   r+   r,   )r3   ry   Únullable_serrV   r9   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+   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¿   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î   rx   )r   r1   r*   r·   ÚNAr2   r+   r,   ©r3   rV   r9   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+   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   Úcategoryrx   )r   r   r>   r   rÞ   )Úidr¿   r>   )ç      @g      @NrË   r2   rõ   )r3   Ú
cat_seriesrV   r9   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   ©rT   r°   )r.   r   r   r*   r~   r+   r,   r)   )r3   r4   Ú
orig_valueÚorig2r9   r:   r6   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)   r1   r   Úfloat32r   r'   r(   r*   r+   r,   r-   r†   r‡   )r3   r4   r6   r¹   r‰   r9   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>   rx   Úbools©TFT)TTTÚcomplex)ù              ð?ù               @ù              @r  )y                r  r  Ú
datetime64iâ  r   é   r³   iÉ  é   r"   r#   )Údtr‹   rÓ   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„   )Ú
isinstancer   Úyearr‡   r+   r†   r*   r,   )r3   ÚframerT   r&   r:   r�   r‰   r9   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_reprU   r   r   Ú
<dictcomp>o  s   & zLTestDataFrameReplace.test_replace_input_formats_listlike.<locals>.<dictcomp>)r   r   r   r   c                   s$   i | ]\}}||  tjˆ | ¡“qS r   )r*   r   r   r4  )rU   r   r   r:  ~  s   $ )éþÿÿÿrû   r.  Tr    z:Replacement lists must match in length\. Expecting 3 got 2r„   r‚   )r   r   r   Úinfr*   Úitemsr+   r,   r)   ÚziprÄ   rÅ   rÆ   )	r3   rV   Úfilledr:   r9   rÚ   r&   r7   r‰   r   r8  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 sOw   Y  tjddg‰ | ˆ d
¡}| ¡ }ˆ D ]}|j|d
dd�}|d u svJ ‚qft ||¡ d S )Nr   r/  r0  râ   r—   c                   s"   i | ]\}}||  ˆ | d ¡“qS )r   r3  r4  ©r9  r   r   r:  —  s   " zJTestDataFrameReplace.test_replace_input_formats_scalar.<locals>.<dictcomp>z.value argument must be scalar, dict, or Seriesr„   rû   Tr    )r   r   r   r<  r*   r=  r+   r,   rÄ   rÅ   Ú	TypeErrorr)   )r3   rV   r?  r:   r‰   r9   rÚ   r7   r   rA  r   Ú!test_replace_input_formats_scalar�  s$   ÿÿz6TestDataFrameReplace.test_replace_input_formats_scalarc                 C  s   d S r  r   )r3   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 s7w   Y  t ||¡ d S ©NúStrongly AgreeÚAgreeÚNeutralÚDisagreeúStrongly Disagree)r   r‚   r   r>   r   rx   r   r   r>   r   r‚   )rG  rI  rH  rF  rJ  rÕ   r„   ©r   r+   r†   r‡   r*   rØ   ©r3   r{   ÚanswerÚweightsr:   r‰   r9   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 s9w   Y  t ||¡ d S rE  rK  rL  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
  ©rT   r&   )r   r   r   r*   r+   r,   )r3   rV   Úres1ro   rr   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ÚvrrT  rT  )rT  rT  rT  Úbt)ÚvorT  rT  rT  )ÚfolÚT_oppÚT_DirÚT_Enhz\Dr‚   rz   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 )Nr   ©r   r   rÎ   r1  Úfdsa)r   r   ÚrandomÚdefault_rngr*   r+   r,   ©r3   rV   r9   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   r_  rÎ   FTrx   )	r   r   ra  rb  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   r‚   ÚasdbÚyes)r1  Trz   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 )	Nr‚   r   r>   r   )ÚY0ÚY1Úreplace_stringÚtestrl  )r   r*   r+   r,   rØ   rc  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,   )r3   rV   ÚrrK   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   r‚   r   r   é   )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 )Nr‚   r   r   rs  r   )
r   Úaranger1   r‹   r   r*   rt  r>  r+   r,   )r3   r   ÚastrÚbstrrV   r9   r:   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)rz  r{  rz  rx   )r   r‚   r   rh  ©r   r*   r2   r+   r,   )r3   rV   rf   Ú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)r+  Ú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‡  ©r/   c                   ó   g | ]}ˆ d  | ‘qS ©r  r   ©r5  r6  ©r   r   r   Ú
<listcomp>V  ó    z<TestDataFrameReplace.test_replace_period.<locals>.<listcomp>r   z	Period[M]rÕ   r„   )r·   ÚPeriodr   Úsetr  rU   Úkeysr×   r.   r+   r†   r‡   r*   r,   rˆ   r   r’  r   Útest_replace_period9  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“  w  r”  z>TestDataFrameReplace.test_replace_datetime.<locals>.<listcomp>rÕ   r„   )r   r   r–  r  rU   r—  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   r   rß   r‚   ©r   r‚   r   rÞ   rx   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  Ú
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 )Nrx   r   )r   r+   r,   r*   r   r2   )r3   r   rV   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„   )rT   r&   r  )r   r   r   r+   r†   r‡   r*   r,   )r3   rT   r  r:   rV   r‰   r9   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  )r/   ry   r   r>   )Ú
categoriesr   z#with CategoricalDtype is deprecatedr„   zHAttributes of DataFrame.iloc\[:, 0\] \(column name=\"a\"\) are differentTr    )r   r   Úarrayr·   ÚCategoricalr+   r†   r‡   r*   r,   rÄ   rÅ   ÚAssertionError)r3   Úreplace_dictÚ
final_datarV   r   Úex_catr   r:   Úmsg2r9   r‰   r7   r   r   r   Ú"test_categorical_replace_with_dict  s*   
ÿÿþÿz7TestDataFrameReplace.test_categorical_replace_with_dictzdf, to_replace, exp©r   r   rs  )r›   rœ   rs  )r   rs  r³   )Ú4Ú5Ú6r®  r¯  Ú7)r®  r¯  r°  c                 C  s*   t |ƒ}t |ƒ}| |¡}t ||¡ d S r  rz   )r3   rV   rT   Úexpr:   r9   r   r   r   Útest_replace_commutative$  s   
z-TestDataFrameReplace.test_replace_commutativeÚreplacerÚ20170827c                 C  sj   t dgtd�}d}tjt|d�� | ||dœ¡}W d   ƒ n1 s#w   Y  t |gƒ}t ||¡ d S )Nr   rx   rÕ   r„   r   )r   r2   r+   r†   r‡   r*   r,   )r3   r³  rV   r‰   r9   r:   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)r‚   r   r>   r   r   rî   rx   r‚   r  )r  r   r>   r   r   rz   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��/ 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>f  s    zFTestDataFrameReplace.test_replace_invalid_to_replace.<locals>.<lambda>)r   rÄ   rÅ   rB  r+   r†   r‡   r*   )r3   rV   r‰   rª  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 )Nr   rx   rQ  )r   r   Úeyer*   r<  r+   r,   )r3   ry   r&   rV   r9   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  r¬  )r³   r€  r„  )r   ÚA1r±   ÚAABr€  r„  r±   r³   )r   r   r/   r*   r+   r,   )r3   r¿  r9   r:   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 )NÚPerr>   rÏ   rÊ   )r   r+   rÃ   r)   r*   r«   )r3   r­   r&   r®   r:   r9   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�� | dd¡}| dd¡}| dd¡}W d  ƒ n1 s˜w   Y  | ddddœ¡}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Ò  NrÖ   rÞ   r‹   )r›   r�   rÎ  )	r   r1   ÚcatÚreorder_categoriesr+   r†   r‡   r*   r,   ©r3   Ú
input_dictÚinput_dfÚexpected_dictr:   r‰   r9   r   r   r   Ú test_replace_value_category_type‰  sN   û
ÿ

ÿ

ÿû
ÿ

ÿ

ÿÿý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   r1   r+   r†   r‡   r*   r,   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Ñ  TrY   )rÑ  r   r   )r   ÚreÚcompiler*   r+   r,   )r3   rV   rR   r9   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ƒ}| dt dd¡dii¡}t dddgitd�}t ||¡ d S )Nr   r   r‚   ró   rx   )r   r·   ÚIntervalr*   r2   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 )NÚpositiver‚   r   )u   æ­£é�¢u   ä¸­ç«‹u   è´Ÿé�¢r>   )r   r   re  r*   r+   r,   )r3   Úcolumns_values_maprº   r9   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 )NrB   z|S)r1   r)   r*   r   r   r+   r«   )r3   r­   r®   r:   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ª   )	r3   r¬   rT   r&   r:   ræ  r­   r®   r9   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   r‚   rx   r|  )r3   rè  rV   r9   r:   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   r‚   r²   )r   r·   rþ   r*   r+   r,   )r3   rÈ   r:   r9   r   r   r   Útest_replace_with_nil_na  s   z-TestDataFrameReplace.test_replace_with_nil_naN)eÚ__name__Ú
__module__Ú__qualname__r;   rÄ   ÚmarkÚparametrizer   r   rW   rh   rk   rp   rs   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›  r-  r@  rC  rD  rO  rP  rS  r\  r^  rd  rg  rk  rp  rr  ru  ry  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      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   rP   r   r   zto_replace,valuer<   )rC   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 )NTri   z...r   rm   )
r   r)   rÝ  rÞ  r*   r   r   r'   r+   r,   )r3   r¬   rT   r&   r÷  rø  r!   rV   r:   rR   r9   Úexpected_replace_valr   r   r   Útest_regex_replace_scalar'  s"   

z3TestDataFrameReplaceRegex.test_regex_replace_scalarrR   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 )NrT  rß   r‚   rƒ   r„   )rT   r&   rR   Ú1)r   r+   r†   r‡   r*   r,   )	r3   rR   rº   Úexpected_df1r‰   Ú
result_df1Údf2Úexpected_df2Ú
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 )Nrš  )r‚   r   r   rß   r‚   rh  r   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  rx   rm   ÚdefÚ_rQ  )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	� |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)rT   r&   r!   rR   )r   ÚlenÚ_mgrÚblocksr*   )r3   rŒ   rV   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ö  )r	   r
   )r	   r   )Ú
__future__r   r   rÝ  Únumpyr   rÄ   Úpandasr·   r   r   r   r   r   Úpandas._testingÚ_testingr+   Úfixturer   r   r   rö  r   r   r   r   Ú<module>   s4                