
    .iA                     x    d dl mZ d dlZd dlZd dlZd dlmZmZm	Z	m
Z
mZ d dlmZ  G d d      Z G d d      Zy)    )deepcopyN)	DataFrameIndex
MultiIndexSeriesconcatc                   x    e Zd Zd Zej
                  j                  dg d      d        Zd Zd Z	d Z
d Zd	 Zy
)TestIndexConcatc           	      x   t        g dg dg dd      }t        dg di      }t        g d      |_        t        g d      |_        t        ||gd	d
|      }t        j
                  }t        |||dgg dg dddd|ggt        g d            }|s|j                  g d   }t        j                  ||       y )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          d/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/reshape/concat/test_index.pytest_concat_ignore_indexz(TestIndexConcat.test_concat_ignore_index   s    %	OT
 G_56_-_-VV$14dKffc3$""ac"	 ,-
 ||$89H
b(+    z#name_in1,name_in2,name_in3,name_out))idxr4   r4   r4   )r4   r4   NN)r4   NNN)idx1idx2NN)r5   r5   r6   N)r5   r6   idx3N)NNNNc           	         t        g d|      t        g d|      t        g d|      g}t        |g d      D cg c]  \  }}t        |g di|       }}}t        |d	      }	t        g d
|      }
t        dddt        j
                  t        j
                  gt        j
                  dddt        j
                  gt        j
                  t        j
                  dddgd|
      }t        j                  |	|       y c c}}w )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_indr0   s               r1   test_concat_same_index_namesz,TestIndexConcat.test_concat_same_index_names+   s     /1/1/1
 <?w;X
371aIq)nA.
 
 Q'1AArvvrvv.ffaArvv.ffbffaA.
 
 	fh/
s   Dc           	         t        t        j                  j                  d      j                  d      t	        d      t        t	        d      d            }t        t        j                  j                  d      j                  d      t	        d      t        t	        d      d            }t        ||gd	d
gddg      }t        ||gd	d
gdg      }t	        |j                  j                        }d|d<   |j                  j                  |d       t        j                  ||       |j                  j                  |j                  j                  k(  sJ y )Nr   )r   r   ABCabcindex_ar9   )columnsr&   index_bkey0key1lvl0lvl1keysnamesr   T)inplace)r   r'   randomdefault_rnglistr   r   r&   rU   	set_namesr*   r+   )r,   r   r   rF   exprU   s         r1   test_concat_rename_indexz(TestIndexConcat.test_concat_rename_indexO   s   II!!!$++F3KU)4

 II!!!$++F3KU)4
 Aff%5ff=MNaV66"26(CSYY__%a		E40
fc*||!!SYY__444r3   c                     t        ddg      }t        ||g|      }|dv r|j                  |j                  usJ y |j                  |j                  u sJ y )Nr   r   r=   r   r&   )r   r   r&   )r,   r"   sercombs       r1   test_concat_copy_index_seriesz-TestIndexConcat.test_concat_copy_index_seriese   sS    aVnsCjt,<::SYY...::***r3   c                    t        ddgddggddg      }t        ||g|      }|d	v rO|j                  j                  |j                        rJ |j                  j                  |j                        sJ y |d
v rO|j                  j                  |j                        sJ |j                  j                  |j                        rJ y y )Nr   r   r      r   r   rM   r=   r^   )r   rM   )r   r   r&   is_rM   )r,   r"   dfr`   s       r1   test_concat_copy_index_framez,TestIndexConcat.test_concat_copy_index_framen   s    AA'#s<r2hT*<zz~~bhh///<<##BJJ///^#::>>"((+++||''

3333 $r3   c                 x   t        g dd      }t        g dd      }t        ||gdd      }t        |j                  t        j
                        sJ t        dd	gd
dgddgg      }t        j                  ||dd       t        g d      }t        g d      }t        ||gdd      }t        |j                  t        j
                        sJ t        dd	gd
dgddgg      }t	        j
                  d
      |_        t        j                  ||dd       t        dd
gddgd      }t        dd	gddgd      }t        ||gdd      }t        ddgd
dgddgd	dggddg      }t        j                  ||dd       t        ||gdd      }t        g dg dg      }t        j                  ||dd       y )Nr   r   r9   )rc         r   r   T)r"   r#   rc   r   ri   r   rj   check_index_typecheck_column_typeF)AB      r   rn   ro   rd   )r   ri   r   rp   )r   rj   rc   rq   )	r   r   
isinstancerM   pd
RangeIndexr   r*   r+   )r,   s1s2resr[   df1df2s          r1   test_default_indexz"TestIndexConcat.test_default_indexy   s   IC(IC(b"XAD9#++r}}555!Q!Q!Q01 	c3QUV IIb"XAE:#++r}}555!Q!Q!Q01mmA&
c3QUV q!fAq623q!fAq623c3Zad;!Q!Q!Q!Q83*M
c3QUVc3Zad;|45
c3QUVr3   c           
         t        t        j                  j                  d      j	                  ddd      j                  dd      g d      }t        ||gd	
      }t        j                  |j                  d d d df   |       t        j                  |j                  d d dd f   |       t        ||gd
      }t        j                  |j                  d d |       t        j                  |j                  dd  |       t        t        t        j                  j                  d      j                  d      g d      t        t        j                  j                  d      j	                  ddd      j                  dd      ddg      gd	
      }t        ||gd	
      }t        j                  |j                  d d d df   |       t        j                  |j                  d d dd f   |       t        ||gd
      }t        j                  |j                  d d |       t        j                  |j                  dd  |       y )Nr   r   
   (   )sizerc   )rn   rn   Cr   rd   r   r=   )r|   rc   )rn   rn   ro   ro      rn   r   rj   )r   r'   rW   rX   integersreshaper   r*   r+   ilocstandard_normal)r,   rf   rF   s      r1   test_dups_indexzTestIndexConcat.test_dups_index   s    II!!!$--a"-=EEb!L(

 Rq)
fkk!RaR%0"5
fkk!QR%0"5Rq)
fkk#2.3
fkk"#.3 II))!,<<WE0 II))!,55a"5EMMbRST #J	 
 Rq)
fkk!RaR%0"5
fkk!QR%0"5Rq)
fkk#2.3
fkk"#.3r3   N)__name__
__module____qualname__r2   pytestmarkparametrizerH   r\   ra   rg   rz   r    r3   r1   r
   r
      sM    ,2 [[-	
0005,+	4W@&4r3   r
   c                   f   e Zd Zd Zd Zd Zd Zej                  j                  ddg e
d      gdg ej                  d	d
      gdgddggdg ej                  ddd      gg      ej                  j                  ddg e
d      gdg ej                  d	d
      gdgddggdg ej                  ddd      gg      dedefd              Zd Zd Zd Zej                  j                  dddggg dgg      d        Zd Zd Zd Zej                  j                  dg d       d!        Zd" Zy#)$TestMultiIndexConcatc                 Z   |}|j                   }t        ||gddgdg      }|j                   j                  dg|j                  k(  sJ t        j                  |j
                  d   |       t        j                  |j
                  d   |       |j                   j                  dk(  sJ y )Nr   r   	iterationrS   r   )r&   r   rU   r*   r+   r)   nlevels)r,    multiindex_dataframe_random_dataframer&   rF   s        r1    test_concat_multiindex_with_keysz5TestMultiIndexConcat.test_concat_multiindex_with_keys   s    0aVK=I||!!k%@EKK%@@@@
fjjmU3
fjjmU3||##q(((r3   c                    t        j                  dgt        d      gdd g      }t        dt        d      i|t        j
                        }t        ||gddgdg	      }t        j                  ddgdgt        d      gg d
      }t        dt        t        d            dz  i|t        j
                        }t        j                  ||       t        ||d d gddgdg	      }dgdz  dgdz  z   }dgdz  }t        t        d            t        t        d            z   }t        t        |||            }t        j                  |g d
      }t        d|i|t        j
                        }t        j                  ||       y )Nr   ri   level1rU   col)r&   dtyper   level2rS   )r   r   Nrp   )r   from_productranger   r'   int32r   rY   r*   r+   r>   from_tuples)	r,   r&   rf   rF   r0   r   r   no_nametupless	            r1   /test_concat_multiindex_with_none_in_index_nameszDTestMultiIndexConcat.test_concat_multiindex_with_none_in_index_names   sY   ''!eAh$?OPuQx(RXXFR1vhZ@''VaS%(#+E
 eT%(^a%78RXXV
fh/RVAq6(DqA37"quQx.4a>1c&&'23&&v5OPeW-U"((K
fh/r3   c           	      @   t        t        j                  j                  d      j	                  d            }t        t        j                  d      t        j                  d      gt        j                  t        j                  d      d      t        j                  t        j                  d      d      g      |_        t        |j                  g dd d f   |j                  dgd d f   g      }|j                  g dd d f   }t        j                  ||       y )Nr   )	   r   r   levelscodes)r   r   rc   ri   )r   r   rc   ri   )r   r'   rW   rX   r   r   rs   rt   repeatarangetiler&   r   r   r*   r+   )r,   rf   rw   r[   s       r1   !test_concat_multiindex_rangeindexz6TestMultiIndexConcat.test_concat_multiindex_rangeindex   s    
 ryy,,Q/??GHMM!$bmmA&6799RYYq\1-rwwryy|Q/GH

 bggil+RWWaS!V_=>gglAo&
c3'r3   c                    t        j                  dgdgg      }t        dg|      }t        j                  dgdgg      }t        dg|      }||d}t        dd	gdgddggddgddgddggg d
      }t        dgdgg|      }t        t	        |      dg      }t        j                  ||       t        |dg      }	t        j                  |	|       y )Nr   r   r   r%   r   r   )ru   rv   ru   rv   )testnameNN)r   r   rU   r   r   )r   r   r   r   r   r*   r+   )
r,   example_multiindex1example_dataframe1example_multiindex2example_dataframe2example_dictexpected_indexr0   result_copyresult_no_copys
             r1   (test_concat_multiindex_dfs_with_deepcopyz=TestMultiIndexConcat.test_concat_multiindex_dfs_with_deepcopy   s    (55usenE&s2EF(55usenE&s2EF08JK#4L3%#s4q6Aq6Aq6**

 qcA3Z~>Xl3J<H
k84ZLA
nh7r3   mi1_listr   r   r   g       @g      @r   rn   ro   r;   20172018)startendperiodsmi2_listc                    t        j                  |      }t        j                  |      }t        t        j                  dt        |      f      |      }t        t        j                  dt        |      f      |      }|d   |d   k(  r%t        |d   t        |d         gg dg dg      }n9t        |d   |d   z   t        |d         t        |d         z   gg dg dg      }t        t        j                  dt        |      f      |      }t        j                  d       5  t        ||fd	      }	d d d        t        j                  |	       y # 1 sw Y    xY w)
Nr   rd   r   )r   r   r   r   )r   r   r   r   r   )r   r   r   r   )r   r   r   r   r=   )r   r   r   r'   zeroslenrY   r*   assert_produces_warningr   r+   )
r,   r   r   mi1mi2rx   ry   expected_miexpected_df	result_dfs
             r1   *test_concat_with_various_multiindex_dtypesz?TestMultiIndexConcat.test_concat_with_various_multiindex_dtypes  s@   , %%h/%%h/!SX/=!SX/=A;(1+%$ T(1+%67#\2K
 %QK(1+-!%Xa[(99 $\2K  !S-=)> ?U''- 	3Sz2I	3 	k95	3 	3s   *EE"c                 <   t        dg dig d      }t        |gdg      }dgg dg}|j                  }t        j                  |      }t        j                  ||       |}t        dg dit        j                  |            }t        j                  ||       y )Nr   r   )12r   r%   XrT   )r   r   r&   r   r   r*   assert_index_equalr+   )r,   rf   	iterablesresult_indexr   r   r   s          r1   test_concat_multiindex_z,TestMultiIndexConcat.test_concat_multiindex_6  s    /GRDu%UO,	xx#00;
lN;	O$J,C,CI,N
 	i5r3   c           	      $   t        ddgi      }t        ddgi      }t        ddgi      }t        |||gg d      }t        j                  |d      5  |j                  d	d d f   }d d d        t        dg d
it        ddgt        d      gg dg dg            }t        j                  |d      5  |j                  d	   }d d d        t        j                         t        dg di      }t        dddgi      }t        dddgi      }t        |||gg d      }t        j                  |d      5  |j                  d	d d f   }d d d        t        g dg dt        d      d      j                  ddg      }d d g|j                  _        t        j                  |d      5  |j                  d	d d f   }d d d        t        j                  ||       y # 1 sw Y   zxY w# 1 sw Y   )xY w# 1 sw Y   xY w# 1 sw Y   FxY w)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+   rY   	set_indexr&   rU   )	r,   performance_warningrx   ry   df3df_aout_adf_bout_bs	            r1   test_concat_with_key_not_uniquez4TestMultiIndexConcat.test_concat_with_key_not_uniqueG  s   !&!&!&sCoO<'''D
 	* HHXq[)E	* Yc
E!H-i5K
 '''D
 	' HHX&E	'
 	eU+12#s,-#s,-sCoO<'''D
 	* HHXq[)E	*
 8*Y
 )S#J
 	 !$<

'''D
 	* HHXq[)E	*
 	eU+O	* 	*	' 	'	* 	*	* 	*s0   G 6G-:G:-H G*-G7:HHc                     t        ddgidg      }t        ddgidg      }d}t        j                  t        |      5  t	        ||gddgg dg	       d d d        y # 1 sw Y   y xY w)
Nrn   r   r   r%   r   z*Level values not unique: \['x', 'y', 'y'\]r   r   r   r   )rT   r   r   r   raises
ValueErrorr   )r,   rx   ry   msgs       r1   "test_concat_with_duplicated_levelsz7TestMultiIndexConcat.test_concat_with_duplicated_levelsw  sm    qc
3%0qc
3%0;]]:S1 	JC:S#J7HI	J 	J 	Js    AA(r   r   r   r   c                     t        ddgidg      }t        ddgidg      }d}t        j                  t        |      5  t	        ||g|       d d d        y # 1 sw Y   y xY w)	Nrn   r   r   r%   r   z+levels supported only when keys is not Noner   )r   r   )r,   r   rx   ry   r   s        r1   &test_concat_with_levels_with_none_keysz;TestMultiIndexConcat.test_concat_with_levels_with_none_keys  s`    qc
3%0qc
3%0;]]:S1 	.C:f-	. 	. 	.s    AA"c                     t        dddgi      }t        dddgi      }t        ||gdd      }t        ddgddgd      }t        j                  ||       t	        j
                  dd      }t        j                  |j                  |d	       y )
Nr   r   r   r   T)r$   r"   )r   r   r   )exact)r   r   r*   r+   rs   rt   r   r&   )r,   rx   ry   rF   r0   r   s         r1   test_concat_range_index_resultz3TestMultiIndexConcat.test_concat_range_index_result  s    q!f&q!f&c
A6Aq6A78
fh/q!,
fllN$Gr3   c                 $   t        g dgt        g dd            }t        ddggt        ddgd            }t        ||gd	d
d	      }t        g dddt        j                  ggt        g dd            }t        j                  ||       y )Nr   r   r   r   objectr   rd   r   r   r   Touterr#   joinr$   r   r   g      ?r   r   r   r'   r(   r*   r+   )r,   rx   ry   rF   r0   s        r1   test_concat_index_keep_dtypez1TestMultiIndexConcat.test_concat_index_keep_dtype  s    U9H-MN!Q%Ah*GHc
G$O1a.)5(3S
 	fh/r3   c                 $   t        g dgt        g d|            }t        ddggt        ddg|            }t        ||gdd	d
      }t        g dddt        j                  ggt        g d|            }t        j                  ||       y )Nr   r   r   rd   r   r   r   Tr   r   r   r   )r,   any_numeric_ea_dtyperx   ry   rF   r0   s         r1   'test_concat_index_keep_dtype_ea_numericz<TestMultiIndexConcat.test_concat_index_keep_dtype_ea_numeric  s    Ky8L!M
 !Q%A>R*STc
G$O1a.))+?@
 	fh/r3   r   )Int8Int16Int32c                 $   t        g dgt        g d|            }t        ddggt        ddgd            }t        ||gd	d
d	      }t        g dddt        j                  ggt        g dd            }t        j                  ||       y )Nr   r   r   rd   r   r   r   r   Tr   r   r   r   )r,   r   rx   ry   rF   r0   s         r1   test_concat_index_find_commonz2TestMultiIndexConcat.test_concat_index_find_common  s     U9E-JK!Q%Ag*FGc
G$O1a.)5'3R
 	fh/r3   c                    t        g d      }t        ddg      }t        g d      }t        g |st        nd      }t        ||||gdddd	
      }t        dgdz  t        j
                  gz   dgdz  t        j
                  gz   dt        j
                  gdz  t        j
                  gdz  dgz   t        j
                  gz   g|st        nd      }t        j                  ||dd       y )Nr   r   r   )r   r   r   r;   strr   Fr   r   )r$   r   r#   r"   r   r   r   r;   Trk   )r   r   r   r   r'   r(   r*   r+   )r,   using_infer_stringru   rv   s3s4rF   r0   s           r1   (test_concat_axis_1_sort_false_rangeindexz=TestMultiIndexConcat.test_concat_axis_1_sort_false_rangeindex  s    O$S#J()B,>fEJR5wUQR
 	RVVH$	RVVH$bff!1u$x/	 !3&
 	Htt	
r3   N)r   r   r   r   r   r   r   r   r   r   r   r'   r   rs   
date_rangerY   r   r   r   r   r   r   r   r   r   r   r   r3   r1   r   r      s   )0*(8( [[UE!HUIBIIc3'(US#JUMBMMFAFG		
 [[UE!HUIBIIc3'(US#JUMBMMFAFG		
66(,6$6>6".,`J [[X#s6G'HI. J.	H00 [[W&@A0 B0
r3   r   )copyr   numpyr'   r   pandasrs   r   r   r   r   r   pandas._testing_testingr*   r
   r   r   r3   r1   <module>r     s9         n4 n4bF
 F
r3   