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 )    )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s2J tt|j|j}| |}t|| d S )Nc                 S   s
   |  dS Nz%Y%m%dstrftimex r   `/var/www/ai-form-bot/venv/lib/python3.9/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   r0   r1      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 ]X}||}|j|ksFJ |r`t|jj	|jj	 nt
|jj	|jj	 |jd u s*J q*d S )
Nr   abcdr   r&   {        ^@     r&   )r   r5   listr   r   r,   r   assert_extension_array_equalr   valuesassert_numpy_array_equal)r   using_infer_stringr*   r,   r6   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 ]f}|j|d
d |j|ksJJ tjg dtjd}|rt|dd}t	
|jj| q*t	|jj| q*d S )Nr4   abcr:   r&   r;   r<   r=   r>   r?   TZinplace)r   r    r!   r%   zstring[pyarrow_numpy])r   r5   r@   r   r   r,   r(   r   Zobject_r   rA   r   rB   rC   )r   rD   r*   r,   expr   r   r   test_rename_set_name_inplace<   s    z'TestRename.test_rename_set_name_inplacec                 C   sh   t td}|ji dd |ji dd tjtdd |ji dd W d    n1 sZ0    Y  d S )Nr/   r   )Zaxisr   zNo axis named 5match)r   r5   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s6J d S )Nc                 S   s
   |  dS r   r	   r   r   r   r   r   R   r   z0TestRename.test_rename_inplace.<locals>.<lambda>r   TrG   )r   r   )r   r   r   r7   r   r   r   test_rename_inplaceQ   s    zTestRename.test_rename_inplacec                 C   s8   G dd d}| }t g d|}|j|u s4J d S )Nc                   @   s   e Zd ZdS )z=TestRename.test_rename_with_custom_indexer.<locals>.MyIndexerN__name__
__module____qualname__r   r   r   r   	MyIndexerZ   s   rV   r2   r3   r4   r   r   r,   r   rV   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                   @   s   e Zd ZdS )zETestRename.test_rename_with_custom_indexer_inplace.<locals>.MyIndexerNrR   r   r   r   r   rV   c   s   rV   rW   TrG   rX   rY   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sTJ d S )
Nr2      r3      ZIntIndexr-   r:   c                 S   s   t | S )N)str)ir   r   r   r   o   r   z1TestRename.test_rename_callable.<locals>.<lambda>)r   r5   r   r   r^   r   r   r,   r   r*   r6   r7   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 )Nr2   r3   r&   r-   )r   r   r   r   r`   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'   bazrc   r&   Zqux)onerd   twore   rd   firstsecondnamesr/   r:   rd   yesraise)r   levelerrors)rj   rj   re   re   rj   )r   from_arraysr   r(   Zonesr   r   r   )r   arraysr   r*   r6   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 )NrW   ZInt64rH   categoryABrh   r2   r:   r   )rl   )r   r3   r4   )r   Zastyper   rn   r   r   r   r   )r   ro   mir*   r6   rp   Zmi_expectedr7   r   r   r   2test_rename_series_with_multiindex_keeps_ea_dtypes   s    z=TestRename.test_rename_series_with_multiindex_keeps_ea_dtypesc                 C   sZ   t ddg}td}tjt|d" |jddidd W d    n1 sL0    Y  d S )	Nr&   r'   z[2] not found in axisrK   r3   	   rk   )rm   )r   reescaperM   rN   KeyErrorr   )r   r*   rL   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 sN0    Y  |r|d |d kspJ |d |d ksJ n(|d |d ksJ |d |d ksJ d S )	Nr&   r'   r2   rw   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)rS   rT   rU   r   r+   r.   r8   rE   rJ   rP   rQ   rZ   r[   ra   rb   rq   rv   r{   r}   r   r   r   r   r      s    		
	r   )r   rx   numpyr(   rM   Zpandasr   r   r   r   Zpandas._testingZ_testingr   r   r   r   r   r   <module>   s   