o
    ‡Å€gÎ  ã                   @   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   úW/var/www/html/myenv/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
    