
    .i.              
          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                  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      d        Zd Z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)	get_arrayreplace_kwargs      ab
to_replacevaluer
   r   r   c                 ~   t        g dg dg dd      }|j                         } |j                  di | }|d   |d   k(  j                         r,t	        j
                  t        |d      t        |d            sJ t        j
                  t        |d      t        |d            sJ d|j                  d<   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)r   dfdf_origdf_replacedarrs        a/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/copy_view/test_replace.pytest_replacer(      s     
I	JBggiG"**.~.KCBsG#((*	+s ;Yr3=OPPPIk372s9KLLL !KOOF	+s ;Yr3=OPPP
n\**S)"%	+s ;SAAA"g&    c                  8   t        dddgi      } | j                         }| d d  }t        | d      }| j                  dddd       t	        j
                  |t        | d            rJ | j                  j                  d      sJ t        j                  ||       y )	Nr
   aaabbb^a.*$newTr   r   inplaceregexr   )
r   r   r   r   r   r   _mgr_has_no_referencer    r"   )r#   r$   viewr&   s       r'   test_replace_regex_inplace_refsr5   0   s    	C%(	)BggiGa5D
B
CJJ(%TJJYr3%788877$$Q'''$(r)   c                     t        dddgi      } t        | d      }| j                  dddd       | 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-   r.   Tr/   r   z^b.*$r   r   r1   )	r   r   r   r2   r3   r    r   r   r"   r#   r&   r$   df2s       r'   test_replace_regex_inplacer:   ;   s    	C%(	)B
B
CJJ(%TJJ77$$Q'''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       | j                  j	                  d      sJ t        j                  |t        | d            sJ | j                         }| j                  d	dd
      }t        j                  ||        t        j                  t        |d      t        | d            sJ y )Nr
   r   r   z^a.$r.   Tr/   r   z^x.$r7   )
r   r   r   r2   r3   r   r   r   r    r"   r8   s       r'    test_replace_regex_inplace_no_opr<   H   s    	C!Q=	!B
B
CJJ'DJI77$$Q'''C2s!3444ggiG
**uD*
AC'2&Ic3/2s1CDDDr)   c                     t        g ddddd      } | j                         }| j                  dd      }t        j                  t        | d	      t        |d	            sJ t        j                  t        | d
      t        |d
            rJ d|j                  d<   t        j                  | |       t        j                  t        | d	      t        |d	            rJ t        j                  t        | d      t        |d            sJ y )N      ?r   r         Y@r   r   )r
   r   r   dr?   g     K@r   r   r
   r   rA   	r   r   r   r   r   r   r!   r    r"   r#   r$   r9   s      r'   (test_replace_mask_all_false_second_blockrD   U   s    	5qqA	BBggiG
**4*
0C Ib#.	#s0CDDD	"c 2Ic34GHHHCGGFO"g&	"c 2Ic34GHHHIb#.	#s0CDDDr)   c                     t        g ddd      } | j                         }| j                  dd      }t        j                  t        | d      t        |d            sJ t        j                  t        | d      t        |d            rJ d|j                  d	<   t        j                  | |       t        j                  t        | d      t        |d            rJ y )
Nr>   r@   r	   r?   r
   r   r         ?r   r   rB   rC   s      r'   !test_replace_coerce_single_columnrH   f   s    	51	2BggiG
**3*
/CIb#.	#s0CDDD	"c 2Ic34GHHHCGGFO"g&	"c 2Ic34GHHHHr)   c                     t        g ddd      } | j                         }| j                  dd      }t        j                  t        | d      t        |d            sJ t        j                  t        | d      t        |d            sJ d	|j                  d
<   t        j                  | |       t        j                  t        | d      t        |d            rJ y )Nr>   r@   r	   xxxr?   r   r   r
   rF   rG   rB   rC   s      r'   #test_replace_to_replace_wrong_dtyperK   s   s    	51	2BggiG
**S*
1CIb#.	#s0CDDDIb#.	#s0CDDDCGGFO"g&	"c 2Ic34GHHHHr)   c                     t        dg did      } t        | d      }| j                  dgdd       t        j                  |j
                  t        | d      j
                        sJ | j                  j                  d      sJ | j                         }| j                  d	gd
       | j                  d       }t        j                  |j
                  t        |d      j
                        rJ t        j                  | |       y )Nr
   r   categorydtyper   Tr   r0   r   r   r   c                 <    | j                   j                  ddi      S )Nr   rA   )catrename_categories)xs    r'   <lambda>z/test_replace_list_categorical.<locals>.<lambda>   s    QUU44c3Z@ r)   )r   r   r   r   r   codesr2   r3   r   applyr    r"   r8   s       r'   test_replace_list_categoricalrY      s    	C)	<B
B
CJJuCJ.CIIyS'9'?'?@@@77$$Q'''ggiGJJuCJ 
((@
AC		9S#+>+D+DEEE"g&r)   c                      t        dg did      } | d d  }| j                         }| j                  dgdd       t        j                  ||       y )Nr
   r   rM   rN   r   TrP   )r   r   r   r    r"   r#   r4   r$   s      r'   *test_replace_list_inplace_refs_categoricalr\      sK    	C)	<Ba5DggiGJJuCJ.'4(r)   r?   c                     t        dg di      }t        |d      }|j                  ddd       t        j                  t        |d      |      sJ |j
                  j                  d      sJ y )Nr
   r>   r?         /@Tr   r   r0   r   r   r   r   r   r   r2   r3   )r   r#   arr_as      r'   test_replace_inplacerb      sd    	C%	&Bb#EJJ#T4J8Ib#.66677$$Q'''r)   c                 $   t        dg di      }t        |d      }|d d  }|j                  | dd       t        j                  t        |d      |      rJ |j
                  j                  d      sJ |j
                  j                  d      sJ y Nr
   r>   r^   Tr_   r   r`   r   r#   ra   r4   s       r'   test_replace_inplace_referencerf      s    	C%	&Bb#Ea5DJJ*D$J?	"c 2E:::77$$Q'''99&&q)))r)   r@   c                 $   t        dg di      }t        |d      }|d d  }|j                  | dd       t        j                  t        |d      |      sJ |j
                  j                  d      rJ |j
                  j                  d      rJ y rd   r`   re   s       r'   $test_replace_inplace_reference_no_oprh      s    	C%	&Bb#Ea5DJJ*D$J?Ib#.666ww((+++yy**1----r)   c                    t        dt        g d      i      }|j                         }t        |d      }|d d  }|j	                  | dd       t        j                  t        |d      j                  |j                        rJ |j                  j                  d      sJ |j                  j                  d      sJ t        j                  ||       y Nr
   r   r   Tr_   r   )r   r   r   r   r   r   r   rW   r2   r3   r    r"   )r   r#   r$   ra   r4   s        r'   *test_replace_categorical_inplace_referencerk      s    	CY/0	1BggiGb#Ea5DJJ*AtJ<	"c 2 8 8%++FFF77$$Q'''99&&q)))$(r)   c                  v   t        dt        g d      i      } t        | d      }| j                  ddd       t	        j
                  t        | d      j                  |j                        sJ | j                  j                  d      sJ t        dt        g d      i      }t        j                  | |       y rj   )r   r   r   r   r   r   rW   r2   r3   r    r"   )r#   ra   expecteds      r'    test_replace_categorical_inplacern      s    	CY/0	1Bb#EJJ!1dJ3Ib#.44ekkBBB77$$Q'''#{9567H"h'r)   c                  <   t        dt        g d      i      } | j                         }| j                  dd      }| 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 )Nr
   r   r   r   r   g       @r   r   )r   r   r   r   r2   r3   r   r   r   rW   r    r"   iloc)r#   r$   r9   ra   s       r'   test_replace_categoricalrr      s    	CY/0	1BggiG
***
+C77$$Q'''88%%a(((	"c 2 8 8)C:M:S:STTT"g&c3%%ECHHTNIc3/55u===r)   methodwheremaskc                    t        dg di      }|j                         }t        |d      }|d d  }t        ||       }  | |d   dkD  dd       t	        j
                  t        |d      |      rJ |j                  j                  d      sJ |j                  j                  d      sJ t        j                  ||       y )Nr
   r>   g?r   Tr0   r   )
r   r   r   getattrr   r   r2   r3   r    r"   )rs   r#   r$   ra   r4   s        r'   test_masking_inplacery      s    	C%	&BggiGb#Ea5DR F
2c7S="d+	"c 2E:::77$$Q'''99&&q)))$(r)   c                     t        dddgi      } | j                  g g       }t        j                  t	        |d      t	        | d            sJ | j
                  j                  d      rJ t	        | d      }| j                  g g        t        j                  t	        | d      |      sJ | j
                  j                  d      rJ |j
                  j                  d      rJ y )Nr
   r   r   r   )r   r   r   r   r   r2   r3   )r#   r9   ra   s      r'   test_replace_empty_listr{      s    	C!Q=	!B
**R
CIc3/2s1CDDDww((+++b#EJJr2Ib#.666ww((+++xx))!,,,,r)   r   rA   c                     t        dg dit              }t        |d      }|j                  dg| d       t	        j
                  |t        |d            sJ |j                  j                  d      sJ y )Nr
   r   rN   r   Trw   r   )r   objectr   r   r   r   r2   r3   )r   r#   r&   s      r'    test_replace_object_list_inplacer~      sh    	C)	8B
B
CJJueTJ*C2s!344477$$Q'''r)   c                      t        dg di      } t        | d      }| j                  ddgdd       t        j                  |t        | d            sJ | j
                  j                  d      sJ y )	Nr
   r   r   r   r   Trw   r   r`   )r#   r&   s     r'   +test_replace_list_multiple_elements_inplacer   	  sh    	C#	$B
B
CJJ1vq$J'C2s!344477$$Q'''r)   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                  ||       t        j                  t        | d      t        |d            sJ y )Nr
   r   r   rQ   )rA   ef)r   r   r   r    r"   r   r   r   )r#   r$   r9   df3s       r'   test_replace_list_noner     s    	C)	*BggiG
**cU$*
'C"g&	"c 2Ic34GHHH **_D*
1C#w'Ib#.	#s0CDDDr)   c                  8   t        dg di      } t        | d      }| j                         }| d d  }| j                  dgd d       | j                  j                  d      sJ t        j                  |t        | d            rJ t        j                  ||       y )Nr
   r   TrP   r   )
r   r   r   r   r2   r3   r   r   r    r"   )r#   r&   r$   r4   s       r'   #test_replace_list_none_inplace_refsr   !  s    	C)	*B
B
CggiGa5DJJuD$J/77$$Q'''Yr3%7888'4(r)   c                      t        g dg dd      } | d d  }| j                         }| j                  ddidd       t        j                  t        |d      t        | d            sJ d| j                  d<   t        j                  ||       y )	Nr   r	   r
   
   r   Trw   rp   	r   r   r   r   r   r   rq   r    r"   r[   s      r'   %test_replace_columnwise_no_op_inplacer   ,  s|    	3	4Ba5DggiGJJRy#tJ,IdC0)B2DEEEBGGDM$(r)   c                     t        g dg dd      } | j                         }| j                  ddid      }t        j                  t        |d      t        | d            sJ d|j                  d<   t        j                  | |       y )Nr   r	   r
   r   r   rp   r   rC   s      r'   test_replace_columnwise_no_opr   6  sq    	3	4BggiG
**c2Y
$CIc3/2s1CDDDCHHTN"g&r)   c                     t        dt        j                  dgdd      } | j                         }t	        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 # 1 sw Y   kxY w# 1 sw Y   ,xY w)Nr   r   r	   r
   r   Trw   )r   r   nanr   r    raises_chained_assignment_errorr   r"   )r#   r$   s     r'   test_replace_chained_assignmentr   ?  s    	!RVVQa0	1BggiG		+	+	- .
33-."g&		+	+	- 0
C5	!S$/0"g&. .0 0s   CCCCc                     t        g dg dd      } | j                         }| j                  ddgddg      }t        j                  t        |d      t        | d            s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   rp   r   r   r   )r#   r$   results      r'   test_replace_listliker   K  s    	3	4BggiGZZc
RH-FIfc2Ib#4FGGGFKK"b!ZZa2r(+F	"c 2Ifc4JKKK"g&r)   c                  ~   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                         }| j                  dd
gddgd	       t        j                  t        | d      |      rJ t        j                  ||       y )Nr   r	   r
   r   r   r   r   Trw   r   )r   r   r   r   r   r   r    r"   )r#   r&   r4   r$   s       r'   test_replace_listlike_inplacer   Z  s    	3	4B
B
CJJQx"b4J0Ib#.444a5DggiGJJQx"b4J0	"c 2C888$(r)   )'numpyr   pytestpandasr   r   pandas._testing_testingr    pandas.tests.copy_view.utilr   markparametrizer(   r5   r:   r<   rD   rH   rK   rY   r\   rb   rf   rh   rk   rn   rr   ry   r{   r~   r   r   r   r   r   r   r   r   r   r)   r'   <module>r      s      1 Q'"5Qx"-Qx"-	aV}%''*)
I
EE"
II' ) cUB'78( 9( cU|4* 5* U|4. 5. A3x0	) 1	)	(> GV#45) 6)
- 3+.( /((E ))'	''
)r)   