
    Owg.                     P    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y)    N)	DataFrameSeries
date_rangec                   l    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y)TestDataFrameNonuniqueIndexesc                     t         j                  j                  d      j                  d      }t	        t        d            }t        |ddg      }||_        t        ||      }t        j                  ||       y )N   )   r	   Acolumns)
nprandomdefault_rngstandard_normallistranger   r   tmassert_frame_equal)selfarridxdfexpecteds        `/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/frame/test_nonunique_indexes.py.test_setattr_columns_vs_construct_with_columnszLTestDataFrameNonuniqueIndexes.test_setattr_columns_vs_construct_with_columns   sc     ii##A&66v>58n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                  ||       y )
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   sT    QX><6@T
 
lL,GQTU
b(+r   c           
      f   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  |j                  ddt        t        |j                        dz
               d d d        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                  ||       |j                         }t        g d!g d"g d#gg d$      }t        j                  ||       |j                  d%d&d'       t        g d(g d)g d*gg d+      }t        j                  ||       t        j                  t
        d,      5  |j                  d%d&d-       d d d        |j                  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                  ||       y # 1 sw Y   xY w# 1 sw Y   xY w)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
 8 "57JK<
 	b(+]]:->? 	DIIa%BHH0A*BC	D 6
#%;=STD
 	b(+ 6
#%;=STD
 	b(+6
 uI "57JK=
 	b(+ wK/1AB4
 	b(+ __/1AB4
 	b(+ 			!Y$"$9;PQ?
 	b(+ ]]:_= 	)IIaC(	) 			!Yd	;***
 K
 	b(+ uI!#79MN<
 	b(+S	D 	Dj	) 	)s   '3J	J'J$'J0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                  ||       y )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

 6
 "57JK:
 	b(+Eq#hC1c(;eU^T
fh/ 5	///
 ;
 	b(+uI+{3=U
 	b(+r   c                    t        t        j                  j                  d      j	                  d      g dg d      }|j
                  t        j                  t        d            fD ]c  }|j                         }t        |j                  |j
                        }t        ||d   d	g d
      }||d<   t        j                  ||       e y )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    II!!!$44V<+#

 hhg 78 	8EggiG!%,,gmmDL#"6'K !GCL!!';7	8r   c                    t        t        j                  j                  d      j	                  d      ddg      }t        dt        d      ddg      }d|d<   t        j                  ||       t        t        j                  j                  d      j                  d      ddg      }t        dt        d      ddg      }d|d<   t        j                  ||       y )	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     II!!!$44V<vvFV
 Sa66:JK6

b(+II!!!$++F3ff=M
 QeAh8H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        |j                  |      }||k(  }t        ddgddgddgddggddg      }t        j                  ||       y # 1 sw Y   QxY w)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   s    !Q!RVVq!fq!f=SzR!Q!Q!RVVq!f=SzR  	 ]]:S1 	3J	 $T]T5ME5>D%=I#J
 	fh/	 	s   0CC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	        j
                  ||       y )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   sw     1I9AUV 9AUV
 99fUmVG_fUmLSTU/0
fh/r   c                    t        t        j                  d      j                  dd      g dg d      }|g d   j	                         }|j
                  g d   }t        t        j                  d      j                  dd      g dg d      }|g d   }|j
                  g d   }t        j                  ||       y )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     IIdO##Aq)+-

 $$&55)IIdO##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                  ||       y )	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5\
q!fXU|<
b(+	{O<&
i[2C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                  ||       y )Nr$   r	   r)   r   rL   r{   rA   s      r   test_columns_with_dup_indexz9TestDataFrameNonuniqueIndexes.test_columns_with_dup_index  sI    Ax#s43Z
q!fXSz:
b(+r   c                     t        g dgg d      }t        d      |_        t        g dgt        d            }t        j                  ||       y )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  sJ    017
 )_
014	?
 	b(+r   c                     t        g dgg d      }g d|_        t        g dgg d      }t        j                  ||       y )N)r$   r	   r-   r.   r(   r   )r)   rz   za.2za.3r{   rA   s      r   test_multi_dtype2z/TestDataFrameNonuniqueIndexes.test_multi_dtype2  s;    ,-7KL/
23=WX
b(+r   c                 x   t        t        j                  j                  d      j	                  d      d      }t        t        j                  j                  d      j	                  d      j                  d            }t        d|j                  |j                        }t        d|j                  |j                        }t        t        j                  d	      |j                  |j                        }t        j                  |||||gd
      }|snt        |j                  j                        t        |j                        k(  sJ t        |j                  j                        t        |j                        k(  sJ t        t        |j                              D ]  }|j                   d d |f     y )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  sH   II!!!$44W=Y
 II!!!$44W=DDWM
 D@P@PQe8>>8CSCST	LL$HNNHDTDT
 YY&'9eD1M"rww~~&#bjj/999rww'3rzz?::: s2::' 	AGGAqDM	r   c                     g dg dg}t        |g d      }t        |      }g d|_        t        j                  ||       y )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  s8    l+t_5t_$

b"%r   c                 b   d }d}t        t        j                  d      j                  dd      j                        }t        d      |_        |j                  d d df   j                         }t        j                  ||      5  d|j                  d d df<   d d d        t        j                  |j                  d d df   |       t        t        j                  d      j                  dd      j                        }dt        d      t        d      g|_        |j                  d d df   j                         }t        j                  ||      5  d|j                  d d df<   d d d        t        j                  |j                  d d df   |       y # 1 sw Y   xY w# 1 sw Y   >xY w)	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>  sO   6ryy|++Aq1334%[
771a4=%%'''C8 	BGGAqDM	
rwwq!t}h7ryy|++Aq1334q3q6*
771a4=%%'''C8 	BGGAqDM	
rwwq!t}h7	 		 	s   F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      sU    ,,U,n",H8",(0*00(,,
,,.&8r   r   )numpyr   r:   pandasrT   r   r   r   pandas._testing_testingr   r   r   r   r   <module>r      s)       
 D8 D8r   