
    [6g~                     \   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mZ d dlmc mZ d dlZd dl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"e
j#        $                    deeg          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 Z0d Z1e
j#        $                    dg d           d!             Z2e
j#        $                    d"d#gd$z  d%fd#gd$z  d&fg d'd&fg d'd%fg          d(             Z3d) Z4d* Z5e
j#        $                    d+ ed,d-g.           ed/d,d-gi.           ee60           ee60          g          d1             Z7e
j#        $                    d+ ed,d-g.           ed/d,d-gi.           ee60           ee60          g          d2             Z8ej9        e
j#        $                    d3g d4          e
j#        $                    d5g d6          d7                                     Z:ej9        e
j#        $                    d3g d4          e
j#        $                    d5g d6          d8                                     Z;ej9        d9             Z<d: Z=d; Z>d< Z?d= Z@dS )>    )abcdeque)Iterator)datetime)DecimalN)InvalidIndexError)	DataFrameIndex
MultiIndexPeriodIndex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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         f/var/www/surfInsights/venv3-11/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d          }|s0|j	        j
        D ]"t          fd|||fD                       rJ #n|j	        j
        D ]j        J t          |||gdd          }|j	        j
        D ]j        j        dk    r!j        |j	        j
        d         j        u sJ 3j        j        dv r!j        |j	        j
        d         j        u sJ bj        t          k    r"|r|j	        j
        d         u sJ j        J t          t          j                            d                              d                    }t          ||||gdd          }|j	        j
        D ]j        j        dk    rC|s|r5t          fd|j	        j
        |j	        j
        z   D                       sJ Kj        J Uj        j        dv r!j        |j	        j
        d         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   T)axiscopyc              3   `   K   | ](}|j         j        D ]}t          j        |          V  )d S N)_mgrarraysr   shares_memory).0xyarrs      r%   	<genexpr>z3TestConcatenate.test_concat_copy.<locals>.<genexpr>9   s_        V]   $S!,,      r'   Ff)iu)r*   r-   c              3   B   K   | ]}t          j        |          V  d S r4   r   r7   r8   otherr;   s     r%   r<   z3TestConcatenate.test_concat_copy.<locals>.<genexpr>X   sD        ! (e44     r'   c              3   B   K   | ]}t          j        |          V  d S r4   rA   rB   s     r%   r<   z3TestConcatenate.test_concat_copy.<locals>.<genexpr>c   s0      UUE2+C77UUUUUUr'   )r	   r   r   r   r   integersreshaperanger   r5   r6   anybasedtypekindobject)	r   using_array_managerusing_copy_on_writedfdf2df3r$   df4r;   s	           @r%   test_concat_copyz TestConcatenate.test_concat_copy/   sp   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#QT:::" 		,{)       #s^         {) , ,x++++ S#QU;;;;% 
	0 
	0Cy~$$x27>!#4#999999:--x38?1#5#::::::f$$& 0#(/!"4444448/// 	--a00@@HHIIS#s+!%@@@;% 	V 	VCy~$$& ,*= ,    %'W^cho%E         8++++:--x38?1#5#::::::f$$UUUUSX_UUUUUUUU	V 	V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+   r0   )r   r   r   r-   r-   r-   )r   r-   r   r   r-   r   r)   rV   r1   columns)r	   r   r   r   r   r   r   from_arraysr_valuestmassert_frame_equalc_)r   rO   rP   r$   	exp_indexexpected
exp_index2s          r%   test_concat_with_group_keysz+TestConcatenate.test_concat_with_group_keyse   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)r1   rV   levelsnamesname)r   r-   r   r+   )r	   r   r   r   r   ilocr   r]   assert_index_equalrY   rk   r
   rl   )r   rO   pieceslevelr$   s        r%    test_concat_keys_specific_levelsz0TestConcatenate.test_concat_keys_specific_levels   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 )Nru   r   r)   )r/   barbazquxc                      g | ]
}|         S  r{   r8   kframess     r%   
<listcomp>z7TestConcatenate.test_concat_mapping.<locals>.<listcomp>       :::6!9:::r'   rU   r-   r1   c                      g | ]
}|         S r{   r{   r|   s     r%   r   z7TestConcatenate.test_concat_mapping.<locals>.<listcomp>   r   r'   rW   )rx   r/   rw   c                      g | ]
}|         S r{   r{   r|   s     r%   r   z7TestConcatenate.test_concat_mapping.<locals>.<listcomp>   s    3336!9333r'   )ru   r	   r   r   r   r   listrV   r   r]   r^   )	r   rt   non_dict_mapping_subclassconstructorsorted_keysr$   ra   rV   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          |dggz   g dg dg dg|d gz             }||_        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*   r/   rx   rh   rg   firstsecond))r/   rh   )r/   rg   )rx   rh   )rx   rg   )rV   rk   rl   r   )r   r   r-   r-   )r   r-   r   r-   r   r   r   r   )rk   codesrl   rV   rk   )NNNrV   rl   )r   r   Nrm   )r	   r   r   r   r   r   r   r   r]   r^   rl   rp   rk   r
   )r   rO   rP   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,--aSE><<|||<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   ar0   r   bz Values not found in passed levelmatchrh   rg   )r/   rw   rx   r   zKey one not in level)	r	   r   r   r   r   pytestraises
ValueErrorr   )r   rO   rP   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rJ   i8rX   Tignore_indexr   r   r   r   r   r0   r   r   rh   rg   r   r   r   )r   r   )r	   r   arrayr   concatenater\   r]   r^   r   r   r   r   rl   )r   rY   df1rP   appendedra   rO   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 )Nr/   rw   )r   r   r-   r   r0   )r   r   sort)r	   rG   r   )r   r   r   rP   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   r0   r-   r   r   r   rY   r   r+   r   r-   r   r.   )r   r   r-   r   r+   r/   )r/   r   r   rw   r/   r   rw   T)r1   r   )r   r   aranger   r	   rF   repeatr   r]   r^   rn   r   r   r;   r"   r#   rO   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   r0   r   r-   r+   r   r   )r   r   r   r   r	   rF   tiletolistr   r]   r^   r   s           r%   test_concat_mixed_objs_indexz,TestConcatenate.test_concat_mixed_objs_indexF  s     ="3???i'***Cu%%%Cu%%%s{{2q))777GCOO##B**%,,..12Dqc
 
 
 R%%
fh/////r'   c           	         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        |d                              d
d          dg          }t          |||gd          }t          j        ||           d S )Nr   r   r   r   r   r   r/   )r   rn   rw   r   r-   r0   r+   r   r   r   rX   Tr   )r   r   r   r   r	   rF   kronwhereidentitynanTr   r   r]   r^   r   r   s           r%   "test_concat_mixed_objs_index_namesz2TestConcatenate.test_concat_mixed_objs_index_namesV  sY    ="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/// RWS!__44R;;aSIII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   ro   r]   assert_series_equaldtypesr   )r   rO   r$   s      r%   test_dtype_coercionz#TestConcatenate.test_dtype_coercionm  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   r/   rU   rw   r   )r	   r   r   r   r   r   r]   r^   )r   rO   r$   ra   s       r%   test_concat_single_with_keyz+TestConcatenate.test_concat_single_with_key~  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   r.   zAll objects passed were Noner   )r	   r   r   r   r   r   r]   r^   r   r   r   )r   rO   rq   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   cde)r   r   r   r   rU   r	   r   r]   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'   c                 P   t          t          j        dt          j                  t	          dd                    }|                                d d d         }t          ||gdd	          }t          ||gdd	          }t          |          t          |          k    sJ d S )
Nr   r   z
2020-01-01)r   r0   r   outerr-   )joinr1   )r   r   r   float64r   r2   r   len)r   ts1ts2leftrights        r%   test_concat_bug_1719z$TestConcatenate.test_concat_bug_1719  s    Ib
+++:lTV3W3W3W
 
 
 hhjj1o sCjwQ777Sza8884yyCJJ&&&&&&r'   c                 ,   t          t          j        d                    }t          t          j        d                    }dx|_        |_        t          ||gd          }t          ||d          }ddg|_        t          j	        ||           d S )Nr.   z	same namer-   r   r   r-   )
r   r   zerosonesrn   r   r	   rY   r]   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-   r   )r	   rY   r   r]   r^   )r   r   rP   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*   r.   r   r-   r   r+   r*   r.   r   Tr   c              3      K   | ]}|V  d S r4   r{   )r8   rO   s     r%   r<   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   rP   s      r%   __getitem__zJTestConcatenate.test_concat_iterables.<locals>.CustomIterator1.__getitem__  sB    ."s++E22 . . .$#-.s   
 
% %N)__name__
__module____qualname__intr  r  r   rP   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 r4   r{   )r   r   rP   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	   r]   r^   r   r   r   Iterable)r   ra   r  r  r   rP   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	   rG   )r8   _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	   rG   r   rY   r
   r]   rp   )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   r]   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AnotherrU   )r(  r)  )r   r   rG   r]   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   r.   )r   r-   r   r+   r+   r   r   )r   r-   r   r   r*   r   z8Reindexing only valid with uniquely valued Index objectsr   r-   r   )	r	   r   r   r   r   r   r   r   r   )r   r   rP   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&   rS   rc   rs   r   markparametrizer   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      s       . . . 4V 4V 4Vl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 0.9 9 9"5 5 5  ! ! !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-   rJ   ndminr.   )rL   ndimr   r   r   r   r\   rJ   )float_numpy_dtypeframe_or_seriesdimsdtr"  r9   s         r%   !test_concat_no_unnecessary_upcastr7    s    ?(((-D	B 	!Bd;;;<<"&4@@@AA!Bd;;;<<C
 	sA8>Rr'   pdtc           	      @   |} |             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-   r0  )r1  r.   r   )r2  r   r   r   r   r\   rJ   )r8  any_signed_int_numpy_dtyper6  r5  r"  r9   s         r%   test_concat_will_upcastr;  )  s    	#B355:DBHaS$///00BHbfXT***++BHaS$///00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 )Nr/   r-   g      ?r   )r   rP   ra   r$   s       r%   0test_concat_empty_and_non_empty_frame_regressionr=  6  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   datar   )r   r   r	   astyper   SparseDtyper   r   r   r]   r^   )r   ra   r$   s      r%   test_concat_sparserC  ?  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   r   )r   rB  r   r   r   r6   r   floatrA  r   r]   r   )rJ   r   r   ra   r$   s        r%   test_concat_dense_sparserG  I  s    N2:t,,Ery$$aY//u===As%   A<<<yyy999@@GGHQF###F68,,,,,r'   rV   )r   r=   r=   )r=   r   r=   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-   r1   rV   )r-   r*   rJ  r   )r   r.   rK  r   )r+   r   r   r   r   r   r   r   rX   )r	   r   r   r   from_tuplesr]   r^   )rV   rO   r"   r#   r$   expected_valuesexpected_columnsra   s           r%   test_duplicate_keysrP  S  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  rI  r-   rL  )r-   r*   r-   r*   )r   r.   r   r.   )r+   r   r+   r   r   r   r   rX   )r	   r   r   rM  r]   r^   )rV   rO   r$   rN  rO  ra   s         r%   test_duplicate_keys_same_framerR  b  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 r4   )r   r   type)rS  r$   s     r%   test_concat_preserves_subclassrV  o  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  r%  r   r  Tr   r  )r*   r.   r   r-   r   r+   )r	   r   r   r   r   r]   r^   r   rP   r$   ra   s       r%   (test_concat_frame_axis0_extension_dtypesrY    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   r%  r   r   r-   Tr   rI  r   )df_adf_br$   ra   s       r%   +test_concat_preserves_extension_int64_dtyper]    s    cB4[000DcA3Zw///DT4Lt444FDzq	::'JJJH&(+++++r'   zdtype1,dtype2,expected_dtype))boolr^  r^  )booleanr^  r_  )r^  r_  r_  )r_  r_  r_  c                     t          ddg|           }t          ddg|          }t          ||gd          }t          g d|          }t          j        ||           d S )NTFr   r   )TFFT)r   r   r]   r   )dtype1dtype2expected_dtypeser1ser2r$   ra   s          r%   test_concat_bool_typesrf    sx     4-v...D5$-v...DT4Lt444F000GGGH68,,,,,r'   )rV   	integrityredr+   TF)rh  bluerh  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+   )rV   verify_integrity)r   r   r   r  r0   )r   r   r   zipr   rM  r]   r   )rV   rg  series_listr$   tuplesra   s         r%   test_concat_repeated_keysro    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))rJ   rn   r   g!u?rE  rL   zMaybe Time (UTC))r   r   rY   r   r   r   r   r   r   r0   )r   DatetimeIndexr	   r
   r   r   r   rL   r   r]   r^   )dtir   idxr   r$   r`   ra   s          r%    test_concat_null_object_with_dtiru    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                  D   t          j        ddg          } t          ddgg|           }t          dgt          j        d                    }t          ||g          }t          ddgt          j        t          j        gg|           }t          j	        ||           d S )Nr   )r   r-   r-   r   rX   r   r   )
r   rM  r	   r   
RangeIndexr   r   r   r]   r^   )mir   rP   r$   ra   s        r%   ,test_concat_multiindex_with_empty_rangeindexry    s    		8 4	5	5B
aVHb
)
)
)C
1#r}Q'7'7
8
8
8CS#JF1a&2626"23R@@@H&(+++++r'   r@  r-   r   r?  col1r   c                     |                                  }ddi|_        |                                  }ddi|_        t          ||g          }t          |j                  dk    sJ d S )Nr-   r   r   )r2   attrsr   r   r@  r   rP   rO   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-   )r2   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 }|d	k    s|d
k    r| d
k    rt          }t          j        ||          5  t	          ||g          }d d d            n# 1 swxY w Y   |}|dk    r1| d
k    r|                    d
          }n|                    d          }t          j        ||           d S )Nr-   r   r/   rw   r   r/   rw   )rY   rJ   DThe behavior of DataFrame concatenation with empty or all-NA entriesr  r   r   r   rL   )r	   FutureWarningr]   assert_produces_warningr   rA  r^   r  r  rO   emptyr   warnr$   ra   s           r%   %test_concat_ignore_empty_object_floatr    s@   
 
Aq61a&11	B	B	BBuenK@@@E
PCD###I+":":		#D	4	4	4 % %$$% % % % % % % % % % % % % % %H7)##yy++HHyy**H&(+++++s   A==BB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}d }| |k    r
| t          }n|d	k    rt          }t	          j        ||
          5  t          ||gd          }d d d            n# 1 swxY w Y   t          t          j        ddgt          j        ddgd|          }t	          j        ||           d S )Nr-   r   r  r   r   rL   r   r  r  r   Tr   )r	   r   r   r  r]   r  r   r^   r  s           r%   &test_concat_ignore_all_na_object_floatr  &  sb    
Aq61a&11	B	B	BBrvhx88LLLE7(""HH H
PCDh;#:	%	%	%		#D	4	4	4 8 8$7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 "&!QAGGxXXXH&(+++++s   B++B/2B/c                     t          dgt          j        d          gd          } t          ddgi          }|                    | j                  }d}t          j        t          |          5  t          | |gd	
          }d d d            n# 1 swxY w Y   t          ddgt          j        d          t          j	        gd          x}} t          j
        ||           d S )Nr-   z
2012-01-01rI  r   r   rX   r  r   Tr   )r	   r   r   reindexrY   r]   r  r  r   r   r^   )r   rP   alignedr   r$   ra   s         r%   %test_concat_ignore_empty_from_reindexr  B  s    1#R\,%?%?$@AA
B
BC
S1#J

Ckk#+k..G
PC		#M	=	=	= ; ;gT:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;aV2<3M3Mrv2VWWXXXHs&(+++++s   1BBB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 )Nr.   c                     g | ]}|z   S r{   r{   )r8   nsers     r%   r   z6test_concat_mismatched_keys_length.<locals>.<listcomp>T  s    &&&C!G&&&r'   r*   rq  zGThe behavior of pd.concat with len\(keys\) != len\(objs\) is deprecatedr   r-   rW   r   c              3      K   | ]}|V  d S r4   r{   r8   r9   s     r%   r<   z5test_concat_mismatched_keys_length.<locals>.<genexpr>]  "        a      r'   c              3      K   | ]}|V  d S r4   r{   r8   r:   s     r%   r<   z5test_concat_mismatched_keys_length.<locals>.<genexpr>]  "      '8'8a'8'8'8'8'8'8r'   c              3      K   | ]}|V  d S r4   r{   r  s     r%   r<   z5test_concat_mismatched_keys_length.<locals>.<genexpr>_  r  r'   c              3      K   | ]}|V  d S r4   r{   r  s     r%   r<   z5test_concat_mismatched_keys_length.<locals>.<genexpr>_  r  r'   )r   rG   r]   r  r  r   )sersrV   r   r  s      @r%   "test_concat_mismatched_keys_lengthr  Q  s   
q

C&&&&U1XX&&&D??D
TC		#M	=	=	= ( (t$Q''''( ( ( ( ( ( ( ( ( ( ( ( ( ( (		#M	=	=	= ( (t$Q''''( ( ( ( ( ( ( ( ( ( ( ( ( ( (		#M	=	=	= 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		#M	=	=	= 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   r]   r^   rX  s       r%   $test_concat_multiindex_with_categoryr  b  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   stringr   r-   r%  r   r0   r   rX  s       r%   test_concat_ea_upcastr    sn    
SE
*
*
*C
QCw
'
'
'CS#JF#q!Q000H&(+++++r'   c                  v   t          dd ig          } t          dt          j        d          ig          }d}t          j        t
          |          5  t          | |gd          }d d d            n# 1 swxY w Y   t          dd t          j        d          gi          }t          j        ||           d S )Nr   z1990-12-20 00:00:00+00:00r  r   Tr   )r	   r   r   r]   r  r  r   r^   )r   rP   r   r$   ra   s        r%   (test_concat_none_with_timezone_timestampr    s    
c4[M
"
"C
c2<(CDDEF
G
GC
PC		#M	=	=	= 7 7c
6667 7 7 7 7 7 7 7 7 7 7 7 7 7 7#bl3N&O&OPQRRH&(+++++s   A44A8;A8)Acollectionsr   r   collections.abcr   r   decimalr   numpyr   r   pandas.errorsr   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   r	   r
   r   r   r   r   r   pandas._testing_testingr]   pandas.core.arraysr   pandas.tests.extension.decimalr   r   r7  r-  r.  r;  r=  rC  rG  rP  rR  filterwarningsSubclassedDataFramer   SubclassedSeriesrV  rY  r]  rf  ro  ru  ry  rF  r~  r  skip_array_manager_invalid_testr  r  r  r  r  r  r  r{   r'   r%   <module>r     s          % $ $ $ $ $                  + + + + + + ) ) ) ) ) ) ) ) )                            * * * * * * 5 5 5 5 5 5z' z' z' z' z' z' z' z'z       344	' 	' 54	', , ,, , ,- - - ///???!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 $#,. #%K%K%KLL(C(C(CDD, , ED ML $#,2 #, , $#,B B B", , ,:, , ,, , , , ,r'   