
    de-                     `    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     e/var/www/html/t/fyr/venv311/lib/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      Acolumns)nprandomrandnlistranger   r   r   )selfarridxdfr   s        r   .test_setattr_columns_vs_construct_with_columnszLTestDataFrameNonuniqueIndexes.test_setattr_columns_vs_construct_with_columns   so     iooa##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barr2   hellor   bahstring)r)   r)   r)   r*   r5   )r)   r)   r   r*   r5   )r   r)   r   r*   r5   )r2   r3   r2   r4   r6   zLength of valuematchr   AnotherColumnr)   r   foo2)r)   r)   r)   r*   r5   r   )r)   r)   r   r*   r5   r   )r   r)   r   r*   r5   r   )r2   r3   r2   r4   r6   r:   r%   )r)   r)   r)   r*   r5   r%   )r)   r)   r   r*   r5   r%   )r   r)   r   r*   r5   r%   r3   )r)   r)   r*   r5   r   )r)   r   r*   r5   r   )r   r   r*   r5   r   )r2   r2   r4   r6   r:   r4   )r)   r)   r5   r   )r)   r   r5   r   )r   r   r5   r   )r2   r2   r6   r:   r   new_col      @)r)   r)   r<   r5   r   )r)   r   r<   r5   r   )r   r   r<   r5   r   )r2   r2   r;   r6   r:   zcannot insert      @T)allow_duplicates)r)   r)   r=   r<   r5   r   )r)   r   r=   r<   r5   r   )r   r   r=   r<   r5   r   )r2   r2   r;   r;   r6   r:   r2   )r=   r<   r5   r   )r;   r;   r6   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*   r1   r         @r:   )r)   r)   rI   r*   rL   )r)   r)   rJ   r*   rL   )r   r)   rK   r*   rL   )r2   r3   r2   r4   r:   r2   r)   rI   rJ   r   rK   r6   )r6   r)   r6   r*   rL   )r)   r*   rL   )r3   r4   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.   bcde)r   Br   rD   r   edcbarD   rT   )r   rT   r   r   )r   r   r   r   rD   pdIndexr   copyr   valuesr   )r   r!   rD   this_dfexpected_serexpected_dfs         r   test_column_dups_indexesz6TestDataFrameNonuniqueIndexes.test_column_dups_indexes   s    IOOAq!!+++#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   thatr   rI   rU   r)   )r   r   r   r   r   r   randrF   s      r   +test_changing_dtypes_with_duplicate_columnszITestDataFrameNonuniqueIndexes.test_changing_dtypes_with_duplicate_columns   s     ryq!,,vv6FGGGSa66:JKKK6
b(ry~~a++ff5EFFF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   rT   r   r   r*   zQCan only compare identically-labeled \(both index and columns\) DataFrame objectsr7   FT)	r   r   nanr?   r@   rA   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.   rP   rQ   rW   )FFTF)r.   rP   rQ   rR   )FTTT)onetwothreerm   ro   r)   axis)rm   ro   rm   )r   r   rX   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*   rO   )r   rT   CDErU   )r   rv   r   )r.   rQ   r.   )r   r   arangereshaperZ   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   )rP   r.   r.   )rP   r.   r   r   r   r   r   r	   rF   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   rP   r   rF   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   rI   rJ   rK   r2   r3   )r.   r.   rP   rP   rR   rQ   rQ   r   ABCDEFG)r   r   r   r   r   r	   rF   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   r2   r3   r-   r   )r.   r   za.2za.3r   rF   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 )N
   r   float64)dtypeint64TrU   r2   20010101r)   rp   )r   r   r   r   astyperD   r   rX   	Timestamprr   rC   _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^   RY__R339EEE29??2q1188AABB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)   rJ   )r   rK   )r   r   rT   r   )r   r   r   r	   )r   valsrsxps       r   test_dup_columns_across_dtypez;TestDataFrameNonuniqueIndexes.test_dup_columns_across_dtype;  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   r7   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_indexC  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"   r/   rG   rM   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?   pandasrX   r   r   r   pandas._testing_testingr   r   r   r   r   r   <module>r      s                     
         B8 B8 B8 B8 B8 B8 B8 B8 B8 B8r   