
    A>iA                     x    S SK Jr  S SKrS SK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)	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          e/var/www/html/land-tabula/venv/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))idxr6   r6   r6   )r6   r6   NN)r6   NNN)idx1idx2NN)r7   r7   r8   N)r7   r8   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_indr1   s               r2   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'   rX   	set_namesr+   r,   )r-   r   r   rH   exprX   s         r2   test_concat_rename_index(TestIndexConcat.test_concat_rename_indexO   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4r5   c                     [        SS/5      n[        X"/US9nUS;   a  UR                  UR                  Ld   eg UR                  UR                  L d   eg )Nr   r   r?   r   r'   )r   r   r'   )r-   r#   sercombs       r2   test_concat_copy_index_series-TestIndexConcat.test_concat_copy_index_seriese   sQ    aVnsjt,<::SYY...::***r5   c                    [        SS/SS//SS/S9n[        X"/US9n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   rP   r?   rb   )r   rP   )r   r   r'   is_rP   )r-   r#   dfrd   s       r2   test_concat_copy_index_frame,TestIndexConcat.test_concat_copy_index_framen   s    AA'#s<rhT*<zz~~bhh////<<##BJJ////^#::>>"((++++||''

33333 $r5   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;   )rh         r    r   T)r#   r$   rh   r   ro   r   rp   check_index_typecheck_column_typeF)AB      r   rt   ru   ri   )r   ro   r   rv   )r   rp   rh   rw   )	r   r   
isinstancerP   pd
RangeIndexr   r+   r,   )r-   s1s2resr^   df1df2s          r2   test_default_index"TestIndexConcat.test_default_indexy   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Vr5   c                 l   [        [        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        g )Nr   r   
   (   )sizerh   )rt   rt   Cr   ri   r   r?   )r   rh   )rt   rt   ru   ru      rt   r   rp   )r   r(   rZ   r[   integersreshaper   r+   r,   ilocstandard_normal)r-   rk   rH   s      r2   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"#.3r5    N)__name__
__module____qualname____firstlineno__r3   pytestmarkparametrizerJ   r_   re   rl   r   r   __static_attributes__r   r5   r2   r
   r
      sM    ,2 [[-	
0005,+	4W@&4r5   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                 Z   UnUR                   n[        X"/SS/S/S9nUR                   R                  S/UR                  Q7: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   	iterationrV   r   )r'   r   rX   r+   r,   r*   nlevels)r-    multiindex_dataframe_random_dataframer'   rH   s        r2    test_concat_multiindex_with_keys5TestMultiIndexConcat.test_concat_multiindex_with_keys   s    0aVK=I||!!k%@EKK%@@@@
fjjmU3
fjjmU3||##q(((r5   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   ro   level1rX   col)r'   dtyper   level2rV   )r   r   Nrv   )r   from_productranger   r(   int32r   r\   r+   r,   r@   from_tuples)	r-   r'   rk   rH   r1   r   r   no_nametupless	            r2   /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/r5   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   levelscodes)r   r   rh   ro   )r   r   rh   ro   )r   r(   rZ   r[   r   r   ry   rz   repeatarangetiler'   r   r   r+   r,   )r-   rk   r}   r^   s       r2   !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'r5   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   rX   r   r   )r   r   r   r   r   r+   r,   )
r-   example_multiindex1example_dataframe1example_multiindex2example_dataframe2example_dictexpected_indexr1   result_copyresult_no_copys
             r2   (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7r5   mi1_listr   r   r   g       @g      @r   rt   ru   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   ri   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
             r2   *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rW   )r   r   r'   r   r   r+   assert_index_equalr,   )r-   rk   	iterablesresult_indexr   r   r   s          r2   test_concat_multiindex_,TestMultiIndexConcat.test_concat_multiindex_6  s    /GRDu%UO,	xx#00;
l;	O$J,C,CI,N
 	i5r5   c           	      "   [        SS/05      n[        SS/05      n[        SS/05      n[        X#U// SQS9n[        R                  " USS9   UR                  S	S S 24   nS S S 5        [        S/ S
Q0[        SS/[        S5      // SQ/ SQ/S9S9n[        R                  " U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                  " U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                  " USS9   UR                  S	S S 24   nS S S 5        [        R                  " Xh5        g ! , (       d  f       GNp= f! , (       d  f       GN,= 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   r   r   r   r   r   aababcd)r   r   r<   )r   r   r+   r   r*   r   r   r,   r\   	set_indexr'   rX   )	r-   performance_warningr~   r   df3df_aout_adf_bout_bs	            r2   test_concat_with_key_not_unique4TestMultiIndexConcat.test_concat_with_key_not_uniqueG  s   !&!&!&soO<'''D
 HHXq[)E
 Yc
E!H-i5K
 '''D
 HHX&E

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

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

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

 	e+O
 

 

 

 
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)
Nrt   r   r   r&   r    z*Level values not unique: \['x', 'y', 'y'\]r   r   r    r    )rW   r   r   r   raises
ValueErrorr   )r-   r~   r   msgs       r2   "test_concat_with_duplicated_levels7TestMultiIndexConcat.test_concat_with_duplicated_levelsw  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)	Nrt   r   r   r&   r    z+levels supported only when keys is not Noner   )r   r   )r-   r   r~   r   r   s        r2   &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,   ry   rz   r   r'   )r-   r~   r   rH   r1   r   s         r2   test_concat_range_index_result3TestMultiIndexConcat.test_concat_range_index_result  s    q!f&q!f&
A6Aq6A78
f/q!,
fllN$Gr5   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   ri   r   r   r   Touterr$   joinr%   r   r   g      ?r   r   r   r(   r)   r+   r,   )r-   r~   r   rH   r1   s        r2   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/r5   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   ri   r   r   r   Tr  r  r  r  )r-   any_numeric_ea_dtyper~   r   rH   r1   s         r2   '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/r5   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   ri   r   r   r   r  Tr  r  r  r  )r-   r   r~   r   rH   r1   s         r2   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/r5   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=   strr   Fr  r   )r%   r  r$   r#   r   r   r   r=   Trq   )r   r   r   r   r(   r)   r+   r,   )r-   using_infer_stringr{   r|   s3s4rH   r1   s           r2   (test_concat_axis_1_sort_false_rangeindex=TestMultiIndexConcat.test_concat_axis_1_sort_false_rangeindex  s    O$S#J()B,>fEJR5wUQR
 	RVVH$	RVVH$bff!1u$x/	 !3&
 	tt	
r5   r   N)r   r   r   r   r   r   r   r   r   r   r   r   r(   r   ry   
date_ranger\   r   r   r   r   r   r   r  r
  r  r  r   r   r5   r2   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
r5   r   )copyr   numpyr(   r   pandasry   r   r   r   r   r   pandas._testing_testingr+   r
   r   r   r5   r2   <module>r     s9         n4 n4bF
 F
r5   