
    d1              
          d dl Zd dlZd dl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S )*    N)Categorical	DataFrame)	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         _/var/www/html/t/fyr/venv311/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          }|                    dddd           | 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   r!   r"   _mgr_has_no_referencer$   r%   )r&   r'   r(   viewr*   s        r+   test_replace_regex_inplace_refsr9   2   s    	C%(	)	)BggiiGaaa5D
B

CJJ(%TJJJJ 9#C2s););<<<<<w((+++++
dG,,,,,Yr3%7%78888888r-   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/   r0   r1   r2   Tr3   r   z^b.*$r   r   r5   
r   r   r   r6   r7   r!   r"   r   r$   r%   r&   r'   r*   r(   df2s        r+   test_replace_regex_inplacer?   @   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.$r2   Tr3   r   z^x.$r;   r<   r=   s        r+    test_replace_regex_inplace_no_oprA   N   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   _   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   w   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gdd           t          j        |j        t          |d          j                  sJ | r|j                            d          sJ |                                }|                    d	gd
          }t          j        |j        t          |d          j                  rJ t          j
        ||           d S )Nr
   r   categorydtyper   Tr   r4   r   r   r   )r   r   r   r!   r"   codesr6   r7   r   r$   r%   r=   s        r+   test_replace_list_categoricalrY      s    	C)	<	<	<B
B

CJJuCJ...CIyS'9'9'?@@@@@ ,w((+++++ggiiG
**cU#*
&
&C	9S#+>+>+DEEEEE"g&&&&&r-   c                    t          dg did          }|d d          }|                                }|                    dgdd           | 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   r   TrV   )	r   r   r   r!   r"   r   rX   r$   r%   )r&   r'   r8   r(   s       r+   *test_replace_list_inplace_refs_categoricalr[      s    	C)	<	<	<Baaa5DggiiGJJuCJ... 	
#dC  &	"c(:(:(@
 
 	
 	
 	
 	gt,,,,, #dC  &	"c(:(:(@
 
 	
 	
 	
 	
 	
r-   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   r4   r   r   r   r   r!   r"   r6   r7   )r&   r   r'   arr_as       r+   test_replace_inplacera      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          }|                    |dd           | 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   r]   Tr^   r   r_   r&   r   r'   r`   r8   s        r+   test_replace_inplace_referencere      s    	C%	&	&Bb#Eaaa5DJJ*D$J??? ;#Ib#$6$6>>>>>w((+++++y**1-------	"c 2 2E:::::::r-   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 rc   r_   rd   s        r+   $test_replace_inplace_reference_no_oprg      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                 0   t          dt          g d          i          }|                                }t          |d          }|d d          }|                    ||d           | 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   Tr^   r   )r   r   r   r   r   r!   r"   rX   r6   r7   r$   r%   )r&   rh   r   r'   r(   r`   r8   s          r+   *test_replace_categorical_inplace_referencerj      s    
CYYY//0	1	1BggiiGb#Eaaa5DJJ*CJ>>> G#Ib#$6$6$<ekJJJJJw((+++++y**1-----
dG,,,,,	"c 2 2 8%+FFFFFFFr-   c                    t          dt          g d          i          }t          |d          }|                    d|d           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   r   Tr^   r   r   r   )r   r   r   r   r!   r"   rX   r6   r7   r$   r%   )r&   rh   r'   r`   expecteds        r+    test_replace_categorical_inplacerm      s    	CYYY//0	1	1Bb#EJJ!3J555Ib#..4ekBBBBB ,w((+++++#{CA;77899H"h'''''r-   c                 F   t          dt          g d          i          }|                                }|                    d|          }| 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   r   r   r   g       @)r   r   )r   r   r   r   r6   r7   r!   r"   r   rX   r$   r%   iloc)r&   rh   r'   r(   r>   r`   s         r+   test_replace_categoricalrp     s   	CYYY//0	1	1BggiiG
***
-
-C -w((+++++x))!,,,,,	"c 2 2 8)C:M:M:STTTTT"g&&&c3%ECHTNIc3//5u=======r-   methodwheremaskc                    t          dg di          }|                                }t          |d          }|d d          }t          ||          } ||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r4   r   )
r   r   r   getattrr!   r"   r6   r7   r$   r%   )r&   rq   r'   r(   r`   r8   s         r+   test_masking_inplacerw     s   	C%	&	&BggiiGb#Eaaa5DR  F
F2c7S="d++++ ;#Ib#$6$6>>>>>w((+++++y**1-----
dG,,,,,	"c 2 2E:::::::r-   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>   r`   s       r+   test_replace_empty_listry   +  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                 \   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   Tru   r   r_   )r&   r   r'   r*   s       r+    test_replace_object_list_inplacer{   =  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                    rJ |j                            d          sJ d S t          j        |t          |d                    sJ d S )	Nr
   r   r   r   r   Tru   r   r_   )r&   r'   r*   s      r+   +test_replace_list_multiple_elements_inplacer}   K  s    	C#	$	$B
B

CJJ1vq$J''' 9#C2s););<<<<<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   rW   )r   r   r   r$   r%   r!   r"   r   rH   s       r+   test_replace_list_noner   W  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          }|                    dgd d           | 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   TrV   r   )
r   r   r   r   r6   r7   r!   r"   r$   r%   )r&   r'   r*   r(   r8   s        r+   #test_replace_list_none_inplace_refsr   a  s    	C)	*	*B
B

CggiiGaaa5DJJuD$J/// 9w((+++++#C2s););<<<<<
gt,,,,,Yr3%7%78888888r-   )"numpyr!   pytestpandasr   r   pandas._testing_testingr$   pandas.tests.copy_view.utilr   markparametrizer,   r9   r?   rA   rI   rN   rQ   rY   r[   ra   re   rg   rj   rm   rp   rw   ry   r{   r}   r   r   r   r-   r+   <module>r      so                     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 9 9r-   