U
    sVc>                     @   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   J/tmp/pip-unpacked-wheel-xj8nt62q/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st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st	|jj|jjkst	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	 rtn|d dk	 std S )Nr/   r3   F)r   r   g      ?)
r   rL   Zshares_memoryZ_valuesr   r:   Zassert_produces_warningDeprecationWarning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_named1  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_raises8  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_raisesW  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_raiseso  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>?gQ6@g^K=?)RTTCloseTExg)*	 *3STK_IDRPT_Dater[   r'   b33r   r   rr   u   饡驦gfffffC@gGzD@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_columns|  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   Z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   