a
    Pª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)ÚselfZarrÚidxÚdfÚexpected© r   úb/var/www/ai-form-bot/venv/lib/python3.9/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 s˜0    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$0    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 ]J}| 	¡ }t
|j|jd}t ||d d	œg d¢d
}||d< t ||¡ q8d 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 s„0    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}|sÂt|jjƒt|jƒks¨J ‚t|jjƒt|jƒksÂJ ‚tt|jƒƒD ]}|jd d …|f  qÐd 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 sv0    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0    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    
02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
   