o
    de-                     @   sT   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
 dddZG dd dZdS )    N)	DataFrameSeries
date_rangec                 C   s&   |d ur
t | | | j t|  d S N)tmassert_frame_equaldtypesstr)resultexpected r   n/var/www/html/visualizacion-main/env/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%   r/   )r$   r$   r   r%   r/   )r   r$   r   r%   r/   )r,   r-   r,   r.   r0   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.   r0   r4   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   r4   r.   )r$   r$   r/   r   )r$   r   r/   r   )r   r   r/   r   )r,   r,   r0   r4   r   new_col      @)r$   r$   r6   r/   r   )r$   r   r6   r/   r   )r   r   r6   r/   r   )r,   r,   r5   r0   r4   zcannot insert      @T)allow_duplicates)r$   r$   r7   r6   r/   r   )r$   r   r7   r6   r/   r   )r   r   r7   r6   r/   r   )r,   r,   r5   r5   r0   r4   r,   )r7   r6   r/   r   )r5   r5   r0   r4   )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         @r4   )r$   r$   rB   r%   rE   )r$   r$   rC   r%   rE   )r   r$   rD   r%   rE   )r,   r-   r,   r.   r4   r,   r$   rB   rC   r   rD   r0   )r0   r$   r0   r%   rE   )r$   r%   rE   )r-   r.   r4   )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>   rL   )r   rL   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   rB   rM   r$   )r   r   r   r   r   r   randr@   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   rL   r   r   r%   zQCan only compare identically-labeled \(both index and columns\) DataFrame objectsr1   FT)	r   r   nanr9   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)   rH   rI   rO   )FFTF)r)   rH   rI   rJ   )FTTT)onetwothreerb   rd   r$   axis)rb   rd   rb   )r   r   rP   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%   rG   )r   rL   CDErM   )r   rj   r   )r)   rI   r)   )r   r   arangereshaperR   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   )rH   r)   r)   )rH   r)   rr   r   r   r	   r   r   r@   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   rH   rs   r@   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   rB   rC   rD   r,   r-   )r)   r)   rH   rH   rJ   rI   rI   r   ABCDEFG)r   r   r   r	   r   r   r@   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)   rr   za.2za.3rs   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}|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int64TrM   r,   20010101r$   re   )r   r   r   r   astyper>   r   rP   	Timestamprg   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$   rC   )r   rD   )r   r   rL   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   s2  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 s9w   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   r1   r   r$   )r   r   rm   rn   Tr   r   r   r   assert_produces_warningassert_series_equalfloatr	   )r   warnr_   r   r   r   r   r   test_set_value_by_indexC  s    
z5TestDataFrameNonuniqueIndexes.test_set_value_by_indexN)__name__
__module____qualname__r   r*   rA   rF   rW   rZ   ra   ri   rq   rt   ru   rw   rx   r   r   r   r   r   r   r   r      s"    
	W%r   r   )numpyr   r9   pandasrP   r   r   r   pandas._testing_testingr   r   r   r   r   r   r   <module>   s    
