U
    >vfÓ1  ã                
   @   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S )?é    N)ÚCategoricalÚ	DataFrame)Ú	get_arrayÚreplace_kwargsé   é   ©ÚaÚbéÿÿÿÿ©Ú
to_replaceÚvaluer	   r
   r   c                 C   sö   t dddgdddgddd	gd
œƒ}| ¡ }|jf |Ž}| r†|d |d k ¡ rjt t|dƒt|dƒ¡sjt‚t t|dƒt|dƒ¡s†t‚d|jd< | r°t t|dƒt|dƒ¡r°t‚d|d kræt|dƒ}d|jd< t t|dƒ|¡sæt‚t	 
||¡ d S )Nr   é   é   r   é   é   ZfooÚbarZbaz)r	   r
   Úcr
   r   r   ©r   r   r	   r   éd   )r   r	   )r   ÚcopyÚreplaceÚallÚnpÚshares_memoryr   ÚAssertionErrorÚlocÚtmÚassert_frame_equal)Úusing_copy_on_writer   ÚdfÚdf_origZdf_replacedÚarr© r$   úG/tmp/pip-unpacked-wheel-vdrwu74i/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 | rxt |t|dƒ¡rZt‚|j d¡sjt‚t	 
||¡ nt |t|dƒ¡sŽt‚d S )	Nr	   ÚaaaÚbbbú^a.*$ÚnewT©r   r   ÚinplaceÚregexr   )r   r   r   r   r   r   r   Ú_mgrÚ_has_no_referencer   r   )r    r!   r"   Úviewr#   r$   r$   r%   Útest_replace_regex_inplace_refs2   s    
r1   c                 C   sš   t dddgiƒ}t|dƒ}|jddddd | r@|j d¡s@t‚t |t|dƒ¡sVt‚| ¡ }|jd	ddd
}t	 
||¡ t t|dƒt|dƒ¡r–t‚d S )Nr	   r'   r(   r)   r*   Tr+   r   z^b.*$©r   r   r-   ©r   r   r   r.   r/   r   r   r   r   r   r   ©r    r!   r#   r"   Údf2r$   r$   r%   Útest_replace_regex_inplace@   s    
r6   c                 C   s¼   t dddgiƒ}t|dƒ}|jddddd | r@|j d¡s@t‚t |t|dƒ¡sVt‚| ¡ }|jd	ddd
}t	 
||¡ | rœt t|dƒt|dƒ¡s¸t‚nt t|dƒt|dƒ¡r¸t‚d S )Nr	   r   r   z^a.$r*   Tr+   r   z^x.$r2   r3   r4   r$   r$   r%   Ú test_replace_regex_inplace_no_opN   s    
r7   c                 C   sÞ   t dddgddddœƒ}| ¡ }|jddd}| rlt t|d	ƒt|d	ƒ¡sNt‚t t|d
ƒt|d
ƒ¡r¤t‚n8t t|d	ƒt|d	ƒ¡rˆt‚t t|d
ƒt|d
ƒ¡r¤t‚d|jd< t 	||¡ | rÚt t|d	ƒt|d	ƒ¡rÚt‚d S )Nç      ø?r   r   ç      Y@r   )r	   r
   r   Údg     ÀK@r   r   r	   r   ©
r   r   r   r   r   r   r   r   r   r   ©r    r!   r"   r5   r$   r$   r%   Ú(test_replace_mask_all_false_second_block_   s    
r=   c                 C   sÞ   t dddgddœƒ}| ¡ }|jddd}| rht t|dƒt|dƒ¡sJt‚t t|dƒt|dƒ¡r¤t‚n<|s¤t t|dƒt|dƒ¡sˆt‚t t|dƒt|dƒ¡r¤t‚| rÚd	|jd
< t 	||¡ t t|dƒt|dƒ¡rÚt‚d S )Nr8   r   r   r9   r   r	   r   r
   ç      à?©r   r
   r;   )r    Zusing_array_managerr!   r"   r5   r$   r$   r%   Ú!test_replace_coerce_single_columnw   s    
r@   c                 C   sÚ   t dddgddœƒ}| ¡ }|jddd}| rht t|dƒt|dƒ¡sJt‚t t|d	ƒt|d	ƒ¡s t‚n8t t|dƒt|dƒ¡r„t‚t t|d	ƒt|d	ƒ¡r t‚d
|jd< t 	||¡ | rÖt t|dƒt|dƒ¡rÖt‚d S )Nr8   r   r   r9   r   Zxxxr   r
   r	   r>   r?   r;   r<   r$   r$   r%   Ú#test_replace_to_replace_wrong_dtype‹   s    
rA   c                 C   s¢   t ddddgidd}t|dƒ}|jdgddd t |jt|dƒj¡sLt‚| r`|j d¡s`t‚| 	¡ }|jdgdd	}t |jt|dƒj¡r’t‚t
 ||¡ d S )
Nr	   r
   r   Úcategory©ZdtypeT©r   r,   r   ©r   )r   r   r   r   r   Úcodesr   r.   r/   r   r   r   r4   r$   r$   r%   Útest_replace_list_categorical    s    
rG   c                 C   s’   t ddddgidd}|d d … }| ¡ }|jdgddd | rnt t|dƒjt|dƒj¡r`t‚t 	||¡ n t t|dƒjt|dƒj¡rŽt‚d S )Nr	   r
   r   rB   rC   TrD   )
r   r   r   r   r   r   rF   r   r   r   )r    r!   r0   r"   r$   r$   r%   Ú*test_replace_list_inplace_refs_categorical¯   s    
 
ÿ
 
ÿrH   r8   c                 C   sZ   t ddddgiƒ}t|dƒ}|jdddd t t|dƒ|¡sBt‚| rV|j d¡sVt‚d S ©	Nr	   r8   r   r   g      /@T©r   r   r,   r   ©r   r   r   r   r   r   r.   r/   )r    r   r!   Úarr_ar$   r$   r%   Útest_replace_inplaceÀ   s    
rM   c                 C   sŽ   t ddddgiƒ}t|dƒ}|d d … }|j|ddd | rtt t|dƒ|¡rRt‚|j d¡sbt‚|j d¡sŠt‚nt t|dƒ|¡sŠt‚d S rI   rK   ©r    r   r!   rL   r0   r$   r$   r%   Útest_replace_inplace_referenceË   s    
rO   r9   c                 C   sv   t ddddgiƒ}t|dƒ}|d d … }|j|ddd t t|dƒ|¡sNt‚| rr|j d¡rbt‚|j d¡rrt‚d S rI   rK   rN   r$   r$   r%   Ú$test_replace_inplace_reference_no_opÚ   s    
rP   Úvalc                 C   s®   t dtdddgƒiƒ}| ¡ }t|dƒ}|d d … }|j||dd | rt t|dƒj|j¡rbt‚|j	 
d¡srt‚|j	 
d¡s‚t‚t ||¡ nt t|dƒj|j¡sªt‚d S ©Nr	   r   r   r   TrJ   r   )r   r   r   r   r   r   r   rF   r   r.   r/   r   r   )r    rQ   r   r!   r"   rL   r0   r$   r$   r%   Ú*test_replace_categorical_inplace_referenceç   s    
rS   c                 C   s„   t dtdddgƒiƒ}t|dƒ}|jd|dd t t|dƒj|j¡sJt‚| r^|j 	d¡s^t‚t dt|ddgƒiƒ}t
 ||¡ d S rR   )r   r   r   r   r   r   rF   r   r.   r/   r   r   )r    rQ   r!   rL   Úexpectedr$   r$   r%   Ú test_replace_categorical_inplaceù   s    
rU   c                 C   s®   t dtdddgƒiƒ}| ¡ }|jd|d}| rP|j d¡s@t‚|j d¡sPt‚t t	|dƒj
t	|dƒj
¡rpt‚t ||¡ t	|dƒj
}d|jd< t t	|dƒj
|¡sªt‚d S )	Nr	   r   r   r   r   r   g       @)r   r   )r   r   r   r   r.   r/   r   r   r   r   rF   r   r   Ziloc)r    rQ   r!   r"   r5   rL   r$   r$   r%   Útest_replace_categorical  s     
rV   ÚmethodÚwhereÚmaskc                 C   s²   t ddddgiƒ}| ¡ }t|dƒ}|d d … }t||ƒ}||d dkddd | r˜t t|dƒ|¡rjt‚|j d	¡szt‚|j d	¡sŠt‚t	 
||¡ nt t|dƒ|¡s®t‚d S )
Nr	   r8   r   r   gš™™™™™ù?r   T©r,   r   )r   r   r   Úgetattrr   r   r   r.   r/   r   r   )r    rW   r!   r"   rL   r0   r$   r$   r%   Útest_masking_inplace  s    

r\   c                 C   s¾   t dddgiƒ}| g g ¡}| rNt t|dƒt|dƒ¡s<t‚|j d¡rjt‚nt t|dƒt|dƒ¡rjt‚t|dƒ}| g g ¡ | rºt t|dƒ|¡sšt‚|j d¡rªt‚|j d¡rºt‚d S )Nr	   r   r   r   )r   r   r   r   r   r   r.   r/   )r    r!   r5   rL   r$   r$   r%   Útest_replace_empty_list+  s    
r]   r   r:   c                 C   s€   t ddddgiƒ}t|dƒ}|jdg|dd | s:|d krRt |t|dƒ¡sht‚nt |t|dƒ¡rht‚| r||j d¡s|t‚d S )Nr	   r
   r   TrZ   r   rK   )r    r   r!   r#   r$   r$   r%   Ú test_replace_object_list_inplace=  s    
r^   c                 C   sv   t ddddgiƒ}t|dƒ}|jddgddd | r\t |t|dƒ¡rJt‚|j d¡srt‚nt |t|dƒ¡srt‚d S )	Nr	   r   r   r   r   TrZ   r   rK   )r    r!   r#   r$   r$   r%   Ú+test_replace_list_multiple_elements_inplaceK  s    
r_   c                 C   sV   t ddddgiƒ}| ¡ }|jdgd d}t ||¡ t t|dƒt|dƒ¡rRt‚d S )Nr	   r
   r   rE   )	r   r   r   r   r   r   r   r   r   r<   r$   r$   r%   Útest_replace_list_noneW  s
    r`   c                 C   s”   t ddddgiƒ}t|dƒ}| ¡ }|d d … }|jdgd dd | rz|j d¡sVt‚t |t|dƒ¡rlt‚t	 
||¡ nt |t|dƒ¡st‚d S )Nr	   r
   r   TrD   r   )r   r   r   r   r.   r/   r   r   r   r   r   )r    r!   r#   r"   r0   r$   r$   r%   Ú#test_replace_list_none_inplace_refsa  s    
ra   )"Znumpyr   ZpytestZpandasr   r   Zpandas._testingZ_testingr   Zpandas.tests.copy_view.utilr   ÚmarkZparametrizer&   r1   r6   r7   r=   r@   rA   rG   rH   rM   rO   rP   rS   rU   rV   r\   r]   r^   r_   r`   ra   r$   r$   r$   r%   Ú<module>   sT   ûþ


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