o
    TiW.                     @   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/var/www/html/evchargy.com/venv/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   sN   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   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 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+   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-   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)Z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   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         @r0   )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+   r0   )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   r&   bcde)r   Br   r9   r   Zedcbar9   rF   )r   rF   r   r   )r   r   r   r   r   r9   pdIndexr   copyr   valuesr   )r   r   r9   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   r<   r"   rG   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   rF   r   r   r"   zQCan only compare identically-labeled \(both index and columns\) DataFrame objectsr.   FT)	r   r   nanr4   r5   r6   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&   rB   rC   rH   )FFTF)r&   rB   rC   rD   )FTTT)onetwothreerS   rU   r!   Zaxis)rS   rU   rS   )r   r   rI   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"   rA   )r   rF   CDErG   )r   rY   r   )r&   rC   r&   )r   r   arangereshaperK   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   )rB   r&   r&   )rB   r&   ra   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   rB   rb   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   r<   r=   r>   r)   r*   )r&   r&   rB   rB   rD   rC   rC   r   Z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&   ra   za.2za.3rb   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   Zfloat64)ZdtypeZint64TrG   r)   Z20010101r!   rV   )r   r   r   r   r   Zastyper9   r   rI   	TimestamprW   r8   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   rF   r   )r   r   r   r   )r   valsrsZxpr   r   r   test_dup_columns_across_dtypeC  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   ZAAAr   r.   r   r!   )r   r   r\   r]   Tr   r   ri   r   Zassert_produces_warningZassert_series_equalfloatr   )r   warnrQ   r   r
   r   r   r   test_set_value_by_indexK  s    
z5TestDataFrameNonuniqueIndexes.test_set_value_by_indexN)__name__
__module____qualname__r   r'   r;   r@   rM   rO   rR   rX   r`   rc   rd   re   rf   rk   rp   ru   r   r   r   r   r      s"    
	W%r   r   )numpyr   r4   ZpandasrI   r   r   r   Zpandas._testingZ_testingr   r   r   r   r   r   r   <module>   s    
