U
    ¾mœdLã  ã                   @  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   ú`/home/sam/Atlas/atlas_env/lib/python3.8/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                   @  sj	  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 d
dddgdœfddgddgddddgdddd
gd
dddgdœfddgddgddddgdddd
gd
dddg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/d0„ Zd1d2„ Zd3d4„ Zej d5ejd6d7œd6ejd8œg¡d9d:„ ƒZej d;d<d=d>d?d@g¡dAdB„ ƒZej dCdDdEgdFdGdHœdIdJgfdGd6d6gdKejidGejejgfg¡dLdM„ ƒZdNdO„ ZdPdQ„ ZdRdS„ ZdTdU„ ZdVdW„ ZdXdY„ ZdZd[„ Z d\d]„ Z!d^d_„ Z"d`da„ Z#dbdc„ Z$ej dddedfdgg¡dhdi„ ƒZ%djdk„ Z&dldm„ Z'dndo„ Z(dpdq„ Z)drds„ Z*dtdu„ Z+dvdw„ Z,ej dxe-dydzd{d	giƒdzd|e-dyd|d{d	giƒfe-dydzd{d	giej.d}�dzd|e-dyd|d{d	giej.d}�fe-dydzd{d	giej/d}�dzd|e-dyd|d{d	giej/d}�fe-d~dddgiƒdde-d~dddgiƒfe-dd€d�d‚giƒd€d|e-ddƒd�d‚g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‘dzƒgiƒe1d�d‘dzƒe1d’d‘dzƒe-d�e1d’d‘dzƒgiƒfe-e2d“d	d”d•�d|ejd{gd–œƒe3d—d”d˜�e3d™d”d˜�e-e3d“d”d˜�e3d™d”d˜�e3dšd”d˜�gd|ejd{gd–œƒfe-dzd›gd{dœggƒd›d†e-d†d�gd{dœggƒfe-dzd›gd{dœggƒdzd†e-d†d�gd{dœggƒfe-dzd›gd{dœggƒd›d�e-d†d�gd{dœggƒfe-dzd›gd{dœggƒdzd�e-d†d�gd{dœggƒfg¡dždŸ„ ƒZ4d d¡„ Z5d¢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Ç„ ZHej dÈd|dÉdzdzd{gd†ejdˆgdddFgdÊœfejdÉd|dzd{gd�dËdËgdddFgdÊœfdGdÌd|dzd{gd†ejdˆgdddFgdÊœfd|d{gdÉdzdzd{gd†ejdˆgdddFgdÊœfdzd{gdÍd|d|d|gd†ejdˆgdddFgdÊœfdÎdÉd|d{d{gd†ejdˆgdddFgdÊœfddFgdÌd|dzd{gd†ejdˆgdddgdÊœfg¡dÏdÐ„ ƒZIej dÑdzdzdHœd	d	gd{d{ggfdzd{dHœd	dzgd{d	ggfg¡dÒdÓ„ ƒZJej dÔdzd{d	gdÕd†dÖgd×œd†dÖdˆdØœdzd{d	gd†dÖdˆgd×œfdzd{d	gdÙdÚdÛgd×œdÚdÛdÜdÝœdzd{d	gdÚdÛdÜgd×œfg¡dÞdß„ ƒZKej dàe3dáƒe Ldz¡e /dz¡e Mdz¡e Ndz¡g¡dâdã„ ƒZOdädå„ ZPdædç„ ZQej dddèdédêdfdeg¡ej dëejejg¡dìdí„ ƒƒZRej dîejd†g¡dïdð„ ƒZSej dëe Tdñ¡e Ud|d†¡g¡dòdó„ ƒZVdôdõ„ ZWdöd÷„ ZXdødù„ ZYdúdû„ ZZdüdý„ Z[dþdÿ„ Z\ej �d dzgd›gd|gd|gfdzgdzgd|gd|gfd›gd›gd|g�dgfd›gdzgd|g�dgfg¡ej �de]e^ej_g¡�d�d„ ƒƒZ`ej �dd{ejdœg¡�d�d„ ƒZa�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 ksZt‚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 ksøt‚t || 	d¡¡ d S )Né   ÚAéûÿÿÿr   T©Úinplaceé   Úfooéöÿÿÿ©Úvalue)r   r   ÚlocÚindexÚcopyÚreplaceÚAssertionErrorÚ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ÚlÚor   ú
\s*(\.)\s*z(e|f|g)ú\1\1ú\1_crapú..Ze_crapZf_crapZg_crapÚeÚfÚgr   TFÚuse_value_regex_argsc                 C  sp   t tdƒtdƒtdƒdœƒ}|r2|j|||d�}n|j||d|d�}|rX|d ksTt‚|}t |ƒ}t ||¡ d S )Nr   ÚefghÚhelor   )r$   Úregexr   T©rI   r   )r   r   r(   r)   r*   r+   )r0   Ú
to_replaceÚvaluesr7   r   rF   Údfr6   r   r   r   Útest_regex_replace_list_obj6   s    *z0TestDataFrameReplace.test_regex_replace_list_objc           	      C  s^  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ddddgdœƒ}t ||¡ ddg}ddg}|j||dd	�}t |d ddddgdœƒ}t ||¡ dddg}dddg}|j||dd	�}t |d ddddgdœƒ}t ||¡ dddg}dddg}|j||d�}t |d ddddgdœƒ}t ||¡ d S )Nr9   r   r:   r
   r   Zhalor   T©rI   r   r<   r=   r>   r?   ú(a|b)r@   rA   Úa_crapÚb_craprB   r   ú(b)©rI   r$   )r   r   r   r   r   r(   r*   r+   )	r0   r   ÚdfmixÚto_replace_resrL   Zmix2Zdfmix2ÚresÚexpecr   r   r   Útest_regex_replace_list_mixedn   s8    

ýÿ



z2TestDataFrameReplace.test_regex_replace_list_mixedc                 C  sŒ  t |ƒ}ddg}tjdg}| ¡ }|j||ddd�}|d ks@t‚t |d ddtjtjgdœƒ}t ||¡ dd	g}d
dg}| ¡ }|j||ddd�}|d ks t‚t |d ddddgdœƒ}t ||¡ dddg}d
ddg}| ¡ }|j||ddd�}|d k�st‚t |d ddddgdœƒ}t ||¡ dddg}d
ddg}| ¡ }|j||dd�}|d k�sbt‚t |d ddddgdœƒ}t ||¡ d S )Nr9   r   r:   T©r   rI   r   r   r?   rP   r@   rA   rQ   rR   rB   rS   ©rI   r$   r   )r   r   r   r'   r(   r)   r*   r+   )r0   r   rU   rV   rL   rW   r4   rX   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 ksRt‚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 ksÔt‚t |d ddddg|d dœƒ}t ||¡ t ||¡ |jdd	idd
id�}| ¡ }|jdd	idd
idd�}|d k�sPt‚t |d ddddg|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 k�sît‚t ||¡ t ||¡ |jddtjidd�}| ¡ }|jddtjidd�}|d k�sHt‚t |d tjdddg|d dœƒ}t ||¡ t ||¡ d S )Nr   r9   TrO   rZ   r   r   r   r?   z\1tyz.tyrT   r[   Ú.rJ   ©r   r(   r   r   r'   r)   r*   r+   )r0   r   rU   rW   Úres2r4   rX   r   r   r   Útest_regex_replace_dict_mixed¿   sx       ÿÿ   ÿÿ  ÿÿÿÿ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 ksVt‚|jddtjiid�}|jddtjiidd�}|d ks�t‚t |d ddtjtjg|d d	œƒ}t ||¡ t ||¡ t ||¡ t ||¡ d S )
Nr   r9   TrO   rZ   rJ   r   r   r   r^   )	r0   r   rU   rW   r_   Zres4r4   Úres3rX   r   r   r   Útest_regex_replace_dict_nested  s(      ÿÿz3TestDataFrameReplace.test_regex_replace_dict_nestedc                 C  sR   |}t ddddgi|d�}t ddddgi|d�}|jd	d
idd�}t ||¡ d S )NÚfirstÚabcZbcaZcab©Údtypez.bczbc.zc.br   r]   TrO   ©r   r(   r*   r+   )r0   Úany_string_dtyperf   rM   r7   r6   r   r   r   Ú2test_regex_replace_dict_nested_non_first_character  s
    zGTestDataFrameReplace.test_regex_replace_dict_nested_non_first_characterc                 C  sT   t dddddgddœƒ}t dddddgddœƒ}| ddddœi¡}t ||¡ d S )	NÚQÚTé   )ÚTypeÚtmpr   é   rm   )rj   rk   rg   ©r0   rM   r7   r6   r   r   r   Ú%test_regex_replace_dict_nested_gh4115!  s    z:TestDataFrameReplace.test_regex_replace_dict_nested_gh4115c                 C  sÌ   t |ƒ}t |d t tjgd ¡tjtjtjdgdœƒ}|jddgtjdd�}| ¡ }| ¡ }|jddgtjddd	�}|d ks‚t‚|jddgtjdd
�}|d ks¤t‚t ||¡ t ||¡ t ||¡ d S )Nr   r
   r   r   r9   za|bTrO   rJ   r[   )	r   r   Úarrayr   r(   r'   r)   r*   r+   )r0   r   rM   rX   rW   r_   ra   r4   r   r   r   Ú!test_regex_replace_list_to_scalar'  s4    ýÿ   ÿ  ÿz6TestDataFrameReplace.test_regex_replace_list_to_scalarc                 C  sª   t |ƒ}|jdddd�}| ¡ }|jddddd�}|d ks>t‚| ¡ }|jdddd�}|d ksbt‚t |d ddddg|d	 d
œƒ}t ||¡ t ||¡ t ||¡ d S )Nr9   r   TrO   rZ   r[   r   r   r   r   )r   r(   r'   r)   r*   r+   ©r0   r   rM   rW   r_   r4   ra   rX   r   r   r   Ú!test_regex_replace_str_to_numeric?  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 ksFt‚| ¡ }|jddgddd�}|d ksnt‚t |d ddddgddtjd	gd
œƒ}t ||¡ t ||¡ t ||¡ d S )Nr9   r   r   TrO   rJ   r[   r   r   r   )r   r(   r'   r)   r   r   r*   r+   rt   r   r   r   Ú(test_regex_replace_regex_list_to_numericN  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 ksXt‚| ¡ }|j||dd�}|d ks|t‚t |d ddtjtjg|d d	œƒ}	t ||	¡ t ||	¡ t ||	¡ d S )
Nr   r9   TrO   rZ   r[   r   r   r   )	r   r   r   r   r(   r'   r)   r*   r+   )
r0   r   rM   Ús1Ús2rW   r_   r4   ra   rX   r   r   r   Ú$test_regex_replace_series_of_regexes^  s     ÿz9TestDataFrameReplace.test_regex_replace_series_of_regexesc                 C  sV   t |ƒ}t ddddg|d |d dœƒ}| dd¡}t ||¡ |jjtjksRt‚d S )	Nr   ro   rl   r;   r   r   r   r   )	r   r(   r*   r+   r   rf   r   Zobject_r)   )r0   r   rM   rX   rW   r   r   r   Ú/test_regex_replace_numeric_to_object_conversionp  s
     zDTestDataFrameReplace.test_regex_replace_numeric_to_object_conversionrK   Ú )r{   ú,)r|   r{   c                 C  sb   t dddgdddgdddgdœƒ}|j|d�}t d	ddgdtjdgdddgdœƒ}t ||¡ d S )
Nz1,000r   Ú3r{   r   r   ©Úcol1Úcol2Úcol3rO   Z1000©r   r(   r   r   r*   r+   )r0   rK   rM   r6   r7   r   r   r   Ú+test_joint_simple_replace_and_regex_replacew  s    ýÿ
ýÿz@TestDataFrameReplace.test_joint_simple_replace_and_regex_replaceÚmetacharz[]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parenrg   )r0   r„   rM   r6   r7   r   r   r   Útest_replace_regex_metachar�  s    z0TestDataFrameReplace.test_replace_regex_metacharzdata,to_replace,expectedZxaxZxbxr   r   r   ZxcxZxdxz^\s*$c           	      C  s:   |}|||d�}|j |dd�}|||d�}t ||¡ d S )Nre   TrO   ©r(   r*   Úassert_equal)	r0   ÚdatarK   r7   Úframe_or_seriesrh   rf   Úobjr6   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)r0   r1   Úzero_filledrM   Ú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dd
ddgddddgdœƒ}t ||¡ dd
g}ddg}| ||¡}tdd	ddgddddgddddgdœƒ}t ||¡ d S )Nr   rG   rH   r   r]   rC   r:   r   r   rD   rE   r<   r=   r>   rB   )r   r   r   r   r(   r*   r+   )r0   r‹   ZdfobjrV   rL   rW   rX   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 5 Q R X tj	t
|jd	d�d�� | tjd
dgi¡ W 5 Q R X d S )Nr   r   ro   ÚcolzwNumPy boolean array indexing assignment cannot assign {size} input values to the 1 output values where the mask is truer   )Úsize©Úmatchrl   ÚdummyZalt)r   r   r   r   r*   Úget_objr(   rˆ   ÚpytestÚraisesÚ
ValueErrorÚformat)r0   rŠ   Zserr‹   r7   r6   Úmsgr   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ç        ro   r   ç       @r   )ÚzeroÚoneç      à?ç      ð?)r   r(   r*   r+   Úmeanr   )r0   rM   r6   r7   Úsr   r   r   Útest_replace_series_dictó  s    z-TestDataFrameReplace.test_replace_series_dictc                 C  sT   t dddgdddggƒ}ddddœ}| |¡}ttjgd ƒ}|j}t ||¡ d S )Nr!   ÚbarÚbahro   rl   r;   )r!   r¬   r­   )r   r(   r   r   Úint64Údtypesr*   Úassert_series_equal)r0   rM   ÚmÚreprX   rW   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¡}|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   r-   r.   r/   r(   r,   r*   r+   )r0   r2   r5   r6   r7   r   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 ks€t‚t ||¡ d S )Nr¨   r¤   Úfloat64re   r   ro   r®   ©r   rŽ   r§   Tr   )r   r   r(   r*   r+   r)   )r0   rM   r7   r6   r4   r   r   r   Ú&test_replace_mixed_int_block_upcasting  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µ   re   r   ro   r®   rl   ©r   rŽ   ÚCr§   ©r   r   r(   r*   r+   rp   r   r   r   Ú&test_replace_mixed_int_block_splitting4  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µ   re   r   ro   r®   r¶   r!   Úobjectrl   r¬   rº   rp   r   r   r   Útest_replace_mixed2G  s&    þÿþÿþÿz(TestDataFrameReplace.test_replace_mixed2c                 C  s|   t tddgdd�tddgdd�dœƒ}| d| ¡  ¡ ¡}| ¡  d¡}| ¡ }|d |jd< |d |jd	< t 	||¡ d S )
Nr;   r   r®   re   r¶   rµ   ©r   r   ro   )ro   ro   )
r   r   r(   r©   Úto_dictr'   Úastyper-   r*   r+   )r0   rM   r6   r7   r±   r   r   r   Útest_replace_mixed3a  s     ÿz(TestDataFrameReplace.test_replace_mixed3c                 C  sX   t dddtjgddddgdœƒ}|d	  d
¡|d	< | dtj¡}t |d	 |d	 ¡ d S )Nro   rl   r;   ZsomeÚstringsÚhereÚher   r   ÚInt64r{   )r   r   r   rÀ   r(   r*   r°   ©r0   rM   rW   r   r   r   Ú1test_replace_nullable_int_with_string_doesnt_castm  s     zFTestDataFrameReplace.test_replace_nullable_int_with_string_doesnt_castrf   ÚbooleanrÅ   ZFloat64c                 C  sV   t dddg|d�}tdddg|dœƒ}| dd¡}tdddg|dœƒ}t ||¡ d S )	Nro   r   re   r   rŽ   Úxr¶   ÚX©r   r   r(   r*   r+   )r0   rf   Znullable_serrM   r6   r7   r   r   r   Ú!test_replace_with_nullable_columnu  s
    z6TestDataFrameReplace.test_replace_with_nullable_columnc                 C  sf   t dtddƒiƒ}t dddddgiƒ}| ddddœi¡}t ||¡ | dddœ¡}t ||¡ d S )	Nr—   ro   r   r   rl   r;   r   )ro   r
   ©r   r   r(   r*   r+   rp   r   r   r   Útest_replace_simple_nested_dict~  s    z4TestDataFrameReplace.test_replace_simple_nested_dictc                 C  sj   t dtddƒiƒ}t dddddgiƒ}| dddd	œ¡}t ||¡ | ddddd	œi¡}t ||¡ d S )
Nr—   ro   r   r   rl   r;   r   r�   )éÿÿÿÿro   r
   rÍ   rp   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Å   re   )r   rÀ   r(   r‘   ÚNAr¼   r*   r+   ©r0   rM   r6   r7   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   ÚNaNr*   r+   rÓ   r   r   r   Útest_replace_NAT_with_Noneš  s    z/TestDataFrameReplace.test_replace_NAT_with_Nonec                 C  sn   t ddddgdd�}tt ddddgd	d�|d
œƒ}| dd i¡}tt ddd dgdd�|d
œƒ}t ||¡ d S )Nr   r   Úcategoryre   r   r
   r;   rl   rµ   )Úidr—   ç      @g      @r¤   r¼   rË   )r0   Z
cat_seriesrM   r6   r7   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¾   ©ro   r   ro   r   ©rK   r�   )r-   r   r   r(   rk   r*   r+   r'   )r0   r1   Z
orig_valueZorig2r6   r7   r3   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< d|j|jd d… df< |d }tj||dk< ||d< |j
dd�}t 	||j
dd�¡ d S )Nr   r   r   r�   rŽ   Úbfill)Úmethod)r'   rÀ   r   Úfloat32r   r%   r&   r(   r*   r+   r,   )r0   r1   r3   r“   r   r6   r   r   r   Útest_replace_for_new_dtypesÈ  s    z0TestDataFrameReplace.test_replace_for_new_dtypesz"frame, to_replace, value, expectedZintsro   rl   r   re   ZboolsÚcomplexy              ð?y               @y              @y                Z
datetime64iâ  r   é   r�   iÉ  é   r    r!   )ÚdtÚstrr¬   rç   ih  é
   iä  Ú20130101ú
US/Eastern©ZperiodsÚtzr¶   Ú20130102©rí   Ú20130104Ú20130103r¨   r¤   rÛ   c                 C  s   |  ||¡}t ||¡ d S rÕ   )r(   r*   r+   )r0   ÚframerK   r$   r7   r6   r   r   r   Útest_replace_dtypesÜ  s    jz(TestDataFrameReplace.test_replace_dtypesc           	   	     sÄ  t jdddœ‰ ddddœ‰tt jdt jgdddgddd	gdœƒ}| ˆ ˆ¡}‡ ‡fd
d„| ¡ D ƒ}t |t|ƒ¡ | dddgdddg¡}tt jdt jgdddgddd	gdœƒ}t ||¡ ddddœ‰tt jdt jgdddgddd	gdœƒ}| t jˆ¡}‡fdd„| ¡ D ƒ}t |t|ƒ¡ t jddg‰ dddg‰| ˆ ˆ¡}| ¡ }t	ˆ ˆƒD ](\}}|j||dd�}|d k�sXt
‚�qXt ||¡ d}tjt|d�� | ˆ ˆdd … ¡ W 5 Q R X d S )Nr   r{   r¸   rÏ   Úmissingrl   r   ÚasdfÚfdc                   s&   i | ]\}}||  ˆ | ˆ| ¡“qS r   ©r(   ©Ú.0ÚkÚv©Úto_reprL   r   r   Ú
<dictcomp>Q  s      zLTestDataFrameReplace.test_replace_input_formats_listlike.<locals>.<dictcomp>c                   s$   i | ]\}}||  tjˆ | ¡“qS r   )r(   r   r   rø   )rL   r   r   rþ   `  s      éþÿÿÿTr   z:Replacement lists must match in length\. Expecting 3 got 2r™   ro   )r   r   r   Úinfr(   Úitemsr*   r+   r'   Úzipr)   r�   rž   rŸ   )	r0   rM   Úfilledr7   r6   r²   r$   r4   r¡   r   rü   r   Ú#test_replace_input_formats_listlikeI  s>     ÿ ÿ ÿ
z8TestDataFrameReplace.test_replace_input_formats_listlikec              	     sî   t tjdtjgdddgdddgdœƒ}tjdddœ‰ | ˆ d¡}‡ fdd	„| ¡ D ƒ}t |t |ƒ¡ d
}tj	t
|d�� | ˆ tjddg¡ W 5 Q R X tjddg‰ | ˆ d¡}| ¡ }ˆ D ] }|j|ddd�}|d ks¼t‚q¼t ||¡ d S )Nr   rl   r   r{   rõ   rö   r¸   c                   s"   i | ]\}}||  ˆ | d ¡“qS )r   r÷   rø   ©rý   r   r   rþ   y  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'   r)   )r0   rM   r  r7   r¡   r6   r²   r4   r   r  r   Ú!test_replace_input_formats_scalarq  s"     ÿz6TestDataFrameReplace.test_replace_input_formats_scalarc                 C  s   d S rÕ   r   )r0   r   r   r   Útest_replace_limit‰  s    z'TestDataFrameReplace.test_replace_limitc                 C  sR   t ddddddœƒ}ddd	d
ddœ}t d
dd	dddœƒ}| |¡}t ||¡ d S ©NúStrongly AgreeÚAgreeÚNeutralÚDisagreeúStrongly Disagree)r   ro   rl   r;   r
   r
   rl   r;   r   ro   )r  r  r  r
  r  ©r   r(   r*   r°   ©r0   ZanswerÚweightsr7   r6   r   r   r   Útest_replace_dict_no_regex�  s"    ûÿ
û
z/TestDataFrameReplace.test_replace_dict_no_regexc                 C  sV   t ddddddœƒ}t ddd	d
ddœƒ}t d
dd	dddœƒ}| |¡}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   ro   r   r�   rÞ   ©rK   r$   ©r   r   r   r(   r*   r+   )r0   rM   Zres1r_   ra   r7   r   r   r   Ú6test_replace_dict_tuple_list_ordering_remains_the_same¹  s    zKTestDataFrameReplace.test_replace_dict_tuple_list_ordering_remains_the_samec                 C  sP   t ddddgddddgddddgddddgdœƒ}| d	di¡}t ||¡ d S )
Nro   rl   r;   Ú0ZvrZbtZvo)ZfolZT_oppZT_DirZT_Enhz\Drg   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  s2   t tj dd¡dkƒ}| dd¡}t ||¡ d S )Nrl   r§   rõ   Zfdsa)r   r   ÚrandomÚrandr(   r*   r+   ©r0   rM   r6   r   r   r   Ú(test_replace_pure_bool_with_string_no_opÖ  s    z=TestDataFrameReplace.test_replace_pure_bool_with_string_no_opc                 C  sD   t tj dd¡dkƒ}| dd¡}t tjdtd�ƒ}t ||¡ d S )Nrl   r§   FT)rl   rl   re   )	r   r   r  r  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   ro   ZasdbÚyes)rõ   Trg   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 )	Nro   rl   r;   r
   )ÚY0ZY1Zreplace_stringÚtestr%  )r   r(   r*   r+   r°   r  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+   )r0   rM   ÚrrC   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   ro   r   rl   é   )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 )Nro   r   rl   r*  r   )
r   ZarangerÀ   rè   r   r(   r+  r  r*   r+   )r0   r   ZastrZbstrrM   r6   r7   r   r   r   Ú-test_nested_dict_overlapping_keys_replace_str   s    
zBTestDataFrameReplace.test_nested_dict_overlapping_keys_replace_strc                 C  sŒ   t ddddgiƒ}| ddddœi¡}t ddddgiƒ}t ||¡ t ddddgiƒ}| dddd	œi¡}t ddddgiƒ}t ||¡ d S )
Nr   TFÚYÚN)TFr   ro   r"  rg   )r0   rM   rW   Ú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dddddddgdgd�}t|jjƒtˆ d  ¡ ƒks¨t‚td‡ fdd„|jjD ƒiƒ}|jd dksØt‚| 	ˆ ¡}t
 ||¡ d S )NÚfnameiÛ  é   ÚM)ÚyearÚmonthÚfreqro   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.jsonr>  r@  r=  r<  r?  r:  r;  ©r.   c                   s   g | ]}ˆ d  | ‘qS ©r2  r   ©rù   rú   ©r   r   r   Ú
<listcomp>2  s     z<TestDataFrameReplace.test_replace_period.<locals>.<listcomp>r   z	Period[M])r‘   ÚPeriodr   Úsetr2  rL   Úkeysr)   r¯   r(   r*   r+   rp   r   rD  r   Útest_replace_period  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d
ddddddgdgd�}t|jjƒtˆ d  ¡ ƒkspt‚td‡ fdd„|jjD ƒiƒ}| ˆ ¡}t 	||¡ d S )Nr2  z2011-08z2011-01z2012-05z2011-04z2012-08z2011-05z2013-09r9  r>  r@  r=  r<  r?  r:  r;  rA  c                   s   g | ]}ˆ d  | ‘qS rB  r   rC  rD  r   r   rE  Q  s     z>TestDataFrameReplace.test_replace_datetime.<locals>.<listcomp>)
r   r   rG  r2  rL   rH  r)   r(   r*   r+   rp   r   rD  r   Útest_replace_datetime7  s2    ùÿù	ö 
z*TestDataFrameReplace.test_replace_datetimec                 C  s&  t tdddd�dtjdgdœƒ}| tjd¡}t tdddd�tdddg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œƒ}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œƒ}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   rl   r¶   ro   rµ   re   rî   rï   rð   rñ   rÝ   r   z
US/Pacific)r   r   r   r   r(   r   r*   r+   r,   r   r'   r-   r‘   rÖ   Z
tz_convertrÓ   r   r   r   Útest_replace_datetimetzU  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 )Nre   r   )r   r*   r+   r(   r   r¼   )r0   r   rM   r   r   r   Ú test_replace_with_empty_dictlike§  s
    z5TestDataFrameReplace.test_replace_with_empty_dictlikezto_replace, method, expectedrà   r¸   g      @ZffillÚpad)ro   rl   c                 C  sL   t dddgdtjdgdddgd	œƒ}|j|d |d
�}t |ƒ}t ||¡ d S )Nr   ro   rl   r   r�   r   r   r   r¸   )rK   r$   rá   r  )r0   rK   rá   r7   rM   r6   r   r   r   Útest_replace_method°  s    "$z(TestDataFrameReplace.test_replace_methodzreplace_dict, final_datac              	   C  sø   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 ||¡ d}	tj	t
|	d�� t ||¡ W 5 Q R X |j|ddd�}
|
d ksèt
‚t ||¡ d S )Nro   rl   r   r   rÙ   )r.   rf   r   r;   )Ú
categoriesr   zHAttributes of DataFrame.iloc\[:, 0\] \(column name=\"a\"\) are differentr™   Tr   )r   r   rr   r‘   ZCategoricalr(   r*   r+   r�   rž   r)   )r0   Zreplace_dictZ
final_datarM   r   Zex_catr   r7   r6   r¡   r4   r   r   r   Ú"test_categorical_replace_with_dictØ  s    
ÿz7TestDataFrameReplace.test_categorical_replace_with_dictzdf, to_replace, expr
   r*  )r   r€   )r
   r   r*  Ú4Ú5Ú6Ú7)rQ  rR  rS  c                 C  s*   t |ƒ}t |ƒ}| |¡}t ||¡ d S rÕ   rg   )r0   rM   rK   Úexpr7   r6   r   r   r   Útest_replace_commutativeõ  s    
z-TestDataFrameReplace.test_replace_commutativeÚreplacerZ20170827c                 C  s4   t dgƒ}| ||dœ¡}t |gƒ}t ||¡ d S )Nr   r   rg   )r0   ÚrequestrW  rM   r6   r7   r   r   r   Útest_replace_replacer_dtype  s    

z0TestDataFrameReplace.test_replace_replacer_dtypec                 C  sP   t ddddddgidd�}| dd	¡}t dd	ddddgidd�}t ||¡ d S )
NÚgrpro   rl   r;   r
   r   rÅ   re   ré   rg   rÓ   r   r   r   Ú!test_replace_after_convert_dtypes   s    z6TestDataFrameReplace.test_replace_after_convert_dtypesc              	   C  sJ   t dddgdddgdœƒ}d}tjt|d	�� | d
d„ ¡ W 5 Q R X d S )Nr   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.*r™   c                 S  s   |   ¡ S rÕ   )Ústrip)rÉ   r   r   r   Ú<lambda>0  ó    zFTestDataFrameReplace.test_replace_invalid_to_replace.<locals>.<lambda>)r   r�   rž   r  r(   )r0   rM   r¡   r   r   r   Útest_replace_invalid_to_replace'  s
    ÿz4TestDataFrameReplace.test_replace_invalid_to_replaceÚfloatrµ   r®   r$   c                 C  s<   t t d¡|d�}|jd tj tjg|d�}t ||¡ d S )Nrl   re   r  )r   r   Úeyer(   r   r*   r+   )r0   rf   r$   rM   r6   r   r   r   Ú"test_replace_no_replacement_dtypes2  s    z7TestDataFrameReplace.test_replace_no_replacement_dtypesÚreplacementc                 C  s|   t dddgdddgddd	gd
œƒ}tdƒ|_t dddgdddg|dd	gd
œƒ}tdƒ|_|d  d|¡|d< t ||¡ d S )Nro   rl   r;   r
   r   r*  r�   r3  r8  )r   ÚA1rŽ   ZAABrŽ   )r   r   r.   r(   r*   r+   )r0   rd  r6   r7   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 )NZPerr;   r¨   r£   )r   r*   rœ   r'   r(   rˆ   )r0   rŠ   r$   r‹   r7   r6   r   r   r   Útest_replace_ea_ignore_floatI  s
    z1TestDataFrameReplace.test_replace_ea_ignore_floatc                 C  sP  ddddgddddgd	d
ddgddddgddddgdœ}t |d� dddœ¡}|d jjddddgdd�|d< |d jjddddgdd�|d< ddddgddddgd	d
ddgddddgddddgdœ}t |d� dddœ¡}|d jjddddgdd�|d< |d jjddddgdd�|d< | dd¡}| dd¡}| dd¡}t ||¡ d S )!zt
        Test for #23305: to ensure category dtypes are maintained
        after replace with direct values
        ro   rl   r;   r
   r   r   r   r   g      ø?g      @g      @g      @Úcat1Úcat2Zcat3Zcat4Úobj1Úobj2Zobj3Zobj4)r   r€   r�   Úcol4Zcol5©r‰   rÙ   )r€   rl  r€   T)Zorderedrl  ÚzÚcatXÚobj9N)r   rÀ   ÚcatZreorder_categoriesr(   r*   r+   ©r0   Z
input_dictZinput_dfÚexpected_dictr7   r6   r   r   r   Ú test_replace_value_category_typeS  sL    




û
ÿ

 ÿ


 ÿ





û
ÿ

 ÿ


 ÿ
z5TestDataFrameReplace.test_replace_value_category_typec                 C  sv   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dd	d
œ¡}t ||¡ dS )zf
        Test to ensure category dtypes are maintained
        after replace with dict values
        r   rj  rh  r~   rm  rÙ   rn  rp  ro  )r   rj  rh  N)r   rÀ   r(   r*   r+   rr  r   r   r   Útest_replace_dict_category_type†  s    

ÿ

ÿz4TestDataFrameReplace.test_replace_dict_category_typec                 C  sH   t dddgƒ}t d¡}|j|didd�}t dddgƒ}t ||¡ d S )Nr   r   r   z^a$rn  TrO   )r   ÚreÚcompiler(   r*   r+   )r0   rM   rI   r6   r7   r   r   r   Ú test_replace_with_compiled_regex   s
    
z5TestDataFrameReplace.test_replace_with_compiled_regexc                 C  sZ   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 S )Nr   r   ro   rÉ   )r   r‘   ÚIntervalr(   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positivero   r   )u   æ­£é�¢u   ä¸­ç«‹u   è´Ÿé�¢r;   )r   r   r  r(   r*   r+   )r0   Zcolumns_values_mapr”   r6   r7   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ˆ   )r0   rŠ   r‹   r7   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‡   )	r0   r‰   rK   r$   r7   r}  rŠ   r‹   r6   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   ro   re   )r   r(   r¼   r*   r+   )r0   r  rM   r6   r7   r   r   r   Ú%test_replace_value_none_dtype_numericÑ  s    z:TestDataFrameReplace.test_replace_value_none_dtype_numericN)bÚ__name__Ú
__module__Ú__qualname__r8   r�   ÚmarkÚparametrizer   r   rN   rY   r\   r`   rb   ri   rq   rs   ru   rv   ry   rz   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   ró   r  r  r  r  r  r  r  r  r  r!  r$  r'  r)  r,  r-  r1  rI  rJ  rK  rL  rN  rP  rV  Zint8râ   rµ   rY  r[  r`  rc  rf  rF  ry  rg  rt  ru  rx  rz  r{  r|  r   Útuplerr   r~  r€  r   r   r   r   r      s  
ýý


ýý


ýýèþ%)(E ÿ

þþ
	

&üüüü 


ýÿÿÿ

òü

ü
þÿ




ý
úÿ÷üüüü¡þi
(
	
"R	$ý$ýýýýéþ 
2þ

ý
ýúþ
ûþ



	3üþ		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S )ÚTestDataFrameReplaceRegexr‰   r   rG   r   r
   zto_replace,valuer9   )r?   z\1\1\1Úcompile_regexTFÚregex_kwargr   c                 C  s’   t |ƒ}| ¡ }|rt |¡}|r,|}	d }nd}	|j||||	d�}
|rV|
d ksRt‚|}
|tjkrhtj}nd}||j|d dkdf< t	 
|
|¡ d S )NTrZ   z...r   r]   )r   r'   rv  rw  r(   r)   r   r   r%   r*   r+   )r0   r‰   rK   r$   rˆ  r‰  r   rM   r7   rI   r6   Zexpected_replace_valr   r   r   Útest_regex_replace_scalarß  s"    

z3TestDataFrameReplaceRegex.test_regex_replace_scalarrI   c                 C  s„   t dgdgdœƒ}t dgdgdœƒ}|jdd|d�}t ||¡ t dgdgdœƒ}t dgdgdœƒ}|jdd|d�}t ||¡ d S )Nr  r¶   ro   )rK   r$   rI   Ú1rg   )r0   rI   r”   Zexpected_df1Z
result_df1Zdf2Zexpected_df2Z
result_df2r   r   r   Útest_replace_regex_dtype_frame	  s    z8TestDataFrameReplaceRegex.test_replace_regex_dtype_framec                 C  sZ   t dddgdddgdœƒ}| dtjdœ¡}t dtjdgtjddgdœƒ}t ||¡ d S )Nr   ro   rl   r¶   r"  r‚   rÓ   r   r   r   Ú+test_replace_with_value_also_being_replaced  s    zETestDataFrameReplaceRegex.test_replace_with_value_also_being_replacedc                 C  sP   t ddd dgdd ddgdœdd�}| ¡ }|jddgd	d gd
�}t ||¡ d S )Nr¦   r\  Úthreer   rÙ   re   r]   ÚdefÚ_r  )r   r'   r(   r*   r+   rp   r   r   r   Ú'test_replace_categorical_no_replacement  s    

þûzATestDataFrameReplaceRegex.test_replace_categorical_no_replacementN)r�  r‚  rƒ  r�   r„  r…  r   r   r   r   rŠ  rŒ  r�  r‘  r   r   r   r   r‡  Þ  s$   þþ ÿ
r‡  )Ú
__future__r   r   rv  Únumpyr   r�   Zpandasr‘   r   r   r   r   r   Zpandas._testingZ_testingr*   Zfixturer   r   r   r‡  r   r   r   r   Ú<module>   s0              K