
    m*i#                        S SK Jr  S SKJr  S SKrS SKrS SKrS SKrS SKJ	r	J
r
JrJrJr  S SKJr  \R"                  SS j5       r\R"                  SS j5       r " S S5      r " S	 S
5      rg)    )annotations)datetimeN)	DataFrameIndexSeries	Timestamp
date_rangec                 B    [        [        S5      5      [        S5      S.$ )N   ab..ab)listrange     g/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/pandas/tests/frame/methods/test_replace.pymix_abr      s    eAhd6l33r   c                 h    [        [        S5      5      [        S5      SS[        R                  S/S.$ )Nr   r   r   r   dr   r   c)r   r   npnanr   r   r   mix_abcr      s(    eAhd6l#sBFFC9PQQr   c                     \ rS rSrS r\R                  R                  SSS/\R                  S/SS\R                  \R                  /S/S	-  S
/-   / SQS.4SS/SS// SQ/ SQ/ SQS.4SS/SS// SQ/ SQ/ SQS.4/5      \R                  R                  SSS/5      \R                  R                  SSS/5      S 5       5       5       r
S rS rS rS rS rS  rS! rS" rS# rS$ rS% r\R                  R                  S&\R                  S'S(.S'\R                  S)./5      S* 5       r\R                  R                  S+/ S,Q5      S- 5       r\R                  R                  S.S/S0/S1S2S3.S4S5/4/ S6QS7\R2                  0S2\R2                  \R2                  /4/5      S8 5       rS9 rS: rS; rS< rS= rS> r S? r!S@ r"SA r#SB r$SC r%\R                  R                  SD/ SEQ5      SF 5       r&SG r'SH r(SI r)SJ r*SK r+SL r,SM r-\R                  R                  SN\." SO/ SPQ05      SQSR\." SO/ SSQ05      4\." SO/ SPQ0\R^                  ST9SQSR\." SO/ SSQ0\R^                  ST94\." SO/ SPQ0\R`                  ST9SQSR\." SO/ SSQ0\R`                  ST94\." SU/ SVQ05      SS\." SU/ SWQ05      4\." SX/ SYQ05      SZSR\." SX/ S[Q05      4\." S\\1" \2" S]S^S_5      \2" S]S`S_5      \2" S]S^S_5      /5      05      \2" S]S^S_5      \2" S]S`S_5      \." S\\1" \2" S]S`S_5      /S	-  5      05      4\." \2" SaSbSc5      /Sd/Se.5      SdSf\." \2" SaSbSc5      /Sf/Se.5      4\." Sg\2" ShSiSQ5      /05      \2" ShSiSQ5      \2" SjSiSQ5      \." Sg\2" SjSiSQ5      /05      4\." \3" SkS	SlSm9SR\R                  Sn/So.5      \4" SpSlSq9\4" SrSlSq9\." \Rj                  " \4" SkSlSq9\4" SrSlSq9\4" SsSlSq9/5      Rm                  St5      SR\R                  Sn/So.5      4\." SQSu/SnSv//5      SuS^\." S^Sw/SnSv//5      4\." SQSu/SnSv//5      SQS^\." S^Sw/SnSv//5      4\." SQSu/SnSv//5      SuSw\." S^Sw/SnSv//5      4\." SQSu/SnSv//5      SQSw\." S^Sw/SnSv//5      4/5      Sx 5       r7Sy r8Sz r9S{ r:S| r;S} r<S~ r=S r>S r?S r@S rAS rBS rCS rDS rES rFS rGS rHS rIS rJS rK\R                  R                  SSRS/ SQS^\R                  S`// SQS.4\R                  S/ SQ/ SQ/ SQS.4S2S/ SQS^\R                  S`// SQS.4SRSn/S/ SQS^\R                  S`// SQS.4SQSn/S/ SQS^\R                  S`// SQS.4SS/ SQS^\R                  S`// SQS.4SS1/S/ SQS^\R                  S`// SQS.4/5      S 5       rL\R                  R                  SSQSQS3.S	S	/SnSn//4SQSnS3.S	SQ/SnS	//4/5      S 5       rM\R                  R                  S/ SPQ/ SQS.S^SS`S./ SPQ/ SQS.4/ SPQ/ SQS.SSSS./ SPQ/ SQS.4/5      S 5       rN\R                  R                  S\4" S5      \R                  " SQ5      \R`                  " SQ5      \R                  " SQ5      \R                  " SQ5      /5      S 5       rRS rSS rT\R                  R                  SD/ SQ5      \R                  R                  S\R                  \R2                  /5      S 5       5       rU\R                  R                  S\R                  S^/5      S 5       rV\R                  R                  S\R                  " S5      \R                  " SRS^5      /5      S 5       rYS rZS r[S r\S r]S r^S r_\R                  R                  SSQ/Su/SR/SR/4SQ/SQ/SR/SR/4Su/Su/SR/S/4Su/SQ/SR/S/4/5      \R                  R                  S\`\a\R                  /5      S 5       5       rc\R                  R                  SSn\R                  Sv/5      S 5       rdS reSrfg)TestDataFrameReplace   c                   [         R                  UR                  UR                  S S S4'   [         R                  UR                  UR                  SS  S4'   UR	                  5       nUR                  [         R                  SSS9nUb   e[        R                  " X1R                  S5      5        Un[         R                  UR                  SS2UR                  R                  S5      4'   [         R                  UR                  S	S 2UR                  R                  S5      4'   UR                  [         R                  S5      nUR	                  5       nUS   R                  [        5      US'   UR                  SS
9n[        R                  " Xg5        UR	                  5       nUR                  [         R                  /S/SS9nUb   e[        R                  " X1R                  S5      5        g )N   Ar   Tinplace   foovalue)r   r   locindexcopyreplacetmassert_frame_equalfillnailoccolumnsget_locastypeobject)selfdatetime_framefloat_string_frametsframereturn_valuemfresultexpecteds           r   test_replace_inplace)TestDataFrameReplace.test_replace_inplace   s   <>FF>//3S89=?VV>//4c9: %%'rvvq$?###
g'<'<Q'?@  3566"bjj((//013bjj((--.#++BFFA6%**,"5/008???+
f/ %%'x!dC###
g'<'<Q'?@r   zto_replace,values,expected\s*\.\s*ze|f|gcrapr   r      hrD   rB   lor   
\s*(\.)\s*z(e|f|g)\1\1\1_crapr   r   ..rL   )e_crapf_crapg_craprD   )rD   rM   rF   rG   erB   fgrD   r%   TFuse_value_regex_argsc                   [        [        S5      [        S5      [        S5      S.5      nU(       a  UR                  X!US9nOUR                  XSUS9nU(       a  Ub   eUn[        U5      n[        R                  " Xs5        g )Nr   efghhelor   )r*   regexr%   TrX   r%   )r   r   r.   r/   r0   )r7   
to_replacevaluesr>   r%   rT   dfr=   s           r   test_regex_replace_list_obj0TestDataFrameReplace.test_regex_replace_list_obj8   su    T T&\V4<PQZZfZPFZZ
$ZPF>!>FX&
f/r   c                   [        U5      nSS/n[        R                  S/n[        [	        S5      5      [        S5      [        S5      S.n[        U5      nUR                  X4SS	9n[        US   SS
[        R                  [        R                  // SQS.5      n[        R                  " Xx5        SS/nSS/nUR                  X4SS	9n[        US   / SQS.5      n[        R                  " Xx5        / SQn/ SQnUR                  X4SS	9n[        US   / SQS.5      n[        R                  " Xx5        / SQn/ SQnUR                  X4S9n[        US   / SQS.5      n[        R                  " Xx5        g )NrA   r   rB   r   r   halor   TrX   r   rE   rH   (a|b)rI   rJ   a_crapb_craprL   rL   r   rH   r   z(b)rI   rB   rJ   rB   re   rL   rL   rX   r*   )r   r   r   r   r   r.   r/   r0   )	r7   r   dfmixto_replace_resr[   mix2dfmix2resexpecs	            r   test_regex_replace_list_mixed2TestDataFrameReplace.test_regex_replace_list_mixedp   s`   &! &t,&&&!%(^$v,T&\J4nn^4n@#Yc2662662,
 	c) (2:&mmN$m?s2RST
c) 7/mmN$m?s2PQR
c)6/mm.m?s2PQR
c)r   c                (   [        U5      nSS/n[        R                  S/nUR                  5       nUR	                  X4SSS9nUb   e[        US   SS[        R                  [        R                  /S.5      n[
        R                  " XW5        SS	/nS
S/nUR                  5       nUR	                  X4SSS9nUb   e[        US   / SQS.5      n[
        R                  " XW5        / SQn/ SQnUR                  5       nUR	                  X4SSS9nUb   e[        US   / SQS.5      n[
        R                  " XW5        / SQn/ SQnUR                  5       nUR	                  X4SS9nUb   e[        US   / SQS.5      n[
        R                  " XW5        g )NrA   r   rB   Tr%   rX   r   r   rH   rb   rI   rJ   rc   rf   rg   rh   rX   r*   r%   )r   r   r   r-   r.   r/   r0   )r7   r   rj   rk   r[   rn   r;   ro   s           r   %test_regex_replace_list_mixed_inplace:TestDataFrameReplace.test_regex_replace_list_mixed_inplace   s   &! &t,&&&!jjl{{>4t{T###s632OPQ
c) (2:&jjl{{>4t{T###s2RST
c) 7/jjl{{>4t{T###s2PQR
c)6/jjl{{t{T###s2PQR
c)r   c                F   [        U5      nUR                  SS0S[        R                  0SS9nUR	                  5       nUR                  SS0S[        R                  0SSS9nUb   e[        US   SS[        R                  [        R                  /US   S.5      n[
        R                  " X65        [
        R                  " XF5        UR                  SS	0SS
0SS9nUR	                  5       nUR                  SS	0SS
0SSS9nUb   e[        US   / SQUS   S.5      n[
        R                  " X65        [
        R                  " XF5        UR                  SS	0SS
0S9nUR	                  5       nUR                  SS	0SS
0SS9nUb   e[        US   / SQUS   S.5      n[
        R                  " X65        [
        R                  " XF5        [        US   [        R                  SSS/US   S.5      nUR                  SS[        R                  0SS9nUR	                  5       nUR                  SS[        R                  0SSS9nUb   e[
        R                  " X65        [
        R                  " XF5        UR                  SS[        R                  0SS9nUR	                  5       nUR                  SS[        R                  0SS9nUb   e[        US   [        R                  SSS/US   S.5      n[
        R                  " X65        [
        R                  " XF5        g )Nr   rA   Tra   rs   r   r   r   rH   z\1ty)r   r   .tyrx   ri   rt   .rY   r   r.   r   r   r-   r/   r0   )r7   r   rj   rn   res2r;   ro   s          r   test_regex_replace_dict_mixed2TestDataFrameReplace.test_regex_replace_dict_mixed   s   '" mmS+.bffTmJzz|||+bfft4 $ 
 ####,c3%?gclS
 	c)
d* mmS-03.mMzz|||- 3.$d $ 
 ####,%=GCLQ
 	c)
d*mm3"6sGnmMzz|||&sGnd $ 
 ####,%=GCLQ
 	c)
d* #,bffc3%<73<P
 mmC#rvvdm;zz|||C#rvvdD|Q###
c)
d*mmC#rvvdm;zz|||#c266]D|Q####,bffc3%<73<P
 	c)
d*r   c                   [        U5      nUR                  SS[        R                  00SS9nUR	                  5       nUR	                  5       nUR                  SS[        R                  00SSS9nUb   eUR                  SS[        R                  00S9nUR                  SS[        R                  00SS9nUb   e[        US   SS[        R                  [        R                  /US   S	.5      n[
        R                  " X85        [
        R                  " XH5        [
        R                  " Xx5        [
        R                  " XX5        g )
Nr   rA   Tra   rs   rY   r   r   r   rz   )	r7   r   rj   rn   r{   res4r;   res3ro   s	            r   test_regex_replace_dict_nested3TestDataFrameReplace.test_regex_replace_dict_nested  s*   '"mmS;"78mEzz|zz|||;'($d $ 
 ###}}C+rvv)>#?}@||3bff0E*FPT|U####,c3%?gclS
 	c)
d*
d*
d*r   c                    Un[        S/ SQ0US9nUR                  SS0SS9n[        S/ SQ0US9n[        R                  " XE5        g )	Nfirst)abcbcacabdtyper   ry   Tra   )z.bczbc.zc.br   r.   r/   r0   )r7   any_string_dtyper   r\   r=   r>   s         r   2test_regex_replace_dict_nested_non_first_characterGTestDataFrameReplace.test_regex_replace_dict_nested_non_first_character  sO     !67uES#Jd3g'<=UK
f/r   c                    [        [        / SQ[        S9SS.5      n[        / SQSS.5      nSn[        R                  " [
        US9   UR                  SS	S
S.05      nS S S 5        [        R                  " WU5        g ! , (       d  f       N&= f)N)QTr   r   r   r      )Typetmp)r      r   r   r   !Downcasting behavior in `replace`matchr   r   r   )r   r   )r   r   r6   r/   assert_produces_warningFutureWarningr.   r0   )r7   r\   r>   msgr=   s        r   %test_regex_replace_dict_nested_gh4115:TestDataFrameReplace.test_regex_replace_dict_nested_gh4115#  s|    5VDQO
 oa@A1''SAZZqq)9 :;F B 	fh/ BAs   A??
Bc                   [        U5      n[        US   [        R                  /S-  [        R                  [        R                  [        R                  S/S.5      nU(       a  US   R                  S5      US'   SnU(       a  S O[        n[
        R                  " XeS9   UR                  S	S
/[        R                  SS9nS S S 5        UR                  5       nUR                  5       n	[
        R                  " XeS9   UR                  S	S
/[        R                  SSS9n
S S S 5        W
b   e[
        R                  " XeS9   U	R                  S	S
/[        R                  SS9n
S S S 5        U
b   e[
        R                  " WU5        [
        R                  " X5        [
        R                  " X5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Ny= f)Nr   r   r   r   r   strr   r   rA   za|bTra   rY   rt   )
r   r   r   r5   r   r/   r   r.   r-   r0   )r7   r   using_infer_stringr\   ro   r   warnrn   r{   r   r;   s              r   !test_regex_replace_list_to_scalar6TestDataFrameReplace.test_regex_replace_list_to_scalar.  s   wS\ffX\ffbffbffc2
 s**51E#J1)t}''8**k51266*FC 9wwywwy''8<<e$bffD$ ( L 9 ###''8<<"E*"&&$ ( L 9 ###
c5)
d*
d*! 98 98
 98s$   !"F6?#G"G6
G
G
G&c                   [        U5      nUR                  SSSS9nUR                  5       nUR                  SSSSS9nUb   eUR                  5       nUR                  SSSS9nUb   e[        US   / SQUS	   S
.5      n[        R                  " X75        [        R                  " XG5        [        R                  " Xg5        g )NrA   r   Tra   rs   rt   r   )r   r   r   r   r   r   )r   r.   r-   r/   r0   r7   r   r\   rn   r{   r;   r   ro   s           r   !test_regex_replace_str_to_numeric6TestDataFrameReplace.test_regex_replace_str_to_numericM  s    wjjatj4wwy||KD|M###wwy||+Q|M###3C'RU,WX
c)
d*
d*r   c                   [        U5      nUR                  SS/SSS9nUR                  5       nUR                  SS/SSSS9nUb   eUR                  5       nUR                  SS/SSS9nUb   e[        US   / S	QSS[        R                  S
/S.5      n[
        R                  " X75        [
        R                  " XG5        [
        R                  " Xg5        g )NrA   r   r   Tra   rY   rt   r   )r   r   r   r   r   r   )r   r.   r-   r   r   r/   r0   r   s           r   (test_regex_replace_regex_list_to_numeric=TestDataFrameReplace.test_regex_replace_regex_list_to_numeric\  s    wjj+s+Qdj;wwy||[#$6t|T###wwy||;*<At|T####,^32663:OP
 	c)
d*
d*r   c                   [        U5      n[        SS05      n[        S[        R                  05      nUR	                  X4SS9nUR                  5       nUR	                  X4SSS9nUb   eUR                  5       nUR	                  X4SS9nUb   e[        US   SS[        R                  [        R                  /US   S	.5      n	[        R                  " XY5        [        R                  " Xi5        [        R                  " X5        g )
Nr   rA   Tra   rs   rt   r   r   r   )r   r   r   r   r.   r-   r/   r0   )
r7   r   r\   s1s2rn   r{   r;   r   ro   s
             r   $test_regex_replace_series_of_regexes9TestDataFrameReplace.test_regex_replace_series_of_regexesl  s    wS+&'S"&&M"jjtj,wwy||BD|E###wwy||"|E####,c3%?gclS
 	c)
d*
d*r   c                    [        U5      n[        / SQUS   US   S.5      nUR                  SS5      n[        R                  " XC5        UR                  R
                  [        R                  :X  d   eg )N)r   r   r   rC   r   r   r   r   r   )r   r.   r/   r0   r   r   r   object_)r7   r   r\   ro   rn   s        r   /test_regex_replace_numeric_to_object_conversionDTestDataFrameReplace.test_regex_replace_numeric_to_object_conversion~  s^    wWS\PSUVjjC 
c)uu{{bjj(((r   rZ    )r   ,)r   r   c                    [        / SQ/ SQ/ SQS.5      nUR                  US9n[        / SQS[        R                  S// SQS.5      n[        R
                  " X45        g )	N)z1,000r   3)r   r   r   r   col1col2col3ra   )1000r   r   r   r   r   r.   r   r   r/   r0   )r7   rZ   r\   r=   r>   s        r   +test_joint_simple_replace_and_regex_replace@TestDataFrameReplace.test_joint_simple_replace_and_regex_replace  sa    
 +&'
 *-*bffc*'
 	f/r   metachar)z[]z()z\dz\wz\sc                    [        SUS/05      nUR                  SUS005      n[        SSS/05      n[        R                  " X45        g )Nr   elseparenr   )r7   r   r\   r=   r>   s        r   test_replace_regex_metachar0TestDataFrameReplace.test_replace_regex_metachar  sP    h/01S8W"567cGV#456
f/r   zdata,to_replace,expectedxaxxbxr   r   r   xcxxdx)r   r   r   ^\s*$c                l    UnU" XS9nUR                  USS9nU" X6S9n[        R                  " X5        g )Nr   Tra   r.   r/   assert_equal)	r7   datarZ   r>   frame_or_seriesr   r   objr=   s	            r   test_regex_replace_string_types4TestDataFrameReplace.test_regex_replace_string_types  s;     !d0Zt4"89
)r   c                b   [         R                  UR                  UR                  S S S4'   [         R                  UR                  UR                  SS  S4'   UR	                  [         R                  S5      n[
        R                  " X!R                  S5      5        [
        R                  " UR	                  S[         R                  5      U5        [         R                  UR                  UR                  S S S4'   [         R                  UR                  UR                  SS  S4'   SUR                  UR                  S S S4'   [        SS/S9n[
        R                  " X3R	                  SS	5      5        [        S
[        R                  " S5      4S[        R                  " S5      4/5      nUR	                  S
[         R                  5      n[        [         R                  [        R                  " S5      4S[        R                  " S5      4/5      n[
        R                  " XE5        g )Nr!   r"   r#       חBr   r   r,      -2015010120150102)r   r   r+   r,   r.   r/   r0   r1   r   pdto_datetime)r7   r8   zero_filledr\   df1expected_dfs         r   test_replace!TestDataFrameReplace.test_replace  s   <>FF>//3S89=?VV>//4c9:$,,RVVT:
k+@+@+FG
k11$?P<>FF>//3S89=?VV>//4c9:<@>//3S89 c3Z(
b**Q"23 2>>*-.bnnZ6P0QR
 jjbff%ffbnnZ01C
9S3TU
 	c/r   c                   [        S5      [        S5      [        S5      S.n[        U5      nSS/n[        R                  S/nUR	                  X45      n[        SS	[        R                  [        R                  // S
Q/ SQS.5      n[
        R                  " XV5        SS/nSS/nUR	                  X45      n[        / SQ/ SQ/ SQS.5      n[
        R                  " XV5        g )Nr   rV   rW   r   ry   rP   rB   r   r   rQ   rE   rR   rL   rK   )rP   rB   rS   rD   )rD   rP   rF   rG   )r   r   r   r   r.   r/   r0   )r7   r   dfobjrk   r[   rn   ro   s          r   test_replace_list&TestDataFrameReplace.test_replace_list  s    LtF|$v,G# &&&!mmN33/,,
 	c) !mmN3+,)
 	c)r   c                   [        SS// [        R                  S//5      n[        SU05      n[        R
                  " X15      nUnUR                  / [        R                  5      n[        R                  " XT5        Sn[        R                  " [        UR                  SS9S9   UR                  [        R                  / 05        S S S 5        [        R                  " [        UR                  S	S9S9   UR                  [        R                  S
S/05        S S S 5        g ! , (       d  f       Na= f! , (       d  f       g = f)Nr   r   r   colzwNumPy boolean array indexing assignment cannot assign {size} input values to the 1 output values where the mask is truer   )sizer   r   dummyalt)r   r   r   r   r/   get_objr.   r   pytestraises
ValueErrorformat)r7   r   serr   r>   r=   r   s          r   test_replace_with_empty_list1TestDataFrameReplace.test_replace_with_empty_list  s    sCj"bffqc23%jj.R(
)I 	 ]]:SZZQZ-?@KK% A]]:SZZQZ-?@KK'5!123 A@ A@@@s   $"D!4$D2!
D/2
E c                B   [        SSS.SSS.S.5      nUR                  SSSS.5      n[        SSS.SSS.S.5      n[        R                  " X#5        UR                  SUR	                  5       5      n[        R                  " X#5        [        SSS.SSS.S.5      n[        SSS.5      nUR                  USSS.5      n[        SSS.SSS.S.5      n[        R                  " X#5        UR                  XAR	                  5       5      n[        R                  " X#5        g )	N        r   r          @r   )zeroone      ?      ?)r   r.   r/   r0   meanr   )r7   r\   r=   r>   ss        r   test_replace_series_dict-TestDataFrameReplace.test_replace_series_dict  s   c 21;MNOAC89Ca&8sQTAUVW
f/Arwwy)
f/ c 21;MNOC,-AC89Ca&8sQTAUVW
f/Awwy)
f/r   c                <   [        / SQ/ SQ/5      nSSSS.nSn[        R                  " [        US9   UR	                  U5      nS S S 5        [        [        R                  /S-  5      nWR                  n[        R                  " XV5        g ! , (       d  f       NN= f)N)r'   barbah)r   r'   r   r   r   rC   "Downcasting behavior in `replace` r   )
r   r/   r   r   r.   r   r   int64dtypesassert_series_equal)r7   r\   mr   repro   rn   s          r   test_replace_convert)TestDataFrameReplace.test_replace_convert  s|    -/DEFa*2''SA**Q-C BzA~&jj
u*	 BAs   B
Bc                0   Un[         R                  UR                  SS2UR                  R	                  S5      4'   [         R                  UR                  SS 2UR                  R	                  S5      4'   UR                  [         R                  S5      nUR                  5       nUS   R                  [        5      US'   UR                  SS9n[        R                  " X45        UR                  5       nUS   R                  [        5      US'   [        R                  " UR                  S[         R                  5      U5        UR                  [         R                  S5      nUR                  5       nUS   R                  [        5      US'   UR                  SS9n[        R                  " X45        UR                  5       nUS   R                  [        5      US'   [        R                  " UR                  S[         R                  5      U5        g )	Nr!   r&   r'   r(   r"   ir)   r   )r   r   r2   r3   r4   r.   r-   r5   r6   r1   r/   r0   )r7   r9   r<   r=   r>   	expected2s         r   test_replace_mixed'TestDataFrameReplace.test_replace_mixed   s   3566"bjj((//013bjj((--.#++BFFC8%**,"5/008???-
f/&++-	$U+226:	%
fnnS"&&99E#++BFFD9%**,"5/008???.
f/&++-	$U+226:	%
fnnT266:IFr   c                4   [        [        SS/SS9[        SS/SS9S.5      n[        [        SS/SS9[        S	S/SS9S.5      nUR                  SS	5      n[        R                  " X25        UR                  SS	S
S9nUb   e[        R                  " X5        g )Nr   r   float64r   r   r   r  r"   r   r   Tr$   r   r   r.   r/   r0   )r7   r\   r>   r=   r;   s        r   &test_replace_mixed_int_block_upcasting;TestDataFrameReplace.test_replace_mixed_int_block_upcasting7  s    S#Ji8QF'2
 S#Ji8S!HI6
 As#
f/zz!S$z7###
b+r   c           	        [        [        SS/SS9[        SS/SS9[        SS/SS9S	.5      n[        [        SS/SS9[        S
S/SS9[        SS/SS9S	.5      nUR                  SS
5      n[        R                  " X25        g )Nr   r   r  r   r   r   r  r   r"   r   Cr   r  r7   r\   r>   r=   s       r   &test_replace_mixed_int_block_splitting;TestDataFrameReplace.test_replace_mixed_int_block_splittingL  s    S#Ji8QF'2QF'2
 S#Ji8S!HI6QF'2
 As#
f/r   c                x   [        [        SS/SS9[        SS/SS9S.5      n[        [        SS	/S
S9[        SS/SS9S.5      nUR                  SS	5      n[        R                  " XC5        [        [        S	S/S
S9[        SS	/S
S9S.5      nUR                  SS/S	S/5      n[        R                  " XC5        g )Nr   r   r  r   r   r   r  r  r'   r6   r   r   r  )r7   r   r\   r>   r=   s        r   test_replace_mixed2(TestDataFrameReplace.test_replace_mixed2_  s    S#Ji8QF'2
 QJh7QF'2
 Au%
f/UEN(;QJh7
 QFUEN3
f/r   c                   [        [        SS/SS9[        SS/SS9S.5      nUR                  SUR                  5       R	                  5       5      nUR                  5       R                  S5      nUR                  5       nUR                  S   UR                  S'   UR                  S   UR                  S	'   [        R                  " X#5        g )
NrC   r   r  r   r  r  r   r   r   )r   r   )
r   r   r.   r   to_dictr-   r5   r2   r/   r0   )r7   r\   r=   r>   r  s        r   test_replace_mixed3(TestDataFrameReplace.test_replace_mixed3y  s    !Qw/faV76ST
 Arwwy0023779##I.GGIffQidffQid
f/r   c                    [        SSS[        R                  // SQS.5      nUS   R                  S5      US'   UR	                  S[        R                  5      n[
        R                  " US   US   5        g )	Nr   r   rC   )somestringshereher   r   Int64r   )r   r   r   r5   r.   r/   r  r7   r\   rn   s      r   1test_replace_nullable_int_with_string_doesnt_castFTestDataFrameReplace.test_replace_nullable_int_with_string_doesnt_cast  sa    aArvv.5VWXS'..)3jjRVV$
s3xC1r   r   )booleanr%  Float64c                    [        / SQUS9n[        / SQUS.5      nUR                  SS5      n[        / SQUS.5      n[        R                  " XE5        g )N)r   r   r   r   )r"   r   xr  r,  X)r"   r   r-  r   r   r.   r/   r0   )r7   r   nullable_serr\   r=   r>   s         r   !test_replace_with_nullable_column6TestDataFrameReplace.test_replace_with_nullable_column  sL     iu5_<@AC%?FG
f/r   c                    [        S[        SS5      05      n[        S/ SQ05      nUR                  SSSS.05      n[        R                  " X#5        UR                  SSS.5      n[        R                  " X#5        g )Nr   r   r!   r   r   rC   r   r   r   )r   r   r   r   r.   r/   r0   r  s       r   test_replace_simple_nested_dict4TestDataFrameReplace.test_replace_simple_nested_dict  sp    uQ{+,e%567U$456
h/ ,-
h/r   c                    [        S[        SS5      05      n[        S/ SQ05      nUR                  SSSS.5      n[        R                  " X#5        UR                  SSSSS.05      n[        R                  " X#5        g )	Nr   r   r!   r3  r   r   r   )r   r   r4  r  s       r   6test_replace_simple_nested_dict_with_nonexistent_valueKTestDataFrameReplace.test_replace_simple_nested_dict_with_nonexistent_value  sr    uQ{+,e%56756
h/U$=>?
h/r   c                    [        SSS /05      R                  SS05      nUR                  [        R                  S 05      n[        SSS /0[
        S9n[        R                  " X#5        g )Nr*   *   r%  r   )r   r5   r.   r   NAr6   r/   r0   r7   r\   r=   r>   s       r   test_replace_NA_with_None.TestDataFrameReplace.test_replace_NA_with_None  s^    "d,-44gw5GHRUUDM*gDz2&A
f/r   c                    [        [        R                  [        R                  /5      nUR                  [        R                  S [        R
                  S 05      n[        S S /5      n[        R                  " X#5        g N)r   r   NaTr.   r   r   r/   r0   r>  s       r   test_replace_NAT_with_None/TestDataFrameReplace.test_replace_NAT_with_None  sT    '(RVVT266489dD\*
f/r   c                    [        / SQSS9n[        [        / SQSS9US.5      nUR                  SS 05      n[        [        / SQS	S9US.5      n[        R                  " X45        g )
N)r   r   r   r   categoryr   )r!   r   rC   r   r  )idr   rC   )      @g      @Nr   r6   r.  )r7   
cat_seriesr\   r=   r>   s        r   (test_replace_with_None_keeps_categorical=TestDataFrameReplace.test_replace_with_None_keeps_categorical  sl    0
C
\;!
 QI&2(C!
 	f/r   c                n   UR                   S   nUR                   S   n[        R                  UR                   S'   SUR                   S'   UR                  [        R                  S0S9nUR                  R                  [        R                  S0S9R                  n[
        R                  " XE5        UR                  [        R                  SSS0S9nUR                  5       nSUR                   S'   SUR                   S'   Un[
        R                  " XT5        X!R                   S'   X1R                   S'   g )Nr  r   r   r   r   rZ   r   )r2   r   r   r.   r   r/   r0   r-   )r7   r8   
orig_valueorig2r=   r>   r:   s          r   test_replace_value_is_none/TestDataFrameReplace.test_replace_value_is_none  s   #((.
##D)$&FFD!$%D!''BFFA;'?!##++{+CEE
f/''BFFAq$3G'H %%'T!T
h/$.D!$)D!r   c                   UR                  5       R                  [        R                  5      n[        R                  UR
                  UR                  S S S4'   [        R                  UR
                  UR                  SS  S4'   UR                  [        R                  S5      n[        R                  " X2R                  S5      5        [        R                  " UR                  S[        R                  5      U5        [        R                  UR
                  UR                  S S S4'   [        R                  UR
                  UR                  SS  S4'   [        R                  UR
                  UR                  S S S4'   Sn[        R                  " [        US9   UR                  SS	9n[        R                  " XRR                  SS	95        S S S 5        g ! , (       d  f       g = f)
Nr!   r"   r#   r   r   z,DataFrame.fillna with 'method' is deprecatedr   bfill)method)r-   r5   r   float32r   r+   r,   r.   r/   r0   r1   r   r   )r7   r8   r:   r   r   r=   s         r   test_replace_for_new_dtypes0TestDataFrameReplace.test_replace_for_new_dtypes  s`    %%'..rzz:.0ffGMM"1%s*+/1vvGMM"#&+,oobffd3
k>>$+?@
k11$?I.0ffGMM"1%s*+/1vvGMM"#&+,.0ffGMM"1%s*+<''SA^^7^3F!!&...*HI BAAs   3G
G)z"frame, to_replace, value, expectedintsr   r   rC   r   r   )r   r   rC   r   boolsTFT)TTTcomplex)              ?               @              @r_  )y                r`  ra  
datetime64i  r!      r   i     r&   r'   )dtr   r   re  h  
   i  20130101
US/Easternperiodstzr   r  20130102rl  2013010420130103nsr   r   rI  c                   S n[        U[        5      (       a  UR                  S:X  a  [        nSn[        R
                  " XVS9   UR                  X#5      nS S S 5        [        R                  " WU5        g ! , (       d  f       N&= f)Nrf  r   r   )
isinstancer   yearr   r/   r   r.   r0   )r7   framerZ   r*   r>   r   r   r=   s           r   test_replace_dtypes(TestDataFrameReplace.test_replace_dtypes  sf    X j(++
40G D2''8]]:5F 9
fh/ 98s   A66
Bc           
     :   [         R                  SSS.nSSSS.n[        [         R                  S[         R                  // SQ/ SQS.5      nUR	                  X5      nUR                  5        VVs0 s H  u  pVXVR	                  X   X%   5      _M     nnn[        R                  " U[        U5      5        UR	                  / SQ/ SQ5      n[        [         R                  S	[         R                  // SQ/ SQS.5      n[        R                  " X5        SSSS.n[        [         R                  S[         R                  // SQ/ SQS.5      nUR	                  [         R                  U5      nUR                  5        VVs0 s H'  u  pVXVR	                  [         R                  X%   5      _M)     nnn[        R                  " U[        U5      5        [         R                  SS/n/ S
QnUR	                  X5      nUR                  5       n[        X5       H  u  pUR	                  XSS9nUc  M   e   [        R                  " X5        Sn[        R                  " [        US9   UR	                  XSS  5        S S S 5        g s  snnf s  snnf ! , (       d  f       g = f)Nr   r   r  r8  missingr   r   r!   r   asdffd)r!   r   r   r!   )r8  ry  Tr$   z:Replacement lists must match in length\. Expecting 3 got 2r   r   )r   r   r   infr.   itemsr/   r0   r-   zipr   r   r   )r7   to_repr[   r\   filledkvr>   r=   r  r*   r;   r   s                r   #test_replace_input_formats_listlike8TestDataFrameReplace.test_replace_input_formats_listlikeg  s   vvAB/r	2661bff%I<NO
 F+CE88:N:41AyyFI66:N
fi&9:Iy1661bff%I<NO
 	f/ r	2661bff%I<NO
 BFFF+@B
K
Ayy33
K
fi&9: &&!R$F+779f-JC#++C+EL''' . 	f/K]]:S1JJvabz* 21; O L 21s   1"J ?.J"J
Jc           	        [        [        R                  S[        R                  // SQ/ SQS.5      n[        R                  SSS.nUR	                  US5      nUR                  5        VVs0 s H  u  pEXER	                  X$   S5      _M     nnn[        R                  " U[        U5      5        Sn[        R                  " [        US9   UR	                  U[        R                  SS/5        S S S 5        [        R                  SS/nUR	                  US5      nUR                  5       nU H  n	UR	                  U	SS	S
9n
U
c  M   e   [        R                  " X5        g s  snnf ! , (       d  f       N= f)Nr   rz  r{  r  r   z.value argument must be scalar, dict, or Seriesr   r8  Tr$   )r   r   r   r  r.   r  r/   r0   r   r   	TypeErrorr-   )r7   r\   r  r  r  r  r>   r   r=   r  r;   s              r   !test_replace_input_formats_scalar6TestDataFrameReplace.test_replace_input_formats_scalar  s1   661bff%I<NO

 vvAB/FA&;=88:F:41AyyA..:F
fi&9:>]]9C0JJv2/ 1 &&!RFB'779C#++CT+BL'''  	f/ G 10s   , E!
$E''
E5c                    g rB  r   )r7   s    r   test_replace_limit'TestDataFrameReplace.test_replace_limit  s    r   c                   [        SSSSSS.US9nSS	S
SSS.n[        SSS
S	SS.5      nSn[        R                  " [        US9   UR	                  U5      nS S S 5        [        R
                  " WU5        g ! , (       d  f       N&= fNStrongly AgreeAgreeNeutralDisagreeStrongly Disagree)r   r   r   rC   r   r   r   r   rC   r!   r   )r  r  r  r  r  r   r   r   r/   r   r   r.   r  r7   r   answerweightsr>   r   r=   s          r   test_replace_dict_no_regex/TestDataFrameReplace.test_replace_dict_no_regex  s    #& #	
 !"
 aA!a892''SA^^G,F B
vx0 BAs   A77
Bc                "   [        SSSSSS.US9n[        SS	S
SSS.5      n[        SSS
S	SS.5      nSn[        R                  " [        US9   UR	                  U5      nS S S 5        [        R
                  " WU5        g ! , (       d  f       N&= fr  r  r  s          r   test_replace_series_no_regex1TestDataFrameReplace.test_replace_series_no_regex  s    #& #	
 "#%&
 aA!a892''SA^^G,F B
vx0 BAs   B  
Bc                   [        S[        R                  S/05      nUR                  [        R                  SSS0S9nUR                  S[        R                  4SS/S9nUR                  S[        R                  /SS/S9n[        SSS/05      n[        R
                  " X#5        [        R
                  " X45        [        R
                  " XE5        g )Nr"   r   r   r   rO  rZ   r*   )r   r   r   r.   r/   r0   )r7   r\   res1r{   r   r>   s         r   6test_replace_dict_tuple_list_ordering_remains_the_sameKTestDataFrameReplace.test_replace_dict_tuple_list_ordering_remains_the_same  s    bffa[)*zzbffaD%9z:zza[q	zBzza[q	zBcAt9-.
d)
d)
d-r   c                    [        / SQ/ SQ/ SQ/ SQS.5      nUR                  SS05      n[        R                  " X5        g )N)r   r   r   rC   )0vrr  r  )r  r  r  bt)vor  r  r  )folT_oppT_DirT_Enhz\Dr   r   r&  s      r   )test_replace_doesnt_replace_without_regex>TestDataFrameReplace.test_replace_doesnt_replace_without_regex  s?    #...	
 jj%$
b&r   c                    [        SS/[        S5      S.5      nUR                  SS5      n[        SS/UR                  S.5      n[        R
                  " X#5        g )NTFabr   r   )r   r   r.   r   r/   r0   r>  s       r   test_replace_bool_with_string2TestDataFrameReplace.test_replace_bool_with_string  sN    dE]d<=D#&C<bdd;<
f/r   c                    [        [        R                  R                  S5      R                  S5      S:  5      nUR	                  SS5      n[
        R                  " X5        g )Nr   r   r   r   r|  fdsa)r   r   randomdefault_rngr.   r/   r0   r7   r\   r=   s      r   (test_replace_pure_bool_with_string_no_op=TestDataFrameReplace.test_replace_pure_bool_with_string_no_op  sI    ryy,,Q/66v>DEFF+
b)r   c                   [        [        R                  R                  S5      R                  S5      S:  5      nUR	                  SS5      n[        [        R
                  " S[        S95      n[        R                  " X#5        g )Nr   r  r   FTr   )	r   r   r  r  r.   onesboolr/   r0   r>  s       r   test_replace_bool_with_bool0TestDataFrameReplace.test_replace_bool_with_bool  s^    ryy,,Q/66v>DEE4(RWWV489
f/r   c                    [        SS/SS/S.5      nUR                  SSS.5      n[        SS/SS/S.5      n[        R                  " X#5        g )NTFr   r   asdbyes)r|  Tr   r>  s       r   %test_replace_with_dict_with_bool_keys:TestDataFrameReplace.test_replace_with_dict_with_bool_keys  sQ    D%=eT];<V59:%UENCD
f/r   c                    [        SS/SS/S.5      nUR                  SS05      n[        R                  " X!5        US   R                  SS05      n[        R                  " X!S   5        g )	Nr   r   rC   r   )Y0Y1replace_stringtestr  )r   r.   r/   r0   r  r  s      r   !test_replace_dict_strings_vs_ints6TestDataFrameReplace.test_replace_dict_strings_vs_ints  sg    q!fQF34-v67
f)D!!#3V"<=
v$x0r   c                    [        SSS/05      nUR                  [        R                  [        R                  * /[        R                  5      nUn[
        R                  " X#5        g )Nr   T)r   r.   r   r  r   r/   r0   )r7   r\   rrP   s       r   test_replace_truthy(TestDataFrameReplace.test_replace_truthy  sK    dD\*+JJ("&&1
a#r   c                T   [        S[        [        SS5      5      05      nUR                  S[	        [        [        SS5      [        SS5      5      5      05      nUR                  [	        [        [        SS5      [        SS5      5      5      5      n[        R                  " X#5        g )Nr   r   r!   r      )r   r   r   r.   dictr  r/   r0   r>  s       r   -test_nested_dict_overlapping_keys_replace_intBTestDataFrameReplace.test_nested_dict_overlapping_keys_replace_int  s}     T%1+./0S$s5A;a'D"EFG::d3uQ{E!QK#@AB
f/r   c           	        [         R                  " SS5      nUR                  [        5      n[         R                  " SS5      R                  [        5      n[	        SU05      nUR                  [        [        X#5      5      5      nUR                  S[        [        X#5      5      05      n[        R                  " XV5        g )Nr   r!   r   r  r   )
r   aranger5   r   r   r.   r  r  r/   r0   )r7   r   astrbstrr\   r=   r>   s          r   -test_nested_dict_overlapping_keys_replace_strBTestDataFrameReplace.test_nested_dict_overlapping_keys_replace_str$  s    IIaOxx}yyA%%c*T{#DT12::sDT$9:;
f/r   c                8   [        S/ SQ05      nUR                  SSSS.05      n[        S/ SQ0[        S9n[        R                  " X#5        [        S/ SQ05      nUR                  SSSS	.05      n[        S/ SQ0[        S9n[        R                  " X#5        g )
Nr   r]  YN)TF)r  r  r  r   )r   r   r   r  r   r.   r6   r/   r0   )r7   r\   rn   expects       r   test_replace_swapping_bug.TestDataFrameReplace.test_replace_swapping_bug.  s    012jj#c#678C1@
c*Y'(jj#33/01C1@
c*r   c                <   S[         R                  " SSSS9[         R                  " SSSS9[         R                  " SSSS9[         R                  " SS	SS9[         R                  " SSSS9[         R                  " SSSS9[         R                  " S
SSS9S.0n[        / SQS/S9n[        UR                  R
                  5      [        US   R                  5       5      :X  d   e[        SUR                  R
                   Vs/ s H
  o1S   U   PM     sn05      nUR                  R                  S   S:X  d   eSn[        R                  " [        US9   UR                  U5      nS S S 5        [        R                  " WU5        g s  snf ! , (       d  f       N+= f)Nfnamei     M)rt  monthfreqr   i  r!   r   i  	   out_augmented_AUG_2011.jsonout_augmented_JAN_2011.jsonout_augmented_MAY_2012.jsonout_augmented_SUBSIDY_WEEK.jsonout_augmented_AUG_2012.jsonout_augmented_MAY_2011.jsonout_augmented_SEP_2013.jsonr  r  r  r  r  r  r  r3   r   z	Period[M]r   r   )r   Periodr   setr  r[   keysr  r2   r/   r   r   r.   r0   r7   r   r\   r  r>   r   r=   s          r   test_replace_period(TestDataFrameReplace.test_replace_period9  sb   /1yyd!RU/V/1yyd!RU/V/1yyd!RU/V3599QS4 02yyd!RU/V/1yyd!RU/V/1yyd!RU/V

  I
 288??#s1W:??+<'====grxx'O!'
1'OPQ##A&+5552''SAZZ]F B
fh/ (P BAs   F
F
Fc           
     d   S[        S5      [        S5      [        S5      [        S5      [        S5      [        S5      [        S5      S	.0n[        / S
QS/S9n[        UR                  R                  5      [        US   R                  5       5      :X  d   e[        SUR                  R                   Vs/ s H
  o1S   U   PM     sn05      nSn[        R                  " [        US9   UR                  U5      nS S S 5        [        R                  " WU5        g s  snf ! , (       d  f       N+= f)Nr  z2011-08z2011-01z2012-05z2011-04z2012-08z2011-05z2013-09r  r  r  r   r   )r   r   r  r  r[   r  r/   r   r   r.   r0   r  s          r   test_replace_datetime*TestDataFrameReplace.test_replace_datetime]  s    /8/C/8/C/8/C3<Y3G/8/C/8/C/8/C

  I
 288??#s1W:??+<'====grxx'O!'
1'OPQ2''SAZZ]F B
fh/	 (PAAs   6D
*D!!
D/c           	     (   [        [        SSSS9S[        R                  S/S.5      nUR	                  [        R                  S5      n[        [        SSSS9[        / S	QS
S9S.5      n[        R                  " X#5        UR                  S5      n[        R                  " X#5        UR	                  S[        R                  5      n[        [        SSSS9[        R                  [        R                  S/S.5      n[        R                  " X#5        UR	                  [        SSS9[        SSS95      n[        [        SSS9[        SSS9[        SSS9/S[        R                  S/S.5      nUS   R                  R                  S5      US'   [        R                  " X#5        UR                  5       n[        R                  UR                  S'   UR	                  S[        R                  0[        SSS95      n[        R                  " X#5        UR                  5       n[        R                  UR                  S'   UR	                  S[        R                  0[        SSS95      n[        [        SSS9[        SSS9R!                  S5      [        SSS9/S[        R                  S/S.5      nUS   R                  R                  S5      US'   [        R                  " X#5        UR                  5       n[        R                  UR                  S'   UR	                  S[        R                  0[        S5      5      n[        [        SSS9[        S5      [        SSS9/S[        R                  S/S.5      n[        R                  " X#5        g )Nrh  rC   ri  rj  r   r   r  r   r   r   r   r  r   rm  rn  ro  rp  r"   rq  rN  z
US/Pacific)r   r	   r   r   r.   r   r/   r0   r1   r   re  as_unitr-   r2   r   rC  
tz_convertr>  s       r   test_replace_datetimetz,TestDataFrameReplace.test_replace_datetimetz}  s    
A,G^
 BFFA&
A,GIY7
 	f/1
f/Arvv&
A,Gffbffa(
 	f/j\2j\2
  j\:j\:j\:
 ^	
 !((006
f/FFDbffy/UV
f/ FFDbffy/UV j\:j\:EElSj\:
 ^	
 !((006
f/FFDbffy/DE j\:j)j\:
 ^	
 	f/r   c           
     t   [        U5      n[        R                  " X"R                  0 5      5        [        R                  " X"R                  [	        / [
        S95      5        [        R                  " X"R                  S0 05      5        [        R                  " X"R                  [	        S0 05      5      5        g )Nr   r   )r   r/   r0   r.   r   r6   )r7   r   r\   s      r    test_replace_with_empty_dictlike5TestDataFrameReplace.test_replace_with_empty_dictlike  s{    w
b**R.1
b**VBf-E"FG
b**c2Y"78
b**VS"I->"?@r   zto_replace, method, expectedrU  )r   r   r   r  r  )rI        @r  ffillpad)r   r   r   )r   r   )r   r   r   )r   r   r   c                   [        / SQS[        R                  S// SQS.5      nSn[        R                  " [
        US9   UR                  US US9nS S S 5        [        U5      n[        R                  " WU5        g ! , (       d  f       N1= f)	Nr  r!   r   r   r  z7The 'method' keyword in DataFrame.replace is deprecatedr   )rZ   r*   rV  )r   r   r   r/   r   r   r.   r0   )r7   rZ   rV  r>   r\   r   r=   s          r   test_replace_method(TestDataFrameReplace.test_replace_method  ss    D Ya^/RSG''SAZZ:T&ZQF BX&
fh/ BAs    A==
Bzreplace_dict, final_datac                   [        SS/SS//SS/SS9n[        R                  " U5      n[        R                  " US S 2S4   SS/S	9nUS   S:X  a  SS/OSS/n[        R                  " US S 2S4   US	9n[        XFS
.5      nSn[
        R                  " [        US9   UR                  US5      n	S S S 5        [
        R                  " W	U5        Sn
[        R                  " [        U
S9   [
        R                  " X75        S S S 5        [
        R                  " [        US9   UR                  USSS9nS S S 5        Wb   e[
        R                  " X75        g ! , (       d  f       N= f! , (       d  f       Nn= f! , (       d  f       NL= f)Nr   r   r   r   rG  )r3   r   r   rC   )
categoriesr   z#with CategoricalDtype is deprecatedr   zHAttributes of DataFrame.iloc\[:, 0\] \(column name=\"a\"\) are differentTr$   )r   r   arrayr   Categoricalr/   r   r   r.   r0   r   r   AssertionError)r7   replace_dict
final_datar\   r   ex_catr   r>   msg2r=   r   r;   s               r   "test_categorical_replace_with_dict7TestDataFrameReplace.test_categorical_replace_with_dict  sZ    AA'#s:NXXj)
NN:ad+A?',1!Q1vNN:ad+?1-.4''TBZZa0F C
fh/ 	 ]]>5!!"/ 6 ''TB::lAt:DL C###
b+ CB 65 CBs$   E*E)"E:
E&)
E7:
Fzdf, to_replace, expr   r!   r  )r   r   r  )r!   r  r   )456r  r  7)r  r  r  c                ~    [        U5      n[        U5      nUR                  U5      n[        R                  " XT5        g rB  r   )r7   r\   rZ   expr>   r=   s         r   test_replace_commutative-TestDataFrameReplace.test_replace_commutative$  s2    ( r]S>J'
f/r   replacer20170827c                    [        S/[        S9nSn[        R                  " [        US9   UR                  XS.5      nS S S 5        [        U/5      n[        R                  " WU5        g ! , (       d  f       N2= f)Nr   r   r   r   r   )r   r6   r/   r   r   r.   r0   )r7   r   r\   r   r=   r>   s         r   test_replace_replacer_dtype0TestDataFrameReplace.test_replace_replacer_dtype>  sd     uF+2''SAZZh >?F BhZ(
fh/ BAs   A++
A9c                    [        S/ SQ0SS9nUR                  SS5      n[        S/ SQ0SS9n[        R                  " X#5        g )Ngrp)r   r   rC   r   r!   r%  r   r   rg  )rg  r   rC   r   r!   r   r>  s       r   !test_replace_after_convert_dtypes6TestDataFrameReplace.test_replace_after_convert_dtypesQ  sC    /w?Ar"e%56gF
f/r   c                    [        / SQ/ SQS.5      nSnSn[        R                  " [        US9   [        R
                  " [        US9   UR                  S 5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)N)r   zb r   )zd ze zf )r   twozZExpecting 'to_replace' to be either a scalar, array-like, dict or None, got invalid type.*zSDataFrame.replace without 'value' and with non-dict-like 'to_replace' is deprecatedr   c                "    U R                  5       $ rB  )strip)r,  s    r   <lambda>FTestDataFrameReplace.test_replace_invalid_to_replace.<locals>.<lambda>f  s
    QWWYr   )r   r   r   r  r/   r   r   r.   )r7   r\   r   r  s       r   test_replace_invalid_to_replace4TestDataFrameReplace.test_replace_invalid_to_replaceX  st     /8JKL0 	
) 	 ]]9C0++MF

./ G 10FF 10s#   A?
A.A?.
A<	8A??
B)floatr  r  r%  r)  r*   c                    [        [        R                  " S5      US9nUR                  S [        R                  * [        R                  /US9n[
        R                  " XC5        g )Nr   r   r  )r   r   eyer.   r  r/   r0   )r7   r   r*   r\   r=   s        r   "test_replace_no_replacement_dtypes7TestDataFrameReplace.test_replace_no_replacement_dtypesh  sI     rvvay.rvvgrvv'>eL
f)r   replacementc                    [        / SQ/ SQ/ SQS.5      n[        S5      Ul        [        / SQ/ SQUSS/S.5      n[        S5      Ul        US   R                  S	U5      US'   [        R
                  " X#5        g )
Nr[  r  )r   r  r  )r"   A1r   AABr  r  r   r   )r   r   r3   r.   r/   r0   )r7   r6  r=   r>   s       r   #test_replace_with_duplicate_columns8TestDataFrameReplace.test_replace_with_duplicate_columnsp  sq     ))LMe9KA3FG
  ;Sk))![9s
f/r   z2020-01c                    [        SU/S-  05      n[        R                  " X15      nUR                  5       nUR	                  SS5      n[        R
                  " XE5        g )NPerrC   r   r   )r   r/   r   r-   r.   r   )r7   r   r*   r   r>   r=   s         r   test_replace_ea_ignore_float1TestDataFrameReplace.test_replace_ea_ignore_float  sN     !,-jj.88:S#&
)r   c                   / SQ/ SQ/ SQ/ SQ/ SQS.n[        US9R                  SSS	.5      nUS
   R                  R                  / SQSS9US
'   US   R                  R                  / SQSS9US'   / SQ/ SQ/ SQ/ SQ/ SQS.n[        US9R                  SSS	.5      nUS
   R                  R                  / SQSS9US
'   US   R                  R                  / SQSS9US'   Sn[        R
                  " [        US9   UR                  SS5      nUR                  SS5      nUR                  SS5      nSSS5        WR                  SSSS.5      n[        R                  " Xd5        g! , (       d  f       N:= f)z\
Test for #23305: to ensure category dtypes are maintained
after replace with direct values
)r   r   rC   r   )r   r   r   r   )g      ?g      @g      @g      @)cat1cat2cat3cat4)obj1obj2obj3obj4)r   r   r   col4col5r   rG  )r   rI  r   T)orderedrI  )r   r   r   z)rA  catXrC  rD  )obj9rF  rG  rH  OThe behavior of Series\.replace \(and DataFrame.replace\) with CategoricalDtyper   r   rM  rE  rO  rB  rN  Nr  r  r   )r   r   rJ  )	r   r5   catreorder_categoriesr/   r   r   r.   r0   r7   
input_dictinput_dfexpected_dictr>   r   r=   s          r    test_replace_value_category_type5TestDataFrameReplace.test_replace_value_category_type  s    !((44

 *-444
 $F+//BB $ C 
 $F+//BB,d C 
 !((44
 -0774
 $F+//BB $ C 
 $F+//BB,d C 
$ 	 ''SA''S1H''7H%%ff5F B
 ERS
f/ BAs   >7E))
E7c                Z   S/S/S/S.n[        US9R                  SSSS.5      nS/S/S	/S.n[        US9R                  SSSS.5      nS
n[        R                  " [        US9   UR                  SSS	S.5      nSSS5        [        R                  " WU5        g! , (       d  f       N&= f)zN
Test to ensure category dtypes are maintained
after replace with dict values
r   rE  rA  r   rK  rG  rM  rO  rN  rP  r   )r   rE  rA  N)r   r5   r/   r   r   r.   r0   rS  s          r   test_replace_dict_category_type4TestDataFrameReplace.test_replace_dict_category_type  s      #efXxH
*-44ZH

 #&6(K-077ZH
$ 	 ''SA%%C&PQF B 	fh/ BAs   &B
B*c                    [        / SQ5      n[        R                  " S5      nUR                  US0SS9n[        / SQ5      n[        R
                  " X45        g )Nr   z^a$rM  Tra   )rM  r   r   )r   recompiler.   r/   r0   )r7   r\   rX   r=   r>   s        r    test_replace_with_compiled_regex5TestDataFrameReplace.test_replace_with_compiled_regex  sH    '

5!UCL5_-
f/r   c                   [        S[        R                  " SS5      [        R                  " SS5      /05      nUR                  S[        R                  " SS5      S005      n[        SSS/0[        S9n[
        R                  " X#5        g )Nr   r   r   r,  r   )r   r   Intervalr.   r6   r/   r0   r>  s       r   test_replace_intervals+TestDataFrameReplace.test_replace_intervals  sr    bkk!Q/Q1BCDES2;;q!#4c":;<cC:.f=
f/r   c                    SSSSS.0n[        S[        R                  " S5      05      nUR                  U5      n[        S[        R                  " S5      05      n[        R
                  " X45        g )Npositiver   r   )u   正面u   中立u   负面rC   )r   r   r  r.   r/   r0   )r7   columns_values_mapr   r=   r>   s        r   test_replace_unicode)TestDataFrameReplace.test_replace_unicode  s_    (Q!q*QRRWWQZ01/0j"''!*56
f/r   c                    U" S/5      R                  S5      nUR                  5       nUR                  S [        R                  05      n[
        R                  " X#5        g )NrG   z|S)r5   r-   r.   r   r   r/   r   )r7   r   r   r>   s       r   test_replace_bytes'TestDataFrameReplace.test_replace_bytes  sF    se$++D188:kk4.)
&r   z!data, to_replace, value, expectedr   boxc                    U" U5      nU" U5      nUR                  U" U5      U5      n[        R                  " X5        g rB  r   )	r7   r   rZ   r*   r>   rm  r   r   r=   s	            r   !test_replace_list_with_mixed_type6TestDataFrameReplace.test_replace_list_with_mixed_type  s8     d#"8,S_e4
)r   valc                   [        SSU/05      nUR                  US 5      n[        SSS /0[        S9n[        R                  " X45        [        SSU/05      nUR                  US 05      n[        R                  " X45        g )Nr   r   r   r  )r7   rq  r\   r=   r>   s        r   %test_replace_value_none_dtype_numeric:TestDataFrameReplace.test_replace_value_none_dtype_numeric  s{     aX'C&cAt9-V<
f/aX'S$K(
f/r   c                    [        SS[        R                  /05      n[        SS[        R                  /0SS/S9nUR                  SS5      n[        R
                  " X#5        g )Nr   nilzanything elser   r   r   )r   r   r=  r.   r/   r0   )r7   r   r>   r=   s       r   test_replace_with_nil_na-TestDataFrameReplace.test_replace_with_nil_na  sU    ubeen-.cORUU#;<QFKUO4
h/r   r   N)g__name__
__module____qualname____firstlineno__r?   r   markparametrizer   r   r]   rp   ru   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'  r0  r5  r9  r?  rD  rK  rR  rX  r   int32int16r   r   r	   r   DatetimeIndexr  rv  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  int8rW  r  r#  r'  r/  r4  r:  r  rb  r>  rW  rZ  r_  rc  rh  rk  r   tupler  ro  rs  rw  __static_attributes__r   r   r   r   r      sv
   A2 [[$
 h' sBFFBFF3 A-0 
+*%/<2 %'"/001!	
$J [[Yu6[[3dE]C0 D 7K$N0"'*R&*PC+J+*0	0+>++ +$) [[BFF,BBFF.CD00& [[Z)JK0 L0 [["U^3S1E5>BXruu-RUUBEE/BC	
	*	*06*>4&0(	+G.,*0&04
02 [[W&EF0 G0	00000&*(J& [[,	*+Q9fi=P3QR69-RXX>69-RXX>	 69-RXX>69-RXX>	 7$7897$678	 9l349l34	 $e (q" 5 (q" 5 (q" 5'
 q"%q"%<q"0E/F/J)KLM$ (4R"8!95'JK(4R"8!95'JK	 4(4Q"7!89:r1%r1%4(4Q"7!89:	 '
A,O^ *6*6-- )* F )* F )* F "'$-^	0 As8aX./As8aX./	 As8aX./As8aX./	 As8aX./As8aX./	 As8aX./As8aX./	Cg	
jV0WjV0&+P001014	.
'0*
001$00	+"0H0@R0hA [[&y2661~OTUoOL
 '!RVVQoVWAq"&&!n?K Aq"&&!n?K q"&&!n?K c
q"&&!n?K/	
@0A@0 [["
aVaV,	-aa0@Aq6Aq6BR/ST,	,8 [[ #I6!""I6 #O<#."O<	
	0	0 [[j!GGAJHHQKJJqMJJqM	
	0	000  [[W&WX[[Wrvvruuo6* 7 Y* [[]RVVQK80 90 [[Wryy';R[[A=N&OP* Q*70r0>000' [[+S3%!qc"S1#sQC USEA3&UQC!se$		
 [[UT5"(($;<* =* [[UQ$45	0 6	00r   r   c            
         \ rS rSr\R
                  R                  S\" S5      \" S5      S.\" S5      \" \" S5      5      S./5      \R
                  R                  SS\	R                  4S	/5      \R
                  R                  S
SS/5      \R
                  R                  SSS/5      \R
                  R                  SSS/5      S 5       5       5       5       5       r\R
                  R                  SSS/5      S 5       rS rS rS rSrg)TestDataFrameReplaceRegexi&  r   r   rV   r   r   zto_replace,valuerA   )rH   z\1\1\1compile_regexTFregex_kwargr%   c                p   [        U5      nUR                  5       nU(       a  [        R                  " U5      nU(       a  Un	S nOSn	UR	                  X#XiS9n
U(       a  U
b   eUn
U[
        R                  L a  [
        R                  nOSnXR                  US   S:H  S4'   [        R                  " X5        g )NTrs   z...r   ry   )
r   r-   r]  r^  r.   r   r   r+   r/   r0   )r7   r   rZ   r*   r  r  r%   r\   r>   rX   r=   expected_replace_vals               r   test_regex_replace_scalar3TestDataFrameReplaceRegex.test_regex_replace_scalar'  s      t_779J/JEJEJwL>!>FBFF?#%66 #( 2FXc]c)3./
f/r   rX   c                   [        S/S/S.5      n[        S/S/S.5      nSn[        R                  " [        US9   UR	                  SSUS9nS S S 5        [        R
                  " WU5        [        S/S/S.5      n[        S/S/S.5      n[        R                  " [        US9   UR	                  SSUS9nS S S 5        [        R
                  " WU5        g ! , (       d  f       N= f! , (       d  f       N7= f)Nr  r  r   r   r   )rZ   r*   rX   1)r   r/   r   r   r.   r0   )	r7   rX   r   expected_df1r   
result_df1df2expected_df2
result_df2s	            r   test_replace_regex_dtype_frame8TestDataFrameReplaceRegex.test_replace_regex_dtype_frameQ  s     se3%01 s!!561''SA1EJJ B
j,7se3%01 s#!78''SA1EJJ B
j,7 BA BAs   C&C)
C&)
C7c                    [        / SQ/ SQS.5      nUR                  S[        R                  S.5      n[        S[        R                  S/[        R                  SS/S.5      n[        R
                  " X#5        g )Nr  )r   r   r   r  r   r  r   r   r>  s       r   +test_replace_with_value_also_being_replacedETestDataFrameReplaceRegex.test_replace_with_value_also_being_replaceda  sY    YY78bff-.Arvvq>AGH
f/r   c                    [        / SQ/ SQS.SS9nUR                  5       nUR                  SS/SS /S	9n[        R                  " X25        g )
N)r   r*  Nthree)r   Nr*  r  r   rG  r   ry   def_r  )r   r-   r.   r/   r0   r  s       r   'test_replace_categorical_no_replacementATestDataFrameReplaceRegex.test_replace_categorical_no_replacementh  sQ    22 
 779U|C;G
f/r   c                   [        S/SS.5      nU(       a&  [        UR                  R                  5      S:X  d   eO%[        UR                  R                  5      S:X  d   eUR	                  SSSSS	9  U(       a&  [        UR                  R                  5      S:X  d   eg [        UR                  R                  5      S:X  d   eg )
Nr   r   r   r   r   r   r   T)rZ   r*   r%   rX   )r   len_mgrblocksr.   )r7   r   r\   s      r   test_replace_object_splitting7TestDataFrameReplaceRegex.test_replace_object_splittingv  s    cU-.rww~~&!+++rww~~&!+++


hb$d
Krww~~&!+++rww~~&!+++r   r   N)ry  rz  r{  r|  r   r}  r~  r   r   r   r   r  r  r  r  r  r  r   r   r   r  r  &  s   [[v,T&\2v,T%(^4	
 [[k26624NO [[_tUm<[[]T5M:[[Yu60 7 ; =0: [[Wudm48 5800,r   r  )returnzdict[str, list[int | str]])r  zdict[str, list[float | str]])
__future__r   r   r]  numpyr   r   pandasr   r   r   r   r   r	   pandas._testing_testingr/   fixturer   r   r   r  r   r   r   <module>r     sq    "  	      4 4 R RE0 E0P0[, [,r   