
    Pi?                     &   d dl mZmZ d dlmZ d dlmZ d dlmZ d dlZd dl	Z
d dlZd dlmZmZ d dlZd dlmZmZmZmZmZmZmZmZ d dlmZ d dlmZ d d	lmZ  G d
 d          Z d Z!d Z"d Z#d Z$d Z%ej&        '                    dg dg dg          d             Z(d Z)ej&        *                    d          ej&        '                    d ej+        d e
j,        d d          i           ej-         e
j,        d d          d          g          d                         Z.d Z/d Z0ej&        '                    dg d          d              Z1ej&        '                    d!d"gd#z  d$fd"gd#z  d%fg d&d%fg d&d$fg          d'             Z2d( Z3d) Z4ej&        '                    d* ed+d,g-           ed.d+d,gi-           ee5/           ee5/          g          d0             Z6ej&        '                    d* ed+d,g-           ed.d+d,gi-           ee5/           ee5/          g          d1             Z7ej&        '                    d2g d3          ej&        '                    d4g d5          d6                         Z8ej&        '                    d2g d3          ej&        '                    d4g d5          d7                         Z9d8 Z:d9 Z;d: Z<d; Z=d< Z>d= Z?d> Z@ej&        '                    d? ed d+gd,d#gd@           edAdBgdC          gd%d  eg dDg dEg dFdGg dHI          f ed d+gd,d#gd@           edAdBgdC          gd$d  eg dDg dEg dFdGg dJI          f ed d+gd,d#gd@           edAdBg           edAdBg          gd%d+ ed d+gd,d#gdAdBgdAdBgdKd d+gI          f ed d+gd,d#gd@           edAdBg           edAdBg          gd$d+ ed d+gd,d#gdAdBgdAdBgdJd d+gI          fg          dL             ZAdS )M    )abcdeque)Iterator)datetime)DecimalN)InvalidIndexErrorPandas4Warning)	DataFrameIndex
MultiIndexPeriodIndex
RangeIndexSeriesconcat
date_range)SparseArray)
to_decimalc                   |   e Zd Zd Zd Zd Zd Zej        	                    dddg          d             Z
d Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej        	                    deeg          ej        	                    dddg          d                         Zd Zd Zd Zd Zd Zd Zd Z d  Z!d!S )"TestConcatenatec                 4   t          ddd          }t          ddd          }t          t          j                            d                              d          |          }t          t          j                            d                              d          |          }|                                }|                                }t          ||g          }t          |j	        t                    sJ |j	        d	         |j	        d	         k    sJ d S )
Nz
12/31/1990z
12/31/1999zYE-DEC)freqz
12/31/2000z
12/31/2009   
   r   )r   r   nprandomdefault_rngstandard_normal	to_periodr   
isinstanceindexr   )selfd1d2s1s2results         {/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/reshape/concat/test_concat.pytest_append_concatz"TestConcatenate.test_append_concat#   s    lBBBlBBBBI))!,,<<R@@"EEBI))!,,<<R@@"EE\\^^\\^^ R!!&,44444|A"(1+------    c                    t          t          j                            d                              d                    }t          t          j                            d                              ddd                              dd                    }t          dd	it          d          
          }t          |||gd          }|j	        j
        D ]}|j        j        j        dk    r&j        |j	        j
        d         j        j        u sJ ?j        j        dv r&j        |j	        j
        d         j        j        u sJ sj        t          k    r
j        J j        dk    r*t!          j        |j	        j
        d         j                   t          t          j                            d                              d                    }t          ||||gd          }|j	        j
        D ]}|j        j        j        dk    rEt%          fdt'          j        |j	        j
        |j	        j
                  D                       sJ ^j        j        dv r&j        |j	        j
        d         j        j        u sJ j        t          k    r't%          fd|j	        j
        D                       sJ d S )Nr         r   r   r,   )size      foor    axisf)iustring)r,   r/   c              3   L   K   | ]}t          j        |j                  V  d S Nr   shares_memoryvalues.0blockarrs     r'   	<genexpr>z3TestConcatenate.test_concat_copy.<locals>.<genexpr>L   sF         $S%,77     r)   c              3   L   K   | ]}t          j        |j                  V  d S r:   r;   r>   s     r'   rB   z3TestConcatenate.test_concat_copy.<locals>.<genexpr>T   sC        <AB$S%,77     r)   )r
   r   r   r   r   integersreshaperanger   _mgrblocksr=   dtypekindbaseobjecttmr<   any	itertoolschain)	r!   dfdf2df3r&   r@   df4rH   rA   s	           @r'   test_concat_copyz TestConcatenate.test_concat_copy3   s   ry,,Q//??GGHH	--a0099!Ra9HHPPQRTUVVWWE
%((333S#Q///[' 		A 		AE,Cy~$$x27>!#4#;#@@@@@@:--x38?1#5#<#AAAAAAf$$x++++h&& choa&8&?@@@ 	--a00@@HHIIS#s+!444k( 	 	F-Cy~$$    !*!Q!Q         :--x38?1#5#<#AAAAAAf$$    EHX_       	 	r)   c                 "   t          t          j                            d                              d                    }t          t          j                            d                              d                    }t          ||gddg          }t          j        g dg dg          }t          t          j        |j	        |j	        f         |	          }t          j        ||           t          ||gddg          }t          j        g d
g dg          }t          t          j        |j	        |j	        f         |	          }t          j        ||           t          t          j                            d                              d                    }t          t          j                            d                              d                    }t          ||gddgd          }t          t          j        |j	        |j	        f         |          }t          j        ||           t          ||gddgd          }t          t          j        |j	        |j	        f         |          }t          j        ||           d S )Nr   )r-   r,   )r,   r,   r   r/   keys)r   r   r   r/   r/   r/   r/   )r   r/   r   r   r/   r   r-   r2   )r   r   r   r/   r/   r/   )r   r/   r   r   r/   r   r+   rX   r4   columns)r
   r   r   r   r   r   r   from_arraysr_r=   rM   assert_frame_equalc_)r!   rQ   rR   r&   	exp_indexexpected
exp_index2s          r'   test_concat_with_group_keysz+TestConcatenate.test_concat_with_group_keysX   sB   ry,,Q//??GGHH	--a00@@HHIIS	A///*"""$9$9$9:
 
	 RU29cj#89KKK
fh///R1v...+-?-?-?ASASAS,TUU
RU29bi#78
KKK
fh/// ry,,Q//??GGHH	--a00@@HHIIS	AQ777RU29cj#899MMM
fh///R1vA666RU29bi#78*MMM
fh/////r)   c                     t          t          j                            d                              d                    }|j        d d ddgf         |j        d d dgf         |j        d d dgf         g}g d}t          |dg d|gdg	          }t          j        |j	        j
        d         t          |d
                     t          j        |j	        j
        d         t          g d                     |j	        j        dd gk    sJ d S )Nr   r   r,   r   r/   r-   )threetwoonezero)rh   rg   rf   	group_key)r4   rX   levelsnamesnamer   r/   r   r-   )r
   r   r   r   r   ilocr   rM   assert_index_equalr[   rk   r   rl   )r!   rQ   pieceslevelr&   s        r'    test_concat_keys_specific_levelsz0TestConcatenate.test_concat_keys_specific_levelsu   s   ry,,Q//??HHII'!!!aV)$bgaaa!forwqqq1#vG///(((7-
 
 
 	fn3A6e+8V8V8VWWW
fn3A6lll8K8KLLL~#T':::::::r)   mappingdictc           
         |dk    rt           n|} |t          t          j                            d                              d                    t          t          j                            d                              d                    t          t          j                            d                              d                    t          t          j                            d                              d                    d          t                                                    }t                    }t          fd|D             |          }t          j
        ||           t          d          }t          fd	|D             |d
          }t          j
        ||           g d}t          |          }t          fd|D             |          }t          j
        ||           d S )Nrv   r   r+   )r1   barbazquxc                      g | ]
}|         S  r|   r?   kframess     r'   
<listcomp>z7TestConcatenate.test_concat_mapping.<locals>.<listcomp>       :::6!9:::r)   rW   r/   r3   c                      g | ]
}|         S r|   r|   r}   s     r'   r   z7TestConcatenate.test_concat_mapping.<locals>.<listcomp>   r   r)   rY   )ry   r1   rx   c                      g | ]
}|         S r|   r|   r}   s     r'   r   z7TestConcatenate.test_concat_mapping.<locals>.<listcomp>   s    3336!9333r)   )rv   r
   r   r   r   r   listrX   r   rM   r^   )	r!   ru   non_dict_mapping_subclassconstructorsorted_keysr&   ra   rX   r   s	           @r'   test_concat_mappingz#TestConcatenate.test_concat_mapping   s   %//dd5N !6!6q!9!9!I!I&!Q!QRR !6!6q!9!9!I!I&!Q!QRR !6!6q!9!9!I!I&!Q!QRR !6!6q!9!9!I!I&!Q!QRR	 
 
 6;;==))::::k:::MMM
fh///Q'''::::k:::STUUU
fh///$$$T***3333d333$???
fh/////r)   c                 
   t          t          j                            d                              d                    }t          t          j                            d                              d                    }ddgddgg}dd	g}t          ||||gg d
||          }t          ||||g          }t          g |dgg dg dg dgg |d           }||_        t          j	        ||           t          ||||gg d
|          }|j        j
        dk    sJ t          ||||gg d
dd	g          }|j        j
        dk    sJ t          j        |j        j        d         t          ddgd                     d S )Nr   r/   r-   r/   r,   r1   ry   rh   rg   firstsecond))r1   rh   )r1   rg   )ry   rh   )ry   rg   )rX   rk   rl   r   r   r   r/   r/   r   r/   r   r/   r   r   r   r   )rk   codesrl   rX   rk   )NNNrX   rl   )r   r   Nrm   )r
   r   r   r   r   r   r   r    rM   r^   rl   rq   rk   r   )r!   rQ   rR   rk   rl   r&   ra   r`   s           r'   test_concat_keys_and_levelsz+TestConcatenate.test_concat_keys_and_levels   s   ry,,Q//??GGHH	--a00@@HHII%.5%.1(#b#QQQ	
 
 
 2sB,--!V>aS><<|||< E.4.
 
 
	
 #
fh/// b#QQQ
 
 

 |![0000 b#QQQH%
 
 

 |!%>>>>>
L"E5%.w$G$G$G	
 	
 	
 	
 	
r)   c                 H   t          t          j                            d                              d          dg          }t          t          j                            d                              d          dg          }d}t          j        t          |          5  t          ||gd	d
gg dg           d d d            n# 1 swxY w Y   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 )Nr   r   ar2   r   bz Values not found in passed levelmatchrh   rg   )r1   rx   ry   r   zKey one not in level)	r
   r   r   r   r   pytestraises
ValueErrorr   )r!   rQ   rR   msgs       r'   "test_concat_keys_levels_no_overlapz2TestConcatenate.test_concat_keys_levels_no_overlap   s   ry,,Q//??GGPSuUUU	--a00@@HHQTPUVVV0]:S111 	R 	RB85%.:O:O:O9PQQQQ	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R %]:S111 	S 	SB9E5>;P;P;P:QRRRR	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	Ss$   "CCC0DDDc           	         g d}t          t          j        g dd          t          j        g dd          t          j        g dd          t          j        g dd          d|          }t          t          j        g dd          t          j        g dd          t          j        g dd          t          j        g dd          d|          }t          ||gd          }t          t          j        |j        |j        gd	
          |          }t          j        ||           t          t          j        	                    d          
                    d          dg          }t          t          j        	                    d          
                    d          dg          }t          ||gddgddg          }|j        j        dk    sJ d S )N)ABCDr/   r   r-   r,   f8rI   i8rZ   Tignore_indexr   r3   r   r   r   r2   r   r   rh   rg   r   r   r   )r   r   )r
   r   arrayr   concatenater=   rM   r^   r   r   r   r    rl   )r!   r[   df1rR   appendedra   rQ   r&   s           r'    test_crossed_dtypes_weird_cornerz0TestConcatenate.test_crossed_dtypes_weird_corner   s   &&&Xlll$777Xlll$777Xlll$777Xlll$777	  
 
 
 Xlll$777Xlll$777Xlll$777Xlll$777	  
 
 
 3*4888NCJ
3!<<<g
 
 
 	h111ry,,Q//??GGPSuUUU	--a00@@HHQTPUVVVS	w>QRRR|!%8888888r)   c                     t          dddt          d                    }t          dddt          d                    }t          ||g|           d S )Nr1   rx   )r   r   r/   r   r2   )r   r   sort)r
   rF   r   )r!   r   r   rR   s       r'   test_with_mixed_tuplesz&TestConcatenate.test_with_mixed_tuples   sc     eu55U1XXFFFeu55U1XXFFF 	Sz%%%%%%r)   c                 z   t          ddd          }t          j        dd          }t          ||          }t          ||          }t	          |                    dd	          |          }t	          t          j        |d
                              dd
          |ddg          }t          ||gd	          }t          j	        ||           t	          t          j        |d
                              dd
          |dd	g          }t          ||gd	          }t          j	        ||           t	          t          j        |d                              dd          |g d          }t          |||gd	          }t          j	        ||           t	          t          j        |d                              dd          |g d          }t          |||||gd	          }t          j	        ||           d|_
        t	          t          j        |d                              dd          |g d          }t          |||gd	          }t          j	        ||           d|_
        t	          t          j        |d                              dd          |g d          }t          |||gd	          }t          j	        ||           t	          t          j        |d                              dd          |g d          }t          |||gd	d          }t          j	        ||           d S )N01-Jan-2013r   hperiodsr   int64r   r2   r/   r   r   r    r[   r3   r-   r   r/   r   r0   )r   r   r/   r   r-   r1   )r1   r   r   rx   r1   r   rx   T)r4   r   )r   r   aranger   r
   rE   repeatr   rM   r^   rn   r!   r    rA   r$   r%   rQ   ra   r&   s           r'   test_concat_mixed_objs_columnsz.TestConcatenate.test_concat_mixed_objs_columns  sf    ="3???i'***Cu%%%Cu%%%s{{2q))777Ic1%%b!,,EAq6
 
 
 Rq)))
fh///Ic1%%b!,,EAq6
 
 
 Rq)))
fh///Ic1%%b!,,E999
 
 
 R1---
fh///Ic1%%b!,,E???
 
 
 RR,1555
fh/// Ic1%%b!,,E===
 
 
 R1---
fh///Ic1%%b!,,ECTCTCT
 
 
 R1---
fh/// Ic1%%b!,,E999
 
 
 R14@@@
fh/////r)   c                    t          ddd          }t          j        dd          }t          ||          }t          ||          }t	          |                    dd	          |          }t	          t          j        |d
                              dd	          |                                d
z  dg          }t          |||g          }t          j
        ||           d S )Nr   r   r   r   r   r   r2   r   r/   r-   r   r   )r   r   r   r   r
   rE   tiletolistr   rM   r^   r   s           r'   test_concat_mixed_objs_indexz,TestConcatenate.test_concat_mixed_objs_index9  s     ="3???i'***Cu%%%Cu%%%s{{2q))777GCOO##B**%,,..12Dqc
 
 
 R%%
fh/////r)   c           	      n   t          ddd          }t          j        dd          }t          ||d          }t          ||d	          }t	          |                    d
d          |          }t	          t          j        t          j        t          j        d          dk    dt          j	                  |          j
        |                                dz  g d          }t          |||g          }t          j        ||           t	          t          j        t          j        t          j        d          dk    dt          j	                  |          j
        t          j        dt          j                  g d          }t          |||gd          }t          j        ||           d S )Nr   r   r   r   r   r   r1   )r    rn   rx   r   r/   r2   r-   r   r      Tr   )r   r   r   r   r
   rE   kronwhereidentitynanTr   r   rM   r^   r   r   s           r'   "test_concat_mixed_objs_index_namesz2TestConcatenate.test_concat_mixed_objs_index_namesI  s    ="3???i'***Cu5111Cu5111s{{2q))777GBHR[^^q0!RV<<cBBD,,..1$%%%
 
 

 R%%
fh///GBHR[^^q0!RV<<cBBD)Bbh///%%%
 
 

 R4888
fh/////r)   c           	         t          dt          j        d                              d          t          j        gi          }t          |j        dg         |j        dg         g          }t          j        |j	        |j	                   t          dt          ddd          t          ddd          gi          }t          |j        dg         |j        dg         g          }t          j        |j	        |j	                   t          d	d
gd gdz  z   i          }t          |j        dg         |j        dg         g          }t          j        |j	        |j	                   d S )Ndate20130101UTCr   r/   i  i  r   textz
some words	   )r
   pd	Timestamptz_localizeNaTr   rp   rM   assert_series_equaldtypesr   )r!   rQ   r&   s      r'   test_dtype_coercionz#TestConcatenate.test_dtype_coercione  s6   j!9!9!E!Ee!L!Lbf UVWW!rws|455
v}bi888 $1!5!5xa7K7K LMNN!rws|455
v}bi888 $! ;<==!rws|455
v}bi88888r)   c                    t          t          j                            d                              d                    }t          |gdg          }t          ||gddg          }t          j        ||d d                    d S )Nr   re   r1   rW   rx   r   )r
   r   r   r   r   r   rM   r^   )r!   rQ   r&   ra   s       r'   test_concat_single_with_keyz+TestConcatenate.test_concat_single_with_keyv  s~    ry,,Q//??HHIIE7+++2r(%888
fhssm44444r)   c                     t          j        t          d          5  t          g            d d d            d S # 1 swxY w Y   d S )NzNo objects to concatenater   )r   r   r   r   r!   s    r'   test_concat_no_items_raisesz+TestConcatenate.test_concat_no_items_raises}  s    ]:-HIII 	 	2JJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   9= =c                    t          t          j                            d                              d                    }|d d         d d |dd          g}t          |          }t          j        ||           t          j	        t          d          5  t          d d g           d d d            d S # 1 swxY w Y   d S )Nr   re   r0   zAll objects passed were Noner   )r
   r   r   r   r   r   rM   r^   r   r   r   )r!   rQ   rr   r&   s       r'   test_concat_exclude_nonez(TestConcatenate.test_concat_exclude_none  s    ry,,Q//??HHIIRaR&$bf-
fb)))]:-KLLL 	! 	!D$<   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s   B44B8;B8c                    t          g dg dg dg          }t          d ||d d         |d d         |d          }t          ||d d         |d d         |d          }t          j        ||           t          d ||d d         |d d         |gg d          }t          ||d d         |d d         |gg d          }t          j        ||           d S )N)r      r   r   r/   )r   r   cde)r   r   r   r   rW   r
   r   rM   r^   )r!   df0r&   ra   s       r'   test_concat_keys_with_nonez*TestConcatenate.test_concat_keys_with_none  s   |||\\\BCCd3rr7RaRsSSTT#bqb'BQBcJJKK
fh///3BQBRaR#.5N5N5N
 
 
 3BQBRaR#6=Q=Q=QRRR
fh/////r)   klassinclude_noneTFc                    t          ddg          }t          ddg          }|r|d |d gn||g}|rdnd}t          | ||                    }t          g dt          t          d||dz            t          ddd          ft	          j        g d	t          j        
          t	          j        g dt          j        
          f                    }t          j        ||           d S )Nr/   r   r-   r,   rW   r   r   )startstopstepr   r   r   )rk   r   r2   )	r
   r   r   r   r   r   int8rM   r^   )	r!   r   r   rQ   rR   datakeys_lengthr&   ra   s	            r'    test_concat_preserves_rangeindexz0TestConcatenate.test_concat_preserves_rangeindex  s    1vA(4CD#t$$2s)'.aaQ55#5#5666LLQ[{QOOOQQQ777
 H\\\999H\\\999	 	 	
 
 
 	fh/////r)   c                    t          t          j        dt          j                  t	          dd                    }|d d d         }t          ||gdd	          }d
}t          j        t          |          5  t          ||gdd	          }d d d            n# 1 swxY w Y   t          |          t          |          k    sJ d S )Nr   r   z
2020-01-01)r   r2   r   outerr/   )joinr4   zESorting by default when concatenating all DatetimeIndex is deprecatedr   )
r   r   r   float64r   r   rM   assert_produces_warningr	   len)r!   ts1ts2leftr   rights         r'   test_concat_bug_1719z$TestConcatenate.test_concat_bug_1719  s   Ib
+++:lTV3W3W3W
 
 
 ##A#h sCjwQ777U'cBBB 	= 	=C:G!<<<E	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 4yyCJJ&&&&&&s   ;BB #B c                 ,   t          t          j        d                    }t          t          j        d                    }dx|_        |_        t          ||gd          }t          ||d          }ddg|_        t          j	        ||           d S )Nr0   z	same namer/   r3   r   r/   )
r   r   zerosonesrn   r   r
   r[   rM   r^   )r!   ts0r   r&   ra   s        r'   test_concat_bug_2972z$TestConcatenate.test_concat_bug_2972  s    RXa[[!!RWQZZ  ))38c
+++--..'5
fh/////r)   c                    t          g dg dg dd          }t          g dg dg dd          }t          g dg d	g d
g dg          }g d|_        t          ||gd          }t          j        ||           d S )Nr   )   r  r  r  )rrrr  r  r  )firmNoprc	stringvar)r   r         r   )r   miscr	  )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/   r3   )r
   r[   r   rM   r^   )r!   r   rR   ra   r&   s        r'   test_concat_bug_3602z$TestConcatenate.test_concat_bug_3602  s    &,,#||999 
 
 !//<<<MM
 
 &&&'''''''''	
 
 NMMc
+++
fh/////r)   c                    t          g d          t          g d          t          g d          }t          j        t          fd          |           t          j        t          gd          |           t          j        t          d fD             d          |           t          j        t          t	          f          d          |            G fdd          }t          j        t           |            d          |            G fd	d
t
          j                  }t          j        t           |            d          |           d S )Nr/   r   r-   r,   r0   r  r/   r   r-   r,   r0   r  Tr   c              3      K   | ]}|V  d S r:   r|   )r?   rQ   s     r'   rB   z8TestConcatenate.test_concat_iterables.<locals>.<genexpr>  s"      ,,2B,,,,,,r)   c                   (    e Zd ZdefdZ fdZdS )>TestConcatenate.test_concat_iterables.<locals>.CustomIterator1returnc                     dS )Nr   r|   r   s    r'   __len__zFTestConcatenate.test_concat_iterables.<locals>.CustomIterator1.__len__  s    qr)   c                 P    	 d|         S # t           $ r}t          |d }~ww xY w)Nr   )KeyError
IndexError)r!   r    errr   rR   s      r'   __getitem__zJTestConcatenate.test_concat_iterables.<locals>.CustomIterator1.__getitem__  sB    ."s++E22 . . .$#-.s   
 
% %N)__name__
__module____qualname__intr  r  r   rR   s   r'   CustomIterator1r    sN            . . . . . . . .r)   r#  c                   "    e Zd Zdef fdZdS )>TestConcatenate.test_concat_iterables.<locals>.CustomIterator2r  c              3      K   V  V  d S r:   r|   )r!   r   rR   s    r'   __iter__zGTestConcatenate.test_concat_iterables.<locals>.CustomIterator2.__iter__  s      								r)   N)r  r  r   r   r'  r"  s   r'   CustomIterator2r%    s?        (         r)   r(  )r
   rM   r^   r   r   r   Iterable)r!   ra   r#  r(  r   rR   s       @@r'   test_concat_iterablesz%TestConcatenate.test_concat_iterables  s    			""			""///00
fc3ZdCCCXNNN
fc3ZdCCCXNNN
,,#s,,,4@@@(	
 	
 	
 	fUC:%6%6TJJJHUUU	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	f__%6%6TJJJHUUU	 	 	 	 	 	 	 	cl 	 	 	
 	f__%6%6TJJJHUUUUUr)   c                     t          t          d          g d          g}|d t          d          D             z  }t          |d          j        }t	          g d          }t          j        ||           d S )	Nr-   )r   r/   Nr   c                 N    g | ]"}t          t          d           g d          #S )r-   )Nr/   r   r   )r
   rF   )r?   _s     r'   r   z5TestConcatenate.test_concat_order.<locals>.<listcomp>  s/    VVVa	a...AAAVVVr)   d   Tr   )r/   r   N)r
   rF   r   r[   r   rM   rq   )r!   dfsr&   ra   s       r'   test_concat_orderz!TestConcatenate.test_concat_order  s    uQxx@@@AVV5QT::VVVV$'''/((
fh/////r)   c                 D   t          t          j        ddgd                    }t          t          ddg                    }t	          ||gd          }t          ddt          d          t          d          gt                    }t          j        ||           d S )Nr/   r   Int64r   Tr   )	r   r   r   r   r   r   rL   rM   r   )r!   r   r   r&   ra   s        r'   .test_concat_different_extension_dtypes_upcastsz>TestConcatenate.test_concat_different_extension_dtypes_upcasts
  s    28QF'22233:q!f%%&&AT2221aWQZZ8GGG
vx00000r)   c                 N   t          t          t          d                    t          t          d                    gddg          }t          t          t          d                    t          t          d                    d          }t          j        ||           d S )Nr-   r,   FirstAnotherrW   )r5  r6  )r   r   rF   rM   r   )r!   ra   r&   s      r'   test_concat_ordered_dictz(TestConcatenate.test_concat_ordered_dict  s    E!HHveAhh//07K
 
 
 &q"2"2veAhh?O?OPPQQ
vx00000r)   c                    t          t          j                            d                              d          g ddg          }t          t          j                            d                              d          g ddg          }d}t          j        t          |	          5  t          ||gd
           d d d            d S # 1 swxY w Y   d S )Nr   r0   )r   r/   r   r-   r-   r   r   )r   r/   r   r   r,   r   z8Reindexing only valid with uniquely valued Index objectsr   r/   r3   )	r
   r   r   r   r   r   r   r   r   )r!   r   rR   r   s       r'   #test_concat_duplicate_indices_raisez3TestConcatenate.test_concat_duplicate_indices_raise  s!    I!!!$$44Q77!//E
 
 

 I!!!$$44Q77!//E
 
 

 I],C888 	' 	'C:A&&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's   (C		CCN)"r  r  r   r(   rU   rc   rt   r   markparametrizer   r   r   r   r   r   r   r   r   r   r   r   r   rF   r   r   r   r  r  r*  r0  r3  r7  r9  r|   r)   r'   r   r   "   s       . . . # # #J0 0 0:; ; ;" [YF(;<<0 0 =<04'
 '
 '
RS S S9 9 9B& & &60 60 60p0 0 0 0 0 089 9 9"5 5 5  ! ! !0 0 0 [Wuj&9::[^dE];;0 0 <; ;:0*' ' '0 0 00 0 02V V V@0 0 01 1 11 1 1' ' ' ' 'r)   r   c           	      P    |t                     j        }| } |t          j        dg||                     |t          j        t          j        g||                     |t          j        dg||                    g}t          |          }|j        j        |k    sJ d S )Nr   r/   rI   ndminr0   )rL   ndimr   r   r   r   r=   rI   )float_numpy_dtypeframe_or_seriesdimsdtr/  xs         r'   !test_concat_no_unnecessary_upcastrE  ,  s    ?(((-D	B 	!Bd;;;<<"&4@@@AA!Bd;;;<<C
 	sA8>Rr)   c           	      @   |} |             j         } | t          j        dg||                     | t          j        t          j        g|                     | t          j        dg||                    g}t	          |          }|j        j        dk    sJ d S )Nr/   r=  )r>  r0   r   )r?  r   r   r   r   r=   rI   )rA  any_signed_int_numpy_dtyperC  rB  r/  rD  s         r'   test_concat_will_upcastrH  :  s    	#B?!D!Bd;;;<<"&66677!Bd;;;<<C
 	sA8>Y&&&&&&r)   c                      t          ddgi          } t          dg i          }t          ddgi          }t          | |g          }t          j        ||           d S )Nr1   r/   g      ?r   )r   rR   ra   r&   s       r'   0test_concat_empty_and_non_empty_frame_regressionrJ  F  sc    
UQCL
!
!C
UBK
 
 C%#((HS#JF&(+++++r)   c                  $   t          t          g d                    } t          ddgddgddgg                              t	          j        t          j        d                    }t          | | gd          }t          j
        ||           d S )Nr   r   r/   r   r   r3   )r   r   r
   astyper   SparseDtyper   r   r   rM   r^   )r   ra   r&   s      r'   test_concat_sparserO  O  s    {999%%&&A1v1v1v6777>>
rx## H QF###F&(+++++r)   c                  r   t          j        t          j        d           } t	          t           j                            dd g          |           }t	          dgt                    }t	          g dg d                              |           }t          ||gd          }t          j        ||           d S )Nr/   r   )r/   Nr/   )r   r/   r   r   r    r   r3   )r   rN  r   r   r   arraysr   floatrM  r   rM   r   )rI   r   r   ra   r&   s        r'   test_concat_dense_sparserT  Y  s    N2:t,,Ery$$aY//u===As%   A<<<yyy999@@GGHQF###F68,,,,,r)   rX   )r   r5   r5   )r5   r   r5   c                 z   t          g dg dd          }t          g dd          }t          g dd          }t          |||gd	| 
          }g dg dg dg}t          j        | d         df| d         df| d	         df| d         dfg          }t          ||          }t          j        ||           d S )Nr  r  r   r   )      r   r   rm   )r   r  r  r   r/   r4   rX   )r/   r,   rW  r   )r   r0   rX  r  )r-   r  r   r  r   r   r   r   rZ   )r
   r   r   r   from_tuplesrM   r^   )rX   rQ   r$   r%   r&   expected_valuesexpected_columnsra   s           r'   test_duplicate_keysr]  c  s     
33	4	4B					$	$	$B	3	'	'	'BRRLqt444F$}}mmm]]]CO!-
q'3$q'3$q'3$q'3H  2BCCCH&(+++++r)   c                  4   ddg} t          g dg dd          }t          ||gd|           }g dg dg d	g}t          j        | d
         df| d
         df| d         df| d         dfg          }t          ||          }t	          j        ||           d S )Nr   r  r  rV  r/   rY  )r/   r,   r/   r,   )r   r0   r   r0   )r-   r  r-   r  r   r   r   rZ   )r
   r   r   rZ  rM   r^   )rX   rQ   r&   r[  r\  ra   s         r'   test_duplicate_keys_same_framer_  r  s    :D	33	4	4BRH14000F#||\\\<<<@O!-
q'3$q'3$q'3$q'3H  2BCCCH&(+++++r)   zMignore:Passing a BlockManager|Passing a SingleBlockManager:DeprecationWarningobjr   r   rm   c                 f    t          | | g          }t          |t          |                     sJ d S r:   )r   r   type)r`  r&   s     r'   test_concat_preserves_subclassrc    s7     S#JFfd3ii(((((((r)   c                     t          dt          j        g dd          i          } t          dt          j        g d          i          }t	          | |gd          }t          dg did          }t          j        ||           t	          || gd          }t          dg d	id          }t          j        ||           d S )
Nr   r  r2  r   r  Tr   r  )r,   r0   r  r/   r   r-   )r
   r   r   r   r   rM   r^   r   rR   r&   ra   s       r'   (test_concat_frame_axis0_extension_dtypesrf    s    
S"(999G<<<=
>
>C
S"(999--.
/
/CS#JT222F#1112'BBBH&(+++S#JT222F#1112'BBBH&(+++++r)   c                      t          ddgid          } t          ddgid          }t          | |gd          }t          dd gd dgd	d          }t          j        ||           d S )
Nr   r   r2  r   r   r/   Tr   rV  r   )df_adf_br&   ra   s       r'   +test_concat_preserves_extension_int64_dtyperj    s    cB4[000DcA3Zw///DT4Lt444FDzq	::'JJJH&(+++++r)   zdtype1,dtype2,expected_dtype))boolrk  rk  )booleanrk  rl  )rk  rl  rl  )rl  rl  rl  c                     t          ddg|           }t          ddg|          }t          ||gd          }t          g d|          }t          j        ||           d S )NTFr   r   )TFFT)r   r   rM   r   )dtype1dtype2expected_dtypeser1ser2r&   ra   s          r'   test_concat_bool_typesrs    sx     4-v...D5$-v...DT4Lt444F000GGGH68,,,,,r)   )rX   	integrityredr-   TF)ru  blueru  c                 @   t          ddi          t          ddi          t          ddi          g}t          || |          }t          t          | g d                    }t          g d	t	          j        |          
          }t          j        ||           d S )Nr   r/   r   r   r   r-   )rX   verify_integrityr   r   r   r  r2   )r   r   r   zipr   rZ  rM   r   )rX   rt  series_listr&   tuplesra   s         r'   test_concat_repeated_keysr}    s     3(##VS!H%5%5vsAh7G7GHKKdYGGGF#dOOO,,--Fiiiz'=f'E'EFFFH68,,,,,r)   c                     t          j        dgdd          } t          ddgi|           }t          d gdd	          }t          d gt          j        gd
|          }t          ||gd          }t          d | d         gt                    }t          t	          j        d t          j        gt                    t          j        t          j        gt          j        dgd|          }t          j
        ||           d S )Nz2021-04-08 21:21:14+00:00zdatetime64[ns, UTC]z
Time (UTC))rI   rn   r   g!u?rQ  rL   zMaybe Time (UTC))r   r   r[   r3   r   r   r   r   r   r2   )r   DatetimeIndexr
   r   r   r   r   rL   r   rM   r^   )dtir   idxr   r&   r`   ra   s          r'    test_concat_null_object_with_dtir    s   

	$%-B  C C&?#666E
h-?
@
@
@CbfX66cBBBDT5M	222FtSVnF333I4.777&"&!&&!	
 	

   H &(+++++r)   c                  :   t          j        ddg          } t          ddgg|           }t          dgt          d                    }t	          ||g          }t          ddgt
          j        t
          j        gg|           }t          j        ||           d S )Nr   )r   r/   r/   r   rZ   r   r   )	r   rZ  r
   r   r   r   r   rM   r^   )mir   rR   r&   ra   s        r'   ,test_concat_multiindex_with_empty_rangeindexr    s    		8 4	5	5B
aVHb
)
)
)C
1#z!}}
5
5
5CS#JF1a&2626"23R@@@H&(+++++r)   r   r/   r   rL  col1r   c                     |                                  }ddi|_        |                                  }ddi|_        t          ||g          }t          |j                  dk    sJ d S )Nr/   r   r   )copyattrsr   r   r   r   rR   rQ   s       r'   test_concat_drop_attrsr    sd     ))++CACI
))++CACI	c
		Brx==Ar)   c                     |                                  }ddi|_        |                                  }ddi|_        t          ||g          }|j        d         dk    sJ d S )Nr/   )r  r  r   r  s       r'   test_concat_retain_attrsr    sb     ))++CACI
))++CACI	c
		B8A;!r)   df_dtype)r   r   datetime64[ns]empty_dtype)Nr   rL   c                 ~   t          ddgddgd|          }t          ddg|           }d}|d	k    s|d
k    r| d
k    rd}t          ||g          }|}|dk    r1| d
k    r|                    d
          }n|                    d          }|r|                    t                    }t	          j        ||           d S )Nr/   r   r1   rx   r   r1   rx   )r[   rI   Fr  r   Tr   rL   )r
   r   rM  rL   rM   r^   r  r  rQ   emptyneeds_updater&   ra   s          r'   %test_concat_ignore_empty_object_floatr    s     
Aq61a&11	B	B	BBuenK@@@EL###I+":":UBK  FH7)##yy++HHyy**H +??6**&(+++++r)   c                    t          ddgddgd|          }t          t          j        gt          j        gd|           }|dk    r| dk    rd}nd}d}| |k    r| d	}n|d
k    rd	}t          ||gd	          }t          t          j        ddgt          j        ddgd|          }|r.|                    t
                    }t          j        |j        d<   t          j        ||           d S )Nr/   r   r  r   r   rL   r   FTr  r   r   )	r
   r   r   r   rM  rL   rp   rM   r^   r  s          r'   &test_concat_ignore_all_na_object_floatr  8  s    
Aq61a&11	B	B	BBrvhx88LLLE7(""HH HLh;#:	%	%	%UBKd333F"&!QAGGxXXXH "??6**6a&(+++++r)   c                     t          dgt          j        d          gd          } t          ddgi          }|                    | j                  }t          | |gd          }t          ddgt          j        t          j        d          t          j        gt          	          dt          	          }|d         
                    d
          |d<   t          j        ||           d S )Nr/   z
2012-01-01rV  r   r   rZ   Tr   r   r   )r
   r   r   reindexr[   r   r   r   r   rL   rM  rM   r^   )r   rR   alignedr&   ra   s        r'   %test_concat_ignore_empty_from_reindexr  U  s    
1#R\,%?%?$@AA
B
BC
S1#J

Ckk#+k..GS'N666FQ2<55rv>fMMM	
 	
   H SM((11HSM&(+++++r)   c                     t          t          d                    fdt          d          D             } g d}d}t          j        t          |          5  t          | |d           d d d            n# 1 swxY w Y   t          j        t          |          5  t          | |d	           d d d            n# 1 swxY w Y   t          j        t          |          5  t          d
 | D             d |D             d           d d d            n# 1 swxY w Y   t          j        t          |          5  t          d | D             d |D             d	           d d d            d S # 1 swxY w Y   d S )Nr0   c                     g | ]}|z   S r|   r|   )r?   nsers     r'   r   z6test_concat_mismatched_keys_length.<locals>.<listcomp>l  s    &&&C!G&&&r)   r,   r  zThe length of the keysr   r/   rY   r   c              3      K   | ]}|V  d S r:   r|   r?   rD  s     r'   rB   z5test_concat_mismatched_keys_length.<locals>.<genexpr>u  "        a      r)   c              3      K   | ]}|V  d S r:   r|   r?   ys     r'   rB   z5test_concat_mismatched_keys_length.<locals>.<genexpr>u  "      '8'8a'8'8'8'8'8'8r)   c              3      K   | ]}|V  d S r:   r|   r  s     r'   rB   z5test_concat_mismatched_keys_length.<locals>.<genexpr>w  r  r)   c              3      K   | ]}|V  d S r:   r|   r  s     r'   rB   z5test_concat_mismatched_keys_length.<locals>.<genexpr>w  r  r)   )r   rF   r   r   r   r   )sersrX   r   r  s      @r'   "test_concat_mismatched_keys_lengthr  i  s   
q

C&&&&U1XX&&&D??D
#C	z	-	-	- ( (t$Q''''( ( ( ( ( ( ( ( ( ( ( ( ( ( (	z	-	-	- ( (t$Q''''( ( ( ( ( ( ( ( ( ( ( ( ( ( (	z	-	-	- B B  4   '8'84'8'8'8qAAAAB B B B B B B B B B B B B B B	z	-	-	- B B  4   '8'84'8'8'8qAAAAB B B B B B B B B B B B B B B B B BsH   A99A= A=B>>CC$'DDD='E11E58E5c                     t          t          t          d          d          t          t          d          d          t          g d          d          } |                     ddg          } t          t          t          d          d          t          t          d          d          t          g d	          d          }|                    ddg          }t	          | |g          }t          t          t          d
          d          t          t          d          d          t          g d          d          }|                    ddg          }t          j        ||           d S )Nr   categoryr   eeer  )c1c2i2r  r  r  abcabceeeeeer  )r
   r   r   	set_indexr   rM   r^   re  s       r'   $test_concat_multiindex_with_categoryr  z  sr   
eJ777eJ777##	
 	
 C --t
%
%C
eJ777eJ777##	
 	
 C --t
%
%CS#JFhz:::hz:::+++,,	
 	
 H !!4,//H&(+++++r)   c                      t          dgd          } t          dgd          }t          | |g          }t          ddgddg          }t          j        ||           d S )Nr   r8   r   r/   r2  r   r2   r   re  s       r'   test_concat_ea_upcastr    sn    
SE
*
*
*C
QCw
'
'
'CS#JF#q!Q000H&(+++++r)   c                     t          dd ig          } t          dt          j        d          ig          }t          | |gd          }t          dd t          j        d          git                    }t          j        ||           d S )Nr   z1990-12-20 00:00:00+00:00Tr   r   )r
   r   r   r   rL   rM   r^   re  s       r'   (test_concat_none_with_timezone_timestampr    s    
c4[M
"
"C
c2<(CDDEF
G
GCS#JT222F	tR\"=>>?@  H &(+++++r)   c                      t          dg          } t          ddg          }t          | |g          }t          g dg d          }t          j        ||d           d S )	Nr   r/   r   r   )r   r   r/   r2   T)check_column_type)r   r
   r   rM   r^   )r  rQ   r&   ra   s       r'   <test_concat_with_series_and_frame_returns_rangeindex_columnsr    si    
!++C	Aq6		BS"IF)))444H&(dCCCCCCr)   c                      t          dgg          } t          dgg          }d}ddg}d|d}t          j        t          |          5  t	          | |g||	           d d d            d S # 1 swxY w Y   d S )
Nr   *   Tr   rR   zCannot set ignore_index=z) and specify keys. Either should be used.r   )rX   r   )r
   r   r   r   r   )r   rR   r   rX   r   s        r'   +test_concat_with_moot_ignore_index_and_keysr    s    
aSE

C
bTF

CL5>D
P
P
P
PC	z	-	-	- A ASz<@@@@A A A A A A A A A A A A A A A A A As   
A,,A03A0z$inputs, ignore_index, axis, expectedrV  r,   r0   r   )r   r/   NN)r   r-   NN)NNr,   r0   ry  r   r2   ro   )r   r   r   r/   c                 T    t          | ||          }t          j        ||           d S )N)r   r4   )r   rM   r^   )inputsr   r4   ra   r&   s        r'   test_concat_of_series_and_framer    s2    b FDAAAF&(+++++r)   )Bcollectionsr   r   collections.abcr   r   decimalr   rO   numpyr   r   pandas.errorsr   r	   pandasr   r
   r   r   r   r   r   r   r   pandas._testing_testingrM   pandas.core.arraysr   pandas.tests.extension.decimalr   r   rE  rH  rJ  rO  rT  r:  r;  r]  r_  filterwarningsSubclassedDataFramer   SubclassedSeriesrc  rf  rj  rs  r}  r  r  rS  r  r  r  r  r  r  r  r  r  r  r  r  r|   r)   r'   <module>r     s<          % $ $ $ $ $                            
    	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	       * * * * * * 5 5 5 5 5 5G' G' G' G' G' G' G' G'T     	' 	' 	', , ,, , ,- - - ///???!CDD, , ED,
, 
, 
, S  	YRYq"%5%5677IBIa,,3777 ) )  ), , ,, , , "   - - - 
1d
1e			'			&	 - - -, , ,0, , , 
QF	A	
 	
 	

 		U	    
QF	A	
 	
 	

 		U	    %K%K%KLL(C(C(CDD, , ED ML,4 %K%K%KLL(C(C(CDD, , ED ML,6, , ,(B B B", , ,:, , ,, , ,D D DA A A * YaV1a&1122FFAq64L4L4LMI+++++++++ 
 #ll  		
 YaV1a&1122FFAq64L4L4LMI+++++++++ 
 #ll  		
 YaV1a&1122FFAq6NNFFAq6NNSIQF!QQF1vFFqRSfUUU		
 YaV1a&1122FFAq6NNFFAq6NNSI1a&aVAAq6BB1a&QQQ		
K+. .^, ,_. .^, , ,r)   