a
    Pf;                     @   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>	   levelinplacecolumnsindexerrorsaxismapperselfcopy)inspect	signaturer   renameset
parameters)r   sigr    r   _/var/www/ai-form-bot/venv/lib/python3.9/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>#       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 s0    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barr3   r2   r%   FOOZBARmust pass an index to renamematch)r.   r/   )r   r#   r2   r3   name)r8   )r   r'   r(   tmassert_frame_equalupperr   assert_index_equalr   r   pytestraises	TypeErrorr
   Tr8   )	r   float_framemappingrenamedZrenamed2datadfr   Zrenamerr   r   r   test_rename'   s0    &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 )Nr1   r      
   r   r#   r"   r+   )	rangenprandomZdefault_rngZstandard_normalr   r   r9   r:   )r   argskwargsZcolADataZcolBdatarE   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sJ |jj|jjksJ 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buzz2r2   r3   namesZfizzZbuzzr   r   r1   r1   r   r
   foo3bar3)rS   rV   fizz3buzz3)rW   rZ   )r`   rT   )rU   ra   )rb   rX   )rY   rc   r   )r
   r   r1   )ZFIZZ1rX   )ZFIZZ2rZ   )rW   ZBUZZ1)rY   ZBUZZ2)r   r   )r   r&   r   r   r9   r<   r   r
   r\   r'   r;   )
r   Ztuples_indexZtuples_columnsr   r
   rE   rC   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 s`0    Y  |r|d dk rJ n|d dk sJ d S )Nr.   r2   F)r
   r   g      ?)r   rL   Zshares_memoryZ_valuesr9   Zassert_cow_warninglocall)r   rA   Zusing_copy_on_writeZwarn_copy_on_writerC   r   r   r   test_rename_nocopy   s    0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 sVJ d|vsbJ d|v snJ |d |us~J d S )Nr.   r2   r0   T)r
   r	   )r   r   )r   rA   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 )Nr2   r3   bahbasr1   rG   r   r1   rG   r   r"   r0   r+   z
2001-01-01)r2   rj   )r3   rk   r[   r_   )r   r   	set_indexr
   r   r&   r9   r:   r   rE   rQ   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^   rG   rG   r"   )rD   r   r
   r^         r   r   )r]   rr   rq   )r   rL   aranger   r9   r:   rn   r   r   r   test_rename_bug2   s    zTestRename.test_rename_bug2c                 C   sT   t g dd}tjtdd$ |jddddd	 W d    n1 sF0    Y  d S )
Nr-   r0   z'E'] not found in axisr6   r"   er   Eraiser
   r   )r   r=   r>   KeyErrorr   )r   rE   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-   r0   r|   )r   r   r9   r:   )r   r   r   Zexpected_columnsrE   rP   rQ   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   r4   r2   )r   r'   r;   )r   Zfloat_string_framerC   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 )Nr1   rG   rI   XYr%   rJ   ru   r
   r"   r+   r   yr   r   )r   r   )r   r   )r   r   r'   r(   r9   r:   )r   rE   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,   r1   rG   )r   r#   r.   r   r#   r%   )r   rm   r   r'   r;   r9   r:   r   rE   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 )Nr1   rG   rJ   r   r   r%   r_   rI   r   r   )r   r   r'   r(   r;   r9   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 sV0    Y  tjt|d  |jtjd
d	 W d    n1 s0    Y  tjt|d  |jtjd
d W d    n1 s0    Y  tjt|d  |jtjdd	 W d    n1 s0    Y  tjt|d$ |jtjtjd
d	 W d    n1 sV0    Y  d}tjt|d& |jtjtjtjd W d    n1 s0    Y  tjtdd |jttd W d    n1 s0    Y  d S )Nr1   rG   rI   01r%   z:Cannot specify both 'axis' and any of 'index' or 'columns'r6   )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   rE   Zover_spec_msgr   r   r   test_rename_axis_style_raises+  s"    ...046z(TestRename.test_rename_axis_style_raisesc                 C   sR   t ddgd}d}tjt|d |d tj W d    n1 sD0    Y  d S )Nr   r#   r0   z1rename\(\) takes from 1 to 2 positional argumentsr6   )r   r=   r>   r?   r   r'   r(   r   rE   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<0    Y  tjt|d |jd d d W d    n1 sx0    Y  tjt|d |jd d d W d    n1 s0    Y  tjt|d  |jd d d d W d    n1 s0    Y  d S )Nr1   r5   r6   r%   r0   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 sB0    Y  tjt|d |ji i d W d    n1 s~0    Y  tjt|d  |ji i i d W d    n1 s0    Y  d S )Nr1   r   r6   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_Dater[   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_yr0   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   F)Zdrop)r   r   r&   r   r   rm   r9   r:   )r   Zdf4Zdf5krP   rQ   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   )FTrG   rp   rt   r0   r2   r3   rj   rl   r%   )r2   r3   rj   r   )r   rL   rv   Zreshaper   r9   r:   )r   rE   r   resexpr   r   r   test_rename_boolean_index  s    z$TestRename.test_rename_boolean_indexN)__name__
__module____qualname__r   r*   rF   r=   markZparametrizer   rR   re   rh   ri   ro   rw   r~   r'   r(   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      sD   (
F
"'r   )collectionsr   r   numpyrL   r=   Zpandasr   r   r   r   Zpandas._testingZ_testingr9   r   r   r   r   r   <module>   s   