o
    1فi                     @   s6   d dl Zd dlZd dlZd dlmZ G dd dZdS )    Nc                   @   s<  e Zd Zdd Zejdddgdd Zdd	 Zd
d Z	dd Z
dd Zejddd Zejddg dg dfdg dg dfdg dg dfdg dg dfdg dg dfdg dg dfdg dg dfdg dg dfgdd Zejddd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-S ).BaseMissingTestsc                 C   s~   t ddg}t|}t|| t| }t|}t|| t|ddg }tjg t	d}t|| d S )NTFr      dtype)
nparraypdisnatmassert_numpy_array_equalSeriesassert_series_equaldropbool)selfdata_missingexpectedresult r   d/home/test-dt/pcm-url-check/venv/lib/python3.10/site-packages/pandas/tests/extension/base/missing.py	test_isna	   s   

zBaseMissingTests.test_isnana_funcr	   notnac                 C   sZ   t |}| }t|| }t|jt jrt|}d|j	_
d|d d < t|| d S )NT)r   r   copygetattr
isinstancer   SparseDtyper   r   flags	writeabler
   r   )r   r   r   r   r   maskr   r   r   test_isna_returns_copy   s   

z'BaseMissingTests.test_isna_returns_copyc                 C   s"   |  }|dg }t|| d S Nr   )dropnar
   assert_extension_array_equal)r   r   r   r   r   r   r   test_dropna_array%   s   
z"BaseMissingTests.test_dropna_arrayc                 C   s.   t |}| }|jdg }t|| d S r!   )r   r   r"   ilocr
   r   )r   r   serr   r   r   r   r   test_dropna_series*   s   
z#BaseMissingTests.test_dropna_seriesc                 C   s   t jd|it jdgtdd}| }|jdg }t|| |jdd}t jt dt g d}t|| t |dt	j
gd	}| }|jd d
 }t|| d S )NAr   )columnsr   r)   )axis   )indexr)   r(   Br   )r   	DataFrameIndexobjectr"   r%   r
   assert_frame_equal
RangeIndexr   nan)r   r   dfr   r   r   r   r   test_dropna_frame0   s   z"BaseMissingTests.test_dropna_framec                 C   s,   |d }| |}| |}t|| d S r!   )fillnar
   r#   )r   r   validr   r   r   r   r   test_fillna_scalarC   s   

z#BaseMissingTests.test_fillna_scalarz>ignore:Series.fillna with 'method' is deprecated:FutureWarningc                 C   sD   | g d}t|jdd}t| g d}t|| d S )Nr   r   r   r   r   r+   )limit)r   r   r   r   r   taker   r   ffillr
   r   r   r   arrr   r   r   r   r   test_fillna_limit_padI   s   z&BaseMissingTests.test_fillna_limit_padz'limit_area, input_ilocs, expected_ilocsoutsider:   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   inside)r   r   r   r   r   c                 C   s<   | |}t|j|d}t| |}t|| d S )N)
limit_arear<   )r   r   rD   input_ilocsexpected_ilocsr@   r   r   r   r   r   test_ffill_limit_areaR   s   
z&BaseMissingTests.test_ffill_limit_areac                 C   sF   | g d}t|jddd}t| g d}t|| d S )Nr:   backfillr+   )methodr;   )r   r   r   r   r   )r=   r   r   r7   r
   r   r?   r   r   r   test_fillna_limit_backfillh   s   z+BaseMissingTests.test_fillna_limit_backfillc                 C   s`   ||    }|d }||}||usJ t|| |jdd}||us(J t|| d S )Nr   rH   )rI   )r	   r7   r
   r#   _pad_or_backfill)r   datar8   r   r   r   r   test_fillna_no_op_returns_copyq   s   
z/BaseMissingTests.test_fillna_no_op_returns_copyc                 C   sr   |d }t |}||}t |j||g|jd}t|| ||}t|| ||}t|| d S )Nr   r   )r   r   r7   _from_sequencer   r
   r   )r   r   
fill_valuer&   r   r   r   r   r   test_fillna_series}   s   




z#BaseMissingTests.test_fillna_seriesc                 C   sZ   |d }|dkr|d d d }t t|| }t|j||g|jd}t|| d S )Nr   r>   r   )r   r   r   rN   r   r
   r   )r   r   fillna_methodrO   r   r   r   r   r   test_fillna_series_method   s   
z*BaseMissingTests.test_fillna_series_methodc                 C   sV   |d }t |ddgd|}t |j||g|jdddgd}t|| d S )Nr   r+   r-   r   )r   r/   r7   rN   r   r
   r2   )r   r   rO   r   r   r   r   r   test_fillna_frame   s   
	z"BaseMissingTests.test_fillna_framec                 C   sP   t |tjgt| dddi}t |dgt| d}t|| d S )Nr-   r.   g        )r   r/   r   r4   lenr7   r
   r2   )r   rL   r   r   r   r   r   test_fillna_fill_other   s   &z'BaseMissingTests.test_fillna_fill_otherc              	   C   s   t |}| }d}tjt|d" t dd | }W d    n1 s(w   Y  W d    n1 s7w   Y  t|| d S )Nz"use_inf_as_na option is deprecated)matchzmode.use_inf_as_naT)r   r   r	   r
   assert_produces_warningFutureWarningoption_contextr   )r   r   r&   r   msgr   r   r   r   test_use_inf_as_na_no_effect   s   

z-BaseMissingTests.test_use_inf_as_na_no_effectN)__name__
__module____qualname__r   pytestmarkparametrizer    r$   r'   r6   r9   filterwarningsrA   rG   rJ   rM   rP   rS   rT   rV   r\   r   r   r   r   r      sF    


	
r   )	numpyr   r`   pandasr   pandas._testing_testingr
   r   r   r   r   r   <module>   s
    