
    hD              
          S SK rS SKrS SKJrJrJr  S SKJr	  S SK
Jr  \R                  R                  SSSS.SS	.S
S0SS	.SS0SS	.SSSS000/5      S 5       rS rS rS rS rS rS rS rS r\R                  R                  SSS// /5      S 5       r\R                  R                  SSS//5      S 5       r\R                  R                  SS
S/5      S 5       r\R                  R                  SSS//5      \R                  R                  SSS/5      S 5       5       r\R                  R                  SSS/5      S 5       r\R                  R                  SSS/5      S 5       r\R                  R                  SS S!/5      S" 5       rS# r\R                  R                  S$S%S/5      S& 5       rS' r S( r!S) r"S* r#S+ r$S, r%S- r&S. r'g)/    N)Categorical	DataFrameoption_context)	get_arrayreplace_kwargs      ab
to_replacevaluer   r   r   c                    [        / SQ/ SQ/ SQS.5      nUR                  5       nUR                  " S0 UD6nU (       a  US   US   :H  R                  5       (       a2  [        R
                  " [        US5      [        US5      5      (       d   e[        R
                  " [        US5      [        US5      5      (       d   eSUR                  S'   U (       a2  [        R
                  " [        US5      [        US5      5      (       a   eS	US
   ;   aC  [        US	5      nSUR                  S'   [        R
                  " [        US	5      U5      (       d   e[        R                  " X#5        g )Nr         )r	         )g?g?g333333?r   r   cr   r   r   r   r   r   r   d   )r   r    )
r   copyreplaceallnpshares_memoryr   tmlocassert_frame_equal)using_copy_on_writer   dfdf_origdf_replacedarrs         [/var/www/html/shao/venv/lib/python3.13/site-packages/pandas/tests/copy_view/test_replace.pytest_replacer*      s.     
I	JBggiG**.~.K3',,..##Ik3$?2sASTTTT	+s ;Yr3=OPPPP !KOOF##Ik3$?2sASTTTT
n\**S)"%	+s ;SAAAA"&    c                    [        SSS/05      nUR                  5       nUS S  n[        US5      n[        R                  " U5         UR                  SSSSS9  S S S 5        U (       aa  [        R                  " U[        US5      5      (       a   eUR                  R                  S5      (       d   e[        R                  " XC5        g [        R                  " U[        US5      5      (       d   eg ! , (       d  f       N= f)	Nr   aaabbb^a.*$newTr   r   inplaceregexr   )r   r   r   r!   assert_cow_warningr   r    _mgr_has_no_referencer#   r   )r$   warn_copy_on_writer%   r&   viewr(   s         r)   test_replace_regex_inplace_refsr9   3   s    	C%(	)BggiGa5D
B
C			1	2


heT
N 
3##C2s);<<<<ww((++++
d,Yr3%78888 
3	2   C33
Dc                    [        SSS/05      n[        US5      nUR                  SSSSS9  U (       a"  UR                  R	                  S5      (       d   e[
        R                  " U[        US5      5      (       d   eUR                  5       nUR                  S	SSS
9n[
        R                  " X15        [
        R                  " [        US5      [        US5      5      (       a   eg )Nr   r-   r.   r/   r0   Tr1   r   z^b.*$r   r   r3   )	r   r   r   r5   r6   r!   r    r   r#   r$   r%   r(   r&   df2s        r)   test_replace_regex_inplacer?   B   s    	C%(	)B
B
CJJ(%TJJww((++++C2s!34444ggiG
**T*
BC'&	#s 3Yr35GHHHHHr+   c                 F   [        SSS/05      n[        US5      nUR                  SSSSS9  U (       a"  UR                  R	                  S5      (       d   e[
        R                  " U[        US5      5      (       d   eUR                  5       nUR                  S	SSS
9n[        R                  " X15        U (       a3  [
        R                  " [        US5      [        US5      5      (       d   eg [
        R                  " [        US5      [        US5      5      (       a   eg )Nr   r   r   z^a.$r0   Tr1   r   z^x.$r<   )
r   r   r   r5   r6   r   r    r   r!   r#   r=   s        r)    test_replace_regex_inplace_no_oprA   P   s    	C!Q=	!B
B
CJJ'DJIww((++++C2s!34444ggiG
**uD*
AC'&	#s 3Yr35GHHHH##Ic3$72s9KLLLLLr+   c                    [        / SQSSSS.5      nUR                  5       nUR                  SSS9nU (       ae  [        R                  " [        US	5      [        US	5      5      (       d   e[        R                  " [        US
5      [        US
5      5      (       a   eOd[        R                  " [        US	5      [        US	5      5      (       a   e[        R                  " [        US
5      [        US
5      5      (       a   eSUR                  S'   [        R                  " X5        U (       a3  [        R                  " [        US	5      [        US	5      5      (       a   eg g )N      ?r   r         Y@r   r   )r   r   r   drD   g     K@r   r   r   r   	r   r   r   r   r    r   r"   r!   r#   r$   r%   r&   r>   s       r)   (test_replace_mask_all_false_second_blockrI   a   s#   	5qqA	BBggiG
**4*
0C	"c 2Ic34GHHHH##Ib#$6	#s8KLLLLL ##Ib#$6	#s8KLLLL##Ib#$6	#s8KLLLLCGGFO"&##Ib#$6	#s8KLLLLL r+   c                    [        / SQSS.5      nUR                  5       nUR                  SSS9nU (       ae  [        R                  " [        US5      [        US5      5      (       d   e[        R                  " [        US5      [        US5      5      (       a   eOkU(       dd  [        R                  " [        US5      [        US5      5      (       d   e[        R                  " [        US5      [        US5      5      (       a   eU (       aX  SUR                  S	'   [        R                  " X#5        [        R                  " [        US5      [        US5      5      (       a   eg g )
NrC   rE   r
   rD   r   r   r         ?r   r   rG   )r$   using_array_managerr%   r&   r>   s        r)   !test_replace_coerce_single_columnrN   y   s    	51	2BggiG
**3*
/C	"c 2Ic34GHHHH##Ib#$6	#s8KLLLLL 	"c 2Ic34GHHHH##Ib#$6	#s8KLLLL
b*##Ib#$6	#s8KLLLLL r+   c                    [        / SQSS.5      nUR                  5       nUR                  SSS9nU (       ae  [        R                  " [        US5      [        US5      5      (       d   e[        R                  " [        US5      [        US5      5      (       d   eOd[        R                  " [        US5      [        US5      5      (       a   e[        R                  " [        US5      [        US5      5      (       a   eS	UR                  S
'   [        R                  " X5        U (       a3  [        R                  " [        US5      [        US5      5      (       a   eg g )NrC   rE   r
   xxxrD   r   r   r   rK   rL   rG   rH   s       r)   #test_replace_to_replace_wrong_dtyperQ      s   	51	2BggiG
**S*
1C	"c 2Ic34GHHHH	"c 2Ic34GHHHH ##Ib#$6	#s8KLLLL##Ib#$6	#s8KLLLLCGGFO"&##Ib#$6	#s8KLLLLL r+   c                    [        S/ SQ0SS9n[        US5      nSn[        R                  " [        US9   UR                  S/SSS	9  S S S 5        [        R                  " UR                  [        US5      R                  5      (       d   eU (       a"  UR                  R                  S
5      (       d   eUR                  5       n[        R                  " [        US9   UR                  S/SS9nS S S 5        [        R                  " UR                  [        WS5      R                  5      (       a   e[        R                  " X5        g ! , (       d  f       GN
= f! , (       d  f       Ns= f)Nr   r   categorydtypeOThe behavior of Series\.replace \(and DataFrame.replace\) with CategoricalDtypematchr   Tr   r2   r   r   r   )r   r   r!   assert_produces_warningFutureWarningr   r   r    codesr5   r6   r   r#   )r$   r%   r(   msgr&   r>   s         r)   test_replace_list_categoricalr_      s   	C)	<B
B
C	   
	#	#M	=


C5T
2 
>CIIyS'9'?'?@@@@ww((++++ggiG		#	#M	=jj#cj* 
>		9S#+>+D+DEEEE"& 
>	= 
>	=s   EE
E
E,c                 ,   [        S/ SQ0SS9nUS S  nUR                  5       nSn[        R                  " [        US9   UR                  S/SSS	9  S S S 5        U (       a]  [        R                  " [        US5      R                  [        US5      R                  5      (       a   e[        R                  " X25        g [        R                  " [        US5      R                  [        US5      R                  5      (       a   eg ! , (       d  f       N= f)
Nr   r   rS   rT   rV   rW   r   TrY   )r   r   r!   r[   r\   r   r   r    r   r]   r#   )r$   r%   r8   r&   r^   s        r)   *test_replace_list_inplace_refs_categoricalra      s    	C)	<Ba5DggiG	   
	#	#M	=


C5T
2 
>##dC &&	"c(:(@(@
 
 	
 
 	g, ##dC &&	"c(:(@(@
 
 	
 
 
 
>	=s   D
DrD   c                     [        S/ SQ05      n[        US5      nUR                  SSSS9  [        R                  " [        US5      U5      (       d   eU (       a#  UR
                  R                  S5      (       d   eg g )Nr   rC   rD         /@Tr   r   r2   r   r   r   r   r   r    r5   r6   )r$   r   r%   arr_as       r)   test_replace_inplacerg      sr    	C%	&Bb#EJJ#T4J8Ib#.6666ww((++++ r+   c                    [        S/ SQ05      n[        US5      nUS S  n[        R                  " U5         UR	                  USSS9  S S S 5        U (       am  [
        R                  " [        US5      U5      (       a   eUR                  R                  S5      (       d   eUR                  R                  S5      (       d   eg [
        R                  " [        US5      U5      (       d   eg ! , (       d  f       N= fNr   rC   rc   Trd   r   )	r   r   r!   r4   r   r   r    r5   r6   )r$   r   r7   r%   rf   r8   s         r)   test_replace_inplace_referencerj      s    	C%	&Bb#Ea5D			1	2


jd
C 
3 ##Ib#$6>>>>ww((++++yy**1----	"c 2E:::: 
3	2s   C..
C<rE   c                 N   [        S/ SQ05      n[        US5      nUS S  nUR                  USSS9  [        R                  " [        US5      U5      (       d   eU (       aE  UR
                  R                  S5      (       a   eUR
                  R                  S5      (       a   eg g ri   re   )r$   r   r%   rf   r8   s        r)   $test_replace_inplace_reference_no_oprl      s    	C%	&Bb#Ea5DJJ*D$J?Ib#.666677,,Q////99..q11111 r+   valc                    [        S[        / SQ5      05      nUR                  5       n[        US5      nUS S  nSnUS:X  a  [        OS n[
        R                  " XS9   UR                  X!SS9  S S S 5        U (       a  [        R                  " [        US5      R                  UR                  5      (       a   eUR                  R                  S5      (       d   eUR                  R                  S5      (       d   e[
        R                  " Xd5        g [        R                  " [        US5      R                  UR                  5      (       d   eg ! , (       d  f       N= f)	Nr   r   rV   rD   rW   Trd   r   )r   r   r   r   r\   r!   r[   r   r   r    r]   r5   r6   r#   )	r$   rm   r   r%   r&   rf   r8   r^   warns	            r)   *test_replace_categorical_inplace_referencerp      s    
CY/0	1BggiGb#Ea5D	    3J=DD		#	#D	4


jT
B 
5 ##Ib#$6$<$<ekkJJJJww((++++yy**1----
d,	"c 2 8 8%++FFFF 
5	4s   E
E c                    [        S[        / SQ5      05      n[        US5      nSnUS:X  a  [        OS n[        R
                  " XTS9   UR                  SUSS9  S S S 5        [        R                  " [        US5      R                  UR                  5      (       d   eU (       a"  UR                  R                  S	5      (       d   e[        S[        US
S/5      05      n[        R                  " X&5        g ! , (       d  f       N= f)Nr   r   rV   rD   rW   r   Trd   r   r   r   )r   r   r   r\   r!   r[   r   r   r    r]   r5   r6   r#   )r$   rm   r%   rf   r^   ro   expecteds          r)    test_replace_categorical_inplacers     s    	CY/0	1Bb#E	    3J=DD		#	#D	4


asD
9 
5 Ib#.44ekkBBBBww((++++#{CA;789H"' 
5	4s   	C88
Dc                    [        S[        / SQ5      05      nUR                  5       nSnUS:X  a  [        OS n[        R
                  " XTS9   UR                  SUS9nS S S 5        U (       aD  UR                  R                  S5      (       d   eWR                  R                  S5      (       d   e[        R                  " [        US5      R                  [        WS5      R                  5      (       a   e[        R                  " X#5        [        US5      R                  nS	UR                  S
'   [        R                  " [        US5      R                  U5      (       d   eg ! , (       d  f       GN= f)Nr   r   rV   rD   rW   r   r   r   g       @r   r   )r   r   r   r\   r!   r[   r   r5   r6   r   r    r   r]   r#   iloc)r$   rm   r%   r&   r^   ro   r>   rf   s           r)   test_replace_categoricalrw   !  s)   	CY/0	1BggiG	    3J=DD		#	#D	4jjASj1 
5 ww((++++xx))!,,,,	"c 2 8 8)C:M:S:STTTT"&c3%%ECHHTNIc3/55u==== 
5	4s   E%%
E4methodwheremaskc                    [        S/ SQ05      nUR                  5       n[        US5      nUS S  n[        X15      nU(       a-  [        R
                  " 5          U" US   S:  SSS9  S S S 5        OU" US   S:  SSS9  U (       a  [        R                  " [        US5      U5      (       a   eUR                  R                  S5      (       d   eUR                  R                  S5      (       d   e[        R                  " Xd5        g [        R                  " [        US5      U5      (       d   eg ! , (       d  f       N= f)Nr   rC   g?r   Tr2   r   )r   r   r   getattrr!   r4   r   r    r5   r6   r#   )r$   rx   r7   r%   r&   rf   r8   s          r)   test_masking_inplacer~   8  s   	C%	&BggiGb#Ea5DR F""$2c7S="d3 %$ 	r#w}b$/##Ib#$6>>>>ww((++++yy**1----
d,	"c 2E:::: %$s   D11
D?c                    [        SSS/05      nUR                  / / 5      nU (       aU  [        R                  " [	        US5      [	        US5      5      (       d   eUR
                  R                  S5      (       a   eO2[        R                  " [	        US5      [	        US5      5      (       a   e[	        US5      nUR                  / / 5        U (       am  [        R                  " [	        US5      U5      (       d   eUR
                  R                  S5      (       a   eUR
                  R                  S5      (       a   eg g )Nr   r   r   r   )r   r   r   r    r   r5   r6   )r$   r%   r>   rf   s       r)   test_replace_empty_listr   O  s   	C!Q=	!B
**R
C	#s 3Yr35GHHHH77,,Q/////##Ic3$72s9KLLLLb#EJJr2	"c 2E::::77,,Q////88--a00000 r+   r   rF   c                 n   [        S/ SQ0[        S9n[        US5      nUR                  S/USS9  U (       d  Uc)  [        R
                  " U[        US5      5      (       d   eO([        R
                  " U[        US5      5      (       a   eU (       a#  UR                  R                  S5      (       d   eg g )Nr   r   rT   r   Tr|   r   )	r   objectr   r   r!   r    r   r5   r6   )r$   r   r%   r(   s       r)    test_replace_object_list_inplacer   a  s    	C)	8B
B
CJJueTJ*emYr3%78888 ##C2s);<<<<ww((++++ r+   c                 T   [        S/ SQ05      n[        US5      nUR                  SS/SSS9  U (       aK  [        R                  " U[        US5      5      (       d   eUR
                  R                  S5      (       d   eg [        R                  " U[        US5      5      (       d   eg )	Nr   r   r   r   r	   Tr|   r   re   )r$   r%   r(   s      r)   +test_replace_list_multiple_elements_inplacer   o  s    	C#	$B
B
CJJ1vq$J'Yr3%78888ww((++++Yr3%78888r+   c                    [        S/ SQ05      nUR                  5       nUR                  S/S S9n[        R                  " X5        [
        R                  " [        US5      [        US5      5      (       a   eUR                  / SQS S9n[        R                  " XB5        U (       a3  [        R                  " [        US5      [        US5      5      (       d   eg [        R                  " [        US5      [        US5      5      (       a   eg )Nr   r   r   rZ   )rF   ef)r   r   r   r!   r#   r   r    r   )r$   r%   r&   r>   df3s        r)   test_replace_list_noner   z  s    	C)	*BggiG
**cU$*
'C"&	"c 2Ic34GHHHH **_D*
1C#'	"c 2Ic34GHHHH##Ib#$6	#s8KLLLLLr+   c                    [        S/ SQ05      n[        US5      nUR                  5       nUS S  n[        R                  " U5         UR                  S/S SS9  S S S 5        U (       aa  UR                  R                  S5      (       d   e[        R                  " U[        US5      5      (       a   e[        R                  " XE5        g [        R                  " U[        US5      5      (       d   eg ! , (       d  f       N= f)Nr   r   TrY   r   )r   r   r   r!   r4   r   r5   r6   r   r    r#   )r$   r7   r%   r(   r&   r8   s         r)   #test_replace_list_none_inplace_refsr     s    	C)	*B
B
CggiGa5D			1	2


C5d
3 
3ww((++++##C2s);<<<<
g,Yr3%78888 
3	2r:   c                 6   [        / SQ/ SQS.5      nUS S  nUR                  5       nUR                  SS0SSS9  U (       aX  [        R                  " [        US5      [        US5      5      (       d   eSUR                  S'   [        R                  " X#5        g g )	Nr   r
   r   
   r   Tr|   ru   	r   r   r   r   r    r   rv   r!   r#   )r$   r%   r8   r&   s       r)   %test_replace_columnwise_no_op_inplacer     s    	3	4Ba5DggiGJJRy#tJ,	$ 4iC6HIIII
d, r+   c                 ,   [        / SQ/ SQS.5      nUR                  5       nUR                  SS0S5      nU (       a2  [        R                  " [        US5      [        US5      5      (       d   eSUR                  S'   [        R                  " X5        g )Nr   r
   r   r   r   ru   r   rH   s       r)   test_replace_columnwise_no_opr     su    	3	4BggiG
**c2Y
$C	#s 3Yr35GHHHHCHHTN"&r+   c                 ,   [        S[        R                  S/SS.5      nUR                  5       nU (       a  [        R
                  " 5          US   R                  SSSS9  S S S 5        [        R                  " X5        [        R
                  " 5          US/   R                  SSSS9  S S S 5        [        R                  " X5        g [        R                  " S 5         [        SS 5         US/   R                  SSSS9  S S S 5        S S S 5        [        R                  " S 5         [        SS 5         XR                  S	:     R                  SSSS9  S S S 5        S S S 5        [        R                  " [        S
S9   US   R                  SSSS9  S S S 5        g ! , (       d  f       GNC= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr   r   r
   r   r   Tr|   zmode.chained_assignmentr   zinplace methodrW   )r   r   nanr   r!   raises_chained_assignment_errorr   r#   r[   r   r   r\   )r$   r%   r&   s      r)   test_replace_chained_assignmentr     s   	!RVVQa0	1BggiG//1sGOOAsDO1 2
b*//1uIad3 2
b*''- 94@C5	!!!S$!7 A . ''- 94@44!8$$QT$: A . ''=MNsGOOAsDO1 ON! 21 21
 A@ .-
 A@ .- ONsl   FF/G,GG(G45!G#G4?H
F,/
F>
G	G
G #
G1	-G44
H
Hc                 R   [        / SQ/ SQS.5      nUR                  5       nUR                  SS/SS/5      nU (       a3  [        R                  " [        US5      [        US5      5      (       d   eO2[        R                  " [        US5      [        US5      5      (       a   eSUR                  S'   [        R                  " X5        UR                  SS	/S
S
/5      n[        R                  " [        US5      [        US5      5      (       a   e[        R                  " X5        g )Nr   r
            r   r   ru   r   r   r   )r$   r%   r&   results       r)   test_replace_listliker     s    	3	4BggiGZZc
RH-F	&# 6	"c8JKKKK##Ifc$:Ib#<NOOOOFKK"!ZZa2r(+F	"c 2Ifc4JKKKK"&r+   c                 v   [        / SQ/ SQS.5      n[        US5      nUR                  SS/SS/SS	9  [        R                  " [        US5      U5      (       d   eUS S  nUR                  5       n[        R                  " U5         UR                  SS
/SS/SS	9  S S S 5        U (       a?  [        R                  " [        US5      U5      (       a   e[        R                  " XE5        g [        R                  " [        US5      U5      (       d   e[        R                  " X$5        g ! , (       d  f       N= f)Nr   r
   r   r   r   r   r   Tr|   r   )	r   r   r   r   r    r   r!   r4   r#   )r$   r7   r%   r(   r8   r&   s         r)   test_replace_listlike_inplacer     s   	3	4B
B
CJJQx"b4J0Ib#.4444a5DggiG			1	2


C8b"Xt
4 
3##Ib#$6<<<<
d,	"c 2C8888
b' 
3	2s   D**
D8)(numpyr   pytestpandasr   r   r   pandas._testing_testingr!   pandas.tests.copy_view.utilr   markparametrizer*   r9   r?   rA   rI   rN   rQ   r_   ra   rg   rj   rl   rp   rs   rw   r~   r   r   r   r   r   r   r   r   r   r   r   r+   r)   <module>r      sI     
  1 Q'"5Qx"-Qx"-	aV}%''.9IM"M0M(M*'*
, cUB'78, 9, cU|4; 5; U|4	2 5	2 A3x0C)G * 1G, C)( *(& C)> *>, GV#45; 6;,1$ 3+.
, /
,9M&9-'20'$(r+   