
    .i?                     z   d dl mZmZ d dlmZ d dlmZ d dlmZ d dlZd dl	Z
d dlZd dlmZmZ d dlZd dlmZmZmZmZmZmZmZmZ d dlmZ d dlmZ d d	lmZ  G d
 d      Z d Z!d Z"d Z#d Z$d Z%ejL                  jO                  dg dg dg      d        Z(d Z)ejL                  jU                  d      ejL                  jO                  d ejV                  d e
jX                  d d      i       ejZ                   e
jX                  d d      d      g      d               Z.d Z/d Z0ejL                  jO                  dg d      d         Z1ejL                  jO                  d!d"gd#z  d$fd"gd#z  d%fg d&d%fg d&d$fg      d'        Z2d( Z3d) Z4ejL                  jO                  d* ed+d,g-       ed.d+d,gi-       ee5/       ee5/      g      d0        Z6ejL                  jO                  d* ed+d,g-       ed.d+d,gi-       ee5/       ee5/      g      d1        Z7ejL                  jO                  d2g d3      ejL                  jO                  d4g d5      d6               Z8ejL                  jO                  d2g d3      ejL                  jO                  d4g d5      d7               Z9d8 Z:d9 Z;d: Z<d; Z=d< Z>d= Z?d> Z@ejL                  jO                  d? ed d+gd,d#gd@       edAdBgdC      gd%d  eg dDg dEg dFdGg dHI      f ed d+gd,d#gd@       edAdBgdC      gd$d  eg dDg dEg dFdGg dJI      f ed d+gd,d#gd@       edAdBg       edAdBg      gd%d+ ed d+gd,d#gdAdBgdAdBgdKd d+gI      f ed d+gd,d#gd@       edAdBg       edAdBg      gd$d+ ed d+gd,d#gdAdBgdAdBgdJd d+gI      fg      dL        ZAy)M    )abcdeque)Iterator)datetime)DecimalN)InvalidIndexErrorPandas4Warning)	DataFrameIndex
MultiIndexPeriodIndex
RangeIndexSeriesconcat
date_range)SparseArray)
to_decimalc                   n   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ej                  j                  deeg      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!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         e/var/www/app/trading-bot/venv/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      }|j                  j                  D ]!  }|j                  j                  j                  dk(  r<j                  |j                  j                  d   j                  j                  u rcJ j                  j                  dv r<j                  |j                  j                  d   j                  j                  u rJ j                  t        k(  rj                  J j                  dk(  st!        j"                  |j                  j                  d   j                         $ t        t        j                  j                  d      j	                  d            }t        ||||gd      }|j                  j                  D ]  }|j                  j                  j                  dk(  rSt%        fdt'        j(                  |j                  j                  |j                  j                        D              rzJ j                  j                  dv r<j                  |j                  j                  d   j                  j                  u rJ j                  t        k(  st%        fd|j                  j                  D              rJ  y )Nr         r   r   r,   )size      foor    axisf)iustring)r,   r/   c              3   ^   K   | ]$  }t        j                  |j                         & y wNr   shares_memoryvalues.0blockarrs     r'   	<genexpr>z3TestConcatenate.test_concat_copy.<locals>.<genexpr>L   s*       $$S%,,7   *-c              3   ^   K   | ]$  }t        j                  |j                         & y wr:   r;   r>   s     r'   rB   z3TestConcatenate.test_concat_copy.<locals>.<genexpr>T   s'      <AB$$S%,,7rC   )r
   r   r   r   r   integersreshaperanger   _mgrblocksr=   dtypekindbaseobjecttmr<   any	itertoolschain)	r!   dfdf2df3r&   r@   df4rI   rA   s	           @r'   test_concat_copyz TestConcatenate.test_concat_copy3   s   ryy,,Q/??GH		--a099!Ra9HPPQRTUVWE
%(3S#Q/[['' 		AE,,Cyy~~$xx277>>!#4#;#;#@#@@@@:-xx388??1#5#<#<#A#AAAAf$xx+++h&  chhooa&8&?&?@		A 		--a0@@HIS#s+!4kk(( 	F--Cyy~~$ !*!Q    :-xx388??1#5#<#<#A#AAAAf$ EHXX__   	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-   r2   )r   r   r   r/   r/   r/   )r   r/   r   r   r/   r   r+   rY   r4   columns)r
   r   r   r   r   r   r   from_arraysr_r=   rN   assert_frame_equalc_)r!   rR   rS   r&   	exp_indexexpected
exp_index2s          r'   test_concat_with_group_keysz+TestConcatenate.test_concat_with_group_keysX   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)r4   rY   levelsnamesnamer   r/   r   r-   )r
   r   r   r   r   ilocr   rN   assert_index_equalr\   rl   r   rm   )r!   rR   pieceslevelr&   s        r'    test_concat_keys_specific_levelsz0TestConcatenate.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           
         |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 )
Nrw   r   r+   )r1   barbazquxrX   r/   r3   rZ   )rz   r1   ry   )rw   r
   r   r   r   r   listrY   r   rN   r_   )
r!   rv   non_dict_mapping_subclassconstructorframessorted_keysr&   krb   rY   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        g |dgg dg dg dgg |d       }||_        t        j                  ||       t        ||||gg d
|      }|j                  j                  dk(  sJ t        ||||gg d
dd	g      }|j                  j                  dk(  sJ t        j                  |j                  j                  d   t        ddgd             y )Nr   r/   r-   r/   r,   r1   rz   ri   rh   firstsecond))r1   ri   )r1   rh   )rz   ri   )rz   rh   )rY   rl   rm   r   r   r   r/   r/   r   r/   r   r/   r   r   r   r   )rl   codesrm   rY   rl   )NNNrY   rm   )r   r   Nrn   )r
   r   r   r   r   r   r   r    rN   r_   rm   rr   rl   r   )r!   rR   rS   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,-!V>aS>|< E.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   ar2   r   bz Values not found in passed levelmatchri   rh   )r1   ry   rz   r   zKey one not in level)	r
   r   r   r   r   pytestraises
ValueErrorr   )r!   rR   rS   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rJ   i8r[   Tignore_indexr   r3   r   r   r   r2   r   r   ri   rh   r   r   r   )r   r   )r
   r   arrayr   concatenater=   rN   r_   r   r   r   r    rm   )r!   r\   df1rS   appendedrb   rR   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 )Nr1   ry   )r   r   r/   r   r2   )r   r   sort)r
   rG   r   )r!   r   r   rS   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   r2   r/   r   r   r    r\   r3   r-   r   r/   r   r0   )r   r   r/   r   r-   r1   )r1   r   r   ry   r1   r   ry   T)r4   r   )r   r   aranger   r
   rF   repeatr   rN   r_   ro   r!   r    rA   r$   r%   rR   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   r2   r   r/   r-   r   r   )r   r   r   r   r
   rF   tiletolistr   rN   r_   r   s           r'   test_concat_mixed_objs_indexz,TestConcatenate.test_concat_mixed_objs_index9  s     ="3?ii'*Cu%Cu%s{{2q)7GGCO##B*%,,.12Dqc
 R%
fh/r)   c           	      X   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                  t        j                  t        j                  d      dk(  dt        j                        |      j                  t        j                  dt        j                        g d      }t        |||gd      }t        j                  ||       y )Nr   r   r   r   r   r   r1   )r    ro   ry   r   r/   r2   r-   r   r      Tr   )r   r   r   r   r
   rF   kronwhereidentitynanTr   r   rN   r_   r   r   s           r'   "test_concat_mixed_objs_index_namesz2TestConcatenate.test_concat_mixed_objs_index_namesI  s9    ="3?ii'*Cu51Cu51s{{2q)7GGBHHR[[^q0!RVV<cBDD,,.1$%

 R%
fh/GGBHHR[[^q0!RVV<cBDD))Bbhh/%

 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   rq   rN   assert_series_equaldtypesr   )r!   rR   r&   s      r'   test_dtype_coercionz#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                     t        t        j                  j                  d      j	                  d            }t        |gdg      }t        ||gddg      }t        j                  ||d d        y )Nr   rf   r1   rX   ry   r   )r
   r   r   r   r   r   rN   r_   )r!   rR   r&   rb   s       r'   test_concat_single_with_keyz+TestConcatenate.test_concat_single_with_keyv  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   r0   zAll objects passed were Noner   )r
   r   r   r   r   r   rN   r_   r   r   r   )r!   rR   rs   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   r   cde)r   r   r   r   rX   r
   r   rN   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)   klassinclude_noneTFc                    t        ddg      }t        ddg      }|r|d |d gn||g}|rdnd}t        | ||            }t        g dt        t        d||dz        t        ddd      ft	        j
                  g d	t        j                  
      t	        j
                  g dt        j                  
      f            }t        j                  ||       y )Nr/   r   r-   r,   rX   r   r   )startstopstepr   r   r   )rl   r   r2   )	r
   r   r   r   r   r   int8rN   r_   )	r!   r   r   rR   rS   datakeys_lengthr&   rb   s	            r'    test_concat_preserves_rangeindexz0TestConcatenate.test_concat_preserves_rangeindex  s     1vA(4D#t$2s)'aQ5#56Q[{QOQQQ7
 HH\9HH\9	
 	fh/r)   c                 `   t        t        j                  dt        j                        t	        dd            }|d d d   }t        ||gdd	      }d
}t        j                  t        |      5  t        ||gdd	      }d d d        t        |      t              k(  sJ y # 1 sw Y   #xY w)Nr   r   z
2020-01-01)r   r2   r   outerr/   )joinr4   zESorting by default when concatenating all DatetimeIndex is deprecatedr   )
r   r   r   float64r   r   rN   assert_produces_warningr	   len)r!   ts1ts2leftr   rights         r'   test_concat_bug_1719z$TestConcatenate.test_concat_bug_1719  s    IIb

+:lTV3W
 #A#h sCjwQ7U''cB 	=C:G!<E	= 4yCJ&&&	= 	=s   1B$$B-c                    t        t        j                  d            }t        t        j                  d            }dx|_        |_        t        ||gd      }t        ||d      }ddg|_        t        j                  ||       y )Nr0   z	same namer/   r3   r   r/   )
r   r   zerosonesro   r   r
   r\   rN   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/   r3   )r
   r\   r   rN   r_   )r!   r   rS   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,   r0   r   r/   r   r-   r,   r0   r   Tr   c              3       K   | ]  }|  y wr:    )r?   rR   s     r'   rB   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   rS   s      r'   __getitem__zJTestConcatenate.test_concat_iterables.<locals>.CustomIterator1.__getitem__  s0    ."s+E22 .$#-.s    	  N)__name__
__module____qualname__intr  r  r   rS   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r:   r  )r!   r   rS   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
   rN   r_   r   r   r   Iterable)r!   rb   r  r$  r   rS   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
   rG   r   r\   r   rN   rr   )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   rN   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AnotherrX   )r0  r1  )r   r   rG   rN   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   r0   )r   r/   r   r-   r-   r   r   )r   r/   r   r   r,   r   z8Reindexing only valid with uniquely valued Index objectsr   r/   r3   )	r
   r   r   r   r   r   r   r   r   )r!   r   rS   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(   rV   rd   ru   r   markparametrizer   r   r   r   r   r   r   r   r   r   r   r   r   rG   r   r   r   r   r  r&  r+  r.  r2  r4  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           	      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/   rJ   ndminr0   )rM   ndimr   r   r   r   r=   rJ   )float_numpy_dtypeframe_or_seriesdimsdtr)  xs         r'   !test_concat_no_unnecessary_upcastr@  ,  s    (--D	B 	!Bd;<"&&4@A!Bd;<C
 	sA88>>Rr)   c           	      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/   r8  )r9  r0   r   )r:  r   r   r   r   r=   rJ   )r<  any_signed_int_numpy_dtyper>  r=  r)  r?  s         r'   test_concat_will_upcastrC  :  s    	#B!!D!Bd;<"&&67!Bd;<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 )Nr1   r/   g      ?r   )r   rS   rb   r&   s       r'   0test_concat_empty_and_non_empty_frame_regressionrE  F  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   r   r3   )r   r   r
   astyper   SparseDtyper   r   r   rN   r_   )r   rb   r&   s      r'   test_concat_sparserJ  O  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   r3   )r   rI  r   r   r   arraysr   floatrH  r   rN   r   )rJ   r   r   rb   r&   s        r'   test_concat_dense_sparserO  Y  sz    NN2::t,Eryy$$aY/u=As% A<y9@@GHQF#F68,r)   rY   )r   r5   r5   )r5   r   r5   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/   r4   rY   )r/   r,   rR  r   )r   r0   rS  r  )r-   r   r   r  r   r   r   r   r[   )r
   r   r   r   from_tuplesrN   r_   )rY   rR   r$   r%   r&   expected_valuesexpected_columnsrb   s           r'   test_duplicate_keysrX  c  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  rQ  r/   rT  )r/   r,   r/   r,   )r   r0   r   r0   )r-   r   r-   r   r   r   r   r[   )r
   r   r   rU  rN   r_   )rY   rR   r&   rV  rW  rb   s         r'   test_duplicate_keys_same_framerZ  r  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 r:   )r   r   type)r[  r&   s     r'   test_concat_preserves_subclassr^    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,   r0   r   r/   r   r-   )r
   r   r   r   r   rN   r_   r   rS   r&   rb   s       r'   (test_concat_frame_axis0_extension_dtypesra    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   rQ  r   )df_adf_br&   rb   s       r'   +test_concat_preserves_extension_int64_dtypere    s_    cB4[0DcA3Zw/DT4Lt4FDzq	:'JH&(+r)   zdtype1,dtype2,expected_dtype))boolrf  rf  )booleanrf  rg  )rf  rg  rg  )rg  rg  rg  c                     t        ddg|       }t        ddg|      }t        ||gd      }t        g d|      }t        j                  ||       y )NTFr   r   )TFFT)r   r   rN   r   )dtype1dtype2expected_dtypeser1ser2r&   rb   s          r'   test_concat_bool_typesrn    sQ     4-v.D5$-v.DT4Lt4F0GH68,r)   )rY   	integrityredr-   TF)rp  bluerp  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-   )rY   verify_integrityr   r   r   r
  r2   )r   r   r|   zipr   rU  rN   r   )rY   ro  series_listr&   tuplesrb   s         r'   test_concat_repeated_keysrx    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))rJ   ro   r   g!u?rL  rM   zMaybe Time (UTC))r   r   r\   r3   r   r   r   r   r   r2   )r   DatetimeIndexr
   r   r   r   r   rM   r   rN   r_   )dtir   idxr   r&   ra   rb   s          r'    test_concat_null_object_with_dtir~    s    


	$%-BC C&?#6E
h-?
@CbffX6cBDT5M	2FtSVnF3I4.7&&"&&!&&&!	

 H &(+r)   c                  $   t        j                  ddg      } t        ddgg|       }t        dgt        d            }t	        ||g      }t        ddgt
        j                  t
        j                  gg|       }t        j                  ||       y )Nr   )r   r/   r/   r   r[   r   r   )	r   rU  r
   r   r   r   r   rN   r_   )mir   rS   r&   rb   s        r'   ,test_concat_multiindex_with_empty_rangeindexr    s{    			8 4	5B
aVHb
)C
1#z!}
5CS#JF1a&266266"23R@H&(+r)   r   r/   r   rG  col1r   c                     | j                         }ddi|_        | j                         }ddi|_        t        ||g      }t        |j                        dk(  sJ y )Nr/   r   r   )copyattrsr   r   r   r   rS   rR   s       r'   test_concat_drop_attrsr    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/   )r  r  r   r  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                 B   t        ddgddgd|      }t        ddg|       }d}|d	k(  s
|d
k(  r| d
k7  rd}t        ||g      }|}|dk(  r(| d
k(  r|j                  d
      }n|j                  d      }|r|j                  t              }t	        j
                  ||       y )Nr/   r   r1   ry   r   r1   ry   )r\   rJ   Fr  r   Tr   rM   )r
   r   rH  rM   rN   r_   r  r  rR   emptyneeds_updater&   rb   s          r'   %test_concat_ignore_empty_object_floatr    s     
Aq61a&1	BBuenK@EL##I+":UBK FH7)#yy+Hyy*H??6*&(+r)   c                    t        ddgddgd|      }t        t        j                  gt        j                  gd|       }|dk(  r
| dk(  rd}nd}d}| |k7  r| d	}n|d
k(  rd	}t        ||gd	      }t        t        j                  ddgt        j                  ddgd|      }|r2|j	                  t
              }t        j                  |j                  d<   t        j                  ||       y )Nr/   r   r  r   r   rM   r   FTr  r   r   )	r
   r   r   r   rH  rM   rq   rN   r_   r  s          r'   &test_concat_ignore_all_na_object_floatr  8  s     
Aq61a&1	BBrvvhx8LE7("H HLh;#:	%	%UBKd3F"&&!QAGxXH??6*66a&(+r)   c                     t        dgt        j                  d      gd      } t        ddgi      }|j                  | j                        }t        | |gd      }t        ddgt        j                  t        j                  d      t        j                  gt        	      dt        	      }|d   j                  d
      |d<   t        j                  ||       y )Nr/   z
2012-01-01rQ  r   r   r[   Tr   r   r   )r
   r   r   reindexr\   r   r   r   r   rM   rH  rN   r_   )r   rS   alignedr&   rb   s        r'   %test_concat_ignore_empty_from_reindexr  U  s    
1#R\\,%?$@A
BC
S1#J
Ckk#++k.GS'N6FQ2<<5rvv>fM	
 H SM((1HSM&(+r)   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)Nr0   r,   rz  zThe length of the keysr   r/   rZ   r   c              3       K   | ]  }|  y wr:   r  r?   r?  s     r'   rB   z5test_concat_mismatched_keys_length.<locals>.<genexpr>u        a r  c              3       K   | ]  }|  y wr:   r  r?   ys     r'   rB   z5test_concat_mismatched_keys_length.<locals>.<genexpr>u       '8a'8r  c              3       K   | ]  }|  y wr:   r  r  s     r'   rB   z5test_concat_mismatched_keys_length.<locals>.<genexpr>w  r  r  c              3       K   | ]  }|  y wr:   r  r  s     r'   rB   z5test_concat_mismatched_keys_length.<locals>.<genexpr>w  r  r  )r   rG   r   r   r   r   )sernsersrY   r   s        r'   "test_concat_mismatched_keys_lengthr  i  s   
q
C"1X&C!G&D&D
#C	z	- (t$Q'(	z	- (t$Q'(	z	- B 4 '84'8qAB	z	- 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   rN   r_   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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   r8   r   r/   r-  r   r2   r   r`  s       r'   test_concat_ea_upcastr    sP    
SE
*C
QCw
'CS#JF#q!Q0H&(+r)   c                      t        dd ig      } t        dt        j                  d      ig      }t        | |gd      }t        dd t        j                  d      git              }t        j                  ||       y )Nr   z1990-12-20 00:00:00+00:00Tr   r   )r
   r   r   r   rM   rN   r_   r`  s       r'   (test_concat_none_with_timezone_timestampr    ss    
c4[M
"C
c2<<(CDEF
GCS#JT2F	tR\\"=>?@H &(+r)   c                      t        dg      } t        ddg      }t        | |g      }t        g dg d      }t        j                  ||d       y )	Nr   r/   r   r   )r   r   r/   r2   T)check_column_type)r   r
   r   rN   r_   )r  rR   r&   rb   s       r'   <test_concat_with_series_and_frame_returns_rangeindex_columnsr    sG    
!+C	Aq6	BS"IF)4H&(dCr)   c                      t        dgg      } t        dgg      }d}ddg}d|d}t        j                  t        |      5  t	        | |g||	       d d d        y # 1 sw Y   y xY w)
Nr   *   Tr   rS   zCannot set ignore_index=z) and specify keys. Either should be used.r   )rY   r   )r
   r   r   r   r   )r   rS   r   rY   r   s        r'   +test_concat_with_moot_ignore_index_and_keysr    sr    
aSE
C
bTF
CL5>D%&O
PC	z	- ASz<@A A As   AA%z$inputs, ignore_index, axis, expectedrQ  r,   r0   r   )r   r/   NN)r   r-   NN)NNr,   r0   rt  r   r2   rp   )r   r   r   r/   c                 L    t        | ||      }t        j                  ||       y )N)r   r4   )r   rN   r_   )inputsr   r4   rb   r&   s        r'   test_concat_of_series_and_framer    s#    b FDAF&(+r)   )Bcollectionsr   r   collections.abcr   r   decimalr   rP   numpyr   r   pandas.errorsr   r	   pandasr   r
   r   r   r   r   r   r   r   pandas._testing_testingrN   pandas.core.arraysr   pandas.tests.extension.decimalr   r   r@  rC  rE  rJ  rO  r5  r6  rX  rZ  filterwarningsSubclassedDataFramer   SubclassedSeriesr^  ra  re  rn  rx  r~  r  rN  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 	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,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)   