o
    ҷh:                  
   @   s  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d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zejdddgg gd d! Zejdddggd"d# Zejdd
d$gd%d& Zejdddggejd'ddgd(d) Zejd'ddgd*d+ Zejd'ddgd,d- Zejd.d/d0gd1d2 Zd3d4 Zejd5d6dgd7d8 Zd9d: Zd;d< Z d=d> Z!d?d@ Z"dAdB Z#dCdD Z$dEdF Z%dGdH Z&dS )I    N)Categorical	DataFrame)	get_arrayreplace_kwargs      ab
to_replacevaluer	   r
   r   c                 C   s   t g dg dg dd}| }|jdi |}| rB|d |d k r4tt|dt|ds4J tt|dt|dsBJ d|jd< | rWtt|dt|drWJ d	|d
 v rrt|d	}d|jd< tt|d	|srJ t	|| 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arrr   r   V/var/www/html/venv/lib/python3.10/site-packages/pandas/tests/copy_view/test_replace.pytest_replace   s   


r*   c                 C   s   t dddgi}| }|d d  }t|d}|jddddd | r=t|t|dr-J |jds5J t	|| d S t|t|dsHJ 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(   r   r   r)   test_replace_regex_inplace_refs2   s   
r5   c                 C   s   t dddgi}t|d}|jddddd | r |jds J t|t|ds+J | }|jd	ddd
}t	|| tt|dt|drKJ d S )Nr	   r+   r,   r-   r.   Tr/   r   z^b.*$r   r   r1   
r   r   r   r2   r3   r   r    r   r"   r#   r$   r%   r(   r&   df2r   r   r)   test_replace_regex_inplace@   s   
 r:   c                 C   s   t dddgi}t|d}|jddddd | r |jds J t|t|ds+J | }|jd	ddd
}t	|| | rOtt|dt|dsMJ d S tt|dt|dr]J d S )Nr	   r   r   z^a.$r.   Tr/   r   z^x.$r6   r7   r8   r   r   r)    test_replace_regex_inplace_no_opN   s   
  r;   c                 C   s   t g ddddd}| }|jddd}| r5tt|d	t|d	s&J tt|d
t|d
r4J ntt|d	t|d	rCJ tt|d
t|d
rQJ d|jd< t|| | rltt|d	t|d	rnJ d S d S )N      ?r   r         Y@r   r   )r	   r
   r   dr=   g     K@r   r   r	   r   	r   r   r   r   r    r   r!   r"   r#   r$   r%   r&   r9   r   r   r)   (test_replace_mask_all_false_second_block_   s   
rB   c                 C   s   t g ddd}| }|jddd}| r3tt|dt|ds$J tt|dt|dr2J n|sQtt|dt|dsCJ tt|dt|drQJ | rld|jd	< t|| tt|dt|drnJ d S d S )
Nr<   r>   r   r=   r	   r   r
         ?r   r
   r@   )r$   using_array_managerr%   r&   r9   r   r   r)   !test_replace_coerce_single_columnw   s   
rF   c                 C   s   t g ddd}| }|jddd}| r3tt|dt|ds$J tt|dt|ds2J ntt|dt|drAJ tt|dt|drOJ d	|jd
< t|| | rjtt|dt|drlJ d S d S )Nr<   r>   r   xxxr=   r   r
   r	   rC   rD   r@   rA   r   r   r)   #test_replace_to_replace_wrong_dtype   s   
rH   c                 C   s   t dg didd}t|d}|jdgddd t|jt|djs%J | r/|jds/J | }|jd	gdd
}t|jt|djrHJ t	
|| d S )Nr	   r   categorydtyper   Tr   r0   r   r
   r   )r   r   r   r   r    codesr2   r3   r   r"   r#   r8   r   r   r)   test_replace_list_categorical   s   
rO   c                 C   s   t dg didd}|d d  }| }|jdgddd | r7tt|djt|djr/J t|| d S tt|djt|djrGJ d S )Nr	   r   rI   rJ   r   TrL   )	r   r   r   r   r    r   rN   r"   r#   r$   r%   r4   r&   r   r   r)   *test_replace_list_inplace_refs_categorical   s   rQ   r=   c                 C   s\   t dg di}t|d}|jdddd tt|d|s J | r*|jds,J d S d S )Nr	   r<   r=         /@Tr   r   r0   r   r   r   r   r   r    r2   r3   )r$   r   r%   arr_ar   r   r)   test_replace_inplace   s   
rV   c                 C   s   t dg di}t|d}|d d  }|j|ddd | r:tt|d|r(J |jds0J |jds8J d S tt|d|sEJ d S Nr	   r<   rR   TrS   r   rT   r$   r   r%   rU   r4   r   r   r)   test_replace_inplace_reference   s   
rY   r>   c                 C   sx   t dg di}t|d}|d d  }|j|ddd tt|d|s&J | r8|jdr0J |jdr:J d S d S rW   rT   rX   r   r   r)   $test_replace_inplace_reference_no_op   s   
rZ   valc                 C   s   t dtg di}| }t|d}|d d  }|j||dd | rHtt|dj|jr0J |j	ds8J |j	ds@J t
|| d S tt|dj|jsUJ d S )Nr	   r   TrS   r   )r   r   r   r   r   r   r    rN   r2   r3   r"   r#   )r$   r[   r   r%   r&   rU   r4   r   r   r)   *test_replace_categorical_inplace_reference   s   
r\   c                 C   s   t dtg di}t|d}|jd|dd tt|dj|js$J | r.|jds.J t dt|ddgi}t	
|| d S )	Nr	   r   r   TrS   r   r   r   )r   r   r   r   r   r    rN   r2   r3   r"   r#   )r$   r[   r%   rU   expectedr   r   r)    test_replace_categorical_inplace   s   
r^   c                 C   s   t dtg di}| }|jd|d}| r'|jdsJ |jds'J tt|dj	t|dj	r7J t
|| t|dj	}d|jd< tt|dj	|sTJ d S )Nr	   r   r   r   r   g       @r   r   )r   r   r   r   r2   r3   r   r    r   rN   r"   r#   iloc)r$   r[   r%   r&   r9   rU   r   r   r)   test_replace_categorical  s    
ra   methodwheremaskc                 C   s   t dg di}| }t|d}|d d  }t||}||d dkddd | rLtt|d|r4J |jds<J |jdsDJ t	|| d S tt|d|sWJ d S )Nr	   r<   g?r   Tr0   r   )
r   r   r   getattrr   r    r2   r3   r"   r#   )r$   rb   r%   r&   rU   r4   r   r   r)   test_masking_inplace  s   

rg   c                 C   s   t dddgi}|g g }| r'tt|dt|dsJ |jdr&J ntt|dt|dr5J t|d}|g g  | r]tt|d|sMJ |jdrUJ |jdr_J d S d S )Nr	   r   r   r   )r   r   r   r    r   r2   r3   )r$   r%   r9   rU   r   r   r)   test_replace_empty_list+  s   
rh   r   r?   c                 C   s   t dg di}t|d}|jdg|dd | s|d u r(t|t|ds'J nt|t|dr3J | r=|jds?J d S d S )Nr	   r   r   Tre   r   rT   )r$   r   r%   r(   r   r   r)    test_replace_object_list_inplace=  s   
ri   c                 C   sv   t dg di}t|d}|jddgddd | r.t|t|ds$J |jds,J d S t|t|ds9J d S )	Nr	   r   r   r   r   Tre   r   rT   )r$   r%   r(   r   r   r)   +test_replace_list_multiple_elements_inplaceK  s   
rj   c                 C   sT   t dg di}| }|jdgd d}t|| tt|dt|dr(J d S )Nr	   r   r
   rM   )r   r   r   r"   r#   r   r    r   rA   r   r   r)   test_replace_list_noneV  s
    rk   c                 C   s   t dg di}t|d}| }|d d  }|jdgd dd | r=|jds*J t|t|dr5J t	|| d S t|t|dsHJ d S )Nr	   r   TrL   r   )
r   r   r   r   r2   r3   r   r    r"   r#   )r$   r%   r(   r&   r4   r   r   r)   #test_replace_list_none_inplace_refs`  s   
rl   c                 C   s|   t g dg dd}|d d  }| }|jddiddd | r<tt|dt|ds/J d|jd< t|| d S d S )	Nr   r   r	   
   r   Tre   r_   	r   r   r   r   r    r   r`   r"   r#   rP   r   r   r)   %test_replace_columnwise_no_op_inplacen  s   
ro   c                 C   sh   t g dg dd}| }|ddid}| r'tt|dt|ds'J d|jd< t|| d S )Nr   r   r	   rm   r   r_   rn   rA   r   r   r)   test_replace_columnwise_no_opy  s   
rp   c                 C   s   t dtjdgdd}| }| r\t  |d jdddd W d    n1 s*w   Y  t|| t  |dg jdddd W d    n1 sOw   Y  t|| d S d S )Nr   r   r   r	   r   Tre   )r   r   nanr   r"   raises_chained_assignment_errorr   r#   )r$   r%   r&   r   r   r)   test_replace_chained_assignment  s   

rs   c                 C   s   t g dg dd}| }|ddgddg}| r*tt|dt|ds)J ntt|dt|dr8J d|jd< t|| |dd	gd
d
g}tt|dt|dr[J t|| d S )Nr   r            r	   r   r_   r   rm   rn   )r$   r%   r&   resultr   r   r)   test_replace_listlike  s   
rx   c                 C   s   t g dg dd}t|d}|jddgddgdd	 tt|d|s'J |d d  }| }|jdd
gddgdd	 | rRtt|d|rJJ t|| d S tt|d|s]J t|| d S )Nr   r   r	   rt   r   rm   rv   Tre   r   )r   r   r   r   r    r   r"   r#   )r$   r%   r(   r4   r&   r   r   r)   test_replace_listlike_inplace  s   
ry   )'numpyr   pytestpandasr   r   pandas._testing_testingr"   pandas.tests.copy_view.utilr   markparametrizer*   r5   r:   r;   rB   rF   rH   rO   rQ   rV   rY   rZ   r\   r^   ra   rg   rh   ri   rj   rk   rl   ro   rp   rs   rx   ry   r   r   r   r)   <module>   s`    










