o
    ŀg;                     @   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>	   axiscopyselfindexlevelerrorsmappercolumnsinplace)inspect	signaturer   renameset
parameters)r
   sigr    r   Z/var/www/html/myenv/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
   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)check_namesr   r      )foobarr4   r3   r$   FOOBARmust pass an index to renamematch)r.   r/   )r   r"   r3   r4   name)r:   )r   r&   r'   tmassert_frame_equalupperr   assert_index_equalr   r   pytestraises	TypeErrorr   Tr:   )	r
   float_framemappingrenamedrenamed2datadfr   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 )Nr2   r      
   r   r"   r!   r+   )	rangenprandomdefault_rngstandard_normalr   r   r;   r<   )r
   argskwargscolADatacolBdatarH   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buzz2r3   r4   namesfizzbuzzr   r   r2   r2   r   r   foo3bar3)r[   r^   fizz3buzz3)r_   rb   )rj   r\   )r]   rk   )rl   r`   )ra   rm   r   )r   r   r2   )FIZZ1r`   )FIZZ2rb   )r_   BUZZ1)ra   BUZZ2)r   r   )r   r%   r   r   r;   r>   r   r   rd   r&   r=   )
r
   tuples_indextuples_columnsr   r   rH   rE   	new_index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.   r3   F)r   r	   g      ?)r   rP   shares_memory_valuesr;   assert_cow_warninglocall)r
   rC   using_copy_on_writewarn_copy_on_writerE   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.   r3   r0   T)r   r   )r   r	   )r
   rC   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 )Nr3   r4   bahbasr2   rK   r   r2   rK   r   r!   r0   r+   z
2001-01-01)r3   r   )r4   r   rc   ri   )r   r   	set_indexr   r   r%   r;   r<   r
   rH   rY   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   )rg   rh   rK   rK   r!   )rG   r   r   rh         r   r   )rg   r   r   )r   rP   aranger   r;   r<   r   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-   r0   z'E'] not found in axisr8   r!   er   Eraiser   r   )r   r?   r@   KeyErrorr   )r
   rH   r   r   r   test_rename_errors_raises   s   "z$TestRename.test_rename_errors_raisesz mapper, errors, expected_columnsr   r   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-   r0   r   )r   r   r;   r<   )r
   r   r   expected_columnsrH   rX   rY   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 )Nr0   r5   r3   )r   r&   r=   )r
   float_string_framerE   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   rK   rM   XYr$   rN   r   r   r!   r+   r   yr   r   )r   r   )r   r   )r   r   r&   r'   r;   r<   )r
   rH   rY   rX   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   rK   )r   r"   r.   r   r"   r$   )r   r   r   r&   r=   r;   r<   r
   rH   rX   rY   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   rK   rN   r   r   r$   ri   rM   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   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 )Nr2   rK   rM   01r$   z:Cannot specify both 'axis' and any of 'index' or 'columns'r8   )r   r   r   )r   r   r   <Cannot specify both 'mapper' and any of 'index' or 'columns'ri   zmultiple values)r   )r   r?   r@   rA   r   r&   r'   id)r
   rH   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"   r0   z1rename\(\) takes from 1 to 2 positional argumentsr8   )r   r?   r@   rA   r   r&   r'   r
   rH   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 )Nr2   r7   r8   r$   r0   r   r   r   r?   r@   rA   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 )Nr2   r   r8   r$   r0   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_Daterc   r$   )b33r   r   r   )   饡驦r   r   )gfffffC@gGzD@(\>@)r   r   STK_Namer   ))r   r   )r   r   r   innerT)how
left_indexright_indexr   QT_Close)TClose_xTClose_yr0   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   F)drop)r   r   r%   r   r   r   r;   r<   )r
   df4df5krX   rY   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   r   r   )FTrK   r   r   r0   r3   r4   r   r   r$   )r3   r4   r   r   )r   rP   r   reshaper   r;   r<   )r
   rH   r   resexpr   r   r   test_rename_boolean_index  s   z$TestRename.test_rename_boolean_indexN)__name__
__module____qualname__r   r*   rJ   r?   markparametrizer   rZ   rw   r   r   r   r   r   r&   r'   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      sF    (
F
"'r   )collectionsr   r   numpyrP   r?   pandasr   r   r   r   pandas._testing_testingr;   r   r   r   r   r   <module>   s    