
    .ig                        d dl mZ d dlmZ d dlZd dlZd dlZd dlmc m	Z
 d dlZd dlmZmZmZmZmZ d dlmZ ej*                  dd       Zej*                  dd       Z G d d      Z G d	 d
      Zy)    )annotations)datetimeN)	DataFrameIndexSeries	Timestamp
date_rangec                 B    t        t        d            t        d      dS )N   ab..ab)listrange     e/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/frame/methods/test_replace.pymix_abr      s    eAhd6l33r   c                 h    t        t        d            t        d      ddt        j                  dgdS )Nr   r   r   r   dr   r   c)r   r   npnanr   r   r   mix_abcr      s(    eAhd6l#sBFFC9PQQr   c                     e Zd Zd Zej
                  j                  dddgej                  dgddej                  ej                  gdgdz  d	gz   g d
dfddgddgg dg dg ddfddgddgg dg dg d
dfg      ej
                  j                  dddg      ej
                  j                  dddg      d                      Z	d Z
d Zd Zd Zd Zd Zd  Zd! Zd" Zd# Zd$ Zej
                  j                  d%ej                  d&d'd&ej                  d(g      d)        Zej
                  j                  d*g d+      d,        Zej
                  j                  d-d.d/gd0d1d2d3d4gfg d5d6ej0                  id1ej0                  ej0                  gfg      d7        Zd8 Zd9 Zd: Zd; Zd< Zd= Zd> Z d? Z!d@ Z"dA Z#dB Z$ej
                  j                  dCg dD      dE        Z%dF Z&dG Z'dH Z(dI Z)dJ Z*dK Z+dL Z,dM Z-ej
                  j                  dN e.dOg dPi      dQdR e.dOg dSi      f e.dOg dPiej^                  T      dQdR e.dOg dSiej^                  T      f e.dOg dPiej`                  T      dQdR e.dOg dSiej`                  T      f e.dUg dVi      dd e.dUg dWi      f e.dXg dYi      dZdR e.dXg d[i      f e.d\ e1 e2d]d^d_       e2d]d`d_       e2d]d^d_      g      i       e2d]d^d_       e2d]d`d_       e.d\ e1 e2d]d`d_      gdz        i      f e. e2dadbdc      gddgde      dddf e. e2dadbdc      gdfgde      f e. e3dgddhdij      dRej                  dkgdl       e4dmdhn       e4dodhn       e. ejj                   e4dgdhn       e4dodhn       e4dpdhn      g      jm                  di      dRej                  dkgdl      f e.dQdqgdkdrgg      dqd^ e.d^dsgdkdrgg      f e.dQdqgdkdrgg      dQd^ e.d^dsgdkdrgg      f e.dQdqgdkdrgg      dqds e.d^dsgdkdrgg      f e.dQdqgdkdrgg      dQds e.d^dsgdkdrgg      fg      dt        Z7du Z8dv Z9dw Z:dx Z;dy Z<dz Z=d{ Z>d| Z?d} Z@d~ ZAd ZBd ZCd ZDd ZEd ZFd ZGd ZHd ZIej
                  j                  dg dPg ddd^dd`dg dPg ddfg dPg ddddddg dPg ddfg      d        ZJej
                  j                  d e4d       ej                  dQ       ej`                  dQ       ej                  dQ       ej                  dQ      g      d        ZNd ZOd ZPej
                  j                  dCg d      ej
                  j                  dej                  ej0                  g      d               ZQej
                  j                  dej                  d^g      d        ZRej
                  j                  d ej                  d       ej                  dRd^      g      d        ZUej
                  j                  ddQdQd2dkdkgdkdkggfdQdkd2dkdQgdkdkggfg      d        ZVd ZWd ZXd ZYd ZZd Z[d Z\ej
                  j                  ddQgdqgdRgdRgfdQgdQgdRgdRgfdqgdqgdRgdgfdqgdQgdRgdgfg      ej
                  j                  de]e^ej                  g      d               Z`ej
                  j                  ddkej                  drg      d        Zad Zbej
                  j                  dCd ej                  d edj                  d            g      d        Zfej
                  j                  dCd ej                  d edj                  d            g      d        Zgy)TestDataFrameReplacec                   t         j                  |j                  |j                  d d df<   t         j                  |j                  |j                  dd  df<   |j	                         }|j                  t         j                  dd      }||u sJ t        j                  ||j                  d             |}t         j                  |j                  dd|j                  j                  d      f<   t         j                  |j                  d	d |j                  j                  d      f<   |j                  t         j                  d      }|j	                         }|d   j                  t              |d<   |j                  d
      }t        j                  ||       |j	                         }|j                  t         j                  gdgd      }||u sJ t        j                  ||j                  d             y )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_inplacez)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???+
fh/ %%'"&&A3=   
g~'<'<Q'?@r   zto_replace,values,expected\s*\.\s*ze|f|gcrapr   r      hrA   r?   lor   
\s*(\.)\s*z(e|f|g)\1\1\1_crapr   r   ..rI   )e_crapf_crapg_craprA   )rA   rJ   rC   rD   er?   fgrA   r$   TFuse_value_regex_argsc                   t        t        d      t        d      t        d      d      }|r|j                  |||      }n|j                  ||d|      }|r||u sJ t        |      }t        j                  ||       y )Nr   efghhelor   )r)   regexr$   TrU   r$   )r   r   r-   r.   r/   )r6   
to_replacevaluesr<   r$   rQ   dfr:   s           r   test_regex_replace_list_objz0TestDataFrameReplace.test_regex_replace_list_obj:   sx    T T&\V4<PQZZfJZPFZZ
F$ZPFR<<X&
fh/r   c                   t        |      }ddg}t        j                  dg}t        t	        d            t        d      t        d      d}t        |      }|j                  ||d	      }t        |d   dd
t        j                  t        j                  gg dd      }t        j                  ||       ddg}ddg}|j                  ||d	      }t        |d   g dd      }t        j                  ||       g d}g d}|j                  ||d	      }t        |d   g dd      }t        j                  ||       g d}g d}|j                  ||      }t        |d   g dd      }t        j                  ||       y )Nr>   r   r?   r   r   halor   TrU   r   rB   rE   (a|b)rF   rG   a_crapb_craprI   rI   r   rE   r   z(b)rF   r?   rG   r?   ra   rI   rI   rU   r)   )r   r   r   r   r   r-   r.   r/   )	r6   r   dfmixto_replace_resrX   mix2dfmix2resexpecs	            r   test_regex_replace_list_mixedz2TestDataFrameReplace.test_regex_replace_list_mixedq   sp   &! &t,&&&!%(^$v,T&\J4nn^V4n@#Yc2662662,
 	c5) (2:&mmNF$m?s2RST
c5) 7/mmNF$m?s2PQR
c5)6/mm.m?s2PQR
c5)r   c                P   t        |      }ddg}t        j                  dg}|j                         }|j	                  ||dd      }||u sJ t        |d   ddt        j                  t        j                  gd      }t        j                  ||       dd	g}d
dg}|j                         }|j	                  ||dd      }||u sJ t        |d   g dd      }t        j                  ||       g d}g d}|j                         }|j	                  ||dd      }||u sJ t        |d   g dd      }t        j                  ||       g d}g d}|j                         }|j	                  ||d      }||u sJ t        |d   g dd      }t        j                  ||       y )Nr>   r   r?   Tr$   rU   r   r   rE   r^   rF   rG   r_   rb   rc   rd   rU   r)   r$   )r   r   r   r,   r-   r.   r/   )r6   r   rf   rg   rX   rj   r:   rk   s           r   %test_regex_replace_list_mixed_inplacez:TestDataFrameReplace.test_regex_replace_list_mixed_inplace   s   &! &t,&&&!jjl^VTN}}s632OPQ
c5) (2:&jjl^VTN}}s2RST
c5) 7/jjl^VTN}}s2PQR
c5)6/jjl>N}}s2PQR
c5)r   c                   t        |      }|j                  ddidt        j                  id      }|j	                         }|j                  ddidt        j                  idd      }||u sJ t        |d   ddt        j                  t        j                  g|d   d      }t        j                  ||       t        j                  ||       |j                  dd	idd
id      }|j	                         }|j                  dd	idd
idd      }||u sJ t        |d   g d|d   d      }t        j                  ||       t        j                  ||       |j                  dd	idd
i      }|j	                         }|j                  dd	idd
id      }||u sJ t        |d   g d|d   d      }t        j                  ||       t        j                  ||       t        |d   t        j                  dddg|d   d      }|j                  ddt        j                  id      }|j	                         }|j                  ddt        j                  idd      }||u sJ t        j                  ||       t        j                  ||       |j                  ddt        j                  id      }|j	                         }|j                  ddt        j                  id      }||u sJ t        |d   t        j                  dddg|d   d      }t        j                  ||       t        j                  ||       y )Nr   r>   Tr]   rn   r   r   r   rE   z\1ty)r   r   .tyrr   re   ro   .rV   r   r-   r   r   r,   r.   r/   )r6   r   rf   rj   res2r:   rk   s          r   test_regex_replace_dict_mixedz2TestDataFrameReplace.test_regex_replace_dict_mixed   s*   '" mmS+.bffTmJzz|+bfft4  
 ~~#,c3%?gclS
 	c5)
dE* mmS-03.mMzz|- 3.$d  
 ~~#,%=GCLQ
 	c5)
dE*mm3"6sGnmMzz|&sGnd  
 ~~#,%=GCLQ
 	c5)
dE* #,bffc3%<73<P
 mmC#rvvdm;zz|cC=dK~~
c5)
dE*mmC#rvvdm;zz|CRVV}dK~~#,bffc3%<73<P
 	c5)
dE*r   c                   t        |      }|j                  ddt        j                  iid      }|j	                         }|j	                         }|j                  ddt        j                  iidd      }||u sJ |j                  ddt        j                  ii      }|j                  ddt        j                  iid      }||u sJ t        |d   ddt        j                  t        j                  g|d   d	      }t        j                  ||       t        j                  ||       t        j                  ||       t        j                  ||       y )
Nr   r>   Tr]   rn   rV   r   r   r   rt   )	r6   r   rf   rj   ru   res4r:   res3rk   s	            r   test_regex_replace_dict_nestedz3TestDataFrameReplace.test_regex_replace_dict_nested  s*   '"mmS;"78mEzz|zz|s["&&$9:DPTU~~}}C+rvv)>#?}@S;*?$@$O~~#,c3%?gclS
 	c5)
dE*
dE*
dE*r   c                    |}t        dg di|      }|j                  ddid      }t        dg di|      }t        j                  ||       y )	Nfirst)abcbcacabdtyper   rs   Tr]   )z.bczbc.zc.br   r-   r.   r/   )r6   any_string_dtypeusing_infer_stringr   rY   r:   r<   s          r   2test_regex_replace_dict_nested_non_first_characterzGTestDataFrameReplace.test_regex_replace_dict_nested_non_first_character  sS     !!67uES#Jd3g'<=UK
fh/r   c                    t        t        g dt              dd      }t        t        g dt              dd      }|j                  dddd	i      }t	        j
                  ||       y )
N)QTr   r   r   r      )Typetmp)r      r   r   r   r   r   r   )r   r   )r   r   r5   r-   r.   r/   r6   rY   r<   r:   s       r   %test_regex_replace_dict_nested_gh4115z:TestDataFrameReplace.test_regex_replace_dict_nested_gh4115$  s]    5VDQO
 f_F&KTUVWV11%567
fh/r   c                   t        |      }t        |d   t        t        j                  gdz  d      t        j                  t        j                  t        j                  dgd      }|j	                  ddgt        j                  d	
      }|j                         }|j                         }|j	                  ddgt        j                  d	d	      }||u sJ |j	                  ddgt        j                  d	      }||u sJ t        j                  ||       t        j                  ||       t        j                  ||       y )Nr   r   strr   r   r   r>   za|bTr]   rV   ro   r   r   r   r   r-   r,   r.   r/   )r6   r   rY   rk   rj   ru   ry   r:   s           r   !test_regex_replace_list_to_scalarz6TestDataFrameReplace.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~~
c5)
dE*
dE*r   c                   t        |      }|j                  ddd      }|j                         }|j                  dddd      }||u sJ |j                         }|j                  ddd      }||u sJ t        |d   g d|d	   d
      }|d	   j                  t              |d	<   t        j                  ||       t        j                  ||       t        j                  ||       y )Nr>   r   Tr]   rn   ro   r   )r   r   r   r   r   r   )r   r-   r,   r4   r5   r.   r/   r6   r   rY   rj   ru   r:   ry   rk   s           r   !test_regex_replace_str_to_numericz6TestDataFrameReplace.test_regex_replace_str_to_numericA  s    wjjatj4wwyk1d$G~~wwyKq$G~~3C'RU,WX3Z&&v.c

c5)
dE*
dE*r   c                   t        |      }|j                  ddgdd      }|j                         }|j                  ddgddd      }||u sJ |j                         }|j                  ddgdd      }||u sJ t        |d   g d	ddt        j                  d
gd      }t        j                  ||       t        j                  ||       t        j                  ||       y )Nr>   r   r   Tr]   rV   ro   r   )r   r   r   r   r   r   )r   r-   r,   r   r   r.   r/   r   s           r   (test_regex_replace_regex_list_to_numericz=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
 	c5)
dE*
dE*r   c                *   t        |      }t        ddi      }t        dt        j                  i      }|j	                  ||d      }|j                         }|j	                  ||dd      }||u sJ |j                         }|j	                  ||d      }||u sJ t        |d   ddt        j                  t        j                  g|d   d	      }	t        j                  ||	       t        j                  ||	       t        j                  ||	       y )
Nr   r>   Tr]   rn   ro   r   r   r   r   )
r6   r   rY   s1s2rj   ru   r:   ry   rk   s
             r   $test_regex_replace_series_of_regexesz9TestDataFrameReplace.test_regex_replace_series_of_regexesa  s    wS+&'S"&&M"jjRtj,wwyb"d$?~~wwyBb$?~~#,c3%?gclS
 	c5)
dE*
dE*r   c                    t        |      }t        g d|d   |d   d      }|j                  dd      }t        j                  ||       |j                  j
                  t        j                  k(  sJ y )N)r   r   r   r@   r   r   r   r   r   )r   r-   r.   r/   r   r   r   object_)r6   r   rY   rk   rj   s        r   /test_regex_replace_numeric_to_object_conversionzDTestDataFrameReplace.test_regex_replace_numeric_to_object_conversions  s`    wWS\PSUVjjC 
c5)uu{{bjj(((r   rW    )r   ,)r   r   c                    t        g dg dg dd      }|j                  |      }t        g ddt        j                  dgg dd      }t	        j
                  ||       y )	N)z1,000r   3)r   r   r   r   col1col2col3r]   )1000r   r   r   r   r   r-   r   r   r.   r/   )r6   rW   rY   r:   r<   s        r   +test_joint_simple_replace_and_regex_replacez@TestDataFrameReplace.test_joint_simple_replace_and_regex_replacez  sc    
 +&'
 *-*bffc*'
 	fh/r   metachar)z[]z()z\dz\wz\sc                    t        d|dgi      }|j                  d|dii      }t        dddgi      }t        j                  ||       y )Nr   elseparenr   )r6   r   rY   r:   r<   s        r   test_replace_regex_metacharz0TestDataFrameReplace.test_replace_regex_metachar  sR    h/01S8W"567cGV#456
fh/r   zdata,to_replace,expectedxaxxbxr   r   r   xcxxdx)r   r   r   ^\s*$c                    |} |||      }	|	j                  |d      }
 |||      }t        j                  |
|       y )Nr   Tr]   r-   r.   assert_equal)r6   datarW   r<   frame_or_seriesr   r   requestr   objr:   s              r   test_regex_replace_string_typesz4TestDataFrameReplace.test_regex_replace_string_types  sA    $ !d%0Zt4"859
)r   c                ^   t         j                  |j                  |j                  d d df<   t         j                  |j                  |j                  dd  df<   |j	                  t         j                  d      }t        j                  ||j                  d             t        j                  |j	                  dt         j                        |       t         j                  |j                  |j                  d d df<   t         j                  |j                  |j                  dd  df<   d|j                  |j                  d d df<   t        ddg      }t        j                  ||j	                  dd	             t        d
t        j                  d      fdt        j                  d      fg      }|j	                  d
t         j                        }t        t         j                  t        j                  d      fdt        j                  d      fg      }t        j                  ||       y )Nr    r!   r"       חBr   r   r+      -2015010120150102)r   r   r*   r+   r-   r.   r/   r0   r   pdto_datetime)r6   r7   zero_filledrY   df1expected_dfs         r   test_replacez!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                   t        d      t        d      t        d      d}t        |      }ddg}t        j                  dg}|j	                  ||      }t        dd	t        j                  t        j                  gg d
g dd      }t        j                  ||       ddg}ddg}|j	                  ||      }t        g dg dg dd      }t        j                  ||       y )Nr   rS   rT   r   rs   rM   r?   r   r   rN   rB   rO   rI   rH   )rM   r?   rP   rA   )rA   rM   rC   rD   )r   r   r   r   r-   r.   r/   )r6   r   dfobjrg   rX   rj   rk   s          r   test_replace_listz&TestDataFrameReplace.test_replace_list  s    LtF|$v,G# &&&!mmNF33/,,
 	c5) !mmNF3+,)
 	c5)r   c                   t        ddgg t        j                  dgg      }t        d|i      }t	        j
                  ||      }|}|j                  g t        j                        }t	        j                  ||       d}t        j                  t        |j                  d            5  |j                  t        j                  g i       d d d        t        j                  t        |j                  d	            5  |j                  t        j                  d
dgi       d d d        y # 1 sw Y   axY w# 1 sw Y   y xY w)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)r6   r   serr   r<   r:   msgs          r   test_replace_with_empty_listz1TestDataFrameReplace.test_replace_with_empty_list  s    sCj"bffqc23%jjo.R(
)I 	 ]]:SZZQZ-?@ 	&KK%	&]]:SZZQZ-?@ 	4KK'5!123	4 	4	& 	&	4 	4s   )"D+>$D7+D47E c                D   t        ddddddd      }|j                  dddd      }t        ddddddd      }t        j                  ||       |j                  d|j	                               }t        j                  ||       t        ddddddd      }t        ddd      }|j                  |ddd      }t        ddddddd      }t        j                  ||       |j                  ||j	                               }t        j                  ||       y )	N        r   r          @r   )zeroone      ?      ?)r   r-   r.   r/   meanr   )r6   rY   r:   r<   ss        r   test_replace_series_dictz-TestDataFrameReplace.test_replace_series_dict  s   c 21;MNOAC89Ca&8sQTAUVW
fh/Arwwy)
fh/ c 21;MNOC,-AC89Ca&8sQTAUVW
fh/Arwwy)
fh/r   c                    t        g dg dg|      }dddd}|j                  |      }|j                  t        k(  j	                         sJ y )N)r&   barbah)r   r&   r   r   r   r   r@   )r   r-   dtypesr5   all)r6   r   rY   mreps        r   test_replace_convertz)TestDataFrameReplace.test_replace_convert  sN    "$9:BR
 a*jjm

f$))+++r   c                8   |}t         j                  |j                  dd|j                  j	                  d      f<   t         j                  |j                  dd |j                  j	                  d      f<   |j                  t         j                  d      }|j                         }|d   j                  t              |d<   |j                  d      }t        j                  ||       |j                         }|d   j                  t              |d<   t        j                  |j                  dt         j                        |       |j                  t         j                  d      }|j                         }|d   j                  t              |d<   |j                  d      }t        j                  ||       |j                         }|d   j                  t              |d<   t        j                  |j                  dt         j                        |       y )	Nr    r%   r&   r'   r!   ir(   r   )r   r   r1   r2   r3   r-   r,   r4   r5   r0   r.   r/   )r6   r8   r;   r:   r<   	expected2s         r   test_replace_mixedz'TestDataFrameReplace.test_replace_mixed  s   3566"bjj((//013bjj((--.#++BFFC8%**,"5/008???-
fh/&++-	$U+226:	%
fnnS"&&99E#++BFFD9%**,"5/008???.
fh/&++-	$U+226:	%
fnnT266:IFr   c                T   t        t        ddgd      t        ddgd      d      }t        t        ddgd      t        d	dgd      d      }|j                  dd	      }t        j                  ||       |j                  dd	d
      }||u sJ t        j                  ||       y )Nr   r   float64r   r   r   int64r!   r   r   Tr#   r   r   r-   r.   r/   r   s       r   &test_replace_mixed_int_block_upcastingz;TestDataFrameReplace.test_replace_mixed_int_block_upcasting1  s    S#Ji8QF'2
 S#Ji8S!HI6
 As#
fh/AsD1||
b(+r   c                ,   t        t        ddgd      t        ddgd      t        ddgd      d	      }t        t        ddgd      t        d
dgd      t        ddgd      d	      }|j                  dd
      }t        j                  ||       y )Nr   r   r   r   r   r   r   r   r!   r   Cr   r   r   s       r   &test_replace_mixed_int_block_splittingz;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#
fh/r   c                   t        t        ddgd      t        ddgd      d      }t        t        dd	gd
      t        ddgd      d      }|j                  dd	      }t        j                  ||       t        t        d	dgd
      t        dd	gd
      d      }|j                  ddgd	dg      }t        j                  ||       y )Nr   r   r   r   r   r   r   r   r&   r5   r   r   r   r   s       r   test_replace_mixed2z(TestDataFrameReplace.test_replace_mixed2Y  s    S#Ji8QF'2
 QJh7QF'2
 Au%
fh/UEN(;QJh7
 QFUEN3
fh/r   c                   t        t        ddgd      t        ddgd      d      }|j                  d|j                         j	                               }|j                         j                  d      }|j                         }|j                  d   |j                  d<   |j                  d   |j                  d	<   t        j                  ||       y )
Nr@   r   r   r   r   r   r   r   r   r   r   )
r   r   r-   r   to_dictr,   r4   r1   r.   r/   )r6   rY   r:   r<   r   s        r   test_replace_mixed3z(TestDataFrameReplace.test_replace_mixed3s  s    !Qw/faV76ST
 Arwwy0023779##I.GGIffQidffQid
fh/r   c                    t        dddt        j                  gg dd      }|d   j                  d      |d<   |j	                  dt
        j                        }t        j                  |d   |d          y )	Nr   r   r@   )somestringshereher   r   Int64r   )	r   r   NAr4   r-   r   r   r.   assert_series_equalr6   rY   rj   s      r   1test_replace_nullable_int_with_string_doesnt_castzFTestDataFrameReplace.test_replace_nullable_int_with_string_doesnt_cast  sa    aAruu-4UVWS'..)3jjRVV$
s3xC1r   r   )booleanr  Float64c                    t        g d|      }t        g d|d      }|j                  dd      }t        g d|d      }t        j                  ||       y )N)r   r   r   r   )r!   r   xr   r  X)r!   r   r  r   r   r-   r.   r/   )r6   r   nullable_serrY   r:   r<   s         r   !test_replace_with_nullable_columnz6TestDataFrameReplace.test_replace_with_nullable_column  sN     iu5_<@AC%?FG
fh/r   c                    t        dt        dd      i      }t        dg di      }|j                  ddddi      }t        j                  ||       |j                  ddd      }t        j                  ||       y )Nr   r   r    r   r   r@   r   r   r   )r   r   r   r   r-   r.   r/   r   s       r   test_replace_simple_nested_dictz4TestDataFrameReplace.test_replace_simple_nested_dict  st    uQ{+,e%567U$456
h/ ,-
h/r   c                    t        dt        dd      i      }t        dg di      }|j                  dddd      }t        j                  ||       |j                  dddddi      }t        j                  ||       y )	Nr   r   r    r  r   r   r   )r   r   r  r   s       r   6test_replace_simple_nested_dict_with_nonexistent_valuezKTestDataFrameReplace.test_replace_simple_nested_dict_with_nonexistent_value  sv    uQ{+,e%56756
h/U$=>?
h/r   c                    t        ddt        j                  gid      }|j                  t        j                  d i      }t        ddd git              }t        j                  ||       y )Nr)   *   r  r   )r   r   r  r-   r5   r.   r/   r6   rY   r:   r<   s       r   test_replace_NA_with_Nonez.TestDataFrameReplace.test_replace_NA_with_None  sV    "bee-W=RUUDM*gDz2&A
fh/r   c                    t        t        j                  t        j                  g      }|j                  t        j                  d t        j
                  d i      }t        d d g      }t        j                  ||       y N)r   r   NaTr-   r   r   r.   r/   r  s       r   test_replace_NAT_with_Nonez/TestDataFrameReplace.test_replace_NAT_with_None  sV    '(RVVT266489dD\*
fh/r   c                    t        g dd      }t        t        g dd      |d      }|j                  dd i      }t        t        g dd	      |d      }t        j                  ||       y )
N)r   r   r   r   categoryr   )r    r   r@   r   r   )idr   r@   )      @g      @Nr   r5   r  )r6   
cat_seriesrY   r:   r<   s        r   (test_replace_with_None_keeps_categoricalz=TestDataFrameReplace.test_replace_with_None_keeps_categorical  sn    0
C
\;!
 QI&2(C!
 	fh/r   c                    t        dgd gd      }|j                  |j                  D ci c]  }|ddi	 c}d      }t        dgd gd      }t        j                  ||       y c c}w )Nz#1234#)tickernamez^#$Tr]   z$1234#)r   r-   r2   r.   r/   )r6   rY   r   r:   r<   s        r   test_replace_all_NAz(TestDataFrameReplace.test_replace_all_NA  sh    8*tf=>"**E3S5#,.ETR
TFCD
fh/ Fs   A&c                   |j                   d   }|j                   d   }t        j                  |j                   d<   d|j                   d<   |j                  t        j                  di      }|j                  j                  t        j                  di      j                  }t        j                  ||       |j                  t        j                  dddi      }|j                         }d|j                   d<   d|j                   d<   |}t        j                  ||       ||j                   d<   ||j                   d<   y )Nr   r   r   r   r   rW   r   )r1   r   r   r-   r   r.   r/   r,   )r6   r7   
orig_valueorig2r:   r<   r9   s          r   test_replace_value_is_nonez/TestDataFrameReplace.test_replace_value_is_none  s   #((.
##D)$&FFD!$%D!''BFFA;'?!##++{+CEE
fh/''BFFAq$3G'H %%'T!T
h/$.D!$)D!r   c                   |j                         j                  t        j                        }t        j                  |j
                  |j                  d d df<   t        j                  |j
                  |j                  dd  df<   |j                  t        j                  d      }t        j                  ||j                  d             t        j                  |j                  dt        j                        |       t        j                  |j
                  |j                  d d df<   t        j                  |j
                  |j                  dd  df<   t        j                  |j
                  |j                  d d df<   y )Nr    r!   r"   r   r   )r,   r4   r   float32r   r*   r+   r-   r.   r/   r0   )r6   r7   r9   r   s       r   test_replace_for_new_dtypesz0TestDataFrameReplace.test_replace_for_new_dtypes  s    %%'..rzz:.0ffGMM"1%s*+/1vvGMM"#&+,oobffd3
k7>>$+?@
k11$?I.0ffGMM"1%s*+/1vvGMM"#&+,.0ffGMM"1%s*+r   z"frame, to_replace, value, expectedintsr   r   r@   r   r   )r   r   r@   r   boolsTFT)TTTcomplex)              ?               @              @r<  )y                r=  r>  
datetime64i  r       r   i     r%   r&   )dtr   r   20130101
US/Easternnsperiodstzunitr   r   20130102rH  2013010420130103r   r   r&  c                T    |j                  ||      }t        j                  ||       y r   )r-   r.   r/   )r6   framerW   r)   r<   r:   s         r   test_replace_dtypesz(TestDataFrameReplace.test_replace_dtypes  s%    N z51
fh/r   c           
     B   t         j                  ddd}dddd}t        t         j                  dt         j                  gg dg dd      }|j	                  ||      }|j                         D ci c]  \  }}||j	                  ||   ||           }}}t        j                  |t        |             |j	                  g dg d      }t        t         j                  d	t         j                  gg dg dd      }t        j                  ||       dddd}t        t         j                  dt         j                  gg dg dd      }|j	                  t         j                  |      }|j                         D ci c])  \  }}||j	                  t         j                  ||         + }}}t        j                  |t        |             t         j                  ddg}g d
}|j	                  ||      }|j                         }t        ||      D ]  \  }	}
|j	                  |	|
d      }||u rJ  t        j                  ||       d}t        j                  t        |      5  |j	                  ||dd         d d d        y c c}}w c c}}w # 1 sw Y   y xY w)Nr   r   r   r  missingr   r   r    r   asdffd)r    r   r   r    )r  rR  Tr#   z:Replacement lists must match in length\. Expecting 3 got 2r   r   )r   r   r   infr-   itemsr.   r/   r,   zipr   r   r   )r6   to_reprX   rY   filledkvr<   r:   r   r)   r   s               r   #test_replace_input_formats_listlikez8TestDataFrameReplace.test_replace_input_formats_listlikeY  sE   vvAB/r	2661bff%I<NO
 FF+CE88:N41aAqyyF1I66NN
fi&9:Iy1661bff%I<NO
 	fh/ r	2661bff%I<NO
 BFFF+@B
K1Aqyy33KK
fi&9: &&!R$FF+779ff- 	&JC%%c5$%?FX%%%	& 	fh/K]]:S1 	+JJvvabz*	+ 	+; O L	+ 	+s   2#J	 .J*JJc           	        t        t        j                  dt        j                  gg dg dd      }t        j                  ddd}|j	                  |d      }|j                         D ci c]  \  }}||j	                  ||   d       }}}t        j                  |t        |             d}t        j                  t        |      5  |j	                  |t        j                  ddg       d d d        t        j                  ddg}|j	                  |d      }|j                         }|D ]  }	|j	                  |	dd	
      }||u rJ  t        j                  ||       y c c}}w # 1 sw Y   |xY w)Nr   rS  rT  r   r   z.value argument must be scalar, dict, or Seriesr   r  Tr#   )r   r   r   rX  r-   rY  r.   r/   r   r   	TypeErrorr,   )
r6   rY   r[  r\  r]  r^  r<   r   r:   r   s
             r   !test_replace_input_formats_scalarz6TestDataFrameReplace.test_replace_input_formats_scalar  sF   661bff%I<NO

 vvAB/FA&;=88:F41aAqyyA..FF
fi&9:>]]9C0 	0JJv2/	0 &&!RFB'779 	&C%%c2t%<FX%%%	& 	fh/ G	0 	0s   , E$$E**E3c                     y r   r   )r6   s    r   test_replace_limitz'TestDataFrameReplace.test_replace_limit  s    r   c                    t        dddddd|      }dd	d
ddd}t        ddd
d	ddt              }|j                  |      }t        j                  ||       y NStrongly AgreeAgreeNeutralDisagreeStrongly Disagree)r   r   r   r@   r   r   r   r   r@   r    r   )rh  rj  ri  rg  rk  r   r5   r-   r.   r	  r6   r   answerweightsr<   r:   s         r   test_replace_dict_no_regexz/TestDataFrameReplace.test_replace_dict_no_regex  st    #& #	
 !"
 aA!a8G(
vx0r   c                    t        dddddd|      }t        dd	d
ddd      }t        ddd
d	ddt              }|j                  |      }t        j                  ||       y rf  rl  rm  s         r   test_replace_series_no_regexz1TestDataFrameReplace.test_replace_series_no_regex  s|    #& #	
 "#%&
 aA!a8G(
vx0r   c                   t        dt        j                  dgi      }|j                  t        j                  dddi      }|j                  dt        j                  fddg      }|j                  dt        j                  gddg      }t        dddgi      }t	        j
                  ||       t	        j
                  ||       t	        j
                  ||       y )Nr!   r   r   r   r0  rW   r)   )r   r   r   r-   r.   r/   )r6   rY   res1ru   ry   r<   s         r   6test_replace_dict_tuple_list_ordering_remains_the_samezKTestDataFrameReplace.test_replace_dict_tuple_list_ordering_remains_the_same  s    bffa[)*zzbffaD%9z:zza[q	zBzza[q	zBcAt9-.
dD)
dD)
dH-r   c                    t        g dg dg dg dd      }|j                  ddi      }t        j                  ||       y )N)r   r   r   r@   )0vrrx  rx  )rx  rx  rx  bt)vorx  rx  rx  )folT_oppT_DirT_Enhz\Dr   r   r
  s      r   )test_replace_doesnt_replace_without_regexz>TestDataFrameReplace.test_replace_doesnt_replace_without_regex  sA    #...	
 jj%$
b#&r   c                    t        ddgt        d      d      }|j                  dd      }t        ddg|j                  d      }t	        j
                  ||       y )NTFabr   r   )r   r   r-   r   r.   r/   r  s       r   test_replace_bool_with_stringz2TestDataFrameReplace.test_replace_bool_with_string  sP    dE]d<=D#&C<bdd;<
fh/r   c                    t        t        j                  j                  d      j                  d      dkD        }|j	                  dd      }t        j                  ||       y )Nr   r   r   r   rU  fdsa)r   r   randomdefault_rngr-   r.   r/   r6   rY   r:   s      r   (test_replace_pure_bool_with_string_no_opz=TestDataFrameReplace.test_replace_pure_bool_with_string_no_op  sK    ryy,,Q/66v>DEFF+
b&)r   c                   t        t        j                  j                  d      j                  d      dkD        }|j	                  dd      }t        t        j
                  dt                    }t        j                  ||       y )Nr   r  r   FTr   )	r   r   r  r  r-   onesboolr.   r/   r  s       r   test_replace_bool_with_boolz0TestDataFrameReplace.test_replace_bool_with_bool  s`    ryy,,Q/66v>DEE4(RWWV489
fh/r   c                    t        ddgddgd      }|j                  ddd      }t        ddgddgd      }t        j                  ||       y )NTFr   r   asdbyes)rU  Tr   r  s       r   %test_replace_with_dict_with_bool_keysz:TestDataFrameReplace.test_replace_with_dict_with_bool_keys  sS    D%=eT];<V59:%UENCD
fh/r   c                    t        ddgddgd      }|j                  ddi      }t        j                  ||       |d   j                  ddi      }t        j                  ||d          y )	Nr   r   r@   r   )Y0Y1replace_stringtestr  )r   r-   r.   r/   r	  r  s      r   !test_replace_dict_strings_vs_intsz6TestDataFrameReplace.test_replace_dict_strings_vs_ints  sk    q!fQF34-v67
fb)D!!#3V"<=
vr$x0r   c                    t        dddgi      }|j                  t        j                  t        j                   gt        j                        }|}t        j                  ||       y )Nr   T)r   r-   r   rX  r   r.   r/   )r6   rY   rrM   s       r   test_replace_truthyz(TestDataFrameReplace.test_replace_truthy  sM    dD\*+JJ("&&1
a#r   c                T   t        dt        t        dd            i      }|j                  dt	        t        t        dd      t        dd                  i      }|j                  t	        t        t        dd      t        dd                        }t        j                  ||       y )Nr   r   r    r      )r   r   r   r-   dictrZ  r.   r/   r  s       r   -test_nested_dict_overlapping_keys_replace_intzBTestDataFrameReplace.test_nested_dict_overlapping_keys_replace_int	  s     T%1+./0S$s5A;a'D"EFG::d3uQ{E!QK#@AB
fh/r   c           	        t        j                  dd      }|j                  t              }t        j                  dd      j                  t              }t	        d|i      }|j                  t        t        ||                  }|j                  dt        t        ||            i      }t        j                  ||       y )Nr   r    r   r  r   )
r   aranger4   r   r   r-   r  rZ  r.   r/   )r6   r   astrbstrrY   r:   r<   s          r   -test_nested_dict_overlapping_keys_replace_strzBTestDataFrameReplace.test_nested_dict_overlapping_keys_replace_str  s    IIaOxx}yyA%%c*T{#DT412::sDT4$9:;
fh/r   c                D   t        dg di      }|j                  ddddi      }t        dg dit              }t        j                  ||       t        dg di      }|j                  dddd	i      }t        dg dit              }t        j                  ||       y )
Nr   r:  YN)TF)r  r  r  r   )r   r   r   r  r   r-   r5   r.   r/   )r6   rY   rj   expects       r   test_replace_swapping_bugz.TestDataFrameReplace.test_replace_swapping_bug  s    012jj#c#678C1@
c6*Y'(jj#33/01C1@
c6*r   c                   t        t        dddd      dt        j                  dgd      }|j	                  t        j                  d	      }t        t        dddd      t        g d
d      d      }t        j                  ||       |j                  d	      }t        j                  ||       |j	                  dt        j                        }t        t        dddd      t        j                  t        j                  dgd      }t        j                  ||       |j	                  t        dd      t        dd            }t        t        dd      t        dd      t        dd      gdt        j                  dgd      }|d   j                  j                  d      |d<   t        j                  ||       |j                         }t        j                  |j                  d<   |j	                  dt        j                  it        dd            }t        j                  ||       |j                         }t        j                  |j                  d<   |j	                  dt        j                  it        dd            }t        t        dd      t        dd      j!                  d      t        dd      gdt        j                  dgd      }|d   j                  j                  d      |d<   t        j                  ||       |j                         }t        j                  |j                  d<   |j	                  dt        j                  it        d            }t        t        dd      t        d      t        dd      gdt        j                  dgd      }t        j                  ||       y )NrC  r@   rD  rE  rF  r   r   r   r   r   r   r   r   r   rJ  rK  rL  rM  r!   r/  z
US/Pacific)r   r	   r   r   r-   r   r.   r/   r0   r   rB  as_unitr,   r1   r   r!  
tz_convertr  s       r   test_replace_datetimetzz,TestDataFrameReplace.test_replace_datetimetz'  s    
A,TR^
 BFFA&
A,TRIY7
 	fh/1
fh/Arvv&
A,TRffbffa(
 	fh/j\2j\2
  j\:j\:j\:
 ^	
 !((006
fh/FFDbffy/UV
fh/ FFDbffy/UV j\:j\:EElSj\:
 ^	
 !((006
fh/FFDbffy/DE j\:j)j\:
 ^	
 	fh/r   c           	     z   t        |      }t        j                  ||j                  i              t        j                  ||j                  t	        g t
                           t        j                  ||j                  di i             t        j                  ||j                  t	        di i                   y )Nr   r   )r   r.   r/   r-   r   r5   )r6   r   rY   s      r    test_replace_with_empty_dictlikez5TestDataFrameReplace.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                ~    t        |      }t        |      }|j                  |      }t        j                  ||       y r   r   )r6   rY   rW   expr<   r:   s         r   test_replace_commutativez-TestDataFrameReplace.test_replace_commutative  s4    ( r]S>J'
fh/r   replacer20170827c                    t        dgt              }|j                  ||d      }t        |gt              }t        j                  ||       y )Nr   r   r   )r   r5   r-   r.   r/   )r6   r  rY   r:   r<   s        r   test_replace_replacer_dtypez0TestDataFrameReplace.test_replace_replacer_dtype  sC     uF+(:;hZv6
fh/r   c                    t        dg did      }|j                  dd      }t        dg did      }t        j                  ||       y )Ngrp)r   r   r@   r   r    r  r   r   
   )r  r   r@   r   r    r   r  s       r   !test_replace_after_convert_dtypesz6TestDataFrameReplace.test_replace_after_convert_dtypes  sE    /w?Ar"e%56gF
fh/r   c                    t        g dg dd      }d}t        j                  t        |      5  |j	                  d        d d d        y # 1 sw Y   y xY w)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                "    | j                         S r   )stripr  s    r   <lambda>zFTestDataFrameReplace.test_replace_invalid_to_replace.<locals>.<lambda>  s     r   )r   r   r   ra  r-   )r6   rY   r   s      r   test_replace_invalid_to_replacez4TestDataFrameReplace.test_replace_invalid_to_replace  sQ     /8JKL0 	 ]]9C0 	,JJ*+	, 	, 	,s   AA)floatr   r   r  r  r)   c                    t        t        j                  d      |      }|j                  d t        j                   t        j                  g|      }t        j                  ||       y )Nr   r   rt  )r   r   eyer-   rX  r.   r/   )r6   r   r)   rY   r:   s        r   "test_replace_no_replacement_dtypesz7TestDataFrameReplace.test_replace_no_replacement_dtypes  sK     rvvay.rvvgrvv'>eL
fb)r   replacementc                    t        g dg dg dd      }t        d      |_        t        g dg d|ddgd      }t        d      |_        |d   j                  d	|      |d<   t	        j
                  ||       y )
Nr8  r  )r      	   )r!   A1r   AABr  r  r   r   )r   r   r2   r-   r.   r/   )r6   r  r:   r<   s       r   #test_replace_with_duplicate_columnsz8TestDataFrameReplace.test_replace_with_duplicate_columns  ss     ))LMe9KA3FG
  ;Sk))![9s
fh/r   z2020-01c                    t        d|gdz  i      }t        j                  ||      }|j                         }|j	                  dd      }t        j
                  ||       y )NPerr@   r   r   )r   r.   r   r,   r-   r   )r6   r   r)   r   r<   r:   s         r   test_replace_ea_ignore_floatz1TestDataFrameReplace.test_replace_ea_ignore_float  sR     !,-jjo.88:S#&
&)r   zreplace_dict, final_datac                6   t        ddgddggddgd      }t        j                  |      }t        j                  |d d df   ddg      }t        j                  |d d df   ddg      }t        ||d	      }|j                  |d      }t        j                  ||       d
}t        j                  t        |      5  t        j                  ||       d d d        |j                  |dd      }||u sJ t        j                  ||       y # 1 sw Y   :xY w)Nr   r   r   r   r$  )r2   r   r   )
categoriesr   z:DataFrame.iloc\[:, 0\] \(column name=\"a\"\) are differentr   Tr#   )r   r   arrayr   Categoricalr-   r.   r/   r   r   AssertionError)	r6   replace_dict
final_datarY   r   r   r<   r:   r   s	            r   "test_categorical_replace_with_dictz7TestDataFrameReplace.test_categorical_replace_with_dict  s    AA'#s:NXXj)
NN:ad+A?NN:ad+A?11-.L!,
fh/N]]>5 	0!!"h/	0 L!T:||
b(+	0 	0s   ?DDc                   g dg dg dg dg dd}t        |      j                  ddd	      }|d
   j                  j                  g dd      |d
<   |d   j                  j                  g dd      |d<   g dg dg dg dg dd}t        |      j                  ddd	      }|d
   j                  j                  g dd      |d
<   |d   j                  j                  g dd      |d<   |j	                  d       }|j	                  d       }|j	                  d       }|j                  dddd      }t        j                  ||       y)zt
        Test for #23305: to ensure category dtypes are maintained
        after replace with direct values
        )r   r   r@   r   )r   r   r   r   )g      ?g      @g      @g      @)cat1cat2cat3cat4)obj1obj2obj3obj4)r   r   r   col4col5r   r$  )r   r  r   T)orderedr  )r   r   r   z)r  catXr  r  )obj9r  r  r  c                Z    | j                  d      j                  j                  ddi      S )Nr$  r   r  r4   catrename_categoriesr  s    r   r  zGTestDataFrameReplace.test_replace_value_category_type.<locals>.<lambda>(  s$    ahhz*..@@#sL r   c                Z    | j                  d      j                  j                  ddi      S )Nr$  r  r  r  r  s    r   r  zGTestDataFrameReplace.test_replace_value_category_type.<locals>.<lambda>+  %    ahhz*..@@&&AQR r   c                Z    | j                  d      j                  j                  ddi      S )Nr$  r  r  r  r  s    r   r  zGTestDataFrameReplace.test_replace_value_category_type.<locals>.<lambda>.  r  r   r   r   r   )r   r   r  N)r   r4   r  reorder_categoriesapplyr.   r/   r6   
input_dictinput_dfexpected_dictr<   r:   s         r    test_replace_value_category_typez5TestDataFrameReplace.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
fh/r   c                    dgdgdgd}t        |      j                  dddd      }dgdgd	gd}t        |      j                  dddd      }|j                  d
       }t        j                  ||       y)zf
        Test to ensure category dtypes are maintained
        after replace with dict values
        r   r  r  r   r  r$  r  r  r  c                @    | j                   j                  dddd      S )Nr  r  r  )r   r  r  )r  r  r  s    r   r  zFTestDataFrameReplace.test_replace_dict_category_type.<locals>.<lambda>K  s    aee--66: r   N)r   r4   r  r.   r/   r  s         r   test_replace_dict_category_typez4TestDataFrameReplace.test_replace_dict_category_type4  s      #efXxH
*-44ZH

 #&6(K-077ZH

 
 	fh/r   c                    t        g d      }t        j                  d      }|j                  |did      }t        g d      }t	        j
                  ||       y )Nr   z^a$r  Tr]   )r  r   r   )r   recompiler-   r.   r/   )r6   rY   rU   r:   r<   s        r    test_replace_with_compiled_regexz5TestDataFrameReplace.test_replace_with_compiled_regexR  sJ    '

5!UCL5_-
fh/r   c                   t        dt        j                  dd      t        j                  dd      gi      }|j                  dt        j                  dd      dii      }t        dddgit              }t        j                  ||       y )Nr   r   r   r  r   )r   r   Intervalr-   r5   r.   r/   r  s       r   test_replace_intervalsz+TestDataFrameReplace.test_replace_intervalsZ  st    bkk!Q/Q1BCDES2;;q!#4c":;<cC:.f=
fh/r   c                    dddddi}t        dt        j                  d      i      }|j                  |      }t        dt        j                  d      i      }t	        j
                  ||       y )Npositiver   r   )u   正面u   中立u   负面r@   )r   r   r  r-   r.   r/   )r6   columns_values_mapr   r:   r<   s        r   test_replace_unicodez)TestDataFrameReplace.test_replace_unicodea  sa    (Q!q*QRRWWQZ01/0j"''!*56
fh/r   c                     |dg      j                  d      }|j                         }|j                  d t        j                  i      }t        j                  ||       y )NrD   z|S)r4   r,   r-   r   r   r.   r   )r6   r   r   r<   s       r   test_replace_bytesz'TestDataFrameReplace.test_replace_bytesi  sH    se$++D188:kk4.)
X&r   z!data, to_replace, value, expectedr   boxc                     ||      } ||      }|j                   ||      |      }t        j                  ||       y r   r   )	r6   r   rW   r)   r<   r  r   r   r:   s	            r   !test_replace_list_with_mixed_typez6TestDataFrameReplace.test_replace_list_with_mixed_typep  s:     d#"8,S_e4
)r   valc                   t        dd|gi      }|j                  |d       }t        ddd git              }t        j                  ||       t        dd|gi      }|j                  |d i      }t        j                  ||       y )Nr   r   r   r  )r6   r  rY   r:   r<   s        r   %test_replace_value_none_dtype_numericz:TestDataFrameReplace.test_replace_value_none_dtype_numeric  s     aX'C&cAt9-V<
fh/aX'S$K(
fh/r   c                    t        ddt        j                  gi      }t        ddt        j                  giddg      }|j                  dd      }t	        j
                  ||       y )Nr   nilzanything elser   r   r   )r   r   r  r-   r.   r/   )r6   r   r<   r:   s       r   test_replace_with_nil_naz-TestDataFrameReplace.test_replace_with_nil_na  sW    ubeen-.cORUU#;<QFKUO4
h/r   r  zfloat64[pyarrow]pyarrow)marksc                   t        dt        j                  dgt        dt        j
                  dg|      d      }|j                  t        j
                  t        j                        }|r|}n_t        dt        j                  dgt        dt        j                  dg|      d      }t        j                  |j                  d         sJ t        j                  ||       y )Nr   r   r   r  r   )r   r   r   r   r   r  r-   isnanr*   r.   r/   )r6   r   using_nan_is_narY   r:   r<   s         r   &test_replace_na_to_nan_nullable_floatsz;TestDataFrameReplace.test_replace_na_to_nan_nullable_floats  s     Arvvq>fa]%.PQRBEE266*H Nvq"&&!nE'JKH 88HLL.///
fh/r   r  zint64[pyarrow]c                    t        g d|      }|j                  t        j                  d      }|rt        g d|      }n|}t	        j
                  ||       y )N)r   r   Nr   r  )r   r   r  )r   r-   r   r   r.   r	  )r6   r   r  r   r:   r<   s         r   test_replace_nan_nullable_intsz3TestDataFrameReplace.test_replace_nan_nullable_ints  sH     \/RVVR(j6HH
vx0r   N)h__name__
__module____qualname__r=   r   markparametrizer   r   rZ   rl   rp   rv   rz   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  r  r"  r(  r-  r3  r6  r   int32int16r   r   r	   r   DatetimeIndexr  rP  r_  rb  rd  rp  rr  rv  r  r  r  r  r  r  r  r  r  r  r  r  r  int8r5  r   r  r  r  r  r  Periodr  r  r  r  r   r  r  r  r  r   tupler  r  r  r  paramtd
skip_if_nor  r  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-R-- )* 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!BGGAJBHHQKBJJqMBJJqM	
	0	00	, [[W&WX[[Wrvvruuo6* 7 Y* [[]RVVQK80 90 [[Wyryy';[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 [[FLL+=2==3KL	
00  [[FLL)y1IJ	
11r   r   c            
      X   e Zd Zej                  j                  d ed       ed      d ed       e ed            dg      ej                  j                  ddej                  fdg      ej                  j                  d	d
dg      ej                  j                  dd
dg      ej                  j                  dd
dg      d                                    Z
ej                  j                  ddd
g      ej                  j                  dddg      d               Zd Zd Zd Zy)TestDataFrameReplaceRegexr   r   rS   r   r   zto_replace,valuer>   )rE   z\1\1\1compile_regexTFregex_kwargr$   c                \   t        |      }|j                         }|rt        j                  |      }|r|}	d }nd}	|j	                  ||||	      }
|r|
|u sJ |}
|t
        j                  u rt
        j                  }nd}||j                  |d   dk(  df<   t        j                  |
|       y )NTrn   z...r   rs   )
r   r,   r  r  r-   r   r   r*   r.   r/   )r6   r   rW   r)   r/  r0  r$   rY   r<   rU   r:   expected_replace_vals               r   test_regex_replace_scalarz3TestDataFrameReplaceRegex.test_regex_replace_scalar  s      t_779J/JEJEJweLR<<FBFF?#%66 #( 2FXc]c)3./
fh/r   rU   r)   r   1c                   t        dgdgd      }|dk(  rt        nd }t        |g|gd|      }|j                  d||      }t        j                  ||       t        dgdgd      }|rt        |gdgd|      }nt        t        |g|      dgd      }|j                  d||      }	t        j                  |	|       y )Nrx  r   r   r   )rW   r)   rU   r4  )r   r5   r-   r.   r/   r   )
r6   rU   r)   r   r   expected_df1
result_df1df2expected_df2
result_df2s
             r   test_replace_regex_dtype_framez8TestDataFrameReplaceRegex.test_replace_regex_dtype_frame  s     se3%01  1*$ weW!=UK[[CuE[J

j,7se3%01$E7#%?uML$65'+Gse%TUL[[CuE[J

j,7r   c                    t        g dg dd      }|j                  dt        j                  d      }t        dt        j                  dgt        j                  ddgd      }t	        j
                  ||       y )Nr  )r   r   r   r   r   r  r   r   r  s       r   +test_replace_with_value_also_being_replacedzETestDataFrameReplaceRegex.test_replace_with_value_also_being_replaced  s[    YY78bff-.Arvvq>AGH
fh/r   c                    t        g dg ddd      }|j                         }|j                  ddgdd g	      }t        j                  ||       y )
N)r   r  Nthree)r   Nr  r?  r   r$  r   rs   def_rt  )r   r,   r-   r.   r/   r   s       r   'test_replace_categorical_no_replacementzATestDataFrameReplaceRegex.test_replace_categorical_no_replacement	  sS    22 
 779U|C;G
fh/r   c                v   t        dgdd      }|r$t        |j                  j                        dk(  s&J t        |j                  j                        dk(  sJ |j	                  dddd	       |r%t        |j                  j                        dk(  sJ y t        |j                  j                        dk(  sJ y )
Nr   r   r   r   r   r   r   T)rW   r)   r$   rU   )r   len_mgrblocksr-   )r6   r   rY   s      r   test_replace_object_splittingz7TestDataFrameReplaceRegex.test_replace_object_splitting  s    cU-.rww~~&!+++rww~~&!+++


hb$d
Krww~~&!+++rww~~&!+++r   N)r  r   r!  r   r"  r#  r   r   r   r   r3  r;  r=  rB  rG  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]])rH  zdict[str, list[float | str]])
__future__r   r   r  numpyr   r   pandas.util._test_decoratorsutil_test_decoratorsr+  pandasr   r   r   r   r   r	   pandas._testing_testingr.   fixturer   r   r   r.  r   r   r   <module>rR     sw    "  	   ) )    4 4 R R_1 _1D-`, `,r   