a
    é´«j   ã                   @   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
ƒsxJ ‚|j	d	 |j	d	 ks�J ‚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    úf/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/reshape/concat/test_concat.pyÚtest_append_concat!   s    z"TestConcatenate.test_append_concatzTODO(infer_string))Úreasonc                    sV  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sžJ ‚qžt|||gddd�}|j	j
D ]š‰ ˆ jjdkrøˆ j|j	j
d ju söJ ‚qÎˆ jjdv �r"ˆ j|j	j
d ju �shJ ‚qÎˆ jtkrÎ|�rJˆ |j	j
d u �sZJ ‚nˆ jd u�sZJ ‚ˆ jd usÎJ ‚qÎt tj d¡ d¡ƒ}t||||gddd�}|j	j
D ]²‰ ˆ jjdk�rø|�s¼|�ræt‡ fdd„|j	j
|j	j
 D ƒƒ�söJ ‚nˆ jd u �sNJ ‚nVˆ jjdv �r"ˆ j|j	j
d ju �sNJ ‚n,ˆ 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>=   s   þz3TestConcatenate.test_concat_copy.<locals>.<genexpr>FÚf)ÚiÚu)r%   r(   c                 3   s   | ]}t  ˆ |¡V  qd S r.   ©r   r1   ©r2   Úotherr5   r    r!   r7   ]   s   ÿc                 3   s   | ]}t  ˆ |¡V  qd S r.   r;   r<   r5   r    r!   r7   h   ó    )r	   r   r   r   r   ZintegersÚreshapeÚranger   r/   r0   ÚanyÚbaseÚdtypeÚkindÚobject)r   Zusing_array_managerZusing_copy_on_writeÚdfÚdf2Zdf3r   Zdf4r    r5   r!   Útest_concat_copy2   sF    $þ
þ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$   ©rJ   r,   ©Úcolumns)r	   r   r   r   r   r   r   Zfrom_arraysZr_ÚvaluesÚtmÚassert_frame_equalZc_)r   rF   rG   r   Ú	exp_indexÚexpectedZ
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)rW   rV   rU   Z	group_key)r,   rJ   ÚlevelsÚnames©Úname)r   r(   r   r&   )r	   r   r   r   r   Úilocr   rO   Úassert_index_equalrM   rY   r
   rZ   )r   rF   Ú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 )Nrc   r   r$   )r*   ÚbarÚbazZquxc                    s   g | ]}ˆ | ‘qS r    r    ©r2   Úk©Úframesr    r!   Ú
<listcomp>§   r>   z7TestConcatenate.test_concat_mapping.<locals>.<listcomp>rI   r(   ©r,   c                    s   g | ]}ˆ | ‘qS r    r    rf   rh   r    r!   rj   «   r>   rK   )re   r*   rd   c                    s   g | ]}ˆ | ‘qS r    r    rf   rh   r    r!   rj   °   r>   )rc   r	   r   r   r   r   ÚlistrJ   r   rO   rP   )r   rb   Znon_dict_mapping_subclassÚconstructorZsorted_keysr   rR   rJ   r    rh   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sÚJ ‚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*   re   rW   rV   ÚfirstÚsecond))r*   rW   )r*   rV   )re   rW   )re   rV   )rJ   rY   rZ   r   )r   r   r(   r(   )r   r(   r   r(   ©r   r   r   r   )rY   ÚcodesrZ   ©rJ   rY   )NNN©rJ   rZ   )rq   rr   Nr[   )r	   r   r   r   r   r   r   r   rO   rP   rZ   r^   rY   r
   )r   rF   rG   rY   rZ   r   rR   rQ   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 sÊ0    Y  d S )Nr   ro   Úar+   rp   Úbz Values not found in passed level©ÚmatchrW   rV   )r*   rd   re   ru   zKey one not in level)	r	   r   r   r   r   ÚpytestÚraisesÚ
ValueErrorr   )r   rF   rG   Ú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©rC   Úi8rL   T©Úignore_indexr   rk   r   ro   rx   r+   rp   ry   rW   rV   rq   rr   rv   )rq   rr   )r	   r   Úarrayr   ZconcatenaterN   rO   rP   r   r   r   r   rZ   )r   rM   Údf1rG   ZappendedrR   rF   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*   rd   )r�   ©r‚   r(   r   r+   )r‚   r�   ©Úsort)r	   r@   r   )r   r�   r‹   rG   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   rM   rk   r&   ©r   r(   r   r)   )r   r   r(   r   r&   r*   )r*   r   r   rd   ©r*   r   rd   T)r,   r‰   )r   r   Úaranger   r	   r?   Úrepeatr   rO   rP   r\   ©r   r   r6   r   r   rF   rR   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   rO   rP   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   r\   rd   r–   r(   r+   r&   r™   r—   r   rL   Trˆ   )r   r   rš   r   r	   r?   ZkronÚwhereÚidentityÚnanÚTrŸ   r   rO   rP   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ÚdateZ20130101ÚUTCr   r(   iÜ  iô  r   Útextz
some wordsé	   )r	   ÚpdÚ	TimestampZtz_localizeÚNaTr   r]   rO   Úassert_series_equalZdtypesr   )r   rF   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   rT   r*   rI   rd   r   )r	   r   r   r   r   r   rO   rP   )r   rF   r   rR   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 concatenaterz   )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   ƒ n1 sv0    Y  d S )Nr   rT   r)   zAll objects passed were Nonerz   )r	   r   r   r   r   r   rO   rP   r|   r}   r~   )r   rF   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(   )rx   ry   ÚcÚdÚe)ry   rµ   r¶   r·   rI   ©r	   r   rO   rP   )r   Zdf0r   rR   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(   rk   ©r   r(   )
r   r   ZzerosZonesr\   r   r	   rM   rO   rP   )r   Zts0r¾   r   rR   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 )Nrs   )é   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(   rk   )r	   rM   r   rO   rP   )r   r‹   rG   rR   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    )r2   rF   r    r    r!   r7   Þ  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‹   rG   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	   rO   rP   r   r   r   ÚIterable)r   rR   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&   )rx   r(   Nr—   c                 S   s    g | ]}t td ƒg d¢d�‘qS )r&   )Nr(   rx   r—   )r	   r@   )r2   Ú_r    r    r!   rj   ø  r>   z5TestConcatenate.test_concat_order.<locals>.<listcomp>éd   TrŽ   )r(   rx   N)r	   r@   r   rM   r
   rO   r^   )r   Údfsr   rR   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   rE   rO   r­   )r   rx   ry   r   rR   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ÚAnotherrI   )rç   rè   )r   r   r@   rO   r­   )r   rR   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&   rx   r—   )r   r(   r   r   r%   ry   z8Reindexing only valid with uniquely valued Index objectsrz   r(   rk   )	r	   r   r   r   r   r|   r}   r   r   )r   r‹   rG   r   r    r    r!   Ú#test_concat_duplicate_indices_raise  s    ýýz3TestConcatenate.test_concat_duplicate_indices_raiseN)!rØ   rÙ   rÚ   r"   r|   ÚmarkZxfailr   rH   rS   ra   Úparametrizern   rw   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   
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sjJ ‚d S )Nr†   r(   ©rC   Úndminr)   )rE   Úndimr   rŠ   r£   r   rN   rC   )Zfloat_numpy_dtypeZframe_or_seriesÚdimsÚdtrã   r3   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   rN   rC   )ró   Zany_signed_int_numpy_dtyperñ   rð   rã   r3   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‹   rG   rR   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   ©Údatark   )r   r   r	   Úastyperª   ÚSparseDtyper   r•   r   rO   rP   )rx   rR   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   rk   )rª   rù   r   r¼   r   r0   r   Úfloatrø   r   rO   r­   )rC   rx   ry   rR   r   r    r    r!   Útest_concat_dense_sparseN  s    rý   rJ   )r·   r8   r8   )r8   r·   r8   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Î   ©rx   ry   )é   é   r©   rµ   r[   )r   rÉ   rÊ   r¶   r(   ©r,   rJ   )r(   r%   rÿ   r   )r   r)   r   rÉ   )r&   rÄ   r©   rÊ   r   rx   ry   r   rL   )r	   r   r   r   Úfrom_tuplesrO   rP   )rJ   rF   r   r   r   Úexpected_valuesÚexpected_columnsrR   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   rx   ry   rL   )r	   r   r   r  rO   rP   )rJ   rF   r   r  r  rR   r    r    r!   Útest_duplicate_keys_same_frameg  s    *ÿr  zMignore:Passing a BlockManager|Passing a SingleBlockManager:DeprecationWarningÚobjr�   r   r[   c                 C   s"   t | | gƒ}t|t| ƒƒsJ ‚d S r.   )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 )
Nrx   rÍ   rå   r†   rÎ   Trˆ   rÏ   )r%   r)   rÄ   r(   r   r&   )r	   rª   rŠ   r   r   rO   rP   ©r‹   rG   r   rR   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 )
Nrx   r–   rå   r†   ry   r(   Trˆ   rþ   r¸   )Zdf_aZdf_br   rR   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   rO   r­   )Zdtype1Zdtype2Zexpected_dtypeZser1Zser2r   rR   r    r    r!   Útest_concat_bool_typesœ  s
    r  )rJ   Ú	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 )Nrx   r(   ry   r   rµ   r&   )rJ   Zverify_integrity)rx   ry   rµ   rÍ   r+   )r   r   rl   Úzipr   r  rO   r­   )rJ   r  Zseries_listr   ZtuplesrR   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))rC   r\   rƒ   gÿ!ýöuàà?rû   rE   zMaybe Time (UTC))r�   r‚   rM   rk   r   r†   ©r�   r‚   rƒ   r+   )rª   ZDatetimeIndexr	   r
   r   r£   r   rE   rŠ   rO   rP   )ZdtirÀ   Úidxr¿   r   rQ   rR   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   rL   r   r—   )
r   r  r	   rª   Z
RangeIndexr   r   r£   rO   rP   )Úmir‹   rG   r   rR   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‹   rG   rF   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¼   rE   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*   rd   r†   r*   rd   )rM   rC   úDThe behavior of DataFrame concatenation with empty or all-NA entriesr  r¼   rz   r•   rE   )r	   ÚFutureWarningrO   Úassert_produces_warningr   rø   rP   ©r   r  rF   Úemptyr   Úwarnr   rR   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 s¬0    Y  t tjddgtjddgdœ|d�}t ||¡ d S )Nr(   r   r!  r†   r•   rE   r¼   r"  r  rz   Trˆ   )r	   r   r£   r#  rO   r$  r   rP   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þ   rx   r   rL   r"  rz   Trˆ   )r	   rª   r«   ZreindexrM   rO   r$  r#  r   r¬   rP   )r‹   rG   Zalignedr   r   rR   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 s`0    Y  tjt|d�� t| |d
d	� W d   ƒ n1 sœ0    Y  tjt|d��2 tdd„ | D ƒdd„ |D ƒdd	� W d   ƒ n1 sì0    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    )r2   Ún©Zserr    r!   rj   Y  r>   z6test_concat_mismatched_keys_length.<locals>.<listcomp>r%   r  zGThe behavior of pd.concat with len\(keys\) != len\(objs\) is deprecatedrz   r(   rK   r   c                 s   s   | ]
}|V  qd S r.   r    ©r2   r3   r    r    r!   r7   b  r>   z5test_concat_mismatched_keys_length.<locals>.<genexpr>c                 s   s   | ]
}|V  qd S r.   r    ©r2   r4   r    r    r!   r7   b  r>   c                 s   s   | ]
}|V  qd S r.   r    r-  r    r    r!   r7   d  r>   c                 s   s   | ]
}|V  qd S r.   r    r.  r    r    r!   r7   d  r>   )r   r@   rO   r$  r#  r   )ZsersrJ   r   r    r,  r!   Ú"test_concat_mismatched_keys_lengthV  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Úi2r1  r2  rÎ   ZabcabcZeeeeeerÏ   )r	   r   rl   Z	set_indexr   rO   rP   r
  r    r    r!   Ú$test_concat_multiindex_with_categoryg  s.    
ýÿ
ýÿ
ýÿr4  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 )Nrx   Ústringr†   r(   rå   r   r+   r¸   r
  r    r    r!   Útest_concat_ea_upcast„  s
    r6  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"  rz   Trˆ   )r	   rª   r«   rO   r$  r#  r   rP   )r‹   rG   r   r   rR   r    r    r!   Ú(test_concat_none_with_timezone_timestamp�  s    .r7  )CÚcollectionsr   r   Úcollections.abcr   r   Údecimalr   Únumpyr   r|   Zpandas._configr   Zpandas.errorsr   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsÚtdZpandasrª   r	   r
   r   r   r   r   r   Zpandas._testingZ_testingrO   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/  r4  r6  r7  r    r    r    r!   Ú<module>   sº   $	    
	


ÿþþ	þ	
	

üþ	
	ÿÿøþ

ÿÿøþ

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