o
    �¨Êh  ã                   @   sd   d dl Zd dlmZmZ d dlmZ d dlm	Z	 dd„ Z
dd„ Zdd	„ Zd
d„ Zdd„ Zdd„ ZdS )é    N)Ú	DataFrameÚoption_context)Ú	get_arrayc                 C   sÜ   t dg d¢iƒ}| ¡ }t|dƒ}|d d … }|r5t ¡ � |jddd� W d   ƒ n1 s/w   Y  n|jddd� | rat t|dƒ|¡rIJ ‚|j 	d¡sQJ ‚|j 	d¡sYJ ‚t 
||¡ d S t t|dƒ|¡slJ ‚d S ©NÚa©g      ø?é   é   r   T©ÚlowerÚinplacer   )r   Úcopyr   ÚtmÚassert_cow_warningÚclipÚnpÚshares_memoryÚ_mgrÚ_has_no_referenceÚassert_frame_equal)Úusing_copy_on_writeÚwarn_copy_on_writeÚdfÚdf_copyÚarr_aÚview© r   úR/var/www/html/env/lib/python3.10/site-packages/pandas/tests/copy_view/test_clip.pyÚtest_clip_inplace_reference   s    

ÿ€r   c                 C   sŠ   t dg d¢iƒ}| ¡ }t|dƒ}|d d … }|jddd� t t|dƒ|¡s)J ‚| rC|j d¡r3J ‚|j d¡r;J ‚t 	||¡ d S d S )Nr   r   r   Tr
   )
r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   Ú!test_clip_inplace_reference_no_op   s   
ýr   c                 C   sZ   t dg d¢iƒ}t|dƒ}|jddd� t t|dƒ|¡sJ ‚| r)|j d¡s+J ‚d S d S r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   Útest_clip_inplace.   s   
ÿr    c                 C   sd   t dg d¢iƒ}| ¡ }|jdd�}t t|dƒt|dƒ¡r J ‚| r*|j d¡s*J ‚t 	||¡ d S )Nr   r   r   ©r   r   )
r   r   r   r   r   r   r   r   r   r   )r   r   Údf_origÚdf2r   r   r   Ú	test_clip9   s   r$   c                 C   sp   t dg d¢iƒ}|jdd�}| r(|j d¡rJ ‚t t|dƒt|dƒ¡s&J ‚d S t t|dƒt|dƒ¡r6J ‚d S )Nr   r   r   r!   )r   r   r   r   r   r   r   )r   r   r#   r   r   r   Útest_clip_no_opE   s     r%   c              	   C   sæ  t g d¢ddœƒ}| ¡ }| rZt ¡ � |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 sMw   Y  t ||¡ d S tjtdd	�� |d jdddd� W d   ƒ n1 svw   Y  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 ¡�4 td
d ƒ� ||d dk jdddd� W d   ƒ n1 sÔw   Y  W d   ƒ d S W d   ƒ d S 1 sìw   Y  d S )N)é   é   r   r&   )r   Úbr   r   T)r   zinplace method)Úmatchzmode.chained_assignment)	r   r   r   Úraises_chained_assignment_errorr   r   Úassert_produces_warningÚFutureWarningr   )r   r   r"   r   r   r   Útest_clip_chained_inplaceP   s6   
ÿ
ÿÿÿ€ÿÿÿ"ÿr-   )Únumpyr   Úpandasr   r   Úpandas._testingÚ_testingr   Úpandas.tests.copy_view.utilr   r   r   r    r$   r%   r-   r   r   r   r   Ú<module>   s    