a
    Pf~                     @   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  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j.e	-d d!d d"gd#d$ Z/d%d& Z0d'd( Z1e
j#$d)g d*d+d, Z2e
j#$d-d.gd/ d0fd.gd/ d1fg d2d1fg d2d0fgd3d4 Z3d5d6 Z4d7d8 Z5e
j#$d9ed:d;gd<ed=d:d;gid<ee6d>ee6d>gd?d@ Z7e
j#$d9ed:d;gd<ed=d:d;gid<ee6d>ee6d>gdAdB Z8ej9e
j#$dCg dDe
j#$dEg dFdGdH Z:ej9e
j#$dCg dDe
j#$dEg dFdIdJ Z;ej9dKdL Z<dMdN Z=dOdP Z>dQdR Z?dSdT Z@dS )U    )abcdeque)Iterator)datetime)DecimalN)InvalidIndexError)	DataFrameIndex
MultiIndexPeriodIndexSeriesconcat
date_range)SparseArray)
to_decimalc                   @   s   e Zd Zdd Z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-d. Zd/d0 Zd1d2 Zd3d4 Zd5S )6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
sxJ |j	d	 |j	d	 ksJ 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_normalZ	to_periodr   
isinstanceindexr   )selfZd1Zd2s1s2result r   `/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/reshape/concat/test_concat.pytest_append_concat   s    z"TestConcatenate.test_append_concatc                    sF  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}|s|j	j
D ]$ t fdd|||fD rnJ qnn|j	j
D ]  jd usJ qt|||gddd}|j	j
D ]  jjdkr j|j	j
d ju sJ qΈ jjdv r" j|j	j
d ju sXJ qΈ jtkr|rJ |j	j
d u sXJ qΈ jd usJ qt tjdd}t||||gddd}|j	j
D ]  jjdkr|s|rt fdd|j	j
|j	j
 D sJ n jd u s>J nV jjdv r j|j	j
d ju s>J n, jtkrt fdd|j	j
D sJ 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>9   s   z3TestConcatenate.test_concat_copy.<locals>.<genexpr>Ff)iu)r#   r&   c                 3   s   | ]}t  |V  qd S r,   r   r/   r0   otherr3   r   r    r5   X   s   c                 3   s   | ]}t  |V  qd S r,   r9   r:   r3   r   r    r5   c       )r   r   r   r   r   Zintegersreshaperanger   r-   r.   anybasedtypekindobject)r   Zusing_array_managerZusing_copy_on_writedfdf2Zdf3r   Zdf4r   r3   r    test_concat_copy/   sD    $
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"   rH   r*   columns)r   r   r   r   r   r   r
   Zfrom_arraysZr_valuestmassert_frame_equalZc_)r   rD   rE   r   	exp_indexexpectedZ
exp_index2r   r   r    test_concat_with_group_keyse   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sJ d S )Nr   r   r#   r   r&   r$   )threetwoonezero)rU   rT   rS   Z	group_key)r*   rH   levelsnamesname)r   r&   r   r$   )r   r   r   r   r   ilocr   rM   assert_index_equalrK   rW   r	   rX   )r   rD   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 )Nra   r   r"   )r(   barbazZquxc                    s   g | ]} | qS r   r   r0   kframesr   r    
<listcomp>   r<   z7TestConcatenate.test_concat_mapping.<locals>.<listcomp>rG   r&   r*   c                    s   g | ]} | qS r   r   rd   rf   r   r    rh      r<   rI   )rc   r(   rb   c                    s   g | ]} | qS r   r   rd   rf   r   r    rh      r<   )ra   r   r   r   r   r   listrH   r   rM   rN   )r   r`   Znon_dict_mapping_subclassconstructorZsorted_keysr   rP   rH   r   rf   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sJ t||||gg d
dd	gd}|jj
dks
J t|jjd tddgdd d S )Nr   r&   r$   r&   r#   r(   rc   rU   rT   firstsecond))r(   rU   )r(   rT   )rc   rU   )rc   rT   )rH   rW   rX   r   )r   r   r&   r&   )r   r&   r   r&   r   r   r   r   )rW   codesrX   rH   rW   )NNNrH   rX   )ro   rp   NrY   )r   r   r   r   r   r   r
   r   rM   rN   rX   r\   rW   r	   )r   rD   rE   rW   rX   r   rP   rO   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|0    Y  d}tjt|d, t||gd	d
gg dgd W d    n1 s0    Y  d S )Nr   rm   ar)   rn   bz Values not found in passed levelmatchrU   rT   )r(   rb   rc   rs   zKey one not in level)	r   r   r   r   r   pytestraises
ValueErrorr   )r   rD   rE   msgr   r   r    "test_concat_keys_levels_no_overlap   s    :z2TestConcatenate.test_concat_keys_levels_no_overlapc                 C   sF  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sBJ d S )N)ABCDr&   r   r$   r#   Zf8rA   i8rJ   Tignore_indexr   ri   r   rm   rv   r)   rn   rw   rU   rT   ro   rp   rt   )ro   rp   )r   r   arrayr   ZconcatenaterL   rM   rN   r   r   r   r   rX   )r   rK   df1rE   ZappendedrP   rD   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(   rb   )r   r   r&   r   r)   )r   r   sort)r   r>   r   )r   r   r   rE   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   rK   ri   r$   r   r&   r   r'   )r   r   r&   r   r$   r(   )r(   r   r   rb   r(   r   rb   T)r*   r   )r   r   aranger   r   r=   repeatr   rM   rN   rZ   r   r   r4   r   r   rD   rP   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   r=   tiletolistr   rM   rN   r   r   r   r    test_concat_mixed_objs_indexF  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   rZ   rb   r   r&   r)   r$   r   r   r   rJ   Tr   )r   r   r   r   r   r=   ZkronwhereidentitynanTr   r   rM   rN   r   r   r   r   r    "test_concat_mixed_objs_index_namesV  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dateZ20130101UTCr   r&   i  i  r   textz
some words	   )r   pd	TimestampZtz_localizeNaTr   r[   rM   assert_series_equalZdtypesr   )r   rD   r   r   r   r    test_dtype_coercionm  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   rR   r(   rG   rb   r   )r   r   r   r   r   r   rM   rN   )r   rD   r   rP   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    n1 s,0    Y  d S )NzNo objects to concatenaterx   )rz   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    n1 sv0    Y  d S )Nr   rR   r'   zAll objects passed were Nonerx   )r   r   r   r   r   r   rM   rN   rz   r{   r|   )r   rD   r]   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&   )rv   rw   cde)rw   r   r   r   rG   r   r   rM   rN   )r   Zdf0r   rP   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sjJ d S )
Nr   r   z
2020-01-01)r   r)   r   outerr&   )joinr*   )r   r   r   float64r   r+   r   len)r   ts1Z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&   ri   r   r&   )
r   r   ZzerosZonesrZ   r   r   rK   rM   rN   )r   Zts0r   r   rP   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 )Nrq   )   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&   ri   )r   rK   r   rM   rN   )r   r   rE   rP   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   s   | ]
}|V  qd S r,   r   )r0   rD   r   r   r    r5     r<   z8TestConcatenate.test_concat_iterables.<locals>.<genexpr>c                       s(   e Zd Zed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              
      s@   z d| W S  t y: } zt|W Y d }~n
d }~0 0 d S )Nr   )KeyError
IndexError)r   r   errr   rE   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ed fddZdS )z>TestConcatenate.test_concat_iterables.<locals>.CustomIterator2r   c                 3   s    V  V  d S r,   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   rM   rN   r   r   r   Iterable)r   rP   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$   )rv   r&   Nr   c                 S   s    g | ]}t td g ddqS )r$   )Nr&   rv   r   )r   r>   )r0   _r   r   r    rh     r<   z5TestConcatenate.test_concat_order.<locals>.<listcomp>d   Tr   )r&   rv   N)r   r>   r   rK   r	   rM   r\   )r   dfsr   rP   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   rC   rM   r   )r   rv   rw   r   rP   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AnotherrG   )r   r   )r   r   r>   rM   r   )r   rP   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    n1 s|0    Y  d S )Nr   r'   )r   r&   r   r$   r$   rv   r   )r   r&   r   r   r#   rw   z8Reindexing only valid with uniquely valued Index objectsrx   r&   ri   )	r   r   r   r   r   rz   r{   r   r   )r   r   rE   r}   r   r   r    #test_concat_duplicate_indices_raise	  s    z3TestConcatenate.test_concat_duplicate_indices_raiseN)r   r   r   r!   rF   rQ   r_   rz   markparametrizerl   ru   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r      s4   6
)!	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sjJ d S )Nr   r&   rA   ndminr'   )rC   ndimr   r   r   r   rL   rA   )Zfloat_numpy_dtypeZframe_or_seriesdimsdtr   r1   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sdJ d S )Nr&   r   )r   r'   r   )r   r   r   r   r   rL   rA   )r   Zany_signed_int_numpy_dtyper   r   r   r1   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   rE   rP   r   r   r   r    0test_concat_empty_and_non_empty_frame_regression6  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   datari   )r   r   r   astyper   SparseDtyper   r   r   rM   rN   )rv   rP   r   r   r   r    test_concat_sparse?  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   ri   )r   r   r   r   r   r.   r   floatr   r   rM   r   )rA   rv   rw   rP   r   r   r   r    test_concat_dense_sparseI  s    r   rH   )r   r6   r6   )r6   r   r6   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   rv   rw   )      r   r   rY   )r   r   r   r   r&   r*   rH   )r&   r#   r   r   )r   r'   r   r   )r$   r   r   r   r   rv   rw   r   rJ   )r   r   r   r
   from_tuplesrM   rN   )rH   rD   r   r   r   expected_valuesexpected_columnsrP   r   r   r    test_duplicate_keysS  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   rv   rw   rJ   )r   r   r
   r   rM   rN   )rH   rD   r   r  r  rP   r   r   r    test_duplicate_keys_same_frameb  s    *r  zMignore:Passing a BlockManager|Passing a SingleBlockManager:DeprecationWarningobjr   r   rY   c                 C   s"   t | | g}t|t| sJ d S r,   )r   r   type)r  r   r   r   r    test_concat_preserves_subclasso  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 )
Nrv   r   r   r   r   Tr   r   )r#   r'   r   r&   r   r$   )r   r   r   r   r   rM   rN   r   rE   r   rP   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 )
Nrv   r   r   r   rw   r&   Tr   r   r   )Zdf_aZdf_br   rP   r   r   r    +test_concat_preserves_extension_int64_dtype  s
    r
  zdtype1,dtype2,expected_dtype))boolr  r  )booleanr  r  )r  r  r  )r  r  r  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   rM   r   )Zdtype1Zdtype2Zexpected_dtypeZser1Zser2r   rP   r   r   r    test_concat_bool_types  s
    r  )rH   	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 )Nrv   r&   rw   r   r   r$   )rH   Zverify_integrity)rv   rw   r   r   r)   )r   r   rj   zipr
   r   rM   r   )rH   r  Zseries_listr   ZtuplesrP   r   r   r    test_concat_repeated_keys  s
    "r  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))rA   rZ   r   g!u?r   rC   zMaybe Time (UTC))r   r   rK   ri   r   r   r   r   r   r)   )r   ZDatetimeIndexr   r	   r   r   r   rC   r   rM   rN   )Zdtir   idxr   r   rO   rP   r   r   r     test_concat_null_object_with_dti  s     
r  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   rJ   r   r   )
r
   r   r   r   Z
RangeIndexr   r   r   rM   rN   )mir   rE   r   rP   r   r   r    ,test_concat_multiindex_with_empty_rangeindex  s    r  r   r&   r   r   Zcol1r   c                 C   sF   |   }ddi|_|   }ddi|_t||g}t|jdksBJ d S )Nr&   r   r   )r+   attrsr   r   r   r   rE   rD   r   r   r    test_concat_drop_attrs  s    

r  c                 C   sF   |   }ddi|_|   }ddi|_t||g}|jd dksBJ d S )Nr&   )r+   r  r   r  r   r   r    test_concat_retain_attrs  s    

r  df_dtype)r   r   datetime64[ns]empty_dtype)Nr   rC   c                 C   s   t ddgddgd|d}t ddg| d}d}d }|d	ksJ|d
krN| d
krNt}tj||d t||g}W d    n1 s~0    Y  |}|dkr| d
kr|d
}n
|d}t|| d S )Nr&   r   r(   rb   r   r(   rb   )rK   rA   DThe behavior of DataFrame concatenation with empty or all-NA entriesr  r   rx   r   rC   )r   FutureWarningrM   assert_produces_warningr   r   rN   r  r  rD   emptyr}   warnr   rP   r   r   r    %test_concat_ignore_empty_object_float  s$    *
r&  c                 C   s   t ddgddgd|d}t tjgtjgd| d}|dkrN| dkrJd}nd}d}d }| |krl| d urlt}n|d	krxt}tj||d
  t||gdd}W d    n1 s0    Y  t tjddgtjddgd|d}t|| d S )Nr&   r   r  r   r   rC   r   r   r  rx   Tr   )r   r   r   r!  rM   r"  r   rN   r#  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 sl0    Y  t ddgtdtj	gd }} t
|| d S )Nr&   z
2012-01-01r   rv   r   rJ   r   rx   Tr   )r   r   r   ZreindexrK   rM   r"  r!  r   r   rN   )r   rE   Zalignedr}   r   rP   r   r   r    %test_concat_ignore_empty_from_reindexB  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 s`0    Y  tjt|d t| |d
d	 W d    n1 s0    Y  tjt|d2 tdd | D dd |D dd	 W d    n1 s0    Y  tjt|d2 tdd | D dd |D d
d	 W d    n1 s>0    Y  d S )Nr'   c                    s   g | ]} | qS r   r   )r0   nZserr   r    rh   T  r<   z6test_concat_mismatched_keys_length.<locals>.<listcomp>r#   r  zGThe behavior of pd.concat with len\(keys\) != len\(objs\) is deprecatedrx   r&   rI   r   c                 s   s   | ]
}|V  qd S r,   r   r0   r1   r   r   r    r5   ]  r<   z5test_concat_mismatched_keys_length.<locals>.<genexpr>c                 s   s   | ]
}|V  qd S r,   r   r0   r2   r   r   r    r5   ]  r<   c                 s   s   | ]
}|V  qd S r,   r   r+  r   r   r    r5   _  r<   c                 s   s   | ]
}|V  qd S r,   r   r,  r   r   r    r5   _  r<   )r   r>   rM   r"  r!  r   )ZsersrH   r}   r   r*  r    "test_concat_mismatched_keys_lengthQ  s    ,,@r-  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   Zeeer   )c1c2i2r/  r0  r   ZabcabcZeeeeeer   )r   r   rj   Z	set_indexr   rM   rN   r  r   r   r    $test_concat_multiindex_with_categoryb  s.    


r2  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 )Nrv   stringr   r&   r   r   r)   r   r  r   r   r    test_concat_ea_upcast  s
    r4  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 sZ0    Y  t dd tdgi}t|| d S )Nr   z1990-12-20 00:00:00+00:00r   rx   Tr   )r   r   r   rM   r"  r!  r   rN   )r   rE   r}   r   rP   r   r   r    (test_concat_none_with_timezone_timestamp  s    .r5  )Acollectionsr   r   collections.abcr   r   decimalr   numpyr   rz   Zpandas.errorsr   Zpandas.util._test_decoratorsutilZ_test_decoratorstdZpandasr   r   r	   r
   r   r   r   r   Zpandas._testingZ_testingrM   Zpandas.core.arraysr   Zpandas.tests.extension.decimalr   r   r   r   r   r   r   r   r   r  r  filterwarningsZSubclassedDataFramer   ZSubclassedSeriesr  r	  r
  r  r  r  r  r   r  r  Zskip_array_manager_invalid_testr&  r'  r(  r-  r2  r4  r5  r   r   r   r    <module>   s   $	    
	


		
	

	
	




	