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 )    )datetimeN)Index
MultiIndexSeriesarrayc                   @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!S )"
TestRenamec                 C   s^   |}dd }| |}|jd ||jd ksJ tt|j|j}| |}t|| d S )Nc                 S   
   |  dS Nz%Y%m%dstrftimex r   ^/var/www/html/lang_env/lib/python3.10/site-packages/pandas/tests/series/methods/test_rename.py<lambda>      
 z(TestRename.test_rename.<locals>.<lambda>r   )renameindexdictziptmassert_series_equal)selfdatetime_seriestsrenamerrenamedZrename_dictZrenamed2r   r   r   test_rename   s   

zTestRename.test_renamec                 C   sB   t tdg ddd}|ddd}t|jtg d d S )	N   abcdint64r   dtypefoobar)r!   r#   )r    r'   r"   r(   )r   nparanger   r   Zassert_index_equalr   r   )r   serr   r   r   r   test_rename_partial_dict   s   z#TestRename.test_rename_partial_dictc                 C   sB   t tdtg ddddd}|i }|jj|jjksJ d S )Nr   r   namer-   r$   r%   )r   r)   r*   r   r   r   r-   )r   r   r   r   r   r   test_rename_retain_index_name"   s
   
z(TestRename.test_rename_retain_index_namec                 C   sN   t tddd}t ddd}||}t tdg ddd}t|| d S )	N   r'   r.   
      )      )r   r1   r2      r   )r   r-   )r   ranger   r   r   )r   r+   r   resultexpectedr   r   r   test_rename_by_series*   s
   
z TestRename.test_rename_by_seriesc                 C   s   t tdtdd}dddtdddd	fD ],}||}|j|ks#J |r0t|jj	|jj	 n
t
|jj	|jj	 |jd u sAJ qd S )
Nr   abcdr   r'   {        ^@     r'   )r   r6   listr   r   r-   r   assert_extension_array_equalr   valuesassert_numpy_array_equal)r   using_infer_stringr+   r-   r7   r   r   r   test_rename_set_name1   s   
zTestRename.test_rename_set_namec                 C   s   t tdtdd}dddtdddd	fD ]3}|j|d
d |j|ks%J tjg dtjd}|r@t|dd}t	
|jj| qt	|jj| qd S )Nr5   abcr;   r'   r<   r=   r>   r?   r@   TZinplace)r    r!   r"   r&   zstring[pyarrow_numpy])r   r6   rA   r   r   r-   r)   r   Zobject_r   rB   r   rC   rD   )r   rE   r+   r-   expr   r   r   test_rename_set_name_inplace<   s   z'TestRename.test_rename_set_name_inplacec                 C   sj   t td}|ji dd |ji dd tjtdd |ji dd W d    d S 1 s.w   Y  d S )Nr0   r   )Zaxisr   zNo axis named 5match)r   r6   r   pytestraises
ValueError)r   r+   r   r   r   test_rename_axis_supportedH   s   "z%TestRename.test_rename_axis_supportedc                 C   s:   dd }||j d }|j|dd |j d |ksJ d S )Nc                 S   r   r	   r
   r   r   r   r   r   R   r   z0TestRename.test_rename_inplace.<locals>.<lambda>r   TrH   )r   r   )r   r   r   r8   r   r   r   test_rename_inplaceQ   s   zTestRename.test_rename_inplacec                 C   s8   G dd d}| }t g d|}|j|u sJ d S )Nc                   @      e Zd ZdS )z=TestRename.test_rename_with_custom_indexer.<locals>.MyIndexerN__name__
__module____qualname__r   r   r   r   	MyIndexerZ       rX   r3   r4   r5   r   r   r-   r   rX   Zixr+   r   r   r   test_rename_with_custom_indexerX   s   z*TestRename.test_rename_with_custom_indexerc                 C   s@   G dd d}| }t g d}|j|dd |j|u sJ d S )Nc                   @   rS   )zETestRename.test_rename_with_custom_indexer_inplace.<locals>.MyIndexerNrT   r   r   r   r   rX   c   rY   rX   rZ   TrH   r[   r\   r   r   r   'test_rename_with_custom_indexer_inplacea   s
   z2TestRename.test_rename_with_custom_indexer_inplacec                 C   sX   t tddttddddd}|t}|dd	 }t|| |j|jks*J d S )
Nr3      r4      ZIntIndexr.   r;   c                 S   s   t | S )N)str)ir   r   r   r   o   s    z1TestRename.test_rename_callable.<locals>.<lambda>)r   r6   r   r   ra   r   r   r-   r   r+   r7   r8   r   r   r   test_rename_callablek   s
    
zTestRename.test_rename_callablec                 C   s6   t ddgdd}|d }t ddg}t|| d S )Nr3   r4   r'   r.   )r   r   r   r   rc   r   r   r   test_rename_nonet   s   
zTestRename.test_rename_nonec                 C   s   g dg dg}t j|ddgd}ttd|d}|jdd	idd
d}g dg dg}t j|ddgd}ttd|d}t|| d S )N)r(   bazrf   r'   Zqux)onerg   tworh   rg   firstsecondnamesr0   r;   rg   yesraise)r   levelerrors)rm   rm   rh   rh   rm   )r   from_arraysr   r)   Zonesr   r   r   )r   arraysr   r+   r7   arrays_expectedZindex_expectedZseries_expectedr   r   r   "test_rename_series_with_multiindex{   s   z-TestRename.test_rename_series_with_multiindexc                 C   s   t g ddddt g dddg}tj|ddgd}td|d	}|jdd
idd}t g ddddt g dddg}tj|ddgd}td|d	}t|| d S )NrZ   ZInt64rI   categoryABrk   r3   r;   r   )ro   )r   r4   r5   )r   Zastyper   rq   r   r   r   r   )r   rr   mir+   r7   rs   Zmi_expectedr8   r   r   r   2test_rename_series_with_multiindex_keeps_ea_dtypes   s   z=TestRename.test_rename_series_with_multiindex_keeps_ea_dtypesc                 C   s\   t ddg}td}tjt|d |jddidd W d    d S 1 s'w   Y  d S )	Nr'   r(   z[2] not found in axisrL   r4   	   rn   )rp   )r   reescaperN   rO   KeyErrorr   )r   r+   rM   r   r   r   test_rename_error_arg   s
   
"z TestRename.test_rename_error_argc                 C   s   t ddg}| }|jddidd}t| d|d< W d    n1 s'w   Y  |rD|d |d ks8J |d |d ksBJ d S |d |d ksNJ |d |d ksXJ d S )	Nr'   r(   r3   rz   F)copyZfoobarr   )r   r   r   r   Zassert_cow_warning)r   Zusing_copy_on_writeZwarn_copy_on_writer+   Zser_origZshallow_copyr   r   r   test_rename_copy_false   s   
z!TestRename.test_rename_copy_falseN)rU   rV   rW   r   r,   r/   r9   rF   rK   rQ   rR   r]   r^   rd   re   rt   ry   r~   r   r   r   r   r   r      s"    		
	r   )r   r{   numpyr)   rN   Zpandasr   r   r   r   Zpandas._testingZ_testingr   r   r   r   r   r   <module>   s    