a
    Pªf‰  ã                   @   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   ú\/var/www/ai-form-bot/venv/lib/python3.9/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ƒr6t |¡}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   Z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outsider1   )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_arear3   )r   r   r9   Zinput_ilocsZexpected_ilocsr7   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 )Nr1   Úbackfillr$   )Úmethodr2   )r   r   r   r   r   )r4   r   r   r.   r
   r   r6   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sPJ ‚t ||¡ d S )Nr   r;   )r<   )r	   r.   r
   r   Z_pad_or_backfill)r   Údatar/   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   r5   éÿÿÿÿr   )r   r   r   r@   r   r
   r   )r   r   Zfillna_methodrA   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.   r@   r   r
   r+   )r   r   rA   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D t  dd¡ | ¡ }W d   ƒ n1 sP0    Y  W d   ƒ n1 sn0    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    
Dz-BaseMissingTests.test_use_inf_as_na_no_effectN)Ú__name__Ú
__module__Ú__qualname__r   ÚpytestÚmarkZparametrizer   r   r!   r-   r0   Úfilterwarningsr8   r:   r=   r?   rB   rD   rE   rG   rK   r   r   r   r   r      sD   

ÿ
øþ
	ÿ
r   )	Únumpyr   rO   Zpandasr   Zpandas._testingZ_testingr
   r   r   r   r   r   Ú<module>   s   