o
    5c>                     @   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                
   @   sJ  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!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/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Z d9d: 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   \/var/www/html/gps/gps/lib/python3.10/site-packages/pandas/tests/frame/methods/test_rename.pytest_rename_signature   s   
z TestRename.test_rename_signatureklassc                 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   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 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barr5   r4   r&   BARFOOmust pass an index to renamematch)r/   r0   )r   r$   r4   r5   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   sR   t dd}tjd}t||d}|j|i |}t||d}t|| d S )Nr3   r   
   r   r$   r#   r,   )rangenprandomrandnr   r   r<   r=   )r   argskwargscolADatacolBdatarI   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^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buzz2r4   r5   namesfizzbuzzr   r   r3   r3   r   r   foo3bar3)rZ   r]   fizz3buzz3)r^   ra   )ri   r[   )r\   rj   )rk   r_   )r`   rl   r   )r   r   r3   )FIZZ1r_   )FIZZ2ra   )r^   BUZZ1)r`   BUZZ2)r   r   )r   r'   r   r   r<   r?   r   r   rc   r(   r>   )
r   tuples_indextuples_columnsr   r   rI   rF   	new_indexnew_columnsfuncr   r   r   test_rename_multiindexf   sj   z!TestRename.test_rename_multiindexc                 C   s   |j ddidd}t|d j|d jsJ t|rtnd  d|jd d df< W d    n1 s4w   Y  |rG|d dk rEJ d S |d dk sQJ d S )Nr/   r4   F)r   r
   g      ?)	r   rP   shares_memory_valuesr<   assert_produces_warningFutureWarninglocall)r   rD   using_copy_on_writerF   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/   r4   r1   T)r   r   )r   r
   )r   rD   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 )Nr4   r5   bahbasr3      r   r3   r   r   r#   r1   r,   z
2001-01-01)r4   r   )r5   r   rb   rh   )r   r   	set_indexr   r   r'   r<   r=   r   rI   rX   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   )rf   rg   r   r   r#   )rH   r   r   rg         r   r	   )rf   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.   r1   z'E'] not found in axisr9   r#   er   Eraiser   r   )r   r@   rA   KeyErrorr   )r   rI   r   r   r   test_rename_errors_raises   s   "z$TestRename.test_rename_errors_raisesz mapper, errors, expected_columnsr   r   ignore)r#   r$   r/   r0   r   )r#   r,   r%   r-   c                 C   s6   t g dd}|j||d}t |d}t|| d S )Nr.   r1   r   )r   r   r<   r=   )r   r   r   expected_columnsrI   rW   rX   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 )Nr1   r7   r4   )r   r(   r>   )r   float_string_framerF   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 )Nr3   r   rM   XYr&   rN   r   r   r#   r,   r!   yr   r   )r   r   )r   r	   )r   r   r(   r)   r<   r=   )r   rI   rX   rW   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-   r3   r   )r   r$   r/   r   r$   r&   )r   r   r   r(   r>   r<   r=   r   rI   rW   rX   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 )Nr3   r   rN   r   r   r&   rh   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 )Nr3   r   rM   01r&   z:Cannot specify both 'axis' and any of 'index' or 'columns'r9   )r   r	   r   )r   r	   r   <Cannot specify both 'mapper' and any of 'index' or 'columns'rh   zmultiple values)r   )r   r@   rA   rB   r   r(   r)   id)r   rI   over_spec_msgr   r   r   test_rename_axis_style_raises6  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$   r1   z1rename\(\) takes from 1 to 2 positional argumentsr9   )r   r@   rA   rB   r   r(   r)   r   rI   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 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 )Nr3   r8   r9   r&   r1   r   r   r   r@   rA   rB   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 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 )Nr3   r   r9   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 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| |j 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_Daterb   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_yr1   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   F)drop)
r   r   r'   r   r   r(   dtypesr   r<   r=   )r   df4df5krW   rX   r   r   r   "test_rename_with_duplicate_columnsz  s8   

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   )FTr   r   r   r1   r4   r5   r   r   r&   )r4   r5   r   r   )r   rP   r   reshaper   r<   r=   )r   rI   r   resexpr   r   r   test_rename_boolean_index  s   z$TestRename.test_rename_boolean_indexN)"__name__
__module____qualname__r   r@   markparametrizer   r   r+   rK   r   rY   rv   td&skip_array_manager_not_yet_implementedr~   r   r   r   r   r(   r)   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      sJ    
)
G

")r   )collectionsr   r   numpyrP   r@   pandas.util._test_decoratorsutil_test_decoratorsr   pandasr   r   r   r   r   pandas._testing_testingr<   r   r   r   r   r   <module>   s    