
    Owg                     T    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y)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                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	TestDataFrameInsertc                    t        t        j                  j                  d      j	                  d      t        j
                  d      g d      }|j                  dd|d          t        j                  |j                  t        g d	             t        j                  |d   |d   d
       |j                  dd|d          t        j                  |j                  t        g d             t        j                  |d   |d   d
       t        j                  t        d      5  |j                  dd|d          d d d        d}t        j                  t        |      5  |j                  dd|d          d d d        d|j                  _        |j                  dd|d          |j                  j                   dk(  sJ y # 1 sw Y   xY w# 1 sw Y   XxY w)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      ^/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/frame/indexing/test_insert.pytest_insertzTestDataFrameInsert.test_insert   sv   II!!!$44V<))A,#
 			!UBsG$
bjj%0F*GH
r#w5	uE
		!UBsG$
bjj%0M*NO
r#w5	uE]]:-=> 	'IIabg&	' 0]]:S1 	'IIabg&	' &


		!UBsG$zz+---	' 	'	' 	's   )G%GGGc                    t        dddgi      }|j                  i       }|j                  ddddg       |j                  i       }t        ddgddggddg      }t        j                  ||       |j                  dd	d
dg       |j                  i       }t        g dg dgg d      }t        j                  ||       y )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
fh/
		!S3*%2&m];_U
fh/    c                     t               }|j                  ddg dd       |j                  ddg dd       |j                  ddg dd       t        g dg d	g d
gg d      }t        j                  ||       y )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:   r0   )r   r   r   r4   )r(   r)   exps      r+   test_insert_with_columns_dupsz1TestDataFrameInsert.test_insert_with_columns_dups?   sm    [
		!S/D	A
		!S/D	A
		!S/D	Ao?
 	b#&r8   c                    t        t        j                  j                  d      j	                  d            }|d   }|rd }nt
        }t        j                  |      5  t        d      D ]  }|d   |z  ||dz   <    	 d d d        |r>d|j                  d<   |j                  d   |d   d   k(  sJ |j                  d   dk7  sJ y d|j                  d<   |j                  d   |d   d   k(  sJ |j                  d   dk(  sJ y # 1 sw Y   xY w)	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_cacheJ   s   ryy,,Q/??GHe#  2''(89 	&3Z &qEAI1q5	&	& CHHQK774=BqE!H,,,774=B&&&CJJqM774=BqE!H,,,774=B&&&	& 	&s   DDc                    t        t        j                  j                  d      j	                  ddd      d      }t        j                  d       5  t        j                  g d      |d	<   d d d        y # 1 sw Y   y xY w)
Nr	   r   rF   )r   rF   )sizeInt64)dtype)r   r	   r   r   )r   r   r   r   integersr   rH   arrayr(   r)   s     r+   test_insert_EA_no_warningz-TestDataFrameInsert.test_insert_EA_no_warninga   sk     II!!!$--a8-DG
 ''- 	*hhy)BsG	* 	* 	*s   A66A?c                     t        ddgddgd      }d}t        j                  t        |      5  |j	                  dd|       d d d        y # 1 sw Y   y xY w)	Nr   r	   r   rE   )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_framej   sY    AA78 Y 	 ]]:S1 	'IIa2&	' 	' 	's   AAc                     t        dddgi      }|j                  t        j                  d      dd       t	        j
                  |t        ddgddgd             y )Nr   r   r	   r   r   )r   r   )r   r   r   int64r   r4   rX   s     r+   test_insert_int64_locz)TestDataFrameInsert.test_insert_int64_loct   sN    aV}%
		"((1+sA&
b)1a&1v,F"GHr8   N)
__name__
__module____qualname__r,   r7   rC   rQ   rY   r^   ra    r8   r+   r   r      s&    .60"	''.*'Ir8   r   )__doc__numpyr   r#   pandas.errorsr   pandasr   r   pandas._testing_testingr   r   re   r8   r+   <module>rl      s-   
   , fI fIr8   