
    bMh.                     X    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          ZdS )    N)	DataFrameSeries
date_rangec                   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          j	        ||           d S )N   )   r	   Acolumns)
nprandomdefault_rngstandard_normallistranger   r   tmassert_frame_equal)selfarridxdfexpecteds        i/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/frame/test_nonunique_indexes.py.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(+++++    c                     t          ddd          }t          g dg dg dgg d	          }||_        t          g dg dg dg|	          }t          j        ||           d S )
N20130101   zQE-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   r   s       r   ;test_setattr_columns_vs_construct_with_columns_datetimeindxzYTestDataFrameNonuniqueIndexes.test_setattr_columns_vs_construct_with_columns_datetimeindx   s    QX>>>\\<<<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          j        ||           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          j        ||           d|d<   t          g dg dg dgg d          }t          j        ||           d|d<   |d= t          g dg dg dgg d          }t          j        ||           |d = t          g d!g d"g d#gg d$          }t          j        ||           |
                                }t          g d!g d"g d#gg d$          }t          j        ||           |                    d%d&d'           t          g d(g d)g d*gg d+          }t          j        ||           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          j        ||           |d4= t          g d5g d5g d5gg d6          }t          j        ||           d S )7Nr#   r&   r'   foobarr-   hellor   bahstring)r$   r$   r$   r%   r0   )r$   r$   r	   r%   r0   )r	   r$   r
   r%   r0   )r-   r.   r-   r/   r1   zLength of valuematchr   AnotherColumnr$   r
   foo2)r$   r$   r$   r%   r0   r
   )r$   r$   r	   r%   r0   r
   )r	   r$   r
   r%   r0   r
   )r-   r.   r-   r/   r1   r5   r    )r$   r$   r$   r%   r0   r    )r$   r$   r	   r%   r0   r    )r	   r$   r
   r%   r0   r    r.   )r$   r$   r%   r0   r
   )r$   r	   r%   r0   r
   )r	   r
   r%   r0   r
   )r-   r-   r/   r1   r5   r/   )r$   r$   r0   r
   )r$   r	   r0   r
   )r	   r
   r0   r
   )r-   r-   r1   r5   r	   new_col      @)r$   r$   r7   r0   r
   )r$   r	   r7   r0   r
   )r	   r
   r7   r0   r
   )r-   r-   r6   r1   r5   zcannot insert      @T)allow_duplicates)r$   r$   r8   r7   r0   r
   )r$   r	   r8   r7   r0   r
   )r	   r
   r8   r7   r0   r
   )r-   r-   r6   r6   r1   r5   r-   )r8   r7   r0   r
   )r6   r6   r1   r5   )r   r   r   pytestraises
ValueErrorinsertr   lenindex_consolidate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$   .:B44B8;B8 I$$I(+I(c                    t          g dg dg dgg d          }d|d<   t          g dg d	g d
gg d          }t          j        ||           |d         }t          ddgddgddggddg          }t          j        ||           d|d<   t          g dg dg dgg d          }t          j        ||           |d= t          g dg dg dgg d          }t          j        ||           d S )N)r$   r$         ?r%   )r$   r$          @r%   )r	   r$         @r%   r,   r         @r5   )r$   r$   rD   r%   rG   )r$   r$   rE   r%   rG   )r	   r$   rF   r%   rG   )r-   r.   r-   r/   r5   r-   r$   rD   rE   r	   rF   r1   )r1   r$   r1   r%   rG   )r$   r%   rG   )r.   r/   r5   )r   r   r   )r   r   r   results       r   test_dup_across_dtypesz4TestDataFrameNonuniqueIndexes.test_dup_across_dtypesx   s   ^^^^^^^^<222
 
 

 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 ]g}|	                                }t          |j        |j                  }t          ||d         d	g d
          }||d<   t          j        ||           hd S )Nr	   )r%   r
   r)   bcde)r   Br   r?   r   edcbar?   rP   )r   rP   r   r   )r   r   r   r   r   r?   pdIndexr   copyr   valuesr   r   )r   r   r?   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 	8 	8EggiiG!%,gmDDDL#"66'  K !GCL!';7777	8 	8r   c                    t          t          j                            d                              d          ddg          }t          dt          d          ddg          }d|d<   t          j        ||           t          t          j                            d                              d          ddg          }t          dt          d          ddg          }d|d<   t          j        ||           d S )	Nr	   )r%   r	   thatr   rD   r%   rQ   r$   )r   r   r   r   r   r   r   r   rA   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   rP   r   r   r%   zQCan only compare identically-labeled \(both index and columns\) DataFrame objectsr2   FT)	r   r   nanr:   r;   r<   reindex_liker   r   )r   df1df2msgdf1rrH   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           	      2   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	          j        ||           d S )N)TTF)r)   rL   rM   rS   )FFTF)r)   rL   rM   rN   )FTTT)onetwothreerh   rj   r$   axis)rh   rj   rh   )r   r   rT   concatr   r   )r   dfboolr   rH   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          j        ||           d S )Ng      9@r%   rK   )r   rP   CDErQ   )r   rq   r   )r)   rM   r)   )r   r   arangereshaperV   locr   r   )r   r   zr   rH   s        r   test_multi_axis_dupsz2TestDataFrameNonuniqueIndexes.test_multi_axis_dups   s     IdOO##Aq))+++---
 
 

 $$&&5)IdOO##Aq))+++---
 
 

 '
fh/////r   c                 .   t          ddggddg          }ddg|_        t          ddggddg          }t          j        ||           t          g dgg d          }g d|_        t          g dgg d          }t          j        ||           d S )	Nr$   r	   r)   r   a.1)r$   r	   r
   )rL   r)   r)   )rL   r)   rz   r   r   r   r   rA   s      r   test_columns_with_dupsz4TestDataFrameNonuniqueIndexes.test_columns_with_dups   s     Ax#s4445\
q!fXU|<<<
b(+++			{OOO<<<&&&
iii[2C2C2CDDD
b(+++++r   c                     t          ddggddg          }ddg|_        t          ddggddg          }t          j        ||           d S )Nr$   r	   r)   r   rL   r{   rA   s      r   test_columns_with_dup_indexz9TestDataFrameNonuniqueIndexes.test_columns_with_dup_index  s^    Ax#s4443Z
q!fXSz:::
b(+++++r   c                     t          g dgg d          }t          d          |_        t          g dgt          d                    }t          j        ||           d S )N)r$   r	   rD   rE   rF   r-   r.   )r)   r)   rL   rL   rN   rM   rM   r   ABCDEFG)r   r   r   r   r   rA   s      r   test_multi_dtypez.TestDataFrameNonuniqueIndexes.test_multi_dtype  s}    0001777
 
 
 )__
00014	??
 
 
 	b(+++++r   c                     t          g dgg d          }g d|_        t          g dgg d          }t          j        ||           d S )N)r$   r	   r-   r.   r(   r   )r)   rz   za.2za.3r{   rA   s      r   test_multi_dtype2z/TestDataFrameNonuniqueIndexes.test_multi_dtype2  sn    ,,,-7K7K7KLLL///
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int64TrQ   r-   20010101r$   rk   )r   r   r   r   r   astyper?   r   rT   	Timestamprm   r>   _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$   rE   )r	   rF   )r   r   rP   r   r{   )r   valsrsxps       r   test_dup_columns_across_dtypez;TestDataFrameNonuniqueIndexes.test_dup_columns_across_dtype6  sY    lll+t___555t__$__

b"%%%%%r   c                 r   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	   r2   r   r$   )r   r   rt   ru   Tr   r   r   rV   r   assert_produces_warningassert_series_equalfloatstr)r   warnrd   r   r   s        r   test_set_value_by_indexz5TestDataFrameNonuniqueIndexes.test_set_value_by_index>  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+-FFFN)__name__
__module____qualname__r   r*   rB   rI   r[   r^   rf   ro   rx   r|   r~   r   r   r   r   r    r   r   r   r      s	       , , ,, , ,U, U, U,n", ", ",H8 8 8", , ,(0 0 0*0 0 00 0 0(, , ,, , ,
, 
, 
,, , ,  .& & &8 8 8 8 8r   r   )numpyr   r:   pandasrT   r   r   r   pandas._testing_testingr   r   r   r   r   <module>r      s                     
      D8 D8 D8 D8 D8 D8 D8 D8 D8 D8r   