U
    sVc                     @   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-xj8nt62q/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st	|jjd d gkst	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jt|d	 |d
 }W 5 Q R X t	|| d S )Nr   barZoneZtwoZthree   )r   Br"   Dz!The default value of numeric_onlyr)   r   )
r   r#   randomrandntmZassert_produces_warningFutureWarninggroupbysumassert_metadata_equivalent)r   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resampler7   r;   )r   r   r   r   r   r   (test_metadata_propagation_indiv_resampleO   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st
ttjddd	tdd}d|_t||g}|jdkst
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!   e   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   finalize\   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_indivX   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   r7   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   r7   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                       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 )TestDataFrame2rR   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   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.   superr
   dropfillnareplaceZinterpolateZ_whererV   mask)r   rR   r   r/   	__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 )Nrg   r   ZjimZjoerX   r   r   zunexpected keywordr)   r   T)r   in_placert   )r}   )r   r#   r5   r6   rb   ZCategoricalnancopyr,   r-   	TypeErrorrv   Zreindexrw   )r   r   catsr/   r   r   r   test_unexpected_keyword   s    
z&TestDataFrame2.test_unexpected_keyword)	rk   rl   rm   r,   rn   ro   r|   r   __classcell__r   r   rz   r   rp      s   rp   )r   r   operatorr   Znumpyr#   r,   Zpandasrb   r   r   r   r   Zpandas._testingZ_testingr7   r   rp   r   r   r   r   <module>   s    	