U
    f/ed                     @   s   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 d dlmZ G dd deZG dd	 d	ZdS )
    )deepcopy)methodcallerN)	DataFrame
MultiIndexSeries
date_range)Genericc                   @   s|   e Zd ZeZd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 )TestDataFramec                 C   s   t ||S N)tmZassert_frame_equal)selfxy r   C/tmp/pip-unpacked-wheel-tiezk1ph/pandas/tests/generic/test_frame.py<lambda>       zTestDataFrame.<lambda>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)r   r   dfresultr   r   r   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st	|jjd d gkst	d S )N)r   r   c                 S   s   g | ]}d |fqS )Ar   .0r   r   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_element4   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 }| || d S )	Nr   barZoneZtwoZthree   )r$   Br(   Dr$   )r   r)   randomrandngroupbysumcheck_metadatar   r!   r"   r   r   r   'test_metadata_propagation_indiv_groupbyD   s    

z5TestDataFrame.test_metadata_propagation_indiv_groupbyc                 C   s:   t tjddtddddd}|d}| || d S )Ni  r   Z20130101s)Zperiodsfreq)r   Z1T)r   r)   r;   r<   r   Zresampler?   r@   r   r   r   (test_metadata_propagation_indiv_resampleQ   s    
z6TestDataFrame.test_metadata_propagation_indiv_resamplec                 C   s   t j}t j}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|_ddd}|t _|j|dgdgdd}|jdkst	d
gt _t tjdddt
dd}d|_ddd}|t _t||g}|jdkst	|t _|t _d S )N
   r   r   )r   r   abr    cdfilenamez
fname1.csvz
fname2.csvc              	   [   sh   | j D ]\}|dkrL|j|j }}t||dd t||d }t| || qt| |t||d q| S )Nmerge |)	_metadataleftrightgetattrobject__setattr__)r   othermethodkwargsr   rP   rQ   valuer   r   r   finalizeg   s    
z?TestDataFrame.test_metadata_propagation_indiv.<locals>.finalizeinner)Zleft_onZright_onhowzfname1.csv|fname2.csvabr   c              	      sX   | j D ]L |dkr<d fdd|jD }t|  | qt|  t| d  q| S )Nconcat+c                 3   s$   | ]}t | d rt | V  qd S r
   )rR   )r&   or   r   r   	<genexpr>   s     zRTestDataFrame.test_metadata_propagation_indiv.<locals>.finalize.<locals>.<genexpr>)rO   joinobjsrS   rT   rR   )r   rU   rV   rW   rX   r   r`   r   rY   }   s    
zfoo+foo)N)N)r   rO   Z__finalize__r)   r;   seedrandintrK   rL   r   r,   pdr]   )r   rO   Z	_finalizeZdf1Zdf2rY   r"   r   r   r   test_metadata_propagation_indivZ   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      r      r`   )r   r   r   r   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|}| || d S )Nr$   )datar   r    )r   r   _compare)r   Zempty_frameZempty_frame_copyr   r   r   test_deepcopy_empty   s    z!TestDataFrame.test_deepcopy_emptyN)__name__
__module____qualname__r   Z_typZ_comparatorr2   markparametrizer#   r.   r6   rA   rD   rg   rj   rm   r   r   r   r   r	      s   

	8r	   c                       s@   e Zd Zejddddddgdg fddZd	d
 Z  ZS )TestDataFrame2rX   r   Truer   r   g      @c              	      sz  t dddgdddgd}d}tjt|d	" tt |jd
ddd|d W 5 Q R X tjt|d	 tt |jdd|d W 5 Q R X tjt|d	 tt |jd|d W 5 Q R X tjt|d	 tt |jdd|d W 5 Q R X tjt|d	 tt |j	|d W 5 Q R X tjt|d	  tt |j
|jdk|d W 5 Q R X tjt|d	  tt |j|jdk|d W 5 Q R X d S )Nr   r   r   r   ri   rh   )rF   rG   z8For argument "inplace" expected type bool, received typer/   r   r   )Zmapperr   inplacerF   )r   ru   r   )rX   ru      )Z
to_replacerX   ru   ru   )Zcondru   )r   r2   r3   r4   superr   dropfillnareplaceZinterpolateZ_whererF   mask)r   rX   r!   r5   	__class__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 )Nri   r   ZjimZjoerH   r   r   zunexpected keywordr/   r   T)r   in_placerw   )r   )r   r)   r;   r<   rf   ZCategoricalnancopyr2   r3   	TypeErrorry   Zreindexrz   )r   r!   catsr5   r   r   r   test_unexpected_keyword   s    
z&TestDataFrame2.test_unexpected_keyword)	rn   ro   rp   r2   rq   rr   r   r   __classcell__r   r   r}   r   rs      s   rs   )r   r   operatorr   Znumpyr)   r2   Zpandasrf   r   r   r   r   Zpandas._testingZ_testingr   Z!pandas.tests.generic.test_genericr   r	   rs   r   r   r   r   <module>   s    