a
    oÝEbn,  ã                   @   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_equalZdtypesÚstr)ÚresultÚexpected© r
   úi/home/ja/django-apps/lartica_env/lib/python3.9/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   )ÚselfZ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 )
NZ20130101é   zQ-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   Ú;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   r0   r*   r   )r   r   r0   r*   r   )r   r   r0   r*   r   )r'   r'   r/   r+   r.   zcannot insertç      @T)Zallow_duplicates)r   r   r1   r0   r*   r   )r   r   r1   r0   r*   r   )r   r   r1   r0   r*   r   )r'   r'   r/   r/   r+   r.   r'   )r1   r0   r*   r   )r/   r/   r+   r.   )r   r   ÚpytestÚraisesÚ
ValueErrorÚinsertr   ÚlenÚindexZ_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   ç      @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   Ú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 ]J}| ¡ }t	|j
|jd�}t ||d |dœg d¢d	�}||d
< t||ƒ q4d S )Nr    r   ©r$   ÚbÚcÚdÚe)r   ÚBr   ©r7   r   Zedcba©r7   rD   r   r   )r   r   r   r   r7   ÚpdÚIndexr   Úcopyr   Úvaluesr   )r   r   r7   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   Úthatr   r:   rE   r   )r   r   r   r   r   r   Zrandr8   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   rD   r   r   r    z6Can only compare identically-labeled DataFrame objectsr,   FT)	r   r   Únanr2   r3   r4   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   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$   r@   rA   rF   )FFTF)r$   r@   rA   rB   )FTTT)ÚoneÚtwoÚthreerQ   rS   r   ©Zaxis)rQ   rS   rQ   )r   r   rG   Úconcatr   )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   rD   ÚCÚDÚErE   )r   rW   r   )r$   rA   r$   )r   r   ÚarangeÚreshaperI   Ú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   )r@   r$   r$   )r@   r$   r_   ©r   r   r   r   r   r8   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   r@   r`   r8   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   r:   r;   r<   r'   r(   )r$   r$   r@   r@   rB   rA   rA   r   ZABCDEFG)r   r   r   r   r   r   r8   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$   r_   za.2za.3r`   r8   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 )Né
   r   Zfloat64)ZdtypeZint64TrE   r'   Z20010101r   rT   )r   r   r   r   Zastyper7   r   rG   Ú	TimestamprU   r6   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   éÿÿÿÿr;   )r   éþÿÿÿr<   )r   r   rD   r   )r   r   r   r   )r   ÚvalsÚrsZxpr
   r
   r   Útest_dup_columns_across_dtype9  s
    
z;TestDataFrameNonuniqueIndexes.test_dup_columns_across_dtypec                 C   sÎ   t t d¡ dd¡jƒ}tdƒ|_|jd d …df }d|jd d …df< t 	|jd d …df |¡ t t d¡ dd¡jƒ}dt
dƒtdƒg|_|jd d …df }d|jd d …df< t 	|jd d …df |¡ d S )Né	   r   ZAAAr   r   r   )r   r   rZ   r[   ÚTr   r   rg   r   Zassert_series_equalÚfloatr   r8   r
   r
   r   Útest_set_value_by_indexA  s    
z5TestDataFrameNonuniqueIndexes.test_set_value_by_indexN)Ú__name__Ú
__module__Ú__qualname__r   r%   r9   r>   rK   rM   rP   rV   r^   ra   rb   rc   rd   ri   rn   rr   r
   r
   r
   r   r      s    	W%r   )N)Únumpyr   r2   ZpandasrG   r   r   r   Zpandas._testingZ_testingr   r   r   r
   r
   r
   r   Ú<module>   s   
