
    OwgB              
          d dl Zd dlZd dlmZmZmZ d dlmZ	 d dl
mZ ej                  j                  dddddd	d
didd	ddidd	ddddiiig      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g g      d        Zej                  j                  dddgg      d        Zej                  j                  dd
dg      d        Zej                  j                  dddgg      ej                  j                  dddg      d               Zej                  j                  dddg      d        Zej                  j                  dddg      d        Zej                  j                  dd d!g      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%d- Z&d. Z'y)/    N)Categorical	DataFrameoption_context)	get_arrayreplace_kwargs      ab
to_replacevaluer   r   r   c                    t        g dg dg dd      }|j                         } |j                  di |}| rq|d   |d   k(  j                         r,t	        j
                  t        |d      t        |d            sJ t	        j
                  t        |d      t        |d            sJ d|j                  d<   | r,t	        j
                  t        |d      t        |d            rJ d	|d
   v r=t        |d	      }d|j                  d<   t	        j
                  t        |d	      |      sJ t        j                  ||       y )Nr         )r	         )foobarbazr   r   cr   r   r   r   r   r   r   d   )r   r    )
r   copyreplaceallnpshares_memoryr   loctmassert_frame_equal)using_copy_on_writer   dfdf_origdf_replacedarrs         Z/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/copy_view/test_replace.pytest_replacer-      s$     
9NO	PBggiG"**.~.K3',,.##Ik3$?2sASTTT	+s ;Yr3=OPPP !KOOF##Ik3$?2sASTTT
n\**S)"%	+s ;SAAA"g&    c                    t        dddgi      }|j                         }|d d  }t        |d      }t        j                  |      5  |j                  dddd       d d d        | rVt        j                  |t        |d            rJ |j                  j                  d      sJ t        j                  ||       y t        j                  |t        |d            sJ y # 1 sw Y   xY w)	Nr   aaabbb^a.*$newTr   r   inplaceregexr   )r   r   r   r%   assert_cow_warningr    r"   r#   _mgr_has_no_referencer&   )r'   warn_copy_on_writer(   r)   viewr+   s         r,   test_replace_regex_inplace_refsr<   3   s    	C%(	)BggiGa5D
B
C			1	2 O


heT
NO##C2s);<<<ww((+++
dG,Yr3%7888O O   CC(c                    t        dddgi      }t        |d      }|j                  dddd       | r|j                  j	                  d      sJ t        j                  |t        |d            sJ |j                         }|j                  d	dd
      }t        j                  ||       t        j                  t        |d      t        |d            rJ y )Nr   r0   r1   r2   r3   Tr4   r   z^b.*$r   r   r6   
r   r   r    r8   r9   r"   r#   r   r%   r&   r'   r(   r+   r)   df2s        r,   test_replace_regex_inplacerC   B   s    	C%(	)B
B
CJJ(%TJJww((+++C2s!3444ggiG
**T*
BC'2&	#s 3Yr35GHHHHr.   c                    t        dddgi      }t        |d      }|j                  dddd       | r|j                  j	                  d      sJ t        j                  |t        |d            sJ |j                         }|j                  d	dd
      }t        j                  ||       | r-t        j                  t        |d      t        |d            sJ y t        j                  t        |d      t        |d            rJ y )Nr   r   r   z^a.$r3   Tr4   r   z^x.$r?   r@   rA   s        r,    test_replace_regex_inplace_no_oprE   P   s    	C!Q=	!B
B
CJJ'DJIww((+++C2s!3444ggiG
**uD*
AC'2&	#s 3Yr35GHHH##Ic3$72s9KLLLLr.   c                 z   t        g ddddd      }|j                         }|j                  dd      }| rXt        j                  t        |d	      t        |d	            sJ t        j                  t        |d
      t        |d
            rZJ t        j                  t        |d	      t        |d	            rJ t        j                  t        |d
      t        |d
            rJ d|j                  d<   t        j                  ||       | r-t        j                  t        |d	      t        |d	            rJ y y )N      ?r   r         Y@r   r   )r   r   r   drH   g     K@r   r   r   r   	r   r   r    r"   r#   r   r$   r%   r&   r'   r(   r)   rB   s       r,   (test_replace_mask_all_false_second_blockrM   a   s   	5qqA	BBggiG
**4*
0C	"c 2Ic34GHHH##Ib#$6	#s8KLLL ##Ib#$6	#s8KLLL##Ib#$6	#s8KLLLCGGFO"g&##Ib#$6	#s8KLLLL r.   c                 z   t        g ddd      }|j                         }|j                  dd      }| rXt        j                  t        |d      t        |d            sJ t        j                  t        |d      t        |d            r\J |sXt        j                  t        |d      t        |d            sJ t        j                  t        |d      t        |d            rJ | rRd|j                  d	<   t        j                  ||       t        j                  t        |d      t        |d            rJ y y )
NrG   rI   r
   rH   r   r   r         ?r   r   rK   )r'   using_array_managerr(   r)   rB   s        r,   !test_replace_coerce_single_columnrR   y   s   	51	2BggiG
**3*
/C	"c 2Ic34GHHH##Ib#$6	#s8KLLL 	"c 2Ic34GHHH##Ib#$6	#s8KLLL
b'*##Ib#$6	#s8KLLLL r.   c                 v   t        g ddd      }|j                         }|j                  dd      }| rXt        j                  t        |d      t        |d            sJ t        j                  t        |d      t        |d            sZJ t        j                  t        |d      t        |d            rJ t        j                  t        |d      t        |d            rJ d	|j                  d
<   t        j                  ||       | r-t        j                  t        |d      t        |d            rJ y y )NrG   rI   r
   xxxrH   r   r   r   rO   rP   rK   rL   s       r,   #test_replace_to_replace_wrong_dtyperU      s   	51	2BggiG
**S*
1C	"c 2Ic34GHHH	"c 2Ic34GHHH ##Ib#$6	#s8KLLL##Ib#$6	#s8KLLLCGGFO"g&##Ib#$6	#s8KLLLL r.   c                    t        dg did      }t        |d      }d}t        j                  t        |      5  |j                  dgdd	       d d d        t        j                  |j                  t        |d      j                        sJ | r|j                  j                  d
      sJ |j                         }t        j                  t        |      5  |j                  dgd      }d d d        t        j                  |j                  t        d      j                        rJ t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   bxY w)Nr   r   categorydtypeOThe behavior of Series\.replace \(and DataFrame.replace\) with CategoricalDtypematchr   Tr   r5   r   r   r   )r   r   r%   assert_produces_warningFutureWarningr    r"   r#   codesr8   r9   r   r&   )r'   r(   r+   msgr)   rB   s         r,   test_replace_list_categoricalrc      s!   	C)	<B
B
C	   
	#	#M	= 3


C5T
23CIIyS'9'?'?@@@ww((+++ggiG		#	#M	= +jj#cj*+		9S#+>+D+DEEE"g&3 3+ +s   EEEEc                    t        dg did      }|d d  }|j                         }d}t        j                  t        |      5  |j                  dgdd	       d d d        | rWt        j                  t        |d      j                  t        |d      j                        rJ t        j                  ||       y t        j                  t        |d      j                  t        |d      j                        rJ y # 1 sw Y   xY w)
Nr   r   rW   rX   rZ   r[   r   Tr]   )r   r   r%   r_   r`   r    r"   r#   r   ra   r&   )r'   r(   r;   r)   rb   s        r,   *test_replace_list_inplace_refs_categoricalre      s    	C)	<Ba5DggiG	   
	#	#M	= 3


C5T
23##dC &&	"c(:(@(@
 	
 
 	gt, ##dC &&	"c(:(@(@
 	
 
 
3 3s   C<<DrH   c                     t        dg di      }t        |d      }|j                  ddd       t        j                  t        |d      |      sJ | r|j
                  j                  d      sJ y y )Nr   rG   rH         /@Tr   r   r5   r   r   r   r    r"   r#   r8   r9   )r'   r   r(   arr_as       r,   test_replace_inplacerk      sl    	C%	&Bb#EJJ#T4J8Ib#.666ww((+++ r.   c                    t        dg di      }t        |d      }|d d  }t        j                  |      5  |j	                  |dd       d d d        | r]t        j                  t        |d      |      rJ |j                  j                  d      sJ |j                  j                  d      sJ y t        j                  t        |d      |      sJ y # 1 sw Y   xY wNr   rG   rg   Trh   r   )	r   r   r%   r7   r    r"   r#   r8   r9   )r'   r   r:   r(   rj   r;   s         r,   test_replace_inplace_referencern      s    	C%	&Bb#Ea5D			1	2 D


jd
CD ##Ib#$6>>>ww((+++yy**1---	"c 2E:::D Ds   CCrI   c                 *   t        dg di      }t        |d      }|d d  }|j                  |dd       t        j                  t        |d      |      sJ | r;|j
                  j                  d      rJ |j
                  j                  d      rJ y y rm   ri   )r'   r   r(   rj   r;   s        r,   $test_replace_inplace_reference_no_oprp      s    	C%	&Bb#Ea5DJJ*D$J?Ib#.66677,,Q///99..q1111 r.   valc                    t        dt        g d      i      }|j                         }t        |d      }|d d  }d}|dk(  rt        nd }t        j                  ||      5  |j                  ||d       d d d        | rt        j                  t        |d      j                  |j                        rJ |j                  j                  d      sJ |j                  j                  d      sJ t        j                  ||       y t        j                  t        |d      j                  |j                        sJ y # 1 sw Y   xY w)	Nr   r   rZ   rH   r[   Trh   r   )r   r   r   r   r`   r%   r_   r    r"   r#   ra   r8   r9   r&   )	r'   rq   r   r(   r)   rj   r;   rb   warns	            r,   *test_replace_categorical_inplace_referencert      s    
CY/0	1BggiGb#Ea5D	    3J=DD		#	#D	4 C


jT
BC ##Ib#$6$<$<ekkJJJww((+++yy**1---
dG,	"c 2 8 8%++FFFC Cs    D==Ec                    t        dt        g d      i      }t        |d      }d}|dk(  rt        nd }t	        j
                  ||      5  |j                  d|d       d d d        t        j                  t        |d      j                  |j                        sJ | r|j                  j                  d	      sJ t        dt        |d
dg      i      }t	        j                  ||       y # 1 sw Y   xY w)Nr   r   rZ   rH   r[   r   Trh   r   r   r   )r   r   r   r`   r%   r_   r    r"   r#   ra   r8   r9   r&   )r'   rq   r(   rj   rb   rs   expecteds          r,    test_replace_categorical_inplacerw     s    	CY/0	1Bb#E	    3J=DD		#	#D	4 :


asD
9: Ib#.44ekkBBBww((+++#{CA;789H"h': :s   C--C6c                    t        dt        g d      i      }|j                         }d}|dk(  rt        nd }t	        j
                  ||      5  |j                  d|      }d d d        | r:|j                  j                  d      sJ j                  j                  d      sJ t        j                  t        |d      j                  t        d      j                        rJ t	        j                  ||       t        |d      j                  }d	|j                  d
<   t        j                  t        |d      j                  |      sJ y # 1 sw Y   xY w)Nr   r   rZ   rH   r[   r   r   r   g       @r   r   )r   r   r   r`   r%   r_   r    r8   r9   r"   r#   r   ra   r&   iloc)r'   rq   r(   r)   rb   rs   rB   rj   s           r,   test_replace_categoricalr{   !  s(   	CY/0	1BggiG	    3J=DD		#	#D	4 2jjASj12 ww((+++xx))!,,,	"c 2 8 8)C:M:S:STTT"g&c3%%ECHHTNIc3/55u===2 2s   EEmethodwheremaskc                 F   t        dg di      }|j                         }t        |d      }|d d  }t        ||      }|r/t	        j
                         5   ||d   dkD  dd       d d d        n ||d   dkD  dd       | rst        j                  t        |d      |      rJ |j                  j                  d      sJ |j                  j                  d      sJ t	        j                  ||       y t        j                  t        |d      |      sJ y # 1 sw Y   xY w)Nr   rG   g?r   Tr5   r   )r   r   r   getattrr%   r7   r"   r#   r8   r9   r&   )r'   r|   r:   r(   r)   rj   r;   s          r,   test_masking_inplacer   8  s   	C%	&BggiGb#Ea5DR F""$ 	42c7S="d3	4 	4 	r#w}b$/##Ib#$6>>>ww((+++yy**1---
dG,	"c 2E:::	4 	4s   DD c                 .   t        dddgi      }|j                  g g       }| rIt        j                  t	        |d      t	        |d            sJ |j
                  j                  d      r.J t        j                  t	        |d      t	        |d            rJ t	        |d      }|j                  g g        | r]t        j                  t	        |d      |      sJ |j
                  j                  d      rJ |j
                  j                  d      rJ y y )Nr   r   r   r   )r   r    r"   r#   r   r8   r9   )r'   r(   rB   rj   s       r,   test_replace_empty_listr   O  s    	C!Q=	!B
**R
C	#s 3Yr35GHHH77,,Q///##Ic3$72s9KLLLb#EJJr2	"c 2E:::77,,Q///88--a0000 r.   r   rJ   c                 4   t        dg di      }t        |d      }|j                  dg|d       | s|"t        j                  |t        |d            s$J t        j                  |t        |d            rJ | r|j
                  j                  d      sJ y y )Nr   r   r   Tr   r   ri   )r'   r   r(   r+   s       r,    test_replace_object_list_inplacer   a  s    	C)	*B
B
CJJueTJ*emYr3%7888 ##C2s);<<<ww((+++ r.   c                 .   t        dg di      }t        |d      }|j                  ddgdd       | r@t        j                  |t        |d            sJ |j
                  j                  d      sJ y t        j                  |t        |d            sJ y )	Nr   r   r   r   r	   Tr   r   ri   )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ww((+++Yr3%7888r.   c                     t        dg di      }|j                         }|j                  dgd       }t        j                  ||       t        j                  t        |d      t        |d            rJ y )Nr   r   r   r^   )r   r   r    r%   r&   r"   r#   r   rL   s       r,   test_replace_list_noner   z  sg    	C)	*BggiG
**cU$*
'C"g&	"c 2Ic34GHHHHr.   c                    t        dg di      }t        |d      }|j                         }|d d  }t        j                  |      5  |j                  dgd d       d d d        | rV|j                  j                  d      sJ t        j                  |t        |d            rJ t        j                  ||       y t        j                  |t        |d            sJ y # 1 sw Y   xY w)Nr   r   Tr]   r   )r   r   r   r%   r7   r    r8   r9   r"   r#   r&   )r'   r:   r(   r+   r)   r;   s         r,   #test_replace_list_none_inplace_refsr     s    	C)	*B
B
CggiGa5D			1	2 4


C5d
34ww((+++##C2s);<<<
gt,Yr3%78884 4r=   c                 &   t        g dg dd      }|d d  }|j                         }|j                  ddidd       | rRt        j                  t        |d      t        |d            sJ d|j                  d<   t        j                  ||       y y )	Nr   r
   r   
   r   Tr   ry   	r   r   r    r"   r#   r   rz   r%   r&   )r'   r(   r;   r)   s       r,   %test_replace_columnwise_no_op_inplacer     s    	3	4Ba5DggiGJJRy#tJ,	$ 4iC6HIII
dG, r.   c                    t        g dg dd      }|j                         }|j                  ddid      }| r,t        j                  t        |d      t        |d            sJ d|j                  d<   t        j                  ||       y )Nr   r
   r   r   r   ry   r   rL   s       r,   test_replace_columnwise_no_opr     st    	3	4BggiG
**c2Y
$C	#s 3Yr35GHHHCHHTN"g&r.   c                    t        dt        j                  dgdd      }|j                         }| rt	        j
                         5  |d   j                  ddd       d d d        t	        j                  ||       t	        j
                         5  |dg   j                  ddd       d d d        t	        j                  ||       y t	        j                  d       5  t        dd       5  |dg   j                  ddd       d d d        d d d        t	        j                  d       5  t        dd       5  ||j                  d	kD     j                  ddd       d d d        d d d        t	        j                  t        d
      5  |d   j                  ddd       d d d        y # 1 sw Y   JxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr   r   r
   r   r   Tr   zmode.chained_assignmentr   zinplace methodr[   )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 	2sGOOAsDO1	2
b'*//1 	4uIad3	4
b'*''- 	8 94@ 8C5	!!!S$!78	8 ''- 	; 94@ ;244!8$$QT$:;	; ''=MN 	2sGOOAsDO1	2 	2!	2 	2	4 	4
8 8	8 	8
; ;	; 	;	2 	2sl   F&F3G*G G(G$5%GG$G0&F03F= G		GGG!	G$$G-0G9c                 "   t        g dg dd      }|j                         }|j                  ddgddg      }| r,t        j                  t        |d      t        |d            s.J t        j                  t        |d      t        |d            rJ d|j                  d<   t        j                  ||       |j                  dd	gd
d
g      }t        j                  t        |d      t        |d            rJ t        j                  ||       y )Nr   r
            r   r   ry   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##Ifc$:Ib#<NOOOFKK"b!ZZa2r(+F	"c 2Ifc4JKKK"g&r.   c                 H   t        g dg dd      }t        |d      }|j                  ddgddgd	       t        j                  t        |d      |      sJ |d d  }|j                         }t        j                  |      5  |j                  dd
gddgd	       d d d        | r9t        j                  t        |d      |      rJ t        j                  ||       y t        j                  t        |d      |      sJ t        j                  ||       y # 1 sw Y   }xY w)Nr   r
   r   r   r   r   r   Tr   r   )	r   r   r    r"   r#   r   r%   r7   r&   )r'   r:   r(   r+   r;   r)   s         r,   test_replace_listlike_inplacer     s   	3	4B
B
CJJQx"b4J0Ib#.444a5DggiG			1	2 5


C8b"Xt
45##Ib#$6<<<
dG,	"c 2C888
b$'5 5s   DD!)(numpyr"   pytestpandasr   r   r   pandas._testing_testingr%   pandas.tests.copy_view.utilr   markparametrizer-   r<   rC   rE   rM   rR   rU   rc   re   rk   rn   rp   rt   rw   r{   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I9-'20'$(r.   