3
Ud                 @   sD   d dl Zd dlZd dlZd dlmZmZ d dljZ	G dd dZ
dS )    N)	DataFrameSeriesc               @   s   e Zd Zdd Zdd Zdd Zdd Zejj	d	d
dgdd Z
ejj	d	d
dgejj	ddddgejdddggejj	dddddgdddgdddggfddddgdddgdddggfgdd Zejj	ddddgdd  Zd!d" Zd#d$ ZdS )%TestDataFrameClipc             C   sN   |j  j  }|j }|j||d}|j|kj  s6t|j|jkj sJtd S )N)upperlower)mediancopyclipvaluesanyAssertionErrorall)selffloat_framer   originaldouble r   X/var/www/html/virt/lib64/python3.6/site-packages/pandas/tests/frame/methods/test_clip.py	test_clip
   s
    zTestDataFrameClip.test_clipc             C   sH   |j  j  }|j }|j||dd}|d ks0t|j|kj  sDtd S )NT)r   r   inplace)r   r   r	   r   r
   r   )r   r   r   Z
frame_copyZreturn_valuer   r   r   test_inplace_clip   s
    z#TestDataFrameClip.test_inplace_clipc             C   s   t tjjdd}xdD ]\}}|j||}t||t|| }}|j|k}|j|k}| | @ }|j| |kj sxt	|j| |kj st	|j| |j| kj st	qW d S )	Ni        r   r   r   r   r   )r   r   )
r   nprandomrandnr	   minmaxr
   r   r   )r   dflbub
clipped_dflb_maskub_maskmaskr   r   r   test_dataframe_clip   s    

z%TestDataFrameClip.test_dataframe_clipc             C   s   t dddgdtjdgd}|jdd}t dddgdtjdgd}tj||dd	 t ddd
gdddggdddgd}|j}|jddj}tj|| d S )Nr   r      g      ?g      @)ABg       @T)Z
check_likeg333333@   gffffff@ZfoobarZbaz)columns)r   )r   r   nanr	   tmassert_frame_equalZdtypesassert_series_equal)r   r!   resultexpectedr   r   r   test_clip_mixed_numeric,   s    "z)TestDataFrameClip.test_clip_mixed_numericr   TFc             C   s  t tjjdd}ttjjd}|d }|j }|j||d|d}|rL|}xtdD ]}|jd d |f |k}|jd d |f |k}	| |	 @ }
|j	||f }t
j||| dd |j|kst|j	|	|f }t
j|||	 dd |j|kstt
j|j	|
|f |j	|
|f  qVW d S )Ni  r   r   r   )axisr   F)Zcheck_names)r   r   r   r   r   r   r	   rangeZiloclocr0   r2   namer   )r   r   r!   r"   r#   r   r$   ir%   r&   r'   r3   r   r   r   test_clip_against_series;   s$    z*TestDataFrameClip.test_clip_against_seriesr   r   r)   r,   zaxis,resr   g       @g      @g      @g      @g      @g      @r   c       	      C   sT   |j dd}|j|dddg||d}tj||j|jd}|r@|}tj||dd d S )	NT)deep         )r   r   r6   r   )r.   index)Zcheck_exact)r   r	   pdr   r.   r@   r0   r1   )	r   Zsimple_framer   r   r6   resr   r3   r4   r   r   r   test_clip_against_list_likeX   s    z-TestDataFrameClip.test_clip_against_list_liker6   Nc       	      C   s   t tjjdd}t tjjdd}|d }|j|||d}||k}||k}| | @ }tj|| ||  tj|| ||  tj|| ||  d S )Ni  r   r   )r6   )r   r   r   r   r	   r0   r1   )	r   r6   r!   r"   r#   r$   r%   r&   r'   r   r   r   test_clip_against_framel   s    z)TestDataFrameClip.test_clip_against_framec       
      C   s   t tjjddddddgd}t tjjddddddgd}t |jd ddddgd}|jd	|d
}|jd	||j d
}|j|dd
}|j||j dd
}|j||d
}|j||j ||j d
}	tj|| tj|| tj||	 d S )Ni  r,   r*   r+   CD)r.   r   r   )r   r   r)   )	r   r   r   r   r
   r	   r.   r0   r1   )
r   Zdf1Zdf2Zdf3Zresult_upperZexpected_upperZresult_lowerZexpected_lowerZresult_lower_upperZexpected_lower_upperr   r   r   #test_clip_against_unordered_columns|   s    z5TestDataFrameClip.test_clip_against_unordered_columnsc             C   s   t j|jtj| t j|jtjtjd| tdddgdddgdd	d
gd}|jddtjgdd}tddtjgddtjgdd	tjgd}t j|| |jddtjgdd}tdddgdddgtjtjtjgd}t j|| dS )z'Should process np.nan argument as None )r   r   r   r   r)   r,   r=   r>   r?      	   )Zcol_0Zcol_1Zcol_2r   )r   r6   N)r0   r1   r	   r   r/   r   )r   r   r!   r3   r4   r   r   r   test_clip_with_na_args   s    "&&z(TestDataFrameClip.test_clip_with_na_args)__name__
__module____qualname__r   r   r(   r5   pytestmarkZparametrizer;   r   ZasarrayrC   rD   rG   rJ   r   r   r   r   r   	   s   
	"0r   )Znumpyr   rN   ZpandasrA   r   r   Zpandas._testingZ_testingr0   r   r   r   r   r   <module>   s
   
