
    bMhD              
          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	         )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         c/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/copy_view/test_replace.pytest_replacer*      s|     
II	J	JB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    _mgr_has_no_referencer#   r   )r$   warn_copy_on_writer%   r&   viewr(   s         r)   test_replace_regex_inplace_refsr9   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   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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.$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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   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   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 )
NrC   rE   r
   rD   r   r   r         ?r   r   rG   )r$   using_array_managerr%   r&   r>   s        r)   !test_replace_coerce_single_columnrN   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 )NrC   rE   r
   xxxrD   r   r   r   rK   rL   rG   rH   s       r)   #test_replace_to_replace_wrong_dtyperQ      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   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	=	=	= 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   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      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;rD   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   rC   rD         /@Tr   r   r2   r   r   r   r   r   r    r5   r6   )r$   r   r%   arr_as       r)   test_replace_inplacerg      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   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      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+rE   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 ri   re   )r$   r   r%   rf   r8   s        r)   $test_replace_inplace_reference_no_oprl      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   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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   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     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   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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   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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   r5   r6   )r$   r%   r>   rf   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   rF   c                 j   t          dg dit                    }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   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)	8	8	8B
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   re   )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                 D   t          dg di          }|                                }|                    dgd           }t          j        ||           t          j        t          |d          t          |d                    rJ |                    g 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   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ggiiG
**cU$*
'
'C"g&&&	"c 2 2Ic34G4GHHHHH **___D*
1
1C#w''' M	"c 2 2Ic34G4GHHHHHHH#Ib#$6$6	#s8K8KLLLLLLLr+   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   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     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|   ru   	r   r   r   r   r    r   rv   r!   r#   )r$   r%   r8   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   ru   r   rH   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 methodrW   )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   ru   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!   r4   r#   )r$   r7   r%   r(   r8   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*   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      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M M M&9 9 9- - -' ' '2 2 20' ' '$( ( ( ( (r+   