o
    թZh.                     @   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)selfZarridxdfexpected r   `/var/www/html/lang_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 )
NZ20130101   zQE-NOV)Z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   Z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)   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'   r)   r,   r'   )r   r   r(   r   )r   r   r(   r   )r   r   r(   r   )r%   r%   r)   r,   r   new_col      @)r   r   r.   r(   r   )r   r   r.   r(   r   )r   r   r.   r(   r   )r%   r%   r-   r)   r,   zcannot insert      @T)Zallow_duplicates)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   pytestraises
ValueErrorinsertr   lenindexZ_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	         @r,   )r   r   r8   r   r;   )r   r   r9   r   r;   )r   r   r:   r   r;   )r%   r&   r%   r'   r,   r%   r   r8   r9   r   r:   r)   )r)   r   r)   r   r;   )r   r   r;   )r&   r'   r,   )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   r5   r
   Zedcbar5   rC   )r   rC   r	   r   )r   r   r   r   r   r5   pdIndexr   copyr   valuesr   r   )r   r   r5   Zthis_dfZexpected_serZ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	   r8   r   rD   r   )r   r   r   r   r   r   r   r   r6   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   rC   r	   r   r   zQCan only compare identically-labeled \(both index and columns\) DataFrame objectsr*   FT)	r   r   nanr0   r1   r2   Zreindex_liker   r   )r   Zdf1Zdf2msgZdf1rr<   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"   r?   r@   rE   )FFTF)r"   r?   r@   rA   )FTTT)onetwothreerP   rR   r   Zaxis)rP   rR   rP   )r   r   rF   concatr   r   )r   Z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   r>   )r   rC   CDErD   )r   rV   r   )r"   r@   r"   )r   r   arangereshaperH   locr   r   )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 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   )r?   r"   r"   )r?   r"   r^   r   r
   r   r   r6   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	   r?   r_   r6   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   r8   r9   r:   r%   r&   )r"   r"   r?   r?   rA   r@   r@   r	   ZABCDEFG)r   r   r
   r   r   r6   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"   r^   za.2za.3r_   r6   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   Zfloat64)ZdtypeZint64TrD   r%   Z20010101r   rS   )r   r   r   r   r   Zastyper5   r
   rF   	TimestamprT   r4   Z_mgrZblknosZblklocsr   iloc)	r   Zusing_array_managerZdf_floatZdf_intZdf_boolZ	df_objectZ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   r9   )r   r:   )r   r   rC   r	   r_   )r   valsrsZ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   ZAAAr   r*   r   r   )r   r   rY   rZ   Tr   r
   rf   rH   r   Zassert_produces_warningZassert_series_equalfloatstr)r   warnrN   r   r   r   r   r   test_set_value_by_index>  s    
z5TestDataFrameNonuniqueIndexes.test_set_value_by_indexN)__name__
__module____qualname__r   r#   r7   r=   rJ   rL   rO   rU   r]   r`   ra   rb   rc   rh   rm   rs   r   r   r   r   r      s"    
	W$r   )numpyr   r0   ZpandasrF   r   r   r   Zpandas._testingZ_testingr   r   r   r   r   r   <module>   s    