
    Owgl                        d dl Zd dlZd dlmZ d dlmc mZ d dl	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  G d d      Zd Zd Zej8                  j;                  d	d
dg      d        Zej8                  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        Z!y)    N)using_pyarrow_string_dtype)
Categorical	DataFrameDatetimeIndexNaTPeriodIndexSeriesTimedeltaIndex	Timestamp
date_rangeto_datetime)_check_mixed_floatc                   H   e Zd Zd Zej
                  d        Zd Zej                  j                   e       d      d        Zd Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zej                  j3                  dg dddgg      d        Zd Zej                  j3                  dddej:                  dg      d        Zd Zd Z d Z!d  Z"d! Z#d" Z$ej                  j3                  d#e%e&g      d$        Z'ej                  j3                  d#e%e&g      d%        Z(d& Z)d' Z*d( Z+d) Z,d* Z-d+ Z.d, Z/ej                  j                   e       d      d-        Z0d. Z1d/ Z2d0 Z3d1 Z4ejj                  ej                  j3                  dd2d2d2d3g      d4               Z6d5 Z7d6 Z8y7)8
TestFillNAc                    t        t        j                  gdz  t        t	        d      t        gt        j                  ddgd      }g d|_        |d d  }t        j                  |      5  |j                  ddid	       d d d        t        d
gdz  dt	        d      dgg dd      }g d|_        t        j                  ||       |s:t        j                  |j                  d d df   |j                  d d df         sJ t        j                  |j                  d d df   |j                  d d df         rJ |s;t        j                  |j                  d d df   |j                  d d df         sJ y y # 1 sw Y   xY w)N      foo   ABC)r   r   r   r   Tinplace       @)r   r   r   r   )r   npnanr   r   columnstmassert_cow_warningfillnaassert_frame_equalshares_memoryiloc)selfusing_copy_on_writewarn_copy_on_writedforigexpecteds         ]/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/frame/methods/test_fillna.py*test_fillna_dict_inplace_nonunique_columnsz5TestFillNA.test_fillna_dict_inplace_nonunique_columns   s]    66(Q,c9Q<%=RVVUTUDVW
 %
!u ""#56 	.IIsAhI-	. %!)1ilA"6]K
 +
b(+ ###BGGAqDM499QT?CCC##BGGAqDM499QT?CCC"##BGGAqDM499QT?CCC #	. 	.s   *E<<Fc                    t        j                  dt         j                        }t        |d      }|r_t	        j
                         5  |d   j                  dd       d d d        t        j                  |d d df         j                         sXJ t	        j                  t        d	      5  |d   j                  dd       d d d        |d d df   dk(  j                         sJ t        |j                  j                        d
k(  sJ t        j                  |j                  |      sJ y # 1 sw Y   xY w# 1 sw Y   xxY w)N)(   2   F)copyr   Tr   zinplace methodmatchr   )r   fullr   r   r    raises_chained_assignment_errorr"   isnanallassert_produces_warningFutureWarninglen_mgrarraysr$   values)r&   r'   arrr)   s       r,   test_fillna_on_column_viewz%TestFillNA.test_fillna_on_column_view4   s    ggh's'335 /1R./88C1I&**,,,++MAQR /1R./1IO((*** 277>>"a'''		3//// // /s   D0.D<0D9<Ec                    |}t         j                  |j                  |j                  d d df<   t         j                  |j                  |j                  dd  df<   |j	                  d      }|j                  |j                  d d df   dk(  j                         sJ d}t        j                  t        |      5  |j	                  d      }d d d        t        j                  j                  |j                  d d df         j                         sJ |j                  |j                  dd  df   |j                  |j                  d   df   k(  j                         sJ d	}t        j                  t        |      5  |j	                          d d d        d
}t        j                  t        |      5  |j	                  dd       d d d        y # 1 sw Y   xY w# 1 sw Y   PxY w# 1 sw Y   y xY w)N   r   r   ,DataFrame.fillna with 'method' is deprecatedr3   padmethodz'Must specify a fill 'value' or 'method'z(Cannot specify both 'value' and 'method'ffill)r   r   locindexr"   r8   r    r9   r:   r7   pytestraises
ValueError)r&   datetime_frametfzero_filledmsgpaddeds         r,   test_fillna_datetimezTestFillNA.test_fillna_datetimeG   s   $&FFrxx|S !%'VVrxx}c!"$++A. 1 1"1 5s :;q@EEGGG<''SA 	9#**%*8F	9xx

6<<#3S#89:>>@@@JJv||BC(#-.&**V\\"=Ms=R2SS
#% 	  8]]:S1 	$!!#	$8]]:S1 	5!!!G!4	5 	5	9 	9	$ 	$	5 	5s$   :G G 6G,G G),G5zcan't fill 0 in string)reasonc                 d   |}t         j                  |j                  |j                  dd df<   t         j                  |j                  |j                  dd  df<   |j	                  d       d}t        j                  t        |	      5  |j	                  d
       d d d        y # 1 sw Y   y xY w)NrB      r   r   r   valuerD   r3   rE   rF   )r   r   rI   rJ   r"   r    r9   r:   )r&   float_string_framemfrQ   s       r,   test_fillna_mixed_typez!TestFillNA.test_fillna_mixed_type^   s    (*rxx"~u$%&(ffrxx~s"#
			<''SA 	$IIUI#	$ 	$ 	$s   
B&&B/c                 l   |j                  g d      }t        j                  |j                  |j                  dd  df<   |j                  d      }t        |dd i       d	}t        j                  t        |
      5  |j                  d      }d d d        t        |dd i       y # 1 sw Y   xY w)N)r   r   Dr   rW   r   r   rX   r   dtyperD   r3   rE   rF   )
reindexr   r   rI   rJ   r"   r   r    r9   r:   )r&   mixed_float_framer[   resultrQ   s        r,   test_fillna_mixed_floatz"TestFillNA.test_fillna_mixed_floati   s    &&&?&(ffrxx~s"##6#t5<''SA 	-YYeY,F	-6#t5	- 	-s   ?B**B3c                 0   |rt        j                  d       t        dg      }dD ]a  }d}t        j                  t
        |      5  |j                  j                  |d       |j                  j                  |	       d d d        c y # 1 sw Y   nxY w)
Nz9condition is unnecessary complex and is deprecated anywayxr_   )rE   backfillz)Series.fillna with 'method' is deprecatedr3   TrG   r   rF   )rK   skipr   r    r9   r:   rg   r"   )r&   r'   r)   mrQ   s        r,   test_fillna_emptyzTestFillNA.test_fillna_emptyu   s    KKSTu%$ 	&A=C++ME &1d31%& &	&& &s   :BB	c                    t        ddt        j                  dgddt        j                  dgddt        j                  dgg      }|r8t        j                  t
        d      5  |j                  ddi      }d d d        n|j                  ddi      }t        g dg d	g d
g      }t        j                  |       |r:t        j                  t
        d      5  |j                  ddid      }d d d        n|j                  ddid      }t        j                  ||       J y # 1 sw Y   xY w# 1 sw Y   0xY w)NabcDowncastingr3   r   r   )rn   rn   r   rn   )ro   ro   r   ro   )rp   rp   r   rp   Tr   r   r   r   r    r9   r:   r"   r#   )r&   using_infer_stringr)   rd   r+   return_values         r,   test_fillna_different_dtypez&TestFillNA.test_fillna_different_dtype   s7   3$sC&=S"&&RU?VW
 ++MO /Au:./ / YY5z*F#%;=ST
 	fh/++MO C!yy!UTyBC C 99aZ9>L
b(+###/ /C Cs   "D(D4(D14D=c                    t        t        j                  j                  d      j	                  d            }t        j
                  |j                  dddf<   t        j
                  |j                  dddf<   |j                         }d|j                  d<   d|j                  d	<   |j                  dd
      }t        j                  ||       y )Nr   )
   r      r   r   rB   i  )r   r   )r   r   r   limit)r   r   randomdefault_rngstandard_normalr   r%   r1   r"   r    r#   r&   r)   r+   rd   s       r,   test_fillna_limit_and_valuez&TestFillNA.test_fillna_limit_and_value   s    ryy,,Q/??HI&&!Q&&!Q779!d!d3a(
fh/    c                 <   t        t        t        d      gt        d      t        gd      }|j                         }|d   j	                  |j
                  |j                  d   df         |d<   |j	                  d|d   i      }t        j                  ||       y )Nz2014-1-1z2013-1-1)DateDate2r   r   r   rX   )	r   r   r   r1   r"   rI   rJ   r    r#   r~   s       r,   test_fillna_datelikezTestFillNA.test_fillna_datelike   s     i
34#J/5
 779#F+22266"((1+w:N3OP&"W+!67
fh/r   c                 `   t        dt        d      t        gi      }t        dt        d      t        d      gi      }d}t        j                  t
        |      5  |j                  d      }d d d        t        j                  |       t        dt        t        d      gi      }t        dt        d      t        d      gi      }d}t        j                  t
        |      5  |j                  d      }d d d        t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   ,xY w)Nr   z2012-11-11 00:00:00+01:00rD   r3   rE   rF   bfill)r   r   r   r    r9   r:   r"   r#   )r&   r)   exprQ   ress        r,   test_fillna_tzawarezTestFillNA.test_fillna_tzaware   s"    i(CDcJKL9:9:
 =''SA 	*))5))C	*
c3'c9-H#IJKL9:9:
 =''SA 	,))7)+C	,
c3'!	* 	*	, 	,s   D&D$D!$D-c                 d   t        t        ddd      ddt        j                  t        j                  gd      }d}t	        j
                  t        |	      5  |j                  d
      }d d d        t        t        ddd      g dd      }t	        j                  |       y # 1 sw Y   <xY w)N20130101   z
US/Eastern)periodstzr   r   r   r   rD   r3   rE   rF   )      ?r   r   r   )	r   r   r   r   r    r9   r:   r"   r#   r&   r)   rQ   rd   r+   s        r,   $test_fillna_tzaware_different_columnz/TestFillNA.test_fillna_tzaware_different_column   s     
A,GBFFBFF+
 =''SA 	-YYeY,F	-
A,G)
 	fh/	- 	-s   B&&B/c                    t        dddt        j                  gg d      }ddt        j                  dg}t        ||d	      }t        g d
g d      }g d}t        ||d	      }t        g dg d      }ddt        j                  g}t        ||d	      }	t        ddgg d      }
ddg}t        |
|d	      }|j	                  ddd	      }t        j                  ||       d}t        j                  t        |      5  |j	                  ddd	       d d d        d}t        j                  t        |      5  |j	                  d      }d d d        t        j                  ||       |j                  dg      }t        j                  ||	       |j                         }t        j                  ||       t        t        j                  dt        j                  gddg      }t        |g dd	      }t        g dddg      }t        |g dd	      }|j	                  d      }t        j                  ||       y # 1 sw Y   .xY w# 1 sw Y   xY w)Nr   r   r   r   r   r   )
categoriesrn   ro   dcatsvals)r   r   r   r   )rn   ro   ro   r   rX   z3Cannot setitem on a Categorical with a new categoryr3   r   rp   rD   rE   rF   r   )subset)rn   ro   rn   )r   r   r   r   r"   r    r#   rK   rL   	TypeErrorr9   r:   dropna)r&   catr   r)   cat2vals2df_exp_fillcat3vals3df_exp_drop_catscat4vals4df_exp_drop_allr   rQ   rp   cat_expdf_exps                     r,   test_na_actions_categoricalz&TestFillNA.test_na_actions_categorical   s
   1aBFF+	BS"&&#&T23<I>$u =>9;c266"$dE%BCAq6i8c
#T5$AB iiq#6i7
c;/C]]9C0 	6IIQ4I5	6 =''SA 	*))5))C	*
c;/ iixi(
c#34iik
c?3 bff-3*E956o3*EGY?@iin
c6*/	6 	6	* 	*s   I?IIIc                 $   t        t        j                  dt        j                  g      }t        t        j                  t        j                  t        j                  g      }t        ||d      }t	        dt        j                  d      }|j                  |      }t        j                  t        j                  t        j                  g}t        g d|dd      }t        j                  ||       |j                  j                  t        j                        }t        j                  ||j                         |j                  j                  t        j                        }t        j                  ||j                         t        dddt        t        g      }	t        d	t        |	      i      }t        j                  |j                  t        
      |       t        dddt        t        gd      }	t        d	t        |	      i      }t        j                  |j                  t        
      |       t        dddt        t        g      }	t        d	t        |	      i      }t        j                  |j                  t        
      |       y )Nr   r   r   )r   r   r   categoryr`   z2011-01-01 09:00z2016-01-01 23:45rn   rX   z2011-01M)freqz1 daysz2 days)r   r   r   r   r	   r"   r    r#   r   assert_series_equalr   r   r   r   r
   )
r&   r   valr)   medianr   v_expr   rd   idxs
             r,   test_fillna_categorical_nanz&TestFillNA.test_fillna_categorical_nan  s    2661bff-.26626626623S12 bff56ii(Iu=ZP
c6*'
vrww/'
vrww/!35GcR
 [-./
biici2B79iCECP[-./
biici2B7h(CEF[-./
biici2B7r   c                     t        ddt        j                  gi      }d}t        j                  t
        |      5  |j                  dd      }d d d        t        dddgi      }t        j                  |       t        ddt        j                  gi      }t        j                  t
        |      5  |j                  ddid      }d d d        t        dddgi      }t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   ;xY w)	Nrn   r   z.The 'downcast' keyword in fillna is deprecatedr3   r   inferdowncastr   rr   r   s        r,   test_fillna_downcastzTestFillNA.test_fillna_downcast6  s     c266]+,>''SA 	4YYq7Y3F	4cAq6]+
fh/ c266]+,''SA 	;YYQx'Y:F	;cAq6]+
fh/	4 	4	; 	;s   C84D8DDc                      |g dd      }d}t        j                  t        |      5  |j                  dd      }d d d        t        j                  |       y # 1 sw Y    xY w)	Nr   objectr`    The 'downcast' keyword in fillnar3    Fr   )r    r9   r:   r"   assert_equal)r&   frame_or_seriesobjrQ   rd   s        r,   test_fillna_downcast_falsez%TestFillNA.test_fillna_downcast_falseG  sX    ix80''SA 	4ZZUZ3F	4
$	4 	4s   AA&c                 X    |g dt         j                        }d}t        j                  t        |      5  |j                  dt        j                  t         j                              }d d d        |j                  t         j                        }t        j                  |       |j                  t         j                        }t        j                  t        |      5  |j                  dd      }d d d        |}t        j                  |       t        j                  t        |      5  |j                  dt        j                  t         j                              }	d d d        t        j                  	|       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   9xY w)Nr   r`   r   r3   r   r   r   )r   int64r    r9   r:   r"   ra   int32astyper   float64)
r&   r   r   rQ   r   r+   obj2res2	expected2res3s
             r,   test_fillna_downcast_noopz$TestFillNA.test_fillna_downcast_noopO  s7    irxx80''SA 	A**URXXbhh-?*@C	A ::bhh'
X&zz"**%''SA 	8;;uw;7D	8	
i(''SA 	C;;urxx/A;BD	C 	h'	A 	A	8 	8
	C 	Cs#   5F$F35F FF F)r   )r   r   r   r   c                    t        t        j                  ddg|      }t        j                  d       5  |j                  ddi      }d d d        |j                         }d|d<   t        j                  |       y # 1 sw Y   5xY w)Nr   r   rJ   r   r           )r   r   r   r    r9   r"   r1   r#   )r&   r   r)   rd   r+   s        r,   -test_fillna_dictlike_value_duplicate_colnamesz8TestFillNA.test_fillna_dictlike_value_duplicate_colnamesi  su     rvvaVW=''- 	)YYQx(F	) 779
fh/	) 	)s   A<<Bc                    t        g dg d      }|j                  }t        t        j                  d      gdz  g d      }t        j                  ||       d}t        j                  t        |      5  |j                  d	      }d d d        t        d	g dg d      }t        j                  ||       t        t        d
      ddgd      }|r6t        j                  t        d      5  |j                  d      }d d d        n|j                  d      }t        dt        d
      ddg      }t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   ExY w)Nr   )r   r   r   r   rB   r   r   rB   rJ   Downcasting object dtype arraysr3   r   r   r   r   r   )rJ   r   ra   rq   r   )r   dtypesr	   r   ra   r    r   r9   r:   r"   r#   range)r&   rs   r)   rd   r+   rQ   s         r,   test_fillna_dtype_conversionz'TestFillNA.test_fillna_dtype_conversiont  s"   _oF288H-.2/J
vx0/''SA 	"YYq\F	"QoO
fh/ U1XSzK++MO *5)* * YYu%FU%(S#JG
fh/	" 	"* *s   7E/EEE r   r   r   r   c                     t        dt        j                  gddgd      }|j                  t        j                  |      }|j	                  |      }t        j                  ||       y )Nr   r   r   r   )r   r   r   replacer"   r    r#   )r&   r   r)   r+   rd   s        r,   *test_fillna_dtype_conversion_equiv_replacez5TestFillNA.test_fillna_dtype_conversion_equiv_replace  sN    a[Sz:;::bffc*3
fh/r   c                 |   t        ddt        j                  gt        dd      g dg ddt        d	d      
      }|j	                  d      }t        g dt        dd      g dg ddt        d	d      
      }t        j                  ||       t        ddt        j                  gt        d      t        d      t        gg dg ddt        d	d      
      }|j	                  d      }t        g dt        d      t        d      dgg dg ddt        d	d      
      }t        j                  ||       y )Nr2   r   r   )r   )r   barN)foo2bar2Nr   r   r   r^   20130110r   ?)r2   r   r   )r   r   r   )r   r   r   z
2013-01-01z
2013-01-02)	r   r   r   r   r"   r    r#   r   r   r&   r)   rd   r+   s       r,   test_fillna_datetime_columnsz'TestFillNA.test_fillna_datetime_columns  s&   "bff%
A6)+	 Z3
 3"
A6(*	 Z3
 	fh/"bff%-y/FL)+	 Z3
 3"-y/FL(*	 Z3
 	fh/r   c                    t         j                  |j                  |j                  d d df<   t         j                  |j                  |j                  dd  df<   d}t	        j
                  t        |      5  |j                  d      }d d d        t	        j                  |j                                y # 1 sw Y   .xY w)NrB   r   rC   rD   r3   rH   rF   )
r   r   rI   rJ   r    r9   r:   r"   r#   rH   r&   rN   rQ   alts       r,   
test_ffillzTestFillNA.test_ffill  s    <>FF>//3S89=?VV>//4c9:<''SA 	8 ''w'7C	8
n224c:	8 	8   6B66B?c                    t         j                  |j                  |j                  d d df<   t         j                  |j                  |j                  dd  df<   d}t	        j
                  t        |      5  |j                  d      }d d d        t	        j                  |j                                y # 1 sw Y   .xY w)NrB   r   rC   rD   r3   r   rF   )
r   r   rI   rJ   r    r9   r:   r"   r#   r   r   s       r,   
test_bfillzTestFillNA.test_bfill  s    <>FF>//3S89=?VV>//4c9:<''SA 	8 ''w'7C	8 	n224c:	8 	8r   c                    t        j                  d      }t        t         j                  j	                  d      j                  d      |      }|d d j                  |dd      }d}t        j                  t        |	      5  |d d j                  |      j                  d
      }d d d        t         j                  j                  dd  t        j                  ||       |dd  j                  |dd      }t        j                  t        |	      5  |dd  j                  |      j                  d
      }d d d        t         j                  |j                  d d t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   IxY w)Nrw   r   rw   r   r   rE   rB   rG   rz   rD   r3   rF   r   rh   r   r   aranger   r{   r|   r}   rb   r    r9   r:   r"   r   r%   r#   r&   rJ   r)   rd   rQ   r+   s         r,   test_frame_pad_backfill_limitz(TestFillNA.test_frame_pad_backfill_limit  sM   		"ryy,,Q/??HPUVBQe1=<''SA 	B"1v~~e,3353AH	BVVbc
fh/BCzC''SA 	H"#wu-44J4GH	HFFbq
fh/	B 	B	H 	Hs   %E6%F6E?Fc                     t        j                  d      }t        t         j                  j	                  d      j                  d      |      }|d d j                  |      }d}t        j                  t        |      5  |j                  dd	      }d d d        t        j                  t        |      5  |d d j                  |      j                  d
      }d d d        t         j                  j                  dd  t        j                  ||       |dd  j                  |      }t        j                  t        |      5  |j                  dd	      }d d d        t        j                  t        |      5  |dd  j                  |      j                  d
      }d d d        t         j                  |j                  d d t        j                  ||       y # 1 sw Y   LxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   cxY w)Nrw   r   r   r   rD   r3   rE   rB   r   rF   r   r   rh   r   r   r   s         r,   test_frame_fillna_limitz"TestFillNA.test_frame_fillna_limit  s   		"ryy,,Q/??HPUVBQ&<''SA 	:]]%q]9F	: ''SA 	B"1v~~e,3353AH	BVVbc
fh/BC'''SA 	?]]*A]>F	? ''SA 	H"#wu-44J4GH	HFFbq
fh/	: 	:	B 	B	? 	?	H 	Hs0    G7%G+G8=%HG(+G58HHc                     t        t        j                  j                  d      j	                  d      j                  t                    }|j                  t        j                         y )Nr   r   )	r   r   r{   r|   r}   r   intr"   r   )r&   r)   s     r,   test_fillna_skip_certain_blocksz*TestFillNA.test_fillna_skip_certain_blocks  sF     ryy,,Q/??HOOPSTU 			"&&r   typec                    t        t        j                  j                  d      j	                  d            j                  |      }d}t        j                  t        |      5  |j                  dd       d d d        y # 1 sw Y   y xY w)Nr   r   zLimit must be greater than 0r3   r   rC   ry   
r   r   r{   r|   r}   r   rK   rL   rM   r"   r&   r   r)   rQ   s       r,   test_fillna_positive_limitz%TestFillNA.test_fillna_positive_limit  sj    ryy,,Q/??HIPPQUV,]]:S1 	#IIarI"	# 	# 	#   $BB
c                    t        t        j                  j                  d      j	                  d            j                  |      }d}t        j                  t        |      5  |j                  dd       d d d        y # 1 sw Y   y xY w)Nr   r   zLimit must be an integerr3   r   g      ?ry   r   r   s       r,   test_fillna_integer_limitz$TestFillNA.test_fillna_integer_limit  sj    ryy,,Q/??HIPPQUV(]]:S1 	$IIasI#	$ 	$ 	$r   c                 t   t        t        j                  j                  d      j	                  d            }t        j
                  |j                  d ddf<   t        j
                  |j                  dd df<   |j                  d      }||usJ |j                  dd	
       t        j                  ||       |j                  ddid	
      }|J t        j
                  |j                  d ddf<   t        j
                  |j                  dd df<   d}t        j                  t        |      5  |j                  d      }d d d        ||usJ t        j                  t        |      5  |j                  dd	       d d d        t        j                  ||       y # 1 sw Y   ]xY w# 1 sw Y   ,xY w)Nr   r   r   r   r   r   rX   TrY   r   rD   r3   rH   rF   ri   )r   r   r{   r|   r}   r   rI   r"   r    r#   r9   r:   )r&   r)   r+   rQ   s       r,   test_fillna_inplacezTestFillNA.test_fillna_inplace  ss   ryy,,Q/??HIrr1ursAv9919%r!!!
		4	(
b(+99Aq6498rr1ursAv<''SA 	1yyy0H	1r!!!''SA 	4IIWdI3	4
b(+	1 	1	4 	4s   3F"/F."F+.F7c           	      J   t        t        j                  ddt        j                  t        j                  gdddt        j                  t        j                  gt        j                  ddddgd      }|j                  ddd      }|j	                         }|d	   j                  d      |d	<   |d
   j                  d      |d
<   t        j                  ||       |j                  dddd      }|j                  |j                               }|j                  |j                         j                               }t        j                  ||       t        j                  t        d      5  |j                  |j                  d      d       d d d        y # 1 sw Y   y xY w)Nr   r   r   r   rn   ro   rp   r   rB   )rn   ro   rn   ro   rx   )rn   ro   r   zcolumn by columnr3   )axis)r   r   r   r"   r1   r    r#   maxto_dictrK   rL   NotImplementedErrorr   s       r,   test_fillna_dict_seriesz"TestFillNA.test_fillna_dict_series,  sL   ffaBFFBFF3Arvvrvv.ffaAq)
 +,779 ,,Q/ ,,Q/
fh/ 34 2668$99RVVX--/0
fh/ ]].6HI 	)IIbffQiaI(	) 	) 	)s   -#FF"c           	      t   t        t        j                  ddt        j                  t        j                  gdddt        j                  t        j                  gt        j                  ddddgdt        d            }t        t        j                  dd	d
dgg ddgdz  dt        d            }|j	                  |      }t        t        j                  ddt        j                  dgdddt        j                  dgt        j                  ddddgdt        d            }t        j                  ||       y )Nr   r   r   r   r  VWXYZr   rw   rV      r/   )r0   <   F   P   Z   r   rB   )rn   ro   r   VWXuZr  r   r   r   listr"   r    r#   )r&   r)   df2rd   r+   s        r,   test_fillna_dataframez TestFillNA.test_fillna_dataframeH  s	   ffaBFFBFF3Arvvrvv.ffaAq)
 w-
 ffb"b"-)w{
 w-
 3 ffaBFFB/Arvvr*ffaAq)
 w-
 	fh/r   c                    t         j                  j                  d      j                  d      }t         j                  |d d d d df<   t        |      }d}t        j                  t        |      5  |j                  dd      }d d d        t        j                  t        |      5  |j                  j                  d	      j                  }d d d        t        j                         |j                  d
dd       t        j                  t        |      5  |j                  dd      }d d d        t        j                  t        |      5  |j                  t              j                  dd      }d d d        t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   ExY w)Nr   )rw   rw   rD   r3   rH   r   )rG   r  rE   rF      r   rB   )r   r{   r|   r}   r   r   r    r9   r:   r"   Tr#   insertr   float)r&   r?   r)   rQ   rd   r+   s         r,   test_fillna_columnszTestFillNA.test_fillna_columnsk  sh   ii##A&66x@ffAssFs^<''SA 	7YYgAY6F	7''SA 	3tt{{%{022H	3
fh/
		!UA''SA 	7YYgAY6F	7''SA 	Gyy'..gA.FH	G
fh/	7 	7	3 	3
	7 	7	G 	Gs0   1F('F%F1'F=F"%F.1F:=Gc                     t        j                  t        d      5  |j                  d       d d d        y # 1 sw Y   y xY w)Nffilr3   rF   )rK   rL   rM   r"   )r&   float_frames     r,   test_fillna_invalid_methodz%TestFillNA.test_fillna_invalid_method~  s6    ]]:V4 	.f-	. 	. 	.s	   8Ac                    d}t        j                  t        |j                  d            5  |j	                  ddg       d d d        t        j                  t        |j                  d            5  |j	                  d       d d d        d}t        j                  t        |      5  |j
                  d d d	f   j	                  |       d d d        y # 1 sw Y   xY w# 1 sw Y   ^xY w# 1 sw Y   y xY w)
NzA"value" parameter must be a scalar or dict, but you passed a "{}"r  r3   r   r   tuple)r   r   zP"value" parameter must be a scalar, dict or Series, but you passed a "DataFrame"r   )rK   rL   r   formatr"   r%   )r&   r  rQ   s      r,   test_fillna_invalid_valuez$TestFillNA.test_fillna_invalid_value  s    Q]]9CJJv,>? 	'1v&	' ]]9CJJw,?@ 	'v&	'# 	 ]]9C0 	7QT"))+6	7 	7	' 	'	' 	'	7 	7s#   C3C"*#C.C"C+.C7c                    t        ddd      D cg c]  }dt        |      z    }}t        j                  j	                  d      j                  d      }t        t        d      ||      }d	}t        j                  t        |
      5  |j                  d      }d d d        |j                  j                         j                  j                         k(  sJ y c c}w # 1 sw Y   FxY w)NrB   r   r2   zCOL.r   )rV   rB   rV   )rJ   r   datarD   r3   rH   rF   )r   strr   r{   r|   r   r    r9   r:   r"   r   tolist)r&   icolsr$  r)   rQ   filleds          r,   test_fillna_col_reorderingz%TestFillNA.test_fillna_col_reordering  s    ).q!R9AQ99yy$$Q'..w7U2Y4@<''SA 	/YYgY.F	/zz  "fnn&;&;&==== :	/ 	/s   C	C!!C*c                    |}t         j                  |j                  |j                  dd df<   t         j                  |j                  |j                  dd  df<   |j	                  d      }|j                  |j                  dd df   dk(  j                         sJ |d= |j                  g       j	                  d       y )	NrB   rV   r   rW   r   r   rX   r_   )r   r   rI   rJ   r"   r8   rb   )r&   r  rZ   r[   r)  s        r,   test_fill_cornerzTestFillNA.test_fill_corner  s    (*rxx"~u$%&(ffrxx~s"##***3

6<<"-u45:??AAAu%B'..Q.7r   c                    t        ddt        j                  gi      }d}t        j                  t
        |      5  |j                  ddiddi      }d d d        t        dddgi      }t        j                  |       y # 1 sw Y   /xY w)Ncol1r   r   r3   r   r   r   rr   r   s        r,   test_fillna_downcast_dictz$TestFillNA.test_fillna_downcast_dict  s    BFF,-0''SA 	HYY{fg5FYGF	Hfq!f-.
fh/	H 	Hs   BB
c           	      V   t        t        j                  dt        j                  dgddt        j                  dgt        j                  t        j                  t        j                  dgt        j                  dt        j                  dggt        d            }|j	                  dd	d
      }|j	                  dd	d
      }t        t        g dd      ddt        j                  dgt        j                  d	t        j                  t        j                  gt        g dd      dg d      }t        t        g dd      t        g dd      d	d	t        j                  d	gt        g dd      dg d      }t        j                  ||       t        j                  ||       y )Nr   r   r   r   r   rB   ABCDr_   d   r  rY   rz   )r2  r   r2  r2  r   r`   )r   r   rB   r   r   )r   r   r   r   r   )r   r   r2  r   )r   r   r   r  r"   r	   r    r#   )r&   r)   rd   result2r+   r   s         r,   "test_fillna_with_columns_and_limitz-TestFillNA.test_fillna_with_columns_and_limit  sL   BFFA&Arvvq!+BFFA&	 L
 A6))#Q)7.i@BFFA&ffc2662662L	:	 
 .i@N)<3,L	:	 
	 	fh/
gy1r   c                     t        t        dd g      t        dd g      d      }|j                         }|j                  t        j
                  d       t        j                  ||       y )Nz
2018-05-30z
2018-09-30)date1date2Tr   )r   r   r1   r"   r   r   r    r#   r&   r)   r+   s      r,   test_fillna_datetime_inplacez'TestFillNA.test_fillna_datetime_inplace  s\    $lD%9:$lD%9:
 779
		"&&$	'
b(+r   c           	         t        t        j                  dt        j                  dgddt        j                  dgt        j                  t        j                  t        j                  dgt        j                  dt        j                  dggt        d            }|j	                  dd	d
      }||usJ |j	                  dd	dd       t        j                  ||       y )Nr   r   r   r   r   rB   r1  r_   r2  r3  T)r  rY   rz   r   r  r9  s      r,   0test_fillna_inplace_with_columns_limit_and_valuez;TestFillNA.test_fillna_inplace_with_columns_limit_and_value  s    BFFA&Arvvq!+BFFA&	 L
 99!3a98r!!!
		q1d	;
b(+r   r2   rg   yc                    t        t        j                  dgt        j                  dgd      }|j                         }|d d  }t	        j
                  |      5  |j                  |d       d d d        t        ddgddgd      }t	        j                  ||       |rt	        j                  ||       y t	        j                  ||       y # 1 sw Y   axY w)Nr   r=  Tr   r2   r         )r   r   r   r1   r    r!   r"   r#   )r&   r   r'   r(   r)   df_origresult_viewr+   s           r,   test_inplace_dict_update_viewz(TestFillNA.test_inplace_dict_update_view  s     bffa[{;<'')e""#56 	)IIc4I(	)B9D!9=>
b(+!!+w7!!+x8	) 	)s   CCc           
         t        ddt        j                  dt        j                  gdt        j                  t        j                  ddgdt        j                  dddgt        j                  ddt        j                  d	gd
      }|j                  ddd      }t        g dddt        j                  dgdt        j                  ddgg dg dgg d
      }t	        j
                  ||       y )NrB   r   rw   rx   r      r   r      )r.  col2col3col4r0   )rz   r  )      @      @g      (@      I@r   rL  r   )g      $@rJ  r   rL  )rL        @r   g      2@r_   )r   r   r   r"   r    r#   r   s       r,   )test_single_block_df_with_horizontal_axisz4TestFillNA.test_single_block_df_with_horizontal_axis  s    Arvvr2662BFFBFFAq1RVVQ1-Arvvr2	
 2QQ/&dBFFC(rvvsC(&& 5	
 	fh/r   c                    t        t        j                  ddgddt        j                  gddt        j                  gd      }t        g dg dddt        j                  gd      }t        j                  |j                  ddi      |       t        j                  |j                  dd	d
      |       t        g dg dddt        j                  gd      }t        j                  |j                  d	dd      |       y )Nr   rM  r   ))rg   rn   rg   ro   )r>  rp   )r@  r   rM  )r   r   r@  rg   r2   r   )rg   rP  )r   r   g       )rP  rg   )r   r   r   r    r#   r"   )r&   pdfr+   s      r,   "test_fillna_with_multi_index_framez-TestFillNA.test_fillna_with_multi_index_frame  s    VVS#. #rvv. #rvv.
 ,, #rvv.
 	cjj#r3X>
cjjrr)BCXN,, #rvv.
 	cjjbr)BCXNr   N)9__name__
__module____qualname__r-   td&skip_array_manager_not_yet_implementedr@   rS   rK   markxfailr   r\   re   rl   ru   r   r   r   r   r   r   r   r   r   parametrizer   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r  r  r  r  r  r"  r*  r,  r/  r5  r:  r<  skip_array_manager_invalid_testrC  rN  rR   r   r,   r   r      s   D6 ..0 /0$5. [[13<TU$ V$
6	&$0
00(>0(*+X"8H0"%(4 [[Y3*(EF0 G00. [[URBFFC$890 :0*0X;;0&0. [[Vc5\2# 3# [[Vc5\2$ 3$,2)8!0F0&.7 > [[13<TU	8 V	80"2H
,,$ ''[[URr);$<=9 > (9 0.Or   r   c                      t        g dg dg dgg d      } | j                  dd      }|j                  d	      }|j                         j	                         j	                         d	k(  sJ y )
N)r   r   r   r   )r   r   r   r   )r   r   r   rM  )i1i2i3f1r_   r^  r_  r   r   )r   pivotr"   isnasum)r)   df_nonconsolrd   s      r,   !test_fillna_nonconsolidated_framerf  9  si    		

 )
B 88$85L  #F;;=""$)))r   c                     t        d d gd d ggddg      } d}t        j                  t        |      5  | j	                  dddd	
       d d d        t        ddgddggddg      }t        j
                  | |       y # 1 sw Y   5xY w)Nr   r   r_   r   r3   r   r   r   Tr   )r   r    r9   r:   r"   r#   )r)   rQ   r+   s      r,   test_fillna_nones_inplacerh  H  s    	
d|$c

B ,C		#	#M	= 8
		aa($	78 1a&1a&)C:>H"h'	8 8s   A>>BfuncrE   rh   c                     t        dg di      }t        j                  t              5   t	        ||               d d d        y # 1 sw Y   y xY w)Nrn   r   )r   r    r9   r:   getattr)ri  r)   s     r,   test_pad_backfill_deprecatedrl  V  sE     
C#	$B		#	#M	2 D  s   AAz#data, expected_data, method, kwargsr   rx   rM  rK  rH   
limit_areainsider   )rm  rz   outsiderB   r   c                     t        |       }t        |      } t        ||      di |}t        j                  ||       y )Nr\  )r   rk  r    r#   )r$  expected_datarG   kwargsr)   r+   rd   s          r,   test_ffill_bfill_limit_arears  ^  s>    F 
4B'H WR *6*F&(+r   )"numpyr   rK   pandas._configr   pandas.util._test_decoratorsutil_test_decoratorsrV  pandasr   r   r   r   r   r	   r
   r   r   r   pandas._testing_testingr    pandas.tests.frame.commonr   r   rf  rh  rX  rZ  rl  r   r   rs  r\  r   r,   <module>r}     s     5 ) )    8^O ^OB*( %!45 6 ) VVRVVQ266266JVVRVVS#sCbffbffE8$		
 VVRVVQ266266JVVRVVS#rvvrvvsBFFBFFK#a0		
 VVRVVQ266266JVVRVVS"&&"&&"&&#sCH9%		
 VVRVVQ266266JVVRVVS"&&"&&"&&#sBFFK$q1		
 VVRVVRVVRVVRVVRVVRVVDVVRVVRVVRVVRVVRVVRVVD$q1		
 !H!H$q1		
 VVRVVQ266266JVVRVVS#sCbffbffE8$		
 VVRVVQ266266JVVRVVS"&&"&&#sBFFBFFK#a0		
 VVRVVQ266266J#sBFFBFFBFFCH9%		
 VVRVVQ266266JVVS#rvvrvvrvvsBFFBFFK$q1		
o=@B,C@B,r   