
    .i
m                         d dl Z d dlZd dlZd dlmc mZ d dlZ	d dl
mZ d dlmZ  G d d      Z ej                   d      d        Zy)    N)IntervalArrayc                   P   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zej*                  j-                  dddg      d        Zd Zd Zd Zd Zd Zd Zej*                  j-                  ddgdgfddgdd gfg      d!        Zd" Zd# Z d$ Z!ej*                  j-                  d%g d&d d'd(d&g d)fg d*d+d,d-d*g d.fg      d/        Z"ej*                  j-                  d0g d&g d1fg d2g d3fg      d4        Z#d5 Z$ej*                  j-                  d6ddg      d7        Z%ej*                  j-                  d6ddg      d8        Z&d9 Z'd: Z(d; Z)d< Z*d= Z+ej*                  j-                  d>d?ddgddiddgfd@dd gdAdBdCdAdBgfdDdd gdAdBdCdAdBgfdEdFdGgdHdIdJdHdIgfdKdFdGgdHdIdJdHdIgfdLdMdNgdOd+dPdOd+gf e,jZ                  d@       e. e,j^                  dd        e,j^                  d d'      g       e,j^                  dd        e,j^                  dAdB      i e. e,j^                  dAdB       e,j^                  d d'      g      f e,jZ                  dE       e. e,j^                  dQdR       e,j^                  dSdT      g       e,j^                  dQdR       e,j^                  dUdV      i e. e,j^                  dUdV       e,j^                  dSdT      g      f e,j`                  dW       e,jb                  dXdWY      g e,jb                  dXdWY       e,jb                  dZdWY      i e,jb                  dZdWY      gfg	      d[        Z2d\ Z3d] Z4d^ Z5d_ Z6ej*                  j-                  d`ddg      da        Z7ej*                  j-                  d`ddg      db        Z8dc Z9ej*                  j-                  ddd e:jv                  deg      df        Z<dg Z=ej*                  j-                  dhdidDg      dj        Z>ej*                  j-                  dddkdlg      dm        Z?dn Z@do ZAdp ZByq)rTestSeriesReplacec                 T   t        j                  g dt              }|j                  dd       }t        j                  g dt              }t	        j
                  ||       t        j                  t        j                  d            j                  dt        i      }d|j                  d<   |j                  dd       }t        j                  t        j                  d      t        j                  d      t        j                  g d	t              d
      }|j                  d   J t	        j                  ||       t        j                  g d      }|j                  dd       }t        j                  g d      }|j                  d   J t	        j
                  ||       y )N)r   r    dtyper   )r   r   N)   r
      )r   r   r
   )        r   N)r      r   )
         ar   br   r   )r   r   r   NNr   N)pdSeriesobjectreplacetmassert_series_equal	DataFramenpzerosastypeilocarrayassert_frame_equal)selfserresultexpecteddfs        f/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/series/methods/test_replace.pytest_replace_explicit_nonez,TestSeriesReplace.test_replace_explicit_none   s;   ii
&1R&99\8
vx0 \\"((6*+22Av;?B%<<88A;88A;88,F;
 }}T"***
fh/ ii89S$'99@A}}R (((
vx0    c                    t        j                  d d t        j                  d      gt              }|j	                  t
        j                  d i      }t        j                  ||       |j                  t        k(  sJ |j	                  t
        j                  d       }t        j                  ||       |j                  t        k(  sJ y )Nz2021-12-16 17:31r   )
r   r   	Timestampr   r   r   nanr   r   r	   )r!   r"   ress      r&   !test_replace_noop_doesnt_downcastz3TestSeriesReplace.test_replace_noop_doesnt_downcast*   s    iitR\\2D%EFfUkk2664.)
sC(yyF""" kk"&&$'
sC(yyF"""r(   c                    d}t        j                  t        j                  j	                  d      j                  |            }t        j                  |dd d|dd |j                  t        j                  gdd	      }||u sJ |j                  d      }t        j                  ||       |j                  d
t        j                        }t        j                  ||d
k(  <   t        j                  ||       t        j                  t        j                  t        j                  j	                  d      j                  |            t        j                  d|      t              }t        j                  |d d d|dd d|dd |j                  t        j                  ddgd      }|d d dk(  j                         sJ |dd dk(  j                         sJ |dd dk(  j                         sJ t        j                  |d d       j                         sJ |j                  t        j                  dddddi      }|d d dk(  j                         sJ |dd dk(  j                         sJ |dd dk(  j                         sJ t        j                  |d d       j                         sJ |j                  t        j                  ddgg d      }t        j                  ||       |j                  t        j                  ddgdd	      }||u sJ |d d dk(  j                         sJ |dd dk(  j                         sJ |dd dk(  j                         sJ y )N2   r   r         r   r   Tinplacer   
2020-01-01periodsr      foobarr   r   r   r:   r;   )r   r   r   randomdefault_rngstandard_normalr+   r   fillnar   r   fabs
date_ranger   allisna)r!   Nr"   r#   exprsrs2s          r&   test_replacezTestSeriesReplace.test_replace6   s   ii		--a0@@CD66AaAb	 bffXr48}}jjn
sC([[bff%&&C3J
r3'iiGGBII))!,<<Q?@MM,2

 &&BQAb	Br
 [["&&%/42A"!!###1RB##%%%2b	R$$&&&BQ %%''' [["&&"eR;<2A"!!###1RB##%%%2b	R$$&&&BQ %%''' kk2665%0,?
r3' bffeU3RF}}BQ2""$$$Ab	R$$&&&Br
b %%'''r(   c           	         t        j                  t        j                  dt        j                  g      }t        j                  |j                  t        j                  d      |j                  d             t        j                  t        j                  dddt        j                  d t         j                  g      }t        j                  |j                  t        j                  d      |j                  d             |j                         }d|d<   t        j                  |j                  t        j                  d      |       y )Nr   r8   r9   r0   )r   r   r   r+   infr   r   r   r@   NaTcopy)r!   r"   filleds      r&   test_replace_nan_with_infz+TestSeriesReplace.test_replace_nan_with_infm   s    iiBFF+,
s{{26615szz!}EiiE5"&&$GH
s{{26615szz!}Eq	
s{{26615v>r(   c                    t        j                  |j                        }t        j                  |j                  t        j                  d      |j                  d             d}t        j                  t        |      5  |j                  g dt        j                  dg       d d d        |j                  ddgt        j                  dg      }t        j                  ||       t        j                  g d      }|j                  g dg d      }t        j                  |t        j                  g d             y # 1 sw Y   xY w)	Nr   z:Replacement lists must match in length\. Expecting 3 got 2matchr   r   r
   r   r   r   r   r   r
   r0   )r0   r
   r   r   r   )r   r   indexr   r   r   r   r+   r@   pytestraises
ValueError)r!   datetime_seriesr"   msgr#   s        r&   +test_replace_listlike_value_listlike_targetz=TestSeriesReplace.test_replace_listlike_value_listlike_targetw   s    ii--.
s{{26615szz!}E L]]:S1 	0KK	BFFA;/	0 aVbffa[1
vs+ii(_o>
vryy'AB	0 	0s    %E  E	c                    t        j                  dt        j                  dddg      }d}t	        j
                  t        |      5  |j                  t        j                  g       d d d        t	        j
                  t        |      5  |j                  t        j                         d d d        y # 1 sw Y   MxY w# 1 sw Y   y xY w)Nr   r   r
   r0   ZSeries.replace must specify either 'value', a dict-like 'to_replace', or dict-like 'regex'rQ   )r   r   r   r+   rV   rW   rX   r   )r!   r"   rZ   s      r&   test_replace_gh5319z%TestSeriesReplace.test_replace_gh5319   s     iiBFFAq!,-= 	 ]]:S1 	"KK!	" ]]:S1 	 KK	  	 	" 	"	  	 s   !B3
 B?3B<?Cc                    t        j                  t        j                  dd            }|j                         }t        j                  d      |j
                  d<   |j                  t        j                  d      t        j                  d      i      }t        j                  ||       |j                  t        j                  d      t        j                  d            }t        j                  ||       y )N20130101r7   r5   20120101r   20130103)	r   r   rB   rM   r*   locr   r   r   r!   r"   r$   r#   s       r&   test_replace_datetime64z)TestSeriesReplace.test_replace_datetime64   s    iij!<=88:,,z2Qbll:6Z8PQR
vx0R\\*5r||J7OP
vx0r(   c                    t        j                  dd      }t        j                  t         j                  t        j                  dd      g      }|j	                  t
        j                  t         j                  gt         j                  j                        }t        j                  t         j                  j                  |gt              }t        j                  ||       y )Nz
2015/01/01UTC)tzr   )r   r*   r   rL   r   r   r+   minr   r   r   )r!   tssr#   r$   s        r&   test_replace_nat_with_tzz*TestSeriesReplace.test_replace_nat_with_tz   s    \\,51IIrvvr||LUCDEBFFBFF+R\\-=-=>99bll..36B
x0r(   c                    t        j                  dd      }t        j                  |      }|j                  |d   |d   i      }t        j                  |d   |d   |d   |d   |d   g      }t	        j
                  ||       y )Nr   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.iin c!fc!f-.99c!fc!fc!fc!fc!fEF
vx0r(   c                 f   t        j                  g d      }d}t        j                  t        |      5  |j                  g d       d d d        |j                         }t        j                  t        |      5  |j                  g dd       d d d        y # 1 sw Y   SxY w# 1 sw Y   y xY w)NrT   r]   rQ   rS   Tr2   )r   r   rV   rW   rX   r   rM   )r!   r"   rZ   rk   s       r&   test_replace_with_single_listz/TestSeriesReplace.test_replace_with_single_list   s    ii(= 	 ]]:S1 	#KK	"	# HHJ]]:S1 	/IIiI.	/ 	/		# 	#	/ 	/s   B<B'B$'B0c           	         t        j                  t        j                  d      d      fd}dgdg}} |||        ||d   |d          t        j                  g d      }dgd	g}} ||||       t        j                  g d
      }ddgd	dg}} ||||       t        j                  dddd	t        j                  d      g      }ddgd	t        j                  d      g}} ||||       t        j                  g dd      }ddgd	dg}} ||||       t        j                  t        j
                  ddd            }|j                  t              j                  |d   |d   |d   gg d      }t        j                  dddg|dd  j                         t              }t        j                  ||       y )Nr7   int64r   c                     j                         }j                  | |      }|j                  | |d      }||u sJ t        j                  ||       t        j                  ||       y )NTr2   )rM   r   r   r   )to_repvalr$   scr#   r"   s        r&   check_replacezATestSeriesReplace.test_replace_mixed_types.<locals>.check_replace   s^    B[[-FZZTZ:FR<<""8V4""8R0r(   r
   g      @r   )r   r   r         @r0   rz   )r   r   r   rz   r   r0   r   r   r   r`   )r   r   r   rz   Tr   Tz1/1/2001z	1/10/2001Dfreq)      ?r   r   r~   )r   r   r   aranger*   rB   r   r   r   tolistr   r   )	r!   ry   trvedrr#   r$   r"   s	           @r&   test_replace_mixed_typesz*TestSeriesReplace.test_replace_mixed_types   s   ii		!G4	1 cUAb!S!beQqT3' II'(cUAb!Q II)*Ac
Ab!Q IIq!QR\\*%=>?Abll:67Ab!Q II*(;AdAb!Q YYr}}Z3GH6"**BqE2a5"Q%+@-P99c1c<BqrFMMO<FK
vx0r(   c                     t        j                  g d      }|j                  dd      }t        j                  ||       y )NTFTfunz
in-the-sunr   r   r   r   r   )r!   rk   r#   s      r&   #test_replace_bool_with_string_no_opz5TestSeriesReplace.test_replace_bool_with_string_no_op   s1    II)*5,/
q&)r(   c                     t        j                  g d      }|j                  dd      }t        j                  g d      }t        j                  ||       y )Nr   T2u)r   Fr   r   r!   rk   r#   r$   s       r&   test_replace_bool_with_stringz/TestSeriesReplace.test_replace_bool_with_string   s@    II)*4&9901
x0r(   c                     t        j                  g d      }|j                  dd      }t        j                  dgt        |      z        }t	        j
                  ||       y )Nr   TF)r   r   r   lenr   r   r   s       r&   test_replace_bool_with_boolz-TestSeriesReplace.test_replace_bool_with_bool   sJ    II)*4'99eWs1v-.
x0r(   c                     t        j                  g d      }|j                  ddd      }t        j                  g d      }t        j                  ||       y )Nr   asdbyes)asdfT)r   Fr   r   r   s       r&   %test_replace_with_dict_with_bool_keysz7TestSeriesReplace.test_replace_with_dict_with_bool_keys   sC    II)*F%899923
vx0r(   c                    t        j                  dd g|      j                  dt         j                        }t        j                  t         j                  t         j                  g|      }t	        j
                  ||       t        j                  ddg|      j                  dt         j                        }|j                  dt         j                  d      }||u sJ t	        j
                  ||       y )Nr   r   r   Tr2   )r   r   r   NAr   r   )r!   any_int_ea_dtyper#   r$   result2s        r&   test_replace_Int_with_naz*TestSeriesReplace.test_replace_Int_with_na  s    At9,<=EEaO99beeRUU^3CD
vx0Aq6)9:BB1beeL..BEE4.8&   
vx0r(   c                    d}t        j                  t        j                  t        j                  j                  d      j                  |            t        j                  d|      t              }t        j                  |d d d|dd	 d
|dd |j                  t        j                  dd
gd      }|d d dk(  j                         sJ |dd	 dk(  j                         sJ |dd dk(  j                         sJ t        j                  |d d       j                         sJ |j                  t        j                  dddd
di      }|d d dk(  j                         sJ |dd	 dk(  j                         sJ |dd dk(  j                         sJ t        j                  |d d       j                         sJ |j                  t        j                  dd
gg d      }t        j                  ||       |j                  t        j                  dd
gdd      }||u sJ |d d dk(  j                         sJ |dd	 dk(  j                         sJ |dd dk(  j                         sJ y )Nr/   r   r4   r5   r   r7   r8   r1   r   r9   r   r   r   r:   r;   r<   Tr2   )r   r   r   rA   r=   r>   r?   rB   r   r+   r   rC   rD   r   r   )r!   rE   r"   rG   rH   r#   s         r&   test_replace2zTestSeriesReplace.test_replace2  sJ   iiGGBII))!,<<Q?@MM,2

 &&BQAb	Br
 [["&&%/42A"!!###1RB##%%%2b	R$$&&&BQ %%''' [["&&"eR;<2A"!!###1RB##%%%2b	R$$&&&BQ %%''' kk2665%0,?
r3' bffeU3RF}}BQ2""$$$Ab	R$$&&&Br
b %%'''r(   r3   TFc                     t        j                  g d      }t        j                  g d      }|j                  g dg d|      }|rt        j                  ||       y t        j                  ||       y )NrS   r   r
   r0   r2   r   )r!   r3   r"   r$   r,   s        r&   test_replace_cascadez&TestSeriesReplace.test_replace_cascade2  sW     ii	"99Y'kk)Yk@""31""31r(   c                     t        j                  ddt        j                  g|      }t        j                  ddt        j                  g|      }|j	                  ddd      }t        j                  ||       y )Nonetwor   12r   r   r   r   r   r+   r   r   r   )r!   nullable_string_dtyper"   r$   r#   s        r&   +test_replace_with_dictlike_and_string_dtypez=TestSeriesReplace.test_replace_with_dictlike_and_string_dtype?  s]    iirvv.6KL99c3/7LMS56
x0r(   c                     t        j                  t        d            }t        j                  ||j                  i              t        j                  g       }t        j                  ||j                  |             y )Nabcd)r   r   listr   r   r   )r!   rk   empty_seriess      r&    test_replace_with_empty_dictlikez2TestSeriesReplace.test_replace_with_empty_dictlikeF  sR    IId6l#
q!))B-0yy}
q!))L"9:r(   c                     t        j                  g d      }|j                  dt        j                        }t        j                  g d      }t        j                  ||       y NrS   r   r   r   r   r   r+   r   r   r   s       r&   test_replace_string_with_numberz1TestSeriesReplace.test_replace_string_with_numberN  B    IIi 3'99Y'
x0r(   c                     t        j                  ddg      }t        j                  ddg      }|j                  ddd      }t        j                  ||       y )Nr   r   )r   r   r   )r!   rk   r$   r#   s       r&   (test_replace_replacer_equals_replacementz:TestSeriesReplace.test_replace_replacer_equals_replacementU  sK     IIsCj!99c3Z(3/0
x0r(   c                     t        j                  g d      }|j                  dt        j                        }t        j                  g d      }t        j                  ||       y r   r   r   s       r&    test_replace_unicode_with_numberz2TestSeriesReplace.test_replace_unicode_with_number]  r   r(   c                    t        j                  g d      }|j                  ddgt        j                        }t        j                  dt        j                  dt        j                  ddgt
              }t        j                  ||       y )	N)r   r   r
   4r0   r7   r   r   r   r
   r0   r7   r   )r   r   r   r   r+   r   r   r   r   s       r&   $test_replace_mixed_types_with_stringz6TestSeriesReplace.test_replace_mixed_types_with_stringd  s^    II*+As8RVV,99aBFFAq9H
x0r(   zcategorical, numericAr   Br   c                 v   t        j                  t        j                  |ddg            }|j                  j	                  ddd      }t        j                  |      j                  d      }d|j                  j                  vr|j                  j                  d      }t        j                  ||d	       y )
Nr   r   
categoriesr   r   )r   r   categoryF)check_categorical)
r   r   Categoricalcatrename_categoriesr   r   add_categoriesr   r   )r!   categoricalnumericr"   r#   r$   s         r&   test_replace_categoricalz*TestSeriesReplace.test_replace_categoricalk  s     ii{SzJK**+;<99W%,,Z8HLL+++  ||2215H
x5Ir(   c                     g d}g d}t        j                  |d      }|j                  ddd      }||u sJ t        j                  t        j                  ||	            }t	        j
                  ||       y )
Nr   r   c)r   r   r   r   r   r   r   T
to_replacevaluer3   r   )r   r   r   r   r   r   )r!   datadata_expr"   r#   r$   s         r&    test_replace_categorical_inplacez2TestSeriesReplace.test_replace_categorical_inplace}  se    "iiJ/3E}}99R^^HFG
sH-r(   c                    t        j                  ddd      }t        j                  |      }|j                  d      }|j	                         }|j
                  j                  d      }d|d<   |j
                  j                         }|d   dk7  sJ |j
                  j                  |j                  d   di      }t        j                  ||       |d   dk7  sJ y )Nz
2016-01-01r
   z
US/Pacific)r6   rh   r   r8   r   )r   rB   r   r   rM   r   r   remove_unused_categoriesr   valuesr   r   )r!   dtirk   r   r$   r#   s         r&   test_replace_categorical_singlez1TestSeriesReplace.test_replace_categorical_single  s    mmL!EIIcNHHZ 668<<..u5<<88:tu}}((!((1+u)=>
x0tu}}r(   c                 d   t        j                  g d      }|j                  dgdg      }t        j                  g d      }t        j                  ||       t        j                  g d      }|j                  dgdg      }t        j                  g d      }t        j                  ||       y )NrT   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     IIo&A3!8 9:99BC
vx0IIKL34qc:99<=
vx0r(   zser, to_replace, exprS   r
   r0   r   )r   r   3r   r   r   )r   r   r   c                     t        j                  |      }t        j                  |      }|j                  |      }t        j                  ||       y Nr   )r!   r"   r   rF   seriesr$   r#   s          r&   test_replace_commutativez*TestSeriesReplace.test_replace_commutative  s<     399S>
+
vx0r(   zser, exp)r   Tr
   )xr   r
   )r   Tr
   c                     t        j                  |      }|j                  dd      }t        j                  |      }t        j                  ||       y )Nr   Tr   )r!   r"   rF   r   r#   r$   s         r&   test_replace_no_castz&TestSeriesReplace.test_replace_no_cast  s>     34(99S>
vx0r(   c                     t        j                  g d      }d}t        j                  t        |      5  |j                  d        d d d        y # 1 sw Y   y xY w)Nr   r   zc zZExpecting 'to_replace' to be either a scalar, array-like, dict or None, got invalid type.*rQ   c                 "    | j                         S r   )strip)r   s    r&   <lambda>zCTestSeriesReplace.test_replace_invalid_to_replace.<locals>.<lambda>  s    QWWY r(   )r   r   rV   rW   	TypeErrorr   )r!   r   rZ   s      r&   test_replace_invalid_to_replacez1TestSeriesReplace.test_replace_invalid_to_replace  sO     +,0 	 ]]9C0 	0NN./	0 	0 	0s   AAframec                     t        j                  g d      }|r|j                         }d}t        j                  t
        |      5  |j                  dgd       d d d        y # 1 sw Y   y xY w)Nr   z4'to_replace' must be 'None' if 'regex' is not a boolrQ   r   r8   )r   regex)r   r   to_framerV   rW   rX   r   )r!   r   objrZ   s       r&   test_replace_nonbool_regexz,TestSeriesReplace.test_replace_nonbool_regex  sY    ii(),,.CD]]:S1 	7KKC5K6	7 	7 	7s   A%%A.c                    t        j                  g t        j                        }|r|j	                         }|j                  ddd      }||u sJ |j                  ddd      }t        j                  ||       ||usJ y )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  sr    ii"**-,,.Ckk!Qk-czzkk!Qk.
S!#~~r(   c                 d   t        j                  ddd|dg      }ddd}d}d}t        j                  t        |      5  |j                  ||       d d d        d}dd	d}d
}t        j                  t        |      5  |j                  ||       d d d        y # 1 sw Y   IxY w# 1 sw Y   y xY w)Nr   r   r   T)r   r   r8   zISeries.replace cannot specify both a dict-like 'to_replace' and a 'value'rQ   r9   z<Series.replace cannot use dict-value and non-None to_replacer   r   rV   rW   rX   r   )r!   fixed_now_tsr"   r   r   rZ   s         r&   "test_replace_only_one_dictlike_argz4TestSeriesReplace.test_replace_only_one_dictlike_arg  s     iiAsL$78s^
W 	 ]]:S1 	+KK
E*	+ 
e$L]]:S1 	+KK
E*	+ 	+	+ 	+	+ 	+s   B>B&B#&B/c                    t        j                  g d      }t        j                  dg      }t        j                  dg      }d}t        j                  t        |      5  |j                  ||       d d d        y # 1 sw Y   y xY w)N)r   r   r
   r0   r7   r   K   z;to_replace and value cannot be dict-like for Series.replacerQ   r   )r!   rk   r   r   rZ   s        r&   %test_replace_dict_like_with_dict_likez7TestSeriesReplace.test_replace_dict_like_with_dict_like  sd    IIo&YYs^
		2$K]]:S1 	)IIj%(	) 	) 	)s   !A==Bc                      |t        j                  g dd            }|j                  dd      }t        j                  ||       y )NrS   Int64r   r   )r   r   r   r   r   )r!   frame_or_seriesr   r#   s       r&   test_replace_extension_otherz.TestSeriesReplace.test_replace_extension_other   s5    bhhy@AR$
V$r(   c                     t        j                  g d      }t        j                  d      }|j	                  |did      }t        j                  g d      }t        j                  ||       y )Nr   z^a$zTr   )r   r   r   )r   r   recompiler   r   r   )r!   rk   r   r#   r$   s        r&    test_replace_with_compiled_regexz2TestSeriesReplace.test_replace_with_compiled_regex  sR    IIo&

5!E3<t499_-
vx0r(   c           
         t        j                  ddddddt         j                  dgd      }dddd	d
}|j                  |d      }t        j                  ddd	dddt         j                  dgd      }t	        j
                  ||       y )NAABBCCDDEEr   stringr   zCC-REPL)r  r  r
  r  Tr  r   r   r   r   r   r   )r!   r"   regex_mappingr#   rF   s        r&   test_pandas_replace_naz(TestSeriesReplace.test_pandas_replace_na  s     iitT4r255$GxX	
 ]$7ii4D$BEE4@
 	vs+r(   z,dtype, input_data, to_replace, expected_databoolrt   r   r   )r   r   r   r   皙?皙@g333333$@g     4@)r  r  Float64r  r   r   r   r   r~   g@gffffff@g@g333333%@g4@Mz2020-05r|   z2020-06c                     t        j                  ||      }|j                  |      }t        j                  ||      }t        j                  ||       y )Nr   r   )r!   r	   
input_datar   expected_datar"   r#   r$   s           r&   test_replace_dtypez$TestSeriesReplace.test_replace_dtype  sB    > ii
%0Z(99]%8
vx0r(   c                    t        j                  ddt        j                  gd      }|j	                  ddd      }t        j                  ddt        j                  gd      }t        j                  ||       t        j                  dt        j                  gd      }|j	                  dd	      }t        j                  d	t        j                  gd      }t        j                  ||       t        j                  dd	gd      }|j	                  dt         j                        }t        j                  t         j                  d	gd      }	t        j                  ||	       y )
Nr   r   r  r   r   r   r   r   r   )r   r   r   r+   r   r   r   r   )
r!   r"   r,   r$   ser2res2	expected2ser3res3	expected3s
             r&   test_replace_string_dtypez+TestSeriesReplace.test_replace_string_dtypeC  s    iirvv.h?kk#c2399c3/x@
sH- yy#rvvh7||C%IIsBFFm8<	
tY/yy#s84||C'IIruucl(;	
tY/r(   c                     t        j                  ddgd      }|j                  ddgd      }t        j                  ddgd      }t        j                  ||       y )Nabcdefr  r   zany other stringxyzr   r!   r"   r,   r$   s       r&   )test_replace_string_dtype_list_to_replacez;TestSeriesReplace.test_replace_string_dtype_list_to_replaceU  sP    iih7kk5"45u=99eU^8<
sH-r(   c                     t        j                  ddgd      }|j                  ddd      }t        j                  ddgd      }t        j                  ||       y )	Nr   r   r  r   .CTr  r   r$  s       r&   test_replace_string_dtype_regexz1TestSeriesReplace.test_replace_string_dtype_regex\  sN    iic
(3kk$4k099c3Zx8
sH-r(   c                    t        j                  g dt        j                               }|j                  ddi      j                  |j                  k(  sJ |j                  dd      j                  |j                  k(  sJ |j                  ddi      j                  |j                  k(  sJ |j                  dd      j                  |j                  k(  sJ |j                  ddgddg      }|j                  |j                  k(  sJ t        j                  g d	t        j
                               }|j                  d
di      j                  |j                  k(  sJ |j                  d
d      j                  |j                  k(  sJ |j                  d
di      j                  |j                  k(  sJ |j                  d
d      j                  |j                  k(  sJ t        j                  t        d      5  |j                  d
di       d d d        t        j                  t        d      5  |j                  d
d       d d d        y # 1 sw Y   @xY w# 1 sw Y   y xY w)N)r~          @gˡE@g@r   r~   	   g      "@r+  g      $@r   r   )r   r   r
   r0   r   zInvalid valuerQ   g      #@)	r   r   Float64Dtyper   r	   
Int64DtyperV   rW   r   )r!   floatsr,   intss       r&   test_replace_nullable_numericz/TestSeriesReplace.test_replace_nullable_numericc  s    19JK~~sAh'--===~~c1%++v||;;;~~sCj)//6<<???~~c3'--===nnc
3+nFyyFLL(((yyR]]_=||QF#))TZZ777||Aq!''4::555||QH%++tzz999||As#))TZZ777 ]]9O< 	#LL!S"	#]]9O< 	!LLC 	! 	!	# 	#	! 	!s    I7III(r   c                     t        j                  dgt              }t        j                  dgt              }|j                  dd|      }t	        j
                  ||       y )N0r   r   r   r   r   r   r   r   r   r   r   r!   r   r   r$   r#   s        r&   test_replace_regex_dtype_seriesz1TestSeriesReplace.test_replace_regex_dtype_series{  sL     C5/99aS/3auE
vx0r(   c                     t        j                  dgd      }t        j                  dgt              }|j                  dd|      }t	        j
                  ||       y )Nr4  strr   r   r5  r6  r7  s        r&   &test_replace_regex_dtype_series_stringz8TestSeriesReplace.test_replace_regex_dtype_series_string  sJ    C5.99aS/3auE
vx0r(   c                 6   t        j                  g d|      }t        j                  g d|      }t        t        |j                  |j
                  d            }|j                  |      }|j                  dddd      }t        j                  ||       y )	N)r   r   r   r   r   r   r   r   r   )r   r   r   T)strictr   r   r   )	r   r   dictzipr   rU   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  ss    yy19LMyy*=>DKKDABh'<<A! 23
vx0r(   rw   r+  c                     t        j                  d|g      }|j                  |d       }t        j                  dd gt              }t	        j
                  ||       y )Nr   r   )r   r   r   r   r   r   )r!   rw   r"   r#   r$   s        r&   %test_replace_value_none_dtype_numericz7TestSeriesReplace.test_replace_value_none_dtype_numeric  sJ     iiC!S$'99aYf5
vx0r(   c                    t        j                  dg dit              }|d   j                  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   j                  d gt        j
                  g      |d<   t        j                  ||       t        j                  dg dit              }|d   j                  t        j
                        |d<   t        j                  ||       y )NTest)0.5T0.6r   TrI  rJ  )rI  NrJ  )	r   r   r   r   r   r+   r   r    r@   )r!   r%   r$   s      r&    test_replace_change_dtype_seriesz2TestSeriesReplace.test_replace_change_dtype_series  s    \\6#78GZ''96
<<%)? @O
b(+\\6#78GZ''96

b(+\\6#78GZ&&rvv.6

b(+r(   r	   r   c                 V   t        j                  ddt         j                  g|      }t        j                  ddt         j                  g|      }|j                  dd      }t	        j
                  ||       |j                  ddd      }||u sJ t	        j
                  ||       y )Nr   r   r   r   r-  Tr   r  )r!   r	   r"   r$   r#   s        r&   test_replace_na_in_obj_columnz/TestSeriesReplace.test_replace_na_in_obj_column  s     iiAruuU399aBEE]%83
vx0DA}}
sH-r(   r   g      ?c                 f   t        j                  |dg      }t        j                  |t         j                  g      }|j                  dt         j                        }t	        j
                  ||       |j                  dt         j                  d      }||u sJ t	        j
                  ||       y )Nr   r-  Tr   r  )r!   rw   r"   r$   r#   s        r&   #test_replace_numeric_column_with_naz5TestSeriesReplace.test_replace_numeric_column_with_na  s     iia!99c255\*7
vx0E}}
sH-r(   c                 D   t        j                  dgd      }|j                         }|j                  dd      }t	        j
                  ||       t        j                  dgd      }|j                         }|j                  dd      }t	        j
                  ||       y )Nr   r  r   Fr~   booleanT)r   r   rM   r   r   r   rd   s       r&   test_replace_ea_float_with_boolz1TestSeriesReplace.test_replace_ea_float_with_bool  s|    iiY/88:UC(
vx0iiy188:S$'
vx0r(   c                 &   t        j                  t         j                  t         j                  g      }|j                  ddid      }t        j                  t         j                  t         j                  g      }t	        j
                  ||       y )Nz^#$Tr  r  r!   r%   r#   r$   s       r&   test_replace_all_NAz%TestSeriesReplace.test_replace_all_NA  s\    YYruu~&UCL599beeRUU^,
vx0r(   c                     t        j                  t        j                  ddg      }|j	                  t        j                  d i      }t        j                  g d      }t        j                  ||       y )Nr   r8   )Nr   r8   r   rU  s       r&   "test_replace_mixed_types_with_nonez4TestSeriesReplace.test_replace_mixed_types_with_none  sP    YY5)*RVVTN+99-.
vx0r(   N)C__name__
__module____qualname__r'   r-   rI   rO   r[   r^   re   rl   rp   rr   r   r   r   r   r   r   r   rV   markparametrizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   IntervalDtyper   IntervalPeriodDtypePeriodr  r  r%  r)  r2  r8  r;  rD  r   r+   rF  rK  rM  rO  rR  rV  rX   r(   r&   r   r      s   18
#5(n?C" 111/)1V*
1111$(L [[Yu6
2 7
21;1111 [[UQCL3Z!Q 	
	J	J. 1 [[A!*I6Cc<oN	
	1	1 [[i.n0MN11	0 [[Wudm47 57 [[Wudm4
 5
+$)%1,  [[6dE]T5ME5>Bq!f"nr2h7q!f"nr2h7c
$T$:T4LIc
$T$:T4LIu~s3'?#sL   ){r{{1a0+"++a2CDEQ"KBKKB$78{r{{2r2KBKK14EFG	 !  +{r{{34kbkk#s6KLMS#&D$(?@{r{{46C8MNO	 s#93/093/931OP93/0	'	
:1;:10$..!0 [[Wudm41 51 [[Wudm41 51	1 [[UQ$451 61, [[Wx&9:	. ;	. [[UQH-	. .	.
111r(   r   pyarrowc                      t        j                  g dd      } t        j                  g dd      }t        j                  |       j                  ddd      }t	        j
                  ||       y )Nr   zstring[pyarrow]r   )dr   r   r   re  )r   r   )r   Indexr   r   r   r   )idxr$   r#   s      r&   test_replace_from_indexrh    sS     ((?*;
<Cyy0ABHYYs^###C$89F68,r(   )r  numpyr   rV   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   pandas._testing_testingr   pandas.core.arraysr   r   
skip_if_norh  rb  r(   r&   <module>rs     sI    	   ) )   ,O1 O1d y- -r(   