
    [6gB              
          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                            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                            dddgg g          d             Zej                            dddgg          d             Zej                            dd
dg          d             Zej                            dddgg          ej                            dddg          d                         Zej                            dddg          d             Zej                            dddg          d             Zej                            dd d!g          d"             Zd# Zej                            d$d%dg          d&             Zd' Z d( Z!d) Z"d* Z#d+ Z$d, Z%d- Z&d. Z'dS )/    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        di |}| r|d         |d         k                                    r3t	          j        t          |d          t          |d                    sJ t	          j        t          |d          t          |d                    sJ d|j        d<   | r3t	          j        t          |d          t          |d                    rJ d	|d
         v r?t          |d	          }d|j        d<   t	          j        t          |d	          |          sJ t          j	        ||           d S )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         b/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/pandas/tests/copy_view/test_replace.pytest_replacer-      s     
9N9N9NOO	P	PBggiiG"*..~..K Q3',,.. 	U#Ik3$?$?2sASASTTTTT	+s ; ;Yr3=O=OPPPPP !KOF U#Ik3$?$?2sASASTTTTT
n\***S))"%	+s ; ;SAAAAA"g&&&&&    c                    t          dddgi          }|                                }|d d          }t          |d          }t          j        |          5  |                    dddd           d d d            n# 1 swxY w Y   | rXt          j        |t          |d                    rJ |j        	                    d          sJ t          j
        ||           d S t          j        |t          |d                    sJ d S )	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ggiiGaaa5D
B

C		1	2	2 O O


heT
NNNO O O O O O O O O O O O O O O 9#C2s););<<<<<w((+++++
dG,,,,,Yr3%7%78888888   A<<B B c                    t          dddgi          }t          |d          }|                    dddd           | r|j                            d          sJ t          j        |t          |d                    sJ |                                }|                    d	dd
          }t          j	        ||           t          j        t          |d          t          |d                    rJ d S )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JJ ,w((+++++C2s!3!344444ggiiG
**T*
B
BC'2&&&	#s 3 3Yr35G5GHHHHHHHr.   c                 Z   t          dddgi          }t          |d          }|                    dddd           | r|j                            d          sJ t          j        |t          |d                    sJ |                                }|                    d	dd
          }t          j	        ||           | r5t          j        t          |d          t          |d                    sJ d S t          j        t          |d          t          |d                    rJ d S )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II ,w((+++++C2s!3!344444ggiiG
**uD*
A
AC'2&&& M	#s 3 3Yr35G5GHHHHHHH#Ic3$7$72s9K9KLLLLLLLr.   c                    t          g ddddd          }|                                }|                    dd          }| rgt          j        t          |d	          t          |d	                    sJ t          j        t          |d
          t          |d
                    rJ nft          j        t          |d	          t          |d	                    rJ t          j        t          |d
          t          |d
                    rJ d|j        d<   t          j        ||           | r3t          j        t          |d	          t          |d	                    rJ d S d S )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   si   	5qqAA	B	BBggiiG
**4*
0
0C M	"c 2 2Ic34G4GHHHHH#Ib#$6$6	#s8K8KLLLLLL #Ib#$6$6	#s8K8KLLLLL#Ib#$6$6	#s8K8KLLLLLCGFO"g&&& M#Ib#$6$6	#s8K8KLLLLLM MLLr.   c                    t          g ddd          }|                                }|                    dd          }| rgt          j        t          |d          t          |d                    sJ t          j        t          |d          t          |d                    rJ nh|sft          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 d S d S )
NrG   rI   r
   rH   r   r   r         ?r   r   rK   )r'   using_array_managerr(   r)   rB   s        r,   !test_replace_coerce_single_columnrR   y   so   	511	2	2BggiiG
**3*
/
/C M	"c 2 2Ic34G4GHHHHH#Ib#$6$6	#s8K8KLLLLLL  M	"c 2 2Ic34G4GHHHHH#Ib#$6$6	#s8K8KLLLLL M
b'***#Ib#$6$6	#s8K8KLLLLLM M 	MLr.   c                    t          g ddd          }|                                }|                    dd          }| rgt          j        t          |d          t          |d                    sJ t          j        t          |d          t          |d                    sJ nft          j        t          |d          t          |d                    rJ t          j        t          |d          t          |d                    rJ d	|j        d
<   t          j        ||           | r3t          j        t          |d          t          |d                    rJ d S d S )NrG   rI   r
   xxxrH   r   r   r   rO   rP   rK   rL   s       r,   #test_replace_to_replace_wrong_dtyperU      se   	511	2	2BggiiG
**S*
1
1C M	"c 2 2Ic34G4GHHHHH	"c 2 2Ic34G4GHHHHHH #Ib#$6$6	#s8K8KLLLLL#Ib#$6$6	#s8K8KLLLLLCGFO"g&&& M#Ib#$6$6	#s8K8KLLLLLM MLLr.   c                    t          dg did          }t          |d          }d}t          j        t          |          5  |                    dgdd	           d d d            n# 1 swxY w Y   t          j        |j        t          |d          j                  sJ | r|j	        
                    d
          sJ |                                }t          j        t          |          5  |                    dgd          }d d d            n# 1 swxY w Y   t          j        |j        t          |d          j                  rJ t          j        ||           d S )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 3


C5T
2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3CIyS'9'9'?@@@@@ ,w((+++++ggiiG		#M	=	=	= + +jj#cj**+ + + + + + + + + + + + + + +	9S#+>+>+DEEEEE"g&&&&&s$   A))A-0A-0DDDc                 .   t          dg did          }|d d          }|                                }d}t          j        t          |          5  |                    dgdd	           d d d            n# 1 swxY w Y   | rTt          j        t          |d          j	        t          |d          j	                  rJ t          j
        ||           d S t          j        t          |d          j	        t          |d          j	                  rJ d S )
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      ss   	C)	<	<	<Baaa5DggiiG	   
	#M	=	=	= 3 3


C5T
2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 	
#dC  &	"c(:(:(@
 
 	
 	
 	
 	gt,,,,, #dC  &	"c(:(:(@
 
 	
 	
 	
 	
 	
s   A77A;>A;rH   c                    t          dg di          }t          |d          }|                    ddd           t          j        t          |d          |          sJ | r|j                            d          sJ d S d S )Nr   rG   rH         /@Tr   r   r5   r   r   r   r    r"   r#   r8   r9   )r'   r   r(   arr_as       r,   test_replace_inplacerk      s    	C%	&	&Bb#EJJ#T4J888Ib#..66666 ,w((+++++, ,++r.   c                    t          dg di          }t          |d          }|d d          }t          j        |          5  |                    |dd           d d d            n# 1 swxY w Y   | r_t          j        t          |d          |          rJ |j                            d          sJ |j                            d          sJ d S t          j        t          |d          |          sJ d S 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      sX   	C%	&	&Bb#Eaaa5D		1	2	2 D D


jd
CCCD D D D D D D D D D D D D D D  ;#Ib#$6$6>>>>>w((+++++y**1-------	"c 2 2E:::::::s   A''A+.A+rI   c                 R   t          dg di          }t          |d          }|d d          }|                    |dd           t          j        t          |d          |          sJ | r8|j                            d          rJ |j                            d          rJ d S d S rm   ri   )r'   r   r(   rj   r;   s        r,   $test_replace_inplace_reference_no_oprp      s    	C%	&	&Bb#Eaaa5DJJ*D$J???Ib#..66666 27,,Q/////9..q111112 211r.   valc                    t          dt          g d          i          }|                                }t          |d          }|d d          }d}|dk    rt          nd }t          j        ||          5  |                    ||d           d d d            n# 1 swxY w Y   | r~t          j	        t          |d          j
        |j
                  rJ |j                            d          sJ |j                            d          sJ t          j        ||           d S t          j	        t          |d          j
        |j
                  sJ d S )	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YYY//0	1	1BggiiGb#Eaaa5D	    3JJ==DD		#D	4	4	4 C C


jT
BBBC C C C C C C C C C C C C C C  G#Ib#$6$6$<ekJJJJJw((+++++y**1-----
dG,,,,,	"c 2 2 8%+FFFFFFFs   6BB"Bc                    t          dt          g d          i          }t          |d          }d}|dk    rt          nd }t	          j        ||          5  |                    d|d           d d d            n# 1 swxY w Y   t          j        t          |d          j	        |j	                  sJ | r|j
                            d	          sJ t          dt          |d
dg          i          }t	          j        ||           d S )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     sV   	CYYY//0	1	1Bb#E	    3JJ==DD		#D	4	4	4 : :


asD
999: : : : : : : : : : : : : : : Ib#..4ekBBBBB ,w((+++++#{CA;77899H"h'''''s   A==BBc                    t          dt          g d          i          }|                                }d}|dk    rt          nd }t	          j        ||          5  |                    d|          }d d d            n# 1 swxY w Y   | r8|j                            d          s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 d S )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YYY//0	1	1BggiiG	    3JJ==DD		#D	4	4	4 2 2jjASj112 2 2 2 2 2 2 2 2 2 2 2 2 2 2  -w((+++++x))!,,,,,	"c 2 2 8)C:M:M:STTTTT"g&&&c3%ECHTNIc3//5u=======s   B  BBmethodwheremaskc                    t          dg di          }|                                }t          |d          }|d d          }t          ||          }|rDt	          j                    5   ||d         dk    dd           d d d            n# 1 swxY w Y   n ||d         dk    dd           | rtt          j        t          |d          |          rJ |j        	                    d          sJ |j        	                    d          sJ t	          j
        ||           d S t          j        t          |d          |          sJ d S )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ggiiGb#Eaaa5DR  F 0"$$ 	4 	4F2c7S="d3333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	r#w}b$//// ;#Ib#$6$6>>>>>w((+++++y**1-----
dG,,,,,	"c 2 2E:::::::s   'BBBc                 p   t          dddgi          }|                    g g           }| rPt          j        t	          |d          t	          |d                    sJ |j                            d          rJ n3t          j        t	          |d          t	          |d                    rJ t	          |d          }|                    g g            | r]t          j        t	          |d          |          sJ |j                            d          rJ |j                            d          rJ d S d S )Nr   r   r   r   )r   r    r"   r#   r   r8   r9   )r'   r(   rB   rj   s       r,   test_replace_empty_listr   O  sD   	C!Q=	!	!B
**R

C M	#s 3 3Yr35G5GHHHHH7,,Q//////#Ic3$7$72s9K9KLLLLLb#EJJr2 1	"c 2 2E:::::7,,Q/////8--a000001 1 	10r.   r   rJ   c                 \   t          dg di          }t          |d          }|                    dg|d           | s|&t          j        |t          |d                    sJ n%t          j        |t          |d                    rJ | r|j                            d          sJ d S d S )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%7888888 #C2s););<<<<< ,w((+++++, ,++r.   c                 T   t          dg di          }t          |d          }|                    ddgdd           | rCt          j        |t          |d                    sJ |j                            d          sJ d S t          j        |t          |d                    sJ d S )	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''' 9Yr3%7%788888w((+++++++Yr3%7%78888888r.   c                    t          dg di          }|                                }|                    dgd           }t          j        ||           t          j        t          |d          t          |d                    rJ d S )Nr   r   r   r^   )r   r   r    r%   r&   r"   r#   r   rL   s       r,   test_replace_list_noner   z  s    	C)	*	*BggiiG
**cU$*
'
'C"g&&&	"c 2 2Ic34G4GHHHHHHHr.   c                    t          dg di          }t          |d          }|                                }|d d          }t          j        |          5  |                    dgd d           d d d            n# 1 swxY w Y   | rX|j                            d          sJ t          j	        |t          |d                    rJ t          j
        ||           d S t          j	        |t          |d                    sJ d S )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     sK   	C)	*	*B
B

CggiiGaaa5D		1	2	2 4 4


C5d
3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 9w((+++++#C2s););<<<<<
gt,,,,,Yr3%7%78888888r=   c                 N   t          g dg dd          }|d d          }|                                }|                    ddidd           | rTt          j        t          |d          t          |d                    sJ d|j        d<   t          j        ||           d S d S )	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3	4	4Baaa5DggiiGJJRy#tJ,,, -	$ 4 4iC6H6HIIIII
dG,,,,,- -r.   c                 2   t          g dg dd          }|                                }|                    ddid          }| r3t          j        t          |d          t          |d                    sJ d|j        d<   t          j        ||           d S )Nr   r
   r   r   r   ry   r   rL   s       r,   test_replace_columnwise_no_opr     s    	33	4	4BggiiG
**c2Y
$
$C I	#s 3 3Yr35G5GHHHHHCHTN"g&&&&&r.   c                 n   t          dt          j        dgdd          }|                                }| rt	          j                    5  |d                             ddd           d d d            n# 1 swxY w Y   t	          j        ||           t	          j                    5  |dg                             ddd           d d d            n# 1 swxY w Y   t	          j        ||           d S t	          j        d           5  t          dd           5  |dg                             ddd           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t	          j        d           5  t          dd           5  ||j
        d	k                                 ddd           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t	          j        t          d
          5  |d                             ddd           d d d            d S # 1 swxY w Y   d S )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   	!RVQa00	1	1BggiiG 2/11 	2 	2sGOOAsDO111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2
b'***/11 	4 	4uIad333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4
b'*****'-- 	8 	8 94@@ 8 8C5	!!!S$!7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 '-- 	; 	; 94@@ ; ;24!8$$QT$:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; '=MNNN 	2 	2sGOOAsDO111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   	A44A8;A8' CCC	E E:EE
	
EE
	EE!$E!<G(G5GG	GG		GGG>H**H.1H.c                 b   t          g dg dd          }|                                }|                    ddgddg          }| r4t          j        t          |d          t          |d                    sJ n3t          j        t          |d          t          |d                    rJ d|j        d<   t          j        ||           |                    dd	gd
d
g          }t          j        t          |d          t          |d                    rJ t          j        ||           d S )Nr   r
            r   r   ry   r   r   r   )r'   r(   r)   results       r,   test_replace_listliker     s-   	33	4	4BggiiGZZc
RH--F P	&# 6 6	"c8J8JKKKKKK#Ifc$:$:Ib#<N<NOOOOOFK"b!!!ZZa2r(++F	"c 2 2Ifc4J4JKKKKK"g&&&&&r.   c                    t          g dg dd          }t          |d          }|                    ddgddgd	           t          j        t          |d          |          sJ |d d          }|                                }t          j        |          5  |                    dd
gddgd	           d d d            n# 1 swxY w Y   | r<t          j        t          |d          |          rJ t          j        ||           d S t          j        t          |d          |          sJ t          j        ||           d S )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3	4	4B
B

CJJQx"b4J000Ib#..44444aaa5DggiiG		1	2	2 5 5


C8b"Xt
4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 (#Ib#$6$6<<<<<
dG,,,,,	"c 2 2C88888
b$'''''s   CC
C)(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      s                
       1 1 1 1 1 1 Q''"55Qx"--Qx"--	aV}% ' ' '.9 9 9I I IM M M"M M M0M M M(M M M*' ' '*
 
 
, cUB'788, , 98, cU|44; ; 54; U|44	2 	2 54	2 A3x00C))G G *) 10G, C))( ( *)(& C))> > *)>, GV#455; ; 65;,1 1 1$ 3+..
, 
, /.
,9 9 9I I I9 9 9- - -' ' '2 2 20' ' '$( ( ( ( (r.   