o
    թZh                     @   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tmZassert_numpy_array_equalSeriesassert_series_equalZdropbool)selfdata_missingexpectedresult r   Z/var/www/html/lang_env/lib/python3.10/site-packages/pandas/tests/extension/base/missing.py	test_isna	   s   

zBaseMissingTests.test_isnana_funcr	   Znotnac                 C   sR   t |}| }t|| }t|jt jrt|}d|d d < t	
|| d S )NT)r   r   copygetattr
isinstancer   ZSparseDtyper   r   r
   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#   )Zaxis   )indexr#   r"   Br   )r   	DataFrameIndexobjectr   r   r
   assert_frame_equalZ
RangeIndexr   nan)r   r   dfr   r   r   r   r   test_dropna_frame.   s   z"BaseMissingTests.test_dropna_framec                 C   s,   |d }| |}| |}t|| d S r   )fillnar
   r   )r   r   validr   r   r   r   r   test_fillna_scalarA   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_padG   s   z&BaseMissingTests.test_fillna_limit_padz'limit_area, input_ilocs, expected_ilocsZoutsider2   )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   Zinside)r   r   r   r   r   c                 C   s<   | |}t|j|d}t| |}t|| d S )N)
limit_arear4   )r   r   r:   Zinput_ilocsZexpected_ilocsr8   r   r   r   r   r   test_ffill_limit_areaP   s   
z&BaseMissingTests.test_ffill_limit_areac                 C   sF   | g d}t|jddd}t| g d}t|| d S )Nr2   backfillr$   )methodr3   )r   r   r   r   r   )r5   r   r   r/   r
   r   r7   r   r   r   test_fillna_limit_backfillf   s   z+BaseMissingTests.test_fillna_limit_backfillc                 C   s`   ||    }|d }||}||usJ t|| |jdd}||us(J t|| d S )Nr   r<   )r=   )r	   r/   r
   r   Z_pad_or_backfill)r   datar0   r   r   r   r   test_fillna_no_op_returns_copyo   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   r/   _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   r6   r   )r   r   r   rA   r   r
   r   )r   r   Zfillna_methodrB   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(   r/   rA   r   r
   r+   )r   r   rB   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   r,   lenr/   r
   r+   )r   r?   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
   Zassert_produces_warningFutureWarningZ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markZparametrizer   r   r!   r.   r1   filterwarningsr9   r;   r>   r@   rC   rE   rF   rH   rL   r   r   r   r   r      sF    



	
r   )	numpyr   rP   Zpandasr   Zpandas._testingZ_testingr
   r   r   r   r   r   <module>   s
    