o
    i-                     @   s`   d dl Zd dlZd dlmZ d dlZd dlmZmZm	Z	 d dl
mZ dddZG dd dZdS )	    N)is_platform_windows)	DataFrameSeries
date_rangec                 C   s&   |d ur
t | | | j t|  d S N)tmassert_frame_equaldtypesstr)resultexpected r   d/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/pandas/tests/frame/test_nonunique_indexes.pycheck   s   r   c                   @   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   sJ   t jdd}ttd}t|ddgd}||_t||d}t|| d S )N      Acolumns)nprandomrandnlistranger   r   r   )selfarridxdfr   r   r   r   .test_setattr_columns_vs_construct_with_columns   s   zLTestDataFrameNonuniqueIndexes.test_setattr_columns_vs_construct_with_columnsc                 C   sb   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Q-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   ;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 sKw   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&   r0   )r%   r%   r   r&   r0   )r   r%   r   r&   r0   )r-   r.   r-   r/   r1   zLength of valuematchr   AnotherColumnr%   r   foo2)r%   r%   r%   r&   r0   r   )r%   r%   r   r&   r0   r   )r   r%   r   r&   r0   r   )r-   r.   r-   r/   r1   r5   r!   )r%   r%   r%   r&   r0   r!   )r%   r%   r   r&   r0   r!   )r   r%   r   r&   r0   r!   r.   )r%   r%   r&   r0   r   )r%   r   r&   r0   r   )r   r   r&   r0   r   )r-   r-   r/   r1   r5   r/   )r%   r%   r0   r   )r%   r   r0   r   )r   r   r0   r   )r-   r-   r1   r5   r   new_col      @)r%   r%   r7   r0   r   )r%   r   r7   r0   r   )r   r   r7   r0   r   )r-   r-   r6   r1   r5   zcannot insert      @T)allow_duplicates)r%   r%   r8   r7   r0   r   )r%   r   r8   r7   r0   r   )r   r   r8   r7   r0   r   )r-   r-   r6   r6   r1   r5   r-   )r8   r7   r0   r   )r6   r6   r1   r5   )r   r   pytestraises
ValueErrorinsertr   lenindex_consolidater   r   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}t| 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         @r5   )r%   r%   rC   r&   rF   )r%   r%   rD   r&   rF   )r   r%   rE   r&   rF   )r-   r.   r-   r/   r5   r-   r%   rC   rD   r   rE   r1   )r1   r%   r1   r&   rF   )r%   r&   rF   )r.   r/   r5   )r   r   )r   r   r   r   r   r   r   test_dup_across_dtypes   s8   
"

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*   bcde)r   Br   r?   r   edcbar?   rM   )r   rM   r   r   )r   r   r   r   r?   pdIndexr   copyr   valuesr   )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   thatr   rC   rN   r%   )r   r   r   r   r   r   randrA   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   rM   r   r   r&   z6Can only compare identically-labeled DataFrame objectsr2   FT)	r   r   nanr:   r;   r<   reindex_liker   r   )r   df1df2msgdf1rr   r   r   r   r   test_dup_columns_comparisons   s   **

z:TestDataFrameNonuniqueIndexes.test_dup_columns_comparisonsc                 C   sz   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*   rI   rJ   rP   )FFTF)r*   rI   rJ   rK   )FTTT)onetwothreerc   re   r%   axis)rc   re   rc   )r   r   rQ   concatr   )r   dfboolr   r   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&   rH   )r   rM   CDErN   )r   rk   r   )r*   rJ   r*   )r   r   arangereshaperS   locr   )r   r   zr   r   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| t ddggddgd}t|| t g dgg dd}g d|_t| t g dgg dd}t|| d S )	Nr%   r   r*   r   a.1)r%   r   r   )rI   r*   r*   )rI   r*   rs   r   r   r
   r   r   rA   r   r   r   test_columns_with_dups   s   

z4TestDataFrameNonuniqueIndexes.test_columns_with_dupsc                 C   sN   t ddggddgd}ddg|_t| t ddggddgd}t|| d S )Nr%   r   r*   r   rI   rt   rA   r   r   r   test_columns_with_dup_index  s
   
z9TestDataFrameNonuniqueIndexes.test_columns_with_dup_indexc                 C   sN   t g dgg dd}td|_t| t g dgtdd}t|| d S )N)r%   r   rC   rD   rE   r-   r.   )r*   r*   rI   rI   rK   rJ   rJ   r   ABCDEFG)r   r   r   r
   r   r   rA   r   r   r   test_multi_dtype  s   
z.TestDataFrameNonuniqueIndexes.test_multi_dtypec                 C   sN   t g dgg dd}g d|_t| t g dgg dd}t|| d S )N)r%   r   r-   r.   r)   r   )r*   rs   za.2za.3rt   rA   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}|s]t
|jjt
|jksPJ t
|jjt
|jks]J tt
|jD ]}|jd d |f  qdd S )N
   r   float64)dtypeint64TrN   r-   20010101r%   rf   )r   r   r   r   astyper?   r   rQ   	Timestamprh   r>   _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%   rD   )r   rE   )r   r   rM   r   )r   r   r   r   )r   valsrsxpr   r   r   test_dup_columns_across_dtype;  s
   
z;TestDataFrameNonuniqueIndexes.test_dup_columns_across_dtypec                 C   s@  |rt  stn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   r2   r   r%   )r   DeprecationWarningr   r   rn   ro   Tr   r   r   r   assert_produces_warningassert_series_equalfloatr
   )r   r   warnr`   r   r   r   r   r   test_set_value_by_indexC  s*   
z5TestDataFrameNonuniqueIndexes.test_set_value_by_indexN)__name__
__module____qualname__r   r+   rB   rG   rX   r[   rb   rj   rr   ru   rv   rx   ry   r   r   r   r   r   r   r   r      s"    	W%r   r   )numpyr   r:   pandas.compatr   pandasrQ   r   r   r   pandas._testing_testingr   r   r   r   r   r   r   <module>   s    
