o
    &zh                     @   s  d dl mZmZ d dlmZ d dlmZ d dlmZ d dlZ	d dl
Z
d dlmZ d dlmZ d dlm  mZ d dlZd dlmZmZmZmZmZmZmZ d dlmZ d d	lm Z  d d
l!m"Z" G dd dZ#dd Z$e
j%&deegdd Z'dd Z(dd Z)dd Z*e
j%&dg dg dgdd Z+dd Z,e
j%-de
j%&d e.d!e	/d d"iej0e	/d d"d!d#gd$d% Z1d&d' Z2d(d) Z3e
j%&d*g d+d,d- Z4e
j%&d.d/gd0 d1fd/gd0 d2fg d3d2fg d3d1fgd4d5 Z5d6d7 Z6d8d9 Z7e
j%&d:ed;d<gd=ed>d;d<gid=ee8d?ee8d?gd@dA Z9e
j%&d:ed;d<gd=ed>d;d<gid=ee8d?ee8d?gdBdC Z:ej;e
j%&dDg dEe
j%&dFg dGdHdI Z<ej;e
j%&dDg dEe
j%&dFg dGdJdK Z=ej;dLdM Z>dNdO Z?dPdQ Z@dRdS ZAdTdU ZBdS )V    )abcdeque)Iterator)datetime)DecimalN)using_string_dtype)InvalidIndexError)	DataFrameIndex
MultiIndexPeriodIndexSeriesconcat
date_range)SparseArray)
to_decimalc                   @   s   e Zd Zdd Zejje dddd Zdd Z	d	d
 Z
ejdddgdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Z d7S )8TestConcatenatec                 C   s   t dddd}t dddd}ttjdd|}ttjdd|}| }| }t||g}t|j	t
s<J |j	d	 |j	d	 ksHJ d S )
Nz
12/31/1990z
12/31/1999zYE-DEC)freqz
12/31/2000z
12/31/2009   
   r   )r   r   nprandomdefault_rngstandard_normal	to_periodr   
isinstanceindexr   )selfd1d2s1s2result r#   b/var/www/html/kangema/venv/lib/python3.10/site-packages/pandas/tests/reshape/concat/test_concat.pytest_append_concat!   s   z"TestConcatenate.test_append_concatzTODO(infer_string))reasonc                    s@  t tjdd}t tjdjdddddd}t dd	itdd
}t|||gddd}|sK|j	j
D ] t fdd|||fD rIJ q7n|j	j
D ]	  jd usXJ qOt|||gddd}|j	j
D ]H  jjdkr| j|j	j
d ju s{J qg jjdv r j|j	j
d ju sJ qg jtkr|r |j	j
d u sJ n jd usJ  jd usJ qgt tjdd}t||||gddd}|j	j
D ]S  jjdkr|s|rt fdd|j	j
|j	j
 D sJ qʈ jd u sJ qʈ jjdv r j|j	j
d ju sJ qʈ jtkrt fdd|j	j
D sJ qd S )Nr         r   r   r(   )size      foor   T)axiscopyc                 3   s*    | ]}|j jD ]	}t |V  qqd S N)_mgrarraysr   shares_memory).0xyarrr#   r$   	<genexpr>=   s    
z3TestConcatenate.test_concat_copy.<locals>.<genexpr>Ff)iu)r(   r+   c                 3       | ]	}t  |V  qd S r1   r   r4   r5   otherr8   r#   r$   r:   ]   s
    

c                 3   r>   r1   r?   r@   r8   r#   r$   r:   h   s    )r	   r   r   r   r   integersreshaperanger   r2   r3   anybasedtypekindobject)r   using_array_managerusing_copy_on_writedfdf2df3r"   df4r#   r8   r$   test_concat_copy2   sN   $
 z TestConcatenate.test_concat_copyc                 C   st  t tjdd}t tjdd}t||gddgd}tg dg dg}t tj|j	|j	f |d	}t
|| t||gddgd}tg d
g dg}t tj|j	|j	f |d	}t
|| t tjdd}t tjdd}t||gddgdd}t tj|j	|j	f |d}t
|| t||gddgdd}t tj|j	|j	f |d}t
|| d S )Nr   )r)   r(   )r(   r(   r   r+   keys)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'   rR   r/   columns)r	   r   r   r   r   r   r   from_arraysr_valuestmassert_frame_equalc_)r   rL   rM   r"   	exp_indexexpected
exp_index2r#   r#   r$   test_concat_with_group_keysj   s(   z+TestConcatenate.test_concat_with_group_keysc                 C   s   t tjdd}|jd d ddgf |jd d dgf |jd d dgf g}g d}t|dg d|gdgd	}t|j	j
d t|dd
 t|j	j
d tg d |j	jdd gks`J d S )Nr   r   r(   r   r+   r)   )threetwoonezero)rc   rb   ra   	group_key)r/   rR   levelsnamesname)r   r+   r   r)   )r	   r   r   r   r   ilocr   rY   assert_index_equalrU   rf   r
   rg   )r   rL   pieceslevelr"   r#   r#   r$    test_concat_keys_specific_levels   s   <z0TestConcatenate.test_concat_keys_specific_levelsmappingdictc                    s  |dkrt n|}|ttjddttjddttjddttjddd t  }t }t fdd|D |d}t	
|| t dd	}t fd
d|D |dd}t	
|| g d}t |d}t fdd|D |d}t	
|| d S )Nrp   r   r'   )r-   barbazquxc                       g | ]} | qS r#   r#   r5   kframesr#   r$   
<listcomp>       z7TestConcatenate.test_concat_mapping.<locals>.<listcomp>rQ   r+   r/   c                    rt   r#   r#   ru   rw   r#   r$   ry      rz   rS   )rr   r-   rq   c                    rt   r#   r#   ru   rw   r#   r$   ry      rz   )rp   r	   r   r   r   r   listrR   r   rY   rZ   )r   ro   non_dict_mapping_subclassconstructorsorted_keysr"   r]   rR   r#   rw   r$   test_concat_mapping   s&   	z#TestConcatenate.test_concat_mappingc                 C   s,  t tjdd}t tjdd}ddgddgg}dd	g}t||||gg d
||d}t||||g}t|dgg g dg dg dg|d g d}||_t	|| t||||gg d
|d}|jj
dksmJ t||||gg d
dd	gd}|jj
dksJ t|jjd tddgdd d S )Nr   r+   r)   r+   r(   r-   rr   rc   rb   firstsecond))r-   rc   )r-   rb   )rr   rc   )rr   rb   )rR   rf   rg   r   )r   r   r+   r+   )r   r+   r   r+   r   r   r   r   )rf   codesrg   rR   rf   )NNNrR   rg   )r   r   Nrh   )r	   r   r   r   r   r   r   r   rY   rZ   rg   rk   rf   r
   )r   rL   rM   rf   rg   r"   r]   r\   r#   r#   r$   test_concat_keys_and_levels   sB   



z+TestConcatenate.test_concat_keys_and_levelsc                 C   s   t tjdddgd}t tjdddgd}d}tjt|d t||gd	d
gg dgd W d    n1 s>w   Y  d}tjt|d t||gd	d
gg dgd W d    d S 1 sfw   Y  d S )Nr   r   ar.   r   bz Values not found in passed levelmatchrc   rb   )r-   rq   rr   r   zKey one not in level)	r	   r   r   r   r   pytestraises
ValueErrorr   )r   rL   rM   msgr#   r#   r$   "test_concat_keys_levels_no_overlap   s   "z2TestConcatenate.test_concat_keys_levels_no_overlapc                 C   sD  g d}t tjg dddtjg dddtjg dddtjg dddd|d}t tjg dddtjg dddtjg dddtjg dddd|d}t||gdd}t tj|j|jgd	d
|d}t|| t tj	d
ddgd}t tj	d
ddgd}t||gddgddgd}|jjdksJ d S )N)ABCDr+   r   r)   r(   f8rG   i8rT   Tignore_indexr   r{   r   r   r   r.   r   r   rc   rb   r   r   r   )r   r   )r	   r   arrayr   concatenaterX   rY   rZ   r   r   r   r   rg   )r   rU   df1rM   appendedr]   rL   r"   r#   r#   r$    test_crossed_dtypes_weird_corner   s4   

z0TestConcatenate.test_crossed_dtypes_weird_cornerc                 C   s@   t dddtdd}t dddtdd}t||g|d d S )Nr-   rq   )r   r   r+   r   r.   )r   r   sort)r	   rD   r   )r   r   r   rM   r#   r#   r$   test_with_mixed_tuples
  s   z&TestConcatenate.test_with_mixed_tuplesc                 C   s  t dddd}tjddd}t||d}t||d}t|dd	|d}tt|d
dd
|ddgd}t||gd	d}t	|| tt|d
dd
|dd	gd}t||gd	d}t	|| tt|ddd|g dd}t|||gd	d}t	|| tt|ddd|g dd}t|||||gd	d}t	|| d|_
tt|ddd|g dd}t|||gd	d}t	|| d|_
tt|ddd|g dd}t|||gd	d}t	|| tt|ddd|g dd}t|||gd	dd}t	|| d S )N01-Jan-2013r   hperiodsr   int64r   r.   r+   r   r   r   rU   r{   r)   r   r+   r   r,   )r   r   r+   r   r)   r-   )r-   r   r   rq   r-   r   rq   T)r/   r   )r   r   aranger   r	   rC   repeatr   rY   rZ   ri   r   r   r9   r    r!   rL   r]   r"   r#   r#   r$   test_concat_mixed_objs_columns  sT   z.TestConcatenate.test_concat_mixed_objs_columnsc                 C   s   t dddd}tjddd}t||d}t||d}t|dd	|d}tt|d
dd	| d
 dgd}t|||g}t	
|| d S )Nr   r   r   r   r   r   r.   r   r+   r)   r   r   )r   r   r   r   r	   rC   tiletolistr   rY   rZ   r   r#   r#   r$   test_concat_mixed_objs_indexK  s    z,TestConcatenate.test_concat_mixed_objs_indexc                 C   s   t dddd}tjddd}t||dd}t||d	d}t|d
d|d}ttttddkdtj	|j
| d g dd}t|||g}t|| tt|dd
ddgd}t|||gdd}t|| d S )Nr   r   r   r   r   r   r-   )r   ri   rq   r   r+   r.   r)   r   r   r   rT   Tr   )r   r   r   r   r	   rC   kronwhereidentitynanTr   r   rY   rZ   r   r   r#   r#   r$   "test_concat_mixed_objs_index_names[  s   "
z2TestConcatenate.test_concat_mixed_objs_index_namesc                 C   s   t dtddtjgi}t|jdg |jdg g}t|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	 t d	d
gd gd  i}t|jdg |jdg g}t|j	|j	 d S )Ndate20130101UTCr   r+   i  i  r   textz
some words	   )r	   pd	Timestamptz_localizeNaTr   rj   rY   assert_series_equaldtypesr   )r   rL   r"   r#   r#   r$   test_dtype_coercionr  s    z#TestConcatenate.test_dtype_coercionc                 C   sR   t tjdd}t|gdgd}t||gddgd}t||d d  d S )Nr   r`   r-   rQ   rq   r   )r	   r   r   r   r   r   rY   rZ   )r   rL   r"   r]   r#   r#   r$   test_concat_single_with_key  s   z+TestConcatenate.test_concat_single_with_keyc                 C   s<   t jtdd tg  W d    d S 1 sw   Y  d S )NzNo objects to concatenater   )r   r   r   r   r   r#   r#   r$   test_concat_no_items_raises  s   
"z+TestConcatenate.test_concat_no_items_raisesc                 C   s   t tjdd}|d d d d |dd  g}t|}t|| tj	t
dd td d g W d    d S 1 s<w   Y  d S )Nr   r`   r,   zAll objects passed were Noner   )r	   r   r   r   r   r   rY   rZ   r   r   r   )r   rL   rl   r"   r#   r#   r$   test_concat_exclude_none  s   "z(TestConcatenate.test_concat_exclude_nonec                 C   s   t g dg dg dg}td ||d d |d d |d}t||d d |d d |d}t|| td ||d d |d d |gg dd}t||d d |d d |gg dd}t|| d S )N)r         r   r+   )r   r   cde)r   r   r   r   rQ   r	   r   rY   rZ   )r   df0r"   r]   r#   r#   r$   test_concat_keys_with_none  s   $""(z*TestConcatenate.test_concat_keys_with_nonec                 C   sn   t tjdtjdtdddd}| d d d }t||gddd	}t||gddd	}t|t|ks5J d S )
Nr   r   z
2020-01-01)r   r.   r   outerr+   )joinr/   )r   r   r   float64r   r0   r   len)r   ts1ts2leftrightr#   r#   r$   test_concat_bug_1719  s   z$TestConcatenate.test_concat_bug_1719c                 C   s`   t td}t td}d |_|_t||gdd}t||d}ddg|_t	|| d S )Nr,   z	same namer+   r{   r   r+   )
r   r   zerosonesri   r   r	   rU   rY   rZ   )r   ts0r   r"   r]   r#   r#   r$   test_concat_bug_2972  s   
z$TestConcatenate.test_concat_bug_2972c                 C   s   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d}t|| d S )Nr   )   r   r   r   )rrrr   r   r   )firmNoprc	stringvar)r   r         r   )r   miscr   )r   r   r   r   r+   r   )r   r   r   r   r   r   )r   r   r   r   r)   r   )r   r   r   r   r(   r   )r   r   r   r   r   r   r+   r{   )r	   rU   r   rY   rZ   )r   r   rM   r]   r"   r#   r#   r$   test_concat_bug_3602  s&   
z$TestConcatenate.test_concat_bug_3602c                    s   t g d t g dt g d}tt fdd| tt gdd| ttdd  fD dd| ttt fdd| G  fdd	d	}tt| dd| G  fd
ddtj}tt| dd| d S )Nr+   r   r)   r(   r,   r   r+   r   r)   r(   r,   r   Tr   c                 s       | ]}|V  qd S r1   r#   )r5   rL   r#   r#   r$   r:         z8TestConcatenate.test_concat_iterables.<locals>.<genexpr>c                       s(   e Zd ZdefddZ fddZdS )z>TestConcatenate.test_concat_iterables.<locals>.CustomIterator1returnc                 S   s   dS )Nr   r#   r   r#   r#   r$   __len__  s   zFTestConcatenate.test_concat_iterables.<locals>.CustomIterator1.__len__c              
      s0   z d| W S  t y } zt|d }~ww )Nr   )KeyError
IndexError)r   r   errr   rM   r#   r$   __getitem__  s   zJTestConcatenate.test_concat_iterables.<locals>.CustomIterator1.__getitem__N)__name__
__module____qualname__intr   r   r#   r   r#   r$   CustomIterator1  s    r   c                       s    e Zd Zdef fddZdS )z>TestConcatenate.test_concat_iterables.<locals>.CustomIterator2r   c                 3   s     V  V  d S r1   r#   r   r   r#   r$   __iter__  s   
zGTestConcatenate.test_concat_iterables.<locals>.CustomIterator2.__iter__N)r   r   r   r   r   r#   r   r#   r$   CustomIterator2  s    r   )r	   rY   rZ   r   r   r   Iterable)r   r]   r   r   r#   r   r$   test_concat_iterables  s   
z%TestConcatenate.test_concat_iterablesc                 C   sV   t tdg ddg}|dd tdD 7 }t|ddj}tg d	}t|| d S )
Nr)   )r   r+   Nr   c                 S   s    g | ]}t td g ddqS )r)   )Nr+   r   r   )r	   rD   )r5   _r#   r#   r$   ry     s     z5TestConcatenate.test_concat_order.<locals>.<listcomp>d   Tr   )r+   r   N)r	   rD   r   rU   r
   rY   rk   )r   dfsr"   r]   r#   r#   r$   test_concat_order  s
   z!TestConcatenate.test_concat_orderc                 C   sb   t tjddgdd}t tddg}t||gdd}t ddtdtdgtd}t|| d S )Nr+   r   Int64r   Tr   )	r   r   r   r   r   r   rI   rY   r   )r   r   r   r"   r]   r#   r#   r$   .test_concat_different_extension_dtypes_upcasts  s
   z>TestConcatenate.test_concat_different_extension_dtypes_upcastsc                 C   sR   t ttdttdgddgd}t ttdttdd}t|| d S )Nr)   r(   FirstAnotherrQ   )r  r  )r   r   rD   rY   r   )r   r]   r"   r#   r#   r$   test_concat_ordered_dict  s
   z(TestConcatenate.test_concat_ordered_dictc                 C   s   t tjddg ddgd}t tjddg ddgd}d}tjt|d	 t||gd
d W d    d S 1 s?w   Y  d S )Nr   r,   )r   r+   r   r)   r)   r   r   )r   r+   r   r   r(   r   z8Reindexing only valid with uniquely valued Index objectsr   r+   r{   )	r	   r   r   r   r   r   r   r   r   )r   r   rM   r   r#   r#   r$   #test_concat_duplicate_indices_raise  s   "z3TestConcatenate.test_concat_duplicate_indices_raiseN)!r   r   r   r%   r   markxfailr   rP   r_   rn   parametrizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r	  r#   r#   r#   r$   r       s8    
7
)!	8	
 	r   c                 C   sn   |t dj}| }|tjdg||d|tjtjg||d|tjdg||dg}t|}|jj|ks5J d S )Nr   r+   rG   ndminr,   )rI   ndimr   r   r   r   rX   rG   )float_numpy_dtypeframe_or_seriesdimsdtr  r6   r#   r#   r$   !test_concat_no_unnecessary_upcast   s   r  pdtc                 C   sh   |}|  j }| tjdg||d| tjtjg|d| tjdg||dg}t|}|jjdks2J d S )Nr+   r  )r  r,   r   )r  r   r   r   r   rX   rG   )r  any_signed_int_numpy_dtyper  r  r  r6   r#   r#   r$   test_concat_will_upcast.  s   r  c                  C   sD   t ddgi} t dg i}t ddgi}t| |g}t|| d S )Nr-   r+   g      ?r   )r   rM   r]   r"   r#   r#   r$   0test_concat_empty_and_non_empty_frame_regression;  s
   r  c                  C   s\   t tg d} tddgddgddggdttjd}t| | gdd}t	
|| d S )Nr   r   r+   r   datar{   )r   r   r	   astyper   SparseDtyper   r   r   rY   rZ   )r   r]   r"   r#   r#   r$   test_concat_sparseD  s   r  c                  C   sn   t tjd } tt jdd g| d}tdgtd}tg dg dd| }t	||gdd}t
|| d S )Nr+   r   )r+   Nr+   )r   r+   r   r  r   r   r{   )r   r  r   r   r   r3   r   floatr  r   rY   r   )rG   r   r   r]   r"   r#   r#   r$   test_concat_dense_sparseN  s   r   rR   )r   r;   r;   )r;   r   r;   c                 C   s   t g dg dd}tg ddd}tg ddd}t|||gd	| d
}g dg dg dg}t| d df| d df| d	 df| d dfg}t ||d}t|| d S )Nr   r   r   r   )      r   r   rh   )r   r   r   r   r+   r/   rR   )r+   r(   r"  r   )r   r,   r#  r   )r)   r   r   r   r   r   r   r   rT   )r	   r   r   r   from_tuplesrY   rZ   )rR   rL   r    r!   r"   expected_valuesexpected_columnsr]   r#   r#   r$   test_duplicate_keysX  s   *r(  c                  C   s   ddg} t g dg dd}t||gd| d}g dg dg d	g}t| d
 df| d
 df| d df| d dfg}t ||d}t|| d S )Nr   r   r   r!  r+   r$  )r+   r(   r+   r(   )r   r,   r   r,   )r)   r   r)   r   r   r   r   rT   )r	   r   r   r%  rY   rZ   )rR   rL   r"   r&  r'  r]   r#   r#   r$   test_duplicate_keys_same_frameg  s   *r)  zMignore:Passing a BlockManager|Passing a SingleBlockManager:DeprecationWarningobjr   r   rh   c                 C   s"   t | | g}t|t| sJ d S r1   )r   r   type)r*  r"   r#   r#   r$   test_concat_preserves_subclasst  s   r,  c                  C   s   t dtjg dddi} t dtg di}t| |gdd}t dg didd}t|| t|| gdd}t dg d	idd}t|| d S )
Nr   r   r  r   r   Tr   r   )r(   r,   r   r+   r   r)   )r	   r   r   r   r   rY   rZ   r   rM   r"   r]   r#   r#   r$   (test_concat_frame_axis0_extension_dtypes  s   r.  c                  C   s^   t ddgidd} t ddgidd}t| |gdd}t dd gd dgd	dd}t|| d S )
Nr   r   r  r   r   r+   Tr   r!  r   )df_adf_br"   r]   r#   r#   r$   +test_concat_preserves_extension_int64_dtype  s
   r1  zdtype1,dtype2,expected_dtype))boolr2  r2  )booleanr2  r3  )r2  r3  r3  )r3  r3  r3  c                 C   sP   t ddg| d}t ddg|d}t||gdd}t g d|d}t|| d S )NTFr   r   )TFFT)r   r   rY   r   )dtype1dtype2expected_dtypeser1ser2r"   r]   r#   r#   r$   test_concat_bool_types  s
   r9  )rR   	integrityredr)   TF)r;  bluer;  c                 C   sh   t ddit ddit ddig}t|| |d}tt| g d}t g d	t|d
}t|| d S )Nr   r+   r   r   r   r)   )rR   verify_integrity)r   r   r   r   r.   )r   r   r|   zipr   r%  rY   r   )rR   r:  series_listr"   tuplesr]   r#   r#   r$   test_concat_repeated_keys  s
   "rA  c                  C   s   t jdgddd} tddgi| d}td gdd	d}td gtjgd
|d}t||gdd}td | d gtd}ttjd tjgtdtjtjgtjdgd|d}t	
|| d S )Nz2021-04-08 21:21:14+00:00zdatetime64[ns, UTC]z
Time (UTC))rG   ri   r   g!u?r  rI   zMaybe Time (UTC))r   r   rU   r{   r   r   r   r   r   r.   )r   DatetimeIndexr	   r
   r   r   r   rI   r   rY   rZ   )dtir   idxr   r"   r\   r]   r#   r#   r$    test_concat_null_object_with_dti  s    
rF  c                  C   sl   t ddg} tddgg| d}tdgtdd}t||g}tddgtjtjgg| d}t	|| d S )Nr   )r   r+   r+   r   rT   r   r   )
r   r%  r	   r   
RangeIndexr   r   r   rY   rZ   )mir   rM   r"   r]   r#   r#   r$   ,test_concat_multiindex_with_empty_rangeindex  s   rI  r  r+   r   r  col1r   c                 C   sF   |   }ddi|_|   }ddi|_t||g}t|jdks!J d S )Nr+   r   r   )r0   attrsr   r   r  r   rM   rL   r#   r#   r$   test_concat_drop_attrs     

rM  c                 C   sF   |   }ddi|_|   }ddi|_t||g}|jd dks!J d S )Nr+   )r0   rK  r   rL  r#   r#   r$   test_concat_retain_attrs  rN  rO  df_dtype)r   r   datetime64[ns]empty_dtype)Nr   rI   c                 C   s   t ddgddgd|d}t ddg| d}d}d }|d	ks%|d
kr'| d
kr't}tj||d t||g}W d    n1 s?w   Y  |}|dkrY| d
krT|d
}n|d}t|| d S )Nr+   r   r-   rq   r   r-   rq   )rU   rG   DThe behavior of DataFrame concatenation with empty or all-NA entriesrQ  r   r   r   rI   )r	   FutureWarningrY   assert_produces_warningr   r  rZ   rR  rP  rL   emptyr   warnr"   r]   r#   r#   r$   %test_concat_ignore_empty_object_float  s    
rZ  c                 C   s   t ddgddgd|d}t tjgtjgd| d}|dkr'| dkr%d}nd}d}d }| |kr6| d ur6t}n|d	kr<t}tj||d
 t||gdd}W d    n1 sVw   Y  t tjddgtjddgd|d}t|| d S )Nr+   r   rS  r   r   rI   r   rT  rQ  r   Tr   )r	   r   r   rU  rY   rV  r   rZ   rW  r#   r#   r$   &test_concat_ignore_all_na_object_float+  s"   "r[  c                  C   s   t dgtdgd} t ddgi}|j| jd}d}tjt|d t| |gd	d
}W d    n1 s6w   Y  t ddgtdtj	gd }} t
|| d S )Nr+   z
2012-01-01r!  r   r   rT   rT  r   Tr   )r	   r   r   reindexrU   rY   rV  rU  r   r   rZ   )r   rM   alignedr   r"   r]   r#   r#   r$   %test_concat_ignore_empty_from_reindexG  s   "r^  c                     sL  t td  fddtdD } g d}d}tjt|d t| |dd	 W d    n1 s0w   Y  tjt|d t| |d
d	 W d    n1 sNw   Y  tjt|d tdd | D dd |D dd	 W d    n1 svw   Y  tjt|d tdd | D dd |D d
d	 W d    d S 1 sw   Y  d S )Nr,   c                    s   g | ]} | qS r#   r#   )r5   nserr#   r$   ry   Y  rz   z6test_concat_mismatched_keys_length.<locals>.<listcomp>r(   rB  zGThe behavior of pd.concat with len\(keys\) != len\(objs\) is deprecatedr   r+   rS   r   c                 s   r   r1   r#   r5   r6   r#   r#   r$   r:   b  r   z5test_concat_mismatched_keys_length.<locals>.<genexpr>c                 s   r   r1   r#   r5   r7   r#   r#   r$   r:   b  r   c                 s   r   r1   r#   rb  r#   r#   r$   r:   d  r   c                 s   r   r1   r#   rc  r#   r#   r$   r:   d  r   )r   rD   rY   rV  rU  r   )sersrR   r   r#   r`  r$   "test_concat_mismatched_keys_lengthV  s    $$"re  c                  C   s   t ttdddttdddtg dd} | ddg} t ttdddttdddtg d	d}|ddg}t| |g}t ttd
ddttdddtg dd}|ddg}t|| d S )Nr   categoryr   eeer   )c1c2i2rh  ri  r   abcabceeeeeer   )r	   r   r|   	set_indexr   rY   rZ   r-  r#   r#   r$   $test_concat_multiindex_with_categoryg  s.   


rn  c                  C   sL   t dgdd} t dgdd}t| |g}t ddgddgd}t|| d S )Nr   stringr   r+   r  r   r.   r   r-  r#   r#   r$   test_concat_ea_upcast  s
   rp  c                  C   s   t dd ig} t dtdig}d}tjt|d t| |gdd}W d    n1 s-w   Y  t dd tdgi}t|| d S )Nr   z1990-12-20 00:00:00+00:00rT  r   Tr   )r	   r   r   rY   rV  rU  r   rZ   )r   rM   r   r"   r]   r#   r#   r$   (test_concat_none_with_timezone_timestamp  s   rq  )Ccollectionsr   r   collections.abcr   r   decimalr   numpyr   r   pandas._configr   pandas.errorsr   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   r	   r
   r   r   r   r   r   pandas._testing_testingrY   pandas.core.arraysr   pandas.tests.extension.decimalr   r   r  r
  r  r  r  r  r   r(  r)  filterwarningsSubclassedDataFramer   SubclassedSeriesr,  r.  r1  r9  rA  rF  rI  r  rM  rO  skip_array_manager_invalid_testrZ  r[  r^  re  rn  rp  rq  r#   r#   r#   r$   <module>   s    $	    
	


	
		


		




	