o
    թZh;                     @   sZ   d dl mZ d dlZd dlZd dlZd dlmZmZm	Z	m
Z
 d dlmZ G dd dZdS )    )ChainMapN)	DataFrameIndex
MultiIndexmergec                
   @   s2  e Zd Zdd Z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dd Zdd Zdd Zdd Zdd Zejdd	ddd g d!fdd	id"g d!fejd"g d#fgd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 Zd8d9 Zd:S );
TestRenamec                 C   s*   t tj}t|j}|h dksJ d S )N>	   indexlevelselfcolumnsmapperaxisinplacecopyerrors)inspect	signaturer   renameset
parameters)r
   sigr    r   ]/var/www/html/lang_env/lib/python3.10/site-packages/pandas/tests/frame/methods/test_rename.pytest_rename_signature   s   
z TestRename.test_rename_signaturec                 C   s0   |g d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
   Zframe_or_series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 d    n1 snw   Y  |j dddd}t|jt	g d |jj dddd}t|jt	g d 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sJ d S )Nr!   br#   dr   r"   CDr   F)Zcheck_namesr   r      )foobarr2   r1   r$   FOOZBARmust pass an index to renamematch)r-   r.   )r   r"   r1   r2   name)r7   )r   r&   r'   tmassert_frame_equalupperr   assert_index_equalr   r   pytestraises	TypeErrorr   Tr7   )	r
   float_framemappingrenamedZrenamed2datadfr   Zrenamerr   r   r   test_rename'   s2   
zTestRename.test_renamezargs,kwargsr   r!   r"   r*   r   r   r   c                 C   sX   t dd}tjdd}t||d}|j|i |}t||d}t|| d S )Nr0   r      
   r   r"   r!   r*   )	rangenprandomZdefault_rngZstandard_normalr   r   r8   r9   )r
   argskwargsZcolADataZcolBdatarD   resultexpectedr   r   r   test_rename_chainmapO   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^J |jj|jjkshJ 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buzz2r1   r2   namesZfizzZbuzzr   r   r0   r0   r   r   foo3bar3)rR   rU   fizz3buzz3)rV   rY   )r_   rS   )rT   r`   )ra   rW   )rX   rb   r   )r   r	   r0   )ZFIZZ1rW   )ZFIZZ2rY   )rV   ZBUZZ1)rX   ZBUZZ2)r   r	   )r   r%   r   r   r8   r;   r   r   r[   r&   r:   )
r
   Ztuples_indexZtuples_columnsr   r   rD   rB   Z	new_indexZnew_columnsfuncr   r   r   test_rename_multiindexa   sj   z!TestRename.test_rename_multiindexc                 C   s   |j ddidd}t|d j|d jsJ t| d|jd d df< W d    n1 s0w   Y  |rC|d dk rAJ d S |d dk sMJ d S )Nr-   r1   F)r   r   g      ?)r   rK   Zshares_memoryZ_valuesr8   Zassert_cow_warninglocall)r
   r@   Zusing_copy_on_writeZwarn_copy_on_writerB   r   r   r   test_rename_nocopy   s   zTestRename.test_rename_nocopyc                 C   s   |j ddid d|v sJ d|vsJ |d }| }|j ddidd}|d u s+J d|vs1J d|v s7J |d |us?J d S )Nr-   r1   r/   T)r   r   )r   r   )r
   r@   Zc_values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 )Nr1   r2   bahbasr0   rF   r   r0   rF   r   r!   r/   r*   z
2001-01-01)r1   rj   )r2   rk   rZ   r^   )r   r   	set_indexr   r   r%   r8   r9   r
   rD   rP   r   r   r   test_rename_bug   s   
zTestRename.test_rename_bugc                 C   sV   t tdg ddgd}|jddidd}t tdg d	dgd}t|| d S )
N   )r\   r]   rF   rF   r!   )rC   r   r   r]         r   r   )r\   rr   rq   )r   rK   aranger   r8   r9   rn   r   r   r   test_rename_bug2   s   zTestRename.test_rename_bug2c                 C   sV   t g dd}tjtdd |jddddd	 W d    d S 1 s$w   Y  d S )
Nr,   r/   z'E'] not found in axisr5   r!   er   Eraiser   r   )r   r<   r=   KeyErrorr   )r
   rD   r   r   r   test_rename_errors_raises   s   "z$TestRename.test_rename_errors_raisesz mapper, errors, expected_columnsrx   ry   ignore)r!   r"   r-   r.   r{   )r!   r*   r#   r+   c                 C   s6   t g dd}|j||d}t |d}t|| d S )Nr,   r/   r|   )r   r   r8   r9   )r
   r   r   Zexpected_columnsrD   rO   rP   r   r   r   test_rename_errors   s   
zTestRename.test_rename_errorsc                 C   s*   |j tjd}d|v sJ d|vsJ d S )Nr/   r3   r1   )r   r&   r:   )r
   Zfloat_string_framerB   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 )Nr0   rF   rH   XYr$   rI   ru   r   r!   r*   r   yr   r   )r   r   )r   r   )r   r   r&   r'   r8   r9   )r
   rD   rP   rO   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+   r0   rF   )r   r"   r-   r   r"   r$   )r   rm   r   r&   r:   r8   r9   r
   rD   rO   rP   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 )Nr0   rF   rI   r   r   r$   r^   rH   r   r   )r   r   r&   r'   r:   r8   r9   r   r   r   r   test_rename_positional_named$  s   z'TestRename.test_rename_positional_namedc                 C   s  t ddgddgdddgd}d}tjt|d |jtjdd	 W d    n1 s+w   Y  tjt|d |jtjd
d	 W d    n1 sJw   Y  tjt|d |jtjd
d W d    n1 siw   Y  tjt|d |jtjdd	 W d    n1 sw   Y  tjt|d |jtjtjd
d	 W d    n1 sw   Y  d}tjt|d |jtjtjtjd W d    n1 sw   Y  tjtdd |jttd W d    d S 1 sw   Y  d S )Nr0   rF   rH   01r$   z:Cannot specify both 'axis' and any of 'index' or 'columns'r5   )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
   rD   Zover_spec_msgr   r   r   test_rename_axis_style_raises+  s0   "z(TestRename.test_rename_axis_style_raisesc                 C   sT   t ddgd}d}tjt|d |d tj W d    d S 1 s#w   Y  d S )Nr   r"   r/   z1rename\(\) takes from 1 to 2 positional argumentsr5   )r   r<   r=   r>   r   r&   r'   r
   rD   msgr   r   r   test_rename_positional_raisesJ  s
   "z(TestRename.test_rename_positional_raisesc                 C   s  t dgg}d}tjt|d |  W d    n1 sw   Y  tjt|d |jd d d W d    n1 s<w   Y  tjt|d |jd d d W d    n1 sZw   Y  tjt|d |jd d d d W d    d S 1 szw   Y  d S )Nr0   r4   r5   r$   r/   r   r   r   r<   r=   r>   r   r   r   r   r   test_rename_no_mappings_raisesR  s   
"z)TestRename.test_rename_no_mappings_raisesc                 C   s   t dgg}d}tjt|d |ji i d W d    n1 s!w   Y  tjt|d |ji i d W d    n1 s?w   Y  tjt|d |ji i i d W d    d S 1 s_w   Y  d S )Nr0   r   r5   r$   r/   r   r   r   r   r   r   2test_rename_mapper_and_positional_arguments_raisesb  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 g d
dgd g dg ddtjg dddgdd	}t||dddd}|jdddd}t g dgg ddjddgdd}t|| d S )Nz6>?Q6@^K=?)RTTCloseTExg*	 *3STK_IDRPT_DaterZ   r$   )b33r   r   rp   )   饡驦r   r   )gfffffC@gGzD@(\>@)r   r   STK_Namer   ))r   r   )r   r   r   innerT)howZ
left_indexZright_indexr   QT_Close)ZTClose_xZTClose_yr/   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   F)Zdrop)r   r   r%   r   r   rm   r8   r9   )r
   Zdf4Zdf5krO   rP   r   r   r   "test_rename_with_duplicate_columnso  s4   

z-TestRename.test_rename_with_duplicate_columnsc                 C   sj   t tdddg dd}dddd	}|j|d
}t tdddg dg dd}t|| d S )N   rp   rs   )FTrF   rp   rt   r/   r1   r2   rj   rl   r$   )r1   r2   rj   r   )r   rK   rv   Zreshaper   r8   r9   )r
   rD   r   resexpr   r   r   test_rename_boolean_index  s   z$TestRename.test_rename_boolean_indexN)__name__
__module____qualname__r   r)   rE   r<   markZparametrizer   rQ   rd   rg   ri   ro   rw   r~   r&   r'   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      sF    (
F
"'r   )collectionsr   r   numpyrK   r<   Zpandasr   r   r   r   Zpandas._testingZ_testingr8   r   r   r   r   r   <module>   s    