
    Mh'-              
       j   S SK Jr  S SKrS SKrS SKJrJr  S SK	J
r
JrJrJrJr  S SKJr  \R$                  S 5       r\R(                  R+                  SSSS//5      S	 5       rS
 r\R(                  R+                  S/ SQ5      S 5       rS r\R(                  R+                  S/ SQ/ SQ/ SQ/5      S 5       rS rS rS r\R(                  R+                  SSS/5      \R(                  R+                  SSS/5      S 5       5       r\R(                  R+                  SS\R>                  " / SQ5      4S\R>                  " / S Q5      4S\R>                  " / S!Q5      4/5      S" 5       r \R(                  RB                  S# 5       r"\R(                  R+                  S$S%S&/5      S' 5       r#\R(                  R+                  S(\$" S)S*5      5      \R(                  R+                  S+\$" S)S,5      5      S- 5       5       r%S. r&\R(                  R+                  S/\RN                  \RP                  /5      S0 5       r)S1 r*g)2    )productN)	hashtableindex)NADatetimeIndexIndex
MultiIndexSeriesc                      [        / SQ5      n [        SS/5      n[        R                  " / SQ5      n[        R                  " / SQ5      nSS/n[        X/X#/USS	9nU$ )
N)foobarbazquxonetwo)r   r      r   r   r   )r   r   r   r   r   r   firstsecondF)levelscodesnamesverify_integrity)r   nparrayr	   )
major_axis
minor_axismajor_codesminor_codesindex_namesmis         \/var/www/html/env/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_duplicates.pyidx_dupr"      sh     34Ju~&J((-.K((-.KH%K	'(	
B I    r   r   r   c                 2   [         R                  " / SQ/ SQ/U S9nUR                  5       n[         R                  " / SQ/ SQ/UR                  S9n[        R
                  " X#5        [         R                  " [        S5      [        S5      /U S9nUR                  5       n[         R                  " [        S5      [        S	5      /UR                  S9n[        R
                  " X#5        [         R                  " [        S5      [        S5      /U S9nUR                  5       n[         R                  " S
/S
//UR                  S9n[        R
                  " X#5        [         R                  " / / /U S9nUR                  5       n[        R
                  " X5        g )N)r      r   r%   )r   r   r   r%   r   )r   r%   r%   r   r   r%   aaaaababaaaba)r	   from_arraysuniquer   tmassert_index_equallist)r   r    resexps       r!   test_uniquer4   '   s/   			| <E	JB
))+C

 
 )Y!7rxx
HC##			ftF| <E	JB
))+C

 
 $t*d4j!9
JC##			ftF| <E	JB
))+C

 
 3%#rxx
@C## 
		R	6B
))+C""r#   c                     [        / SQ5      n [        / SQSS9n[        R                  " X/5      R                  5       n[        / SQ5      n[        / SQSS9n[        R                  " X4/5      n[        R
                  " X%5        g )N)
2015-01-01r6   r6   r6   NaTr7   )r6   r6   
2015-01-02r8   r7   r6   z
Asia/Tokyo)tz)r6   r6   r7   r7   )r6   r8   r7   r6   )r   r	   r-   r.   r/   r0   )idx1idx2resulteidx1eidx2r3   s         r!   test_unique_datetimeliker?   ?   sz    ND UD ##TL188:FDEE9lE 
 
 %
0C&&r#   level)r   r   r   r   c                    U R                  US9nU R                  U5      R                  5       n[        R                  " X#5        [        R
                  " / SQ/ SQ/SS/S9nUR                  US9nUR                  U5      n[        R                  " X#5        [        R
                  " / / /SS/S9nUR                  US9nUR                  U5      n[        R                  " X#5        g )Nr@   )r      r%      )r   rC   r%      r   r   r&   )r.   get_level_valuesr/   r0   r	   r-   )idxr@   r<   expectedr    s        r!   test_unique_levelrI   Q   s     ZZeZ$F##E*113H&+ 
		| <WhDW	XBYYUY#F""5)H&+ 
		R(0C	DBYYUY#F""5)H&+r#   c                     Sn [         R                  " [        U S9   [        S/S-  [	        S5      /S/S-  [	        S5      /5      nS S S 5        [        R
                  " / SQ/ SQ/5      nSn [         R                  " [        U S9   UR                  / S	Q/ S
Q/5        S S S 5        g ! , (       d  f       Nf= f! , (       d  f       g = f)Nz3Level values must be unique: \[[A', ]+\] on level 0)matchA
   r   )rL   rL   BrN   rN   )r   r%   r   r%   rC   z4Level values must be unique: \[[AB', ]+\] on level 0)rL   rN   rL   rL   rN   )r%   r   rC   rE   )pytestraises
ValueErrorr	   ranger-   
set_levels)msgr    s     r!   test_duplicate_multiindex_codesrV   e   s     AC	z	-#U2Y/1#(E"I1FG 
. 
		!:O L	MB
AC	z	-
02BCD 
.	- 
.	- 
.	-s   +B'B8'
B58
C)r,   br,   r'   )r   r,   r   c                 \   [         R                  " SS//S-  U S9nUR                  U :X  d   e[         R                  " SS//S-  5      nUR                  U 5      nUR                  U :X  d   eUR                  U S   SSS9  UR                  U S   U S   /SS/S9nUR                  U :X  d   eg )	Nr   r   rC   r&   T)r@   inplacer%   rB   )r	   from_productr   rename)r   r    s     r!   test_duplicate_level_namesr\   s   s     
	 	 1a&AU	;B88u 
	 	 1a&A	.B	5	B88u IIeAhaI.	E!HeAh'1v	6B88ur#   c                  *   [        SS// SQ// SQ/ SQ/S9n U U R                  S S /5      U R                  S S/5      U R                  SS/5      4 H@  nUR                  (       d   eUR                  5       R                  UR                  :X  a  M@   e   g )	Nr   r   r   r   r%   r   r   r   r   r   r   r   r   r   r%   r   r   r   r%   r   r   NumUpper)r	   	set_nameshas_duplicatesdrop_duplicatesr   )r    rG   s     r!   test_duplicate_meta_datarg      s    	A	"+@BW*X
B
 	
dD\"
dE]#
gu%&	 !!!!""$**cii777r#   c                    U R                   SL d   eU R                  SL d   eUR                   SL d   eUR                  SL d   e[        SS// SQ// SQ/ SQ/S9nUR                   SL d   eUR                  SL d   e[        S	S
/SS/// SQ/ SQ/S9nUR                   SL d   eUR                  SL d   e[        S	S
/SS/// SQ/ SQ/S9nUR                   SL d   eUR                  SL d   eg )NTFr   r   r^   r_   r`   ra   r,   rW   )r   r   r   r   )ri   r   r   r   r   )ri   ri   r   r   r   r   )ri   ri   r   r   r   r   )	is_uniquere   r	   )rG   r"   r    mi_nan
mi_nan_dups        r!   test_has_duplicatesrm      s5   ==D   &&&%%%!!T)))	A	"+@BW*X
B <<5   $$$ c
QF#,<>N+OF t###  E))) c
QF#,@BV+WJ 5((($$,,,r#   c                  ^    / SQn [         R                  " U 5      nUR                  (       a   eg )N))xoutzrE   yinrq      )ro   rp   rq      rr   rs   rq   w   )ro   rp   rq   	   rr   rs   rq      )ro   rp   rq      rr   rs   rq      )ro   rp   rq      rr   rs   rq      )ro   rp   rq      rr   rs   rq   z   )ro   rp   rq      rr   rs   rq      )ro   rp   rq      rr   rs   rq      )ro   rp   rq      rr   rs   rq      )ro   rp   rq      rr   rs   rq      )ro   rp   rq      rr   rs   rq      )ro   rp   rq      rr   rs   rq   o   )ro   rp   rq      rr   rs   rq   r   )ro   rp   rq      rr   rs   rq   y   )ro   rp   rq      rr   rs   rq   ~   )ro   rp   rq       rr   rs   rq      )ro   rp   rq   !   rr   rs   rq   {   )ro   rp   rq      rr   rs   rq      )r	   from_tuplesre   )tr    s     r!   test_has_duplicates_from_tuplesr      s-    	A* 
			"B     r#   nlevelsrD      
with_nullsTFc                     [         R                  " [         R                  " S5      S5      n[         R                  " S5      nU(       a{  SUS'   [        U 5       Vs/ s H  oBR	                  5       PM     nn[        U 5       H  nSX$   SU-   U S-  -
  '   M     U[         R
                  " SS/5      R                  S5      /-  nO-U/U -  [         R                  " S5      R                  S5      /-   nU/U -  SS//-   n[        XRS9nUR                  (       a   eU(       a!  S n[        [        Xr5      5      n[        XRS9nO6UR                  R                  5       n[        R                  " XS   /-   5      nUR                  (       d   eg s  snf )Ni  r%   ri   r   r   ra   c                 8    [         R                  " U SU S   5      $ )N  r   )r   insert)r,   s    r!   f'test_has_duplicates_overflow.<locals>.f   s    99Qad++r#   )r   tilearangerS   copyr   repeatr	   re   r1   mapvaluestolistr   )	r   r   r   r@   ir   r    r   r   s	            r!   test_has_duplicates_overflowr      s[    GGBIIcNA&EIIcNEc
',W~6~!~6wA/1EHS1Ww!|+,   	"((B7#**3/00'!RYYq\%8%8%=$>>Ww1a&)F 
6	/B     	, S]#v3!!###FQi[$895 7s   Fzkeep, expected)FFFTTFlast)FTTFFF)FTTTTFc                 N    U R                  US9n[        R                  " X25        g )Nkeep)
duplicatedr/   assert_numpy_array_equal)r"   r   rH   r<   s       r!   test_duplicatedr      s%     T*F1r#   c                 f   Su  p#[         R                  " U5      [        U5       Vs/ s H  n[        U5      PM     snS[         R                  " U5      -   /nU Vs/ s H4  n[         R                  R                  S5      R                  X#U-  5      PM6     nnUR                  5        nUR                  [        SS5        [        XWS9n	U	R                  U S9n
[        R                  " U	R                  U S9nS S S 5        [        R                  " W
W5        g s  snf s  snf ! , (       d  f       N0= f)N)   rM   r   r%   _SIZE_CUTOFF2   ra   r   )r   r   rS   strrandomdefault_rngchoicecontextsetattrlibindexr	   r   r   r   r/   r   )r   monkeypatchnkr   r   _r   mr    r<   rH   s               r!   test_duplicated_hashtable_implr      s     DAiilU1X6XSVX6ryy|8KLF@FG1RYY""1%,,QA6EG				!			(NB/v3D)''		= 
 1 7G		s   D;D)AD""
D0vale   f   c                     [         R                  " SU /S[        R                  //5      nUR                  (       a   e[
        R                  " UR                  5       [        R                  " SSS95        g )Nr   g      @r%   booldtype)	r	   r-   r   nanre   r/   r   r   zeros)r   r    s     r!   test_duplicated_with_nanr     sU     
		#sc266] ;	<B    !61JKr#   r   r   r   r   rE   c                    [        [        SU 5      [        SU5      5      n[        [        S5      S U  [        S5      S U /[        R
                  R                  S5      R                  [        U5      5      R                  S9n[        U5      U S-   US-   -  :X  d   eUR                  (       a   e[        R                  " UR                  5       [        R                  " [        U5      SS95        g )	Nri   abcdeWXYZr%   ra   r   r   r   )r   rS   r	   r1   r   r   r   permutationTlenre   r/   r   r   r   )r   r   r   r    s       r!   $test_duplicated_with_nan_multi_shaper     s    
 E"aL%A,/E	Wbq!4<#34ii##A&224;?AA
B r7q1uQ''''    #b'1PQr#   c                     [         R                  " / SQ/ SQ45      n [        R                  " / SQ[        S9nU R                  5       n[        R                  " X!5        UR                  [        :X  d   e[         R                  " / SQ/ SQ45      n[        R                  " U R                  5       U5        [        R                  " / SQ5      nU R                  SS	9n[        R                  " X!5        UR                  [        :X  d   e[         R                  " / S
Q/ SQ45      n[        R                  " U R                  SS	9U5        [        R                  " / SQ5      nU R                  SS	9n[        R                  " X!5        UR                  [        :X  d   e[         R                  " / SQ/ SQ45      n[        R                  " U R                  SS	9U5        g )N)r   r%   rC   r   r%   rC   )r   r   r   r   r%   r%   )FFFTFFr   )r   r%   rC   r%   rC   )r   r   r   r%   r%   )TFFFFFr   r   )r%   rC   r   r%   rC   )TFFTFFF)r%   rC   r%   rC   )r   r   r%   r%   )r	   r-   r   r   r   r   r/   r   r   r0   rf   )rG   rH   r   s      r!   test_duplicated_drop_duplicatesr   (  sn   

 
 "46H!I
JCxxANH!J
5t###%%&HIH#--/:xxABHV,J
5t###%%&HIH#--6-:HExx@AHU+J
5t###%%|\&BCH#--5-98Dr#   r   c                 8   [        / SQ[        S9n[        [        R                  [        R                  S-  -   SSSSSSS[        R                  [        R                  [        R                  S-  -   /
U S9R	                  5       n[
        R                  " X!5        g )N)
FFFTFFFTFTr   y              ?r   r   y      ?      ?y      ?       @)r
   r   r   r   r   r/   assert_series_equal)r   rH   r<   s      r!   &test_duplicated_series_complex_numbersr   B  s     KH FFRVVb[ FFFFRVVb[ 	
  jl  6,r#   c                  ^   [        SS[        [        /SS9n [        R                  " / SQ5      n[        R
                  " X/SS/S9nUR                  5       n[        SS[        /SS9n[        R                  " / S	Q5      n[        R
                  " XE/SS/S9n[        R                  " X65        g )
Nr   r%   Int64r   )r   r%   rC   rC   r,   rW   r&   )r   r%   rC   )	r
   r   r   r   r	   r-   r.   r/   r0   )vals_avals_bmidxr<   
exp_vals_a
exp_vals_brH   s          r!   test_midx_unique_ea_dtyper   a  s    Q2rN'2FXXl#F!!6"23*ED[[]FAr
'2J)$J%%z&>sCjQH&+r#   )+	itertoolsr   numpyr   rP   pandas._libsr   r   r   pandasr   r   r   r	   r
   pandas._testing_testingr/   fixturer"   markparametrizer4   r?   rI   rV   r\   rg   rm   r   r   r   r   arm_slowr   r   rS   r   r   	complex64
complex128r   r    r#   r!   <module>r      sW     
    " 4'8)<"=># ?#.'$ ";<, =,&E ?I{"KL M 8 -8!6 QF+e}5# 6 ,#L 	"((CDE	BCD	?@A22
 2 2 c
+L ,L eAqk*eAqk*R + +RE4 

--0
,r#   