o
    £D®f¡.  ã                   @   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   úb/home/ubuntu/webapp/venv/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 s‰w   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    