U
    ùQ”i5  ã                   @   st   d dl mZ 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G dd„ dƒZdS )	é    )Údeepcopy)ÚmethodcallerN)Ú	DataFrameÚ
MultiIndexÚSeriesÚ
date_rangec                   @   sp   e Zd Zej dddg¡dd„ ƒZej dddg¡dd„ ƒZdd	„ Zd
d„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZdS )ÚTestDataFrameÚfuncZ_set_axis_nameÚrename_axisc                 C   sx   t ddgddggƒ}t|dƒ|ƒ}|jjd ks2t‚|jjdksBt‚t|ddd�|ƒ}|jjd ksdt‚|jjdkstt‚d S )Né   é   é   é   ÚfooÚcols©Úaxis)r   r   ÚindexÚnameÚAssertionErrorÚcolumns)Úselfr	   ÚdfÚresult© r   úC/tmp/pip-unpacked-wheel-58ppya8e/pandas/tests/generic/test_frame.pyÚtest_set_axis_name   s    z TestDataFrame.test_set_axis_namec                 C   s´   t t d¡t dd„ tdƒD ƒ¡t dd„ tdƒD ƒ¡d�}dd	g}t||ƒ|ƒ}|jj|ksbt	‚|j
jd d gksvt	‚t||d
d�|ƒ}|j
jdd	gksœt	‚|jjd d gks°t	‚d S )N)r   r   c                 S   s   g | ]}d |f‘qS )ÚAr   ©Ú.0Úxr   r   r   Ú
<listcomp>"   s     z7TestDataFrame.test_set_axis_name_mi.<locals>.<listcomp>ZaBcc                 S   s   g | ]}d |f‘qS )ÚCr   r   r   r   r   r!   #   s     Zxyz)r   r   ZL1ZL2r   r   )r   ÚnpÚemptyr   Úfrom_tuplesÚlistr   r   Únamesr   r   )r   r	   r   Zlevel_namesr   r   r   r   Útest_set_axis_name_mi   s    ýz#TestDataFrame.test_set_axis_name_mic              	   C   sŠ   t dggƒ}| ¡ st‚t dggƒ}| ¡ r0t‚t ddggƒ}d}tjt|d�� | ¡  W 5 Q R X tjt|d�� t|ƒ W 5 Q R X d S )NTFz+The truth value of a DataFrame is ambiguous©Úmatch)r   Úboolr   ÚpytestÚraisesÚ
ValueError)r   r   Úmsgr   r   r   Útest_nonzero_single_element0   s    z)TestDataFrame.test_nonzero_single_elementc              
   C   s`   t ddddddddgddddddddgtj d¡tj d¡dœƒ}| d¡ ¡ }t ||¡ d S )	Nr   ÚbarZoneZtwoZthreeé   )r   ÚBr"   ÚDr   )r   r#   ÚrandomÚrandnÚgroupbyÚsumÚtmÚassert_metadata_equivalent©r   r   r   r   r   r   Ú'test_metadata_propagation_indiv_groupby?   s    

üÿz5TestDataFrame.test_metadata_propagation_indiv_groupbyc                 C   s:   t tj dd¡tdddd�d�}| d¡}t ||¡ d S )Niè  r   Z20130101Ús)ZperiodsÚfreq)r   Z1T)r   r#   r5   r6   r   Zresampler9   r:   r;   r   r   r   Ú(test_metadata_propagation_indiv_resampleL   s    þ
z6TestDataFrame.test_metadata_propagation_indiv_resamplec              	   C   sú   ddd„}|  ¡ �Þ}| tddg¡ | td|¡ tj d¡ ttj ddd	¡d
dgd�}ttj ddd	¡ddgd�}dgt_d|_d|_|j	|d
gdgdd�}|jdks®t
‚ttj ddd	¡tdƒd�}d|_t ||g¡}|jdksìt
‚W 5 Q R X d S )Nc              	      sš   | j D ]Ž‰ |dkrL|j|j }}t|ˆ dƒd t|ˆ dƒ }t | ˆ |¡ q|dkr~d ‡ fdd„|jD ƒ¡}t | ˆ |¡ qt | ˆ t|ˆ dƒ¡ q| S )NÚmergeÚ ú|Úconcatú+c                    s"   g | ]}t |ˆ d ƒrt |ˆ ƒ‘qS )N)Úgetattr)r   Úo©r   r   r   r!   a   s      zSTestDataFrame.test_metadata_propagation_indiv.<locals>.finalize.<locals>.<listcomp>)Ú	_metadataÚleftÚrightrE   ÚobjectÚ__setattr__ÚjoinÚobjs)r   ÚotherÚmethodÚkwargsrI   rJ   Úvaluer   rG   r   ÚfinalizeY   s    
ÿz?TestDataFrame.test_metadata_propagation_indiv.<locals>.finalizerH   ÚfilenameZ__finalize__é
   r   r   )r   r   ÚaÚb©r   ÚcÚdz
fname1.csvz
fname2.csvÚinner)Zleft_onZright_onÚhowzfname1.csv|fname2.csvÚabr   zfoo+foo)N)ÚcontextÚsetattrr   r#   r5   ÚseedÚrandintrH   rT   r@   r   r&   ÚpdrC   )r   ZmonkeypatchrS   ÚmZdf1Zdf2r   r   r   r   Útest_metadata_propagation_indivU   s     

z-TestDataFrame.test_metadata_propagation_indivc                 C   s\   t ddddgiƒ}d|_dddg|d< d|_|jdks:t‚t |d tdddgdd	�¡ d S )
Nr    r   r   r   r   é   Úyé   rG   )r   rf   r   r9   Zassert_series_equalr   )r   r   r   r   r   Útest_set_attribute   s    z TestDataFrame.test_set_attributec                 C   s(   t g g dgd�}t|ƒ}t ||¡ d S )Nr   )Údatar   r   )r   r   r9   Zassert_frame_equal)r   Zempty_frameZempty_frame_copyr   r   r   Útest_deepcopy_empty‹   s    z!TestDataFrame.test_deepcopy_emptyN)Ú__name__Ú
__module__Ú__qualname__r,   ÚmarkÚparametrizer   r(   r0   r<   r?   rd   rh   rj   r   r   r   r   r      s   

	*r   c                   @   s8   e Zd Zej ddddddgdg¡dd„ ƒZd	d
„ ZdS )ÚTestDataFrame2rR   r   ÚTruer   r   g      @c              	   C   sl  t dddgdddgdœƒ}d}tjt|d	��  | ¡ jd
ddœd|d� W 5 Q R X tjt|d	�� | ¡ jdd|d� W 5 Q R X tjt|d	�� | ¡ jd|d� W 5 Q R X tjt|d	�� | ¡ jdd|d� W 5 Q R X tjt|d	�� | ¡ j	|d� W 5 Q R X tjt|d	�� | ¡ j
|jdk|d� W 5 Q R X tjt|d	�� | ¡ j|jdk|d� W 5 Q R X d S )Nr   r   r   r   rg   re   )rV   rW   z8For argument "inplace" expected type bool, received typer)   r    rf   )Zmapperr   ÚinplacerV   )r   rr   r   )rR   rr   é   )Z
to_replacerR   rr   ©rr   )Zcondrr   )r   r,   r-   r.   Úcopyr
   ÚdropÚfillnaÚreplaceZinterpolateZ_whererV   Úmask)r   rR   r   r/   r   r   r   Útest_validate_bool_args–   s     $"z&TestDataFrame2.test_validate_bool_argsc              	   C   sö   t tj dd¡ddgd�}t dddddtjg¡}|d  ¡ }tj|d< d}tj	t
|d	�� |jdd
dd� W 5 Q R X tj	t
|d	�� |jd
dgdd� W 5 Q R X tj	t
|d	�� |jddd� W 5 Q R X tj	t
|d	�� |jddd� W 5 Q R X d S )Nrg   r   ZjimZjoerX   r   r   zunexpected keywordr)   r   T)r   Úin_placert   )r{   )r   r#   r5   r6   rb   ZCategoricalÚnanru   r,   r-   Ú	TypeErrorrv   Zreindexrw   )r   r   ÚcaÚtsr/   r   r   r   Útest_unexpected_keyword°   s    
z&TestDataFrame2.test_unexpected_keywordN)rk   rl   rm   r,   rn   ro   rz   r€   r   r   r   r   rp   •   s   
rp   )ru   r   Úoperatorr   Znumpyr#   r,   Zpandasrb   r   r   r   r   Zpandas._testingZ_testingr9   r   rp   r   r   r   r   Ú<module>   s    