
    Owg|                     \    d dl Z d dlZd dlZd dlmZ d dlZd dlm	Z
 d dlmZ  G d d      Zy)    N)using_pyarrow_string_dtype)IntervalArrayc                   (
   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zej*                  j-                  dddg      d        Zd Zd Zd Zd Zd Zd Zej*                  j=                   e       d      ej*                  j-                  d e jB                  dgdd g!      d"gf e jB                  dd gdd g!      d"d#gfg      d$               Z"ej*                  j-                  d%g d&g d'fd(gd)gfg      d*        Z#d+ Z$d, Z%ej*                  j-                  d-g d.d#d/d0d.g d1fg d2d3d4d5d2g d6fg      d7        Z&ej*                  j-                  d8g d.g d9fg d:g d;fg      d<        Z'd= Z(ej*                  j-                  d>ddg      d?        Z)ej*                  j-                  d>ddg      d@        Z*dA Z+dB Z,dCe jZ                  fdDZ.dE Z/ej*                  j-                  dFddg      dG        Z0ej*                  j-                  dHddg      ej*                  j-                  dFddg      dI               Z1dJ Z2dK Z3ej*                  j-                  dLdMddgddiddgfdNd"d#gdOdPdQdOdPgfdRd"d#gdOdPdQdOdPgfdSdTdUgdVdWdXdVdWgfdYdTdUgdVdWdXdVdWgfdZd[d\gd]d3d^d]d3gf e jh                  dN       e5 e jl                  d"d#       e jl                  d#d/      g       e jl                  d"d#       e jl                  dOdP      i e5 e jl                  dOdP       e jl                  d#d/      g      f e jh                  dS       e5 e jl                  d_d`       e jl                  dadb      g       e jl                  d_d`       e jl                  dcdd      i e5 e jl                  dcdd       e jl                  dadb      g      f e jn                  de       e jp                  dfdeg      g e jp                  dfdeg       e jp                  dhdeg      i e jp                  dhdeg      gfg	      di        Z9dj Z:dk Z;dl Z<dm Z=ej*                  j=                   e       dn      ej*                  j-                  doddg      dp               Z>dq Z?ej*                  j-                  drd#e@j                  dsg      dt        ZBdu ZCej*                  j-                  dvdwdRg      dx        ZDej*                  j-                  drdydzg      d{        ZEd| ZFy})~TestSeriesReplacec                 T   t        j                  g dt              }|j                  dd       }t        j                  g dt              }t	        j
                  ||       t        j                  t        j                  d            j                  dt        i      }d|j                  d<   |j                  dd       }t        j                  t        j                  d      t        j                  d      t        j                  g d	t              d
      }|j                  d   J t	        j                  ||       t        j                  g d      }|j                  dd       }t        j                  g d      }|j                  d   J t	        j
                  ||       y )N)r   r    dtyper   )r   r   N)   r      )r   r   r   )        r   N)r      r   )
         ar   br   r   )r   r   r   NNr   N)pdSeriesobjectreplacetmassert_series_equal	DataFramenpzerosastypeilocarrayassert_frame_equal)selfserresultexpecteddfs        _/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/series/methods/test_replace.pytest_replace_explicit_nonez,TestSeriesReplace.test_replace_explicit_none   s;   ii
&1R&99\8
vx0 \\"((6*+22Av;?B%<<88A;88A;88,F;
 }}T"***
fh/ ii89S$'99@A}}R (((
vx0    c                    t        j                  d d t        j                  d      gt              }|j	                  t
        j                  d i      }t        j                  ||       |j                  t        k(  sJ |j	                  t
        j                  d       }t        j                  ||       |j                  t        k(  sJ y )Nz2021-12-16 17:31r	   )
r   r   	Timestampr   r   r   nanr   r   r
   )r"   r#   ress      r'   !test_replace_noop_doesnt_downcastz3TestSeriesReplace.test_replace_noop_doesnt_downcast*   s    iitR\\2D%EFfUkk2664.)
sC(yyF""" kk"&&$'
sC(yyF"""r)   c           	      8   d}t        j                  t        j                  j	                  d      j                  |            }t        j                  |dd d|dd |j                  t        j                  gdd	      }|J |j                  d      }t        j                  ||       |j                  d
t        j                        }t        j                  ||d
k(  <   t        j                  ||       t        j                  t        j                  t        j                  j	                  d      j                  |            t        j                  d|      t              }t        j                  |d d d|dd d|dd d}t        j                  t        |      5  |j                  t        j                  ddgd      }d d d        |d d dk(  j!                         sJ |dd dk(  j!                         sJ |dd dk(  j!                         sJ t        j"                  |d d       j!                         sJ t        j                  t        |      5  |j                  t        j                  dddddi      }d d d        |d d dk(  j!                         sJ |dd dk(  j!                         sJ |dd dk(  j!                         sJ t        j"                  |d d       j!                         sJ t        j                  t        |      5  |j                  t        j                  ddgg d      }d d d        t        j                  |       t        j                  t        |      5  |j                  t        j                  ddgdd	      }d d d        |J |d d dk(  j!                         sJ |dd dk(  j!                         sJ |dd dk(  j!                         sJ y # 1 sw Y   (xY w# 1 sw Y   |xY w# 1 sw Y   xY w# 1 sw Y   |xY w)N2   r   r         r   r   Tinplacer   
2020-01-01periodsr	      foobarr   r   !Downcasting behavior in `replace`matchr   r>   r?   )r   r   r   randomdefault_rngstandard_normalr,   r   fillnar   r   fabs
date_ranger   assert_produces_warningFutureWarningallisna)r"   Nr#   return_valueexprsmsgrs2s           r'   test_replacezTestSeriesReplace.test_replace6   s   ii		--a0@@CD66AaAb	 {{BFF8R{>###jjn
sC([[bff%&&C3J
r3'iiGGBII))!,<<Q?@MM,2

 &&BQAb	Br
 2''SA 	9bffeU3R8B	9 2A"!!###1RB##%%%2b	R$$&&&BQ %%''' ''SA 	Abffb%UB?@B	A 2A"!!###1RB##%%%2b	R$$&&&BQ %%''' ''SA 	D++rvvue4lCC	D
r3' ''SA 	Q;;u'=r4;PL	Q###BQ2""$$$Ab	R$$&&&Br
b %%''';	9 	9	A 	A	D 	D
	Q 	Qs0    $O*&O7&P/&P*O47PPPc           	         t        j                  t        j                  dt        j                  g      }t        j                  |j                  t        j                  d      |j                  d             t        j                  t        j                  dddt        j                  d t         j                  g      }t        j                  |j                  t        j                  d      |j                  d             |j                         }d|d<   t        j                  |j                  t        j                  d      |       y )Nr   r9   r:   r1   )r   r   r   r,   infr   r   r   rD   NaTcopy)r"   r#   filleds      r'   test_replace_nan_with_infz+TestSeriesReplace.test_replace_nan_with_infq   s    iiBFF+,
s{{26615szz!}EiiE5"&&$GH
s{{26615szz!}Eq	
s{{26615v>r)   c                    t        j                  |j                        }t        j                  |j                  t        j                  d      |j                  d             d}t        j                  t        |      5  |j                  g dt        j                  dg       d d d        |j                  ddgt        j                  dg      }t        j                  ||       t        j                  g d      }|j                  g dg d      }t        j                  |t        j                  g d             y # 1 sw Y   xY w)	Nr   z:Replacement lists must match in length\. Expecting 3 got 2r<   r   r   r   r   r   r   r   r   r   r1   )r1   r   r   r   r   )r   r   indexr   r   r   r   r,   rD   pytestraises
ValueError)r"   datetime_seriesr#   rO   r$   s        r'   +test_replace_listlike_value_listlike_targetz=TestSeriesReplace.test_replace_listlike_value_listlike_target{   s    ii--.
s{{26615szz!}E L]]:S1 	0KK	BFFA;/	0 aVbffa[1
vs+ii(_o>
vryy'AB	0 	0s    %E  E	c                 ~   t        j                  dt        j                  dddg      }|j	                         }d}t        j                  t        |      5  |j                  t        j                  g      }d d d        t        j                  |       t        j                  dt        j                  dddg      }|j	                         }t        j                  t        |      5  |j                  t        j                        }d d d        t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   ,xY w)Nr   r   r   r1   PSeries.replace without 'value' and with non-dict-like 'to_replace' is deprecatedr<   )
r   r   r   r,   ffillr   rG   rH   r   r   )r"   r#   r%   rO   r$   s        r'   test_replace_gh5319z%TestSeriesReplace.test_replace_gh5319   s     iiBFFAq!,-99;) 	 ''SA 	+[["&&*F	+
vx0iiBFFAq!,-99;''SA 	)[[(F	)
vx0	+ 	+	) 	)s   !D'( D3'D03D<c                    t        j                  t        j                  dd            }|j                         }t        j                  d      |j
                  d<   |j                  t        j                  d      t        j                  d      i      }t        j                  ||       |j                  t        j                  d      t        j                  d            }t        j                  ||       y )N20130101r8   r6   20120101r   20130103)	r   r   rF   rU   r+   locr   r   r   r"   r#   r%   r$   s       r'   test_replace_datetime64z)TestSeriesReplace.test_replace_datetime64   s    iij!<=88:,,z2Qbll:6Z8PQR
vx0R\\*5r||J7OP
vx0r)   c                    t        j                  dd      }t        j                  t         j                  t        j                  dd      g      }|j	                  t
        j                  t         j                  gt         j                  j                        }t        j                  t         j                  j                  |gt              }t        j                  ||       y )Nz
2015/01/01UTC)tzr	   )r   r+   r   rT   r   r   r,   minr   r   r   )r"   tssr$   r%   s        r'   test_replace_nat_with_tzz*TestSeriesReplace.test_replace_nat_with_tz   s    \\,51IIrvvr||LUCDEBFFBFF+R\\-=-=>99bll..36B
x0r)   c                    t        j                  dd      }t        j                  |      }|j                  |d   |d   i      }t        j                  |d   |d   |d   |d   |d   g      }t	        j
                  ||       y )Nr   r8   r6   r   r   r   r1   )r   timedelta_ranger   r   r   r   )r"   tdir#   r$   r%   s        r'   test_replace_timedelta_td64z-TestSeriesReplace.test_replace_timedelta_td64   s{      A.iin c!fc!f-.99c!fc!fc!fc!fc!fEF
vx0r)   c                 f   t        j                  g d      }d}t        j                  t        |      5  |j                  g d      }d d d        t        j                  t        j                  g d             |j                         }t        j                  t        |      5  |j                  g dd      }d d d        J t        j                  |t        j                  g d             |j                         }d}d	}t        j                  t        |      5  t        j                  t        |      5  |j                  g ddd
      }d d d        |J 	 d d d        t        j                  ||       y # 1 sw Y   ;xY w# 1 sw Y   xY w# 1 sw Y   FxY w# 1 sw Y   ExY w)NrZ   rb   r<   rY   )r   r   r   r   r1   Tr3   zVInvalid fill method\. Expecting pad \(ffill\) or backfill \(bfill\)\. Got crash_cymbal4The 'method' keyword in Series.replace is deprecatedcrash_cymbal)r4   method)r   r   r   rG   rH   r   r   rU   r\   r]   r^   )r"   r#   msg2r$   rq   rL   rO   msg3s           r'   test_replace_with_single_listz/TestSeriesReplace.test_replace_with_single_list   sl   ii() 	 ''TB 	,[[+F	,
vryy'ABHHJ''TB 	>99Y9=L	>###
q"))O"<= HHJ, 	 F]]:S1 	(++MF Y yyDyXY'''	( 	q#&+	, 	,
	> 	>Y Y	( 	(s;   F'F#F'?FF'FFF$	 F''F0c           	         t        j                  t        j                  d      d      fd}dgdg}} |||        ||d   |d          t        j                  g d      }dgd	g}} ||||       t        j                  g d
      }ddgd	dg}} ||||       t        j                  dddd	t        j                  d      g      }ddgd	t        j                  d      g}} ||||       t        j                  g dd      }ddgd	dg}} ||||       t        j                  t        j
                  ddd            }|j                  t              j                  |d   |d   |d   gg d      }t        j                  g d|dd  j                         z   t              }t        j                  ||       y )Nr8   int64r	   c                     j                         }j                  | |      }|j                  | |d      }|J t        j                  ||       t        j                  ||       y )NTr3   )rU   r   r   r   )to_repvalr%   scr$   rL   r#   s         r'   check_replacezATestSeriesReplace.test_replace_mixed_types.<locals>.check_replace   s^    B[[-F::fc4:@L'''""8V4""8R0r)   r   g      @r   )r   r   r         @r1   r   )r   r   r   r   r   r1   r   r   r   rf   )r   r   r   r   Tr   Tz1/1/2001z	1/10/2001Dfreq)      ?r   r   )r   r   r   aranger+   rF   r   r   r   tolistr   r   )	r"   r   trvedrr$   r%   r#   s	           @r'   test_replace_mixed_typesz*TestSeriesReplace.test_replace_mixed_types   s   ii		!G4	1 cUAb!S!beQqT3' II'(cUAb!Q II)*Ac
Ab!Q IIq!QR\\*%=>?Abll:67Ab!Q II*(;AdAb!Q YYr}}Z3GH6"**BqE2a5"Q%+@-P99]RV]]_<FK
vx0r)   c                     t        j                  g d      }|j                  dd      }t        j                  ||       y )NTFTfunz
in-the-sunr   r   r   r   r   )r"   rq   r$   s      r'   #test_replace_bool_with_string_no_opz5TestSeriesReplace.test_replace_bool_with_string_no_op  s1    II)*5,/
q&)r)   c                     t        j                  g d      }|j                  dd      }t        j                  g d      }t        j                  ||       y )Nr   T2u)r   Fr   r   r"   rq   r$   r%   s       r'   test_replace_bool_with_stringz/TestSeriesReplace.test_replace_bool_with_string  s@    II)*4&9901
x0r)   c                     t        j                  g d      }|j                  dd      }t        j                  dgt        |      z        }t	        j
                  ||       y )Nr   TF)r   r   r   lenr   r   r   s       r'   test_replace_bool_with_boolz-TestSeriesReplace.test_replace_bool_with_bool  sJ    II)*4'99eWs1v-.
x0r)   c                     t        j                  g d      }|j                  ddd      }t        j                  g d      }t        j                  ||       y )Nr   asdbyes)asdfT)r   Fr   r   r   s       r'   %test_replace_with_dict_with_bool_keysz7TestSeriesReplace.test_replace_with_dict_with_bool_keys  sC    II)*F%899923
vx0r)   c                    t        j                  dd g|      j                  dt         j                        }t        j                  t         j                  t         j                  g|      }t	        j
                  ||       t        j                  ddg|      j                  dt         j                        }|j                  dt         j                  d       t	        j
                  ||       y )Nr   r	   r   Tr3   )r   r   r   NAr   r   )r"   any_int_ea_dtyper$   r%   s       r'   test_replace_Int_with_naz*TestSeriesReplace.test_replace_Int_with_na  s    At9,<=EEaO99beeRUU^3CD
vx0Aq6)9:BB1beeLq"%%.
vx0r)   c           	      R   d}t        j                  t        j                  t        j                  j                  d      j                  |            t        j                  d|      t              }t        j                  |d d d|dd	 d
|dd d}t        j                  t        |      5  |j                  t        j                  dd
gd      }d d d        d d dk(  j                         sJ |dd	 dk(  j                         sJ |dd dk(  j                         sJ t        j                  |d d       j                         sJ t        j                  t        |      5  |j                  t        j                  dddd
di      }d d d        |d d dk(  j                         sJ |dd	 dk(  j                         sJ |dd dk(  j                         sJ t        j                  |d d       j                         sJ t        j                  t        |      5  |j                  t        j                  dd
gg d      }d d d        t        j                   |       t        j                  t        |      5  |j                  t        j                  dd
gdd      }d d d        J |d d dk(  j                         sJ |dd	 dk(  j                         sJ |dd dk(  j                         sJ y # 1 sw Y   (xY w# 1 sw Y   |xY w# 1 sw Y   xY w# 1 sw Y   |xY w)Nr0   r   r5   r6   r	   r8   r9   r2   r   r:   r   r   r;   r<   r   r>   r?   r@   Tr3   )r   r   r   rE   rA   rB   rC   rF   r   r,   r   rG   rH   r   rI   rJ   r   )r"   rK   r#   rO   rN   rP   rL   s          r'   test_replace2zTestSeriesReplace.test_replace2$  s   iiGGBII))!,<<Q?@MM,2

 &&BQAb	Br
 2''SA 	9bffeU3R8B	9 2A"!!###1RB##%%%2b	R$$&&&BQ %%''' ''SA 	Abffb%UB?@B	A 2A"!!###1RB##%%%2b	R$$&&&BQ %%''' ''SA 	D++rvvue4lCC	D
r3' ''SA 	Q;;u'=r4;PL	Q###BQ2""$$$Ab	R$$&&&Br
b %%'''9	9 	9	A 	A	D 	D
	Q 	Qs0   -$K7$&L&L<&L7LLLL&r4   TFc                     t        j                  g d      }t        j                  g d      }|j                  g dg d|      }|rt        j                  ||       y t        j                  ||       y )NrY   r   r   r1   r3   r   )r"   r4   r#   r%   r-   s        r'   test_replace_cascadez&TestSeriesReplace.test_replace_cascadeO  sW     ii	"99Y'kk)Yk@""31""31r)   c                     t        j                  ddt        j                  g|      }t        j                  ddt        j                  g|      }|j	                  ddd      }t        j                  ||       y )Nonetwor	   12r   r   )r   r   r   r,   r   r   r   )r"   nullable_string_dtyper#   r%   r$   s        r'   +test_replace_with_dictlike_and_string_dtypez=TestSeriesReplace.test_replace_with_dictlike_and_string_dtype\  s]    iirvv.6KL99c3/7LMS56
x0r)   c                     t        j                  t        d            }t        j                  ||j                  i              t        j                  g       }t        j                  ||j                  |             y )Nabcd)r   r   listr   r   r   )r"   rq   empty_seriess      r'    test_replace_with_empty_dictlikez2TestSeriesReplace.test_replace_with_empty_dictlikec  sR    IId6l#
q!))B-0yy}
q!))L"9:r)   c                     t        j                  g d      }|j                  dt        j                        }t        j                  g d      }t        j                  ||       y NrY   r   r   r   r   r   r,   r   r   r   s       r'   test_replace_string_with_numberz1TestSeriesReplace.test_replace_string_with_numberk  B    IIi 3'99Y'
x0r)   c                     t        j                  ddg      }t        j                  ddg      }|j                  ddd      }t        j                  ||       y )Nr   r   )r   r   r   )r"   rq   r%   r$   s       r'   (test_replace_replacer_equals_replacementz:TestSeriesReplace.test_replace_replacer_equals_replacementr  sK     IIsCj!99c3Z(3/0
x0r)   c                     t        j                  g d      }|j                  dt        j                        }t        j                  g d      }t        j                  ||       y r   r   r   s       r'    test_replace_unicode_with_numberz2TestSeriesReplace.test_replace_unicode_with_numberz  r   r)   c                 t   t        j                  g d      }d}t        j                  t        |      5  |j                  ddgt        j                        }d d d        t        j                  dt        j                  dt        j                  dd	g      }t        j                  |       y # 1 sw Y   WxY w)
N)r   r   r   4r1   r8   r;   r<   r   r   r   r   r1   r8   )	r   r   r   rG   rH   r   r   r,   r   )r"   rq   rO   r$   r%   s        r'   $test_replace_mixed_types_with_stringz6TestSeriesReplace.test_replace_mixed_types_with_string  s    II*+1''SA 	1YY3x0F	199aBFFAq9:
x0	1 	1s   #B..B7zcan't fill 0 in string)reasonzcategorical, numericAB)
categoriesr   r   c                    t        j                  |      }d}d}t        j                  t        |      5  |j                  ddd      }d d d        t        j                  |      j                  d      }d|j                  j                  vr|j                  j                  d      }t        j                  |       y # 1 sw Y   wxY w)Nr;   #with CategoricalDtype is deprecatedr<   r   r   )r   r   category)r   r   r   rG   rH   r   r   catr   add_categoriesr   )r"   categoricalnumericr#   rO   r$   r%   s          r'   test_replace_categoricalz*TestSeriesReplace.test_replace_categorical  s     ii$13''SA 	3[[qq!12F	399W%,,Z8HLL+++  ||2215H
x0	3 	3s   C  C	zdata, data_expr   r   c)r   r   r   r   r   c                    t        j                  |d      }d}t        j                  t        |      5  |j                  ddd       d d d        t        j                  |d      }t        j                  ||       y # 1 sw Y   7xY w)	Nr   r	   r   r<   r   r   T
to_replacevaluer4   r   r   r   rG   rH   r   r   )r"   datadata_expr$   rO   r%   s         r'    test_replace_categorical_inplacez2TestSeriesReplace.test_replace_categorical_inplace  st    
 4z23''SA 	DNNcdNC	D99XZ8
vx0	D 	Ds   B  B	c                    t        j                  ddd      }t        j                  |      }|j                  d      }|j	                         }|j
                  j                  d      }d|d<   |j
                  j                         }|d   dk7  sJ d}t        j                  t        |	      5  |j                  |d   d      }d d d        t        j                  |       |d   dk7  sJ d}t        j                  t        |	      5  |j                  |d   dd
      }d d d        J t        j                  ||       |d   }d}t        j                  t        |	      5  |j                  |d   |d   d
      }d d d        |J |d   |d   cxk(  r|k(  sJ  J y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   <xY w)N
2016-01-01r   
US/Pacificr7   rn   r   r9   r   r   r<   Tr3   r   r   )r   rF   r   r   rU   r   r   remove_unused_categoriesr   rG   rH   r   r   )	r"   dtirq   r   r%   rO   r$   rL   first_values	            r'   test_replace_categorical_singlez1TestSeriesReplace.test_replace_categorical_single  s   mmL!EIIcNHHZ 668<<..u5<<88:tu}}3''SA 	,YYqtU+F	,
x0tu}}3''SA 	@99QqT5$9?L	@###
x+d3''SA 	?99QqT1Q49>L	?###tqt*{*****!	, 	,	@ 	@	? 	?s$   0F%F1'F=%F.1F:=Gc                 d   t        j                  g d      }|j                  dgdg      }t        j                  g d      }t        j                  ||       t        j                  g d      }|j                  dgdg      }t        j                  g d      }t        j                  ||       y )NrZ   r   100000000000000000000)r   r   r   r   r1   )r   r   100000000000000000001r   )r   r   r   r   r   s       r'   "test_replace_with_no_overflowerrorz4TestSeriesReplace.test_replace_with_no_overflowerror  s     IIo&A3!8 9:99BC
vx0IIKL34qc:99<=
vx0r)   zser, to_replace, exprY   r   r1   r   )r   r   3r   r   r   )r   r   r   c                     t        j                  |      }t        j                  |      }|j                  |      }t        j                  ||       y Nr   )r"   r#   r   rM   seriesr%   r$   s          r'   test_replace_commutativez*TestSeriesReplace.test_replace_commutative  s<     399S>
+
vx0r)   zser, exp)r   Tr   )xr   r   )r   Tr   c                     t        j                  |      }|j                  dd      }t        j                  |      }t        j                  ||       y )Nr   Tr   )r"   r#   rM   r   r$   r%   s         r'   test_replace_no_castz&TestSeriesReplace.test_replace_no_cast  s>     34(99S>
vx0r)   c                    t        j                  g d      }d}d}t        j                  t        |      5  t        j                  t        |      5  |j                  d        d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr   r   zc zZExpecting 'to_replace' to be either a scalar, array-like, dict or None, got invalid type.*rb   r<   c                 "    | j                         S r   )strip)r   s    r'   <lambda>zCTestSeriesReplace.test_replace_invalid_to_replace.<locals>.<lambda>  s     r)   )	r   r   r\   r]   	TypeErrorr   rG   rH   r   )r"   r   rO   r{   s       r'   test_replace_invalid_to_replacez1TestSeriesReplace.test_replace_invalid_to_replace  s     +,0 	
) 	 ]]9C0 	4++MF 4234	4 	44 4	4 	4s#   BA7&B7B 	<BBframec                     t        j                  g d      }|r|j                         }d}t        j                  t
        |      5  |j                  dgd       d d d        y # 1 sw Y   y xY w)Nr   z4'to_replace' must be 'None' if 'regex' is not a boolr<   r   r9   )r   regex)r   r   to_framer\   r]   r^   r   )r"   r   objrO   s       r'   test_replace_nonbool_regexz,TestSeriesReplace.test_replace_nonbool_regex  sY    ii(),,.CD]]:S1 	7KKC5K6	7 	7 	7s   A%%A.c                    t        j                  g t        j                        }|r|j	                         }|j                  ddd      }|J |j                  ddd      }t        j                  ||       ||usJ y )Nr	   r1   r8   Tr3   F)r   r   r   float64r   r   r   assert_equal)r"   r   r   r-   s       r'   test_replace_empty_copyz)TestSeriesReplace.test_replace_empty_copy  sp    ii"**-,,.Ckk!Qk-{{kk!Qk.
S!#~~r)   c                 d   t        j                  ddd|dg      }ddd}d}d}t        j                  t        |      5  |j                  ||       d d d        d}dd	d}d
}t        j                  t        |      5  |j                  ||       d d d        y # 1 sw Y   IxY w# 1 sw Y   y xY w)Nr   r   r   T)r   r   r9   zASeries.replace cannot use dict-like to_replace and non-None valuer<   r:   z<Series.replace cannot use dict-value and non-None to_replace)r   r   r\   r]   r^   r   )r"   fixed_now_tsr#   r   r   rO   s         r'   "test_replace_only_one_dictlike_argz4TestSeriesReplace.test_replace_only_one_dictlike_arg  s     iiAsL$78s^
Q]]:S1 	+KK
E*	+ 
e$L]]:S1 	+KK
E*	+ 	+	+ 	+	+ 	+s   B>B&B#&B/c                      |t        j                  g dd            }|j                  dd      }t        j                  ||       y )NrY   Int64r	   r   )r   r    r   r   r   )r"   frame_or_seriesr   r$   s       r'   test_replace_extension_otherz.TestSeriesReplace.test_replace_extension_other.  s5    bhhy@AR$
V$r)   r#   c                    |j                         }d}t        j                  t        |      5  |j	                  |d   d      }d d d        t        j                  |d   |d   gt        |dd        z   |j                        }t        j                  |       d	}t        j                  t        |      5  |j	                  |d   d      }d d d        t        j                  |j                                |j                         }t        j                  t        |      5  |j	                  |d   dd
      }	d d d        	J t        j                  ||       t        j                  t        |      5  |j	                  |d   dd
      }
d d d        
J t        j                  ||j                                y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   XxY w)Nrx   r<   r   pad)rz   r   r   r	   z7The 'method' keyword in DataFrame.replace is deprecatedT)rz   r4   )r   r   rG   rH   r   r   r   r   r
   r   r!   rU   )r"   r#   r&   msg1r-   r%   r{   res_dfser2res2res_df2s              r'   _check_replace_with_methodz,TestSeriesReplace._check_replace_with_method5  s   \\^E''TB 	4++c!fU+3C	499c!fc!f-SW=SYYO
sH-H''TB 	6ZZAuZ5F	6
fh&7&7&9:xxz''TB 	D<<Aud<CD	D||
tX.''TB 	EjjQtjDG	E
b("3"3"56'	4 	4	6 	6
	D 	D
	E 	Es/   G8G&G;G*GGG'*G3c                     t        j                  ddt         j                  dg|      }t        j                  |      }| j	                  |       y )Nr   r   r1   r	   )r   r    r   r   r  )r"   any_numeric_ea_dtypearrr#   s       r'   !test_replace_ea_dtype_with_methodz3TestSeriesReplace.test_replace_ea_dtype_with_methodN  s;    hh1beeQ'/CDiin'',r)   as_categoricalc                     t         j                  j                  t        d            }t        j                  |      }|r|j                  d      }| j                  |       y )Nr1   r   )r   IntervalIndexfrom_breaksranger   r   r  )r"   r  idxr#   s       r'   !test_replace_interval_with_methodz3TestSeriesReplace.test_replace_interval_with_methodT  sJ     **584iin**Z(C'',r)   	as_periodc                 $   t        j                  ddd      }|r |j                  d       j                  d      }t        j                  |      }t         j
                  |j                  d<   |r|j                  d      }| j                  |       y )Nr   r8   r   r   r   r>   r   )	r   rF   tz_localize	to_periodr   rT   r   r   r  )r"   r  r  r  r#   s        r'   %test_replace_datetimelike_with_methodz7TestSeriesReplace.test_replace_datetimelike_with_method_  so     mmL!E//$'11#6Ciinvv**Z(C'',r)   c                     t        j                  g d      }t        j                  d      }|j	                  |did      }t        j                  g d      }t        j                  ||       y )Nr   z^a$zTr   )r  r   r   )r   r   recompiler   r   r   )r"   rq   r   r$   r%   s        r'    test_replace_with_compiled_regexz2TestSeriesReplace.test_replace_with_compiled_regexm  sR    IIo&

5!E3<t499_-
vx0r)   c           	         t        j                  ddddddt         j                  gd      }dddd	d
}|j                  |d      }t        j                  ddd	dddt         j                  gd      }t	        j
                  ||       y )NAABBCCDDEEr   stringr	   zCC-REPL)r%  r&  r)  r'  Tr   r   r   r   r   r   r   )r"   r#   regex_mappingr$   rM   s        r'   test_pandas_replace_naz(TestSeriesReplace.test_pandas_replace_nau  s    iitT4r255AR	
 ]$7iitYdBFhW
vs+r)   z,dtype, input_data, to_replace, expected_databoolr   r   r   )r   r   r  r   皙?皙@g333333$@g     4@)r/  r0  Float64r*  r   r   r   r   r   g@gffffff@g@g333333%@g4@Mz2020-05r   z2020-06c                     t        j                  ||      }|j                  |      }t        j                  ||      }t        j                  ||       y )Nr	   r   )r"   r
   
input_datar   expected_datar#   r$   r%   s           r'   test_replace_dtypez$TestSeriesReplace.test_replace_dtype  sB    > ii
%0Z(99]%8
vx0r)   c                    t        j                  ddt        j                  gd      }|j	                  ddd      }t        j                  ddt        j                  gd      }t        j                  ||       t        j                  dt        j                  gd      }|j	                  dd	      }t        j                  d	t        j                  gd      }t        j                  ||       t        j                  dd	gd      }|j	                  dt         j                        }t        j                  t         j                  d	gd      }	t        j                  ||	       y )
Nr   r   r*  r	   r   r   r   r   r   )r   r   r   r,   r   r   r   r   )
r"   r#   r-   r%   r
  r  	expected2ser3res3	expected3s
             r'   test_replace_string_dtypez+TestSeriesReplace.test_replace_string_dtype  s    iirvv.h?kk#c2399c3/x@
sH- yy#rvvh7||C%IIsBFFm8<	
tY/yy#s84||C'IIruucl(;	
tY/r)   c                     t        j                  ddgd      }|j                  ddgd      }t        j                  ddgd      }t        j                  ||       y )Nabcdefr*  r	   zany other stringxyzr   r"   r#   r-   r%   s       r'   )test_replace_string_dtype_list_to_replacez;TestSeriesReplace.test_replace_string_dtype_list_to_replace  sP    iih7kk5"45u=99eU^8<
sH-r)   c                     t        j                  ddgd      }|j                  ddd      }t        j                  ddgd      }t        j                  ||       y )	Nr   r   r*  r	   .CTr   r   rA  s       r'   test_replace_string_dtype_regexz1TestSeriesReplace.test_replace_string_dtype_regex  sN    iic
(3kk$4k099c3Zx8
sH-r)   c                    t        j                  g dt        j                               }|j                  ddi      j                  |j                  k(  sJ |j                  dd      j                  |j                  k(  sJ |j                  ddi      j                  |j                  k(  sJ |j                  dd      j                  |j                  k(  sJ |j                  ddgddg      }|j                  |j                  k(  sJ t        j                  g d	t        j
                               }|j                  d
di      j                  |j                  k(  sJ |j                  d
d      j                  |j                  k(  sJ |j                  d
di      j                  |j                  k(  sJ |j                  d
d      j                  |j                  k(  sJ t        j                  t        d      5  |j                  d
di       d d d        t        j                  t        d      5  |j                  d
d       d d d        y # 1 sw Y   @xY w# 1 sw Y   y xY w)N)r          @gˡE@g@r	   r   	   g      "@rH  g      $@r   r   )r   r   r   r1   r   zInvalid valuer<   g      #@)	r   r   Float64Dtyper   r
   
Int64Dtyper\   r]   r   )r"   floatsr-   intss       r'   test_replace_nullable_numericz/TestSeriesReplace.test_replace_nullable_numeric  s    19JK~~sAh'--===~~c1%++v||;;;~~sCj)//6<<???~~c3'--===nnc
3+nFyyFLL(((yyR]]_=||QF#))TZZ777||Aq!''4::555||QH%++tzz999||As#))TZZ777 ]]9O< 	#LL!S"	#]]9O< 	!LLC 	! 	!	# 	#	! 	!s    I7III(zcan't fill 1 in stringr   c                    t        j                  dg      }t        j                  dg      }d}t        j                  t        |      5  |j                  dd|      }d d d        t        j                  |       y # 1 sw Y    xY w)N0r   r;   r<   )r   r   r   r   )r"   r   r   r%   rO   r$   s         r'   test_replace_regex_dtype_seriesz1TestSeriesReplace.test_replace_regex_dtype_series  su     C5!99aS>1''SA 	J^^s!5^IF	J
vx0	J 	Js   
A>>Bc                 2   t        j                  g d|      }t        j                  g d|      }t        t        |j                  |j
                              }|j                  |      }|j                  dddd      }t        j                  ||       y )N)r   r   r   r   r   r   r   r   r	   )r   r   r   r   r   r   )	r   r   dictzipvaluesr[   r   r   r   )r"   any_int_numpy_dtypelabsmapsmap_dictr$   r%   s          r'    test_replace_different_int_typesz2TestSeriesReplace.test_replace_different_int_types  sq    yy19LMyy*=>DKK45h'<<A! 23
vx0r)   r   rH  c                     t        j                  d|g      }|j                  |d       }t        j                  dd gt              }t	        j
                  ||       y )Nr   r	   )r   r   r   r   r   r   )r"   r   r#   r$   r%   s        r'   %test_replace_value_none_dtype_numericz7TestSeriesReplace.test_replace_value_none_dtype_numeric  sJ     iiC!S$'99aYf5
vx0r)   c                    t         j                  j                  dg di      }|rt        nd }t	        j
                  |d      5  |d   j                  dgt        j                  g      |d<   d d d        t         j                  j                  ddt        j                  dgi      }t	        j                  ||       t         j                  j                  dg di      }|d   j                  d gt        j                  g      |d<   t	        j                  ||       t         j                  j                  dg di      }|d   j                  t        j                        |d<   t	        j                  ||       y # 1 sw Y   xY w)	NTest)0.5T0.6Downcastingr<   Tr`  ra  )r`  Nra  )r   r   	from_dictrH   r   rG   r   r   r,   r!   rD   )r"   using_infer_stringr&   warnr%   s        r'    test_replace_change_dtype_seriesz2TestSeriesReplace.test_replace_change_dtype_series  s2   \\##V-A$BC 2}''MB 	>F++TFRVVH=BvJ	><<))6E26653I*JK
b(+\\##V-A$BCZ''96

b(+\\##V-A$BCZ&&rvv.6

b(+	> 	>s   )E>>Fr
   r   c                 J   t        j                  ddt         j                  g|      }t        j                  ddt         j                  g|      }|j                  dd      }t	        j
                  ||       |j                  ddd       t	        j
                  ||       y )Nr   r   r	   r   rJ  Tr   r+  )r"   r
   r#   r%   r$   s        r'   test_replace_na_in_obj_columnz/TestSeriesReplace.test_replace_na_in_obj_column  s|     iiAruuU399aBEE]%83
vx0q48
sH-r)   r   g      ?c                 Z   t        j                  |dg      }t        j                  |t         j                  g      }|j                  dt         j                        }t	        j
                  ||       |j                  dt         j                  d       t	        j
                  ||       y )Nr   rJ  Tr   r+  )r"   r   r#   r%   r$   s        r'   #test_replace_numeric_column_with_naz5TestSeriesReplace.test_replace_numeric_column_with_na  sx     iia!99c255\*7
vx0qt<
sH-r)   c                 D   t        j                  dgd      }|j                         }|j                  dd      }t	        j
                  ||       t        j                  dgd      }|j                         }|j                  dd      }t	        j
                  ||       y )Nr   r1  r	   Fr   booleanT)r   r   rU   r   r   r   rj   s       r'   test_replace_ea_float_with_boolz1TestSeriesReplace.test_replace_ea_float_with_bool#  s|    iiY/88:UC(
vx0iiy188:S$'
vx0r)   N)G__name__
__module____qualname__r(   r.   rQ   rW   r`   rd   rk   rr   rv   r}   r   r   r   r   r   r   r   r\   markparametrizer   r   r   r   r   r   r   xfailr   r   Categoricalr   r   r   r   r   r   r   r   r   r  r  r   r  r  r  r  r#  r-  IntervalDtyper   IntervalPeriodDtypePeriodr6  r<  rB  rF  rO  rR  r[  r   r,   r]  rf  rh  rj  rm   r)   r'   r   r      s   18
#9(v?C"1&111':)1V*
1111)(V [[Yu6
2 7
21;1111 [[13<TU[[R^^SEsCj9A3?R^^S#JC:>AG	
1 V1 [[O_=u~N11+>1 [[A!*I6Cc<oN	
	1	1 [[i.n0MN114  [[Wudm47 57 [[Wudm4
 5
+ %7bii 72- [[-e}=- >- [[[4-8[[-e}=
- > 9
-1, [[6dE]T5ME5>Bq!f"nr2h7q!f"nr2h7c
$T$:T4LIc
$T$:T4LIu~s3'?#sL   ){r{{1a0+"++a2CDEQ"KBKKB$78{r{{2r2KBKK14EFG	 !  +{r{{34kbkk#s6KLMS#&D$(?@{r{{46C8MNO	 s#93/093/931OP93/0	'	
:1;:10$..!0 [[13<TU[[Wudm41 5 V1	1 [[UQ$451 61," [[Wx&9:. ;. [[UQH-. ..
1r)   r   )r!  numpyr   r\   pandas._configr   pandasr   pandas._testing_testingr   pandas.core.arraysr   r   ry  r)   r'   <module>r     s&    	   5   ,`1 `1r)   