a
    é´«j‘(  ã                   @   s^   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 d dlmZ G dd„ dƒZdS )é    N)Úusing_string_dtype)Ú	DataFrameÚ
RangeIndexÚSeriesÚconcatÚ
date_rangec                   @   sZ  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ej dg d¢¡ej dg d¢¡dd„ ƒƒZdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zejjeƒ d%d&�d'd(„ ƒZd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ ZdS )1ÚTestEmptyConcatc           
      C   s<  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  	|s„t
n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   Ústrr   ÚAi'  Z20130101Ús)ZperiodsÚfreq©Úindexé   ©r   )r   ÚnpÚrandomZdefault_rngZstandard_normalÚlistÚcopyr   ZreindexÚastypeÚobjectÚlocÚtmÚassert_frame_equalÚranger   )
Úselfr   Úusing_infer_stringÚdfZdfcopyÚemptyÚframesZ	concattedÚexpectedÚresult© r1   úe/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/reshape/concat/test_empty.pyÚtest_handle_empty_objects   s4    ÿ
ÿÿ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d
ƒd�}t ||¡ t g d¢dd�}t ddd�}d}tjt	|d��  t||gdd�}W d   ƒ n1 s²0    Y  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d
ƒd�}t ||¡ d S )N©r   r	   é   Úx)ÚnameÚyÚfloat64)r7   Údtyper   r   )r6   r8   r5   r   zDThe behavior of array concatenation with empty entries is deprecated)Úmatchr   )r6   r   )r   r   )r   r   r   r    Únanr   r'   r(   Zassert_produces_warningÚFutureWarningÚassert_series_equal)r*   Ús1Ús2ÚresÚexpÚmsgr1   r1   r2   Útest_concat_empty_series6   s0    þ.ýz(TestEmptyConcat.test_concat_empty_seriesÚtzNÚUTCÚvaluesr4   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]©r:   )r   r   r   r   )r   ÚdtZtz_localizer    r9   r   ÚpdZNaTÚlenr   r'   r(   )r*   rE   rG   Úfirstr:   Úsecondr/   r0   r1   r1   r2   Ú!test_concat_empty_series_timelikeU   s    þÿz1TestEmptyConcat.test_concat_empty_series_timelikezleft,right,expectedúm8[ns]rH   )ÚcategoryrQ   rQ   )rQ   r%   r%   c                 C   s*   t t|d�t|d�gƒ}|j|ks&J ‚d S ©NrI   )r   r   r:   )r*   ÚleftÚrightr/   r0   r1   r1   r2   Útest_concat_empty_series_dtypesg   s    z/TestEmptyConcat.test_concat_empty_series_dtypesr:   )r9   Úint8Úuint8ÚboolrP   rH   c                 C   sR   t  |¡}tt|d�gƒ}|j|ks(J ‚tt|d�t|d�gƒ}|j|ksNJ ‚d S rR   )r    r:   r   r   )r*   r:   r0   r1   r1   r2   Ú0test_concat_empty_series_dtypes_match_roundtrips|   s
    
z@TestEmptyConcat.test_concat_empty_series_dtypes_match_roundtrips)r9   rV   rW   rP   rH   Údtype2c                    sz   ||krt  d¡ dd„ ‰dd„ ‰ ‡ ‡fdd„}t |¡}t |¡}|||ƒ}tt|d�t|d�gƒj}|j|ksvJ ‚d S )	Nz%same dtype is not applicable for testc                 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   r[   r\   r   ©ÚkindrL   ©r:   rZ   Ztypsr1   r1   r2   Ú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>   r[   r\   Úfra   r]   r_   r1   r1   r2   Ú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 )NÚOr1   )r:   rZ   r0   ©rb   r`   r1   r2   Úget_result_type¦   s    

zSTestEmptyConcat.test_concat_empty_series_dtypes_roundtrips.<locals>.get_result_typerI   )ÚpytestÚskipr    r:   r   r   r^   )r*   r:   rZ   re   r/   r0   r1   rd   r2   Ú*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 )NrH   rI   )r   r   r    Úbool_Úint64r:   Úobject_©r*   r1   r1   r2   Ú&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 )NrQ   rI   r9   )r   r   r    Úarrayr:   rl   r1   r1   r2   Ú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 )Nr9   rI   ZSparsezSparse[float64]r%   )r   r   r$   r:   rK   ZSparseDtyper    r9   )r*   r0   r/   r1   r1   r2   Ú&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   r4   )ÚRowZEmptyColZ	NumberColr   r   r   )	r   r    r<   r   r   r$   r%   r'   r(   )r*   Zdf_1Zdf_2r0   r/   r1   r1   r2   Ú!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    ri   Úint32r9   r   r:   rk   )r*   r,   r0   r1   r1   r2   Ú"test_concat_empty_dataframe_dtypesã   s    z2TestEmptyConcat.test_concat_empty_dataframe_dtypeszTODO(infer_string))Úreasonc                 C   sv   t ƒ }t dddgiddgdd�}t dg itdƒdd�}t||gddd�}t ||¡ t||gdd	d�}t ||¡ d S )
Nr   r   r	   r   rj   )r   r:   Úinner)r   ÚjoinÚouter)r   r   r   r'   r(   )r*   Údf_emptyZdf_aZdf_expectedr0   r1   r1   r2   Ú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   r	   r   r   )Údatar   r5   r   )r   r   Zdtypesr'   r>   )r*   Údf1Údf2r0   r/   r1   r1   r2   Ú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   )r   r   r'   r(   )r*   r}   r~   r0   r/   Zdf3Zdf4r1   r1   r2   Útest_concat_empty_dataframe  s    z+TestEmptyConcat.test_concat_empty_dataframec                 C   sx   t g d¢g d¢dœƒ}t dg d¢iƒ}t|d d… |d d… gƒ}|d jtjksVJ ‚|sl|d jtjkstndstJ ‚d S )Nr4   r€   )r   r   r   r   r   r   )r   r   r:   r    rj   rk   )r*   r+   r}   r~   r0   r1   r1   r2   Ú,test_concat_empty_dataframe_different_dtypes  s
    z<TestEmptyConcat.test_concat_empty_dataframe_different_dtypesc                 C   s\   t dtjg t ¡ d�iƒ}t dtjg d¢t ¡ d�iƒ}| ¡ }t||gƒ}t ||¡ dS )z<48510 `concat` to an empty EA should maintain type EA dtype.r   rI   r4   N)r   rK   rn   Z
Int64Dtyper#   r   r'   r(   )r*   rz   Zdf_newr/   r0   r1   r1   r2   Útest_concat_to_empty_ea%  s
    z'TestEmptyConcat.test_concat_to_empty_ea)Ú__name__Ú
__module__Ú__qualname__r3   rD   rf   ÚmarkZparametrizerO   r    ri   rt   rk   Zfloat32rj   rU   rY   rh   rm   ro   rp   rr   ru   Zxfailr   r{   r   r�   r‚   rƒ   r1   r1   r1   r2   r      sN   $õþ
ÿ
	þ(	
	r   )Únumpyr    rf   Zpandas._configr   ZpandasrK   r   r   r   r   r   Zpandas._testingZ_testingr'   r   r1   r1   r1   r2   Ú<module>   s   