
    Mh-D                         S SK Jr  S SKrS SKrS SKJr  S SKrS SKJ	r	J
r
JrJrJr  S SKJr   " S S5      r " S S5      rg)	    )deepcopyN)PerformanceWarning)	DataFrameIndex
MultiIndexSeriesconcatc                       \ rS rSrS r\R                  R                  S/ SQ5      S 5       rS r	S r
S rS	 rS
 rSrg)TestIndexConcat   c           	      r   [        / SQ/ SQ/ SQS.5      n[        S/ SQ05      n[        / SQ5      Ul        [        / SQ5      Ul        [        X#/S	S
US9n[        R
                  n[        XUUS// SQ/ SQSSSU//[        / SQ5      S9nU(       d  UR                  / SQ   n[        R                  " XF5        g )Nabc         )      @皙	@333333?)test1test2test3r   )@皙@333333@xyz)r    r!   qr   T)axisignore_indexsortr   )r   r   r   r   )r   r   r   r   r   r   r   )r#   r    r!   r"   index)r    r!   r"   r#   )	r   r   r(   r	   npnanloctmassert_frame_equal)selfr&   frame1frame2v1r*   expecteds          X/var/www/html/env/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_index.pytest_concat_ignore_index(TestIndexConcat.test_concat_ignore_index   s    %	OT
 G_56_-_-V$14dKff3$""ac"	 ,-
 ||$89H
b+    z#name_in1,name_in2,name_in3,name_out))idxr7   r7   r7   )r7   r7   NN)r7   NNN)idx1idx2NN)r8   r8   r9   N)r8   r9   idx3N)NNNNc           	         [        / SQUS9[        / SQUS9[        / SQUS9/n[        U/ SQ5       VVs/ s H  u  pg[        U/ SQ0US9PM     nnn[        USS	9n	[        / S
QUS9n
[        SSS[        R
                  [        R
                  /[        R
                  SSS[        R
                  /[        R
                  [        R
                  SSS/S.U
S9n[        R                  " X5        g s  snnf )Nr   name)r   r   d)r   r>   er   )r   r   r   r'   r   r$   )r   r   r   r>   r?   r   r   )r   zipr   r	   r)   r*   r,   r-   )r.   name_in1name_in2name_in3name_outindicesir   framesresultexp_indr2   s               r3   test_concat_same_index_names,TestIndexConcat.test_concat_same_index_names-   s     /1/1/1
 <?w;X
;X41Iq)nA.;X 	 
 Q'1AArvvrvv.ffaArvv.ffbffaA.
 
 	f/
s   C0c           	         [        [        R                  R                  S5      R                  S5      [	        S5      [        [	        S5      SS9S9n[        [        R                  R                  S5      R                  S5      [	        S5      [        [	        S5      SS9S9n[        X/S	S
/SS/S9n[        X/S	S
/S/S9n[	        UR                  R                  5      nSUS'   UR                  R                  USS9  [        R                  " X45        UR                  R                  UR                  R                  :X  d   eg )Nr   )r   r   ABCabcindex_ar<   )columnsr(   index_bkey0key1lvl0lvl1keysnamesr   T)inplace)r   r)   randomdefault_rnglistr   r	   r(   rY   	set_namesr,   r-   )r.   r   r   rI   exprY   s         r3   test_concat_rename_index(TestIndexConcat.test_concat_rename_indexQ   s   II!!!$++F3KU)4

 II!!!$++F3KU)4
 ff%5ff=MNaV66"26(CSYY__%a		E40
f*||!!SYY__444r6   c                     [        SS/5      n[        X3/USS9nU(       a  US;   a  UR                  UR                  Ld   eg UR                  UR                  L d   eg )Nr   r   Tr$   copyr   r(   )r   r	   r(   )r.   r$   using_copy_on_writesercombs        r3   test_concat_copy_index_series-TestIndexConcat.test_concat_copy_index_seriesg   sU    aVnsjt$7"dl&:::SYY...::***r6   c                 |   [        SS/SS//SS/S9n[        X3/USS	9nU(       dY  UR                  R                  UR                  5      (       a   eUR                  R                  UR                  5      (       a   eg US
;   aY  UR                  R                  UR                  5      (       a   eUR                  R                  UR                  5      (       d   eg US;   aY  UR                  R                  UR                  5      (       d   eUR                  R                  UR                  5      (       a   eg g )Nr   r   r      r   r   rQ   Trc   re   )r   rQ   )r   r	   r(   is_rQ   )r.   r$   rf   dfrh   s        r3   test_concat_copy_index_frame,TestIndexConcat.test_concat_copy_index_framep   s   AA'#s<rhT5"zz~~bhh////||''

33333\!zz~~bhh////<<##BJJ////^#::>>"((++++||''

33333 $r6   c                 D   [        / SQSS9n[        / SQSS9n[        X/SSS9n[        UR                  [        R
                  5      (       d   e[        SS	/S
S/SS//5      n[        R                  " X4SSS9  [        / SQ5      n[        / SQ5      n[        X/SSS9n[        UR                  [        R
                  5      (       d   e[        SS	/S
S/SS//5      n[        R
                  " S
5      Ul        [        R                  " X4SSS9  [        SS
/SS/S.5      n[        SS	/SS/S.5      n[        XV/SSS9n[        SS/S
S/SS/S	S//SS/S9n[        R                  " X4SSS9  [        XV/SSS9n[        / SQ/ SQ/5      n[        R                  " X4SSS9  g )Nr   r    r<   )rl         r!   r   T)r$   r%   rl   r   rs   r   rt   check_index_typecheck_column_typeF)AB      r   rx   ry   rm   )r   rs   r   rz   )r   rt   rl   r{   )	r   r	   
isinstancerQ   pd
RangeIndexr   r,   r-   )r.   s1s2resr_   df1df2s          r3   test_default_index"TestIndexConcat.test_default_index~   s   IC(IC(bXAD9#++r}}5555!Q!Q!Q01 	cQUV IIbXAE:#++r}}5555!Q!Q!Q01mmA&
cQUV q!fAq623q!fAq623cZad;!Q!Q!Q!Q83*M
cQUVcZad;|45
cQUVr6   c                 $   [        [        R                  R                  S5      R	                  SSSS9R                  SS5      / SQS9n[        X/S	S
9n[        R                  " UR                  S S 2S S24   U5        [        R                  " UR                  S S 2SS 24   U5        [        X/SS
9n[        R                  " UR                  S S U5        [        R                  " UR                  SS  U5        [        [        [        R                  R                  S5      R                  S5      / SQS9[        [        R                  R                  S5      R	                  SSSS9R                  SS5      SS/S9/S	S
9n[        X/S	S
9n[        R                  " UR                  S S 2S S24   U5        [        R                  " UR                  S S 2SS 24   U5        [        X/SS
9n[        R                  " UR                  S S U5        [        R                  " UR                  SS  U5        UR                  SS2S S 24   R                  UR                  SS  5      n[        R                  " X!5        UR                  SS2S S 24   R                  UR                  SS 5      R                  UR                  SS 5      n[        R                  " X!5        [        X/SS
9nUR                  U5      n[        R                  " X#5        g )Nr   r   
   (   )sizerl   )rx   rx   Cr   rm   r   r@   )r   rl   )rx   rx   ry   ry      rx   r   rt   r{   	   )r   r)   r[   r\   integersreshaper	   r,   r-   ilocstandard_normal_append)r.   ro   rI   r2   s       r3   test_dups_indexTestIndexConcat.test_dups_index   s    II!!!$--a"-=EEb!L(

 q)
fkk!RaR%0"5
fkk!QR%0"5q)
fkk#2.3
fkk"#.3 II))!,<<WE0 II))!,55a"5EMMbRST #J	 
 q)
fkk!RaR%0"5
fkk!QR%0"5q)
fkk#2.3
fkk"#.3 1a((5
f)1a((16>>rwwq}M
f)2(+B
f/r6    N)__name__
__module____qualname____firstlineno__r4   pytestmarkparametrizerK   r`   ri   rp   r   r   __static_attributes__r   r6   r3   r   r      sM    ,2 [[-	
0005,+4W@10r6   r   c                   d   \ rS rSrS rS rS rS r\R                  R                  SS/\" S5      /S	/\R                  " S
S5      /S/SS//S/\R                  " SSSS9//5      \R                  R                  SS/\" S5      /S	/\R                  " S
S5      /S/SS//S/\R                  " SSSS9//5      S\S\4S j5       5       rS rS rS r\R                  R                  SSS/// SQ//5      S 5       rS rS rS r\R                  R                  S / S!Q5      S" 5       rS# rS$rg%)&TestMultiIndexConcat   c                 X   UnUR                   n[        X"/SS/S/S9nUR                   R                  SUR                  -   :X  d   e[        R                  " UR
                  S   U5        [        R                  " UR
                  S   U5        UR                   R                  S:X  d   eg )Nr   r   	iterationrW   )r   r   )r(   r	   rY   r,   r-   r+   nlevels)r.    multiindex_dataframe_random_dataframer(   rI   s        r3    test_concat_multiindex_with_keys5TestMultiIndexConcat.test_concat_multiindex_with_keys   s    0aVK=I||!!^ekk%AAAA
fjjmU3
fjjmU3||##q(((r6   c                    [         R                  " S/[        S5      /SS /S9n[        S[        S5      0U[        R
                  S9n[        X"/SS/S/S	9n[         R                  " SS/S/[        S5      // S
QS9n[        S[        [        S5      5      S-  0U[        R
                  S9n[        R                  " X45        [        X"S S /SS/S/S	9nS/S-  S/S-  -   nS/S-  n[        [        S5      5      [        [        S5      5      -   n[        [        XVU5      5      n[         R                  " U/ S
QS9n[        SU0U[        R
                  S9n[        R                  " X45        g )Nr   rs   level1rY   col)r(   dtyper   level2rW   )r   r   Nrz   )r   from_productranger   r)   int32r	   r]   r,   r-   rA   from_tuples)	r.   r(   ro   rI   r2   r   r   no_nametupless	            r3   /test_concat_multiindex_with_none_in_index_namesDTestMultiIndexConcat.test_concat_multiindex_with_none_in_index_names   sO   ''!eAh$?OPuQx(RXXF1vhZ@''VaS%(#+E
 eT%(^a%78RXXV
f/VAq6(DqA37"quQx.4a>1c&'23&&v5OPeW-U"((K
f/r6   c           	      F   [        [        R                  R                  S5      R	                  S5      5      n[        [        R                  " S5      [        R                  " S5      /[        R                  " [        R                  " S5      S5      [        R                  " [        R                  " S5      S5      /S9Ul        [        UR                  / SQS S 24   UR                  S/S S 24   /5      nUR                  / SQS S 24   n[        R                  " X#5        g )Nr   )r   r   r   levelscodes)r   r   rl   rs   )r   r   rl   rs   )r   r)   r[   r\   r   r   r}   r~   repeatarangetiler(   r	   r   r,   r-   )r.   ro   r   r_   s       r3   !test_concat_multiindex_rangeindex6TestMultiIndexConcat.test_concat_multiindex_rangeindex   s    
 ryy,,Q/??GHMM!$bmmA&6799RYYq\1-rwwryy|Q/GH

 bggil+RWWaS!V_=>gglAo&
c'r6   c                    [         R                  " S/S//5      n[        S/US9n[         R                  " S/S//5      n[        S/US9nX$S.n[        SS	/S/SS//SS/SS/SS/// S
QS9n[        S/S//US9n[        [	        U5      S/S9n[
        R                  " X5        [        US/S9n	[
        R                  " X5        g )Nr   r   r   r'   r   r   )r   r   r   r   )testnameNN)r   r   rY   r   r   )r   r   r   r	   r   r,   r-   )
r.   example_multiindex1example_dataframe1example_multiindex2example_dataframe2example_dictexpected_indexr2   result_copyresult_no_copys
             r3   (test_concat_multiindex_dfs_with_deepcopy=TestMultiIndexConcat.test_concat_multiindex_dfs_with_deepcopy  s    (55usenE&s2EF(55usenE&s2EF0K#4L3%#s4q6Aq6Aq6**

 qcA3Z~>Xl3J<H
k4ZLA
n7r6   mi1_listr   r   r   g       @g      @r   rx   ry   r>   20172018)startendperiodsmi2_listc                    [         R                  " U5      n[         R                  " U5      n[        [        R                  " S[        U5      45      US9n[        [        R                  " S[        U5      45      US9nUS   US   :X  a"  [        US   [        US   5      // SQ/ SQ/S9nO6[        US   US   -   [        US   5      [        US   5      -   // SQ/ SQ/S9n[        [        R                  " S[        U5      45      US9n[        R                  " S 5         [        XV4SS	9n	S S S 5        [        R                  " UW	5        g ! , (       d  f       N&= f)
Nr   rm   r   )r   r   r   r   )r   r   r   r   r   )r   r   r   r   )r   r   r   r   r@   )r   r   r   r)   zeroslenr]   r,   assert_produces_warningr	   r-   )
r.   r   r   mi1mi2r   r   expected_miexpected_df	result_dfs
             r3   *test_concat_with_various_multiindex_dtypes?TestMultiIndexConcat.test_concat_with_various_multiindex_dtypes  s7   , %%h/%%h/!SX/=!SX/=A;(1+%$ T(1+%67#\2K
 %QK(1+-!%Xa[(99 $\2K  !S-=)> ?U''-z2I . 	k95 .-s   "E
Ec                 .   [        S/ SQ0/ SQS9n[        U/S/S9nS// SQ/nUR                  n[        R                  " U5      n[
        R                  " X45        Un[        S/ SQ0[        R                  " U5      S9n[
        R                  " XV5        g )Nr   r   )12r   r'   XrX   )r   r	   r(   r   r   r,   assert_index_equalr-   )r.   ro   	iterablesresult_indexr   r   r   s          r3   test_concat_multiindex_,TestMultiIndexConcat.test_concat_multiindex_F  s    /GRDu%UO,	xx#00;
l;	O$J,C,CI,N
 	i5r6   c                 "   [        SS/05      n[        SS/05      n[        SS/05      n[        XU// SQS9n[        R                  " [        SS9   UR
                  S	S S 24   nS S S 5        [        S/ S
Q0[        / SQ5      S9n[        R                  " [        SS9   UR
                  S	   nS S S 5        [        R                  " WW5        [        S/ SQ05      n[        SSS/05      n[        SSS/05      n[        XU// SQS9n[        R                  " [        SS9   UR
                  S	S S 24   nS S S 5        [        / SQ/ SQ[        S5      S.5      R                  SS/5      nS S /UR                  l        [        R                  " [        SS9   UR
                  S	S S 24   nS S S 5        [        R                  " XW5        g ! , (       d  f       GNl= f! , (       d  f       GN4= f! , (       d  f       N= f! , (       d  f       NZ= f)Nr=   r   r   r   )r    r!   r    r   zindexing past lexsort depthmatchr    r   r   )r   )r!   r   r   r'   )r   r   r   r   r   r   r>   )r    r    r    r!   r!   r    r    )r   r   r   r   r   r   r   aababcd)r   r   r=   )r   r	   r,   r   r   r+   r   r-   r]   	set_indexr(   rY   )r.   r   r   df3df_aout_adf_bout_bs           r3   test_concat_with_key_not_unique4TestMultiIndexConcat.test_concat_with_key_not_uniqueW  s   !&!&!&soO<''&C
 HHXq[)E

 Yu-K'L
 ''&C
 HHX&E

 	eU+12#s,-#s,-soO<''&C
 HHXq[)E

 8*Y
 )S#J
 	 !$<

''&C
 HHXq[)E

 	e+K
 

 

 

 
s0   G G#G/H 
G
G,/
G= 
Hc                     [        SS/0S/S9n[        SS/0S/S9nSn[        R                  " [        US9   [	        X/SS// SQ/S	9  S S S 5        g ! , (       d  f       g = f)
Nrx   r   r    r'   r!   z*Level values not unique: \['x', 'y', 'y'\]r   r    r!   r!   )rX   r   r   r   raises
ValueErrorr	   )r.   r   r   msgs       r3   "test_concat_with_duplicated_levels7TestMultiIndexConcat.test_concat_with_duplicated_levels  s^    qc
3%0qc
3%0;]]:S1C:S#J7HI 211s   A
A!r   r    r!   r   c                     [        SS/0S/S9n[        SS/0S/S9nSn[        R                  " [        US9   [	        X#/US9  S S S 5        g ! , (       d  f       g = f)	Nrx   r   r    r'   r!   z+levels supported only when keys is not Noner   )r   r   )r.   r   r   r   r   s        r3   &test_concat_with_levels_with_none_keys;TestMultiIndexConcat.test_concat_with_levels_with_none_keys  sU    qc
3%0qc
3%0;]]:S1C:f- 211s   A
Ac                    [        SSS/05      n[        SSS/05      n[        X/SSS9n[        SS/SS/S.5      n[        R                  " X45        [        R
                  " SS5      n[        R                  " UR                  USS	9  g )
Nr   r   r   r   T)r&   r$   )r   r   r   )exact)r   r	   r,   r-   r}   r~   r   r(   )r.   r   r   rI   r2   r   s         r3   test_concat_range_index_result3TestMultiIndexConcat.test_concat_range_index_result  s    q!f&q!f&
A6Aq6A78
f/q!,
fllN$Gr6   c                     [        / SQ/[        / SQSS9S9n[        SS//[        SS/SS9S9n[        X/S	S
S	S9n[        / SQSS[        R                  //[        / SQSS9S9n[
        R                  " X45        g )Nr   r   r   r   objectr   rm   r   r   r   Touterr%   joinr&   r   r   g      ?r   r   r	   r)   r*   r,   r-   )r.   r   r   rI   r2   s        r3   test_concat_index_keep_dtype1TestMultiIndexConcat.test_concat_index_keep_dtype  s{    U9H-MN!Q%Ah*GH
G$O1a.)5(3S
 	f/r6   c                     [        / SQ/[        / SQUS9S9n[        SS//[        SS/US9S9n[        X#/SS	SS
9n[        / SQSS[        R                  //[        / SQUS9S9n[
        R                  " XE5        g )Nr  r   r  rm   r   r   r   Tr  r  r	  r
  )r.   any_numeric_ea_dtyper   r   rI   r2   s         r3   'test_concat_index_keep_dtype_ea_numeric<TestMultiIndexConcat.test_concat_index_keep_dtype_ea_numeric  s    Ky8L!M
 !Q%A>R*ST
G$O1a.))+?@
 	f/r6   r   )Int8Int16Int32c                     [        / SQ/[        / SQUS9S9n[        SS//[        SS/SS9S9n[        X#/S	S
S	S9n[        / SQSS[        R                  //[        / SQSS9S9n[
        R                  " XE5        g )Nr  r   r  rm   r   r   r   r  Tr  r  r	  r
  )r.   r   r   r   rI   r2   s         r3   test_concat_index_find_common2TestMultiIndexConcat.test_concat_index_find_common  s}     U9E-JK!Q%Ag*FG
G$O1a.)5'3R
 	f/r6   c                    [        / SQ5      n[        SS/5      n[        / SQ5      n[        / U(       d  [        OSS9n[        X#XE/SSSS	S
9n[        S/S-  [        R
                  /-   S/S-  [        R
                  /-   S[        R
                  /S-  [        R
                  /S-  S/-   [        R
                  /-   /U(       d  [        OSS9n[        R                  " XgSSS9  g )Nr   r   r   )r   r   r   r>   zstring[pyarrow_numpy]r  Fr  r   )r&   r  r%   r$   r   r   r   r>   Tru   )r   r  r	   r   r)   r*   r,   r-   )r.   using_infer_stringr   r   s3s4rI   r2   s           r3   (test_concat_axis_1_sort_false_rangeindex=TestMultiIndexConcat.test_concat_axis_1_sort_false_rangeindex  s    O$S#J()$6f<S
 R5wUQR
 	RVVH$	RVVH$bff!1u$x/	 !3&8O
 	tt	
r6   r   N)r   r   r   r   r   r   r   r   r   r   r   r   r)   r   r}   
date_ranger]   r   r   r   r   r   r   r  r  r  r  r   r   r6   r3   r   r      s   )0*(8( [[UE!HUBIIc3'(US#JUBMMFAFG		
 [[UE!HUBIIc3'(US#JUBMMFAFG		
66(,6$6>6",,\J [[X#s6G'HI. J.	H00 [[W&@A0 B0
r6   r   )rd   r   numpyr)   r   pandas.errorsr   pandasr}   r   r   r   r   r	   pandas._testing_testingr,   r   r   r   r6   r3   <module>r#     s<       ,   |0 |0~F
 F
r6   