
    bMh                     \    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          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                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	TestDataFrameInsertc                    t          t          j                            d                              d          t          j        d          g d          }|                    dd|d                    t          j        |j	        t          g d	                     t          j        |d         |d         d
           |                    dd|d                    t          j        |j	        t          g d                     t          j        |d         |d         d
           t          j        t          d          5  |                    dd|d                    d d d            n# 1 swxY w Y   d}t          j        t          |          5  |                    dd|d                    d d d            n# 1 swxY 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msgs      g/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/frame/indexing/test_insert.pytest_insertzTestDataFrameInsert.test_insert   sW   I!!!$$44V<<)A,,#OO
 
 
 			!UBsG$$$
bj%0F0F0F*G*GHHH
r#w5	uEEEE
		!UBsG$$$
bj%0M0M0M*N*NOOO
r#w5	uEEEE]:-=>>> 	' 	'IIabg&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 0]:S111 	' 	'IIabg&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' &

		!UBsG$$$z+------s$   E..E25E2G  GGc                    t          dddgi          }|                    i           }|                    ddddg           |                    i           }t          ddgddggddg          }t          j        ||           |                    dd	d
dg           |                    i           }t          g dg dgg d          }t          j        ||           d S )Nr   皙?皙@r   r   r   r   r	   r   ?ffffff@)r1   r   r.   )r2   r	   r/   )r   r   r   )r   renamer   r   assert_frame_equal)r(   r)   resultexpecteds       r+   test_insert_column_bug_4032z/TestDataFrameInsert.test_insert_column_bug_4032.   s    c3Z())YYrY""
		!S1a&!!!2&&q#hC1C:FFF
fh///
		!S3*%%%2&&mmm]]];___UUU
fh/////    c                 N   t                      }|                    ddg dd           |                    ddg dd           |                    ddg dd           t          g dg d	g d
gt          g dt                              }t	          j        ||           d S )Nr   A)ghiT)allow_duplicates)def)r   r   r   )r   r?   r;   )r   r@   r<   )r   rA   r=   )r:   r:   r:   dtyper0   )r   r   r   objectr   r4   )r(   r)   exps      r+   test_insert_with_columns_dupsz1TestDataFrameInsert.test_insert_with_columns_dups?   s    [[
		!S///D	AAA
		!S///D	AAA
		!S///D	AAA__ooo?///888
 
 
 	b#&&&&&r8   c                 D   t          t          j                            d                              d                    }|d         }|rd }nt
          }t          j        |          5  t          d          D ]}|d         |z  ||dz   <   	 d d d            n# 1 swxY w Y   |r>d|j	        d<   |j	        d         |d         d         k    sJ |j	        d         dk    sJ d S d|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rangeilocvalues)r(   using_array_managerusing_copy_on_writer)   serexpected_warningns          r+   test_insert_item_cachez*TestDataFrameInsert.test_insert_item_cacheK   s   ry,,Q//??GGHHe 	2#  2'(899 	& 	&3ZZ & &qEAI1q5		&	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&  	'CHQK74=BqE!H,,,,74=B&&&&&&CJqM74=BqE!H,,,,74=B&&&&&&s   ($BB Bc                    t          t          j                            d                              ddd          d          }t          j        d           5  t          j        g d          |d	<   d d d            d S # 1 swxY w Y   d S )
Nr	   r   rI   )r   rI   )sizeInt64rB   )r   r	   r   r   )r   r   r   r   integersr   rK   arrayr(   r)   s     r+   test_insert_EA_no_warningz-TestDataFrameInsert.test_insert_EA_no_warningb   s     I!!!$$--a8-DDG
 
 
 '-- 	* 	*hyyy))BsG	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   B  BBc                     t          ddgddgd          }d}t          j        t          |          5  |                    dd|           d d d            d S # 1 swxY w Y   d S )	Nr   r	   r   rH   )col1col2zJExpected a one-dimensional object, got a DataFrame with 2 columns instead.r   newcol)r   r#   r$   r%   r   r'   s      r+   test_insert_framez%TestDataFrameInsert.test_insert_framek   s    AA7788 Y 	 ]:S111 	' 	'IIa2&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's   AA Ac                     t          dddgi          }|                    t          j        d          dd           t	          j        |t          ddgddgd                     d S )Nr   r   r	   r   r   )r   r   )r   r   r   int64r   r4   rZ   s     r+   test_insert_int64_locz)TestDataFrameInsert.test_insert_int64_locu   sf    aV}%%
		"(1++sA&&&
b)1a&1v,F,F"G"GHHHHHr8   N)
__name__
__module____qualname__r,   r7   rF   rT   r[   r`   rc    r8   r+   r   r      s        . . .60 0 0"
' 
' 
'' ' '.* * *' ' 'I I I I Ir8   r   )__doc__numpyr   r#   pandas.errorsr   pandasr   r   pandas._testing_testingr   r   rg   r8   r+   <module>rn      s    
      , , , , , ,             gI gI gI gI gI gI gI gI gI gIr8   