a
    PfB                  
   @   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f i |}| r|d |d k rhtt|dt|dshJ tt|dt|dsJ d|jd< | rtt|dt|drJ d	|d
 v rt|d	}d|jd< tt|d	|sJ t	|| d S )Nr         )r         )ZfoobarZ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_origZdf_replacedarr r&   \/var/www/ai-form-bot/venv/lib/python3.9/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 s`0    Y  | rt|t|drJ |j	dsJ t
|| nt|t|dsJ 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    
0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sVJ | }|jd	ddd
}t	|| tt|dt|drJ d S )Nr
   r)   r*   r+   r,   Tr-   r   z^b.*$r   r   r/   
r   r   r   r1   r2   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sVJ | }|jd	ddd
}t	|| | rtt|dt|dsJ ntt|dt|drJ d S )Nr
   r   r   z^a.$r,   Tr-   r   z^x.$r6   r7   r8   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}| rjtt|d	t|d	sLJ tt|d
t|d
rJ n8tt|d	t|d	rJ tt|d
t|d
rJ d|jd< t|| | rtt|d	t|d	rJ 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_blocka   s    
rB   c                 C   s   t g ddd}| }|jddd}| rftt|dt|dsHJ tt|dt|drJ n<|stt|dt|dsJ tt|dt|drJ | rd|jd	< t|| tt|dt|drJ d S )
Nr<   r>   r	   r=   r
   r   r         ?r   r   r@   )r"   Zusing_array_managerr#   r$   r9   r&   r&   r'   !test_replace_coerce_single_columny   s    
rE   c                 C   s   t g ddd}| }|jddd}| rftt|dt|dsHJ tt|dt|dsJ n8tt|dt|drJ tt|dt|drJ d	|jd
< t|| | rtt|dt|drJ d S )Nr<   r>   r	   Zxxxr=   r   r   r
   rC   rD   r@   rA   r&   r&   r'   #test_replace_to_replace_wrong_dtype   s    
rF   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 sX0    Y  t|jt|djs|J | r|j	
d
sJ | }tjt|d  |jdgdd}W d    n1 s0    Y  t|jt|djrJ t|| d S )Nr
   r   categoryZdtypeOThe behavior of Series\.replace \(and DataFrame.replace\) with CategoricalDtypematchr   Tr   r.   r   r   r   )r   r   r    assert_produces_warningFutureWarningr   r   r   codesr1   r2   r   r!   )r"   r#   r%   msgr$   r9   r&   r&   r'   test_replace_list_categorical   s    
0.rR   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 sb0    Y  | rtt|dj	t|dj	rJ t
|| n tt|dj	t|dj	rJ d S )
Nr
   r   rG   rH   rI   rJ   r   TrL   )r   r   r    rN   rO   r   r   r   r   rP   r!   )r"   r#   r4   r$   rQ   r&   r&   r'   *test_replace_list_inplace_refs_categorical   s    0rS   r=   c                 C   sX   t dg di}t|d}|jdddd tt|d|s@J | rT|jdsTJ d S )Nr
   r<   r=         /@Tr   r   r.   r   r   r   r   r   r   r1   r2   )r"   r   r#   arr_ar&   r&   r'   test_replace_inplace   s    
rX   c                 C   s   t dg di}t|d}|d d  }t|  |j|ddd W d    n1 sV0    Y  | rtt|d|rzJ |jdsJ |jdsJ ntt|d|sJ d S Nr
   r<   rT   TrU   r   )	r   r   r    r0   r   r   r   r1   r2   )r"   r   r3   r#   rW   r4   r&   r&   r'   test_replace_inplace_reference   s    
.rZ   r>   c                 C   st   t dg di}t|d}|d d  }|j|ddd tt|d|sLJ | rp|jdr`J |jdrpJ d S rY   rV   )r"   r   r#   rW   r4   r&   r&   r'   $test_replace_inplace_reference_no_op   s    
r[   valc           	      C   s   t dtg di}| }t|d}|d d  }d}|dkrBtnd }tj||d  |j||dd W d    n1 sz0    Y  | rt	t|dj
|j
rJ |jdsJ |jdsJ t|| nt	t|dj
|j
sJ d S )	Nr
   r   rI   r=   rJ   TrU   r   )r   r   r   r   rO   r    rN   r   r   r   rP   r1   r2   r!   )	r"   r\   r   r#   r$   rW   r4   rQ   warnr&   r&   r'   *test_replace_categorical_inplace_reference   s    
.r^   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 sf0    Y  tt|dj	|j	sJ | r|j
d	sJ t dt|d
dgi}t|| d S )Nr
   r   rI   r=   rJ   r   TrU   r   r   r   )r   r   r   rO   r    rN   r   r   r   rP   r1   r2   r!   )r"   r\   r#   rW   rQ   r]   expectedr&   r&   r'    test_replace_categorical_inplace  s    
.r`   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 sb0    Y  | r|jdsJ |jdsJ t	
t|djt|djrJ t|| t|dj}d	|jd
< t	
t|dj|sJ d S )Nr
   r   rI   r=   rJ   r   r   r   g       @r   r   )r   r   r   rO   r    rN   r   r1   r2   r   r   r   rP   r!   iloc)r"   r\   r#   r$   rQ   r]   r9   rW   r&   r&   r'   test_replace_categorical!  s    , 
rc   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    q1 sp0    Y  n||d dkddd | rtt|d|rJ |j	dsJ |j	dsJ t
|| ntt|d|sJ d S )Nr
   r<   g?r   Tr.   r   )r   r   r   getattrr    r0   r   r   r1   r2   r!   )r"   rd   r3   r#   r$   rW   r4   r&   r&   r'   test_masking_inplace8  s    


6ri   c                 C   s   t dddgi}|g g }| rNtt|dt|ds<J |jdrjJ ntt|dt|drjJ t|d}|g g  | rtt|d|sJ |jdrJ |jdrJ d S )Nr
   r   r   r   )r   r   r   r   r   r1   r2   )r"   r#   r9   rW   r&   r&   r'   test_replace_empty_listO  s    
rj   r   r?   c                 C   s~   t dg di}t|d}|jdg|dd | s8|d u rPt|t|dsfJ nt|t|drfJ | rz|jdszJ d S )Nr
   r   r   Trg   r   rV   )r"   r   r#   r%   r&   r&   r'    test_replace_object_list_inplacea  s    
rk   c                 C   st   t dg di}t|d}|jddgddd | rZt|t|dsHJ |jdspJ nt|t|dspJ d S )	Nr
   r   r   r   r   Trg   r   rV   )r"   r#   r%   r&   r&   r'   +test_replace_list_multiple_elements_inplaceo  s    
rl   c                 C   sT   t dg di}| }|jdgd d}t|| tt|dt|drPJ d S )Nr
   r   r   rM   )r   r   r   r    r!   r   r   r   rA   r&   r&   r'   test_replace_list_nonez  s
    rm   c                 C   s   t dg di}t|d}| }|d d  }t|" |jdgd dd W d    n1 s`0    Y  | r|jds~J t	|t|drJ t
|| nt	|t|dsJ d S )Nr
   r   TrL   r   )r   r   r   r    r0   r   r1   r2   r   r   r!   )r"   r3   r#   r%   r$   r4   r&   r&   r'   #test_replace_list_none_inplace_refs  s    
0rn   c                 C   sx   t g dg dd}|d d  }| }|jddiddd | rttt|dt|ds^J d|jd< t|| d S )	Nr   r	   r
   
   r   Trg   ra   	r   r   r   r   r   r   rb   r    r!   )r"   r#   r4   r$   r&   r&   r'   %test_replace_columnwise_no_op_inplace  s    
rq   c                 C   sh   t g dg dd}| }|ddid}| rNtt|dt|dsNJ d|jd< t|| d S )Nr   r	   r
   ro   r   ra   rp   rA   r&   r&   r'   test_replace_columnwise_no_op  s    
rr   c              	   C   s  t dtjdgdd}| }| rt $ |d jdddd W d    n1 sT0    Y  t|| t & |dg jdddd W d    n1 s0    Y  t|| n"td P t	dd & |dg jdddd W d    n1 s0    Y  W d    n1 s0    Y  td V t	dd * ||j
d	k jdddd W d    n1 sl0    Y  W d    n1 s0    Y  tjtd
d$ |d jdddd W d    n1 s0    Y  d S )Nr   r   r	   r
   r   Trg   zmode.chained_assignmentr   zinplace methodrJ   )r   r   nanr   r    Zraises_chained_assignment_errorr   r!   rN   r   r
   rO   )r"   r#   r$   r&   r&   r'   test_replace_chained_assignment  s"    
2
4TZrt   c                 C   s   t g dg dd}| }|ddgddg}| rTtt|dt|dspJ ntt|dt|drpJ d|jd< t|| |dd	gd
d
g}tt|dt|drJ t|| d S )Nr   r	            r
   r   ra   r   ro   rp   )r"   r#   r$   resultr&   r&   r'   test_replace_listlike  s    
ry   c                 C   s   t g dg dd}t|d}|jddgddgdd	 tt|d|sNJ |d d  }| }t|( |jdd
gddgdd	 W d    n1 s0    Y  | rtt|d|rJ t|| n"tt|d|sJ t|| d S )Nr   r	   r
   ru   r   ro   rw   Trg   r   )	r   r   r   r   r   r   r    r0   r!   )r"   r3   r#   r%   r4   r$   r&   r&   r'   test_replace_listlike_inplace  s    
6rz   )(numpyr   ZpytestZpandasr   r   r   Zpandas._testingZ_testingr    Zpandas.tests.copy_view.utilr   markZparametrizer(   r5   r:   r;   rB   rE   rF   rR   rS   rX   rZ   r[   r^   r`   rc   ri   rj   rk   rl   rm   rn   rq   rr   rt   ry   rz   r&   r&   r&   r'   <module>   s^   


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