o
    թZh1                     @   s  d dl m Z mZmZ d dlZd dlZd dlZd dlmZm	Z	m
Z
mZmZmZmZmZmZmZmZ d dlmZ d dlmZ ejdG dd dZejdG d	d
 d
Zejdejejdejejejdejejg	ejejdddddejejg	dddifejejdejejejdejejg	ejejddejejdejejg	ddddfejejdejejejdejejg	ejejdejejejdddg	dddifejejdejejejdejejg	ejejdejejejddejg	ddddfejejejejejejejgejejejejejejejgddddfededddddfejejdejejejdejejg	ejejdddddejejg	dddifejejdejejejdejejg	ejejdejejddejejg	ddddfejejdejejejdejejg	dddejejejdejejg	dddifejejdejejejdejejg	ejddejejejdejejg	ddddff
dd ZdS )    )datetime	timedeltatimezoneN)Categorical	DataFrameDatetimeIndexNaTPeriodSeries	Timedelta	Timestamp
date_rangeisnatimedelta_range)period_arrayzJignore:(Series|DataFrame).fillna with 'method' is deprecated:FutureWarningc                   @   s  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zejddejdejjdddgejdd d!gd"d# Zejddejdejjdddgd$d% Zd&d' Zejdd(d)gd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 Zejd8d9g d:fd9d;d;d<g d=fd>d9id9d9d;ejejgfd9d;d?d9d9d;d;ejgfe d9d9ejd;ejejgfe d9d>gd@d9d9d;ejejgfe d9d;d?d9d9d;d;ejgfe d9d;gdAdBgd@d9ejd;d9d;gfgdCdD Z!ejd8e g dEg dFfe g dGg dHfe e"g dGg dIdJg dHfgdKdL Z#dMdN Z$ejdOe%dPdQgejdRe&j'ejdddgdSdT Z(dUdV Z)dWdX Z*dYdZ Z+d[d\ Z,d]d^ Z-ejd_g d`dag dbdcdagfdcdaejdcgdag dbdcdagfgddde Z.d S )fTestSeriesFillNAc                 C   s`  t dddtjgdd}|jdd}|j|jd d}| }|jd |jd	< t|| t|| t	d
|i}|jdd}|j|jd d}t	d
|i}t
|| t
|| t tjdddgdd}|jdd}|j|d d}| }|d |d< t|| t|| t	d
|i}|jdd}|j|d d}t	d
|i}t
|| t
|| d S )Nr         M8[ns]dtypepadmethodvalue   Abfill)r
   r   _valuefillnavaluescopyiloctmassert_series_equalr   Zassert_frame_equal)selfseriesfilledZfilled2expecteddf r+   ^/var/www/html/lang_env/lib/python3.10/site-packages/pandas/tests/series/methods/test_fillna.pytest_fillna_nat    s4   z TestSeriesFillNA.test_fillna_natc                 C   sF   d}t jt|d |jddd W d    d S 1 sw   Y  d S )Nz(Cannot specify both 'value' and 'method'matchr   ffill)r   r   )pytestraises
ValueErrorr    )r&   datetime_seriesmsgr+   r+   r,   test_fillna_value_or_methodE   s   "z,TestSeriesFillNA.test_fillna_value_or_methodc                 C   s   t g dtdddd}t||jdd tj|jd< t g d	|jd}t|jdd| t g d
|jd}t|jdd| t g d|jd}t|jdd| d}t	j
t|d |  W d    d S 1 snw   Y  d S )N              ?       @      @      @
2020-01-01   periodsindexr0   r   r   )r8   r9   r9   r;   r<   )r8   r9   r;   r;   r<   backfill)r8   r9   g      @r;   r<   r   z'Must specify a fill 'value' or 'method'r.   )r
   r   r$   r%   r    npnanr#   rB   r1   r2   r3   )r&   tsexpr5   r+   r+   r,   test_fillnaJ   s   
"zTestSeriesFillNA.test_fillnac                 C   s$  t tjg}t dg}||}t dg}t|| |i }t|| |t dtd}t|| ||}t|| |ddi}t|| |ddi}t|t tjg |ddd}t|| |t ddd}t|| |t dddddgd	}t|| d S )
Nr   r9   r+   r   r   )r   r      r>   rA   )r
   rD   rE   r    r$   r%   objectr&   s1s2resultr)   r+   r+   r,   test_fillna_nonscalar`   s*   




z&TestSeriesFillNA.test_fillna_nonscalarc                 C   sT   t g dtd}t dtjdgtd}||}t g dtd}t|| d S )Nr   r   r   abcr   r   Zbac)r   r   r:   )r
   listrD   rE   r    r$   r%   rK   r+   r+   r,   test_fillna_alignsx   s
   
z#TestSeriesFillNA.test_fillna_alignsc                 C   s|   t tjg dd}|jddd}t dtjtjgg dd}t|| |jddd}t ddtjgg dd}t|| d S )NrP   rA   i  r   )limitr   r
   rD   rE   r    r$   r%   r&   serrN   r)   r+   r+   r,   test_fillna_limit   s   z"TestSeriesFillNA.test_fillna_limitc                 C   s\   g d}|D ]%}t ddtjtjdgdd}||}t dd||dgdd}t|| qd S )N)0z1.5z-0.3r   r   rI   float64r   rJ   rU   )r&   valsvalrW   rN   r)   r+   r+   r,   test_fillna_dont_cast_strings   s   
z.TestSeriesFillNA.test_fillna_dont_cast_stringsc                 C   s  t tdtg}|tddd}t tdtdddgdd}t|| |ddgtddd}t|| |ddgtddd}t|| |d	}t tdd	g}t|| | }tjt	d
d d	|d< W d    n1 svw   Y  t|| d S )N20130101
US/Easterntz
2013-01-01rJ   r   TFZfoozincompatible dtyper.   r   )
r
   r   r   r    r$   r%   wherer"   assert_produces_warningFutureWarning)r&   rW   rN   r)   ser2r+   r+   r,   test_fillna_consistency   s&   

z(TestSeriesFillNA.test_fillna_consistencyc                 C   s   t dtjg}d}tjt|d |jddd}W d    n1 s"w   Y  t ddg}t|| t dtjg}tjt|d |jddidd}W d    n1 sUw   Y  t ddg}t|| d S )Nr9   .The 'downcast' keyword in fillna is deprecatedr.   r   inferZdowncastr   )r
   rD   rE   r$   rd   re   r    r%   )r&   rW   r5   rN   r)   r+   r+   r,   test_fillna_downcast   s   z%TestSeriesFillNA.test_fillna_downcastc                 C   s^  t dt}t j|d< t|}d}tjt|d |j	ddd}W d    n1 s,w   Y  tt dt j
d}t|| d}tjt|d |jdd}W d    n1 s[w   Y  tg d	t j
d}t|| d
}tjt|d |jdd}W d    n1 sw   Y  tg dt j
d}t|| d|d< tg dt jd}d}tjt|d |j	ddd}W d    n1 sw   Y  t|| d}tjt|d |jdd}W d    n1 sw   Y  tg dt jd}t|| d
}tjt|d |jdd}W d    n	1 sw   Y  tg dt jd}t|| d S )Nr>   r   rh   r.   ri   rj   r   z-The 'downcast' keyword in ffill is deprecated)r   r   r   r   rI   z-The 'downcast' keyword in bfill is deprecated)r   r   r   rI   rI         @r   )r   r   rl   r   rI   )r   r   rl   rl   rI   )r   r   rl   rI   rI   )rD   arangeastyperJ   rE   r
   r$   rd   re   r    Zint64r%   r0   r   rZ   )r&   arrrW   r5   resr)   r+   r+   r,   -test_fillna_downcast_infer_objects_to_numeric   sP   
z>TestSeriesFillNA.test_fillna_downcast_infer_objects_to_numericc           	      C   s  t tdtdtdtdgd| dd}| }|| }|tdd}t tdtdtd	td	d
dgd| dd}||}t|| |d	}|	t
d	}t|| |td	d}t td	dtdtd	td	d
dgd| dd}||}t|| |td	d	d}t td	d	dtdtd	td	d
dgd| dd}||}t|| |td}t td	dtdtd	td	d
dgd| dd}||}t|| |t}t ttdtd	td	d
dgd| dd}||}t|| tj|d< || }| }|tdd}tj|d< ||}t|| tj|d< ||}| }|tdd}td	d
d|d< ||}t|| d S )Nr^   2013010220130103 9:01:01M8[]r   r   )secondsr   i~  )daysrv   zm8[i ʚ;r   )r
   r   diffr"   r    r   r   r$   assert_equalrn   rJ   rD   Ztimedelta64r   rE   r0   r   )	r&   frame_or_seriesunitrW   tdobjrN   r)   rp   r+   r+   r,   test_timedelta_fillna   s   
	

	


	


	

	


	


z&TestSeriesFillNA.test_timedelta_fillnac                 C   s   t tdtdtdtdg}tj|d< | }t tdtdtdtdg}t|| | }t tdtdtdtdg}t|| d S )Nr^   rr   rs   r   )r
   r   rD   rE   r0   r$   r%   r   rV   r+   r+   r,   test_datetime64_fillna]  s4   
z'TestSeriesFillNA.test_datetime64_fillnascalarFTz&GH#56410 scalar case not yet addressed)reason)Zmarksra   NUTCc                 C   s   t ddd|d}td|d}t |ddd}|d u rd	nd
}t||d |d g|d}t|}t|d< | }	||}
|	t|}|rLt|
| d S t|| d S )N
2016-01-01r   s)r@   r{   ra   2016-02-03 04:05:06.789r`   msr@   r{   zM8[ms]zM8[ms, UTC]r   r   r   r   )r   r   r
   r   r"   r    r$   r%   )r&   ra   r   dtiitemvecZ	exp_dtyper)   rW   rf   rp   res2r+   r+   r,   2test_datetime64_fillna_mismatched_reso_no_rounding  s   
zCTestSeriesFillNA.test_datetime64_fillna_mismatched_reso_no_roundingc           
      C   s   t ddddtd }tdtd }t|ddd}t||d |d	 gd
d}t|}t|d< | }||}|t|}	|rIt|| d S t|	| d S )Nr   r   r   r   z
1970-01-01r   r   r   r   zm8[ms]r   r   )	r   r   r   r
   r   r"   r    r$   r%   )
r&   r   Ztdir   r   r)   rW   rf   rp   r   r+   r+   r,   3test_timedelta64_fillna_mismatched_reso_no_rounding  s   
zDTestSeriesFillNA.test_timedelta64_fillna_mismatched_reso_no_roundingc                 C   s>   t ttdgdd}t g ddd}|jdd}t|| d S )N2013-08-05 15:30:00.000001r   r   )r   r   r   rC   r   )r
   r   r    r$   r%   )r&   rW   r)   rN   r+   r+   r,   test_datetime64_fillna_backfill  s   z0TestSeriesFillNA.test_datetime64_fillna_backfillr_   z
Asia/Tokyoc                 C   s  t tdttdtgd| dd}t g d}|td}t tdtdtdtdgd| dd}t|| tt|| |td|d}t tdtd|dtdtd|dg}t|| tt|| |d	}t tdd	tdd	gtd}t|| tt|| |td|dtd
d}t tdtd|dtdtd
g}t|| tt|| |tdtd
d}t tdtdtdtd
gd| dd}t|| tt|| tdtdtg|d	|}t |}|j
d| d| dksJ tt|| |td}t td|dtdtd|dtdg}t|| tt|| |td|d}tg d|d	|}t |}t|| tt|| |td|d }tg d|d	|}t |}t|| tt|| |d	}t td|dd	td|dd	gtd}t|| tt|| |td|dtd
d}t td|dtd|dtd|dtd
g}t|| tt|| |td|dtd
|dd}t td|dtd|dtd|dtd
|dgj	|}t|| tt|| |td}t td|dtdtd|dtdg}t|| tt|| |tddd}t td|dtddd|td|dtddd|gj	|}t|| tt|| d S )N2011-01-01 10:002011-01-03 10:00rt   ru   r   )FTFT2011-01-02 10:00r`   ZAAAz2011-01-04 10:00r   r   zdatetime64[z, )r   r   r   r   r^   rb   
US/Pacific)r
   r   r   r    r$   r%   r   rJ   r   Zas_unitr   Zto_pydatetimedt
tz_convert)r&   ra   r{   rW   Znull_locrN   r)   idxr+   r+   r,   test_datetime64_tz_fillna  sR  
	
	


	


	

		


	













z*TestSeriesFillNA.test_datetime64_tz_fillnac                 C   st   t tdtg}t tdtdg}t|jdd| t ttdg}t tdtdg}t|jdd| d S )Nz2012-11-11 00:00:00+01:00r   r   r   )r
   r   r   r$   r%   r    )r&   rW   rG   r+   r+   r,   test_fillna_dt64tz_with_method  s   z/TestSeriesFillNA.test_fillna_dt64tz_with_methodc                 C   sL   t tjtdgddgd}|td}t tdddgd}t|| d S )Nz1 daysr   BrA   r   )r
   rD   rE   r   r    r   r$   r%   rV   r+   r+   r,   test_fillna_pytimedelta  s   z(TestSeriesFillNA.test_fillna_pytimedeltac                 C   sh   t tdddtdddg}|tddd}t tdddtdddg}t|| |jdks2J d S )Nz2011-01Mfreqr   z2012-01z	Period[M])r
   r	   r    r$   r%   r   )r&   rW   rp   rG   r+   r+   r,   test_fillna_period  s
   z#TestSeriesFillNA.test_fillna_periodc                 C   s   t tdtdtdtdg}tj|d< ||}|td}t tdtdtdtdg}||}t|| |t}|}t|| d S )Nr^   rr   rs   r   Z20130104)r
   r   rD   rE   r    r$   ry   r   )r&   rz   rW   r}   rN   r)   r+   r+   r,   test_fillna_dt64_timestamp  s,   

z+TestSeriesFillNA.test_fillna_dt64_timestampc                 C   sV   t tdttdg}tdd}||}t tdtdtdg}t|| d S )Nz
2010-01-01
2000-01-01z
1975-04-05r   )r
   r   r   rD   Z
datetime64r    r$   r%   )r&   rW   r\   rN   r)   r+   r+   r,   test_fillna_dt64_non_nao  s   
z)TestSeriesFillNA.test_fillna_dt64_non_naoc                 C   s\   t tjdtjdtjgg d}| }|jddd}|d u s J |jdd}t|| d S )Nr9   r;   zabcdr   T)r   inplacer   )r
   rD   rE   r"   r    r$   r%   )r&   xyreturn_valuer)   r+   r+   r,   test_fillna_numeric_inplace  s   z,TestSeriesFillNA.test_fillna_numeric_inplacezfill_value, expected_outputr   )r   r   r   r   r   r   )r   r   rI   )r   r   r   r   r   r   r   rA   r   rI   c                 C   sV   dt jdt jt jg}tt|ddgd}tt|ddgd}||}t|| d S )Nr   r   
categoriesrD   rE   r
   r   r    r$   r%   r&   Z
fill_valueZexpected_outputdatarW   rG   rN   r+   r+   r,   test_fillna_categorical  s
   
z(TestSeriesFillNA.test_fillna_categoricalr   r   r   r   e)r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   r   c                 C   sV   dt jdt jt jg}tt|g dd}tt|g dd}||}t|| d S )Nr   r   r   r   r   r   r+   r+   r,   +test_fillna_categorical_with_new_categories  s
   
z<TestSeriesFillNA.test_fillna_categorical_with_new_categoriesc                 C   s  dt jdt jt jg}tt|ddgd}|j}d}tjt|d |d W d    n1 s0w   Y  d}tjt	|d |td W d    n1 sPw   Y  tjt|d |ddd W d    n1 sow   Y  d	}tjt|d |ddg W d    n1 sw   Y  d
}tjt|d |d W d    n1 sw   Y  d}tjt|d |t
dgdgd W d    d S 1 sw   Y  d S )Nr   r   r   z3Cannot setitem on a Categorical with a new categoryr.   r   z!Length of 'value' does not match.r   C"value" parameter must be a scalar or dict, but you passed a "list"D"value" parameter must be a scalar or dict, but you passed a "tuple")r   r   zP"value" parameter must be a scalar, dict or Series, but you passed a "DataFrame")rD   rE   r
   r   _valuesr1   r2   	TypeErrorr    r3   r   )r&   r   rW   catr5   Zmsg2r+   r+   r,   test_fillna_categorical_raises)  s6   "z/TestSeriesFillNA.test_fillna_categorical_raisesr   float32rZ   	fill_typec           
      C   s   t tjdg|d}t ddg|d}|r|jd}||}t ddg|d}t|| t tjdg|d}| 	 }|||< t|| t tjdg|d}|j
||dd t|| t tjdg|d}|| |}	t|	| d S )N333333?r   r   r:   T)r   )r
   rD   rE   r   typer    r$   r%   r   Zto_numpymaskrc   )
r&   r   r   r   rW   Zfill_valuesrN   r)   r   rp   r+   r+   r,   test_fillna_float_castingH  s"   
z*TestSeriesFillNA.test_fillna_float_castingc                 C   sD   t tjdgtjd}|ddi}t ddgtjd}t|| d S )Nr   r   r   r   r9   )r
   rD   rE   r   r    r$   r%   rV   r+   r+   r,    test_fillna_f32_upcast_with_dictc  s   z1TestSeriesFillNA.test_fillna_f32_upcast_with_dictc              
   C   sJ   z	|j dd W d S  ty$ } zdt|v sJ W Y d }~d S d }~ww )NZffilr   )r    r3   str)r&   r4   instr+   r+   r,   test_fillna_invalid_methodm  s   z+TestSeriesFillNA.test_fillna_invalid_methodc                 C   s   t tjdddd}d}tjt|d |ddg W d    n1 s(w   Y  d}tjt|d |d	 W d    d S 1 sGw   Y  d S )
Nr   d   2   r   r.   r   r   )r   r   )	r
   rD   randomdefault_rngintegersr1   r2   r   r    )r&   rW   r5   r+   r+   r,   test_fillna_listlike_invalids  s   "z-TestSeriesFillNA.test_fillna_listlike_invalidc              
   C   sp   t g d}dg d}dD ]&}dD ]!}tjt|d |jd||d W d    n1 s/w   Y  qqd S )	N)r   r   r   N|)z*Cannot specify both 'value' and 'method'\.zLimit must be greater than 0zLimit must be an integer)r   r9   r:   )rC   r   r   r0   Nr.   r   )rT   r   )r
   joinr1   r2   r3   r    )r&   rW   r5   rT   r   r+   r+   r,   $test_fillna_method_and_limit_invalid}  s   z5TestSeriesFillNA.test_fillna_method_and_limit_invalidc                 C   s   t tdddd}| }t|d< |tdddtjd}t	|| t
d	d
d}t |jd}|jjdks9J ||}t |d ||jj|d g|jd}t	|| d S )NZ2020r   r   )r@   ra   r   i  r   tzinfor   r   r`   zdateutil/US/Pacificr   r   r   )r
   r   r"   r   r    r   r   utcr$   r%   r   r   r   r   kindra   )r&   rW   r)   rN   rF   rf   r+   r+   r,   +test_fillna_datetime64_with_timezone_tzinfo  s   
z<TestSeriesFillNA.test_fillna_datetime64_with_timezone_tzinfoz7input, input_fillna, expected_data, expected_categories)r   r   Nr   r   )r   r   r   r   r   c           
      C   sF   t |}t||}||}||}t ||d}	t||	 d S )Nr   )r   r
   r    r$   Zassert_categorical_equal)
r&   inputZinput_fillnaexpected_dataZexpected_categoriesr   rW   r(   rN   r)   r+   r+   r,   (test_fillna_categorical_accept_same_type  s   

z9TestSeriesFillNA.test_fillna_categorical_accept_same_type)/__name__
__module____qualname__r-   r6   rH   rO   rS   rX   r]   rg   rk   rq   r~   r   r1   markparametrizeparamZxfailr   r   r   r   r   r   r   r   r   r   rD   rE   r
   r   r   r   r   floatr$   ZALL_REAL_NUMPY_DTYPESr   r   r   r   r   r   r   r+   r+   r+   r,   r      s    %
0j#

 O	
"
	


r   z>ignore:Series.fillna with 'method' is deprecated:FutureWarningc                   @   sv   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zejdddgdd ZdS )TestFillnaPadc                 C   s   t tjdtjdtjgg d}|jdd}t tjddddg|j}t|| |jdd}t ddddtjg|j}t|| d S )Nr9   r;   r   r0   r   r   )r
   rD   rE   r    rB   r$   r%   )r&   rW   r(   r)   r+   r+   r,   test_fillna_bug  s   zTestFillnaPad.test_fillna_bugc                 C   @   t g dtdddd}tj|jd< t| |jdd d S )	Nr7   r=   r>   r?   rA   r   r0   r   )	r
   r   rD   rE   r#   r$   r%   r0   r    r&   rF   r+   r+   r,   
test_ffill  
   zTestFillnaPad.test_ffillc                 C   s2   t tdddtjddg}| }t|| d S )Ni  r   r   )r
   r   pytzr   r0   r$   r%   )r&   r'   rN   r+   r+   r,   ,test_ffill_mixed_dtypes_without_missing_data  s   z:TestFillnaPad.test_ffill_mixed_dtypes_without_missing_datac                 C   r   )	Nr7   r=   r>   r?   rA   r   r   r   )	r
   r   rD   rE   r#   r$   r%   r   r    r   r+   r+   r,   
test_bfill  r   zTestFillnaPad.test_bfillc                 C   s   t tjdtjdtjgg dtd}|jddd}|d u sJ t tjddddgg dtd}t|dd  |dd   t|jd	 sMJ t|jd	 d S )
Nr9   r;   r   r   r   Tr   r   r   r   )	r
   rD   rE   r   r    r$   r%   isnanr#   )r&   r   r   r)   r+   r+   r,   test_pad_nan  s   (zTestFillnaPad.test_pad_nanc                 C   s   t d}tt jdd|d}|d d |}|jddd}|d d |jdd}t j|dd < t	
|| |d	d  |}|jd
dd}|d	d  |jdd}t j|d d< t	
|| d S )N
   r   rA   r   r>   r   rT   r   r   rC   r   rD   rm   r
   r   r   Zstandard_normalZreindexr    rE   r$   r%   r&   rB   r   rN   r)   r+   r+   r,   test_series_fillna_limit  s   
z&TestFillnaPad.test_series_fillna_limitc                 C   s   t d}tt jdd|d}|d d j|ddd}|d d |jdd}t j|dd < t	
|| |d	d  j|d
dd}|d	d  |jd
d}t j|d d< t	
|| d S )Nr   r   rA   r   r>   r   r   r   r   rC   r   r   r   r+   r+   r,   test_series_pad_backfill_limit  s   
z,TestFillnaPad.test_series_pad_backfill_limitc                 C   sN   t tjdddd}|jddd}|d u sJ t|jddd| d S )	Nr   r   r   r   r0   Tr   F)r
   rD   r   r   r   r    r$   r%   )r&   rW   r   r+   r+   r,   test_fillna_int  s   zTestFillnaPad.test_fillna_intc                 C   s   t tttdddddddtjdg}| }t tdddddddtjdtdddddddtjdtdddddddtjdg}t|| d S )Ni              i r   )r
   r   r   r   r   r   r$   r%   )r&   r   r(   r)   r+   r+   r,   $test_datetime64tz_fillna_round_issue  s   z2TestFillnaPad.test_datetime64tz_fillna_round_issuec                 C   sz   t tjtdd ddd}t|d}t|d< ttdtdtdtd	td
gdd}t|}| }t	
|| d S )Nr   )nanosecondsr>   ns)r@   r   r   z2262-04-11 23:47:16.854775797z2262-04-11 23:47:16.854775798z2262-04-11 23:47:16.854775800z2262-04-11 23:47:16.854775801r   )r   r   maxr   r
   Z	to_periodr   r   r0   r$   r%   )r&   r   rW   ro   r)   r(   r+   r+   r,   test_fillna_parr  s"   
zTestFillnaPad.test_fillna_parrfuncr   rC   c                 C   sH   t g d}tt t||  W d    d S 1 sw   Y  d S )N)r   r   r   )r
   r$   rd   re   getattr)r&   r   rW   r+   r+   r,   test_pad_backfill_deprecated5  s   "z*TestFillnaPad.test_pad_backfill_deprecatedN)r   r   r   r   r   r   r   r   r   r   r   r   r   r1   r   r   r  r+   r+   r+   r,   r     s    
r   z#data, expected_data, method, kwargsr      r;   g      @r0   
limit_areaZinsider   )r  rT   Zoutsider>   r   c                 C   s4   t | }t |}t||di |}t|| d S )Nr+   )r
   r   r$   r%   )r   r   r   kwargsr   r)   rN   r+   r+   r,   test_ffill_bfill_limit_area=  s   Cr  ) r   r   r   numpyrD   r1   r   Zpandasr   r   r   r   r	   r
   r   r   r   r   r   Zpandas._testingZ_testingr$   Zpandas.core.arraysr   r   filterwarningsr   r   r   rE   ranger  r+   r+   r+   r,   <module>   s    4        "" "" "" "" A