
    A>i?                         S SK JrJr  S SKJr  S SKJr  S SKJr  S SKrS SK	r
S SKrS SKJrJr  S SKrS SKJrJrJrJrJrJrJrJr  S SKJr  S SKJr  S S	KJr   " S
 S5      r S r!S r"S r#S r$S r%\RL                  RO                  S/ SQ/ SQ/5      S 5       r(S r)\RL                  RU                  S5      \RL                  RO                  S\RV                  " S\
RX                  " S S5      05      \RZ                  " \
RX                  " S S5      SS9/5      S 5       5       r.S r/S r0\RL                  RO                  S/ SQ5      S  5       r1\RL                  RO                  S!S"/S#-  S$4S"/S#-  S%4/ S&QS%4/ S&QS$4/5      S' 5       r2S( r3S) r4\RL                  RO                  S*\" S+S,/S-9\" S.S+S,/0S-9\" \5S/9\" \5S/9/5      S0 5       r6\RL                  RO                  S*\" S+S,/S-9\" S.S+S,/0S-9\" \5S/9\" \5S/9/5      S1 5       r7\RL                  RO                  S2/ S3Q5      \RL                  RO                  S4/ S5Q5      S6 5       5       r8\RL                  RO                  S2/ S3Q5      \RL                  RO                  S4/ S5Q5      S7 5       5       r9S8 r:S9 r;S: r<S; r=S< r>S= r?S> r@\RL                  RO                  S?\" S S+/S,S#/S@.5      \" SASB/SCS9/S%S \" / SDQ/ SEQ/ SFQSG./ SHQSI94\" S S+/S,S#/S@.5      \" SASB/SCS9/S$S \" / SDQ/ SEQ/ SFQSG./ SJQSI94\" S S+/S,S#/S@.5      \" SASB/5      \" SASB/5      /S%S+\" S S+/S,S#/SASB/SASB/SK.S S+/SI94\" S S+/S,S#/S@.5      \" SASB/5      \" SASB/5      /S$S+\" S S+/S,S#/SASB/SASB/SJ.S S+/SI94/5      SL 5       rAg)M    )abcdeque)Iterator)datetime)DecimalN)InvalidIndexErrorPandas4Warning)	DataFrameIndex
MultiIndexPeriodIndex
RangeIndexSeriesconcat
date_range)SparseArray)
to_decimalc                   v   \ rS rSrS rS rS rS r\R                  R                  SSS/5      S 5       rS	 rS
 rS rS rS rS rS rS rS rS rS rS r\R                  R                  S\\/5      \R                  R                  SSS/5      S 5       5       rS rS rS rS rS rS r S  r!S! r"S"r#g#)$TestConcatenate"   c                    [        SSSS9n[        SSSS9n[        [        R                  R	                  S5      R                  S5      U5      n[        [        R                  R	                  S5      R                  S5      U5      nUR                  5       nUR                  5       n[        X4/5      n[        UR                  [        5      (       d   eUR                  S	   UR                  S	   :X  d   eg )
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/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/reshape/concat/test_concat.pytest_append_concat"TestConcatenate.test_append_concat#   s    lBlBBII))!,<<R@"EBII))!,<<R@"E\\^\\^ !&,,4444||A"((1+---    c                   ^ [        [        R                  R                  S5      R	                  S5      5      n[        [        R                  R                  S5      R                  SSSS9R                  SS5      5      n[        SS	0[        S5      S
9n[        XU/SS9nUR                  R                   GH/  nUR                  mTR                  R                  S:X  a>  TR                  UR                  R                  S   R                  R                  L d   eMh  TR                  R                  S;   a>  TR                  UR                  R                  S   R                  R                  L d   eM  TR                  [        :X  a  TR                  c   eM  TR                  S:X  d  M  [         R"                  " TUR                  R                  S   R                  5        GM2     [        [        R                  R                  S5      R	                  S5      5      n[        XX6/SS9nUR                  R                   GH#  nUR                  mTR                  R                  S:X  a[  [%        U4S j[&        R(                  " UR                  R                  UR                  R                  5       5       5      (       d   eM  TR                  R                  S;   a>  TR                  UR                  R                  S   R                  R                  L d   eM  TR                  [        :X  d  M  [%        U4S jUR                  R                   5       5      (       a  GM$   e   g )Nr         r   r   r.   )size      foor!   axisf)iustring)r.   r1   c              3   f   >#    U  H&  n[         R                  " TUR                  5      v   M(     g 7fNr   shares_memoryvalues.0blockarrs     r(   	<genexpr>3TestConcatenate.test_concat_copy.<locals>.<genexpr>L   s,      !Q $$S%,,77!Q   .1c              3   f   >#    U  H&  n[         R                  " TUR                  5      v   M(     g 7fr<   r=   r@   s     r(   rD   rE   T   s(      ETEB$$S%,,77_rF   )r
   r   r   r   r   integersreshaperanger   _mgrblocksr?   dtypekindbaseobjecttmr>   any	itertoolschain)	r"   dfdf2df3r'   rB   df4rL   rC   s	           @r(   test_concat_copy TestConcatenate.test_concat_copy3   s{   ryy,,Q/??GH		--a099!Ra9HPPQRTUVWE
%(3#Q/[[''E,,Cyy~~$xx277>>!#4#;#;#@#@@@@:-xx388??1#5#<#<#A#AAAAf$xx+++h&  chhooa&8&?&?@ ( 		--a0@@HI#+!4kk((F--Cyy~~$ !*!Q     :-xx388??1#5#<#<#A#AAAAf$ EHXX__     )r+   c                    [        [        R                  R                  S5      R	                  S5      5      n[        [        R                  R                  S5      R	                  S5      5      n[        X/SS/S9n[        R                  " / SQ/ SQ/5      n[        [        R                  UR                  UR                  4   US	9n[        R                  " X55        [        X/SS/S9n[        R                  " / S
Q/ SQ/5      n[        [        R                  UR                  UR                  4   US	9n[        R                  " X55        [        [        R                  R                  S5      R	                  S5      5      n[        [        R                  R                  S5      R	                  S5      5      n[        X/SS/SS9n[        [        R                  UR                  UR                  4   US9n[        R                  " X55        [        X/SS/SS9n[        [        R                  UR                  UR                  4   US9n[        R                  " X55        g )Nr   )r/   r.   )r.   r.   r   r1   keys)r   r   r   r1   r1   r1   r1   )r   r1   r   r   r1   r   r/   r4   )r   r   r   r1   r1   r1   )r   r1   r   r   r1   r   r-   r]   r6   columns)r
   r   r   r   r   r   r   from_arraysr_r?   rQ   assert_frame_equalc_)r"   rU   rV   r'   	exp_indexexpected
exp_index2s          r(   test_concat_with_group_keys+TestConcatenate.test_concat_with_group_keysX   s   ryy,,Q/??GH		--a0@@HI	A/**"$9:
	 RUU299cjj#89K
f/1v.++-?AS,TU
RUU299bii#78
K
f/ ryy,,Q/??GH		--a0@@HI	AQ7RUU299cjj#899M
f/1vA6RUU299bii#78*M
f/r+   c                 .   [        [        R                  R                  S5      R	                  S5      5      nUR
                  S S 2SS/4   UR
                  S S 2S/4   UR
                  S S 2S/4   /n/ SQn[        US/ SQU/S/S	9n[        R                  " UR                  R                  S   [        USS
95        [        R                  " UR                  R                  S   [        / SQ5      5        UR                  R                  SS /:X  d   eg )Nr   r   r.   r   r1   r/   )threetwoonezero)rn   rm   rl   	group_key)r6   r]   levelsnamesnamer   r1   r   r/   )r
   r   r   r   r   ilocr   rQ   assert_index_equalr`   rq   r   rr   )r"   rU   pieceslevelr'   s        r(    test_concat_keys_specific_levels0TestConcatenate.test_concat_keys_specific_levelsu   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           
         US:X  a  [         OUnU" [        [        R                  R	                  S5      R                  S5      5      [        [        R                  R	                  S5      R                  S5      5      [        [        R                  R	                  S5      R                  S5      5      [        [        R                  R	                  S5      R                  S5      5      S.5      n[        UR                  5       5      n[        U5      n[        U Vs/ s H  otU   PM	     snUS9n[        R                  " Xh5        [        USS9n[        U Vs/ s H  otU   PM	     snUSS9n[        R                  " Xh5        / S	Qn	[        XIS9n[        U	 Vs/ s H  otU   PM	     snU	S9n[        R                  " Xh5        g s  snf s  snf s  snf )
Nr}   r   r-   )r3   barbazquxr\   r1   r5   r^   )r   r3   r   )r}   r
   r   r   r   r   listr]   r   rQ   rc   )
r"   r|   non_dict_mapping_subclassconstructorframessorted_keysr'   krf   r]   s
             r(   test_concat_mapping#TestConcatenate.test_concat_mapping   sq   %/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:k!9k:M
f/Q'k:k!9k:STU
f/$*d3d!9d3$?
f/ ; ;
 4s   GGGc                    [        [        R                  R                  S5      R	                  S5      5      n[        [        R                  R                  S5      R	                  S5      5      nSS/SS//nSS	/n[        XX// S
QUUS9n[        XX/5      n[        / UQS/P/ SQ/ SQ/ SQ// UQS PS9nXvl        [        R                  " XV5        [        XX// S
QUS9nUR                  R                  S:X  d   e[        XX// S
QSS	/S9nUR                  R                  S:X  d   e[        R                  " UR                  R                  S   [        SS/SS95        g )Nr   r1   r/   r1   r.   r3   r   rn   rm   firstsecond))r3   rn   )r3   rm   )r   rn   )r   rm   )r]   rq   rr   r   r   r   r1   r1   r   r1   r   r1   r   r   r   r   )rq   codesrr   r]   rq   )NNNr]   rr   )r   r   Nrs   )r
   r   r   r   r   r   r   r!   rQ   rc   rr   rw   rq   r   )r"   rU   rV   rq   rr   r'   rf   re   s           r(   test_concat_keys_and_levels+TestConcatenate.test_concat_keys_and_levels   sn   ryy,,Q/??GH		--a0@@HI%.5%.1(#bQ	
 2B,-!V>aS>|< E.4.
	
 #
f/ bQ

 ||!![000 bQH%

 ||!!%>>>>
LL"E5%.w$G	
r+   c                    [        [        R                  R                  S5      R	                  S5      S/S9n[        [        R                  R                  S5      R	                  S5      S/S9nSn[
        R                  " [        US9   [        X/S	S
// SQ/S9  S S S 5        Sn[
        R                  " [        US9   [        X/S	S
// SQ/S9  S S S 5        g ! , (       d  f       ND= f! , (       d  f       g = f)Nr   r   ar4   r   bz Values not found in passed levelmatchrn   rm   )r3   r   r   r   zKey one not in level)	r
   r   r   r   r   pytestraises
ValueErrorr   )r"   rU   rV   msgs       r(   "test_concat_keys_levels_no_overlap2TestConcatenate.test_concat_keys_levels_no_overlap   s    ryy,,Q/??GPSuU		--a0@@HQTPUV0]]:S1B85%.:O9PQ 2 %]]:S1B9E5>;P:QR 21	 21 21s   
C?C+
C(+
C9c           
      t   / SQn[        [        R                  " / SQSS9[        R                  " / SQSS9[        R                  " / SQSS9[        R                  " / SQSS9S.US9n[        [        R                  " / SQSS9[        R                  " / SQSS9[        R                  " / SQSS9[        R                  " / SQSS9S.US9n[        X#/SS9n[        [        R                  " UR
                  UR
                  /S	S
9US9n[        R                  " XE5        [        [        R                  R                  S5      R                  S5      S/S9n[        [        R                  R                  S5      R                  S5      S/S9n[        Xc/SS/SS/S9nUR                  R                  S:X  d   eg )N)ABCDr1   r   r/   r.   f8rM   i8r_   Tignore_indexr   r5   r   r   r   r4   r   r   rn   rm   r   r   r   )r   r   )r
   r   arrayr   concatenater?   rQ   rc   r   r   r   r!   rr   )r"   r`   df1rV   appendedrf   rU   r'   s           r(    test_crossed_dtypes_weird_corner0TestConcatenate.test_crossed_dtypes_weird_corner   sm   &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	w>QR||!!%8888r+   c                 r    [        SSS.[        S5      S9n[        SSS.[        S5      S9n[        X#/US9  g )Nr3   r   )r   r   r1   r   r4   )r   r   sort)r
   rJ   r   )r"   r   r   rV   s       r(   test_with_mixed_tuples&TestConcatenate.test_with_mixed_tuples   s<     eu5U1XFeu5U1XF 	z%r+   c                 P   [        SSSS9n[        R                  " SSS9n[        X!S9n[        X!S9n[	        UR                  SS	5      US9n[	        [        R                  " US
5      R                  SS
5      USS/S9n[        XU/S	S9n[        R                  " Xv5        [	        [        R                  " US
5      R                  SS
5      USS	/S9n[        X4/S	S9n[        R                  " Xv5        [	        [        R                  " US5      R                  SS5      U/ SQS9n[        X4U/S	S9n[        R                  " Xv5        [	        [        R                  " US5      R                  SS5      U/ SQS9n[        X5XDU/S	S9n[        R                  " Xv5        SUl
        [	        [        R                  " US5      R                  SS5      U/ SQS9n[        X5U/S	S9n[        R                  " Xv5        SUl
        [	        [        R                  " US5      R                  SS5      U/ SQS9n[        X5U/S	S9n[        R                  " Xv5        [	        [        R                  " US5      R                  SS5      U/ SQS9n[        X5U/S	SS9n[        R                  " Xv5        g )N01-Jan-2013r   hperiodsr   int64r   r4   r1   r   r   r!   r`   r5   r/   r   r1   r   r2   )r   r   r1   r   r/   r3   )r3   r   r   r   r3   r   r   T)r6   r   )r   r   aranger   r
   rI   repeatr   rQ   rc   rt   r"   r!   rC   r%   r&   rU   rf   r'   s           r(   test_concat_mixed_objs_columns.TestConcatenate.test_concat_mixed_objs_columns  sh    ="3?ii'*C%C%s{{2q)7IIc1%%b!,EAq6
 q)
f/IIc1%%b!,EAq6
 q)
f/IIc1%%b!,E9
 1-
f/IIc1%%b!,E?
 ,15
f/ IIc1%%b!,E=
 1-
f/IIc1%%b!,ECT
 1-
f/ IIc1%%b!,E9
 14@
f/r+   c                 f   [        SSSS9n[        R                  " SSS9n[        X!S9n[        X!S9n[	        UR                  SS	5      US9n[	        [        R                  " US
5      R                  SS	5      UR                  5       S
-  S/S9n[        X5U/5      n[        R                  " Xv5        g )Nr   r   r   r   r   r   r4   r   r1   r/   r   r   )r   r   r   r   r
   rI   tiletolistr   rQ   rc   r   s           r(   test_concat_mixed_objs_index,TestConcatenate.test_concat_mixed_objs_index9  s     ="3?ii'*C%C%s{{2q)7GGCO##B*%,,.12Dqc
 %
f/r+   c           	      *   [        SSSS9n[        R                  " SSS9n[        X!SS9n[        X!S	S9n[	        UR                  S
S5      US9n[	        [        R                  " [        R                  " [        R                  " S5      S:H  S[        R                  5      U5      R                  UR                  5       S-  / SQS9n[        X5U/5      n[        R                  " Xv5        [	        [        R                  " [        R                  " [        R                  " S5      S:H  S[        R                  5      U5      R                  [        R                  " S[        R                  S9/ SQS9n[        X5U/SS9n[        R                  " Xv5        g )Nr   r   r   r   r   r   r3   )r!   rt   r   r   r1   r4   r/   r   r      Tr   )r   r   r   r   r
   rI   kronwhereidentitynanTr   r   rQ   rc   r   r   s           r(   "test_concat_mixed_objs_index_names2TestConcatenate.test_concat_mixed_objs_index_namesI  s-    ="3?ii'*C51C51s{{2q)7GGBHHR[[^q0!RVV<cBDD,,.1$%

 %
f/GGBHHR[[^q0!RVV<cBDD))Bbhh/%

 48
f/r+   c           	         [        S[        R                  " S5      R                  S5      [        R                  /05      n[        UR                  S/   UR                  S/   /5      n[        R                  " UR                  UR                  5        [        S[        SSS5      [        SSS5      /05      n[        UR                  S/   UR                  S/   /5      n[        R                  " UR                  UR                  5        [        S	S
/S /S-  -   05      n[        UR                  S/   UR                  S/   /5      n[        R                  " UR                  UR                  5        g )Ndate20130101UTCr   r1   i  i  r   textz
some words	   )r
   pd	Timestamptz_localizeNaTr   rv   rQ   assert_series_equaldtypesr   )r"   rU   r'   s      r(   test_dtype_coercion#TestConcatenate.test_dtype_coercione  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                     [        [        R                  R                  S5      R	                  S5      5      n[        U/S/S9n[        X/SS/S9n[        R                  " X#S S 5        g )Nr   rk   r3   r\   r   r   )r
   r   r   r   r   r   rQ   rc   )r"   rU   r'   rf   s       r(   test_concat_single_with_key+TestConcatenate.test_concat_single_with_keyv  s\    ryy,,Q/??HIE7+2(%8
fsm4r+   c                     [         R                  " [        SS9   [        / 5        S S S 5        g ! , (       d  f       g = f)NzNo objects to concatenater   )r   r   r   r   r"   s    r(   test_concat_no_items_raises+TestConcatenate.test_concat_no_items_raises}  s%    ]]:-HI2J JIIs   /
=c                 L   [        [        R                  R                  S5      R	                  S5      5      nUS S S S USS  /n[        U5      n[        R                  " X15        [        R                  " [        SS9   [        S S /5        S S S 5        g ! , (       d  f       g = f)Nr   rk   r2   zAll objects passed were Noner   )r
   r   r   r   r   r   rQ   rc   r   r   r   )r"   rU   rx   r'   s       r(   test_concat_exclude_none(TestConcatenate.test_concat_exclude_none  s    ryy,,Q/??HIRa&$bf-
f)]]:-KLD$<  MLLs   >B
B#c                 0   [        / SQ/ SQ/ SQ/5      n[        S XS S US S US.5      n[        XS S US S US.5      n[        R                  " X#5        [        S XS S US S U// SQS9n[        XS S US S U// SQS9n[        R                  " X#5        g )N)r      r   r   r1   )r   r   cde)r   r   r   r   r\   r
   r   rQ   rc   )r"   df0r'   rf   s       r(   test_concat_keys_with_none*TestConcatenate.test_concat_keys_with_none  s    |\BCdr7RasSTbq'BQcJK
f/3BQRa#.5N
 3BQRa#6=QR
f/r+   klassinclude_noneTFc                    [        SS/5      n[        SS/5      nU(       a  US US /OX4/nU(       a  SOSn[        XQ" U5      S9n[        / SQ[        [        SXfS-  S9[        SSSS94[        R
                  " / S	Q[        R                  S
9[        R
                  " / SQ[        R                  S
94S9S9n[        R                  " Xx5        g )Nr1   r   r/   r.   r\   r   r   )startstopstepr   r   r   )rq   r   r4   )	r
   r   r   r   r   r   int8rQ   rc   )	r"   r   r   rU   rV   datakeys_lengthr'   rf   s	            r(    test_concat_preserves_rangeindex0TestConcatenate.test_concat_preserves_rangeindex  s     1vA(4D#t$2)'aQ5#56Q[QOQQQ7
 HH\9HH\9	
 	f/r+   c                 H   [        [        R                  " S[        R                  S9[	        SSS9S9nUS S S2   n[        X/SSS	9nS
n[        R                  " [        US9   [        X!/SSS	9nS S S 5        [        U5      [        W5      :X  d   eg ! , (       d  f       N)= f)Nr   r   z
2020-01-01)r   r4   r   outerr1   )joinr6   zESorting by default when concatenating all DatetimeIndex is deprecatedr   )
r   r   r   float64r   r   rQ   assert_produces_warningr	   len)r"   ts1ts2leftr   rights         r(   test_concat_bug_1719$TestConcatenate.test_concat_bug_1719  s    IIb

+:lTV3W
 #A#h sjwQ7U''cBC:G!<E C 4yCJ&&& CBs   #B
B!c                 
   [        [        R                  " S5      5      n[        [        R                  " S5      5      nS=Ul        Ul        [        X/SS9n[        XS.5      nSS/Ul        [        R                  " X45        g )Nr2   z	same namer1   r5   r   r1   )
r   r   zerosonesrt   r   r
   r`   rQ   rc   )r"   ts0r  r'   rf   s        r(   test_concat_bug_2972$TestConcatenate.test_concat_bug_2972  sj    RXXa[!RWWQZ ))38
+-.'5
f/r+   c                     [        / SQ/ SQ/ SQS.5      n[        / SQ/ SQ/ SQS.5      n[        / SQ/ S	Q/ S
Q/ SQ/5      n/ SQUl        [        X/SS9n[        R                  " XC5        g )Nr   )   r  r  r  )rrrr  r  r  )firmNoprc	stringvar)r   r         r   )r   miscr  )r   r  r  r   r1   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  r1   r5   )r
   r`   r   rQ   rc   )r"   r   rV   rf   r'   s        r(   test_concat_bug_3602$TestConcatenate.test_concat_bug_3602  st    &#9
 !<M
 &'''	
 N
+
f/r+   c                 d  ^^ [        / SQ5      m[        / SQ5      m[        / SQ5      n[        R                  " [        TT4SS9U5        [        R                  " [        TT/SS9U5        [        R                  " [        S TT4 5       SS9U5        [        R                  " [        [	        TT45      SS9U5         " UU4S jS5      n[        R                  " [        U" 5       SS9U5         " UU4S	 jS
[
        R                  5      n[        R                  " [        U" 5       SS9U5        g )Nr1   r   r/   r.   r2   r  r1   r   r/   r.   r2   r  Tr   c              3   $   #    U  H  ov   M     g 7fr<    )rA   rU   s     r(   rD   8TestConcatenate.test_concat_iterables.<locals>.<genexpr>  s     ,2B   c                   2   > \ rS rSrS\4S jrU U4S jrSrg)>TestConcatenate.test_concat_iterables.<locals>.CustomIterator1i  returnc                     g)Nr   r%  r   s    r(   __len__FTestConcatenate.test_concat_iterables.<locals>.CustomIterator1.__len__  s    r+   c                 H   >  TTS.U   $ ! [          a  n[        UeS nAff = f)Nr  )KeyError
IndexError)r"   r!   errr   rV   s      r(   __getitem__JTestConcatenate.test_concat_iterables.<locals>.CustomIterator1.__getitem__  s0    ."s+E22 .$#-.s    
!!r%  N)__name__
__module____qualname____firstlineno__intr,  r2  __static_attributes__r   rV   s   r(   CustomIterator1r)    s     . .r+   r;  c                   ,   > \ rS rSrS\4U U4S jjrSrg)>TestConcatenate.test_concat_iterables.<locals>.CustomIterator2i  r*  c              3      >#    Tv   Tv   g 7fr<   r%  )r"   r   rV   s    r(   __iter__GTestConcatenate.test_concat_iterables.<locals>.CustomIterator2.__iter__  s     		s   
r%  N)r4  r5  r6  r7  r   r?  r9  r:  s   r(   CustomIterator2r=    s    (  r+   rA  )r
   rQ   rc   r   r   r   Iterable)r"   rf   r;  rA  r   rV   s       @@r(   test_concat_iterables%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           	         [        [        S5      / SQS9/nU[        S5       Vs/ s H  n[        [        S5      / SQS9PM     sn-  n[        USS9R                  n[	        / SQ5      n[
        R                  " X45        g s  snf )	Nr/   )r   r1   Nr   d   )Nr1   r   Tr   )r1   r   N)r
   rJ   r   r`   r   rQ   rw   )r"   dfs_r'   rf   s        r(   test_concat_order!TestConcatenate.test_concat_order  sn    uQx@A5QT:V:a	a.A:VV$'//(
f/	 Ws   Bc                     [        [        R                  " SS/SS95      n[        [        SS/5      5      n[	        X/SS9n[        SS[        S5      [        S5      /[        S9n[        R                  " X45        g )Nr1   r   Int64r   Tr   )	r   r   r   r   r   r   rP   rQ   r   )r"   r   r   r'   rf   s        r(   .test_concat_different_extension_dtypes_upcasts>TestConcatenate.test_concat_different_extension_dtypes_upcasts
  sg    288QF'23:q!f%&T21aWQZ8G
v0r+   c                     [        [        [        S5      5      [        [        S5      5      /SS/S9n[        [        [        S5      5      [        [        S5      5      S.5      n[        R                  " X!5        g )Nr/   r.   FirstAnotherr\   )rP  rQ  )r   r   rJ   rQ   r   )r"   rf   r'   s      r(   test_concat_ordered_dict(TestConcatenate.test_concat_ordered_dict  s^    E!HveAh/07K
 &q"2veAh?OPQ
v0r+   c                 l   [        [        R                  R                  S5      R	                  S5      / SQS/S9n[        [        R                  R                  S5      R	                  S5      / SQS/S9nSn[
        R                  " [        US	9   [        X/S
S9  S S S 5        g ! , (       d  f       g = f)Nr   r2   )r   r1   r   r/   r/   r   r   )r   r1   r   r   r.   r   z8Reindexing only valid with uniquely valued Index objectsr   r1   r5   )	r
   r   r   r   r   r   r   r   r   )r"   r   rV   r   s       r(   #test_concat_duplicate_indices_raise3TestConcatenate.test_concat_duplicate_indices_raise  s     II!!!$44Q7!E

 II!!!$44Q7!E

 I]],C8C:A& 988s   B%%
B3r%  N)$r4  r5  r6  r7  r)   rY   rh   rz   r   markparametrizer   r   r   r   r   r   r   r   r   r   r   r   r   rJ   r   r   r  r  r  rC  rI  rM  rR  rU  r9  r%  r+   r(   r   r   "   s    . #J0:;" [[YF(;<0 =04'
RS9B&60p0 089"5!0 [[Wuj&9:[[^dE];0 < ;0*'002V@011'r+   r   c           
      @   U" [         S9R                  nU nU" [        R                  " S/X2S95      U" [        R                  " [        R                  /X2S95      U" [        R                  " S/X2S95      /n[        U5      nUR                  R                  U:X  d   eg )Nr   r1   rM   ndminr2   )rP   ndimr   r   r   r   r?   rM   )float_numpy_dtypeframe_or_seriesdimsdtrG  xs         r(   !test_concat_no_unnecessary_upcastrb  ,  s    (--D	B 	!B;<"&&@A!B;<C
 	sA88>>Rr+   c           
      :   UnU " 5       R                   nU " [        R                  " S/X#S95      U " [        R                  " [        R                  /US95      U " [        R                  " S/X#S95      /n[	        U5      nUR
                  R                  S:X  d   eg )Nr1   rZ  )r[  r2   r  )r\  r   r   r   r   r?   rM   )r^  any_signed_int_numpy_dtyper`  r_  rG  ra  s         r(   test_concat_will_upcastre  :  s    	#B!!D!B;<"&&67!B;<C
 	sA88>>Y&&&r+   c                      [        SS/05      n [        S/ 05      n[        SS/05      n[        X/5      n[        R                  " X25        g )Nr3   r1   g      ?r   )r   rV   rf   r'   s       r(   0test_concat_empty_and_non_empty_frame_regressionrg  F  sJ    
UQCL
!C
UBK
 C%#(HSJF&+r+   c                      [        [        / SQ5      5      n [        SS/SS/SS//S9R                  [        R
                  " [        R                  S5      5      n[        X /SS9n[        R                  " X!5        g )Nr   r   r1   r   r   r5   )r   r   r
   astyper   SparseDtyper   r   r   rQ   rc   )r   rf   r'   s      r(   test_concat_sparserl  O  si    {9%&A1v1v1v67>>
rxx#H QF#F&+r+   c                  :   [         R                  " [        R                  S 5      n [	        [         R
                  R                  SS /5      U S9n[	        S/[        S9n[	        / SQ/ SQS9R                  U 5      n[        X/SS9n[        R                  " XC5        g )Nr1   r   )r1   Nr1   )r   r1   r   r   r!   r   r5   )r   rk  r   r  r   arraysr   floatrj  r   rQ   r   )rM   r   r   rf   r'   s        r(   test_concat_dense_sparserq  Y  sv    NN2::t,Eryy$$aY/u=As% A<y9@@GHQF#F6,r+   r]   )r   r7   r7   )r7   r   r7   c                 "   [        / SQ/ SQS.5      n[        / SQSS9n[        / SQSS9n[        XU/S	U S
9n/ SQ/ SQ/ SQ/n[        R                  " U S   S4U S   S4U S	   S4U S   S4/5      n[        XVS9n[
        R                  " XG5        g )Nr!  r"  r   r   )      r   r   rs   )r   r  r  r   r1   r6   r]   )r1   r.   rt  r   )r   r2   ru  r  )r/   r  r   r  r   r   r   r   r_   )r
   r   r   r   from_tuplesrQ   rc   )r]   rU   r%   r&   r'   expected_valuesexpected_columnsrf   s           r(   test_duplicate_keysrz  c  s     
3	4B			$B	3	'BRRLqt4F$m]CO!--
q'3$q'3$q'3$q'3H CH&+r+   c                      SS/n [        / SQ/ SQS.5      n[        X/SU S9n/ SQ/ SQ/ S	Q/n[        R                  " U S
   S4U S
   S4U S   S4U S   S4/5      n[        X4S9n[        R
                  " X%5        g )Nr   r!  r"  rs  r1   rv  )r1   r.   r1   r.   )r   r2   r   r2   )r/   r  r/   r  r   r   r   r_   )r
   r   r   rw  rQ   rc   )r]   rU   r'   rx  ry  rf   s         r(   test_duplicate_keys_same_framer|  r  s    :D	3	4BRH140F#\<@O!--
q'3$q'3$q'3$q'3H CH&+r+   zMignore:Passing a BlockManager|Passing a SingleBlockManager:DeprecationWarningobjr   r   rs   c                 T    [        X /5      n[        U[        U 5      5      (       d   eg r<   )r   r    type)r}  r'   s     r(   test_concat_preserves_subclassr    s'     SJFfd3i((((r+   c                  J   [        S[        R                  " / SQSS905      n [        S[        R                  " / SQ5      05      n[	        X/SS9n[        S/ SQ0SS9n[
        R                  " X#5        [	        X/SS9n[        S/ S	Q0SS9n[
        R                  " X#5        g )
Nr   r!  rL  r   r"  Tr   r#  )r.   r2   r  r1   r   r/   )r
   r   r   r   r   rQ   rc   r   rV   r'   rf   s       r(   (test_concat_frame_axis0_extension_dtypesr    s    
S"((9G<=
>C
S"((9-.
/CSJT2F#12'BH&+SJT2F#12'BH&+r+   c                      [        SS/0SS9n [        SS/0SS9n[        X/SS9n[        SS /S S/S	.SS9n[        R                  " X#5        g )
Nr   r   rL  r   r   r1   Tr   rs  r   )df_adf_br'   rf   s       r(   +test_concat_preserves_extension_int64_dtyper    s[    cB4[0DcA3Zw/DTLt4FDzq	:'JH&+r+   zdtype1,dtype2,expected_dtype))boolr  r  )booleanr  r  )r  r  r  )r  r  r  c                     [        SS/U S9n[        SS/US9n[        X4/SS9n[        / SQUS9n[        R                  " XV5        g )NTFr   r   )TFFT)r   r   rQ   r   )dtype1dtype2expected_dtypeser1ser2r'   rf   s          r(   test_concat_bool_typesr    sM     4-v.D5$-v.DTLt4F0GH6,r+   )r]   	integrityredr/   TF)r  bluer  c                     [        SS05      [        SS05      [        SS05      /n[        X US9n[        [        U / SQ5      5      n[        / S	Q[        R
                  " U5      S
9n[        R                  " X55        g )Nr   r1   r   r   r   r/   )r]   verify_integrityr   r   r   r!  r4   )r   r   r   zipr   rw  rQ   r   )r]   r  series_listr'   tuplesrf   s         r(   test_concat_repeated_keysr    sm     3(#VS!H%5vsAh7GHKKYGF#dO,-Fiz'='=f'EFH6,r+   c                     [         R                  " S/SSS9n [        SS/0U S9n[        S /SS	S9n[        S /[        R
                  /S
.US9n[        X1/SS9n[        S U S   /[        S9n[        [        R                  " S [        R
                  /[        S9[        R
                  [        R
                  /[        R
                  S/S.US9n[        R                  " XF5        g )Nz2021-04-08 21:21:14+00:00zdatetime64[ns, UTC]z
Time (UTC))rM   rt   r   g!u?rn  rP   zMaybe Time (UTC))r   r   r`   r5   r   r   r   r   r   r4   )r   DatetimeIndexr
   r   r   r   r   rP   r   rQ   rc   )dtir  idxr
  r'   re   rf   s          r(    test_concat_null_object_with_dtir    s    


	$%-BC C&?#6E
h-?
@CbffX6cBDTM	2FtSVnF3I4.7&&"&&!&&&!	

 H &+r+   c                     [         R                  " SS/5      n [        SS//U S9n[        S/[        S5      S9n[	        X/5      n[        SS/[
        R                  [
        R                  //U S9n[        R                  " X45        g )Nr   )r   r1   r1   r   r_   r   r   )	r   rw  r
   r   r   r   r   rQ   rc   )mir   rV   r'   rf   s        r(   ,test_concat_multiindex_with_empty_rangeindexr    sw    			8 4	5B
aVHb
)C
1#z!}
5CSJF1a&266266"23R@H&+r+   r   r1   r   ri  col1r   c                     U R                  5       nSS0Ul        U R                  5       nSS0Ul        [        X/5      n[        UR                  5      S:X  d   eg )Nr1   r   r   )copyattrsr   r  r   r   rV   rU   s       r(   test_concat_drop_attrsr    sR     ))+CACI
))+CACI	
	Brxx=Ar+   c                     U R                  5       nSS0Ul        U R                  5       nSS0Ul        [        X/5      nUR                  S   S:X  d   eg )Nr1   )r  r  r   r  s       r(   test_concat_retain_attrsr    sR     ))+CACI
))+CACI	
	B88A;!r+   df_dtype)r  r   datetime64[ns]empty_dtype)Nr  rP   c                 H   [        SS/SS/S.US9n[        SS/U S9nSnUS	:X  d  US
:X  a  U S
:w  a  Sn[        X2/5      nUnUS:X  a)  U S
:X  a  UR                  S
5      nOUR                  S5      nU(       a  UR                  [        5      n[        R
                  " XV5        g )Nr1   r   r3   r   r   r3   r   )r`   rM   Fr  r  Tr   rP   )r
   r   rj  rP   rQ   rc   r  r  rU   emptyneeds_updater'   rf   s          r(   %test_concat_ignore_empty_object_floatr    s     
Aq61a&1	BBuenK@EL##I+":UK FH7)#yy+Hyy*H??6*&+r+   c                    [        SS/SS/S.US9n[        [        R                  /[        R                  /S.U S9nUS:X  a  U S:X  a  SnOSnSnX:w  a  U b  S	nOUS
:X  a  S	n[        X2/S	S9n[        [        R                  SS/[        R                  SS/S.US9nU(       a2  UR	                  [
        5      n[        R                  UR                  S'   [        R                  " XV5        g )Nr1   r   r  r   r   rP   r  FTr  r   r   )	r
   r   r   r   rj  rP   rv   rQ   rc   r  s          r(   &test_concat_ignore_all_na_object_floatr  8  s     
Aq61a&1	BBrvvhx8LE7("H HL;#:	%	%UKd3F"&&!QAGxXH??6*66a&+r+   c                     [        S/[        R                  " S5      /S.5      n [        SS/05      nUR                  U R                  S9n[        X/SS9n[        SS/[        R                  " [        R                  " S5      [        R                  /[        S	9S.[        S	9nUS   R                  S
5      US'   [        R                  " X45        g )Nr1   z
2012-01-01rs  r   r   r_   Tr   r   r   )r
   r   r   reindexr`   r   r   r   r   rP   rj  rQ   rc   )r   rV   alignedr'   rf   s        r(   %test_concat_ignore_empty_from_reindexr  U  s    
1#R\\,%?$@A
BC
S1#J
Ckk#++k.GSN6FQ2<<5rvv>fM	
 H SM((1HSM&+r+   c                     [        [        S5      5      n [        S5       Vs/ s H  oU-   PM	     nn/ SQnSn[        R                  " [        US9   [        X#SS9  S S S 5        [        R                  " [        US9   [        X#SS9  S S S 5        [        R                  " [        US9   [        S	 U 5       S
 U 5       SS9  S S S 5        [        R                  " [        US9   [        S U 5       S U 5       SS9  S S S 5        g s  snf ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nq= f! , (       d  f       g = f)Nr2   r.   r  zThe length of the keysr   r1   r^   r   c              3   $   #    U  H  ov   M     g 7fr<   r%  rA   ra  s     r(   rD   5test_concat_mismatched_keys_length.<locals>.<genexpr>u        4a4r'  c              3   $   #    U  H  ov   M     g 7fr<   r%  rA   ys     r(   rD   r  u       '84a4r'  c              3   $   #    U  H  ov   M     g 7fr<   r%  r  s     r(   rD   r  w  r  r'  c              3   $   #    U  H  ov   M     g 7fr<   r%  r  s     r(   rD   r  w  r  r'  )r   rJ   r   r   r   r   )sernsersr]   r   s        r(   "test_concat_mismatched_keys_lengthr  i  s    
q
C"1X&X!GXD&D
#C	z	-tQ' 
.	z	-tQ' 
.	z	- 4 '84'8qA 
.	z	- 4 '84'8qA 
.	- ' 
.	-	-	-	-	-	-	-s5   DD=D)D.$D?
D
D+.
D<?
Ec                  "   [        [        [        S5      SS9[        [        S5      SS9[        / SQ5      S.5      n U R                  SS/5      n [        [        [        S5      SS9[        [        S5      SS9[        / S	Q5      S.5      nUR                  SS/5      n[	        X/5      n[        [        [        S
5      SS9[        [        S5      SS9[        / SQ5      S.5      nUR                  SS/5      n[
        R                  " X#5        g )Nr   categoryr   eeer!  )c1c2i2r  r  r"  abcabceeeeeer#  )r
   r   r   	set_indexr   rQ   rc   r  s       r(   $test_concat_multiindex_with_categoryr  z  s    
eJ7eJ7#	
C --t
%C
eJ7eJ7#	
C --t
%CSJFhz:hz:+,	
H !!4,/H&+r+   c                      [        S/SS9n [        S/SS9n[        X/5      n[        SS/SS/S9n[        R                  " X#5        g )Nr   r:   r   r1   rL  r   r4   r   r  s       r(   test_concat_ea_upcastr    sL    
SE
*C
QCw
'CSJF#q!Q0H&+r+   c                      [        SS 0/5      n [        S[        R                  " S5      0/5      n[        X/SS9n[        SS [        R                  " S5      /0[        S9n[
        R                  " X#5        g )Nr   z1990-12-20 00:00:00+00:00Tr   r   )r
   r   r   r   rP   rQ   rc   r  s       r(   (test_concat_none_with_timezone_timestampr    so    
c4[M
"C
c2<<(CDEF
GCSJT2F	tR\\"=>?@H &+r+   c                      [        S/5      n [        SS/5      n[        X/5      n[        / SQ/ SQS9n[        R                  " X#SS9  g )	Nr   r1   r   r   )r   r   r1   r4   T)check_column_type)r   r
   r   rQ   rc   )r  rU   r'   rf   s       r(   <test_concat_with_series_and_frame_returns_rangeindex_columnsr    sC    
!+C	Aq6	BSIF)4H&dCr+   c                      [        S//5      n [        S//5      nSnSS/nSU< S3n[        R                  " [        US9   [	        X/X2S	9  S S S 5        g ! , (       d  f       g = f)
Nr   *   Tr   rV   zCannot set ignore_index=z) and specify keys. Either should be used.r   )r]   r   )r
   r   r   r   r   )r   rV   r   r]   r   s        r(   +test_concat_with_moot_ignore_index_and_keysr    sa    
aSE
C
bTF
CL5>D%&O
PC	z	-z@ 
.	-	-s   A
A$z$inputs, ignore_index, axis, expectedrs  r.   r2   r   )r   r1   NN)r   r/   NN)NNr.   r2   r  r   r4   ru   )r   r   r   r1   c                 D    [        XUS9n[        R                  " XC5        g )N)r   r6   )r   rQ   rc   )inputsr   r6   rf   r'   s        r(   test_concat_of_series_and_framer    s    b FDAF&+r+   )Bcollectionsr   r   collections.abcr   r   decimalr   rS   numpyr   r   pandas.errorsr   r	   pandasr   r
   r   r   r   r   r   r   r   pandas._testing_testingrQ   pandas.core.arraysr   pandas.tests.extension.decimalr   r   rb  re  rg  rl  rq  rW  rX  rz  r|  filterwarningsSubclassedDataFramer   SubclassedSeriesr  r  r  r  r  r  r  rp  r  r  r  r  r  r  r  r  r  r  r  r  r%  r+   r(   <module>r     s   %     
 	 	 	  * 5G' G'T 	',,- /?!CD, E,
, S 	
RYYq"%567
BIIa,37)),, "-- 
1d
1e	'	&	--,0, 
QFA	

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

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