
    bMh9}                     X    d dl Z d dlZd dlZd dlZd dlmZ d dl	m
Z
  G d d          ZdS )    N)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                            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-d.d,g d/fg d0d1d2d3d0g d4fg          d5             Z$ej                            d6g d,g d7fg d8g d9fg          d:             Z%d; Z&ej                            d<ddg          d=             Z'ej                            d<ddg          d>             Z(d? Z)d@ Z*dAej+        fdBZ,dC Z-ej                            dDddg          dE             Z.ej                            dFddg          ej                            dDddg          dG                         Z/dH Z0dI Z1ej                            dJdKddgddiddgfdLd d!gdMdNdOdMdNgfdPd d!gdMdNdOdMdNgfdQdRdSgdTdUdVdTdUgfdWdRdSgdTdUdVdTdUgfdXdYdZgd[d1d\d[d1gf ej2        dL           e3 ej4        d d!           ej4        d!d-          g           ej4        d d!           ej4        dMdN          i e3 ej4        dMdN           ej4        d!d-          g          f ej2        dQ           e3 ej4        d]d^           ej4        d_d`          g           ej4        d]d^           ej4        dadb          i e3 ej4        dadb           ej4        d_d`          g          f ej5        dc           ej6        dddce          g ej6        dddce           ej6        dfdce          i ej6        dfdce          gfg	          dg             Z7dh Z8di Z9dj Z:dk Z;ej                            dlddg          dm             Z<ej                            dlddg          dn             Z=do Z>ej                            dpd!e?j@        dqg          dr             ZAds ZBej                            dtdudPg          dv             ZCej                            dpdwdxg          dy             ZDdz ZEd{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        h/var/www/html/test/jupyter/venv/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_replace4   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   r8   r9   r0   )r   r   r   r+   infr   r   r   rC   NaTcopy)r!   r"   filleds      r&   test_replace_nan_with_infz+TestSeriesReplace.test_replace_nan_with_info   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
   r0   )r0   r
   r   r   r   )r   r   indexr   r   r   r   r+   rC   pytestraises
ValueError)r!   datetime_seriesr"   rN   r#   s        r&   +test_replace_listlike_value_listlike_targetz=TestSeriesReplace.test_replace_listlike_value_listlike_targety   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
   r0   PSeries.replace without 'value' and with non-dict-like 'to_replace' is deprecatedr;   )
r   r   r   r+   ffillr   rF   rG   r   r   )r!   r"   r$   rN   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20130101r7   r5   20120101r   20130103)	r   r   rE   rT   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   rS   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   r7   r5   r   r
   r   r0   )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 )NrY   ra   r;   rX   )r   r   r   r   r0   Tr2   zVInvalid fill method\. Expecting pad \(ffill\) or backfill \(bfill\)\. Got crash_cymbal4The 'method' keyword in Series.replace is deprecatedcrash_cymbal)r3   method)r   r   r   rF   rG   r   r   rT   r[   r\   r]   )r!   r"   msg2r#   rp   rK   rN   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 )Nr7   int64r   c                                                      }                    | |          }|                    | |d          }|J t          j        ||           t          j        ||           d S )NTr2   )rT   r   r   r   )to_repvalr$   scr#   rK   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         @r0   r   )r   r   r   r   r   r0   r   r   r   re   )r   r   r   r   Tr   Tz1/1/2001z	1/10/2001Dfreq)      ?r   r   )r   r   r   aranger*   rE   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!   rp   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!   rp   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   Tr2   )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 )Nr/   r   r4   r5   r   r7   r8   r1   r   r9   r   r   r:   r;   r   r=   r>   r?   Tr2   )r   r   r   rD   r@   rA   rB   rE   r   r+   r   rF   rG   r   rH   rI   r   )r!   rJ   r"   rN   rM   rO   rK   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.r3   TFc                     t          j        g d          }t          j        g d          }|                    g dg d|          }|rt          j        ||           d S t          j        ||           d S )NrX   r   r
   r0   r2   r   )r!   r3   r"   r$   r,   s        r&   test_replace_cascadez&TestSeriesReplace.test_replace_cascadeM  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_dtypeZ  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!   rp   empty_seriess      r&    test_replace_with_empty_dictlikez2TestSeriesReplace.test_replace_with_empty_dictlikea  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 NrX   r   r   r   r   r   r+   r   r   r   s       r&   test_replace_string_with_numberz1TestSeriesReplace.test_replace_string_with_numberi  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!   rp   r$   r#   s       r&   (test_replace_replacer_equals_replacementz:TestSeriesReplace.test_replace_replacer_equals_replacementp  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_numberx  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
   4r0   r7   r:   r;   r   r   r   r
   r0   r7   )	r   r   r   rF   rG   r   r   r+   r   )r!   rp   rN   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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   rF   rG   r   r   catr   add_categoriesr   )r!   categoricalnumericusing_infer_stringr"   rN   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valuer3   r   r   r   rF   rG   r   r   )r!   datadata_expr#   rN   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r6   rm   r   r8   r   r   r;   Tr2   r   r   )r   rE   r   r   rT   r   r   remove_unused_categoriesr   rF   rG   r   r   )	r!   dtirp   r   r$   rN   r#   rK   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 )NrY   r
   100000000000000000000)r   r   r   r   r0   )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, exprX   r
   r0   r   )r   r   3r   r   r   )r   r   r   c                     t          j        |          }t          j        |          }|                    |          }t          j        ||           d S Nr   )r!   r"   r   rL   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"   rL   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.*ra   r;   c                 *    |                                  S r   )strip)r   s    r&   <lambda>zCTestSeriesReplace.test_replace_invalid_to_replace.<locals>.<lambda>  s     r(   )	r   r   r[   r\   	TypeErrorr   rF   rG   r   )r!   r   rN   rz   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   r8   )r   regex)r   r   to_framer[   r\   r]   r   )r!   r   objrN   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   r0   r7   Tr2   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   r8   zASeries.replace cannot use dict-like to_replace and non-None valuer;   r9   z<Series.replace cannot use dict-value and non-None to_replace)r   r   r[   r\   r]   r   )r!   fixed_now_tsr"   r   r   rN   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 )NrX   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 )Nrw   r;   r   pad)ry   r   r   r   z7The 'method' keyword in DataFrame.replace is deprecatedT)ry   r3   )r   r   rF   rG   r   r   r   r   r	   r   r    rT   )r!   r"   r%   msg1r,   r$   rz   res_dfser2res2res_df2s              r&   _check_replace_with_methodz,TestSeriesReplace._check_replace_with_method2  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   r0   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_methodK  sI    h1beQ'/CDDDinn'',,,,,r(   as_categoricalc                     t           j                            t          d                    }t          j        |          }|r|                    d          }|                     |           d S )Nr0   r   )r   IntervalIndexfrom_breaksranger   r   r  )r!   r  idxr"   s       r&   !test_replace_interval_with_methodz3TestSeriesReplace.test_replace_interval_with_methodQ  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   r7   r   r   r   r=   r   )	r   rE   tz_localize	to_periodr   rS   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!   rp   r   r#   r$   s        r&    test_replace_with_compiled_regexz2TestSeriesReplace.test_replace_with_compiled_regexj  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#   rL   s        r&   test_pandas_replace_naz(TestSeriesReplace.test_pandas_replace_nar  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@)r/  r0  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   rA  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      "@rH  g      $@r   r   )r   r   r
   r0   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r   c                 ,   t          j        dgt                    }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   rF   rG   r   r   r!   r   r   r$   rN   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   A44A8;A8c                 &   t          j        dgd          }t          j        dgd          }d}t          j        t          |          5  |                    dd|          }d d d            n# 1 swxY w Y   t          j        ||           d S )	NrQ  strr   r   r~   r:   r;   rR  r   rS  s         r&   &test_replace_regex_dtype_series_stringz8TestSeriesReplace.test_replace_regex_dtype_series_string  s    C5...9aS000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   A11A58A5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valuesrZ   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   rH  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t                    }|d                             dgt          j        g          |d<   t          j        ddt          j        dgit                    }t          j        ||           t          j        dg dit                    }|d                             d gt          j        g          |d<   t          j        ||           t          j        dg dit                    }|d                             t          j                  |d<   t          j        ||           d S )NTest)0.5T0.6r   Tre  rf  )re  Nrf  )	r   r   r   r   r   r+   r   r    rC   )r!   r%   r$   s      r&    test_replace_change_dtype_seriesz2TestSeriesReplace.test_replace_change_dtype_series  s&   \6#7#7#78GGGZ''996
<%)? @OOO
b(+++\6#7#7#78GGGZ''996

b(+++\6#7#7#78GGGZ&&rv..6

b(+++++r(   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   rJ  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   rJ  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   r1  r   Fr   booleanT)r   r   rT   r   r   r   ri   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)F__name__
__module____qualname__r'   r-   rP   rV   r_   rc   rj   rq   ru   r|   r   r   r   r   r   r   r   r[   markparametrizer   r   r   r   r   r   r   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  rT  rW  r`  r   r+   rb  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 [R^SEsCj999A3?R^S#JC:>>>AG	
 1 1 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 [Wudm441 1 541 [Wudm441 1 54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[   pandasr   pandas._testing_testingr   pandas.core.arraysr   r   ry  r(   r&   <module>r     s    				                , , , , , ,e1 e1 e1 e1 e1 e1 e1 e1 e1 e1r(   