
    [6g|                     d    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dS )    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                            dddg          d             Zd Zd Zd Zd Zd Zd Zej                             e            d          ej                            d e j!        dgdd g!          d"gf e j!        dd gdd g!          d"d#gfg          d$                         Z"ej                            d%g d&g d'fd(gd)gfg          d*             Z#d+ Z$d, Z%ej                            d-g d.d#d/d0d.g d1fg d2d3d4d5d2g d6fg          d7             Z&ej                            d8g d.g d9fg d:g d;fg          d<             Z'd= Z(ej                            d>ddg          d?             Z)ej                            d>ddg          d@             Z*dA Z+dB Z,dCe j-        fdDZ.dE Z/ej                            dFddg          dG             Z0ej                            dHddg          ej                            dFddg          dI                         Z1dJ Z2dK Z3e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 j4        dN           e5 e j6        d"d#           e j6        d#d/          g           e j6        d"d#           e j6        dOdP          i e5 e j6        dOdP           e j6        d#d/          g          f e j4        dS           e5 e j6        d_d`           e j6        dadb          g           e j6        d_d`           e j6        dcdd          i e5 e j6        dcdd           e j6        dadb          g          f e j7        de           e j8        dfdeg          g e j8        dfdeg           e j8        dhdeg          i e j8        dhdeg          gfg	          di             Z9dj Z:dk Z;dl Z<dm Z=ej                             e            dn          ej                            doddg          dp                         Z>dq Z?ej                            drd#e@jA        dsg          dt             ZBdu ZCej                            dvdwdRg          dx             ZDej                            drdydzg          d{             ZEd| ZFd}S )~TestSeriesReplacec                 R   t          j        g dt                    }|                    dd           }t          j        g dt                    }t	          j        ||           t          j        t          j        d                    	                    dt          i          }d|j
        d<   |                    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          }|                    dd           }t          j        g d          }|j
        d         J t	          j        ||           d S )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        g/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/pandas/tests/series/methods/test_replace.pytest_replace_explicit_nonez,TestSeriesReplace.test_replace_explicit_none   s   i


&111R&&9\\\888
vx000 \"(6**++22Av;??B%%<8A;;8A;;8,,,F;;; 
 
 }T"***
fh/// i88899S$''9@@@AA}R (((
vx00000    c                    t          j        d d t          j        d          gt                    }|                    t
          j        d i          }t          j        ||           |j	        t          k    sJ |                    t
          j        d           }t          j        ||           |j	        t          k    sJ d S )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    itR\2D%E%EFfUUUkk264.))
sC(((yF"""" kk"&$''
sC(((yF""""""r)   c           	      ,	   d}t          j        t          j                            d                              |                    }t          j        |dd<   d|dd<   |                    t          j        gdd	          }|J |                    d          }t          j
        ||           |                    d
t          j                  }t          j        ||d
k    <   t          j
        ||           t          j        t          j        t          j                            d                              |                    t          j        d|          t                    }t          j        |d d<   d|dd<   d|dd<   d}t          j        t          |          5  |                    t          j        ddgd          }d d d            n# 1 swxY w Y   |d d         dk                                    sJ |dd         dk                                    sJ |dd         dk                                    sJ t          j        |d d                                                   sJ t          j        t          |          5  |                    t          j        dddddi          }d d d            n# 1 swxY w Y   |d d         dk                                    sJ |dd         dk                                    sJ |dd         dk                                    sJ t          j        |d d                                                   sJ t          j        t          |          5  |                    t          j        ddgg d          }d d d            n# 1 swxY w Y   t          j
        ||           t          j        t          |          5  |                    t          j        ddgdd	          }d d d            n# 1 swxY w Y   |J |d d         dk                                    sJ |dd         dk                                    sJ |dd         dk                                    sJ d S )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}   i	--a00@@CCDD6AaCAbD	 {{BF8R{>>###jjnn
sC((([[bf%%&C3J
r3'''iGBI))!,,<<Q??@@M,222
 
 

 &BQBAbD	BrE
 2'SAAA 	9 	9bfeU3R88B	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 2A2"!!#####1R4B##%%%%%2b5	R$$&&&&&BQB  %%''''' 'SAAA 	A 	Abfb%UB?@@B	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 2A2"!!#####1R4B##%%%%%2b5	R$$&&&&&BQB  %%''''' 'SAAA 	D 	D++rvue4lllCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D
r3''' 'SAAA 	Q 	Q;;u'=r4;PPL	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q###BQB2""$$$$$AbD	R$$&&&&&BrE
b %%'''''''sH   &$GGG&KKK &N22N69N6-&PP#&P#c           	      ~   t          j        t          j        dt          j        g          }t          j        |                    t          j        d          |                    d                     t          j        t          j        dddt          j        d t           j	        g          }t          j        |                    t          j        d          |                    d                     |
                                }d|d<   t          j        |                    t          j        d          |           d S )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    iBF+,,
s{{26155szz!}}EEEiE5"&$GHH
s{{26155szz!}}EEEq	
s{{26155v>>>>>r)   c                    t          j        |j                  }t          j        |                    t          j        d          |                    d                     d}t          j
        t          |          5  |                    g dt          j        dg           d d d            n# 1 swxY w Y   |                    ddgt          j        dg          }t          j        ||           t          j        g d          }|                    g dg d          }t          j        |t          j        g d                     d S )	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{   sX   i-..
s{{26155szz!}}EEE L]:S111 	0 	0KK			BFA;///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 aVbfa[11
vs+++i((___ooo>>
vry'A'ABBBBBs   =%B..B25B2c                    t          j        dt          j        dddg          }|                                }d}t          j        t          |          5  |                    t          j        g          }d d d            n# 1 swxY w Y   t          j	        ||           t          j        dt          j        dddg          }|                                }t          j        t          |          5  |                    t          j                  }d d d            n# 1 swxY w Y   t          j	        ||           d S )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    iBFAq!,--99;;) 	 'SAAA 	+ 	+[["&**F	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+
vx000iBFAq!,--99;;'SAAA 	) 	)[[((F	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)
vx00000s$   !BB	B4 D  D$'D$c                    t          j        t          j        dd                    }|                                }t          j        d          |j        d<   |                    t          j        d          t          j        d          i          }t          j        ||           |                    t          j        d          t          j        d                    }t          j        ||           d S )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    ij!<<<==88::,z22Qbl:66Z8P8PQRR
vx000R\*55r|J7O7OPP
vx00000r)   c                    t          j        dd          }t          j        t           j        t          j        dd          g          }|                    t
          j        t           j        gt           j        j                  }t          j        t           j        j        |gt                    }t          j
        ||           d S )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11Irvr|LUCCCDEEBFBF+R\-=>>9bl.36BBB
x00000r)   c                 8   t          j        dd          }t          j        |          }|                    |d         |d         i          }t          j        |d         |d         |d         |d         |d         g          }t	          j        ||           d S )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...inn c!fc!f-..9c!fc!fc!fc!fc!fEFF
vx00000r)   c                    t          j        g d          }d}t          j        t          |          5  |                    g d          }d d d            n# 1 swxY w Y   t          j        |t          j        g d                     |                                }t          j        t          |          5  |                    g dd          }d d d            n# 1 swxY w Y   |J t          j        |t          j        g d                     |                                }d}d	}t          j	        t          |          5  t          j        t          |          5  |                    g ddd
          }d d d            n# 1 swxY w Y   |J 	 d d d            n# 1 swxY w Y   t          j        ||           d S )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   s   i(() 	 'TBBB 	, 	,[[++F	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,
vry'A'ABBBHHJJ'TBBB 	> 	>99YYY9==L	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>###
q")OOO"<"<=== HHJJ, 	 F]:S111 	( 	(+MFFF Y Y yyDyXXY Y Y Y Y Y Y Y Y Y Y Y Y Y Y''''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	q#&&&&&sY   AAA;C!!C%(C%F+(FF+F	F+F	F++F/2F/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                    }|                    t                                        |d         |d         |d         gg d          }t          j        g d|dd          	                                z   t                    }t          j        ||           d S )Nr8   int64r	   c                                                      }                    | |          }|                    | |d          }|J t          j        ||           t          j        ||           d S )NTr3   )rU   r   r   r   )to_repvalr%   scr$   rL   r#   s         r'   check_replacezATestSeriesReplace.test_replace_mixed_types.<locals>.check_replace   sr    B[[--F::fc4:@@L'''"8V444"8R0000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%   i	!G444	1 	1 	1 	1 	1 cUAb!S!!!beQqT3''' I'''((cUAb!Q I)))**Ac
Ab!Q Iq!QR\*%=%=>??Abl:667Ab!Q I***(;;;AdAb!Q Yr}Z3GGGHH6""**BqE2a5"Q%+@---PP9]]]RV]]__<FKKK
vx00000r)   c                     t          j        g d          }|                    dd          }t          j        ||           d S )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  sD    I)))**5,//
q&)))))r)   c                     t          j        g d          }|                    dd          }t          j        g d          }t          j        ||           d S )Nr   T2u)r   Fr   r   r"   rq   r$   r%   s       r'   test_replace_bool_with_stringz/TestSeriesReplace.test_replace_bool_with_string  sZ    I)))**4&&900011
x00000r)   c                     t          j        g d          }|                    dd          }t          j        dgt          |          z            }t	          j        ||           d S )Nr   TF)r   r   r   lenr   r   r   s       r'   test_replace_bool_with_boolz-TestSeriesReplace.test_replace_bool_with_bool  s`    I)))**4''9eWs1vv-..
x00000r)   c                     t          j        g d          }|                    ddd          }t          j        g d          }t          j        ||           d S )Nr   asdbyes)asdfT)r   Fr   r   r   s       r'   %test_replace_with_dict_with_bool_keysz7TestSeriesReplace.test_replace_with_dict_with_bool_keys  s`    I)))**F%8899922233
vx00000r)   c                    t          j        dd g|                              dt           j                  }t          j        t           j        t           j        g|          }t	          j        ||           t          j        ddg|                              dt           j                  }|                    dt           j        d           t	          j        ||           d S )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O9beRU^3CDDD
vx000Aq6)9:::BB1beLLq"%...
vx00000r)   c           	      B   d}t          j        t          j        t          j                            d                              |                    t          j        d|          t                    }t          j	        |d d<   d|dd	<   d
|dd<   d}t          j        t          |          5  |                    t          j	        dd
gd          }d d d            n# 1 swxY w Y   |d d         dk                                    sJ |dd	         dk                                    sJ |dd         dk                                    sJ t          j        |d d                                                   sJ t          j        t          |          5  |                    t          j	        dddd
di          }d d d            n# 1 swxY w Y   |d d         dk                                    sJ |dd	         dk                                    sJ |dd         dk                                    sJ t          j        |d d                                                   sJ t          j        t          |          5  |                    t          j	        dd
gg d          }d d d            n# 1 swxY w Y   t          j        ||           t          j        t          |          5  |                    t          j	        dd
gdd          }d d d            n# 1 swxY w Y   |J |d d         dk                                    sJ |dd	         dk                                    sJ |dd         dk                                    sJ d S )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   iGBI))!,,<<Q??@@M,222
 
 

 &BQBAbD	BrE
 2'SAAA 	9 	9bfeU3R88B	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 2A2"!!#####1R4B##%%%%%2b5	R$$&&&&&BQB  %%''''' 'SAAA 	A 	Abfb%UB?@@B	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 2A2"!!#####1R4B##%%%%%2b5	R$$&&&&&BQB  %%''''' 'SAAA 	D 	D++rvue4lllCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D
r3''' 'SAAA 	Q 	Q;;u'=r4;PPL	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q###BQB2""$$$$$AbD	R$$&&&&&BrE
b %%'''''''sH   1$C!!C%(C%&GGG&J==KK8&L**L.1L.r4   TFc                     t          j        g d          }t          j        g d          }|                    g dg d|          }|rt          j        ||           d S t          j        ||           d S )NrY   r   r   r1   r3   r   )r"   r4   r#   r%   r-   s        r'   test_replace_cascadez&TestSeriesReplace.test_replace_cascadeO  s     i			""9YYY''kk)))YYYk@@ 	2"311111"311111r)   c                     t          j        ddt          j        g|          }t          j        ddt          j        g|          }|                    ddd          }t          j        ||           d S )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\  sp    irv.6KLLL9c3/7LMMMS5566
x00000r)   c                    t          j        t          d                    }t          j        ||                    i                      t          j        g           }t          j        ||                    |                     d S )Nabcd)r   r   listr   r   r   )r"   rq   empty_seriess      r'    test_replace_with_empty_dictlikez2TestSeriesReplace.test_replace_with_empty_dictlikec  sf    Id6ll##
q!))B--000y}}
q!))L"9"9:::::r)   c                     t          j        g d          }|                    dt          j                  }t          j        g d          }t          j        ||           d S NrY   r   r   r   r   r   r,   r   r   r   s       r'   test_replace_string_with_numberz1TestSeriesReplace.test_replace_string_with_numberk  V    Iiii  3''9YYY''
x00000r)   c                     t          j        ddg          }t          j        ddg          }|                    ddd          }t          j        ||           d S )Nr   r   )r   r   r   )r"   rq   r%   r$   s       r'   (test_replace_replacer_equals_replacementz:TestSeriesReplace.test_replace_replacer_equals_replacementr  s\     IsCj!!9c3Z((3//00
x00000r)   c                     t          j        g d          }|                    dt          j                  }t          j        g d          }t          j        ||           d S r   r   r   s       r'    test_replace_unicode_with_numberz2TestSeriesReplace.test_replace_unicode_with_numberz  r   r)   c                 f   t          j        g d          }d}t          j        t          |          5  |                    ddgt          j                  }d d d            n# 1 swxY w Y   t          j        dt          j        dt          j        dd	g          }t          j        ||           d S )
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    I***++1'SAAA 	1 	1YY3x00F	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	19aBFAq9::
x00000s   #A##A'*A'zcan't fill 0 in string)reasonzcategorical, numericAB)
categoriesr   r   c                    t          j        |          }d}d}t          j        t          |          5  |                    ddd          }d d d            n# 1 swxY w Y   t          j        |                              d          }d|j        j        vr|j        	                    d          }t          j
        ||           d S )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     i$$13'SAAA 	3 	3[[qq!1!122F	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	39W%%,,Z88HL+++  |22155H
x00000   AA Azdata, data_expr   r   c)r   r   r   r   r   c                 "   t          j        |d          }d}t          j        t          |          5  |                    ddd           d d d            n# 1 swxY w Y   t          j        |d          }t          j        ||           d S )	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  s    
 4z2223'SAAA 	D 	DNNcdNCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D9XZ888
vx00000r   c                    t          j        ddd          }t          j        |          }|                    d          }|                                }|j                            d          }d|d<   |j                                        }|d         dk    sJ d}t          j	        t          |	          5  |                    |d         d          }d d d            n# 1 swxY w Y   t          j        ||           |d         dk    sJ d}t          j	        t          |	          5  |                    |d         dd
          }d d d            n# 1 swxY w Y   |J t          j        ||           |d         }d}t          j	        t          |	          5  |                    |d         |d         d
          }d d d            n# 1 swxY w Y   |J |d         |d         cxk    r|k    sn J d S )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   mL!EEEIcNNHHZ  6688<..u55<88::tu}}}}3'SAAA 	, 	,YYqtU++F	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,
x000tu}}}}3'SAAA 	@ 	@99QqT5$9??L	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@###
x+++d3'SAAA 	? 	?99QqT1Q49>>L	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?###tqt****{********s6   8C!!C%(C%,EEE %GGGc                 j   t          j        g d          }|                    dgdg          }t          j        g d          }t          j        ||           t          j        g d          }|                    dgdg          }t          j        g d          }t          j        ||           d S )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     Iooo&&A3!8 9::9BBBCC
vx000IKKKLL34qc::9<<<==
vx00000r)   zser, to_replace, exprY   r   r1   r   )r   r   3r   r   r   )r   r   r   c                     t          j        |          }t          j        |          }|                    |          }t          j        ||           d S Nr   )r"   r#   r   rM   seriesr%   r$   s          r'   test_replace_commutativez*TestSeriesReplace.test_replace_commutative  sH     39S>>
++
vx00000r)   zser, exp)r   Tr   )xr   r   )r   Tr   c                     t          j        |          }|                    dd          }t          j        |          }t          j        ||           d S )Nr   Tr   )r"   r#   rM   r   r$   r%   s         r'   test_replace_no_castz&TestSeriesReplace.test_replace_no_cast  sJ     34((9S>>
vx00000r)   c                 4   t          j        g d          }d}d}t          j        t          |          5  t          j        t          |          5  |                    d            d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr   r   zc zZExpecting 'to_replace' to be either a scalar, array-like, dict or None, got invalid type.*rb   r<   c                 *    |                                  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00 	4 	4+MFFF 4 4223334 4 4 4 4 4 4 4 4 4 4 4 4 4 4	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s5   BA5)B5A9	9B<A9	=BBBframec                     t          j        g d          }|r|                                }d}t          j        t
          |          5  |                    dgd           d d d            d S # 1 swxY w Y   d S )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  s    i((()) 	!,,..CD]:S111 	7 	7KKC5K666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s   
A00A47A4c                    t          j        g t          j                  }|r|                                }|                    ddd          }|J |                    ddd          }t          j        ||           ||usJ d S )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  s    i"*--- 	!,,..Ckk!Qk--{{{kk!Qk..
S!!!#~~~~~~r)   c                    t          j        ddd|dg          }ddd}d}d}t          j        t          |          5  |                    ||           d d d            n# 1 swxY w Y   d}dd	d}d
}t          j        t          |          5  |                    ||           d d d            d S # 1 swxY w Y   d S )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  sW    iAsL$788s^^
Q]:S111 	+ 	+KK
E***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 
e$$L]:S111 	+ 	+KK
E***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s#   A!!A%(A%B44B8;B8c                      |t          j        g dd                    }|                    dd          }t          j        ||           d S )NrY   Int64r	   r   )r   r    r   r   r   )r"   frame_or_seriesr   r$   s       r'   test_replace_extension_otherz.TestSeriesReplace.test_replace_extension_other.  sO    obhyyy@@@AAR$$
V$$$$$r)   r#   c                 d   |                                 }d}t          j        t          |          5  |                    |d         d          }d d d            n# 1 swxY w Y   t          j        |d         |d         gt          |dd                    z   |j                  }t          j	        ||           d	}t          j        t          |          5  |                    |d         d          }d d d            n# 1 swxY w Y   t          j
        ||                                            |                                }t          j        t          |          5  |                    |d         dd
          }	d d d            n# 1 swxY w Y   |	J t          j	        ||           t          j        t          |          5  |                    |d         dd
          }
d d d            n# 1 swxY w Y   |
J t          j
        ||                                            d S )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BB 	4 	4++c!fU+33C	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	49c!fc!f-SW=SYOOO
sH---H'TBBB 	6 	6ZZAuZ55F	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6
fh&7&7&9&9:::xxzz'TBBB 	D 	D<<Aud<CCD	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D|||
tX...'TBBB 	E 	EjjQtjDDG	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E
b("3"3"5"566666sG   AA #A DDD%FFFG::G>G>c                     t          j        ddt           j        dg|          }t          j        |          }|                     |           d S )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  sI    h1beQ'/CDDDinn'',,,,,r)   as_categoricalc                     t           j                            t          d                    }t          j        |          }|r|                    d          }|                     |           d S )Nr1   r   )r   IntervalIndexfrom_breaksranger   r   r  )r"   r  idxr#   s       r'   !test_replace_interval_with_methodz3TestSeriesReplace.test_replace_interval_with_methodT  s`     **58844inn 	)**Z((C'',,,,,r)   	as_periodc                 0   t          j        ddd          }|r(|                    d                               d          }t          j        |          }t           j        |j        d<   |r|                    d          }|                     |           d S )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_  s     mL!EEE 	7//$''11#66Cinnv 	)**Z((C'',,,,,r)   c                     t          j        g d          }t          j        d          }|                    |did          }t          j        g d          }t          j        ||           d S )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  si    Iooo&&
5!!E3<t449___--
vx00000r)   c           	         t          j        ddddddt           j        gd          }dddd	d
}|                    |d          }t          j        ddd	dddt           j        gd          }t	          j        ||           d S )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    itT4r25ARRR	
 
 ]$77itYdBFhWWW
vs+++++r)   z,dtype, input_data, to_replace, expected_databoolr   r   r   )r   r   r  r   皙?皙@g333333$@g     4@)r0  r1  Float64r+  r   r   r   r   r   g@gffffff@g@g333333%@g4@Mz2020-05r   z2020-06c                     t          j        ||          }|                    |          }t          j        ||          }t          j        ||           d S )Nr	   r   )r"   r
   
input_datar   expected_datar#   r$   r%   s           r'   test_replace_dtypez$TestSeriesReplace.test_replace_dtype  sV    > i
%000Z((9]%888
vx00000r)   c                    t          j        ddt          j        gd          }|                    ddd          }t          j        ddt          j        gd          }t          j        ||           t          j        dt          j        gd          }|                    dd	          }t          j        d	t          j        gd          }t          j        ||           t          j        dd	gd          }|                    dt           j                  }t          j        t           j        d	gd          }	t          j        ||	           d S )
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$   irv.h???kk#c22339c3/x@@@
sH--- y#rvh777||C%%IsBFm8<<<	
tY///y#s8444||C''Irucl(;;;	
tY/////r)   c                     t          j        ddgd          }|                    ddgd          }t          j        ddgd          }t          j        ||           d S )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  sd    ih777kk5"45u==9eU^8<<<
sH-----r)   c                     t          j        ddgd          }|                    ddd          }t          j        ddgd          }t          j        ||           d S )	Nr   r   r+  r	   .CTr!  r   rB  s       r'   test_replace_string_dtype_regexz1TestSeriesReplace.test_replace_string_dtype_regex  sb    ic
(333kk$4k009c3Zx888
sH-----r)   c                    t          j        g dt          j                              }|                    ddi          j        |j        k    sJ |                    dd          j        |j        k    sJ |                    ddi          j        |j        k    sJ |                    dd          j        |j        k    sJ |                    ddgddg          }|j        |j        k    sJ t          j        g d	t          j                              }|                    d
di          j        |j        k    sJ |                    d
d          j        |j        k    sJ |                    d
di          j        |j        k    sJ |                    d
d          j        |j        k    sJ t          j        t          d          5  |                    d
di           d d d            n# 1 swxY w Y   t          j        t          d          5  |                    d
d           d d d            d S # 1 swxY w Y   d S )N)r          @gˡE@g@r	   r   	   g      "@rI  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119J9JKKK~~sAh''-====~~c1%%+v|;;;;~~sCj))/6<????~~c3''-====nnc
3+nFFyFL((((yR]__===||QF##)TZ7777||Aq!!'4:5555||QH%%+tz9999||As##)TZ7777 ]9O<<< 	# 	#LL!S"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#]9O<<< 	! 	!LLC   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s$   G33G7:G7H==IIzcan't fill 1 in stringr   c                    t          j        dg          }t          j        dg          }d}t          j        t          |          5  |                    dd|          }d d d            n# 1 swxY w Y   t          j        ||           d S )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  s     C5!!9aS>>1'SAAA 	J 	J^^s!5^IIF	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J
vx00000s   A--A14A1c                 :   t          j        g d|          }t          j        g d|          }t          t          |j        |j                            }|                    |          }|                    dddd          }t          j        ||           d S )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  s    y1119LMMMy*=>>>DK4455h''<<A! 2 233
vx00000r)   r   rI  c                     t          j        d|g          }|                    |d           }t          j        dd gt                    }t	          j        ||           d S )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  s[     iC!!S$''9aYf555
vx00000r)   c                     t           j                            dg di          }|rt          nd }t	          j        |d          5  |d                             dgt          j        g          |d<   d d d            n# 1 swxY w Y   t           j                            ddt          j        dgi          }t	          j	        ||           t           j                            dg di          }|d                             d gt          j        g          |d<   t	          j	        ||           t           j                            dg di          }|d         
                    t          j                  |d<   t	          j	        ||           d S )	NTest)0.5T0.6Downcastingr<   Tra  rb  )ra  Nrb  )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  s   \##V-A-A-A$BCC 2<}}'MBBB 	> 	>F++TFRVH==BvJ	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	><))6E2653I*JKK
b(+++\##V-A-A-A$BCCZ''996

b(+++\##V-A-A-A$BCCZ&&rv..6

b(+++++s   ,A==BBr
   r   c                 D   t          j        ddt           j        g|          }t          j        ddt           j        g|          }|                    dd          }t	          j        ||           |                    ddd           t	          j        ||           d S )Nr   r   r	   r   rK  Tr   r,  )r"   r
   r#   r%   r$   s        r'   test_replace_na_in_obj_columnz/TestSeriesReplace.test_replace_na_in_obj_column  s     iAruU3339aBE]%88833
vx000q4888
sH-----r)   r   g      ?c                 L   t          j        |dg          }t          j        |t           j        g          }|                    dt           j                  }t	          j        ||           |                    dt           j        d           t	          j        ||           d S )Nr   rK  Tr   r,  )r"   r   r#   r%   r$   s        r'   #test_replace_numeric_column_with_naz5TestSeriesReplace.test_replace_numeric_column_with_na  s     ia!!9c25\**77
vx000qt<<<
sH-----r)   c                 ^   t          j        dgd          }|                                }|                    dd          }t	          j        ||           t          j        dgd          }|                                }|                    dd          }t	          j        ||           d S )Nr   r2  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    iY///88::UC((
vx000iy11188::S$''
vx0000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Periodr7  r=  rC  rG  rP  rS  r\  r   r,   r^  rg  ri  rk  rn   r)   r'   r   r      s       1 1 18
# 
# 
#9( 9( 9(v? ? ?C C C"1 1 1&1 1 11 1 11 1 1' ' ':)1 )1 )1V* * *
1 1 11 1 11 1 11 1 1)( )( )(V [Yu66
2 
2 76
21 1 1; ; ;1 1 11 1 11 1 11 1 1 [1133<TUU[R^SEsCj999A3?R^S#JC:>>>AG	
 1 1  VU1 [OOO___=u~N 1 1 1+ + +>1 1 1 [YYA!**III6__Cc<<oooN	
 	1 	1 	1 [iii.nnn0MN 1 1 14 4 4  [Wudm447 7 547 [Wudm44
 
 54
+ + + % % %7bi 7 7 7 72- - - [-e}==- - >=- [[4-88[-e}==
- 
- >= 98
-1 1 1, , , [6dE]T5ME5>Bq!f"nnr2h7q!f"nnr2h7c
$T$:$:T4LIc
$T$:$:T4LIu~s3'?'?#sL  )){r{1a00+"+a2C2CDEEQ""KBKB$7$78{r{2r22KBK14E4EFGG	 ! ++{r{344kbk#s6K6KLMMS#&&D$(?(?@{r{466C8M8MNOO	 s##93///093///931O1O1OP93///0	'	
 :1 1; :10 0 0$. . .. . .! ! !0 [1133<TUU[Wudm441 1 54 VU1	1 	1 	1 [UQ$4551 1 651, , ," [Wx&9::. . ;:. [UQH--. . .-.
1 
1 
1 
1 
1r)   r   )r"  numpyr   r\   pandas._configr   pandasr   pandas._testing_testingr   pandas.core.arraysr   r   rz  r)   r'   <module>r     s    				      5 5 5 5 5 5           , , , , , ,`1 `1 `1 `1 `1 `1 `1 `1 `1 `1r)   