
    Owg~                        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
jF                  jI                  deeg      d        Z%d Z&d Z'd Z(e
jF                  jI                  dg dg dg      d        Z)d Z*e
jF                  jW                  d      e
jF                  jI                  d ejX                  d e	jZ                  d d      i       ej\                   e	jZ                  d d      d      g      d               Z/d Z0d Z1e
jF                  jI                  dg d       d!        Z2e
jF                  jI                  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
jF                  jI                  d+ ed,d-g.       ed/d,d-gi.       ee60       ee60      g      d1        Z7e
jF                  jI                  d+ ed,d-g.       ed/d,d-gi.       ee60       ee60      g      d2        Z8ejr                  e
jF                  jI                  d3g d4      e
jF                  jI                  d5g d6      d7                      Z:ejr                  e
jF                  jI                  d3g d4      e
jF                  jI                  d5g d6      d8                      Z;ejr                  d9        Z<d: Z=d; Z>d< Z?d= Z@y)>    )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                  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y)TestConcatenatec                    t        ddd      }t        ddd      }t        t        j                  j	                  d      j                  d      |      }t        t        j                  j	                  d      j                  d      |      }|j                         }|j                         }t        ||g      }t        |j                  t              sJ |j                  d	   |j                  d	   k(  sJ y )
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         ^/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/reshape/concat/test_concat.pytest_append_concatz"TestConcatenate.test_append_concat   s    lBlBBII))!,<<R@"EBII))!,<<R@"E\\^\\^ R!&,,444||A"((1+---    c                    t        t        j                  j                  d      j	                  d            }t        t        j                  j                  d      j                  ddd      j                  dd            }t        dd	it        d      
      }t        |||gdd      }|s5|j                  j                  D ]  t        fd|||fD              sJ  n)|j                  j                  D ]  j                  J  t        |||gdd      }|j                  j                  D ]  j                  j                  dk(  r2j                  |j                  j                  d   j                  u rLJ j                  j                  dv r2j                  |j                  j                  d   j                  u rJ j                  t        k(  s|r|j                  j                  d   u rJ j                  J  t        t        j                  j                  d      j	                  d            }t        ||||gdd      }|j                  j                  D ]  j                  j                  dk(  rU|s|rBt        fd|j                  j                  |j                  j                  z   D              r`J j                  oJ j                  j                  dv r2j                  |j                  j                  d   j                  u rJ j                  t        k(  st        fd|j                  j                  D              rJ  y )Nr         r   r   r*   )size      foor   T)axiscopyc              3      K   | ]5  }|j                   j                  D ]  }t        j                  |        7 y wN)_mgrarraysr   shares_memory).0xyarrs      r%   	<genexpr>z3TestConcatenate.test_concat_copy.<locals>.<genexpr>9   sC      VV]]  $$S!,,s   ;>Ff)iu)r*   r-   c              3   J   K   | ]  }t        j                  |        y wr4   r   r7   r8   otherr;   s     r%   r<   z3TestConcatenate.test_concat_copy.<locals>.<genexpr>X   s&      ! ((e4    #c              3   J   K   | ]  }t        j                  |        y wr4   rA   rB   s     r%   r<   z3TestConcatenate.test_concat_copy.<locals>.<genexpr>c   s     UE2++C7UrD   )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/   s   ryy,,Q/??GH		--a099!Ra9HPPQRTUVWE
%(3 S#QT:"{{))   #s^    {{)) ,xx+++, S#QU;;;%% 
	0Cyy~~$xx277>>!#4#9#9999:-xx388??1#5#:#::::f$&#((//!"444488///
	0 		--a0@@HIS#s+!%@;;%% 	VCyy~~$&*= %'WW^^chhoo%E    88+++:-xx388??1#5#:#::::f$USXX__UUUU	Vr'   c                    t        t        j                  j                  d      j	                  d            }t        t        j                  j                  d      j	                  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                  j                  d      j	                  d            }t        t        j                  j                  d      j	                  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                  ||       y )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)   rW   r1   columns)r	   r   r   r   r   r   r   from_arraysr_valuestmassert_frame_equalc_)r   rP   rQ   r$   	exp_indexexpected
exp_index2s          r%   test_concat_with_group_keysz+TestConcatenate.test_concat_with_group_keyse   s   ryy,,Q/??GH		--a0@@HIS	A/**"$9:
	 RUU299cjj#89K
fh/R1v.++-?AS,TU
RUU299bii#78
K
fh/ ryy,,Q/??GH		--a0@@HIS	AQ7RUU299cjj#899M
fh/R1vA6RUU299bii#78*M
fh/r'   c                 4   t        t        j                  j                  d      j	                  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 y )Nr   r   r*   r   r-   r+   )threetwoonezero)ri   rh   rg   	group_key)r1   rW   levelsnamesname)r   r-   r   r+   )r	   r   r   r   r   ilocr   r^   assert_index_equalrZ   rl   r
   rm   )r   rP   pieceslevelr$   s        r%    test_concat_keys_specific_levelsz0TestConcatenate.test_concat_keys_specific_levels   s    ryy,,Q/??HI''!aV)$bgga!forwwq1#vG/(7-
 	fnn33A6e+8VW
fnn33A6l8KL~~##T'::::r'   mappingdictc           
         |dk(  rt         n|} |t        t        j                  j	                  d      j                  d            t        t        j                  j	                  d      j                  d            t        t        j                  j	                  d      j                  d            t        t        j                  j	                  d      j                  d            d      }t        |j                               }t        |      }t        |D cg c]  }||   	 c}|      }t        j                  ||       t        |d      }t        |D cg c]  }||   	 c}|d      }t        j                  ||       g d	}	t        ||	      }t        |	D cg c]  }||   	 c}|	      }t        j                  ||       y c c}w c c}w c c}w )
Nrv   r   r)   )r/   barbazquxrV   r-   r1   rX   )ry   r/   rx   )rv   r	   r   r   r   r   listrW   r   r^   r_   )
r   ru   non_dict_mapping_subclassconstructorframessorted_keysr$   krb   rW   s
             r%   test_concat_mappingz#TestConcatenate.test_concat_mapping   ss   %/d5N !6!6q!9!I!I&!QR !6!6q!9!I!I&!QR !6!6q!9!I!I&!QR !6!6q!9!I!I&!QR	
 6;;=)k:6!9:M
fh/Q'k:6!9:STU
fh/$T*d36!93$?
fh/ ; ;
 4s   GG#Gc                    t        t        j                  j                  d      j	                  d            }t        t        j                  j                  d      j	                  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             y )Nr   r-   r+   r-   r*   r/   ry   ri   rh   firstsecond))r/   ri   )r/   rh   )ry   ri   )ry   rh   )rW   rl   rm   r   )r   r   r-   r-   )r   r-   r   r-   r   r   r   r   )rl   codesrm   rW   rl   )NNNrW   rm   )r   r   Nrn   )r	   r   r   r   r   r   r   r   r^   r_   rm   rq   rl   r
   )r   rP   rQ   rl   rm   r$   rb   ra   s           r%   test_concat_keys_and_levelsz+TestConcatenate.test_concat_keys_and_levels   s~   ryy,,Q/??GH		--a0@@HI%.5%.1(#b#Q	
 2sB,-aSE>|<4&.
	
 #
fh/ b#Q

 ||!![000 b#QH%

 ||!!%>>>>
LL"E5%.w$G	
r'   c                    t        t        j                  j                  d      j	                  d      dg      }t        t        j                  j                  d      j	                  d      dg      }d}t        j                  t        |      5  t        ||gd	d
gg dg       d d d        d}t        j                  t        |      5  t        ||gd	d
gg dg       d d d        y # 1 sw Y   ExY w# 1 sw Y   y xY w)Nr   r   ar0   r   bz Values not found in passed levelmatchri   rh   )r/   rx   ry   r   zKey one not in level)	r	   r   r   r   r   pytestraises
ValueErrorr   )r   rP   rQ   msgs       r%   "test_concat_keys_levels_no_overlapz2TestConcatenate.test_concat_keys_levels_no_overlap   s    ryy,,Q/??GPSuU		--a0@@HQTPUV0]]:S1 	RB85%.:O9PQ	R %]]:S1 	SB9E5>;P:QR	S 	S		R 	R	S 	Ss   C,C8,C58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                  j                  d      j                  d      dg      }t        t        j                  j                  d      j                  d      dg      }t        ||gddgddg      }|j                  j                  dk(  sJ y )N)ABCDr-   r   r+   r*   f8rK   i8rY   Tignore_indexr   r{   r   r   r   r0   r   r   ri   rh   r   r   r   )r   r   )r	   r   arrayr   concatenater]   r^   r_   r   r   r   r   rm   )r   rZ   df1rQ   appendedrb   rP   r$   s           r%    test_crossed_dtypes_weird_cornerz0TestConcatenate.test_crossed_dtypes_weird_corner   ss   &XXl$7XXl$7XXl$7XXl$7	 
 XXl$7XXl$7XXl$7XXl$7	 
 3*48NNCJJ

3!<g
 	h1ryy,,Q/??GPSuU		--a0@@HQTPUVS	w>QR||!!%8888r'   c                     t        dddt        d            }t        dddt        d            }t        ||g|       y )Nr/   rx   )r   r   r-   r   r0   )r   r   sort)r	   rH   r   )r   r   r   rQ   s       r%   test_with_mixed_tuplesz&TestConcatenate.test_with_mixed_tuples  s>     eu5U1XFeu5U1XF 	Sz%r'   c                    t        ddd      }t        j                  dd      }t        ||      }t        ||      }t	        |j                  dd	      |      }t	        t        j                  |d
      j                  dd
      |ddg      }t        ||gd	      }t        j                  ||       t	        t        j                  |d
      j                  dd
      |dd	g      }t        ||gd	      }t        j                  ||       t	        t        j                  |d      j                  dd      |g d      }t        |||gd	      }t        j                  ||       t	        t        j                  |d      j                  dd      |g d      }t        |||||gd	      }t        j                  ||       d|_
        t	        t        j                  |d      j                  dd      |g d      }t        |||gd	      }t        j                  ||       d|_
        t	        t        j                  |d      j                  dd      |g d      }t        |||gd	      }t        j                  ||       t	        t        j                  |d      j                  dd      |g d      }t        |||gd	d      }t        j                  ||       y )N01-Jan-2013r   hperiodsr   int64r   r0   r-   r   r   r   rZ   r{   r+   r   r-   r   r.   )r   r   r-   r   r+   r/   )r/   r   r   rx   r/   r   rx   T)r1   r   )r   r   aranger   r	   rG   repeatr   r^   r_   ro   r   r   r;   r"   r#   rP   rb   r$   s           r%   test_concat_mixed_objs_columnsz.TestConcatenate.test_concat_mixed_objs_columns  s    ="3?ii'*Cu%Cu%s{{2q)7IIc1%%b!,EAq6
 Rq)
fh/IIc1%%b!,EAq6
 Rq)
fh/IIc1%%b!,E9
 R1-
fh/IIc1%%b!,E?
 RR,15
fh/ IIc1%%b!,E=
 R1-
fh/IIc1%%b!,ECT
 R1-
fh/ IIc1%%b!,E9
 R14@
fh/r'   c                    t        ddd      }t        j                  dd      }t        ||      }t        ||      }t	        |j                  dd	      |      }t	        t        j                  |d
      j                  dd	      |j                         d
z  dg      }t        |||g      }t        j                  ||       y )Nr   r   r   r   r   r   r0   r   r-   r+   r   r   )r   r   r   r   r	   rG   tiletolistr   r^   r_   r   s           r%   test_concat_mixed_objs_indexz,TestConcatenate.test_concat_mixed_objs_indexF  s     ="3?ii'*Cu%Cu%s{{2q)7GGCO##B*%,,.12Dqc
 R%
fh/r'   c           	         t        ddd      }t        j                  dd      }t        ||d      }t        ||d	      }t	        |j                  d
d      |      }t	        t        j                  t        j                  t        j                  d      dk(  dt        j                        |      j                  |j                         dz  g d      }t        |||g      }t        j                  ||       t	        t        j                  |d      j                  d
d      dg      }t        |||gd      }t        j                  ||       y )Nr   r   r   r   r   r   r/   )r   ro   rx   r   r-   r0   r+   r   r   r   rY   Tr   )r   r   r   r   r	   rG   kronwhereidentitynanTr   r   r^   r_   r   r   s           r%   "test_concat_mixed_objs_index_namesz2TestConcatenate.test_concat_mixed_objs_index_namesV  s    ="3?ii'*Cu51Cu51s{{2q)7GGBHHR[[^q0!RVV<cBDD,,.1$%

 R%
fh/ RWWS!_44R;aSIR48
fh/r'   c           	         t        dt        j                  d      j                  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                         y )Ndate20130101UTCr   r-   i  i  r   textz
some words	   )r	   pd	Timestamptz_localizeNaTr   rp   r^   assert_series_equaldtypesr   )r   rP   r$   s      r%   test_dtype_coercionz#TestConcatenate.test_dtype_coercionm  s%   j!9!E!Ee!Lbff UVW!rwws|45
v}}bii8 $1!5xa7K LMN!rwws|45
v}}bii8 $! ;<=!rwws|45
v}}bii8r'   c                     t        t        j                  j                  d      j	                  d            }t        |gdg      }t        ||gddg      }t        j                  ||d d        y )Nr   rf   r/   rV   rx   r   )r	   r   r   r   r   r   r^   r_   )r   rP   r$   rb   s       r%   test_concat_single_with_keyz+TestConcatenate.test_concat_single_with_key~  s`    ryy,,Q/??HIE7+2r(%8
fhsm4r'   c                 z    t        j                  t        d      5  t        g        d d d        y # 1 sw Y   y xY w)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 	2J	 	 	s   1:c                 F   t        t        j                  j                  d      j	                  d            }|d d d d |dd  g}t        |      }t        j                  ||       t        j                  t        d      5  t        d d g       d d d        y # 1 sw Y   y xY w)Nr   rf   r.   zAll objects passed were Noner   )r	   r   r   r   r   r   r^   r_   r   r   r   )r   rP   rr   r$   s       r%   test_concat_exclude_nonez(TestConcatenate.test_concat_exclude_none  s    ryy,,Q/??HIRa&$bf-
fb)]]:-KL 	!D$< 	! 	! 	!s    BB c                 D   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                  ||       y )N)r         r   r-   )r   r   cde)r   r   r   r   rV   r	   r   r^   r_   )r   df0r$   rb   s       r%   test_concat_keys_with_nonez*TestConcatenate.test_concat_keys_with_none  s    |\BCd3r7RasST#bq'BQcJK
fh/3BQRa#.5N
 3BQRa#6=QR
fh/r'   c                    t        t        j                  dt        j                        t	        dd            }|j                         d d d   }t        ||gdd	      }t        ||gdd	      }t        |      t        |      k(  sJ y )
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  sy    IIb

+:lTV3W
 hhj1o sCjwQ7Sza84yCJ&&&r'   c                    t        t        j                  d            }t        t        j                  d            }dx|_        |_        t        ||gd      }t        ||d      }ddg|_        t        j                  ||       y )Nr.   z	same namer-   r{   r   r-   )
r   r   zerosonesro   r   r	   rZ   r^   r_   )r   ts0r   r$   rb   s        r%   test_concat_bug_2972z$TestConcatenate.test_concat_bug_2972  sp    RXXa[!RWWQZ ))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                  ||       y )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	   rZ   r   r^   r_   )r   r   rQ   rb   r$   s        r%   test_concat_bug_3602z$TestConcatenate.test_concat_bug_3602  sx    &#9
 !<M
 &'''	
 Nc
+
fh/r'   c                 x   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      |       y )Nr-   r   r+   r*   r.   r   r-   r   r+   r*   r.   r   Tr   c              3       K   | ]  }|  y wr4    )r8   rP   s     r%   r<   z8TestConcatenate.test_concat_iterables.<locals>.<genexpr>  s     ,2B,   c                   &    e Zd ZdefdZ fdZy)>TestConcatenate.test_concat_iterables.<locals>.CustomIterator1returnc                      y)Nr   r  r   s    r%   __len__zFTestConcatenate.test_concat_iterables.<locals>.CustomIterator1.__len__  s    r'   c                 F    	 d|   S # t         $ r}t        |d }~ww xY w)Nr   )KeyError
IndexError)r   r   errr   rQ   s      r%   __getitem__zJTestConcatenate.test_concat_iterables.<locals>.CustomIterator1.__getitem__  s0    ."s+E22 .$#-.s    	  N)__name__
__module____qualname__intr  r  r   rQ   s   r%   CustomIterator1r    s     .r'   r  c                        e Zd Zdef fdZy)>TestConcatenate.test_concat_iterables.<locals>.CustomIterator2r  c              3      K     y wr4   r  )r   r   rQ   s    r%   __iter__zGTestConcatenate.test_concat_iterables.<locals>.CustomIterator2.__iter__  s     		s   
N)r  r  r  r   r  r  s   r%   CustomIterator2r    s    ( r'   r  )r	   r^   r_   r   r   r   Iterable)r   rb   r  r  r   rQ   s       @@r%   test_concat_iterablesz%TestConcatenate.test_concat_iterables  s     	"	"/0
fc3ZdCXN
fc3ZdCXN
,#s,4@(	
 	fUC:%6TJHU	. 	. 	f_%6TJHU	cll 	
 	f_%6TJHUr'   c           	         t        t        d      g d      g}|t        d      D cg c]  }t        t        d      g d       c}z  }t        |d      j                  }t	        g d      }t        j                  ||       y c c}w )	Nr+   )r   r-   Nr   d   )Nr-   r   Tr   )r-   r   N)r	   rH   r   rZ   r
   r^   rq   )r   dfs_r$   rb   s        r%   test_concat_orderz!TestConcatenate.test_concat_order  sl    uQx@A5QT:Va	a.AVV$'//(
fh/	 Ws   Bc                    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                  ||       y )Nr-   r   Int64r   Tr   )	r   r   r   r   r   r   rM   r^   r   )r   r   r   r$   rb   s        r%   .test_concat_different_extension_dtypes_upcastsz>TestConcatenate.test_concat_different_extension_dtypes_upcasts  sk    288QF'23:q!f%&AT21aWQZ8G
vx0r'   c                     t        t        t        d            t        t        d            gddg      }t        t        t        d            t        t        d            d      }t        j                  ||       y )Nr+   r*   FirstAnotherrV   )r#  r$  )r   r   rH   r^   r   )r   rb   r$   s      r%   test_concat_ordered_dictz(TestConcatenate.test_concat_ordered_dict  s`    E!HveAh/07K
 &q"2veAh?OPQ
vx0r'   c                 z   t        t        j                  j                  d      j	                  d      g ddg      }t        t        j                  j                  d      j	                  d      g ddg      }d}t        j                  t        |	      5  t        ||gd
       d d d        y # 1 sw Y   y xY w)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   rQ   r   s       r%   #test_concat_duplicate_indices_raisez3TestConcatenate.test_concat_duplicate_indices_raise	  s     II!!!$44Q7!E

 II!!!$44Q7!E

 I]],C8 	'C:A&	' 	' 	's   B11B:N)r  r  r  r&   rT   rd   rt   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l0:;" [[YF(;<0 =04'
RS9B&60p0 0.9"5!0'002V@011'r'   r   c           	      V    |t               j                  }| } |t        j                  dg||             |t        j                  t        j                  g||             |t        j                  dg||            g}t        |      }|j                  j                  |k(  sJ y )Nr   r-   rK   ndminr.   )rM   ndimr   r   r   r   r]   rK   )float_numpy_dtypeframe_or_seriesdimsdtr  r9   s         r%   !test_concat_no_unnecessary_upcastr2    s    (--D	B 	!Bd;<"&&4@A!Bd;<C
 	sA88>>Rr'   pdtc           	      H   |} |        j                   } | t        j                  dg||             | t        j                  t        j                  g|             | t        j                  dg||            g}t	        |      }|j
                  j                  dk(  sJ y )Nr-   r+  )r,  r.   r   )r-  r   r   r   r   r]   rK   )r3  any_signed_int_numpy_dtyper1  r0  r  r9   s         r%   test_concat_will_upcastr6  )  s    	#B5::DBHHaS$/0BHHbffXT*+BHHaS$/0C
 	sA88>>Y&&&r'   c                      t        ddgi      } t        dg i      }t        ddgi      }t        | |g      }t        j                  ||       y )Nr/   r-   g      ?r   )r   rQ   rb   r$   s       r%   0test_concat_empty_and_non_empty_frame_regressionr8  6  sN    
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      j                  t	        j
                  t        j                  d            }t        | | gd      }t        j                  ||       y )Nr   r   r-   r   datar{   )r   r   r	   astyper   SparseDtyper   r   r   r^   r_   )r   rb   r$   s      r%   test_concat_sparser>  ?  sm    {9%&A1v1v1v67>>
rxx#H QF#F&(+r'   c                  R   t        j                  t        j                  d       } t	        t         j
                  j                  dd g      |       }t	        dgt              }t	        g dg d      j                  |       }t        ||gd      }t        j                  ||       y )Nr-   r   )r-   Nr-   )r   r-   r   r;  r   r   r{   )r   r=  r   r   r   r6   r   floatr<  r   r^   r   )rK   r   r   rb   r$   s        r%   test_concat_dense_sparserB  I  sz    NN2::t,Eryy$$aY/u=As% A<y9@@GHQF#F68,r'   rW   )r   r=   r=   )r=   r   r=   c                 <   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                  ||       y )Nr   r   r   r   )      r   r   rn   )r   r   r   r   r-   r1   rW   )r-   r*   rE  r   )r   r.   rF  r   )r+   r   r   r   r   r   r   r   rY   )r	   r   r   r   from_tuplesr^   r_   )rW   rP   r"   r#   r$   expected_valuesexpected_columnsrb   s           r%   test_duplicate_keysrK  S  s     
3	4B			$B	3	'BRRLqt4F$m]CO!--
q'3$q'3$q'3$q'3H 2BCH&(+r'   c                     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
                  ||       y )Nr   r   r   rD  r-   rG  )r-   r*   r-   r*   )r   r.   r   r.   )r+   r   r+   r   r   r   r   rY   )r	   r   r   rH  r^   r_   )rW   rP   r$   rI  rJ  rb   s         r%   test_duplicate_keys_same_framerM  b  s    :D	3	4BRH140F#\<@O!--
q'3$q'3$q'3$q'3H 2BCH&(+r'   zMignore:Passing a BlockManager|Passing a SingleBlockManager:DeprecationWarningobjr   r   rn   c                 L    t        | | g      }t        |t        |             sJ y r4   )r   r   type)rN  r$   s     r%   test_concat_preserves_subclassrQ  o  s&     S#JFfd3i(((r'   c                  h   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                  ||       y )
Nr   r   r   r   r   Tr   r   )r*   r.   r   r-   r   r+   )r	   r   r   r   r   r^   r_   r   rQ   r$   rb   s       r%   (test_concat_frame_axis0_extension_dtypesrT    s    
S"((9G<=
>C
S"((9-.
/CS#JT2F#12'BH&(+S#JT2F#12'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                  ||       y )
Nr   r   r   r   r   r-   Tr   rD  r   )df_adf_br$   rb   s       r%   +test_concat_preserves_extension_int64_dtyperX    s_    cB4[0DcA3Zw/DT4Lt4FDzq	:'JH&(+r'   zdtype1,dtype2,expected_dtype))boolrY  rY  )booleanrY  rZ  )rY  rZ  rZ  )rZ  rZ  rZ  c                     t        ddg|       }t        ddg|      }t        ||gd      }t        g d|      }t        j                  ||       y )NTFr   r   )TFFT)r   r   r^   r   )dtype1dtype2expected_dtypeser1ser2r$   rb   s          r%   test_concat_bool_typesra    sQ     4-v.D5$-v.DT4Lt4F0GH68,r'   )rW   	integrityredr+   TF)rc  bluerc  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                  ||       y )Nr   r-   r   r   r   r+   )rW   verify_integrity)r   r   r   r   r0   )r   r   r|   zipr   rH  r^   r   )rW   rb  series_listr$   tuplesrb   s         r%   test_concat_repeated_keysrj    sq     3(#VS!H%5vsAh7GHKKdYGF#dO,-Fiz'='=f'E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                  ||       y )Nz2021-04-08 21:21:14+00:00zdatetime64[ns, UTC]z
Time (UTC))rK   ro   r   g!u?r@  rM   zMaybe Time (UTC))r   r   rZ   r{   r   r   r   r   r   r0   )r   DatetimeIndexr	   r
   r   r   r   rM   r   r^   r_   )dtir   idxr   r$   ra   rb   s          r%    test_concat_null_object_with_dtirp    s    


	$%-BC C&?#6E
h-?
@CbffX6cBDT5M	2FtSVnF3I4.7&&"&&!&&&!	

 H &(+r'   c                  8   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                  ||       y )Nr   )r   r-   r-   r   rY   r   r   )
r   rH  r	   r   
RangeIndexr   r   r   r^   r_   )mir   rQ   r$   rb   s        r%   ,test_concat_multiindex_with_empty_rangeindexrt    s    			8 4	5B
aVHb
)C
1#r}}Q'7
8CS#JF1a&266266"23R@H&(+r'   r;  r-   r   r:  col1r   c                     | j                         }ddi|_        | j                         }ddi|_        t        ||g      }t        |j                        dk(  sJ y )Nr-   r   r   )r2   attrsr   r   r;  r   rQ   rP   s       r%   test_concat_drop_attrsry    sT     ))+CACI
))+CACI	c
	Brxx=Ar'   c                     | j                         }ddi|_        | j                         }ddi|_        t        ||g      }|j                  d   dk(  sJ y )Nr-   )r2   rw  r   rx  s       r%   test_concat_retain_attrsr{    sT     ))+CACI
))+CACI	c
	B88A;!r'   df_dtype)r   r   datetime64[ns]empty_dtype)Nr   rM   c                 x   t        ddgddgd|      }t        ddg|       }d}d }|d	k(  s
|d
k(  r| d
k7  rt        }t        j                  ||      5  t	        ||g      }d d d        |}|dk(  r(| d
k(  r|j                  d
      }n|j                  d      }t        j                  |       y # 1 sw Y   OxY w)Nr-   r   r/   rx   r   r/   rx   )rZ   rK   DThe behavior of DataFrame concatenation with empty or all-NA entriesr}  r   r   r   rM   )r	   FutureWarningr^   assert_produces_warningr   r<  r_   r~  r|  rP   emptyr   warnr$   rb   s           r%   %test_concat_ignore_empty_object_floatr    s    
 
Aq61a&1	BBuenK@E
PCD##I+":		#	#D	4 %$%H7)#yy+Hyy*H&(+% %s   B00B9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 }| |k7  r	| t        }n|d	k(  rt        }t	        j
                  ||
      5  t        ||gd      }d d d        t        t        j                  ddgt        j                  ddgd|      }t	        j                  |       y # 1 sw Y   RxY w)Nr-   r   r  r   r   rM   r   r  r}  r   Tr   )r	   r   r   r  r^   r  r   r_   r  s           r%   &test_concat_ignore_all_na_object_floatr  &  s     
Aq61a&1	BBrvvhx8LE7("H H
PCDh;#:	%	%		#	#D	4 8$78 "&&!QAGxXH&(+	8 8s   C''C0c                     t        dgt        j                  d      gd      } t        ddgi      }|j                  | j                        }d}t        j                  t        |      5  t        | |gd	
      }d d d        t        ddgt        j                  d      t        j                  gd      x}} t        j                  |       y # 1 sw Y   UxY w)Nr-   z
2012-01-01rD  r   r   rY   r  r   Tr   )r	   r   r   reindexrZ   r^   r  r  r   r   r_   )r   rQ   alignedr   r$   rb   s         r%   %test_concat_ignore_empty_from_reindexr  B  s     1#R\\,%?$@A
BC
S1#J
Ckk#++k.G
PC		#	#M	= ;gT:;aV2<<3Mrvv2VWXXHs&(+; ;s   +CCc                     t        t        d            } t        d      D cg c]  }| |z   	 }}g d}d}t        j                  t        |      5  t        ||d       d d d        t        j                  t        |      5  t        ||d       d d d        t        j                  t        |      5  t        d	 |D        d
 |D        d       d d d        t        j                  t        |      5  t        d |D        d |D        d       d d d        y c c}w # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   gxY w# 1 sw Y   y xY w)Nr.   r*   rl  zGThe behavior of pd.concat with len\(keys\) != len\(objs\) is deprecatedr   r-   rX   r   c              3       K   | ]  }|  y wr4   r  r8   r9   s     r%   r<   z5test_concat_mismatched_keys_length.<locals>.<genexpr>]        a r  c              3       K   | ]  }|  y wr4   r  r8   r:   s     r%   r<   z5test_concat_mismatched_keys_length.<locals>.<genexpr>]       '8a'8r  c              3       K   | ]  }|  y wr4   r  r  s     r%   r<   z5test_concat_mismatched_keys_length.<locals>.<genexpr>_  r  r  c              3       K   | ]  }|  y wr4   r  r  s     r%   r<   z5test_concat_mismatched_keys_length.<locals>.<genexpr>_  r  r  )r   rH   r^   r  r  r   )sernsersrW   r   s        r%   "test_concat_mismatched_keys_lengthr  Q  s$   
q
C"1X&C!G&D&D
TC		#	#M	= (t$Q'(		#	#M	= (t$Q'(		#	#M	= B 4 '84'8qAB		#	#M	= B 4 '84'8qAB B '( (( (B BB Bs5   DD D,5D85E D),D58EEc                  H   t        t        t        d      d      t        t        d      d      t        g d      d      } | j                  ddg      } t        t        t        d      d      t        t        d      d      t        g d	      d      }|j                  ddg      }t	        | |g      }t        t        t        d
      d      t        t        d      d      t        g d      d      }|j                  ddg      }t        j                  ||       y )Nr   categoryr   eeer   )c1c2i2r  r  r   abcabceeeeeer   )r	   r   r|   	set_indexr   r^   r_   rS  s       r%   $test_concat_multiindex_with_categoryr  b  s    
eJ7eJ7#	
C --t
%C
eJ7eJ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                  ||       y )Nr   stringr   r-   r   r   r0   r   rS  s       r%   test_concat_ea_upcastr    sP    
SE
*C
QCw
'CS#JF#q!Q0H&(+r'   c                  T   t        dd ig      } t        dt        j                  d      ig      }d}t        j                  t
        |      5  t        | |gd      }d d d        t        dd t        j                  d      gi      }t        j                  |       y # 1 sw Y   BxY w)Nr   z1990-12-20 00:00:00+00:00r  r   Tr   )r	   r   r   r^   r  r  r   r_   )r   rQ   r   r$   rb   s        r%   (test_concat_none_with_timezone_timestampr    s    
c4[M
"C
c2<<(CDEF
GC
PC		#	#M	= 7c
67#bll3N&OPQRH&(+7 7s   BB')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   r2  r(  r)  r6  r8  r>  rB  rK  rM  filterwarningsSubclassedDataFramer   SubclassedSeriesrQ  rT  rX  ra  rj  rp  rt  rA  ry  r{  skip_array_manager_invalid_testr  r  r  r  r  r  r  r  r'   r%   <module>r     sg   %     + ) )     * 5z' z'z   34	' 5	',,- /?!CD, E,
, S 	YRYYq"%567IBIIa,37)),, "-- 
1d
1e	'	&	--,0, 
QFA	

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

 	U	 ##%KL(CD, E M $,. ##%KL(CD, E M $,2 ##, $,B",:,,r'   