
    o[weW.                     `    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Z G d d          ZdS )    N)	DataFrameSeries
date_rangec                 `    |t          j        | |           | j         t          |            d S N)tmassert_frame_equaldtypesstr)resultexpecteds     Ilib/python3.11/site-packages/pandas/tests/frame/test_nonunique_indexes.pycheckr      s1    
fh///
MMKKKKK    c                   n    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd ZdS )TestDataFrameNonuniqueIndexesc                    t           j                            d                              d          }t	          t          d                    }t          |ddg          }||_        t          ||          }t          ||           d S )N   )   r   Acolumns)	nprandomdefault_rngstandard_normallistranger   r   r   )selfarridxdfr   s        r   .test_setattr_columns_vs_construct_with_columnszLTestDataFrameNonuniqueIndexes.test_setattr_columns_vs_construct_with_columns   s}     i##A&&66v>>588nnsS#J///
S#...b(r   c                     t          ddd          }t          g dg dg dgg d	          }||_        t          g dg dg dg|	          }t          ||           d S )
N20130101   zQ-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   s       r   ;test_setattr_columns_vs_construct_with_columns_datetimeindxzYTestDataFrameNonuniqueIndexes.test_setattr_columns_vs_construct_with_columns_datetimeindx   s    QW===\\<<<6@T@T@T
 
 
 
lllLLL,,,GQTUUUb(r   c           
         t          g dg dg dgg d          }d|d<   t          g dg d	g d
gg d          }t          ||           t          j        t          d          5  |                    ddt          t          |j                  dz
                       d d d            n# 1 swxY w Y   d|d<   t          g dg dg dgg d          }t          ||           d|d<   t          g dg dg dgg d          }t          ||           d|d<   |d= t          g dg dg dgg d          }t          ||           |d = t          g d!g d"g d#gg d$          }t          ||           |	                                }t          g d!g d"g d#gg d$          }t          ||           |                    d%d&d'           t          g d(g d)g d*gg d+          }t          ||           t          j        t          d,          5  |                    d%d&d-           d d d            n# 1 swxY w Y   |                    d%d&d-d./           t          g d0g d1g d2gg d3          }t          ||           |d4= t          g d5g d5g d5gg d6          }t          j        ||           d S )7Nr)   r,   r-   foobarr3   hellor   bahstring)r*   r*   r*   r+   r6   )r*   r*   r   r+   r6   )r   r*   r   r+   r6   )r3   r4   r3   r5   r7   zLength of valuematchr   AnotherColumnr*   r   foo2)r*   r*   r*   r+   r6   r   )r*   r*   r   r+   r6   r   )r   r*   r   r+   r6   r   )r3   r4   r3   r5   r7   r;   r&   )r*   r*   r*   r+   r6   r&   )r*   r*   r   r+   r6   r&   )r   r*   r   r+   r6   r&   r4   )r*   r*   r+   r6   r   )r*   r   r+   r6   r   )r   r   r+   r6   r   )r3   r3   r5   r7   r;   r5   )r*   r*   r6   r   )r*   r   r6   r   )r   r   r6   r   )r3   r3   r7   r;   r   new_col      @)r*   r*   r=   r6   r   )r*   r   r=   r6   r   )r   r   r=   r6   r   )r3   r3   r<   r7   r;   zcannot insert      @T)allow_duplicates)r*   r*   r>   r=   r6   r   )r*   r   r>   r=   r6   r   )r   r   r>   r=   r6   r   )r3   r3   r<   r<   r7   r;   r3   )r>   r=   r6   r   )r<   r<   r7   r;   )r   r   pytestraises
ValueErrorinsertr   lenindex_consolidater   r	   r   r"   r   s      r   "test_insert_with_duplicate_columnsz@TestDataFrameNonuniqueIndexes.test_insert_with_duplicate_columns(   s   \\<<<6222
 
 
 8   "5"5"57J7J7JK<<<
 
 
 	b(]:->??? 	D 	DIIa%BH0A*B*BCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 6
###%;%;%;=S=S=STDDD
 
 
 	b( 6
###%;%;%;=S=S=STDDD
 
 
 	b(6
 uI   "5"5"57J7J7JK===
 
 
 	b( wK///1A1A1AB444
 
 
 	b( __///1A1A1AB444
 
 
 	b( 			!Y$$$"""$9$9$9;P;P;PQ???
 
 
 	b( ]:_=== 	) 	)IIaC(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 			!Yd	;;;*********
 KJJ
 
 
 	b( uI!!!#7#7#79M9M9MN<<<
 
 
 	b(+++++s$   ):B//B36B3IIIc                    t          g dg dg dgg d          }t          |           d|d<   t          g dg d	g d
gg d          }t          ||           |d         }t          ddgddgddggddg          }t          ||           d|d<   t          g dg dg dgg d          }t          ||           |d= t          g dg dg dgg d          }t          ||           d S )N)r*   r*         ?r+   )r*   r*          @r+   )r   r*         @r+   r2   r         @r;   )r*   r*   rJ   r+   rM   )r*   r*   rK   r+   rM   )r   r*   rL   r+   rM   )r3   r4   r3   r5   r;   r3   r*   rJ   rK   r   rL   r7   )r7   r*   r7   r+   rM   )r*   r+   rM   )r4   r5   r;   )r   r   )r   r"   r   r   s       r   test_dup_across_dtypesz4TestDataFrameNonuniqueIndexes.test_dup_across_dtypes   s   ^^^^^^^^<222
 
 
 	b			6
   "5"5"57J7J7JK:::
 
 
 	b(Eq#hC1c(;eU^TTTfh 5	/////////
 ;::
 
 
 	b(uI[[+++{{{3=U=U=U
 
 
 	b(r   c                    t          t          j                            d                              d          g dg d          }|j        t          j        t          d                    fD ]b}|	                                }t          |j        |j                  }t          ||d         d	g d
          }||d<   t          ||           cd S )Nr   )r+   r   r/   bcde)r   Br   rE   r   edcbarE   rU   )r   rU   r   r   )r   r   r   r   r   rE   pdIndexr   copyr   valuesr   )r   r"   rE   this_dfexpected_serexpected_dfs         r   test_column_dups_indexesz6TestDataFrameNonuniqueIndexes.test_column_dups_indexes   s    I!!!$$44V<<+++#OO
 
 

 hg 7 78 	( 	(EggiiG!%,gmDDDL#"66'  K !GCL';''''	( 	(r   c                    t          t          j                            d                              d          ddg          }t          dt          d          ddg          }d|d<   t          ||           t          t          j                            d                              d          ddg          }t          dt          d          ddg          }d|d<   t          ||           d S )	Nr   )r+   r   thatr   rJ   r+   rV   r*   )r   r   r   r   r   r   r   rG   s      r   +test_changing_dtypes_with_duplicate_columnszITestDataFrameNonuniqueIndexes.test_changing_dtypes_with_duplicate_columns   s     I!!!$$44V<<vvFV
 
 
 Sa66:JKKK6
b(I!!!$$++F33ff=M
 
 
 QeAhh8HIII6
b(r   c                    t          ddgdt          j        gddgddggddg          }t          ddgddgdt          j        gdd	ggddg          }d
}t          j        t
          |          5  ||k     d d d            n# 1 swxY w Y   |                    |          }||k    }t          ddgddgddgddggddg          }t          j        ||           d S )Nr*   r   r   r&   r   rU   r   r   r+   zQCan only compare identically-labeled \(both index and columns\) DataFrame objectsr8   FT)	r   r   nanr@   rA   rB   reindex_liker   r	   )r   df1df2msgdf1rr   r   s          r   test_dup_columns_comparisonsz:TestDataFrameNonuniqueIndexes.test_dup_columns_comparisons   sS   !Q!RVq!fq!f=SzRRR!Q!Q!RVq!f=SzRRR  	 ]:S111 	 	3JJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 $$T]T5ME5>D%=I#J
 
 
 	fh/////s   0BB
Bc           	      (   t          t          g dg d          t          g dg d          t          g dg d          d          }t          j        |d         |d	         |d         gd
          }|g d         }t	          ||           d S )N)TTF)r/   rQ   rR   rX   )FFTF)r/   rQ   rR   rS   )FTTT)onetwothreerm   ro   r*   axis)rm   ro   rm   )r   r   rY   concatr   )r   dfboolr   r   s       r   test_mixed_column_selectionz9TestDataFrameNonuniqueIndexes.test_mixed_column_selection   s     111III999AUAUAUVVV 9 9 9AUAUAUVVV 
 
 9fUmVG_fUmLSTUUU///0fhr   c                    t          t          j        d                              dd          g dg d          }|g d                                         }|j        g d         }t          t          j        d                              dd          g dg d          }|g d         }|j        g d         }t          ||           d S )Ng      9@r+   rP   )r   rU   CDErV   )r   rv   r   )r/   rR   r/   )r   r   arangereshaper[   locr   )r   r"   zr   r   s        r   test_multi_axis_dupsz2TestDataFrameNonuniqueIndexes.test_multi_axis_dups   s     IdOO##Aq))+++---
 
 

 $$&&5)IdOO##Aq))+++---
 
 

 'fhr   c                 j   t          ddggddg          }ddg|_        t          |           t          ddggddg          }t          j        ||           t          g dgg d          }g d|_        t          |           t          g dgg d          }t          j        ||           d S )	Nr*   r   r/   r   a.1)r*   r   r   )rQ   r/   r/   )rQ   r/   r   r   r   r   r   r	   rG   s      r   test_columns_with_dupsz4TestDataFrameNonuniqueIndexes.test_columns_with_dups   s     Ax#s4445\
Bq!fXU|<<<
b(+++			{OOO<<<&&&
Biii[2C2C2CDDD
b(+++++r   c                     t          ddggddg          }ddg|_        t          |           t          ddggddg          }t          j        ||           d S )Nr*   r   r/   r   rQ   r   rG   s      r   test_columns_with_dup_indexz9TestDataFrameNonuniqueIndexes.test_columns_with_dup_index  si    Ax#s4443Z
Bq!fXSz:::
b(+++++r   c                     t          g dgg d          }t          d          |_        t          |           t          g dgt          d                    }t	          j        ||           d S )N)r*   r   rJ   rK   rL   r3   r4   )r/   r/   rQ   rQ   rS   rR   rR   r   ABCDEFG)r   r   r   r   r   r	   rG   s      r   test_multi_dtypez.TestDataFrameNonuniqueIndexes.test_multi_dtype  s    0001777
 
 
 )__
B00014	??
 
 
 	b(+++++r   c                     t          g dgg d          }g d|_        t          |           t          g dgg d          }t          j        ||           d S )N)r*   r   r3   r4   r.   r   )r/   r   za.2za.3r   rG   s      r   test_multi_dtype2z/TestDataFrameNonuniqueIndexes.test_multi_dtype2%  sy    ,,,-7K7K7KLLL///
B2223=W=W=WXXX
b(+++++r   c                 `   t          t          j                            d                              d          d          }t          t          j                            d                              d                              d                    }t          d|j        |j                  }t          d|j        |j                  }t          t          j	        d	          |j        |j                  }t          j
        |||||gd
          }|sbt          |j        j                  t          |j                  k    sJ t          |j        j                  t          |j                  k    sJ t          t          |j                            D ]}|j        d d |f          d S )Nr   )
   r   float64)dtypeint64TrV   r3   20010101r*   rp   )r   r   r   r   r   astyperE   r   rY   	Timestamprr   rD   _mgrblknosblklocsr   iloc)	r   using_array_managerdf_floatdf_intdf_bool	df_objectdf_dtr"   is	            r   test_dups_across_blocksz5TestDataFrameNonuniqueIndexes.test_dups_across_blocks,  s   I!!!$$44W==Y
 
 
 I!!!$$44W==DDWMM
 
 D@PQQQe8>8CSTTT	L$$HNHDT
 
 
 Y&'9eD1MMM" 	;rw~&&#bj//9999rw''3rz??:::: s2:'' 	 	AGAAAqDMMM	 	r   c                     g dg dg}t          |g d          }t          |          }g d|_        t          j        ||           d S )N)r*   rK   )r   rL   )r   r   rU   r   )r   r   r   r	   )r   valsrsxps       r   test_dup_columns_across_dtypez;TestDataFrameNonuniqueIndexes.test_dup_columns_across_dtypeC  sY    lll+t___555t__$__

b"%%%%%r   c                 *   d }d}t          t          j        d                              dd          j                  }t          d          |_        |j        d d df         }t          j	        ||          5  d|j        d d df<   d d d            n# 1 swxY w Y   t          j
        |j        d d df         |           t          t          j        d                              dd          j                  }dt          d          t          d          g|_        |j        d d df         }t          j	        ||          5  d|j        d d df<   d d d            n# 1 swxY w Y   t          j
        |j        d d df         |           d S )	Nz&will attempt to set the values inplace	   r   AAAr   r8   r   r*   )r   r   ry   rz   Tr   r   r   r   assert_produces_warningassert_series_equalfloatr   )r   warnri   r"   r   s        r   test_set_value_by_indexz5TestDataFrameNonuniqueIndexes.test_set_value_by_indexK  s   6ry||++Aq11344%[[
7111a4='C888 	 	BGAAAqDM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
rwqqq!t}h777ry||++Aq11344q3q66*
7111a4='C888 	 	BGAAAqDM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
rwqqq!t}h77777s$   :BBB	E$$E(+E(N)__name__
__module____qualname__r#   r0   rH   rN   r`   rc   rk   rt   r}   r   r   r   r   r   r   r    r   r   r   r      s	           U, U, U,n# # #J( ( ("  (0 0 0*          (, , , , , ,, , ,, , ,  .& & &8 8 8 8 8r   r   r   )numpyr   r@   pandasrY   r   r   r   pandas._testing_testingr   r   r   r   r   r   <module>r      s                     
         J8 J8 J8 J8 J8 J8 J8 J8 J8 J8r   