a
    oÝEbUÚ  ã                   @  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d	„ƒZejd
dœdd„ƒZG dd„ dƒZG dd„ dƒZdS )é    )Úannotations)ÚdatetimeN)Únp_version_under1p20)Ú	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   úg/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/frame/methods/test_replace.pyÚmix_ab   s    r   zdict[str, list[float | str]]c                   C  s"   t tdƒƒt dƒddtjdgdœS )Nr   r   r   r   Úd©r   r   Úc)r   r   ÚnpÚnanr   r   r   r   Úmix_abc   s    r   c                   @  st  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)ej dje*dkg dl¢iƒdmdne*dkg do¢iƒfe*dkg dl¢iej+dp�dmdne*dkg do¢iej+dp�fe*dkg dl¢iej,dp�dmdne*dkg do¢iej,dp�fe*dqg dr¢iƒdde*dqg ds¢iƒfe*dtg du¢iƒdvdne*dtg dw¢iƒfe*dxe-e.dydzd{ƒe.dyd|d{ƒe.dydzd{ƒgƒiƒe.dydzd{ƒe.dyd|d{ƒe*dxe-e.dyd|d{ƒgd	 ƒiƒfe*e.d}d~dƒgd€gd�œƒd€d‚e*e.d}d~dƒgd‚gd�œƒfe*e/dƒd	d„d…�dnejd†gd‡œƒe0dˆd„d‰�e0dŠd„d‰�e*e0dƒd„d‰�e0dŠd„d‰�e0d‹d„d‰�gdnejd†gd‡œƒfe*dmdŒgd†d�ggƒdŒdze*dzdŽgd†d�ggƒfe*dmdŒgd†d�ggƒdmdze*dzdŽgd†d�ggƒfe*dmdŒgd†d�ggƒdŒdŽe*dzdŽgd†d�ggƒfe*dmdŒgd†d�ggƒdmdŽe*dzdŽgd†d�ggƒfg¡d�d�„ ƒZ1d‘d’„ Z2d“d”„ Z3d•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¸„ ZEej d¹dndºg d»¢dzejd|gg d¢d¼œfejdºg d½¢g d¾¢g d¢d¼œfd@d¿g d½¢dzejd|gg d¢d¼œfdnd†gdºg d»¢dzejd|gg d¢d¼œfdmd†gdÀg dÁ¢dzejd|gg d¢d¼œfdÂdºg dÃ¢dzejd|gg d¢d¼œfdd?gd¿g d½¢dzejd|gg dÄ¢d¼œfg¡dÅdÆ„ ƒZFej dÇdmdmdAœd	d	gd†d†ggfdmd†dAœd	dmgd†d	ggfg¡dÈdÉ„ ƒZGej dÊg dl¢g dË¢dÌœdzdÍd|dËœg dl¢g dÎ¢dÌœfg dl¢g dÏ¢dÌœdÐdÑdÒdÏœg dl¢g dÓ¢dÌœfg¡dÔdÕ„ ƒZHej dÖe0d×ƒe Idm¡e ,dm¡e Jdm¡e Kdm¡g¡dØdÙ„ ƒZLdÚdÛ„ ZMdÜdÝ„ ZNej d^g dÞ¢¡ej dßejejg¡dàdá„ ƒƒZOej dâejdzg¡dãdä„ ƒZPej dße Qdå¡e Rdndz¡g¡dædç„ ƒZSdèdé„ ZTdêdë„ ZUdìdí„ ZVdîdï„ ZWdðdñ„ ZXdòdó„ ZYej dôdmgdŒgdngdngfdmgdmgdngdngfdŒgdŒgdngdõgfdŒgdmgdngdõgfg¡ej döeZe[ej\g¡d÷dø„ ƒƒZ]dùS )úÚTestDataFrameReplacec                 C  sþ   t j|d d d…< t j|d dd …< | ¡ }|jt jddd�}|d u sJJ ‚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   Ú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©r:   r8   ÚlÚor   ú
\s*(\.)\s*z(e|f|g)ú\1\1ú\1_crap©r   r   ú..rB   )Úe_crapZf_crapZg_crapr:   )r:   rC   r<   r=   Úe©r8   ÚfÚgr:   r    TFÚuse_value_regex_argsc                 C  sp   t tdƒtdƒtdƒdœƒ}|r2|j|||d�}n|j||d|d�}|rX|d u sTJ ‚|}t |ƒ}t ||¡ d S )Nr   ÚefghÚhelor   )r%   Úregexr    T©rK   r    )r   r   r'   r(   r)   )r.   Ú
to_replaceÚvaluesr5   r    rH   Údfr4   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 )Nr7   r   r8   r   r   Zhalor   T©rK   r   r;   r>   ú(a|b)r?   r@   ©Za_crapÚb_craprB   rB   r   ©r>   r   z(b)©r?   r8   r@   ©r8   rT   rB   rB   ©rK   r%   )r   r   r   r   r   r'   r(   r)   )	r.   r   ÚdfmixÚto_replace_resrN   Zmix2Zdfmix2ÚresÚexpecr   r   r   Útest_regex_replace_list_mixedp   s8    
ýÿz2TestDataFrameReplace.test_regex_replace_list_mixedc                 C  sv  t |ƒ}ddg}tjdg}| ¡ }|j||ddd�}|d u s@J ‚t |d ddtjtjgdœƒ}t ||¡ dd	g}d
dg}| ¡ }|j||ddd�}|d u s J ‚t |d g d¢dœƒ}t ||¡ g d¢}g d¢}| ¡ }|j||ddd�}|d u søJ ‚t |d g d¢dœƒ}t ||¡ g d¢}g d¢}| ¡ }|j||dd�}|d u �sPJ ‚t |d g d¢dœƒ}t ||¡ d S )Nr7   r   r8   T©r    rK   r   r   r>   rR   r?   r@   rS   rU   rV   rW   ©rK   r%   r    )r   r   r   r&   r'   r(   r)   )r.   r   rY   rZ   rN   r[   r2   r\   r   r   r   Ú%test_regex_replace_list_mixed_inplace™   s:    
z:TestDataFrameReplace.test_regex_replace_list_mixed_inplacec                 C  s~  t |ƒ}|jddidtjidd�}| ¡ }|jddidtjiddd�}|d u sRJ ‚t |d ddtjtjg|d dœƒ}t ||¡ t ||¡ |jdd	idd
idd�}| ¡ }|jdd	idd
iddd�}|d u sÔJ ‚t |d g d¢|d dœƒ}t ||¡ t ||¡ |jdd	idd
id�}| ¡ }|jdd	idd
idd�}|d u �sLJ ‚t |d g d¢|d dœƒ}t ||¡ t ||¡ t |d tjdddg|d dœƒ}|jddtjidd�}| ¡ }|jddtjiddd�}|d u �sæJ ‚t ||¡ t ||¡ |jddtjidd�}| ¡ }|jddtjidd�}|d u �s@J ‚t |d tjdddg|d dœƒ}t ||¡ t ||¡ d S )Nr   r7   TrQ   r^   r   r   r   r>   z\1ty)r   r   ú.tyra   rX   r_   Ú.rL   ©r   r'   r   r   r&   r(   r)   )r.   r   rY   r[   Úres2r2   r\   r   r   r   Útest_regex_replace_dict_mixedÁ   sh    ÿÿÿÿÿÿÿÿz2TestDataFrameReplace.test_regex_replace_dict_mixedc           	      C  sè   t |ƒ}|jddtjiidd�}| ¡ }| ¡ }|jddtjiiddd�}|d u sVJ ‚|jddtjiid�}|jddtjiidd�}|d u s�J ‚t |d ddtjtjg|d d	œƒ}t ||¡ t ||¡ t ||¡ t ||¡ d S )
Nr   r7   TrQ   r^   rL   r   r   r   rc   )	r.   r   rY   r[   rd   Zres4r2   Úres3r\   r   r   r   Útest_regex_replace_dict_nested  s$    ÿÿz3TestDataFrameReplace.test_regex_replace_dict_nestedc                 C  sN   |}t dg d¢i|d�}t dg d¢i|d�}|jddidd�}t ||¡ d S )	NÚfirst)ÚabcZbcaZcab©Údtype)z.bczbc.zc.br   rb   TrQ   ©r   r'   r(   r)   )r.   Úany_string_dtyperk   rO   r5   r4   r   r   r   Ú2test_regex_replace_dict_nested_non_first_character  s
    zGTestDataFrameReplace.test_regex_replace_dict_nested_non_first_characterc                 C  sH   t g d¢ddœƒ}t g d¢ddœƒ}| ddddœi¡}t ||¡ d S )	N)ÚQÚTro   ro   rp   é   )ÚTypeÚtmp)r   é   r   r   rt   rr   r   rt   )ro   rp   rl   ©r.   rO   r5   r4   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 u s‚J ‚|jddgtjdd
�}|d u s¤J ‚t ||¡ t ||¡ t ||¡ d S )Nr   r   r   r   r7   za|bTrQ   rL   r_   )r   r   Úarrayr   r'   r&   r(   r)   )r.   r   rO   r\   r[   rd   rf   r2   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 sbJ ‚t |d g d¢|d	 d
œƒ}t ||¡ t ||¡ t ||¡ d S )Nr7   r   TrQ   r^   r_   r   )r   r   r   r   r   r   )r   r'   r&   r(   r)   ©r.   r   rO   r[   rd   r2   rf   r\   r   r   r   Ú!test_regex_replace_str_to_numericA  s    z6TestDataFrameReplace.test_regex_replace_str_to_numericc                 C  s¸   t |ƒ}|jddgddd�}| ¡ }|jddgdddd�}|d u sFJ ‚| ¡ }|jddgddd�}|d u snJ ‚t |d g d	¢ddtjd
gdœƒ}t ||¡ t ||¡ t ||¡ d S )Nr7   r   r   TrQ   rL   r_   r   )r   r   r   r   r   r   )r   r'   r&   r   r   r(   r)   ry   r   r   r   Ú(test_regex_replace_regex_list_to_numericP  s    ÿz=TestDataFrameReplace.test_regex_replace_regex_list_to_numericc           
      C  sÈ   t |ƒ}tddiƒ}tdtjiƒ}|j||dd�}| ¡ }|j||ddd�}|d u sXJ ‚| ¡ }|j||dd�}|d u s|J ‚t |d ddtjtjg|d d	œƒ}	t ||	¡ t ||	¡ t ||	¡ d S )
Nr   r7   TrQ   r^   r_   r   r   r   )r   r   r   r   r'   r&   r(   r)   )
r.   r   rO   Ús1Ús2r[   rd   r2   rf   r\   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sNJ ‚d S )N)r   rt   rq   r9   r   r   r   r   r   )r   r'   r(   r)   r   rk   r   Zobject_)r.   r   rO   r\   r[   r   r   r   Ú/test_regex_replace_numeric_to_object_conversionr  s
    zDTestDataFrameReplace.test_regex_replace_numeric_to_object_conversionrM   Ú )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Úcol3rQ   )Z1000r   r‚   r   r   )r   r'   r   r   r(   r)   )r.   rM   rO   r4   r5   r   r   r   Ú+test_joint_simple_replace_and_regex_replacey  s    ýÿ
ýÿz@TestDataFrameReplace.test_joint_simple_replace_and_regex_replaceÚmetachar)z[]z()z\dz\wz\sc                 C  sB   t d|dgiƒ}| d|dii¡}t dddgiƒ}t ||¡ d S )Nr   ÚelseZparenrl   )r.   rˆ   rO   r4   r5   r   r   r   Útest_replace_regex_metachar�  s    z0TestDataFrameReplace.test_replace_regex_metacharzdata,to_replace,expectedZxaxZxbxr   r   r   ZxcxZxdx)r   r€   r€   z^\s*$c           	      C  s:   |}|||d�}|j |dd�}|||d�}t ||¡ d S )Nrj   TrQ   ©r'   r(   Úassert_equal)	r.   ÚdatarM   r5   Úframe_or_seriesrm   rk   Úobjr4   r   r   r   Útest_regex_replace_string_types–  s
    z4TestDataFrameReplace.test_regex_replace_string_typesc                 C  s  t j|d d d…< t j|d dd …< | t jd¡}t || d¡¡ t | dt j¡|¡ t j|d d d…< t j|d dd …< d|d d d…< 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   )Úindexé   ú-Z20150101Z20150102)	r   r   r'   r(   r)   r*   r   ÚpdÚto_datetime)r.   r/   Úzero_filledrO   Údf1Zexpected_dfr   r   r   Útest_replace¨  s$    ÿÿz!TestDataFrameReplace.test_replacec                 C  s¶   t dƒt dƒt dƒdœ}t|ƒ}ddg}tjdg}| ||¡}tdd	tjtjgg d
¢g d¢dœƒ}t ||¡ ddg}ddg}| ||¡}tg d¢g d¢g d¢dœƒ}t ||¡ d S )Nr   rI   rJ   r   rb   rD   r8   r   r   rE   r;   rF   rB   rA   )rD   r8   rG   r:   )r:   rD   r<   r=   )r   r   r   r   r'   r(   r)   )r.   r�   ZdfobjrZ   rN   r[   r\   r   r   r   Útest_replace_listÃ  s,    
ýÿýÿz&TestDataFrameReplace.test_replace_listc                 C  sæ   t ddgg tjdggƒ}td|iƒ}t ||¡}|}| g tj¡}t ||¡ d}tj	t
|jdd�d��  | tjg i¡ W d   ƒ n1 sŽ0    Y  tj	t
|jd	d�d��$ | tjd
dgi¡ W d   ƒ n1 sØ0    Y  d S )Nr   r   rt   ÚcolzwNumPy boolean array indexing assignment cannot assign {size} input values to the 1 output values where the mask is truer   )Úsize©Úmatchrq   ÚdummyZalt)r   r   r   r   r(   Úget_objr'   rŒ   ÚpytestÚraisesÚ
ValueErrorÚformat)r.   rŽ   Zserr�   r5   r4   Ú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ç        rt   r   ç       @r   )ÚzeroÚoneç      à?ç      ð?)r   r'   r(   r)   Úmeanr   )r.   rO   r4   r5   Úsr   r   r   Útest_replace_series_dictõ  s    z-TestDataFrameReplace.test_replace_series_dictc                 C  sP   t g d¢g d¢gƒ}ddddœ}| |¡}ttjgd ƒ}|j}t ||¡ d S )N)r"   ÚbarÚbah)r±   r"   r²   rt   rq   r9   )r   r'   r   r   Úint64Údtypesr(   Úassert_series_equal)r.   rO   ÚmÚrepr\   r[   r   r   r   Útest_replace_convert	  s    
z)TestDataFrameReplace.test_replace_convertc                 C  s¸   |}t j|jdd…|j d¡f< t j|jdd …|j d¡f< | t jd¡}|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)   )r.   r0   r3   r4   r5   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 u s€J ‚t ||¡ d S )Nr­   r©   Úfloat64rj   r   rt   r³   ©r   r’   r¬   Tr   ©r   r   r'   r(   r)   )r.   rO   r5   r4   r2   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º   rj   r   rt   r³   rq   ©r   r’   ÚCr¬   r¼   ru   r   r   r   Ú&test_replace_mixed_int_block_splitting7  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º   rj   r   rt   r³   r»   r"   Úobjectrq   r±   r¼   ru   r   r   r   Útest_replace_mixed2K  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 )
Nr9   r   r³   rj   r»   rº   ©r   r   rt   )rt   rt   )
r   r   r'   r®   Úto_dictr&   Úastyper+   r(   r)   )r.   rO   r4   r5   r¶   r   r   r   Útest_replace_mixed3f  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 )	Nrt   rq   r9   )ZsomeÚstringsÚhereÚher   r   ÚInt64r€   )r   r   r   rÅ   r'   r(   rµ   ©r.   rO   r[   r   r   r   Ú1test_replace_nullable_int_with_string_doesnt_castr  s    zFTestDataFrameReplace.test_replace_nullable_int_with_string_doesnt_castrk   )ÚbooleanrÊ   ZFloat64c                 C  sP   t g d¢|d�}tg d¢|dœƒ}| dd¡}tg d¢|dœƒ}t ||¡ d S )N)rt   r   rt   rj   )r   r’   Úxr»   rÎ   ÚX)r   r’   rÏ   )r   r   r'   r(   r)   )r.   rk   Znullable_serrO   r4   r5   r   r   r   Ú!test_replace_with_nullable_columnz  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œ   rt   r   ©r   rq   r9   r   r   r   )rt   r   ©r   r   r'   r(   r)   ru   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œ   rt   r   rÑ   r•   r   r   )éÿÿÿÿrt   r   rÒ   ru   r   r   r   Ú6test_replace_simple_nested_dict_with_nonexistent_valueŽ  s    zKTestDataFrameReplace.test_replace_simple_nested_dict_with_nonexistent_valuec                 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Ã   ©rt   r   rt   r   ©rM   r‘   )r+   r   r   r'   rp   r(   r)   r&   )r.   r/   Z
orig_valueZorig2r4   r5   r1   r   r   r   Útest_replace_value_is_none˜  s    





z/TestDataFrameReplace.test_replace_value_is_nonec                 C  sà   |  ¡  tj¡}tj|d d d…< tj|d dd …< | tjd¡}t || d¡¡ t | dtj¡|¡ tj|d d d…< tj|d dd …< d|d d d…< |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/   r1   r˜   r   r4   r   r   r   Útest_replace_for_new_dtypes¬  s    z0TestDataFrameReplace.test_replace_for_new_dtypesz"frame, to_replace, value, expectedÚints©rt   rq   r9   rt   r   )r   rq   r9   rj   Zbools©TFT)TTTÚcomplex)ù              ð?ù               @ù              @rá   )y                râ   rã   Z
datetime64iâ  r   é   r”   iÉ  é   r!   r"   )ÚdtÚstrr±   Ú20130101ú
US/Eastern©ZperiodsÚtzrq   r»   Ú20130102©rë   Ú20130104Ú20130103r­   r©   ç      @c                 C  s    t |dƒ||ƒ}t ||¡ d S )Nr'   )Úgetattrr(   r)   )r.   ÚframerM   r%   r5   r4   r   r   r   Útest_replace_dtypesÁ  s    c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	t
ˆ ƒƒD ],}|jˆ | ˆ| dd�}|d u �sHJ ‚�qHt ||¡ d}tjt|d��$ | ˆ ˆdd … ¡ W d   ƒ n1 �sÀ0    Y  d S )Nr   r€   r¾   rÔ   Úmissing©r   rq   r   ©r€   ÚasdfÚfdc                   s&   i | ]\}}||  ˆ | ˆ| ¡“qS r   ©r'   ©Ú.0ÚkÚv©Úto_reprN   r   r   Ú
<dictcomp>/  ó    zLTestDataFrameReplace.test_replace_input_formats_listlike.<locals>.<dictcomp>)r   rq   r   r   c                   s$   i | ]\}}||  tjˆ | ¡“qS r   )r'   r   r   rú   )rN   r   r   r   >  r  )éþÿÿÿrÔ   rô   Tr   z:Replacement lists must match in length\. Expecting 3 got 2rž   rt   )r   r   r   Úinfr'   Úitemsr(   r)   r&   r   Úlenr¢   r£   r¤   )r.   rO   Úfilledr5   r4   Úir2   r¦   r   rþ   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 sž0    Y  tjddg‰ | ˆ d
¡}| ¡ }ttˆ ƒƒD ]$}|jˆ | d
dd�}|d u sÔJ ‚qÔt ||¡ d S )Nr   rõ   rö   r¾   r€   c                   s"   i | ]\}}||  ˆ | d ¡“qS )r   rù   rú   ©rÿ   r   r   r   W  r  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   r  )r.   rO   r  r5   r¦   r4   r  r2   r   r	  r   Ú!test_replace_input_formats_scalarO  s"    ÿ2z6TestDataFrameReplace.test_replace_input_formats_scalarc                 C  s   d S ©Nr   )r.   r   r   r   Útest_replace_limitg  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   rt   rq   r9   r   r   rq   r9   r   rt   )r  r  r  r  r  ©r   r'   r(   rµ   ©r.   ZanswerÚweightsr5   r4   r   r   r   Útest_replace_dict_no_regexj  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   rt   r   r‘   r×   ©rM   r%   ©r   r   r   r'   r(   r)   )r.   rO   Zres1rd   rf   r5   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)rt   rq   rq   r9   )Ú0Zvrr  r  )r  r  r  Zbt)Zvor  r  r  )ZfolZT_oppZT_DirZT_Enhz\Drt   rl   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.   rO   r4   r5   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 )Nrq   r¬   r÷   Zfdsa)r   r   ÚrandomÚrandr'   r(   r)   ©r.   rO   r4   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 )Nrq   r¬   FT)rq   rq   rj   )	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   rt   ZasdbÚyes)r÷   Trl   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 )	Nrt   rq   r9   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)   )r.   rO   ÚrrD   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   rt   r   rq   é   )r   r   r   r'   ÚdictÚzipr(   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 )Nrt   r   rq   r0  r   )
r   ZarangerÅ   rç   r   r'   r1  r2  r(   r)   )r.   r   ZastrZbstrrO   r4   r5   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 ||¡ t dg d¢iƒ}| ddddœi¡}t dg d¢iƒ}t ||¡ d S )	Nr   rß   ÚYÚN)TF)r5  r6  r5  )r   rt   r   r(  rl   )r.   rO   r[   Úexpectr   r   r   Útest_replace_swapping_bugç  s    z.TestDataFrameReplace.test_replace_swapping_bugc                   sè   dt jdddd�t jdddd�t jdddd�t jdd	dd�t jdddd�t jdddd�t jd
ddd�dœi‰ tg d¢dgd�}t|jjƒtˆ d  ¡ ƒksžJ ‚td‡ fdd„|jjD ƒiƒ}|jd dksÎJ ‚| ˆ ¡}t	 
||¡ d S )NÚfnameiÛ  é   ÚM)ÚyearÚmonthÚfreqrt   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©rE  rG  rD  rC  rF  rA  rB  ©r,   c                   s   g | ]}ˆ d  | ‘qS ©r9  r   ©rû   rü   ©r   r   r   Ú
<listcomp>  r  z<TestDataFrameReplace.test_replace_period.<locals>.<listcomp>r   z	Period[M])r–   ÚPeriodr   Úsetr9  rN   Úkeysr´   r'   r(   r)   ru   r   rL  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g d
¢dgd�}t|jjƒtˆ d  ¡ ƒksfJ ‚td‡ fdd„|jjD ƒiƒ}| ˆ ¡}t ||¡ d S )Nr9  z2011-08z2011-01z2012-05z2011-04z2012-08z2011-05z2013-09r@  rH  rI  c                   s   g | ]}ˆ d  | ‘qS rJ  r   rK  rL  r   r   rM  .  r  z>TestDataFrameReplace.test_replace_datetime.<locals>.<listcomp>)	r   r   rO  r9  rN   rP  r'   r(   r)   ru   r   rL  r   Útest_replace_datetime  s$    ùÿ	ö 
z*TestDataFrameReplace.test_replace_datetimec                 C  sN  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œƒ}t ||¡ | 
¡ }tj|jd< | dtjit	ddd�¡}t ||¡ | 
¡ }tj|jd< tjtdd��* | dtjit	ddd�¡}W d   ƒ n1 �sš0    Y  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ƒ¡}t t	ddd�t	dƒt	ddd�gdtjdgdœƒ}t ||¡ d S )Nrè   r9   ré   rê   r   rq   r»   rt   ©r   rt   rq   rº   rj   rì   rí   rî   rï   rÖ   r   zmismatched timezonerž   z
US/Pacific)r   r	   r   r   r'   r   r(   r)   r*   r   r&   r+   r–   ZNaTZassert_produces_warningÚFutureWarningr  r   r   r   Útest_replace_datetimetz2  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 )Nrj   r   )r   r(   r)   r'   r   rÁ   )r.   r   rO   r   r   r   Ú test_replace_with_empty_dictlikeŠ  s
    z5TestDataFrameReplace.test_replace_with_empty_dictlikezto_replace, method, expectedrÙ   )rt   rt   rq   r¾   rS  )rð   ç      @rW  ZffillÚpad)r   r   r   )rt   rq   )r   rq   rq   )r   r   r   c                 C  sH   t g d¢dtjdgg d¢dœƒ}|j|d |d�}t |ƒ}t ||¡ d S )NrS  r   r”   r   r¾   )rM   r%   rÚ   r  )r.   rM   rÚ   r5   rO   r4   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 d   ƒ n1 sÖ0    Y  |j|ddd�}
|
d u süJ ‚t ||¡ d S )Nrt   rq   r   r   Úcategory)r,   rk   r   r9   )Ú
categoriesr   zHAttributes of DataFrame.iloc\[:, 0\] \(column name=\"a\"\) are differentrž   Tr   )r   r   rw   r–   ZCategoricalr'   r(   r)   r¢   r£   ÚAssertionError)r.   Zreplace_dictZ
final_datarO   r   Zex_catr   r5   r4   r¦   r2   r   r   r   Ú"test_categorical_replace_with_dict»  s    
ÿ*z7TestDataFrameReplace.test_categorical_replace_with_dictzdf, to_replace, exp©r   r   r0  )r„   r…   r0  )r   r0  r”   )Ú4Ú5Ú6r`  ra  Ú7)r`  ra  rb  c                 C  s*   t |ƒ}t |ƒ}| |¡}t ||¡ d S r  rl   )r.   rO   rM   Úexpr5   r4   r   r   r   Útest_replace_commutativeØ  s    
z-TestDataFrameReplace.test_replace_commutativeÚreplacerZ20170827c                 C  sb   t  |¡r.|jjdk r.|j tjjt	dd�¡ t
dgƒ}| ||dœ¡}t
|gƒ}t ||¡ d S )Nr:  znp.putmask doesn't coerce dtype)Úreasonr   r   )r   Zisscalarrk   ÚitemsizeÚnodeZ
add_markerr¢   ÚmarkZxfailr   r   r'   r(   r)   )r.   Úrequestre  rO   r4   r5   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)rt   rq   r9   r   r   rÊ   rj   rt   é
   )rm  rq   r9   r   r   rl   r  r   r   r   Ú!test_replace_after_convert_dtypes	  s    z6TestDataFrameReplace.test_replace_after_convert_dtypesc                 C  sZ   t g d¢g d¢dœƒ}d}tjt|d�� | dd„ ¡ W d   ƒ n1 sL0    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.*rž   c                 S  s   |   ¡ S r  )Ústrip)rÎ   r   r   r   Ú<lambda>  r  zFTestDataFrameReplace.test_replace_invalid_to_replace.<locals>.<lambda>)r   r¢   r£   r
  r'   )r.   rO   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 )Nrq   rj   r  )r   r   Úeyer'   r  r(   r)   )r.   rk   r%   rO   r4   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’   ZAABr:  r?  r’   r”   )r   r   r,   r'   r(   r)   )r.   rv  r4   r5   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Perr9   r­   r¨   )r   r(   r¡   r&   r'   rŒ   )r.   rŽ   r%   r�   r5   r4   r   r   r   Útest_replace_ea_ignore_float2  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d¡}| dd¡}| dd¡}t ||¡ dS )zt
        Test for #23305: to ensure category dtypes are maintained
        after replace with direct values
        )rt   rq   r9   r   )r   r   r   r   )g      ø?g      @g      @g      @)Úcat1Úcat2Úcat3Úcat4)Úobj1Úobj2Úobj3Úobj4)r„   r…   r†   Úcol4Zcol5©r�   rZ  )r…   r‚  r…   T)Zorderedr‚  )r   r   r   Úz)rz  ÚcatXr|  r}  )Úobj9r  r€  r�  r   r„  r~  r†  r{  r…  N)r   rÅ   ÚcatZreorder_categoriesr'   r(   r)   ©r.   Z
input_dictZinput_dfÚexpected_dictr5   r4   r   r   r   Ú test_replace_value_category_type<  sD    û
ÿ
ÿ

ÿ
û
ÿ
ÿ

ÿ
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   r~  rz  rƒ   rƒ  rZ  r„  r†  r…  )r   r~  rz  N)r   rÅ   r'   r(   r)   rˆ  r   r   r   Útest_replace_dict_category_typeo  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„  TrQ   )r„  r   r   )r   ÚreÚcompiler'   r(   r)   )r.   rO   rK   r4   r5   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   rt   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positivert   r   )u   æ­£é�¢u   ä¸­ç«‹u   è´Ÿé�¢r9   )r   r   r%  r'   r(   r)   )r.   Zcolumns_values_mapr™   r4   r5   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Œ   )r.   rŽ   r�   r5   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‹   )	r.   r�   rM   r%   r5   r“  rŽ   r�   r4   r   r   r   Ú!test_replace_list_with_mixed_type§  s    z6TestDataFrameReplace.test_replace_list_with_mixed_typeN)^Ú__name__Ú
__module__Ú__qualname__r6   r¢   ri  Úparametrizer   r   rP   r]   r`   re   rg   rn   rv   rx   rz   r{   r~   r   r‡   rŠ   r–   ZNAr�   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/  r3  r4  r8  rQ  rR  rU  rV  rY  r]  rd  Zint8rÛ   rº   rk  rn  rr  ru  rx  rN  r�  ry  rŠ  r‹  rŽ  r�  r‘  r’  r   Útuplerw   r”  r   r   r   r   r       sô  ýýýýýýèþ%)(Eÿ

þþ
	

"üüüü


ýÿÿÿ

òü
þÿ




ý
úÿ÷üüüü¨þb
(
	
"X	 ý ýýýýéþ 
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S )ÚTestDataFrameReplaceRegexr�   r   rI   r   r   zto_replace,valuer7   )r>   z\1\1\1Úcompile_regexTFÚregex_kwargr    c                 C  s’   t |ƒ}| ¡ }|rt |¡}|r,|}	d }nd}	|j||||	d�}
|rV|
d u sRJ ‚|}
|tju rhtj}nd}||j|d dkdf< t 	|
|¡ d S )NTr^   z...r   rb   )
r   r&   rŒ  r�  r'   r   r   Úlocr(   r)   )r.   r�   rM   r%   r›  rœ  r    rO   r5   rK   r4   Zexpected_replace_valr   r   r   Útest_regex_replace_scalar¼  s"    

z3TestDataFrameReplaceRegex.test_regex_replace_scalarrK   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»   rt   )rM   r%   rK   Ú1rl   )r.   rK   r™   Zexpected_df1Z
result_df1Zdf2Zexpected_df2Z
result_df2r   r   r   Útest_replace_regex_dtype_frameæ  s    z8TestDataFrameReplaceRegex.test_replace_regex_dtype_frameN)r•  r–  r—  r¢   ri  r˜  r   r   r   r   rž  r   r   r   r   r   rš  »  s   þþÿrš  )Ú
__future__r   r   rŒ  Únumpyr   r¢   Zpandas.compatr   Zpandasr–   r   r   r   r   r	   Zpandas._testingZ_testingr(   Zfixturer   r   r   rš  r   r   r   r   Ú<module>   s2              &