a
    é´«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   s\  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 sÜ0    Y  d}tjt|d��" | dd|d ¡ W d   ƒ n1 �s"0    Y  d|j	_| dd|d ¡ |j	jdk�sXJ ‚d S )Né   )é   é   r   )ÚcÚbÚa)ÚindexÚcolumnsr   Úfoor   )r   r	   r
   r   F)Zcheck_namesÚbarr	   )r   r	   r   r
   r   zalready exists©Úmatché   r
   zcannot insert c, already existsZ	some_nameZbaz)r   ÚnpÚrandomÚdefault_rngÚstandard_normalZarangeÚinsertÚtmZassert_index_equalr   r   Zassert_series_equalZassert_almost_equalÚpytestÚraisesÚ
ValueErrorÚname©ÚselfÚdfÚmsg© r!   úf/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/frame/indexing/test_insert.pyÚtest_insert   s&    ý02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)Zallow_duplicates)ÚdÚeÚf)r   r
   r	   )r   r2   r/   )r
   r3   r0   )r	   r4   r1   )r.   r.   r.   r&   )r   r   r   r*   )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 |¡�2 tdƒD ]}|d | ||d < q@W d   ƒ n1 sn0    Y  |r´d|j	d< |j	d |d d ks J ‚|j	d dksêJ ‚n6d|j
d< |j	d |d d ksØJ ‚|j	d dksêJ ‚d S )	Nr   )é   r   r   éd   r   r   éc   )r   r   )r   r   r   r   r   r   r   Úassert_produces_warningÚrangeZilocÚvalues)r   Zusing_array_managerZusing_copy_on_writer   ZserZexpected_warningÚnr!   r!   r"   Útest_insert_item_cacheJ   s    4

z*TestDataFrameInsert.test_insert_item_cachec                 C   s`   t tj d¡jdddd�dd�}t d ¡�" t g d¢¡|d	< W d   ƒ n1 sR0    Y  d S )
Nr   r   r8   )r   r8   )ÚsizeZInt64)Zdtype)r   r   r   r   )r   r   r   r   Zintegersr   r:   Úarray©r   r   r!   r!   r"   Útest_insert_EA_no_warninga   s
    ÿz-TestDataFrameInsert.test_insert_EA_no_warningc                 C   sZ   t ddgddgdœƒ}d}tjt|d�� | dd|¡ W d   ƒ n1 sL0    Y  d S )	Nr   r   r   r7   )Zcol1Zcol2zJExpected a one-dimensional object, got a DataFrame with 2 columns instead.r   Z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   Zint64r   r*   rA   r!   r!   r"   Útest_insert_int64_loct   s    z)TestDataFrameInsert.test_insert_int64_locN)
Ú__name__Ú
__module__Ú__qualname__r#   r-   r6   r>   rB   rC   rD   r!   r!   r!   r"   r      s   	
r   )Ú__doc__Únumpyr   r   Zpandas.errorsr   Zpandasr   r   Zpandas._testingZ_testingr   r   r!   r!   r!   r"   Ú<module>   s   