U
    `»{j>  ã                   @   sp   d dl mZ d dlZd dlZd dlZd dlm  mZ	 d dl
mZmZmZmZmZ d dlmZ G dd„ dƒZdS )é    )ÚChainMapN)Ú	DataFrameÚIndexÚ
MultiIndexÚSeriesÚmergec                   @   sV  e Zd Zdd„ Zej deeg¡dd„ ƒZ	dd„ Z
ej ded	d
iddiƒfddifdded	d
iddiƒifg¡dd„ ƒZdd„ Zejdd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zej dd
dd œd!d
dd"d#gfd	d
id$d
dd"d#gfejd$d
dd%d&gfg¡d'd(„ ƒZd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9d:„ Z d;d<„ Z!d=S )>Ú
TestRenamec              
   C   s8   t  tj¡}t|jƒ}|ddddddddd	h	ks4t‚d S )
NÚselfÚmapperÚindexÚcolumnsÚaxisÚinplaceÚcopyÚlevelÚerrors)ÚinspectÚ	signaturer   ÚrenameÚsetÚ
parametersÚAssertionError)r	   Úsigr   © r   úe/var/www/html/bwave/python/venv/lib/python3.8/site-packages/pandas/tests/frame/methods/test_rename.pyÚtest_rename_signature   s    
÷z TestRename.test_rename_signatureÚklassc                 C   s2   |dddgt  dd„ dD ƒ¡d�}| tj¡ d S )Né   é   é   c                 S   s   g | ]}d |f‘qS )ÚAr   )Ú.0Úxr   r   r   Ú
<listcomp>'   s     z-TestRename.test_rename_mi.<locals>.<listcomp>)ÚaÚBÚc©r   )r   Úfrom_tuplesr   ÚstrÚlower)r	   r   Úobjr   r   r   Útest_rename_mi#   s
    þzTestRename.test_rename_mic           	   	   C   sŽ  dddddœ}|j |d�}|j tjd�}t ||¡ tj|j tjd�|dd� d	d
ddœi}t|ƒ}|j dddœd�}t |jt	ddgƒ¡ |j tjd�}t |jt	ddgƒ¡ t
jtdd�� |  ¡  W 5 Q R X |j dddœd�}t |jt	d	dddgƒ¡ |jj dddœd�}t |jt	d	dddgƒ¡ t	ddgdd�}t||d�}|j dddœd�}t |jt	ddgdd�¡ |jj|jjk�sŠt‚d S )Nr$   Úbr&   Úd)r    r%   ÚCÚD©r   F)Zcheck_namesr    r   é   )ÚfooÚbarr4   r3   r'   ZBARÚFOOúmust pass an index to rename©Úmatch)r/   r0   r%   Úname)r9   )r   r)   r*   ÚtmÚassert_frame_equalÚupperr   Úassert_index_equalr   r   ÚpytestÚraisesÚ	TypeErrorr   ÚTr9   r   )	r	   Úfloat_frameÚmappingÚrenamedZrenamed2ÚdataÚdfr   Zrenamerr   r   r   Útest_rename+   s4      ÿzTestRename.test_renamezargs,kwargsr    r$   r%   r-   r   r   r   c                 C   sN   t ddƒ}tj d¡}t||dœƒ}|j||Ž}t||dœƒ}t ||¡ d S )Nr2   r   é
   ©r    r%   ©r$   r-   )ÚrangeÚnpÚrandomZrandnr   r   r:   r;   )r	   ÚargsÚkwargsZcolADataZcolBdatarF   ÚresultÚexpectedr   r   r   Útest_rename_chainmapT   s    	
zTestRename.test_rename_chainmapc           
      C   sb  ddg}ddg}t j|ddgd�}t j|dd	gd�}td
dg||d�}|jdddœdddœd�}t jddgddgd�}t jddgdd	gd�}t |j|¡ t |j|¡ |jj|jjks¼t	‚|jj|jjksÐt	‚t jddgdd	gd�}|jdddœdd�}t |j|¡ |jdddœdd�}t |j|¡ t jddgdd	gd�}|jdddœdd�}t |j|¡ |jdddœd	d�}t |j|¡ t
j}	t jddgdd	gd�}|j|	dd�}t |j|¡ |j|	dd�}t |j|¡ t jddgdd	gd�}|j|	dd�}t |j|¡ |j|	d	d�}t |j|¡ t jddgddgd�}|jdddœdd�}t |j|¡ d S )N)Úfoo1Úbar1)Úfoo2Úbar2)Úfizz1Úbuzz1)Úfizz2Úbuzz2r3   r4   ©ÚnamesZfizzZbuzz©r   r   ©r2   r2   ©r   r   Úfoo3Úbar3)rS   rV   Úfizz3Úbuzz3)rW   rZ   )r`   rT   )rU   ra   )rb   rX   )rY   rc   r   )r   r   r2   )ZFIZZ1rX   )ZFIZZ2rZ   )rW   ZBUZZ1)rY   ZBUZZ2)r   r   )r   r(   r   r   r:   r=   r   r   r\   r   r)   r<   )
r	   Ztuples_indexZtuples_columnsr   r   rF   rD   Z	new_indexZnew_columnsÚfuncr   r   r   Útest_rename_multiindexf   sx    þ ÿ ÿ ÿ ÿ ÿ ÿ ÿz!TestRename.test_rename_multiindexc              	   C   s�   |j ddidd�}t |d j|d j¡s.t‚t |r:tnd ¡� d|jd d …df< W 5 Q R X |rx|d dk 	¡ rŒt‚n|d dk 	¡ sŒt‚d S )Nr/   r3   F)r   r   g      ð?)
r   rL   Zshares_memoryZ_valuesr   r:   Zassert_produces_warningÚFutureWarningÚlocÚall)r	   rB   Zusing_copy_on_writerD   r   r   r   Útest_rename_nocopy­   s    zTestRename.test_rename_nocopyc                 C   s‚   |j ddid� d|kst‚d|ks(t‚|d }| ¡ }|j ddidd�}|d ksVt‚d|ksbt‚d|ksnt‚|d |k	s~t‚d S )Nr/   r3   r1   T)r   r   )r   r   r   )r	   rB   Zc_valuesZreturn_valuer   r   r   Útest_rename_inplace¾   s    zTestRename.test_rename_inplacec                 C   sŒ   t ddgddgddgdœƒ}|jdd	id
�}|jddid
�}| d	dg¡}dg|_t dgdggtjddgd	dgd�dgd�}t ||¡ d S )Nr3   r4   ÚbahÚbasr2   é   ©r   r2   rm   r   r$   r1   r-   z
2001-01-01)r3   rk   )r4   rl   r[   r_   )r   r   Ú	set_indexr   r   r(   r:   r;   ©r	   rF   rQ   r   r   r   Útest_rename_bugÎ   s    
 ÿûzTestRename.test_rename_bugc                 C   sZ   t t d¡dddgdgd�}|jddidd	�}t t d¡dddgdgd�}t ||¡ d S )
Né   r]   r^   )rm   rm   r$   )rE   r   r   )é   é   r   ©r   )r   rL   Úaranger   r:   r;   rp   r   r   r   Útest_rename_bug2ß   s      ÿzTestRename.test_rename_bug2c              	   C   sD   t ddddgd�}tjtdd�� |jdd	d
œdd� W 5 Q R X d S )Nr    r%   r/   r0   r1   z'E'] not found in axisr7   r$   Úe©r    ÚEÚraise©r   r   )r   r>   r?   ÚKeyErrorr   )r	   rF   r   r   r   Útest_rename_errors_raisesê   s    z$TestRename.test_rename_errors_raisesz mapper, errors, expected_columnsrx   ry   Úignorer/   r0   r{   r&   r.   c                 C   s:   t ddddgd�}|j||d�}t |d�}t ||¡ d S )Nr    r%   r/   r0   r1   r|   )r   r   r:   r;   )r	   r
   r   Zexpected_columnsrF   rP   rQ   r   r   r   Útest_rename_errorsï   s    
zTestRename.test_rename_errorsc                 C   s*   |j tjd�}d|kst‚d|ks&t‚d S )Nr1   r5   r3   )r   r)   r<   r   )r	   Zfloat_string_framerD   r   r   r   Útest_rename_objectsÿ   s    zTestRename.test_rename_objectsc                 C   sj  t ddgddgdœddgd�}t ddgddgdœddgd�}|jtjdd�}t ||¡ |jtjd	d�}t ||¡ |jd
ddœdd�}t ||¡ |jd
ddœd	d�}t ||¡ t ddgddgdœddgd�}|jtjdd�}t ||¡ |jtjdd�}t ||¡ |jdddœdd�}t ||¡ |jdddœdd�}t ||¡ |jtjdd�}t ||¡ d S )Nr2   rm   rI   ÚXÚYr'   rJ   ru   r   r$   r-   r"   Úyr   r   )r‚   rƒ   )r
   r   )r   r   r)   r*   r:   r;   )r	   rF   rQ   rP   r   r   r   Útest_rename_axis_style  s*    z!TestRename.test_rename_axis_stylec                 C   sP   t ddgddgddgdœƒ dd	g¡}| tj¡}|jtjd
�}t ||¡ d S )Nr$   r-   r&   r.   r2   rm   )r    r%   r/   r    r%   r'   )r   ro   r   r)   r<   r:   r;   ©r	   rF   rP   rQ   r   r   r   Útest_rename_mapper_multi'  s    ÿz#TestRename.test_rename_mapper_multic                 C   s^   t ddgddgdœddgd�}|jtjtjd�}t ddgddgdœd	d
gd�}t ||¡ d S )Nr2   rm   rJ   r‚   rƒ   r'   r_   rI   r"   r„   )r   r   r)   r*   r<   r:   r;   r†   r   r   r   Útest_rename_positional_named/  s    z'TestRename.test_rename_positional_namedc              	   C   sX  t ddgddgdœddgd�}d}tjt|d�� |jtjdd	� W 5 Q R X tjt|d�� |jtjd
d	� W 5 Q R X tjt|d�� |jtjd
d� W 5 Q R X tjt|d�� |jtjdd	� W 5 Q R X tjt|d�� |jtjtjd
d	� W 5 Q R X d}tjt|d�� |jtjtjtjd� W 5 Q R X tjtdd�� |jttd� W 5 Q R X d S )Nr2   rm   rI   Ú0Ú1r'   z:Cannot specify both 'axis' and any of 'index' or 'columns'r7   )r   r   r   )r   r   r   ú<Cannot specify both 'mapper' and any of 'index' or 'columns'r_   zmultiple values)r
   )r   r>   r?   r@   r   r)   r*   Úid)r	   rF   Zover_spec_msgr   r   r   Útest_rename_axis_style_raises6  s"     z(TestRename.test_rename_axis_style_raisesc              	   C   s>   t ddgd�}d}tjt|d�� | d tj¡ W 5 Q R X d S )Nr    r%   r1   z1rename\(\) takes from 1 to 2 positional argumentsr7   )r   r>   r?   r@   r   r)   r*   ©r	   rF   Úmsgr   r   r   Útest_rename_positional_raisesU  s    z(TestRename.test_rename_positional_raisesc              	   C   s°   t dggƒ}d}tjt|d�� | ¡  W 5 Q R X tjt|d�� |jd d d� W 5 Q R X tjt|d�� |jd d d� W 5 Q R X tjt|d�� |jd d d d� W 5 Q R X d S )Nr2   r6   r7   r'   r1   ©r   r   ©r   r>   r?   r@   r   rŽ   r   r   r   Útest_rename_no_mappings_raises]  s    z)TestRename.test_rename_no_mappings_raisesc              	   C   sŽ   t dggƒ}d}tjt|d�� |ji i d� W 5 Q R X tjt|d�� |ji i d� W 5 Q R X tjt|d�� |ji i i d� W 5 Q R X d S )Nr2   r‹   r7   r'   r1   r‘   r’   rŽ   r   r   r   Ú2test_rename_mapper_and_positional_arguments_raisesm  s    z=TestRename.test_rename_mapper_and_positional_arguments_raisesc              	   C   sæ   t dgdgdgdœtjdgddgd�d	�}t d
ddgdgd dddgdddgdœtjdddgddgd�d	�}t||dddd�}|jdddœd�}t|ƒ |j t dddddddggdddddddgd�jddgd d!�}t 	||¡ d S )"Ng‘z6«>§?g…ëQ¸6@g^KÈ=›¥?)ÚRTÚTCloseÚTExg)éé*	 é*3ÚSTK_IDÚRPT_Dater[   r'   éb3é�3r™   r˜   rr   u   é¥¡é©¦gfffffC@g®GázÔD@gÃõ(\�>@)r›   rš   ÚSTK_Namer–   )r˜   rœ   )r˜   r�   ÚinnerT)ÚhowZ
left_indexZright_indexr–   ZQT_Close)ZTClose_xZTClose_yr1   r•   r—   rž   F)Zdrop)
r   r   r(   r   r   r)   Zdtypesro   r:   r;   )r	   Zdf4Zdf5ÚkrP   rQ   r   r   r   Ú"test_rename_with_duplicate_columnsz  sJ     ÿþüþùùþ õz-TestRename.test_rename_with_duplicate_columnsc                 C   sx   t t d¡ dd¡dddddgd�}d	d
ddœ}|j|d�}t t d¡ dd¡dddddgd	d
dgd�}t ||¡ d S )Né   rr   rs   FTrm   rt   r1   r3   r4   rk   rn   r'   r‘   )r   rL   rv   Zreshaper   r:   r;   )r	   rF   r
   ÚresÚexpr   r   r   Útest_rename_boolean_index£  s    $ýz$TestRename.test_rename_boolean_indexN)"Ú__name__Ú
__module__Ú__qualname__r   r>   ÚmarkZparametrizer   r   r,   rG   r   rR   re   ÚtdZ&skip_array_manager_not_yet_implementedri   rj   rq   rw   r~   r)   r*   r€   r�   r…   r‡   rˆ   r�   r�   r“   r”   r¢   r¦   r   r   r   r   r      sH   
)þþ
G
ýþ
")r   )Úcollectionsr   r   ÚnumpyrL   r>   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsr«   Zpandasr   r   r   r   r   Zpandas._testingZ_testingr:   r   r   r   r   r   Ú<module>   s   