a
    d                     @   s>   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g deg dgej	ddg dg dg dgfdg dg dg dgfgdd Zej	dg ddd Zdd Zd d! Zd"d# Zd$d% Zd&S )'TestDataFrameClipc                 C   sL   |    }| }|j||d}|j|k r4J |j|jk sHJ d S )Nupperlower)mediancopyclipvaluesanyall)selffloat_framer   originaldouble r   m/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/pandas/tests/frame/methods/test_clip.py	test_clip   s
    zTestDataFrameClip.test_clipc                 C   sF   |    }| }|j||dd}|d u s0J |j|k rBJ d S )NT)r   r   inplace)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}dD ]\}}|||}t||t|| }}|j|k}|j|k}| | @ }|j| |k	 szJ |j| |k	 sJ |j| |j| k	 sJ qd S )N     r   ))   )r   r   )
r   nprandomdefault_rngstandard_normalr
   minmaxr   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 g ddtjdgd}|dd}t g ddtjdgd}t|| t g d	g d
gg dd}|j}|jddj}t|| d S )Nr   r      g      ?      @)ABr   r   )r   r   r          @)r   r   g333333@)r+      gffffff@)ZfoobarZbazcolumnsr+   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}|d }| }|j||d|d}|rV|}tdD ]}|j	d d |f |k}|j	d d |f |k}	| |	 @ }
|j
||f }tj||| dd |j|ksJ |j
|	|f }tj|||	 dd |j|ksJ t|j
|
|f |j
|
|f  q^d S )	Nr   r   r   r   r   )axisr   F)Zcheck_names)r   r   r   r   r   r   r	   r
   rangeZiloclocr6   r8   name)r   r   r"   r#   r$   r   r%   ir&   r'   r(   r:   r   r   r   test_clip_against_series;   s$    z*TestDataFrameClip.test_clip_against_seriesr   )r   r+   r0   zaxis,resr   )r/   r/   r,   )      @      @      @)      @rF   rF   r   )r/   r,   rC   )rD   rE   rF   c           	      C   sP   |j dd}|j|g d||d}t||j|jd}|r<|}tj||dd d S )NT)deep)         )r   r   r=   r   )r3   index)Zcheck_exact)r	   r
   r   r3   rK   r6   r7   )	r   Zsimple_framer   r   r=   resr   r:   r;   r   r   r   test_clip_against_list_likeX   s    z-TestDataFrameClip.test_clip_against_list_liker=   )r   r   Nc           	      C   s   t tjdd}t tjdd}|d }|j|||d}||k}||k}| | @ }t|| ||  t|| ||  t|| ||  d S )Nr   r   r   )r=   )r   r   r   r   r   r
   r6   r7   )	r   r=   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g dd}t tjddg dd}t |jd g d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 )Nr   )r   r0   )r-   r.   CDr2   )rP   r-   r.   rO   r   )r.   rP   rO   r-   r   )r   r   r+   )
r   r   r   r   r   r   r
   r3   r6   r7   )
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g dg dg dd}|jddtjgdd	}tg d
g dg dd}t || |jddtjgdd	}tg dg dg dd}t || g dg dd}t|}tddtjddg}|j|dd	}tg dg dd}t || dS )z&Should process np.nan argument as Noner   r*   )r0   rH   rI   )rJ      	   )col_0col_1Zcol_2r0   rH   r   )r   r=   )r0   rH   r+   r   )r0   r0   r0   )rH   rH   rI   )rS   r   r   rH   )irI   rR   )rT   rU   r   rI   r+   )rS   rV   r   rI   rH   )r   rY   rI   rR   r+   N)r6   r7   r
   r   r5   r   r   )r   r   r"   r:   r;   datatr   r   r   test_clip_with_na_args   s&    z(TestDataFrameClip.test_clip_with_na_argsc                 C   s<   t dg di}|jdd}t dg di}t|| d S )Nar*         ?)r   )r^   r/   r,   r   r
   r6   r7   r9   r   r   r   #test_clip_int_data_with_float_bound   s    z5TestDataFrameClip.test_clip_int_data_with_float_boundc                 C   sZ   t ddg}t ddg}|dg}t|| t ddg}|jdgd}t|| d S )Nr   rH   r+   r4   r_   )r   r"   r;   r:   r   r   r   test_clip_with_list_bound   s    z+TestDataFrameClip.test_clip_with_list_boundN)__name__
__module____qualname__r   r   r)   r<   pytestmarkZparametrizerB   r   ZasarrayrM   rN   rQ   r\   r`   ra   r   r   r   r   r      s*   
	

r   )
numpyr   re   Zpandasr   r   Zpandas._testingZ_testingr6   r   r   r   r   r   <module>   s   