o
    �¨ÊhàB  ã                
   @   sü  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 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Úoption_context)Ú	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   úU/var/www/html/env/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ƒ}t |¡� |jddddd� W d   ƒ n1 s0w   Y  | rRt |t|dƒ¡rBJ ‚|j 	d¡sJJ ‚t 
||¡ d S t |t|dƒ¡s]J ‚d S )	Nr
   ÚaaaÚbbbú^a.*$ÚnewT©r   r   ÚinplaceÚregexr   )r   r   r   r#   Úassert_cow_warningr   r    r!   Ú_mgrÚ_has_no_referencer$   )r%   Úwarn_copy_on_writer&   r'   Úviewr)   r   r   r*   Útest_replace_regex_inplace_refs3   s   
ÿr8   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/   Tr0   r   z^b.*$©r   r   r2   ©
r   r   r   r4   r5   r    r!   r   r#   r$   ©r%   r&   r)   r'   Údf2r   r   r*   Útest_replace_regex_inplaceB   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/   Tr0   r   z^x.$r9   r:   r;   r   r   r*   Ú test_replace_regex_inplace_no_opP   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'   r<   r   r   r*   Ú(test_replace_mask_all_false_second_blocka   s   
ÿrE   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?   rA   r	   r@   r
   r   r   ç      à?©r   r   rC   )r%   Úusing_array_managerr&   r'   r<   r   r   r*   Ú!test_replace_coerce_single_columny   s   
ýrI   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?   rA   r	   Úxxxr@   r   r   r
   rF   rG   rC   rD   r   r   r*   Ú#test_replace_to_replace_wrong_dtype�   s   
ÿrK   c                 C   s   t dg d¢idd�}t|dƒ}d}tjt|d�� |jdgddd	� W d   ƒ n1 s,w   Y  t |jt|dƒj¡s>J ‚| rH|j	 
d
¡sHJ ‚| ¡ }tjt|d�� |jdgdd�}W d   ƒ n1 sfw   Y  t |jt|dƒj¡rxJ ‚t ||¡ d S )Nr
   r   Úcategory©ÚdtypeúOThe behavior of Series\.replace \(and DataFrame.replace\) with CategoricalDtype©Úmatchr   T©r   r1   r   r   ©r   )r   r   r#   Úassert_produces_warningÚFutureWarningr   r    r!   Úcodesr4   r5   r   r$   )r%   r&   r)   Úmsgr'   r<   r   r   r*   Útest_replace_list_categorical¢   s    
ÿÿÿrX   c                 C   sÄ   t dg d¢idd�}|d d … }| ¡ }d}tjt|d�� |jdgddd	� W d   ƒ n1 s1w   Y  | rPt t|dƒj	t|dƒj	¡rHJ ‚t 
||¡ d S t t|dƒj	t|dƒj	¡r`J ‚d S )
Nr
   r   rL   rM   rO   rP   r   TrR   )r   r   r#   rT   rU   r   r    r!   r   rV   r$   )r%   r&   r7   r'   rW   r   r   r*   Ú*test_replace_list_inplace_refs_categorical·   s    ÿÿÿÿrY   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   r1   r   ©r   r   r   r    r!   r4   r5   )r%   r   r&   Úarr_ar   r   r*   Útest_replace_inplaceÍ   s   
ÿr^   c                 C   s¸   t dg d¢iƒ}t|dƒ}|d d … }t |¡� |j|ddd� W d   ƒ n1 s+w   Y  | rOt t|dƒ|¡r=J ‚|j d¡sEJ ‚|j d¡sMJ ‚d S t t|dƒ|¡sZJ ‚d S ©Nr
   r?   rZ   Tr[   r   )	r   r   r#   r3   r   r    r!   r4   r5   )r%   r   r6   r&   r]   r7   r   r   r*   Útest_replace_inplace_referenceØ   s   
ÿr`   rA   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 r_   r\   )r%   r   r&   r]   r7   r   r   r*   Ú$test_replace_inplace_reference_no_opè   s   
þra   Úvalc           	      C   sð   t dtg d¢ƒiƒ}| ¡ }t|dƒ}|d d … }d}|dkr!tnd }tj||d�� |j||dd� W d   ƒ n1 s=w   Y  | rit 	t|dƒj
|j
¡rQJ ‚|j d¡sYJ ‚|j d¡saJ ‚t ||¡ d S t 	t|dƒj
|j
¡svJ ‚d S )	Nr
   r   rO   r@   rP   Tr[   r   )r   r   r   r   rU   r#   rT   r   r    r!   rV   r4   r5   r$   )	r%   rb   r   r&   r'   r]   r7   rW   Úwarnr   r   r*   Ú*test_replace_categorical_inplace_referenceõ   s    
ÿÿrd   c                 C   sÄ   t dtg d¢ƒiƒ}t|dƒ}d}|dkrtnd }tj||d�� |jd|dd� W d   ƒ n1 s3w   Y  t t|dƒj	|j	¡sEJ ‚| rO|j
 d	¡sOJ ‚t dt|d
dgƒiƒ}t ||¡ d S )Nr
   r   rO   r@   rP   r   Tr[   r   r   r   )r   r   r   rU   r#   rT   r   r    r!   rV   r4   r5   r$   )r%   rb   r&   r]   rW   rc   Úexpectedr   r   r*   Ú test_replace_categorical_inplace  s   
ÿÿrf   c                 C   sî   t dtg d¢ƒiƒ}| ¡ }d}|dkrtnd }tj||d�� |jd|d�}W d   ƒ n1 s1w   Y  | rH|j d¡s@J ‚|j d¡sHJ ‚t	 
t|dƒjt|dƒj¡rXJ ‚t ||¡ t|dƒj}d	|jd
< t	 
t|dƒj|¡suJ ‚d S )Nr
   r   rO   r@   rP   r   r   r   g       @©r   r   )r   r   r   rU   r#   rT   r   r4   r5   r    r!   r   rV   r$   Úiloc)r%   rb   r&   r'   rW   rc   r<   r]   r   r   r*   Útest_replace_categorical!  s    ÿÿ 
ri   ÚmethodÚwhereÚmaskc                 C   sö   t dg d¢iƒ}| ¡ }t|dƒ}|d d … }t||ƒ}|r>t ¡ � ||d dkddd� W d   ƒ n1 s8w   Y  n||d dkddd� | rnt t|dƒ|¡rVJ ‚|j 	d¡s^J ‚|j 	d¡sfJ ‚t 
||¡ d S t t|dƒ|¡syJ ‚d S )Nr
   r?   gš™™™™™ù?r   T©r1   r   )r   r   r   Úgetattrr#   r3   r    r!   r4   r5   r$   )r%   rj   r6   r&   r'   r]   r7   r   r   r*   Útest_masking_inplace8  s"   


ÿ€ro   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   r4   r5   )r%   r&   r<   r]   r   r   r*   Útest_replace_empty_listO  s   
ýrp   r   rB   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   Trm   r   r\   )r%   r   r&   r)   r   r   r*   Ú test_replace_object_list_inplacea  s   
ÿrq   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   Trm   r   r\   )r%   r&   r)   r   r   r*   Ú+test_replace_list_multiple_elements_inplaceo  s   
rr   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   rS   )r   r   r   r#   r$   r    r!   r   rD   r   r   r*   Útest_replace_list_nonez  s
    rs   c                 C   s¾   t dg d¢iƒ}t|dƒ}| ¡ }|d d … }t |¡� |jdgd dd� W d   ƒ n1 s0w   Y  | rR|j d¡s?J ‚t 	|t|dƒ¡rJJ ‚t 
||¡ d S t 	|t|dƒ¡s]J ‚d S )Nr
   r   TrR   r   )r   r   r   r#   r3   r   r4   r5   r    r!   r$   )r%   r6   r&   r)   r'   r7   r   r   r*   Ú#test_replace_list_none_inplace_refs„  s   
ÿrt   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   Trm   rg   ©	r   r   r   r    r!   r   rh   r#   r$   )r%   r&   r7   r'   r   r   r*   Ú%test_replace_columnwise_no_op_inplace“  s   
ýrw   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
   ru   r   rg   rv   rD   r   r   r*   Útest_replace_columnwise_no_opž  s   
rx   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 t d ¡�( t	dd ƒ� |dg jdddd� W d   ƒ n1 s}w   Y  W d   ƒ n1 sŒw   Y  t d ¡�* t	dd ƒ� ||j
d	k jdddd� W d   ƒ n1 s´w   Y  W d   ƒ n1 sÃw   Y  tjtd
d�� |d jdddd� W d   ƒ d S 1 såw   Y  d S )Nr   r   r	   r
   r   Trm   zmode.chained_assignmentr   zinplace methodrP   )r   r    Únanr   r#   Úraises_chained_assignment_errorr   r$   rT   r   r
   rU   )r%   r&   r'   r   r   r*   Útest_replace_chained_assignment¨  s4   
ÿ
ÿÿ€ÿÿ€ÿ"ÿr{   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   rg   r   ru   rv   )r%   r&   r'   Úresultr   r   r*   Útest_replace_listlikeÀ  s   
r€   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 … }| ¡ }t |¡� |jdd
gddgdd	� W d   ƒ n1 sMw   Y  | rgt t|dƒ|¡r_J ‚t ||¡ d S t t|dƒ|¡srJ ‚t ||¡ d S )Nr   r	   r
   r|   r   ru   r~   Trm   r   )	r   r   r   r    r!   r   r#   r3   r$   )r%   r6   r&   r)   r7   r'   r   r   r*   Útest_replace_listlike_inplaceÒ  s   
ÿr�   )(Únumpyr    ÚpytestÚpandasr   r   r   Úpandas._testingÚ_testingr#   Úpandas.tests.copy_view.utilr   ÚmarkÚparametrizer+   r8   r=   r>   rE   rI   rK   rX   rY   r^   r`   ra   rd   rf   ri   ro   rp   rq   rr   rs   rt   rw   rx   r{   r€   r�   r   r   r   r*   Ú<module>   s`    ûþ










