a
    oÝEb^b  ã                
   @   sš  d dl mZmZ d dlmZ d dlmZmZ d dlZ	d dl
Z
d dl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 d d	lmZ G d
d„ dƒZe
j  !deeg¡e
j  !de	j"d ¡dd„ ƒƒZ#e
j  !deeg¡e
j  !de	j"d ¡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 *d"e	 +d d#¡i¡ej,e	 +d d#¡d"d$�g¡d%d&„ ƒZ-d'd(„ Z.d)d*„ Z/e
j  !d+g d,¢¡d-d.„ ƒZ0e
j  !d/d0gd1 d2fd0gd1 d3fg d4¢d3fg d4¢d2fg¡d5d6„ ƒZ1d7d8„ Z2d9d:„ Z3d;d<„ Z4e
j  !d=ed>d?gd@�edAd>d?gid@�ee5dB�ee5dB�g¡dCdD„ ƒZ6e
j  !d=ed>d?gd@�edAd>d?gid@�ee5dB�ee5dB�g¡dEdF„ ƒZ7dS )Gé    )ÚabcÚdeque)ÚDecimal)Úcatch_warningsÚsimplefilterN)ÚPerformanceWarning)Ú	DataFrameÚIndexÚ
MultiIndexÚPeriodIndexÚSeriesÚconcatÚ
date_range)ÚSparseArray)Ú!create_series_with_explicit_dtype)Ú
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/S )0ÚTestConcatenatec                 C   sˆ   t dddd�}t dddd�}ttj d¡|ƒ}ttj d¡|ƒ}| ¡ }| ¡ }t||gƒ}t|jt	ƒslJ ‚|jd |jd ks„J ‚d S )	Nz
12/31/1990z
12/31/1999zA-DEC)Úfreqz
12/31/2000z
12/31/2009é
   r   )
r   r   ÚnpÚrandomÚrandnZ	to_periodr   Ú
isinstanceÚindexr   )ÚselfZd1Zd2Ús1Ús2Úresult© r   úg/home/ja/django-apps/lartica_env/lib/python3.9/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jdddd� dd¡ƒ}t dditdƒd	�}t|||gdd
d�}|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 sÞJ ‚q�ˆ jtkr�|�rˆ |jj	d u �sJ ‚q�ˆ j
d us�J ‚q�t tj dd¡ƒ}t||||gddd�}|jj	D ]¬‰ ˆ jjdk�rœ|�rŠt‡ fdd„|jj	|jj	 D ƒƒ�sšJ ‚nˆ j
d u �sòJ ‚nVˆ jjdv �rÆˆ j
|jj	d j
u �sòJ ‚n,ˆ jtk�rHt‡ fdd„|jj	D ƒƒ�sHJ ‚�qHd S )Né   é   r   r   )Úsizeé   é   Úfoo©r   T)ÚaxisÚcopyFÚf)ÚiÚuc                 3   s   | ]}t  ˆ |¡V  qd S ©N©r   Zshares_memory©Ú.0Úother©Úarrr   r   Ú	<genexpr>R   s   ÿz3TestConcatenate.test_concat_copy.<locals>.<genexpr>c                 3   s   | ]}t  ˆ |¡V  qd S r-   r.   r/   r2   r   r   r4   ]   ó    )r   r   r   r   ÚrandintÚreshapeÚranger   Z_mgrÚarraysÚbaseÚdtypeÚkindÚobjectÚany)r   Zusing_array_managerÚdfÚdf2Zdf3r   Zdf4r   r2   r   Útest_concat_copy1   s:    
þz TestConcatenate.test_concat_copyc                 C   sd  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$   ©Úkeys)r   r   r   r$   r$   r$   r$   )r   r$   é   r   r$   rD   r"   r'   )r   r   r   r$   r$   r$   )r   r$   rD   r   r$   rD   ©rC   r(   ©Úcolumns)r   r   r   r   r   r
   Zfrom_arraysZr_ÚvaluesÚtmÚassert_frame_equalZc_)r   r?   r@   r   Ú	exp_indexÚexpectedZ
exp_index2r   r   r   Útest_concat_with_group_keys_   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$   rD   r"   )ÚthreeÚtwoÚoneÚzero)rP   rO   rN   Z	group_key)r(   rC   ÚlevelsÚnames©Úname)r   r$   rD   r"   )r   r   r   r   Úilocr   rI   Úassert_index_equalrG   rR   r	   rS   )r   r?   Ú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 )Nr\   r!   r"   )r&   ÚbarÚbazZquxc                    s   g | ]}ˆ | ‘qS r   r   ©r0   Úk©Úframesr   r   Ú
<listcomp>œ   r5   z7TestConcatenate.test_concat_mapping.<locals>.<listcomp>rB   r$   ©r(   c                    s   g | ]}ˆ | ‘qS r   r   r_   ra   r   r   rc       r5   rE   )r^   r&   r]   c                    s   g | ]}ˆ | ‘qS r   r   r_   ra   r   r   rc   ¥   r5   )
r\   r   r   r   r   ÚlistrC   r   rI   rJ   )r   r[   Znon_dict_mapping_subclassÚconstructorZsorted_keysr   rL   rC   r   ra   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^   rP   rO   ÚfirstÚsecond))r&   rP   )r&   rO   )r^   rP   )r^   rO   )rC   rR   rS   r   )r   r   r$   r$   )r   r$   r   r$   ©r   r   r   r   )rR   ÚcodesrS   ©rC   rR   )NNN©rC   rS   )rh   ri   NrT   )r   r   r   r   r   r
   r   rI   rJ   rS   rW   rR   r	   )r   r?   r@   rR   rS   r   rL   rK   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 st0    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$   r"   Úar'   r!   Úbz Values not found in passed level©ÚmatchrP   rO   )r&   r]   r^   rl   zKey one not in level)r   r   r   r   ÚpytestÚraisesÚ
ValueErrorr   )r   r?   r@   Úmsgr   r   r   Ú"test_concat_keys_levels_no_overlapÑ   s    :z2TestConcatenate.test_concat_keys_levels_no_overlapc                 C   s>  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$   rD   r"   r!   Zf8©r;   Úi8rF   T©Úignore_indexr   rd   r$   r"   ro   r'   r!   rp   rP   rO   rh   ri   rm   )rh   ri   )r   r   Úarrayr   ZconcatenaterH   rI   rJ   r   r   r   rS   )r   rG   Údf1r@   ZappendedrL   r?   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&   r]   )rx   ©ry   r$   rD   r'   )ry   r„   ©Úsort)r   r8   r   )r   r†   r‚   r@   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 	||¡ tt |d¡ dd	¡| ¡ d dgd�}t|||gƒ}t 	||¡ tt |d¡ dd	¡dgd�}t|||gdd�}t 	||¡ d S )Nz01-Jan-2013r   ÚH)Zperiodsr   Úint64r}   r'   éÿÿÿÿr$   rD   r   ©r   rG   rd   r"   ©r   r$   rD   r%   )r   r   r$   rD   r"   r&   )r&   r   r   r]   )r&   r   r]   T)r(   r€   rF   r   )r   r   Úaranger   r   r7   Úrepeatr   rI   rJ   rU   ZtileÚtolist)r   r   r3   r   r   r?   rL   r   r   r   r   Útest_concat_mixed_objs  sd    ÿÿÿÿÿÿÿ ÿz&TestConcatenate.test_concat_mixed_objsc                 C   sê   t dt d¡ d¡tjgiƒ}t|jdg |jdg gƒ}t |j	|j	¡ dd l
}t d| 
ddd¡| 
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ô  rD   Útextz
some wordsé	   )r   ÚpdÚ	TimestampZtz_localizeZNaTr   rV   rI   Úassert_series_equalZdtypesÚdatetime)r   r?   r   r˜   r   r   r   Útest_dtype_coerceionM  s    ÿz$TestConcatenate.test_dtype_coerceionc                 C   sN   t tj dd¡ƒ}t|gdgd�}t||gddgd�}t ||d d… ¡ d S )Nr   r!   r&   rB   r]   )r   r   r   r   r   rI   rJ   )r   r?   r   rL   r   r   r   Útest_concat_single_with_keyc  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 concatenaterq   )rs   rt   ru   r   ©r   r   r   r   Útest_concat_no_items_raisesj  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 sr0    Y  d S )Nr   r!   r%   zAll objects passed were Nonerq   )
r   r   r   r   r   rI   rJ   rs   rt   ru   )r   r?   rX   r   r   r   r   Útest_concat_exclude_nonen  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   é   é   rD   r$   )ro   rp   ÚcÚdÚe)rp   r    r¡   r¢   rB   ©r   r   rI   rJ   )r   Zdf0r   rL   r   r   r   Útest_concat_keys_with_nonew  s    $""ÿ(z*TestConcatenate.test_concat_keys_with_nonec                 C   sV   t  ¡ }t  ¡ d d d… }t||gddd�}t||gddd�}t|ƒt|ƒksRJ ‚d S )NrD   Úouterr$   )Újoinr(   )rI   ZmakeTimeSeriesr   Ú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$   rd   ©r   r$   )
r   r   ZzerosZonesrU   r   r   rG   rI   rJ   )r   Zts0r¨   r   rL   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 )Nrj   )é   r®   r®   r®   )Úrrrr¯   r¯   r¯   )ÚfirmNoÚprcÚ	stringvar)r”   r   é   é   r|   )rz   Úmiscr±   )r   r®   r¯   r”   r$   r®   )r   r®   r¯   r   rD   r®   )r   r®   r¯   r³   r"   r®   )r   r®   r¯   r´   r!   r®   )r°   r±   r²   rz   rµ   r±   r$   rd   )r   rG   r   rI   rJ   )r   r‚   r@   rL   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$   rD   r"   ©r!   r%   r®   ©r$   rD   r"   r!   r%   r®   Tr   c                 s   s   | ]
}|V  qd S r-   r   )r0   r?   r   r   r   r4   ½  r5   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 )NrD   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‚   r@   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‡ ‡fdd„ZdS )z>TestConcatenate.test_concat_iterables.<locals>.CustomIterator2c                 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   ÚCustomIterator2Í  s   rÇ   )r   rI   rJ   r   r   r   ÚIterable)r   rL   rÅ   rÇ   r   r¿   r   Útest_concat_iterables´  s    ÿ
z%TestConcatenate.test_concat_iterablesc                 C   sT   t tdƒg d¢d�g}|dd„ tdƒD ƒ7 }t|dd�j}|d	 j}t ||¡ d S )
Nr"   )ro   r$   Nr‹   c                 S   s    g | ]}t td ƒg d¢d�‘qS )r"   )Nr$   ro   r‹   )r   r8   )r0   r+   r   r   r   rc   ×  r5   z5TestConcatenate.test_concat_order.<locals>.<listcomp>éd   Tr…   r   )r   r8   r   rG   rI   rW   )r   Údfsr   rL   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$   rD   ÚInt64r}   Tr   )	r   r•   r�   r   r   r   r=   rI   r—   )r   ro   rp   r   rL   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ÚAnotherrB   )rÏ   rÐ   )r   r   r8   rI   r—   )r   rL   r   r   r   r   Útest_concat_ordered_dictå  s
    ÿz(TestConcatenate.test_concat_ordered_dictN)rÁ   rÂ   rÃ   r    rA   rM   rZ   rs   ÚmarkÚparametrizerg   rn   rw   rƒ   r‡   r�   r™   rš   rœ   r�   r¤   r«   r­   r¶   rÉ   rÌ   rÎ   rÑ   r   r   r   r   r       s.   .
)!	E	
 	r   ÚpdtÚdtÚfloatc                 C   sj   |t d�j}|tjdg| |d�ƒ|tjtjg| |d�ƒ|tjdg| |d�ƒg}t|ƒ}|jj| ksfJ ‚d S )Nr}   r$   ©r;   Úndminr%   )r=   Úndimr   r�   Únanr   rH   r;   ©rÕ   rÔ   ÚdimsrË   Úxr   r   r   Ú!test_concat_no_unnecessary_upcastî  s    ýrÞ   rÄ   c              	   C   sŽ   t dd��p |ƒ j}|tjdg| |d�ƒ|tjtjg|d�ƒ|tjdg| |d�ƒg}t|ƒ}|jjdkslJ ‚W d   ƒ n1 s€0    Y  d S )NT)Úrecordr$   r×   )rØ   r%   Úfloat64)r   rÙ   r   r�   rÚ   r   rH   r;   rÛ   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‚   r@   rL   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$   rD   ©Údatard   )r   r   r   Úastyper•   ÚSparseDtyper   r‰   r   rI   rJ   )ro   rL   r   r   r   r   Útest_concat_sparse  s    ÿrç   c                  C   sj   t tj dd g¡td�} t dgtd�}t g d¢g d¢d� t tjd ¡¡}t	| |gdd�}t
 ||¡ d S )Nr$   r}   )r$   Nr$   )r   r$   r   ©rä   r   r   rd   )r   r•   r9   r   rÖ   rå   ræ   r   rà   r   rI   r—   )ro   rp   rL   r   r   r   r   Útest_concat_dense_sparse  s    ÿré   rC   )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¸   ©ro   rp   )é   é   r”   r    rT   )r   r³   r´   r¡   r$   ©r(   rC   )r$   r!   rë   r   )rD   r%   rì   r³   )r"   r®   r”   r´   r   ro   rp   rD   rF   )r   r   r   r
   Úfrom_tuplesrI   rJ   )rC   r?   r   r   r   Úexpected_valuesÚexpected_columnsrL   r   r   r   Útest_duplicate_keys)  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ƒ �& tdtƒ t ||¡ W d   ƒ n1 s¶0    Y  d S )Nr¢   r·   r¸   rê   r$   rí   )r$   r!   r$   r!   )rD   r%   rD   r%   )r"   r®   r"   r®   r   ro   rp   rF   Úignore)	r   r   r
   rî   r   r   r   rI   rJ   )rC   r?   r   rï   rð   rL   r   r   r   Útest_duplicate_keys_same_frame8  s    *ÿ
ró   Úobjrx   r   rT   c                 C   s"   t | | gƒ}t|t| ƒƒsJ ‚d S r-   )r   r   Útype)rô   r   r   r   r   Útest_concat_preserves_subclassH  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 )
Nro   r·   rÍ   r}   r¸   Tr   r¹   )r!   r%   r®   r$   rD   r"   )r   r•   r�   r   r   rI   rJ   )r‚   r@   r   rL   r   r   r   Ú(test_concat_frame_axis0_extension_dtypesV  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 )
Nro   rŠ   rÍ   r}   rp   r$   Tr   rê   r£   )Zdf_aZdf_br   rL   r   r   r   Ú+test_concat_preserves_extension_int64_dtyped  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   rI   r—   )Zdtype1Zdtype2Zexpected_dtypeZser1Zser2r   rL   r   r   r   Útest_concat_bool_typesm  s
    rû   )rC   Ú	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 )Nro   r$   rp   rD   r    r"   )rC   Zverify_integrity)ro   rp   r    r·   r'   )r   r   re   Úzipr
   rî   rI   r—   )rC   rü   Zseries_listr   ZtuplesrL   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d d g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))r;   rU   rz   gÿ!ýöuàà?rè   r=   zMaybe Time (UTC))rx   ry   rG   rd   r   r}   )rx   ry   rz   r'   )
r•   ZDatetimeIndexr   r	   r   rÚ   r   r=   rI   rJ   )Zdtirª   Úidxr©   r   rK   rL   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„   )rz   r$   r$   rD   rF   r   r‹   )
r
   rî   r   r•   Z
RangeIndexr   r   rÚ   rI   rJ   )Úmir‚   r@   r   rL   r   r   r   Ú,test_concat_multiindex_with_empty_rangeindex¥  s    r  c                  C   s”   t g d¢gdgd�} t g d¢gdgd�}d}tjt|d�� t| |gdƒ}W d   ƒ n1 s^0    Y  t g d¢g d¢gddgd�}t ||¡ d S )	Nr·   ro   r'   r¸   rp   ziIn a future version of pandas all arguments of concat except for the argument 'objs' will be keyword-onlyrq   r   )r   rI   Zassert_produces_warningÚFutureWarningr   rJ   )r?   r@   rv   r   rL   r   r   r   Útest_concat_posargs_deprecation°  s    ÿ,r  rä   r$   rD   rã   Zcol1r}   c                 C   sF   |   ¡ }ddi|_|   ¡ }ddi|_t||gƒ}t|jƒdksBJ ‚d S )Nr$   rD   r   )r)   Úattrsr   r§   ©rä   r‚   r@   r?   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
  )8Úcollectionsr   r   Údecimalr   Úwarningsr   r   Únumpyr   rs   Zpandas.errorsr   Zpandasr•   r   r	   r
   r   r   r   r   Zpandas._testingZ_testingrI   Zpandas.core.arraysr   Zpandas.core.constructionr   Zpandas.tests.extension.decimalr   r   rÒ   rÓ   ZsctypesrÞ   rá   râ   rç   ré   rñ   ró   ZSubclassedDataFramer�   ZSubclassedSeriesrö   r÷   rø   rû   r   r  r  r  rÖ   r	  r
  r   r   r   r   Ú<module>   sš   $	   Q	

þþ
	þ	
	

üþ	
	ÿÿøþ

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