a
    oÝEb%  ã                   @   sR   d dl Zd dlZd dlZd dlmZmZmZmZm	Z	 d dl
mZ G dd„ dƒZdS )é    N)Ú	DataFrameÚIndexÚSeriesÚconcatÚ
date_rangec                   @   s  e Zd Zdd„ Zdd„ Zej dddg¡ej dg g d	¢g¡d
d„ ƒƒZej de	j
e	je	jfe	j
e	je	jfde	j
e	jfde	je	jfde	j
e	jfde	je	jfddg¡dd„ ƒZej dg d¢¡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 )+ÚTestEmptyConcatc           	      C   s0  t tj dd¡tdƒd�}|d d…  ¡ }d|d< |dd… }||||dd … g}t|d|d	�}|jg d
¢d�}|d  d¡|d< d|j	dd…df< t
 ||¡ t dtdƒitdddd�d�}t ƒ }t||gdd�}t
 ||¡ t||gdd�}t
 ||¡ t||gƒ}t
 ||¡ t||gƒ}t
 ||¡ d S )Né
   é   Úabcd©Úcolumnsé   ÚbarÚfoor   )ÚaxisÚsort)ÚaÚbÚcÚdr   ÚOÚAi'  Z20130101Ús)ZperiodsÚfreq©Úindexé   ©r   )r   ÚnpÚrandomZrandnÚlistÚcopyr   ZreindexÚastypeÚlocÚtmÚassert_frame_equalÚranger   )	Úselfr   ÚdfZbazÚemptyÚframesZ	concattedÚexpectedÚresult© r-   úf/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/reshape/concat/test_empty.pyÚtest_handle_empty_objects   s,    ÿz)TestEmptyConcat.test_handle_empty_objectsc                 C   s  t g d¢dd�}t ddd�}t||gdd�}tg d¢tjtjtjgd	œtg d
¢dd�d�}t ||¡ t g d¢dd�}t ddd�}t||gdd�}t g d¢ƒ}t ||¡ t g d¢dd�}t d dd�}t||gdd�}tg d¢tjtjtjgdœddgtg d
¢dd�d�}t ||¡ d S )N©r   é   é   Úx)ÚnameÚyÚfloat64)r4   Údtyper   r   )r3   r5   )r   r   r1   r   ©r7   r   r   )r3   r   )r   r   )	r   r   r   r   Únanr   r$   r%   Úassert_series_equal)r'   Ús1Ús2ÚresÚexpr-   r-   r.   Útest_concat_empty_series0   s,    þýz(TestEmptyConcat.test_concat_empty_seriesÚtzNÚUTCÚvaluesr0   c                 C   sx   t g dd�j |¡}|rd ntj}t ||d�}tt tjgt|ƒ dd�j |¡|dœƒ}t	||gdd�}t
 ||¡ d S )NúM8[ns]r8   )r   r   r   r   )r   ÚdtZtz_localizer   r6   r   ÚpdZNaTÚlenr   r$   r%   )r'   r@   rB   Úfirstr7   Úsecondr+   r,   r-   r-   r.   Ú!test_concat_empty_series_timelikeM   s    þÿz1TestEmptyConcat.test_concat_empty_series_timelikezleft,right,expectedúm8[ns]rC   )ÚcategoryrK   rK   )rK   ÚobjectrL   c                 C   s~   d }|t ju s|t ju r&|t jur&t}tj|dd��( tt|d�t|d�gƒ}W d   ƒ n1 sb0    Y  |j|kszJ ‚d S )Nzconcatenating bool-dtype)Úmatchr8   )	r   Úbool_Úobject_ÚFutureWarningr$   Zassert_produces_warningr   r   r7   )r'   ÚleftÚrightr+   Úwarnr,   r-   r-   r.   Útest_concat_empty_series_dtypes_   s    6z/TestEmptyConcat.test_concat_empty_series_dtypesr7   ©r6   Zint8Zuint8ÚboolrJ   rC   c                 C   sR   t  |¡}tt|d�gƒ}|j|ks(J ‚tt|d�t|d�gƒ}|j|ksNJ ‚d S )Nr8   )r   r7   r   r   )r'   r7   r,   r-   r-   r.   Ú0test_concat_empty_series_dtypes_match_roundtripsx   s
    
z@TestEmptyConcat.test_concat_empty_series_dtypes_match_roundtripsc                    s‚   t tjg d¢ƒ}dd„ ‰dd„ ‰ ‡ ‡fdd„}|D ]J}|D ]@}||krHq:|||ƒ}tt|d�t|d�gƒj}|j|ks:J ‚q:q2d S )	NrU   c                 S   s`   | j |j h}t|h d£ ƒs4| j dks0|j dkr4dS t|ddh ƒs\| j dksX|j dkr\dS d S )N>   ÚiÚur   rX   rY   r   ©ÚkindrF   ©r7   Údtype2Ztypsr-   r-   r.   Úint_result_type‰   s    ÿÿÿÿzSTestEmptyConcat.test_concat_empty_series_dtypes_roundtrips.<locals>.int_result_typec                 S   s8   | j |j h}t|h d£ ƒs4| j dks0|j dkr4dS d S )N>   ÚfrX   rY   r_   rZ   r\   r-   r-   r.   Úfloat_result_type•   s    ÿÿzUTestEmptyConcat.test_concat_empty_series_dtypes_roundtrips.<locals>.float_result_typec                    s0   ˆ | |ƒ}|d ur|S ˆ| |ƒ}|d ur,|S dS )Nr   r-   )r7   r]   r,   ©r`   r^   r-   r.   Úget_result_type�   s    

zSTestEmptyConcat.test_concat_empty_series_dtypes_roundtrips.<locals>.get_result_typer8   )Úmapr   r7   r   r   r[   )r'   Údtypesrb   r7   r]   r+   r,   r-   ra   r.   Ú*test_concat_empty_series_dtypes_roundtrips„   s    	
z:TestEmptyConcat.test_concat_empty_series_dtypes_roundtripsc                 C   s4   t tdd�ttjd�ttjd�gƒjtjks0J ‚d S )NrC   r8   )r   r   r   rN   Úint64r7   rO   ©r'   r-   r-   r.   Ú&test_concat_empty_series_dtypes_triple¯   s    ÿýÿz6TestEmptyConcat.test_concat_empty_series_dtypes_triplec                 C   s.   t tt g ¡dd�tdd�gƒjdks*J ‚d S )NrK   r8   r6   )r   r   r   Úarrayr7   rg   r-   r-   r.   Ú2test_concat_empty_series_dtype_category_with_array¸   s    ÿýÿzBTestEmptyConcat.test_concat_empty_series_dtype_category_with_arrayc                 C   s¤   t tdd� d¡tdd� d¡gƒ}|jdks2J ‚t tdd� d¡tdd�gƒ}t tj¡}|j|ksjJ ‚t tdd� d¡tdd�gƒ}t d¡}|j|ks J ‚d S )Nr6   r8   ZSparsezSparse[float64]rL   )r   r   r"   r7   rE   ZSparseDtyper   r6   )r'   r,   r+   r-   r-   r.   Ú&test_concat_empty_series_dtypes_sparseÁ   s     þÿÿÿ
z6TestEmptyConcat.test_concat_empty_series_dtypes_sparsec                 C   sP   t g d¢tjg d¢dœƒ}t |jd�}t||gdd�}| t¡}t ||¡ d S )N)r   r   r   r0   )ÚRowZEmptyColZ	NumberColr   r   r   )	r   r   r9   r   r   r"   rL   r$   r%   )r'   Zdf_1Zdf_2r,   r+   r-   r-   r.   Ú!test_concat_empty_df_object_dtypeÖ   s
    
z1TestEmptyConcat.test_concat_empty_df_object_dtypec                 C   sæ   t tdƒd�}|d  tj¡|d< |d  tj¡|d< |d  tj¡|d< t||gƒ}|d jtjksjJ ‚|d jtjks~J ‚|d jtjks’J ‚t|| tj¡gƒ}|d jtj	ksºJ ‚|d jtjksÎJ ‚|d jtjksâJ ‚d S )NÚabcr   r   r   r   )
r   r    r"   r   rN   Úint32r6   r   r7   rO   )r'   r(   r,   r-   r-   r.   Ú"test_concat_empty_dataframe_dtypesÞ   s    z2TestEmptyConcat.test_concat_empty_dataframe_dtypesc                 C   sn   t ƒ }t dddgiddgdd�}t dg ig dd�}d|fd|ffD ]&\}}t||gd|d	�}t ||¡ qBd S )
Nr   r   r1   r   rf   )r   r7   ÚinnerÚouter)r   Újoin©r   r   r$   r%   )r'   Zdf_emptyZdf_aZdf_expectedÚhowr+   r,   r-   r-   r.   Útest_concat_inner_join_emptyî   s    z,TestEmptyConcat.test_concat_inner_join_emptyc                 C   s\   t dd gdd ggddgd�}t dd gdd ggddgd�}t||gƒ}|j}t |j|¡ d S )Nr   r1   r   r   )Údatar   r2   r	   )r   r   rd   r$   r:   )r'   Údf1Údf2r,   r+   r-   r-   r.   Útest_empty_dtype_coerceø   s
    z'TestEmptyConcat.test_empty_dtype_coercec                 C   sˆ   t ddgd�}t ddgd�}t|||gƒ}t g d¢d�}t ||¡ t ddgd�}t dgd�}t||gƒ}t ddgd�}t ||¡ d S )Nr   r   r   r   ©r   r   r   rt   )r'   rx   ry   r,   r+   Zdf3Zdf4r-   r-   r.   Útest_concat_empty_dataframe  s    z+TestEmptyConcat.test_concat_empty_dataframec                 C   sn   t g d¢g d¢dœƒ}t dg d¢iƒ}t|d d… |d d… gƒ}|d jtjksVJ ‚|d jtjksjJ ‚d S )Nr0   r{   )r   r   r   r   r   )r   r   r7   r   rf   rO   )r'   rx   ry   r,   r-   r-   r.   Ú,test_concat_empty_dataframe_different_dtypes  s
    z<TestEmptyConcat.test_concat_empty_dataframe_different_dtypes)Ú__name__Ú
__module__Ú__qualname__r/   r?   ÚpytestÚmarkZparametrizerI   r   rN   ro   Zfloat32rO   rf   rT   rW   re   rh   rj   rk   rm   rp   rv   rz   r|   r}   r-   r-   r-   r.   r      s@    õþ
	ÿ
	+		
r   )Únumpyr   r�   ZpandasrE   r   r   r   r   r   Zpandas._testingZ_testingr$   r   r-   r-   r-   r.   Ú<module>   s
   