
    yhhE              
          d dl Zd dlZd dlm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 )0    N)WARNING_CHECK_DISABLED)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         Z/var/www/histauto/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_refsr:   5   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/   r0   r1   Tr2   r   z^b.*$r   r   r4   )	r   r   r   r6   r7   r"   r!   r   r$   r%   r&   r)   r'   df2s        r*   test_replace_regex_inplacer@   D   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.$r1   Tr2   r   z^x.$r=   )
r   r   r   r6   r7   r    r!   r   r"   r$   r>   s        r*    test_replace_regex_inplace_no_oprB   R   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   drE   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_blockrJ   c   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 )
NrD   rF   r   rE   r   r   r         ?r   r   rH   )r%   using_array_managerr&   r'   r?   s        r*   !test_replace_coerce_single_columnrO   {   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 )NrD   rF   r   xxxrE   r   r   r   rL   rM   rH   rI   s       r*   #test_replace_to_replace_wrong_dtyperR      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   r3   r   r   r   )r   r   r"   assert_produces_warningFutureWarningr   r    r!   codesr6   r7   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   rT   rU   rW   rX   r   TrZ   )r   r   r"   r\   r]   r   r    r!   r   r^   r$   )r%   r&   r9   r'   r_   s        r*   *test_replace_list_inplace_refs_categoricalrb      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;rE   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   rD   rE         /@Tr   r   r3   r   r   r   r   r    r!   r6   r7   )r%   r   r&   arr_as       r*   test_replace_inplacerh      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   rD   rd   Tre   r   )	r   r   r"   r5   r   r    r!   r6   r7   )r%   r   r8   r&   rg   r9   s         r*   test_replace_inplace_referencerk      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+rF   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 rj   rf   )r%   r   r&   rg   r9   s        r*   $test_replace_inplace_reference_no_oprm      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   rW   rE   rX   Tre   r   )r   r   r   r   r]   r"   r\   r   r    r!   r^   r6   r7   r$   )	r%   rn   r   r&   r'   rg   r9   r_   warns	            r*   *test_replace_categorical_inplace_referencerq      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   rW   rE   rX   r	   Tre   r   r   r   )r   r   r   r]   r"   r\   r   r    r!   r^   r6   r7   r$   )r%   rn   r&   rg   r_   rp   expecteds          r*    test_replace_categorical_inplacert     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   rW   rE   rX   r	   r   r   g       @r   r   )r   r   r   r]   r"   r\   r   r6   r7   r    r!   r   r^   r$   iloc)r%   rn   r&   r'   r_   rp   r?   rg   s           r*   test_replace_categoricalrx   #  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   rD   g?r   Tr3   r   )r   r   r   getattrr"   r5   r    r!   r6   r7   r$   )r%   ry   r8   r&   r'   rg   r9   s          r*   test_masking_inplacer   :  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   r6   r7   )r%   r&   r?   rg   s       r*   test_replace_empty_listr   Q  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   rG   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   rU   r   Tr}   r   )	r   objectr   r   r"   r!   r    r6   r7   )r%   r   r&   r)   s       r*    test_replace_object_list_inplacer   c  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   rf   )r%   r&   r)   s      r*   +test_replace_list_multiple_elements_inplacer   q  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   r[   )rG   ef)r   r   r   r"   r$   r    r!   r   )r%   r&   r'   r?   df3s        r*   test_replace_list_noner   |  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   TrZ   r   )r   r   r   r"   r5   r   r6   r7   r    r!   r$   )r%   r8   r&   r)   r'   r9   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}   rv   	r   r   r   r    r!   r   rw   r"   r$   )r%   r&   r9   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   rv   r   rI   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                    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          st          nd 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 methodrX   )r   r    nanr   r"   raises_chained_assignment_errorr   r$   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$:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; '!7AMMT"
 
 
 	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H33H7:H7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   rv   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"   r5   r$   )r%   r8   r&   r)   r9   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pandas.compatr   pandasr   r   r   pandas._testing_testingr"   pandas.tests.copy_view.utilr   markparametrizer+   r:   r@   rB   rJ   rO   rR   r`   rb   rh   rk   rm   rq   rt   rx   r   r   r   r   r   r   r   r   r   r   r   r   r,   r*   <module>r      s        0 0 0 0 0 0         
       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 26' ' '$( ( ( ( (r,   