o
    �¨Êh¸~  ã                   @   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
ƒ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"   úY/var/www/html/env/lib/python3.10/site-packages/pandas/tests/reshape/concat/test_concat.pyÚtest_append_concat   s   z"TestConcatenate.test_append_concatc                    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 ]A‰ ˆ 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 sŽJ ‚qgˆ jtkr¨|r¡ˆ |j	j
d u s J ‚qgˆ jd us¨J ‚qgt tj d¡ d¡ƒ}t||||gddd�}|j	j
D ]Q‰ ˆ jjdkrë|sÏ|rãt‡ fdd„|j	j
|j	j
 D ƒƒsâJ ‚qÃˆ jd u sêJ ‚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 ‚qÃd 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   ó   � | ]	}t  ˆ |¡V  qd S r/   ©r   r2   ©r3   Úotherr6   r"   r#   r8   X   s
   € 
ÿ
ÿc                 3   r<   r/   r=   r>   r6   r"   r#   r8   c   s   € )r   r   r   r   r   ÚintegersÚreshapeÚranger   r0   r1   ÚanyÚbaseÚdtypeÚkindÚobject)r   Úusing_array_managerÚusing_copy_on_writeÚdfÚdf2Údf3r!   Údf4r"   r6   r#   Útest_concat_copy/   sL   $þÿ
€þ €ñ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%   ©rP   r-   ©Úcolumns)r   r   r   r   r   r   r
   Úfrom_arraysÚr_ÚvaluesÚtmÚassert_frame_equalÚc_)r   rJ   rK   r!   Ú	exp_indexÚexpectedÚ
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s`J ‚d S )Nr   ©r   r&   r   r)   r'   )ÚthreeÚtwoÚoneÚzero)ra   r`   r_   Ú	group_key)r-   rP   ÚlevelsÚnames©Úname)r   r)   r   r'   )r   r   r   r   r   Úilocr   rW   Úassert_index_equalrS   rd   r	   re   )r   rJ   Ú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 )Nrn   r   r%   )r+   ÚbarÚbazÚquxc                    ó   g | ]}ˆ | ‘qS r"   r"   ©r3   Úk©Úframesr"   r#   Ú
<listcomp>¢   ó    z7TestConcatenate.test_concat_mapping.<locals>.<listcomp>rO   r)   ©r-   c                    rr   r"   r"   rs   ru   r"   r#   rw   ¦   rx   rQ   )rp   r+   ro   c                    rr   r"   r"   rs   ru   r"   r#   rw   «   rx   )rn   r   r   r   r   r   ÚlistrP   r   rW   rX   )r   rm   Únon_dict_mapping_subclassÚconstructorÚsorted_keysr!   r[   rP   r"   ru   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s„J ‚t |jjd tddgdd�¡ d S )Nr   ©r)   r'   ©r)   r&   r+   rp   ra   r`   ÚfirstÚsecond))r+   ra   )r+   r`   )rp   ra   )rp   r`   )rP   rd   re   r   )r   r   r)   r)   )r   r)   r   r)   ©r   r   r   r   )rd   Úcodesre   ©rP   rd   )NNN©rP   re   )r�   r‚   Nrf   )r   r   r   r   r   r   r
   r   rW   rX   re   ri   rd   r	   )r   rJ   rK   rd   re   r!   r[   rZ   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©Úmatchra   r`   )r+   ro   rp   r…   zKey one not in level)	r   r   r   r   r   ÚpytestÚraisesÚ
ValueErrorr   )r   rJ   rK   Ú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s J ‚d S )N)ÚAÚBÚCÚD©r)   r   r'   r&   Úf8©rE   Úi8rR   T©Úignore_indexr   ry   r   r   rˆ   r,   r€   r‰   ra   r`   r�   r‚   r†   )r�   r‚   )r   r   Úarrayr   ÚconcatenaterV   rW   rX   r   r   r   r   re   )r   rS   Údf1rK   Úappendedr[   rJ   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+   ro   )r‘   ©r’   r)   r   r,   )r’   r    ©Úsort)r   rB   r   )r   r¢   r�   rK   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   rS   ry   r'   ©r   r)   r   r*   )r   r   r)   r   r'   r+   )r+   r   r   ro   ©r+   r   ro   T)r-   rš   )r   r   Úaranger   r   rA   Úrepeatr   rW   rX   rg   ©r   r   r7   r   r    rJ   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   rA   ÚtileÚtolistr   rW   rX   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   rg   ro   r©   r)   r,   r'   r¬   rª   r   rR   Tr™   )r   r   r­   r   r   rA   ÚkronÚwhereÚidentityÚnanÚTr²   r   rW   rX   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ÚdateÚ20130101ÚUTCr   r)   iÜ  iô  r   Útextz
some wordsé	   )r   ÚpdÚ	TimestampÚtz_localizeÚNaTr   rh   rW   Úassert_series_equalÚdtypesr   )r   rJ   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   r^   r+   rO   ro   r   )r   r   r   r   r   r   rW   rX   )r   rJ   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   rW   rX   rŒ   r�   rŽ   )r   rJ   rj   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Î   rO   ©r   r   rW   rX   )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   r.   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)   ry   ©r   r)   )
r   r   ÚzerosÚonesrg   r   r   rS   rW   rX   )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)   ry   )r   rS   r   rW   rX   )r   r�   rK   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 r/   r"   )r3   rJ   r"   r"   r#   r8   Ù  ó   € 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�   rK   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 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   rW   rX   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   rB   )r3   Ú_r"   r"   r#   rw   ó  s     z5TestConcatenate.test_concat_order.<locals>.<listcomp>éd   Tr¡   )r)   rˆ   N)r   rB   r   rS   r	   rW   ri   )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   rG   rW   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ÚAnotherrO   )r  r  )r   r   rB   rW   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)   ry   )	r   r   r   r   r   rŒ   r�   r   r   )r   r�   rK   r�   r"   r"   r#   Ú#test_concat_duplicate_indices_raise	  s   ýý"ÿz3TestConcatenate.test_concat_duplicate_indices_raiseN)rõ   rö   r÷   r$   rN   r]   rl   rŒ   ÚmarkÚparametrizer~   r‡   r�   rŸ   r£   r°   r³   r¹   rÅ   rÆ   rÈ   rÉ   rÑ   rÚ   rß   rè   rý   r  r  r  r  r"   r"   r"   r#   r      s6    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s5J ‚d S )Nr—   r)   ©rE   Úndminr*   )rG   Úndimr   r›   r·   r   rV   rE   )Úfloat_numpy_dtypeÚframe_or_seriesÚdimsÚdtr   r4   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   rV   rE   )r  Úany_signed_int_numpy_dtyper  r  r   r4   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�   rK   r[   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   ©Údatary   )r   r   r   Úastyper¿   ÚSparseDtyper   r¨   r   rW   rX   )rˆ   r[   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   ry   )r¿   r  r   rÔ   r   r1   r   Úfloatr  r   rW   rÃ   )rE   rˆ   r‰   r[   r!   r"   r"   r#   Útest_concat_dense_sparseI  s   r  rP   )rÎ   r9   r9   )r9   rÎ   r9   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Ì   rf   )r   rå   ræ   rÍ   r)   ©r-   rP   )r)   r&   r  r   )r   r*   r   rå   )r'   rà   r¾   ræ   r   rˆ   r‰   r   rR   )r   r   r   r
   Úfrom_tuplesrW   rX   )rP   rJ   r   r    r!   Úexpected_valuesÚexpected_columnsr[   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   rˆ   r‰   rR   )r   r   r
   r"  rW   rX   )rP   rJ   r!   r#  r$  r[   r"   r"   r#   Útest_duplicate_keys_same_frameb  s   *ÿr&  zMignore:Passing a BlockManager|Passing a SingleBlockManager:DeprecationWarningÚobjr‘   r   rf   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 )
Nrˆ   ré   r  r—   rê   Tr™   rë   )r&   r*   rà   r)   r   r'   )r   r¿   r›   r   r   rW   rX   ©r�   rK   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
   r.  zdtype1,dtype2,expected_dtype))Úboolr/  r/  )Úbooleanr/  r0  )r/  r0  r0  )r0  r0  r0  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   rW   rÃ   )Údtype1Údtype2Úexpected_dtypeÚser1Úser2r!   r[   r"   r"   r#   Útest_concat_bool_types—  s
   r6  )rP   Ú	integrityÚredr'   TF)r8  Úbluer8  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'   )rP   Úverify_integrity)rˆ   r‰   rÌ   ré   r,   )r   r   rz   Úzipr
   r"  rW   rÃ   )rP   r7  Úseries_listr!   Útuplesr[   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))rE   rg   r“   gÿ!ýöuàà?r  rG   zMaybe Time (UTC))r‘   r’   rS   ry   r   r—   ©r‘   r’   r“   r,   )r¿   ÚDatetimeIndexr   r	   r   r·   r   rG   r›   rW   rX   )ÚdtirÙ   ÚidxrØ   r!   rZ   r[   r"   r"   r#   Ú test_concat_null_object_with_dti»  s    ÿ
ýúrC  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   rR   r   rª   )
r
   r"  r   r¿   Ú
RangeIndexr   r   r·   rW   rX   )Úmir�   rK   r!   r[   r"   r"   r#   Ú,test_concat_multiindex_with_empty_rangeindexÓ  s   rF  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   )r.   Úattrsr   rÕ   ©r  r�   rK   rJ   r"   r"   r#   Útest_concat_drop_attrsÞ  ó   

rJ  c                 C   sF   |   ¡ }ddi|_|   ¡ }ddi|_t||gƒ}|jd dks!J ‚d S )Nr)   )r.   rH  r   rI  r"   r"   r#   Útest_concat_retain_attrsõ  rK  rL  Údf_dtype)rÔ   r¨   údatetime64[ns]Úempty_dtype)NrÔ   rG   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+   ro   r—   r+   ro   )rS   rE   úDThe behavior of DataFrame concatenation with empty or all-NA entriesrN  rÔ   rŠ   r¨   rG   )r   ÚFutureWarningrW   Úassert_produces_warningr   r  rX   ©rO  rM  rJ   Úemptyr�   Úwarnr!   r[   r"   r"   r#   Ú%test_concat_ignore_empty_object_float  s    ÿ
rW  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   rP  r—   r¨   rG   rÔ   rQ  rN  rŠ   Tr™   )r   r   r·   rR  rW   rS  r   rX   rT  r"   r"   r#   Ú&test_concat_ignore_all_na_object_float&  s"   ÿ"rX  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   rR   rQ  rŠ   Tr™   )r   r¿   rÀ   ÚreindexrS   rW   rS  rR  r   rÂ   rX   )r�   rK   Úalignedr�   r!   r[   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 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 sŸw   Y  d S )Nr*   c                    s   g | ]}ˆ | ‘qS r"   r"   )r3   Ún©Úserr"   r#   rw   T  rx   z6test_concat_mismatched_keys_length.<locals>.<listcomp>r&   r?  zGThe behavior of pd.concat with len\(keys\) != len\(objs\) is deprecatedrŠ   r)   rQ   r   c                 s   rì   r/   r"   ©r3   r4   r"   r"   r#   r8   ]  rí   z5test_concat_mismatched_keys_length.<locals>.<genexpr>c                 s   rì   r/   r"   ©r3   r5   r"   r"   r#   r8   ]  rí   c                 s   rì   r/   r"   r_  r"   r"   r#   r8   _  rí   c                 s   rì   r/   r"   r`  r"   r"   r#   r8   _  rí   )r   rB   rW   rS  rR  r   )ÚsersrP   r�   r"   r]  r#   Ú"test_concat_mismatched_keys_lengthQ  s    ÿÿ$ÿ$"ÿrb  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Úi2re  rf  rê   ÚabcabcÚeeeeeerë   )r   r   rz   Ú	set_indexr   rW   rX   r*  r"   r"   r#   Ú$test_concat_multiindex_with_categoryb  s.   
ýÿ
ýÿ
ýÿrk  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
   rm  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:00rQ  rŠ   Tr™   )r   r¿   rÀ   rW   rS  rR  r   rX   )r�   rK   r�   r!   r[   r"   r"   r#   Ú(test_concat_none_with_timezone_timestampˆ  s   ÿrn  )AÚcollectionsr   r   Úcollections.abcr   r   Údecimalr   Únumpyr   rŒ   Úpandas.errorsr   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdÚpandasr¿   r   r	   r
   r   r   r   r   Úpandas._testingÚ_testingrW   Úpandas.core.arraysr   Úpandas.tests.extension.decimalr   r   r  r  r	  r  r  r  r  r%  r&  ÚfilterwarningsÚSubclassedDataFramer­   ÚSubclassedSeriesr)  r+  r.  r6  r>  rC  rF  r  rJ  rL  Úskip_array_manager_invalid_testrW  rX  r[  rb  rk  rm  rn  r"   r"   r"   r#   Ú<module>   sº    $	    
	


ÿþþ	þ
		

üþ
		ÿÿøþ

ÿÿøþ


	