
    A>ig                        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Js  J	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     f/var/www/html/land-tabula/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-SN r.\R                  R                  SO\/" SP/ SQQ05      SRSS\/" SP/ STQ05      4\/" SP/ SQQ0\R`                  SU9SRSS\/" SP/ STQ0\R`                  SU94\/" SP/ SQQ0\Rb                  SU9SRSS\/" SP/ STQ0\Rb                  SU94\/" SV/ SWQ05      SS\/" SV/ SXQ05      4\/" SY/ SZQ05      S[SS\/" SY/ S\Q05      4\/" S]\2" \3" S^S_S`5      \3" S^SaS`5      \3" S^S_S`5      /5      05      \3" S^S_S`5      \3" S^SaS`5      \/" S]\2" \3" S^SaS`5      /S	-  5      05      4\/" \3" SbScSd5      /Se/Sf.5      SeSg\/" \3" SbScSd5      /Sg/Sf.5      4\/" \4" ShS	SiSjSk9SS\R                  Sl/Sm.5      \5" SnSiSo9\5" SpSiSo9\/" \Rl                  " \5" ShSiSo9\5" SpSiSo9\5" SqSiSo9/5      Ro                  Sj5      SS\R                  Sl/Sm.5      4\/" SRSr/SlSs//5      SrS_\/" S_St/SlSs//5      4\/" SRSr/SlSs//5      SRS_\/" S_St/SlSs//5      4\/" SRSr/SlSs//5      SrSt\/" S_St/SlSs//5      4\/" SRSr/SlSs//5      SRSt\/" S_St/SlSs//5      4/5      Su 5       r8Sv r9Sw r:Sx r;Sy r<Sz r=S{ r>S| r?S} r@S~ rAS rBS rCS rDS rES rFS rGS rHS rIS rJ\R                  R                  S/ SQQ/ SQS.S_SSaS./ SQQ/ SQS.4/ SQQ/ SQS.SSSS./ SQQ/ SQS.4/5      S 5       rK\R                  R                  S\5" S5      \R                  " SR5      \Rb                  " SR5      \R                  " SR5      \R                  " SR5      /5      S 5       rOS rPS rQ\R                  R                  SD/ SQ5      \R                  R                  S\R                  \R2                  /5      S 5       5       rR\R                  R                  S\R                  S_/5      S 5       rS\R                  R                  S\R                  " S5      \R                  " SSS_5      /5      S 5       rV\R                  R                  SSRSRS3.SlSl/SlSl//4SRSlS3.SlSR/SlSl//4/5      S 5       rWS rXS rYS rZS r[S r\S r]\R                  R                  SSR/Sr/SS/SS/4SR/SR/SS/SS/4Sr/Sr/SS/S/4Sr/SR/SS/S/4/5      \R                  R                  S\^\_\R                  /5      S 5       5       ra\R                  R                  SSl\R                  Ss/5      S 5       rbS rc\R                  R                  SDS\R                  " S\eR                  " S5      S9/5      S 5       rg\R                  R                  SDS\R                  " S\eR                  " S5      S9/5      S 5       rhSrig)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XCL d   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                  " XF5        UR	                  5       nUR                  [         R                  /S/SS9nXCL d   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resultmfexpecteds          r   test_replace_inplace)TestDataFrameReplace.test_replace_inplace!   s   <>FF>//3S89=?VV>//4c9: %%'D9   
g'<'<Q'?@  3566"bjj((//013bjj((--.#++BFFA6%**,"5/008???+
f/ %%'"&&A3=   
g'<'<Q'?@r   zto_replace,values,expected\s*\.\s*ze|f|gcrapr   r      hrC   rA   lor   
\s*(\.)\s*z(e|f|g)\1\1\1_crapr   r   ..rK   )e_crapf_crapg_craprC   )rC   rL   rE   rF   erA   fgrC   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  XvL d   e[        U5      n[        R                  " Xs5        g )Nr   efghhelor   )r*   regexr%   TrW   r%   )r   r   r.   r/   r0   )r7   
to_replacevaluesr=   r%   rS   dfr;   s           r   test_regex_replace_list_obj0TestDataFrameReplace.test_regex_replace_list_obj:   sp    T T&\V4<PQZZfZPFZZ
$ZPF<<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 )Nr@   r   rA   r   r   halor   TrW   r   rD   rG   (a|b)rH   rI   a_crapb_craprK   rK   r   rG   r   z(b)rH   rA   rI   rA   rd   rK   rK   rW   r*   )r   r   r   r   r   r.   r/   r0   )	r7   r   dfmixto_replace_resrZ   mix2dfmix2resexpecs	            r   test_regex_replace_list_mixed2TestDataFrameReplace.test_regex_replace_list_mixedq   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                0   [        U5      nSS/n[        R                  S/nUR                  5       nUR	                  X4SSS9nXeL d   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XeL d   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XeL d   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XeL d   e[        US   / SQS.5      n[
        R                  " XW5        g )Nr@   r   rA   Tr%   rW   r   r   rG   ra   rH   rI   rb   re   rf   rg   rW   r*   r%   )r   r   r   r-   r.   r/   r0   )r7   r   ri   rj   rZ   rm   r;   rn   s           r   %test_regex_replace_list_mixed_inplace:TestDataFrameReplace.test_regex_replace_list_mixed_inplace   s   &! &t,&&&!jjl^TN}}s632OPQ
c) (2:&jjl^TN}}s2RST
c) 7/jjl^TN}}s2PQR
c)6/jjl>N}}s2PQR
c)r   c                P   [        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XTL d   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XTL d   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XTL d   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XTL d   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XTL d   e[        US   [        R                  SSS/US   S.5      n[
        R                  " X65        [
        R                  " XF5        g )Nr   r@   Tr`   rr   r   r   r   rG   z\1ty)r   r   .tyrw   rh   rs   .rX   r   r.   r   r   r-   r/   r0   )r7   r   ri   rm   res2r;   rn   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|cC=dK~~
c)
d*mmC#rvvdm;zz|CRVV}dK~~#,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XdL d   eUR                  SS[        R                  00S9nUR                  SS[        R                  00SS9nXeL d   e[        US   SS[        R                  [        R                  /US   S	.5      n[
        R                  " X85        [
        R                  " XH5        [
        R                  " Xx5        [
        R                  " XX5        g )
Nr   r@   Tr`   rr   rX   r   r   r   ry   )	r7   r   ri   rm   rz   res4r;   res3rn   s	            r   test_regex_replace_dict_nested3TestDataFrameReplace.test_regex_replace_dict_nested  s   '"mmS;"78mEzz|zz|s["&&$9:DPTU~~}}C+rvv)>#?}@S;*?$@$O~~#,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                  " XV5        g )	Nfirst)abcbcacabdtyper   rx   Tr`   )z.bczbc.zc.br   r.   r/   r0   )r7   any_string_dtypeusing_infer_stringr   r[   r;   r=   s          r   2test_regex_replace_dict_nested_non_first_characterGTestDataFrameReplace.test_regex_replace_dict_nested_non_first_character  sQ     !!67uES#Jd3g'<=UK
f/r   c                    [        [        / SQ[        S9SS.5      n[        [        / SQ[        S9SS.5      nUR                  SSSS	.05      n[        R
                  " X25        g )
N)QTr   r   r   r      )Typetmp)r      r   r   r   r   r   r   )r   r   )r   r   r6   r.   r/   r0   r7   r[   r=   r;   s       r   %test_regex_replace_dict_nested_gh4115:TestDataFrameReplace.test_regex_replace_dict_nested_gh4115$  s[    5VDQO
 f_F&KTUVWV11%567
f/r   c                r   [        U5      n[        US   [        [        R                  /S-  SS9[        R                  [        R                  [        R                  S/S.5      nUR	                  SS/[        R                  S	S
9nUR                  5       nUR                  5       nUR	                  SS/[        R                  S	S	S9nXuL d   eUR	                  SS/[        R                  S	S9nXvL d   e[        R                  " XC5        [        R                  " XS5        [        R                  " Xc5        g )Nr   r   strr   r   r   r@   za|bTr`   rX   rs   r   r   r   r   r.   r-   r/   r0   )r7   r   r[   rn   rm   rz   r   r;   s           r   !test_regex_replace_list_to_scalar6TestDataFrameReplace.test_regex_replace_list_to_scalar,  s    wS\RVVHqL6ffbffbffc2
 jj+u-rvvTjBwwywwy{E2BFF$PTU~~[%$8PTU~~
c)
d*
d*r   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XTL d   eUR                  5       nUR                  SSSS9nXVL d   e[        US   / SQUS	   S
.5      nUS	   R                  [        5      US	'   [
        R                  " X75        [
        R                  " XG5        [
        R                  " Xg5        g )Nr@   r   Tr`   rr   rs   r   )r   r   r   r   r   r   )r   r.   r-   r5   r6   r/   r0   r7   r   r[   rm   rz   r;   r   rn   s           r   !test_regex_replace_str_to_numeric6TestDataFrameReplace.test_regex_replace_str_to_numericA  s    wjjatj4wwyk1d$G~~wwyKq$G~~3C'RU,WX3Z&&v.c

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XTL d   eUR                  5       nUR                  SS/SSS9nXVL d   e[        US   / S	QSS[        R                  S
/S.5      n[
        R                  " X75        [
        R                  " XG5        [
        R                  " Xg5        g )Nr@   r   r   Tr`   rX   rs   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_numericQ  s    wjj+s+Qdj;wwy{C0!4N~~wwy[#$6aN~~#,^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XvL d   eUR                  5       nUR	                  X4SS9nXxL d   e[        US   SS[        R                  [        R                  /US   S	.5      n	[        R                  " XY5        [        R                  " Xi5        [        R                  " X5        g )
Nr   r@   Tr`   rr   rs   r   r   r   r   )
r7   r   r[   s1s2rm   rz   r;   r   rn   s
             r   $test_regex_replace_series_of_regexes9TestDataFrameReplace.test_regex_replace_series_of_regexesa  s    wS+&'S"&&M"jjtj,wwybd$?~~wwyB$?~~#,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   rB   r   r   r   r   r   )r   r.   r/   r0   r   r   r   object_)r7   r   r[   rn   rm   s        r   /test_regex_replace_numeric_to_object_conversionDTestDataFrameReplace.test_regex_replace_numeric_to_object_conversions  s^    wWS\PSUVjjC 
c)uu{{bjj(((r   rY    )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col3r`   )1000r   r   r   r   r   r.   r   r   r/   r0   )r7   rY   r[   r;   r=   s        r   +test_joint_simple_replace_and_regex_replace@TestDataFrameReplace.test_joint_simple_replace_and_regex_replacez  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" X8S9n[        R                  " X5        g )Nr   Tr`   r.   r/   assert_equal)r7   datarY   r=   frame_or_seriesr   r   requestr   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   rU   rV   r   rx   rO   rA   r   r   rP   rD   rQ   rK   rJ   )rO   rA   rR   rC   )rC   rO   rE   rF   )r   r   r   r   r.   r/   r0   )r7   r   dfobjrj   rZ   rm   rn   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   )sizematchr   dummyalt)r   r   r   r   r/   get_objr.   r   pytestraises
ValueErrorformat)r7   r   serr   r=   r;   msgs          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/US9nSSSS.nUR                  U5      nUR                  [        :H  R	                  5       (       d   eg )N)r'   barbah)r   r'   r   r   r   r   rB   )r   r.   dtypesr6   all)r7   r   r[   mreps        r   test_replace_convert)TestDataFrameReplace.test_replace_convert  sQ    "$9:BR
 a*jjm

f$))++++r   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                6   [        [        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X1L d   e[        R                  " X5        g )Nr   r   float64r   r   r   int64r"   r   r   Tr$   r   r   r.   r/   r0   r   s       r   &test_replace_mixed_int_block_upcasting;TestDataFrameReplace.test_replace_mixed_int_block_upcasting1  s    S#Ji8QF'2
 S#Ji8S!HI6
 As#
f/AsD1||
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  r   s       r   &test_replace_mixed_int_block_splitting;TestDataFrameReplace.test_replace_mixed_int_block_splittingF  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                  " X25        [        [        S	S/S
S9[        SS	/S
S9S.5      nUR                  SS/S	S/5      n[        R                  " X25        g )Nr   r   r	  r   r   r   r
  r  r'   r6   r   r   r  r   s       r   test_replace_mixed2(TestDataFrameReplace.test_replace_mixed2Y  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 )
NrB   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_mixed3s  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   rB   )somestringshereher   r   Int64r   )	r   r   NAr5   r.   r   r   r/   assert_series_equalr7   r[   rm   s      r   1test_replace_nullable_int_with_string_doesnt_castFTestDataFrameReplace.test_replace_nullable_int_with_string_doesnt_cast  sa    aAruu-4UVW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   rB   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!   r2  r   r   r   )r   r   r3  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[        R                  /0SS9nUR                  [        R                  S 05      n[        SSS /0[        S9n[
        R                  " X#5        g )Nr*   *   r"  r   )r   r   r#  r.   r6   r/   r0   r7   r[   r;   r=   s       r   test_replace_NA_with_None.TestDataFrameReplace.test_replace_NA_with_None  sT    "bee-W=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   rB   r   r	  )idr   rB   )      @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                    [        S/S /S.5      nUR                  UR                   Vs0 s H  o"SS0_M	     snSS9n[        S/S /S.5      n[        R                  " X45        g s  snf )Nz#1234#)tickernamez^#$Tr`   z$1234#)r   r.   r3   r/   r0   )r7   r[   r   r;   r=   s        r   test_replace_all_NA(TestDataFrameReplace.test_replace_all_NA  sh    8*tf=>"**E*35#,.*ETR
TFCD
f/ Fs   A%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   rY   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'   g )Nr!   r"   r#   r   r   )r-   r5   r   float32r   r+   r,   r.   r/   r0   r1   )r7   r8   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*+r   z"frame, to_replace, value, expectedintsr   r   rB   r   r   )r   r   rB   r   boolsTFT)TTTcomplex)              ?               @              @ra  )y                rb  rc  
datetime64i  r!      r   i     r&   r'   )dtr   r   20130101
US/Easternnsperiodstzunitr   r  20130102rm  2013010420130103r   r   rG  c                R    UR                  X#5      n[        R                  " XT5        g r@  )r.   r/   r0   )r7   framerY   r*   r=   r;   s         r   test_replace_dtypes(TestDataFrameReplace.test_replace_dtypes  s!    N z1
f/r   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XL a  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  r7  missingr   r   r!   r   asdffd)r!   r   r   r!   )r7  rx  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_reprZ   r[   filledkvr=   r;   r  r*   r   s               r   #test_replace_input_formats_listlike8TestDataFrameReplace.test_replace_input_formats_listlikeY  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$%?F%%% . 	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XL a  M   e   [        R                  " X5        g s  snnf ! , (       d  f       N= f)Nr   ry  rz  r  r   z.value argument must be scalar, dict, or Seriesr   r7  Tr$   )r   r   r   r~  r.   r  r/   r0   r   r   	TypeErrorr-   )
r7   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%%c2t%<F%%%  	f/ G 10s   , E"
$E((
E6c                    g r@  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.[        S9nUR                  U5      n[        R                  " XT5        g NStrongly AgreeAgreeNeutralDisagreeStrongly Disagree)r   r   r   rB   r   r   r   r   rB   r!   r   )r  r  r  r  r  r   r6   r.   r/   r$  r7   r   answerweightsr=   r;   s         r   test_replace_dict_no_regex/TestDataFrameReplace.test_replace_dict_no_regex  sr    #& #	
 !"
 aA!a8G(
v0r   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.[        S9nUR                  U5      n[        R                  " XT5        g r  r  r  s         r   test_replace_series_no_regex1TestDataFrameReplace.test_replace_series_no_regex  sz    #& #	
 "#%&
 aA!a8G(
v0r   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   rS  rY   r*   )r   r   r   r.   r/   r0   )r7   r[   res1rz   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   rB   )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   rB   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[   rrO   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[   rm   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SSSS9S[        R                  S/S.5      nUR	                  [        R                  S	5      n[        [        S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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  rB   ri  rj  rk  r   r   r  r   r   r   r   r	  r   ro  rp  rq  rr  r"   rR  z
US/Pacific)r   r	   r   r   r.   r   r/   r0   r1   r   rg  as_unitr-   r2   r   rA  
tz_convertr<  s       r   test_replace_datetimetz,TestDataFrameReplace.test_replace_datetimetz'  s    
A,TR^
 BFFA&
A,TRIY7
 	f/1
f/Arvv&
A,TR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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 r@  r   )r7   r[   rY   expr=   r;   s         r   test_replace_commutative-TestDataFrameReplace.test_replace_commutative  s2    ( r]S>J'
f/r   replacer20170827c                    [        S/[        S9nUR                  XS.5      n[        U/[        S9n[        R                  " X45        g )Nr   r   r   )r   r6   r.   r/   r0   )r7   r  r[   r;   r=   s        r   test_replace_replacer_dtype0TestDataFrameReplace.test_replace_replacer_dtype  s?     uF+(:;hZv6
f/r   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   rB   r   r!   r"  r   r   
   )r  r   rB   r   r!   r   r<  s       r   !test_replace_after_convert_dtypes6TestDataFrameReplace.test_replace_after_convert_dtypes  sC    /w?Ar"e%56gF
f/r   c                    [        / SQ/ SQS.5      nSn[        R                  " [        US9   UR	                  S 5        S S S 5        g ! , (       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.*r   c                "    U R                  5       $ r@  )stripr+  s    r   <lambda>FTestDataFrameReplace.test_replace_invalid_to_replace.<locals>.<lambda>  s
    r   )r   r   r   r  r.   )r7   r[   r   s      r   test_replace_invalid_to_replace4TestDataFrameReplace.test_replace_invalid_to_replace  sH     /8JKL0 	 ]]9C0JJ*+ 100s   A


A)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_dtypes  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"   A1r   AABr  r  r   r   )r   r   r3   r.   r/   r0   )r7   r  r;   r=   s       r   #test_replace_with_duplicate_columns8TestDataFrameReplace.test_replace_with_duplicate_columns  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PerrB   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   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[        R                  " US S 2S4   SS/S9n[        XES	.5      nUR                  US5      n[        R                  " Xv5        S
n[        R                  " [        US9   [        R                  " X65        S S S 5        UR                  USSS9nXsL d   e[        R                  " X65        g ! , (       d  f       N<= f)Nr   r   r   r   rE  )r3   r   r   )
categoriesr   z:DataFrame.iloc\[:, 0\] \(column name=\"a\"\) are differentr   Tr$   )r   r   arrayr   Categoricalr.   r/   r0   r   r   AssertionError)	r7   replace_dict
final_datar[   r   r   r=   r;   r   s	            r   "test_categorical_replace_with_dict7TestDataFrameReplace.test_categorical_replace_with_dict  s     AA'#s:NXXj)
NN:ad+A?NN:ad+A?1-.L!,
f/N]]>5!!"/ 6 L!T:||
b+ 65s   6D
D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'   UR	                  S 5      nUR	                  S 5      nUR	                  S 5      nUR                  SSSS.5      n[
        R                  " XT5        g)z\
Test for #23305: to ensure category dtypes are maintained
after replace with direct values
)r   r   rB   r   )r   r   r   r   )g      ?g      @g      @g      @)cat1cat2cat3cat4)obj1obj2obj3obj4)r   r   r   col4col5r   rE  )r   r*  r   T)orderedr*  )r   r   r   z)r"  catXr$  r%  )obj9r'  r(  r)  c                Z    U R                  S5      R                  R                  SS05      $ )NrE  r   r.  r5   catrename_categoriesr  s    r   r  GTestDataFrameReplace.test_replace_value_category_type.<locals>.<lambda>(  s"    ahhz*..@@#sLr   c                Z    U R                  S5      R                  R                  SS05      $ )NrE  r&  r0  r2  r  s    r   r  r5  +  #    ahhz*..@@&&AQRr   c                Z    U R                  S5      R                  R                  SS05      $ )NrE  r#  r/  r2  r  s    r   r  r5  .  r7  r   r
  r	  r   )r   r   r+  N)r   r5   r3  reorder_categoriesapplyr/   r0   r7   
input_dictinput_dfexpected_dictr=   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 

 >>L
 >>R
 R
 ERS
f/r   c                    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UR                  S
 5      n[        R                  " XT5        g)zN
Test to ensure category dtypes are maintained
after replace with dict values
r   r&  r"  r   r,  rE  r.  r0  r/  c                @    U R                   R                  SSSS.5      $ )Nr.  r0  r/  )r   r&  r"  )r3  r4  r  s    r   r  FTestDataFrameReplace.test_replace_dict_category_type.<locals>.<lambda>K  s    aee--66:r   N)r   r5   r:  r/   r0   r;  s         r   test_replace_dict_category_type4TestDataFrameReplace.test_replace_dict_category_type4  s      #efXxH
*-44ZH

 #&6(K-077ZH

 
 	f/r   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$r.  Tr`   )r.  r   r   )r   recompiler.   r/   r0   )r7   r[   rW   r;   r=   s        r    test_replace_with_compiled_regex5TestDataFrameReplace.test_replace_with_compiled_regexR  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_intervalsZ  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   负面rB   )r   r   r  r.   r/   r0   )r7   columns_values_mapr   r;   r=   s        r   test_replace_unicode)TestDataFrameReplace.test_replace_unicodea  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 )NrF   z|S)r5   r-   r.   r   r   r/   r   )r7   r   r   r=   s       r   test_replace_bytes'TestDataFrameReplace.test_replace_bytesi  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 r@  r   )	r7   r   rY   r*   r=   rW  r   r   r;   s	            r   !test_replace_list_with_mixed_type6TestDataFrameReplace.test_replace_list_with_mixed_typep  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   r[  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)  zfloat64[pyarrow]pyarrow)marksc                   [        S[        R                  S/[        S[        R
                  S/US9S.5      nUR                  [        R
                  [        R                  5      nU(       a  UnOb[        S[        R                  S/[        S[        R                  S/US9S.5      n[        R                  " UR                  S   5      (       d   e[        R                  " XE5        g )Nr   r   r   r  r  )r   r   r   r   r   r#  r.   isnanr+   r/   r0   )r7   r   using_nan_is_nar[   r;   r=   s         r   &test_replace_na_to_nan_nullable_floats;TestDataFrameReplace.test_replace_na_to_nan_nullable_floats  s     Arvvq>fa]%.PQRBEE266*H Nvq"&&!nE'JKH 88HLL.////
f/r   r"  zint64[pyarrow]c                    [        / SQUS9nUR                  [        R                  S5      nU(       a  [        / SQUS9nOUn[        R
                  " XE5        g )N)r   r   Nr   r7  )r   r   r7  )r   r.   r   r   r/   r$  )r7   r   rg  r   r;   r=   s         r   test_replace_nan_nullable_ints3TestDataFrameReplace.test_replace_nan_nullable_ints  sF     \/RVVR(j6HH
v0r   r   N)j__name__
__module____qualname____firstlineno__r>   r   markparametrizer   r   r\   ro   rt   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&  r/  r4  r8  r=  rB  rI  rO  rV  rZ  r   int32int16r   r   r	   r   DatetimeIndexr  ru  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  int8rY  r	  r  r  r  r
  r  PeriodrL  r  r  r?  rD  rI  rM  rR  rU  r   tupler  rY  r]  ra  paramtd
skip_if_norh  rk  __static_attributes__r   r   r   r   r       s	   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&0*(5 [[,	*+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	 '&l  ^	 *6*6-- )* F )* F )* F "'$-^	4 As8aX./As8aX./	 As8aX./As8aX./	 As8aX./As8aX./	 As8aX./As8aX./	yb	
eL0MeL0&+P001,10	.
'0*
001$00	+R0hA [[ #I6!""I6 #O<#."O<	
	0	0 [[j!GGAJHHQKJJqMJJqM	
	0	00	, [[W&WX[[Wrvvruuo6* 7 Y* [[]RVVQK80 90 [[Wryy';R[[A=N&OP* Q* [["
aVaV,	-aa0@Aq6Aq6BR/ST,	,(80t0<000' [[+S3%!qc"S1#sQC USEA3&UQC!se$		
 [[UT5"(($;<* =* [[UQ$45	0 6	00 [[LL+2==3KL	
00  [[LL)y1IJ	
11r   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      \R
                  R                  SSS/5      S 5       5       rS rS rS rSrg)TestDataFrameReplaceRegexi  r   r   rU   r   r   zto_replace,valuer@   )rG   z\1\1\1compile_regexTFregex_kwargr%   c                r   [        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  XL d   eUn
U[
        R                  L a  [
        R                  nOSnXR                  US   S:H  S4'   [        R                  " X5        g )NTrr   z...r   rx   )
r   r-   rG  rH  r.   r   r   r+   r/   r0   )r7   r   rY   r*   r  r  r%   r[   r=   rW   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   rW   r*   r   1c                t   [        S/S/S.5      nUS:X  a  [        OS n[        U/U/S.US9nUR                  SX!S9n[        R                  " Xe5        [        S/S/S.5      nU(       a  [        U/S/S.US9nO[        [        U/US9S/S.5      nUR                  SX!S9n	[        R                  " X5        g )Nr  r  r   r   )rY   r*   rW   r  )r   r6   r.   r/   r0   r   )
r7   rW   r*   r   r   expected_df1
result_df1df2expected_df2
result_df2s
             r   test_replace_regex_dtype_frame8TestDataFrameReplaceRegex.test_replace_regex_dtype_frame  s     se3%01  1*$ weW!=UK[[Cu[J

j7se3%01$E7#%?uML$65'+Gse%TUL[[Cu[J

j7r   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_replaced  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   rE  r   rx   def_r  )r   r-   r.   r/   r0   r   s       r   'test_replace_categorical_no_replacementATestDataFrameReplaceRegex.test_replace_categorical_no_replacement	  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)rY   r*   r%   rW   )r   len_mgrblocksr.   )r7   r   r[   s      r   test_replace_object_splitting7TestDataFrameReplaceRegex.test_replace_object_splitting  s    cU-.rww~~&!+++rww~~&!+++


hb$d
Krww~~&!+++rww~~&!+++r   r   N)rm  rn  ro  rp  r   rq  rr  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[[Wq#h/8 0 58&00,r   r~  )returnzdict[str, list[int | str]])r  zdict[str, list[float | str]])
__future__r   r   rG  numpyr   r   pandas.util._test_decoratorsutil_test_decoratorsrz  pandasr   r   r   r   r   r	   pandas._testing_testingr/   fixturer   r   r   r~  r   r   r   <module>r     sw    "  	   ) )    4 4 R R_1 _1D-`, `,r   