
    PiA                         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dS )    )deepcopyN)	DataFrameIndex
MultiIndexSeriesconcatc                   ~    e Zd Zd Zej                            dg d          d             Zd Zd Z	d Z
d Zd	 Zd
S )TestIndexConcatc           	         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        ||           d S )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          z/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/reshape/concat/test_index.pytest_concat_ignore_indexz(TestIndexConcat.test_concat_ignore_index   s   %oo			OOOTT
 
 G___566___--___--VV$14dKKKfc3$""""""ac"	 ,,,--
 
 
  	:|$8$8$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}d t          |g d          D             }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        ||	           d S )Nr   name)r   r   d)r   r;   ec                 >    g | ]\  }}t          |g d i|          S ))r   r   r   r%   )r   ).0ir   s      r1   
<listcomp>z@TestIndexConcat.test_concat_same_index_names.<locals>.<listcomp>>   s>     
 
 
371aIq)))nA...
 
 
r3   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framesresultexp_indr0   s
             r1   test_concat_same_index_namesz,TestIndexConcat.test_concat_same_index_names+   s    ///111///111///111


 
;>w;X;X
 
 
 Q'''111AAAArvrv.faArv.fbfaA. 
 
 
 
 	fh/////r3   c           	         t          t          j                            d                              d          t	          d          t          t	          d          d                    }t          t          j                            d                              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        	                    |d           t          j        ||           |j        j        |j        j        k    sJ d S )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&   rX   	set_namesr*   r+   )r,   r   r   rI   exprX   s         r1   test_concat_rename_indexz(TestIndexConcat.test_concat_rename_indexO   sW   I!!!$$++F33KKU)444
 
 

 I!!!$$++F33KKU)444
 
 
 Aff%5ff=MNNNaV66"26(CCCSY_%%a	E4000
fc***|!SY_444444r3   c                     t          ddg          }t          ||g|          }|dv r|j        |j        usJ d S |j        |j        u sJ d S )Nr   r   rA   r   r&   )r   r   r&   )r,   r"   sercombs       r1   test_concat_copy_index_seriesz-TestIndexConcat.test_concat_copy_index_seriese   sh    aVnnsCjt,,,<:SY......:******r3   c                 ~   t          ddgddggddg          }t          ||g|          }|d	v rD|j                            |j                  rJ |j                            |j                  sJ d S |d
v rB|j                            |j                  sJ |j                            |j                  rJ d S d S )Nr   r   r      r   r   rP   rA   ra   )r   rP   )r   r   r&   is_rP   )r,   r"   dfrc   s       r1   test_concat_copy_index_framez,TestIndexConcat.test_concat_copy_index_framen   s    AA'#s<<<r2hT***<z~~bh/////<##BJ///////^##:>>"(+++++|''
33333 $#33r3   c                    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           d S )Nr   r   r9   )rf         r   r   T)r"   r#   rf   r   rl   r   rm   check_index_typecheck_column_typeF)AB      r   rq   rr   rg   )r   rl   r   rs   )r   rm   rf   rt   )	r   r   
isinstancerP   pd
RangeIndexr   r*   r+   )r,   s1s2resr^   df1df2s          r1   test_default_indexz"TestIndexConcat.test_default_indexy   s0   IIIC(((IIIC(((b"XAD999#+r}55555!Q!Q!Q011 	c3QUVVVV IIIIIIb"XAE:::#+r}55555!Q!Q!Q011mA&&
c3QUVVVV q!fAq62233q!fAq62233c3Zad;;;!Q!Q!Q!Q83*MMM
c3QUVVVVc3Zad;;;|||455
c3QUVVVVVVr3   c           
         t          t          j                            d                              ddd                              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                            d          
                    d          g d          t          t          j                            d                              ddd                              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          |           d S )Nr   r   
   (   )sizerf   )rq   rq   Cr   rg   r   rA   )r   rf   )rq   rq   rr   rr      rq   r   rm   )r   r'   rZ   r[   integersreshaper   r*   r+   ilocstandard_normal)r,   ri   rI   s      r1   test_dups_indexzTestIndexConcat.test_dups_index   s{    I!!!$$--a"-==EEb!LL(((
 
 

 Rq)))
fk!!!RaR%0"555
fk!!!QRR%0"555Rq)))
fk#2#.333
fk"##.333 I))!,,<<WEE000   I))!,,55a"5EEMMbRSTT #J  	 
 
 
 Rq)))
fk!!!RaR%0"555
fk!!!QRR%0"555Rq)))
fk#2#.333
fk"##.33333r3   N)__name__
__module____qualname__r2   pytestmarkparametrizerK   r_   rd   rj   r}   r    r3   r1   r
   r
      s        , , ,2 [-	
 	
 	
 0 0 005 5 5,+ + +	4 	4 	4W W W@&4 &4 &4 &4 &4r3   r
   c                   t   e Zd Zd Zd Zd Zd Ze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        	                    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        	                    dddggg dgg          d             Zd Zd Zd Zej        	                    dg d           d!             Zd" Zd#S )$TestMultiIndexConcatc                     |}|j         }t          ||gddgdg          }|j         j        dg|j        R k    sJ t          j        |j        d         |           t          j        |j        d         |           |j         j        dk    sJ d S )Nr   r   	iterationrV   r   )r&   r   rX   r*   r+   r)   nlevels)r,    multiindex_dataframe_random_dataframer&   rI   s        r1    test_concat_multiindex_with_keysz5TestMultiIndexConcat.test_concat_multiindex_with_keys   s    0aVK=III|!k%@EK%@%@@@@@
fjmU333
fjmU333|#q((((((r3   c                 x   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	        ||           d S )Nr   rl   level1rX   col)r&   dtyper   level2rV   )r   r   Nrs   )r   from_productranger   r'   int32r   r\   r*   r+   rB   from_tuples)	r,   r&   ri   rI   r0   r   r   no_nametupless	            r1   /test_concat_multiindex_with_none_in_index_nameszDTestMultiIndexConcat.test_concat_multiindex_with_none_in_index_names   s   '!eAhh$?OPPPuQxx(RXFFFR1vhZ@@@'VaS%((#+E+E+E
 
 
 eT%((^^a%78RXVVV
fh///RVAq6(DDDqA37"quQxx..4a>>1c&&'2233&v5O5O5OPPPeW-U"(KKK
fh/////r3   c           	      H   t          t          j                            d                              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        ||           d S )Nr   )	   r   r   levelscodes)r   r   rf   rl   )r   r   rf   rl   )r   r'   rZ   r[   r   r   rv   rw   repeatarangetiler&   r   r   r*   r+   )r,   ri   rz   r^   s       r1   !test_concat_multiindex_rangeindexz6TestMultiIndexConcat.test_concat_multiindex_rangeindex   s    
 ry,,Q//??GGHHM!$$bmA&6&679RYq\\1--rwry||Q/G/GH
 
 

 bgiiil+RWaS!!!V_=>>glllAAAo&
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        |	|           d S )Nr   r   r   r%   r   r   )rx   ry   rx   ry   )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_indexr0   result_copyresult_no_copys
             r1   (test_concat_multiindex_dfs_with_deepcopyz=TestMultiIndexConcat.test_concat_multiindex_dfs_with_deepcopy   s-   (5usenEE&s2EFFF(5usenEE&s2EFFF08JKK#4L3%#s4q6Aq6Aq6****
 
 

 qcA3Z~>>>Xl33J<HHH
k8444ZLAAA
nh77777r3   mi1_listr   r   r   g       @g      @r   rq   rr   r;   20172018)startendperiodsmi2_listc                 V   t          j        |          }t          j        |          }t          t          j        dt          |          f          |          }t          t          j        dt          |          f          |          }|d         |d         k    r3t          |d         t          |d                   gg dg dg          }nQt          |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            n# 1 swxY w Y   t          j
        ||	           d S )
Nr   rg   r   )r   r   r   r   )r   r   r   r   r   )r   r   r   r   )r   r   r   r   rA   )r   r   r   r'   zeroslenr\   r*   assert_produces_warningr   r+   )
r,   r   r   mi1mi2r{   r|   expected_miexpected_df	result_dfs
             r1   *test_concat_with_various_multiindex_dtypesz?TestMultiIndexConcat.test_concat_with_various_multiindex_dtypes  s   , %h//%h//!SXX//===!SXX//===A;(1+%%$ T(1+%6%67#||\\\2  KK
 %QK(1+-!%%Xa[(9(99 $||\\\2  K  !S-=-=)> ? ?UUU'-- 	3 	3Sz222I	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	k955555s   )F		FFc                 D   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        ||           d S )Nr   r   )12r   r%   XrW   )r   r   r&   r   r   r*   assert_index_equalr+   )r,   ri   	iterablesresult_indexr   r   r   s          r1   test_concat_multiindex_z,TestMultiIndexConcat.test_concat_multiindex_6  s    /GGGRDu%%%UOOO,	x#0;;
lN;;;	OOO$J,CI,N,N
 
 
 	i5555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            n# 1 swxY w Y   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            n# 1 swxY w Y   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            n# 1 swxY w Y   t          g dg dt          d          d          	                    ddg          }d d g|j
        _        t          j        |d          5  |j        d	d d f         }d d d            n# 1 swxY w Y   t          j        ||           d S )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	            r1   test_concat_with_key_not_uniquez4TestMultiIndexConcat.test_concat_with_key_not_uniqueG  s   !&&!&&!&&sCoOOO<<<''D
 
 
 	* 	* HXqqq[)E	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* YYYc
E!HH-iii5K  
 
 
 ''D
 
 
 	' 	' HX&E	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'
 	eU+++122#s,--#s,--sCoOOO<<<''D
 
 
 	* 	* HXqqq[)E	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*
 888***Y 
 
 )S#J

 	 !$<
''D
 
 
 	* 	* HXqqq[)E	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*
 	eU+++++sH   #BBBC77C;>C;<FF!FH  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            d S # 1 swxY w Y   d S )
Nrq   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       r1   "test_concat_with_duplicated_levelsz7TestMultiIndexConcat.test_concat_with_duplicated_levelsw  s    qc
3%000qc
3%000;]:S111 	J 	JC:S#J7HIIII	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	Js   A//A36A3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            d S # 1 swxY w Y   d S )	Nrq   r   r   r%   r   z+levels supported only when keys is not Noner   )r   r   )r,   r   r{   r|   r   s        r1   &test_concat_with_levels_with_none_keysz;TestMultiIndexConcat.test_concat_with_levels_with_none_keys  s    qc
3%000qc
3%000;]:S111 	. 	.C:f----	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s   A))A-0A-c                 2   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	           d S )
Nr   r   r   r   T)r$   r"   )r   r   r   )exact)r   r   r*   r+   rv   rw   r   r&   )r,   r{   r|   rI   r0   r   s         r1   test_concat_range_index_resultz3TestMultiIndexConcat.test_concat_range_index_result  s    q!f&&q!f&&c
A666Aq6A7788
fh///q!,,
flN$GGGGGGr3   c                 T   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        ||           d S )Nr   r   r   r   objectr   rg   r   r   r   Touterr#   joinr$   r   r   g      ?r   r   r   r'   r(   r*   r+   )r,   r{   r|   rI   r0   s        r1   test_concat_index_keep_dtypez1TestMultiIndexConcat.test_concat_index_keep_dtype  s    U999H-M-M-MNNN!Q%Ah*G*G*GHHHc
G$OOO[[1a.)5(3S3S3S
 
 
 	fh/////r3   c                 T   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        ||           d S )Nr   r   r   rg   r   r   r   Tr   r   r   r   )r,   any_numeric_ea_dtyper{   r|   rI   r0   s         r1   'test_concat_index_keep_dtype_ea_numericz<TestMultiIndexConcat.test_concat_index_keep_dtype_ea_numeric  s    YYKyyy8L!M!M!M
 
 
 !Q%A>R*S*S*STTTc
G$OOO[[1a.))))+?@@@
 
 
 	fh/////r3   r   )Int8Int16Int32c                 T   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        ||           d S )Nr   r   r   rg   r   r   r   r   Tr   r   r   r   )r,   r   r{   r|   rI   r0   s         r1   test_concat_index_find_commonz2TestMultiIndexConcat.test_concat_index_find_common  s     U999E-J-J-JKKK!Q%Ag*F*F*FGGGc
G$OOO[[1a.)5'3R3R3R
 
 
 	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           d S )Nr   r   r   )r   r   r   r;   strr   Fr   r   )r$   r   r#   r"   r   r   r   r;   Trn   )r   r   r   r   r'   r(   r*   r+   )r,   using_infer_stringrx   ry   s3s4rI   r0   s           r1   (test_concat_axis_1_sort_false_rangeindexz=TestMultiIndexConcat.test_concat_axis_1_sort_false_rangeindex  s"   OOO$$S#J((())B,>IffEJJJR5wUQR
 
 
 	RVH$	RVH$bf!1u$x/	 !3=&&
 
 
 	Htt	
 	
 	
 	
 	
 	
r3   N)r   r   r   r   r   r   r   r   r   r   r   r'   r   rv   
date_ranger\   r   r   r   r   r   r   r   r   r   r  r   r3   r1   r   r      sW       ) ) )0 0 0*( ( (8 8 8( [UEE!HHUIBIc3''(US#JUMBMFAFFFG		
  [UEE!HHUIBIc3''(US#JUMBMFAFFFG		
 66(,6 6 6  $6>6 6 6"., ., .,`J J J [X#s6G'HII. . JI.	H 	H 	H0 0 00 0 0 [W&@&@&@AA0 0 BA0
 
 
 
 
r3   r   )copyr   numpyr'   r   pandasrv   r   r   r   r   r   pandas._testing_testingr*   r
   r   r   r3   r1   <module>r	     s                                     n4 n4 n4 n4 n4 n4 n4 n4bF
 F
 F
 F
 F
 F
 F
 F
 F
 F
r3   