o
    Û­jê  ã                   @   sN   d Z ddlZddlZddlmZ ddlmZmZ ddl	m
Z G dd„ dƒZdS )zž
test_insert is specifically for the DataFrame.insert method; not to be
confused with tests with "insert" in their names that are really testing
__setitem__.
é    N)ÚPerformanceWarning)Ú	DataFrameÚIndexc                   @   sD   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dS )ÚTestDataFrameInsertc                 C   sX  t tj d¡ d¡t d¡g d¢d�}| dd|d ¡ t |j	t
g d	¢ƒ¡ tj|d |d d
d� | dd|d ¡ t |j	t
g d¢ƒ¡ tj|d |d d
d� tjtdd�� | dd|d ¡ W d   ƒ n1 snw   Y  d}tjt|d�� | dd|d ¡ W d   ƒ n1 s�w   Y  d|j	_| dd|d ¡ |j	jdksªJ ‚d S )Né   )é   é   r   )ÚcÚbÚa)ÚindexÚcolumnsr   Úfoor   )r   r	   r
   r   F)Úcheck_namesÚbarr	   )r   r	   r   r
   r   zalready exists©Úmatché   r
   zcannot insert c, already existsÚ	some_nameÚbaz)r   ÚnpÚrandomÚdefault_rngÚstandard_normalÚarangeÚinsertÚtmÚassert_index_equalr   r   Úassert_series_equalÚassert_almost_equalÚpytestÚraisesÚ
ValueErrorÚname©ÚselfÚdfÚmsg© r(   úd/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/frame/indexing/test_insert.pyÚtest_insert   s*   ýÿÿzTestDataFrameInsert.test_insertc                 C   s¬   t dddgiƒ}|ji d�}| ddddg¡ |ji d�}t ddgddggddgd�}t ||¡ | dd	d
dg¡ |ji d�}t g d¢g d¢gg d¢d�}t ||¡ d S )Nr
   çš™™™™™ñ?çš™™™™™@©r   r   r   r   r   r	   çÍÌÌÌÌÌô?çffffff@)r.   r   r+   )r/   r   r,   )r	   r   r
   )r   Úrenamer   r   Úassert_frame_equal)r%   r&   ÚresultÚexpectedr(   r(   r)   Útest_insert_column_bug_4032.   s   z/TestDataFrameInsert.test_insert_column_bug_4032c                 C   sz   t ƒ }|jddg d¢dd� |jddg d¢dd� |jddg d¢dd� t g d¢g d	¢g d
¢gg d¢d�}t ||¡ d S )Nr   ÚA)ÚgÚhÚiT)Úallow_duplicates)ÚdÚeÚf)r   r
   r	   )r   r:   r6   )r
   r;   r7   )r	   r<   r8   )r5   r5   r5   r-   )r   r   r   r1   )r%   r&   Úexpr(   r(   r)   Útest_insert_with_columns_dups?   s   ÿz1TestDataFrameInsert.test_insert_with_columns_dupsc                 C   sð   t tj d¡ d¡ƒ}|d }|rd }nt}t |¡� tdƒD ]}|d | ||d < q W d   ƒ n1 s7w   Y  |r[d|j	d< |j	d |d d ksPJ ‚|j	d dksYJ ‚d S d|j
d< |j	d |d d ksmJ ‚|j	d dksvJ ‚d S )	Nr   )é   r   r   éd   r   r   éc   )r   r   )r   r   r   r   r   r   r   Úassert_produces_warningÚrangeÚilocÚvalues)r%   Úusing_array_managerÚusing_copy_on_writer&   ÚserÚexpected_warningÚnr(   r(   r)   Útest_insert_item_cacheJ   s"   ÿÿ

z*TestDataFrameInsert.test_insert_item_cachec                 C   sb   t tj d¡jdddd�dd�}t d ¡� t g d¢¡|d	< W d   ƒ d S 1 s*w   Y  d S )
Nr   r   r@   )r   r@   )ÚsizeÚInt64)Údtype)r   r   r   r   )r   r   r   r   Úintegersr   rB   Úarray©r%   r&   r(   r(   r)   Útest_insert_EA_no_warninga   s   ÿ"ÿz-TestDataFrameInsert.test_insert_EA_no_warningc                 C   s\   t ddgddgdœƒ}d}tjt|d�� | dd|¡ W d   ƒ d S 1 s'w   Y  d S )	Nr   r   r   r?   )Úcol1Úcol2zJExpected a one-dimensional object, got a DataFrame with 2 columns instead.r   Únewcol)r   r    r!   r"   r   r$   r(   r(   r)   Útest_insert_framej   s   ÿ"ÿz%TestDataFrameInsert.test_insert_framec                 C   sF   t dddgiƒ}| t d¡dd¡ t |t ddgddgdœƒ¡ d S )Nr   r   r   r   r
   )r
   r   )r   r   r   Úint64r   r1   rQ   r(   r(   r)   Útest_insert_int64_loct   s   "z)TestDataFrameInsert.test_insert_int64_locN)
Ú__name__Ú
__module__Ú__qualname__r*   r4   r>   rK   rR   rV   rX   r(   r(   r(   r)   r      s    	
r   )Ú__doc__Únumpyr   r    Úpandas.errorsr   Úpandasr   r   Úpandas._testingÚ_testingr   r   r(   r(   r(   r)   Ú<module>   s    