B
    `                 @   sF   d dl Zd dlZd dlZd dlmZmZ d dlm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	d	d
dgdd Z
ej	d	d
dgej	ddddgedddgge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	ddddgdd  Zd!d" Zd#d$ ZdS )%TestDataFrameClipc             C   sL   |    }| }|j||d}|j|k r4t|j|jk sHtd S )N)upperlower)mediancopyclipvaluesanyAssertionErrorall)selffloat_framer   originaldouble r   S/home/dcms/DCMS/lib/python3.7/site-packages/pandas/tests/frame/methods/test_clip.py	test_clip
   s
    zTestDataFrameClip.test_clipc             C   sF   |    }| }|j||dd}|d ks0t|j|k rBt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dd}xdD ]\}}|||}t||t|| }}|j|k}|j|k}| | @ }|j| |k sxt	|j| |k st	|j| |j| k st	qW d S )Ni     ))   )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}|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|| 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dd}ttjd}|d }| }|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	|
|f |j	|
|f  qVW d S )Ni  r   r   r   )axisr   F)Zcheck_names)r   r   r   r   r   r   r	   rangeZiloclocr.   r0   namer   )r   r   r   r    r!   r   r"   ir#   r$   r%   r1   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   r4   r   )r,   index)Zcheck_exact)r   r	   pdr   r,   r>   r.   r/   )	r   Zsimple_framer   r   r4   resr   r1   r2   r   r   r   test_clip_against_list_likeX   s    z-TestDataFrameClip.test_clip_against_list_liker4   Nc       	      C   s   t tjdd}t tjdd}|d }|j|||d}||k}||k}| | @ }t|| ||  t|| ||  t|| ||  d S )Ni  r   r   )r4   )r   r   r   r   r	   r.   r/   )	r   r4   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ddddddgd}t t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|| t|| t||	 d S )Ni  r*   r(   r)   CD)r,   r   r   )r   r   r'   )	r   r   r   r   r
   r	   r,   r.   r/   )
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 |tj| t |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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 || 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   r4   N)r.   r/   r	   r   r-   r   )r   r   r   r1   r2   r   r   r   test_clip_with_na_args   s    "&&z(TestDataFrameClip.test_clip_with_na_args)__name__
__module____qualname__r   r   r&   r3   pytestmarkZparametrizer9   r   ZasarrayrA   rB   rE   rH   r   r   r   r   r   	   s   
	"0r   )numpyr   rL   Zpandasr?   r   r   Zpandas._testingZ_testingr.   r   r   r   r   r   <module>   s
   