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


heT
NO##C2s);<<<ww((+++
dG,Yr3%7888O O   CC(c                    t        dddgi      }t        |d      }|j                  dddd       | r|j                  j	                  d      sJ t        j                  |t        |d            sJ |j                         }|j                  d	dd
      }t        j                  ||       t        j                  t        |d      t        |d            rJ y )Nr   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ww((+++C2s!3444ggiG
**T*
BC'2&	#s 3Yr35GHHHHr+   c                    t        dddgi      }t        |d      }|j                  dddd       | r|j                  j	                  d      sJ t        j                  |t        |d            sJ |j                         }|j                  d	dd
      }t        j                  ||       | r-t        j                  t        |d      t        |d            sJ y t        j                  t        |d      t        |d            rJ y )Nr   r   r   z^a.$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ww((+++C2s!3444ggiG
**uD*
AC'2&	#s 3Yr35GHHH##Ic3$72s9KLLLLr+   c                 z   t        g ddddd      }|j                         }|j                  dd      }| rXt        j                  t        |d	      t        |d	            sJ t        j                  t        |d
      t        |d
            rZJ t        j                  t        |d	      t        |d	            rJ t        j                  t        |d
      t        |d
            rJ d|j                  d<   t        j                  ||       | r-t        j                  t        |d	      t        |d	            rJ y y )N      ?r   r         Y@r   r   )r   r   r   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   s   	5qqA	BBggiG
**4*
0C	"c 2Ic34GHHH##Ib#$6	#s8KLLL ##Ib#$6	#s8KLLL##Ib#$6	#s8KLLLCGGFO"g&##Ib#$6	#s8KLLLL r+   c                 z   t        g ddd      }|j                         }|j                  dd      }| rXt        j                  t        |d      t        |d            sJ t        j                  t        |d      t        |d            r\J |sXt        j                  t        |d      t        |d            sJ t        j                  t        |d      t        |d            rJ | rRd|j                  d	<   t        j                  ||       t        j                  t        |d      t        |d            rJ y y )
NrC   rE   r
   rD   r   r   r         ?r   r   rG   )r$   using_array_managerr%   r&   r>   s        r)   !test_replace_coerce_single_columnrN   y   s   	51	2BggiG
**3*
/C	"c 2Ic34GHHH##Ib#$6	#s8KLLL 	"c 2Ic34GHHH##Ib#$6	#s8KLLL
b'*##Ib#$6	#s8KLLLL r+   c                 v   t        g ddd      }|j                         }|j                  dd      }| rXt        j                  t        |d      t        |d            sJ t        j                  t        |d      t        |d            sZJ t        j                  t        |d      t        |d            rJ t        j                  t        |d      t        |d            rJ d	|j                  d
<   t        j                  ||       | r-t        j                  t        |d      t        |d            rJ y y )NrC   rE   r
   xxxrD   r   r   r   rK   rL   rG   rH   s       r)   #test_replace_to_replace_wrong_dtyperQ      s   	51	2BggiG
**S*
1C	"c 2Ic34GHHH	"c 2Ic34GHHH ##Ib#$6	#s8KLLL##Ib#$6	#s8KLLLCGGFO"g&##Ib#$6	#s8KLLLL r+   c                    t        dg did      }t        |d      }d}t        j                  t        |      5  |j                  dgdd	       d d d        t        j                  |j                  t        |d      j                        sJ | r|j                  j                  d
      sJ |j                         }t        j                  t        |      5  |j                  dgd      }d d d        t        j                  |j                  t        d      j                        rJ t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   bxY w)Nr   r   categorydtypeOThe behavior of Series\.replace \(and DataFrame.replace\) with CategoricalDtypematchr   Tr   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


C5T
23CIIyS'9'?'?@@@ww((+++ggiG		#	#M	= +jj#cj*+		9S#+>+D+DEEE"g&3 3+ +s   EEEEc                    t        dg did      }|d d  }|j                         }d}t        j                  t        |      5  |j                  dgdd	       d d d        | rWt        j                  t        |d      j                  t        |d      j                        rJ t        j                  ||       y t        j                  t        |d      j                  t        |d      j                        rJ y # 1 sw Y   xY w)
Nr   r   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      s    	C)	<Ba5DggiG	   
	#	#M	= 3


C5T
23##dC &&	"c(:(@(@
 	
 
 	gt, ##dC &&	"c(:(@(@
 	
 
 
3 3s   C<<DrD   c                     t        dg di      }t        |d      }|j                  ddd       t        j                  t        |d      |      sJ | r|j
                  j                  d      sJ y y )Nr   rC   rD         /@Tr   r   r2   r   r   r   r   r   r    r5   r6   )r$   r   r%   arr_as       r)   test_replace_inplacerg      sl    	C%	&Bb#EJJ#T4J8Ib#.666ww((+++ r+   c                    t        dg di      }t        |d      }|d d  }t        j                  |      5  |j	                  |dd       d d d        | r]t        j                  t        |d      |      rJ |j                  j                  d      sJ |j                  j                  d      sJ y t        j                  t        |d      |      sJ y # 1 sw Y   xY wNr   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      s    	C%	&Bb#Ea5D			1	2 D


jd
CD ##Ib#$6>>>ww((+++yy**1---	"c 2E:::D Ds   CCrE   c                 *   t        dg di      }t        |d      }|d d  }|j                  |dd       t        j                  t        |d      |      sJ | r;|j
                  j                  d      rJ |j
                  j                  d      rJ y y ri   re   )r$   r   r%   rf   r8   s        r)   $test_replace_inplace_reference_no_oprl      s    	C%	&Bb#Ea5DJJ*D$J?Ib#.66677,,Q///99..q1111 r+   valc                    t        dt        g d      i      }|j                         }t        |d      }|d d  }d}|dk(  rt        nd }t        j                  ||      5  |j                  ||d       d d d        | rt        j                  t        |d      j                  |j                        rJ |j                  j                  d      sJ |j                  j                  d      sJ t        j                  ||       y t        j                  t        |d      j                  |j                        sJ y # 1 sw Y   xY w)	Nr   r   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Y/0	1BggiGb#Ea5D	    3J=DD		#	#D	4 C


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


asD
9: Ib#.44ekkBBBww((+++#{CA;789H"h': :s   C--C6c                    t        dt        g d      i      }|j                         }d}|dk(  rt        nd }t	        j
                  ||      5  |j                  d|      }d d d        | r:|j                  j                  d      sJ j                  j                  d      sJ t        j                  t        |d      j                  t        d      j                        rJ t	        j                  ||       t        |d      j                  }d	|j                  d
<   t        j                  t        |d      j                  |      sJ y # 1 sw Y   xY w)Nr   r   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Y/0	1BggiG	    3J=DD		#	#D	4 2jjASj12 ww((+++xx))!,,,	"c 2 8 8)C:M:S:STTT"g&c3%%ECHHTNIc3/55u===2 2s   EEmethodwheremaskc                 F   t        dg di      }|j                         }t        |d      }|d d  }t        ||      }|r/t	        j
                         5   ||d   dkD  dd       d d d        n ||d   dkD  dd       | rst        j                  t        |d      |      rJ |j                  j                  d      sJ |j                  j                  d      sJ t	        j                  ||       y t        j                  t        |d      |      sJ y # 1 sw Y   xY w)Nr   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ggiGb#Ea5DR F""$ 	42c7S="d3	4 	4 	r#w}b$/##Ib#$6>>>ww((+++yy**1---
dG,	"c 2E:::	4 	4s   DD c                 .   t        dddgi      }|j                  g g       }| rIt        j                  t	        |d      t	        |d            sJ |j
                  j                  d      r.J t        j                  t	        |d      t	        |d            rJ t	        |d      }|j                  g g        | r]t        j                  t	        |d      |      sJ |j
                  j                  d      rJ |j
                  j                  d      rJ y y )Nr   r   r   r   )r   r   r   r    r   r5   r6   )r$   r%   r>   rf   s       r)   test_replace_empty_listr   O  s    	C!Q=	!B
**R
C	#s 3Yr35GHHH77,,Q///##Ic3$72s9KLLLb#EJJr2	"c 2E:::77,,Q///88--a0000 r+   r   rF   c                 @   t        dg dit              }t        |d      }|j                  dg|d       | s|"t	        j
                  |t        |d            s$J t        j
                  |t        |d            rJ | r|j                  j                  d      sJ y y )Nr   r   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)	8B
B
CJJueTJ*emYr3%7888 ##C2s);<<<ww((+++ r+   c                 .   t        dg di      }t        |d      }|j                  ddgdd       | r@t        j                  |t        |d            sJ |j
                  j                  d      sJ y t        j                  |t        |d            sJ y )	Nr   r   r   r   r	   Tr|   r   re   )r$   r%   r(   s      r)   +test_replace_list_multiple_elements_inplacer   o  s    	C#	$B
B
CJJ1vq$J'Yr3%7888ww((+++Yr3%7888r+   c                    t        dg di      }|j                         }|j                  dgd       }t        j                  ||       t        j                  t        |d      t        |d            rJ |j                  g dd       }t        j                  ||       | r-t        j                  t        |d      t        |d            sJ y t        j                  t        |d      t        |d            rJ y )Nr   r   r   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ggiG
**cU$*
'C"g&	"c 2Ic34GHHH **_D*
1C#w'	"c 2Ic34GHHH##Ib#$6	#s8KLLLLr+   c                    t        dg di      }t        |d      }|j                         }|d d  }t        j                  |      5  |j                  dgd d       d d d        | rV|j                  j                  d      sJ t        j                  |t        |d            rJ t        j                  ||       y t        j                  |t        |d            sJ y # 1 sw Y   xY w)Nr   r   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     s    	C)	*B
B
CggiGa5D			1	2 4


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


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