
    Mh.                     P    S SK rS SKrS SKrS SKJrJrJr  S SKJ	r
   " S S5      rg)    N)	DataFrameSeries
date_rangec                   t    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rSrg)TestDataFrameNonuniqueIndexes   c                     [         R                  R                  S5      R                  S5      n[	        [        S5      5      n[        USS/S9nX#l        [        XS9n[        R                  " X45        g )N   )   r
   Acolumns)
nprandomdefault_rngstandard_normallistranger   r   tmassert_frame_equal)selfarridxdfexpecteds        [/var/www/html/env/lib/python3.13/site-packages/pandas/tests/frame/test_nonunique_indexes.py.test_setattr_columns_vs_construct_with_columnsLTestDataFrameNonuniqueIndexes.test_setattr_columns_vs_construct_with_columns   s]     ii##A&66v>58nsS#J/
S.
b+    c                     [        SSSS9n[        / SQ/ SQ/ SQ// SQS	9nXl        [        / SQ/ SQ/ SQ/US	9n[        R                  " X#5        g )
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_datetimeindxYTestDataFrameNonuniqueIndexes.test_setattr_columns_vs_construct_with_columns_datetimeindx   sP    QX><6@T
 
lL,GQTU
b+r   c           
      0   [        / SQ/ SQ/ SQ// SQS9nSUS'   [        / SQ/ S	Q/ S
Q// SQS9n[        R                  " X5        [        R                  " [
        SS9   UR                  SS[        [        UR                  5      S-
  5      5        S S S 5        SUS'   [        / SQ/ SQ/ SQ// SQS9n[        R                  " X5        SUS'   [        / SQ/ SQ/ SQ// SQS9n[        R                  " X5        SUS'   US	 [        / SQ/ SQ/ SQ// SQS9n[        R                  " X5        US 	 [        / S!Q/ S"Q/ S#Q// S$QS9n[        R                  " X5        UR                  5       n[        / S!Q/ S"Q/ S#Q// S$QS9n[        R                  " X5        UR                  S%S&S'5        [        / S(Q/ S)Q/ S*Q// S+QS9n[        R                  " X5        [        R                  " [
        S,S9   UR                  S%S&S-5        S S S 5        UR                  S%S&S-S.S/9  [        / S0Q/ S1Q/ S2Q// S3QS9n[        R                  " X5        US4	 [        / S5Q/ S5Q/ S5Q// S6QS9n[        R                  " X5        g ! , (       d  f       GN= f! , (       d  f       N= f)7Nr%   r(   r)   foobarr0   hellor   bahstring)r&   r&   r&   r'   r3   )r&   r&   r
   r'   r3   )r
   r&   r   r'   r3   )r0   r1   r0   r2   r4   zLength of valuematchr   AnotherColumnr&   r   foo2)r&   r&   r&   r'   r3   r   )r&   r&   r
   r'   r3   r   )r
   r&   r   r'   r3   r   )r0   r1   r0   r2   r4   r8   r"   )r&   r&   r&   r'   r3   r"   )r&   r&   r
   r'   r3   r"   )r
   r&   r   r'   r3   r"   r1   )r&   r&   r'   r3   r   )r&   r
   r'   r3   r   )r
   r   r'   r3   r   )r0   r0   r2   r4   r8   r2   )r&   r&   r3   r   )r&   r
   r3   r   )r
   r   r3   r   )r0   r0   r4   r8   r
   new_col      @)r&   r&   r:   r3   r   )r&   r
   r:   r3   r   )r
   r   r:   r3   r   )r0   r0   r9   r4   r8   zcannot insert      @T)allow_duplicates)r&   r&   r;   r:   r3   r   )r&   r
   r;   r:   r3   r   )r
   r   r;   r:   r3   r   )r0   r0   r9   r9   r4   r8   r0   )r;   r:   r3   r   )r9   r9   r4   r8   )r   r   r   pytestraises
ValueErrorinsertr   lenindex_consolidater   r   r   s      r   "test_insert_with_duplicate_columns@TestDataFrameNonuniqueIndexes.test_insert_with_duplicate_columns!   s{   <62
 8 "57JK<
 	b+]]:->?IIa%BHH0A*BC @ 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 @?j >=s   3I5-J5
J
Jc                    [        / SQ/ SQ/ SQ// SQS9nSUS'   [        / SQ/ S	Q/ S
Q// SQS9n[        R                  " X5        US   n[        SS/SS/SS//SS/S9n[        R                  " X25        SUS'   [        / SQ/ SQ/ SQ// SQS9n[        R                  " X5        US	 [        / SQ/ SQ/ SQ// SQS9n[        R                  " X5        g )N)r&   r&         ?r'   )r&   r&          @r'   )r
   r&         @r'   r/   r         @r8   )r&   r&   rH   r'   rK   )r&   r&   rI   r'   rK   )r
   r&   rJ   r'   rK   )r0   r1   r0   r2   r8   r0   r&   rH   rI   r
   rJ   r4   )r4   r&   r4   r'   rK   )r&   r'   rK   )r1   r2   r8   )r   r   r   )r   r   r   results       r   test_dup_across_dtypes4TestDataFrameNonuniqueIndexes.test_dup_across_dtypesx   s    ^^<2

 6
 "57JK:
 	b+Eq#hC1c(;eU^T
f/ 5	///
 ;
 	b+uI+{3=U
 	b+r   c                    [        [        R                  R                  S5      R	                  S5      / SQ/ SQS9nUR
                  [        R                  " [        S5      5      4 H\  nUR                  5       n[        UR                  UR
                  S9n[        XCS   S	./ SQS
9nX#S'   [        R                  " X55        M^     g )Nr
   )r'   r   r+   bcde)r   Br   rB   r   edcbarB   rU   )r   rU   r   r   )r   r   r   r   r   rB   pdIndexr   copyr   valuesr   r   )r   r   rB   this_dfexpected_serexpected_dfs         r   test_column_dups_indexes6TestDataFrameNonuniqueIndexes.test_column_dups_indexes   s    II!!!$44V<+#

 hhg 78EggiG!%,,gmmDL#"6'K !CL!!'7 9r   c                    [        [        R                  R                  S5      R	                  S5      SS/S9n[        S[        S5      SS/S9nSUS'   [        R                  " X5        [        [        R                  R                  S5      R                  S5      SS/S9n[        S[        S5      SS/S9nSUS'   [        R                  " X5        g )	Nr
   )r'   r
   thatr   rH   r'   rV   r&   )r   r   r   r   r   r   r   r   rD   s      r   +test_changing_dtypes_with_duplicate_columnsITestDataFrameNonuniqueIndexes.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                    [        SS/S[        R                  /SS/SS//SS/S9n[        SS/SS/S[        R                  /SS	//SS/S9nS
n[        R                  " [
        US9   X:H    S S S 5        UR                  U5      nXB:H  n[        SS/SS/SS/SS//SS/S9n[        R                  " XV5        g ! , (       d  f       NR= f)Nr&   r
   r   r"   r   rU   r   r   r'   zQCan only compare identically-labeled \(both index and columns\) DataFrame objectsr5   FT)	r   r   nanr=   r>   r?   reindex_liker   r   )r   df1df2msgdf1rrL   r   s          r   test_dup_columns_comparisons:TestDataFrameNonuniqueIndexes.test_dup_columns_comparisons   s    !Q!RVVq!fq!f=SzR!Q!Q!RVVq!f=SzR  	 ]]:S1J 2 $T]T5ME5>D%=I#J
 	f/ 21s   (B99
Cc           	          [        [        / SQ/ SQS9[        / SQ/ SQS9[        / SQ/ SQS9S.5      n[        R                  " US   US	   US   /S
S9nU/ SQ   n[        R
                  " X25        g )N)TTF)r+   rQ   rR   rX   )FFTF)r+   rQ   rR   rS   )FTTT)onetwothreerp   rr   r&   axis)rp   rr   rp   )r   r   rY   concatr   r   )r   dfboolr   rL   s       r   test_mixed_column_selection9TestDataFrameNonuniqueIndexes.test_mixed_column_selection   su     1I9AUV 9AUV
 99fUmVG_fUmLSTU/0
f/r   c                 x   [        [        R                  " S5      R                  SS5      / SQ/ SQS9nU/ SQ   R	                  5       nUR
                  / SQ   n[        [        R                  " S5      R                  SS5      / SQ/ SQS9nU/ SQ   nUR
                  / SQ   n[        R                  " XC5        g )Ng      9@r'   rP   )r   rU   CDErV   )r   rz   r   )r+   rR   r+   )r   r   arangereshaper[   locr   r   )r   r   zr   rL   s        r   test_multi_axis_dups2TestDataFrameNonuniqueIndexes.test_multi_axis_dups   s     IIdO##Aq)+-

 $$&55)IIdO##Aq)+-

 '
f/r   c                     [        SS//SS/S9nSS/Ul        [        SS//SS/S9n[        R                  " X5        [        / SQ// SQS9n/ SQUl        [        / SQ// SQS9n[        R                  " X5        g )	Nr&   r
   r+   r   a.1)r&   r
   r   )rQ   r+   r+   )rQ   r+   r   r   r   r   r   rD   s      r   test_columns_with_dups4TestDataFrameNonuniqueIndexes.test_columns_with_dups   s{     Ax#s45\
q!fXU|<
b+	{O<&
i[2CD
b+r   c                 ~    [        SS//SS/S9nSS/Ul        [        SS//SS/S9n[        R                  " X5        g )Nr&   r
   r+   r   rQ   r   rD   s      r   test_columns_with_dup_index9TestDataFrameNonuniqueIndexes.test_columns_with_dup_index  sG    Ax#s43Z
q!fXSz:
b+r   c                     [        / SQ// SQS9n[        S5      Ul        [        / SQ/[        S5      S9n[        R                  " X5        g )N)r&   r
   rH   rI   rJ   r0   r1   )r+   r+   rQ   rQ   rS   rR   rR   r   ABCDEFG)r   r   r   r   r   rD   s      r   test_multi_dtype.TestDataFrameNonuniqueIndexes.test_multi_dtype  sH    017
 )_
014	?
 	b+r   c                 ~    [        / SQ// SQS9n/ SQUl        [        / SQ// SQS9n[        R                  " X5        g )N)r&   r
   r0   r1   r*   r   )r+   r   za.2za.3r   rD   s      r   test_multi_dtype2/TestDataFrameNonuniqueIndexes.test_multi_dtype2  s9    ,-7KL/
23=WX
b+r   c                 l   [        [        R                  R                  S5      R	                  S5      SS9n[        [        R                  R                  S5      R	                  S5      R                  S5      5      n[        SUR                  UR                  S9n[        SUR                  UR                  S9n[        [        R                  " S	5      UR                  UR                  S9n[        R                  " X#XEU/S
S9nU(       dp  [        UR                  R                  5      [        UR                  5      :X  d   e[        UR                  R                  5      [        UR                  5      :X  d   e[        [        UR                  5      5       H  nUR                   S S 2U4     M     g )Nr
   )
   r   float64)dtypeint64TrV   r0   20010101r&   rs   )r   r   r   r   r   astyperB   r   rY   	Timestampru   rA   _mgrblknosblklocsr   iloc)	r   using_array_managerdf_floatdf_intdf_bool	df_objectdf_dtr   is	            r   test_dups_across_blocks5TestDataFrameNonuniqueIndexes.test_dups_across_blocks  s?   II!!!$44W=Y
 II!!!$44W=DDWM
 D@P@PQe8>>8CSCST	LL$HNNHDTDT
 YY'eD1M"rww~~&#bjj/999rww'3rzz?::: s2::'AGGAqDM (r   c                     / SQ/ SQ/n[        U/ SQS9n[        U5      n/ SQUl        [        R                  " X#5        g )N)r&   rI   )r
   rJ   )r   r   rU   r   r   )r   valsrsxps       r   test_dup_columns_across_dtype;TestDataFrameNonuniqueIndexes.test_dup_columns_across_dtype6  s6    l+t_5t_$

b%r   c                 r   S nSn[        [        R                  " S5      R                  SS5      R                  5      n[        S5      Ul        UR                  S S 2S4   R                  5       n[        R                  " XS9   SUR                  S S 2S4'   S S S 5        [        R                  " UR                  S S 2S4   U5        [        [        R                  " S5      R                  SS5      R                  5      nS[        S5      [        S5      /Ul        UR                  S S 2S4   R                  5       n[        R                  " XS9   SUR                  S S 2S4'   S S S 5        [        R                  " UR                  S S 2S4   U5        g ! , (       d  f       GN= f! , (       d  f       NI= f)	Nz&will attempt to set the values inplace	   r   AAAr
   r5   r   r&   )r   r   r}   r~   Tr   r   r   r[   r   assert_produces_warningassert_series_equalfloatstr)r   warnrk   r   r   s        r   test_set_value_by_index5TestDataFrameNonuniqueIndexes.test_set_value_by_index>  s=   6ryy|++Aq1334%[
771a4=%%'''8BGGAqDM 9
rwwq!t}h7ryy|++Aq1334q3q6*
771a4=%%'''8BGGAqDM 9
rwwq!t}h7 98 98s   FF(
F%(
F6 N)__name__
__module____qualname____firstlineno__r   r,   rE   rM   r`   rd   rm   rw   r   r   r   r   r   r   r   r   __static_attributes__r   r   r   r   r      sU    ,,U,n",H8",(0*00(,,
,,.&8r   r   )numpyr   r=   pandasrY   r   r   r   pandas._testing_testingr   r   r   r   r   <module>r      s)       
 D8 D8r   