o
    _~#g                     @   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 sw   Y  d|j	_|dd|d  |j	jdksJ 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(   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/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    