o
    _~#g.                     @   sJ   d dl Zd dlZd dlZd dlmZmZmZ d dlm	Z
 G dd dZdS )    N)	DataFrameSeries
date_rangec                   @   s   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d Z
d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 )"TestDataFrameNonuniqueIndexesc                 C   sP   t jdd}ttd}t|ddgd}||_t||d}t	|| d S )N   )   r   Acolumns)
nprandomdefault_rngstandard_normallistranger   r
   tmassert_frame_equal)selfarridxdfexpected r   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/frame/test_nonunique_indexes.py.test_setattr_columns_vs_construct_with_columns   s   zLTestDataFrameNonuniqueIndexes.test_setattr_columns_vs_construct_with_columnsc                 C   sd   t dddd}tg dg dg dgg dd	}||_tg dg dg dg|d	}t|| d S )
N20130101   zQE-NOV)periodsfreq   r    r       r    r    r   r!   r   r    r   r!   ar%   r%   r%   r	   )r   r   r
   r   r   )r   r   r   r   r   r   r   ;test_setattr_columns_vs_construct_with_columns_datetimeindx   s   zYTestDataFrameNonuniqueIndexes.test_setattr_columns_vs_construct_with_columns_datetimeindxc                 C   s  t g dg dg dgg dd}d|d< t g dg d	g d
gg dd}t|| tjtdd |ddtt|j	d  W d    n1 sLw   Y  d|d< t g dg dg dgg dd}t|| d|d< t g dg dg dgg dd}t|| d|d< |d= t g dg dg dgg dd}t|| |d = t g d!g d"g d#gg d$d}t|| |
 }t g d!g d"g d#gg d$d}t|| |d%d&d' t g d(g d)g d*gg d+d}t|| tjtd,d |d%d&d- W d    n	1 sw   Y  |jd%d&d-d.d/ t g d0g d1g d2gg d3d}t|| |d4= t g d5g d5g d5gg d6d}t|| d S )7Nr   r"   r#   foobarr(   hellor	   bahstring)r    r    r    r!   r+   )r    r    r   r!   r+   )r   r    r   r!   r+   )r(   r)   r(   r*   r,   zLength of valuematchr   AnotherColumnr    r   foo2)r    r    r    r!   r+   r   )r    r    r   r!   r+   r   )r   r    r   r!   r+   r   )r(   r)   r(   r*   r,   r0   r   )r    r    r    r!   r+   r   )r    r    r   r!   r+   r   )r   r    r   r!   r+   r   r)   )r    r    r!   r+   r   )r    r   r!   r+   r   )r   r   r!   r+   r   )r(   r(   r*   r,   r0   r*   )r    r    r+   r   )r    r   r+   r   )r   r   r+   r   )r(   r(   r,   r0   r   new_col      @)r    r    r2   r+   r   )r    r   r2   r+   r   )r   r   r2   r+   r   )r(   r(   r1   r,   r0   zcannot insert      @T)allow_duplicates)r    r    r3   r2   r+   r   )r    r   r3   r2   r+   r   )r   r   r3   r2   r+   r   )r(   r(   r1   r1   r,   r0   r(   )r3   r2   r+   r   )r1   r1   r,   r0   )r   r   r   pytestraises
ValueErrorinsertr   lenindex_consolidater   r   r   r   r   r   "test_insert_with_duplicate_columns!   s   z@TestDataFrameNonuniqueIndexes.test_insert_with_duplicate_columnsc                 C   s   t g dg dg dgg dd}d|d< t g dg d	g d
gg dd}t|| |d }t ddgddgddggddgd}t|| d|d< t g dg dg dgg dd}t|| |d= t g dg dg dgg dd}t|| d S )N)r    r          ?r!   )r    r           @r!   )r   r          @r!   r'   r	         @r0   )r    r    r>   r!   rA   )r    r    r?   r!   rA   )r   r    r@   r!   rA   )r(   r)   r(   r*   r0   r(   r    r>   r?   r   r@   r,   )r,   r    r,   r!   rA   )r    r!   rA   )r)   r*   r0   )r   r   r   )r   r   r   resultr   r   r   test_dup_across_dtypesx   s6   "z4TestDataFrameNonuniqueIndexes.test_dup_across_dtypesc                 C   s   t tjddg dg dd}|jttdfD ]%}|	 }t
|j|jd}t ||d d	g dd
}||d< t|| qd S )Nr   )r!   r   r%   bcde)r   Br   r:   r
   edcbar:   rI   )r   rI   r	   r   )r   r   r   r   r   r:   pdIndexr   copyr   valuesr   r   )r   r   r:   this_dfexpected_serexpected_dfr   r   r   test_column_dups_indexes   s   z6TestDataFrameNonuniqueIndexes.test_column_dups_indexesc                 C   s   t tjddddgd}t dtdddgd}d|d< t|| t tjddddgd}t dtdddgd}d|d< t|| d S )	Nr   )r!   r   thatr	   r>   r!   rJ   r    )r   r   r   r   r   r   r   r   r<   r   r   r   +test_changing_dtypes_with_duplicate_columns   s   zITestDataFrameNonuniqueIndexes.test_changing_dtypes_with_duplicate_columnsc                 C   s   t ddgdtjgddgddggddgd}t ddgddgdtjgdd	ggddgd}d
}tjt|d ||k W d    n1 sBw   Y  ||}||k}t ddgddgddgddggddgd}t|| d S )Nr    r   r   r   r   rI   r	   r   r!   zQCan only compare identically-labeled \(both index and columns\) DataFrame objectsr-   FT)	r   r   nanr5   r6   r7   reindex_liker   r   )r   df1df2msgdf1rrB   r   r   r   r   test_dup_columns_comparisons   s   **

z:TestDataFrameNonuniqueIndexes.test_dup_columns_comparisonsc                 C   s|   t tg dg ddtg dg ddtg dg ddd}tj|d |d	 |d gd
d}|g d }t|| d S )N)TTF)r%   rE   rF   rL   )FFTF)r%   rE   rF   rG   )FTTT)onetwothreer^   r`   r    axis)r^   r`   r^   )r   r   rM   concatr   r   )r   dfboolr   rB   r   r   r   test_mixed_column_selection   s    z9TestDataFrameNonuniqueIndexes.test_mixed_column_selectionc                 C   s   t tdddg dg dd}|g d  }|jg d }t tdddg dg dd}|g d }|jg d }t|| d S )Ng      9@r!   rD   )r   rI   CDErJ   )r   rf   r   )r%   rF   r%   )r   r   arangereshaperO   locr   r   )r   r   zr   rB   r   r   r   test_multi_axis_dups   s   z2TestDataFrameNonuniqueIndexes.test_multi_axis_dupsc                 C   s   t ddggddgd}ddg|_t ddggddgd}t|| t g dgg dd}g d|_t g dgg dd}t|| d S )	Nr    r   r%   r	   a.1)r    r   r   )rE   r%   r%   )rE   r%   rn   r   r
   r   r   r<   r   r   r   test_columns_with_dups   s   

z4TestDataFrameNonuniqueIndexes.test_columns_with_dupsc                 C   sF   t ddggddgd}ddg|_t ddggddgd}t|| d S )Nr    r   r%   r	   rE   ro   r<   r   r   r   test_columns_with_dup_index  s   
z9TestDataFrameNonuniqueIndexes.test_columns_with_dup_indexc                 C   sF   t g dgg dd}td|_t g dgtdd}t|| d S )N)r    r   r>   r?   r@   r(   r)   )r%   r%   rE   rE   rG   rF   rF   r	   ABCDEFG)r   r   r
   r   r   r<   r   r   r   test_multi_dtype  s   
z.TestDataFrameNonuniqueIndexes.test_multi_dtypec                 C   sF   t g dgg dd}g d|_t g dgg dd}t|| d S )N)r    r   r(   r)   r$   r	   )r%   rn   za.2za.3ro   r<   r   r   r   test_multi_dtype2  s   
z/TestDataFrameNonuniqueIndexes.test_multi_dtype2c           	      C   s   t tjdddd}t tjddd}t d|j|jd}t d|j|jd}t t	d	|j|jd}tj
|||||gd
d}|sat|jjt|jksTJ t|jjt|jksaJ tt|jD ]}|jd d |f  qhd S )Nr   )
   r   float64)dtypeint64TrJ   r(   20010101r    ra   )r   r   r   r   r   astyper:   r
   rM   	Timestamprc   r9   _mgrblknosblklocsr   iloc)	r   using_array_managerdf_floatdf_intdf_bool	df_objectdf_dtr   ir   r   r   test_dups_across_blocks  s$   z5TestDataFrameNonuniqueIndexes.test_dups_across_blocksc                 C   sB   g dg dg}t |g dd}t |}g d|_t|| d S )N)r    r?   )r   r@   )r   r   rI   r	   ro   )r   valsrsxpr   r   r   test_dup_columns_across_dtype6  s
   
z;TestDataFrameNonuniqueIndexes.test_dup_columns_across_dtypec                 C   s:  d }d}t tdddj}td|_|jd d df  }t	j
||d d|jd d df< W d    n1 s;w   Y  t	|jd d df | t tdddj}dtdtdg|_|jd d df  }t	j
||d d|jd d df< W d    n1 sw   Y  t	|jd d df | d S )	Nz&will attempt to set the values inplace	   r   AAAr   r-   r   r    )r   r   ri   rj   Tr   r
   r   rO   r   assert_produces_warningassert_series_equalfloatstr)r   warnr[   r   r   r   r   r   test_set_value_by_index>  s    
z5TestDataFrameNonuniqueIndexes.test_set_value_by_indexN)__name__
__module____qualname__r   r&   r=   rC   rT   rV   r]   re   rm   rp   rq   rs   rt   r   r   r   r   r   r   r   r      s"    
	W$r   )numpyr   r5   pandasrM   r   r   r   pandas._testing_testingr   r   r   r   r   r   <module>   s    