o
    iq%                     @   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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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'  20130101s)periodsfreqindex   r   )r   nprandomrandnlistcopyr   reindexastypeloctmassert_frame_equalranger   )	selfr   dfbazemptyframes	concattedexpectedresult r3   a/var/www/edux/Edux_v2/venv/lib/python3.10/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)r:   dtyper   r   )r9   r;   )r   r   r7   r   r=   r   r   )r9   r   )r   r   )	r   r   r   r    nanr   r(   r)   assert_series_equal)r+   s1s2resexpr3   r3   r4   test_concat_empty_series0   s,   z(TestEmptyConcat.test_concat_empty_seriestzNUTCvaluesr6   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   dttz_localizer    r<   r   pdNaTlenr   r(   r)   )r+   rF   rH   firstr=   secondr1   r2   r3   r3   r4   !test_concat_empty_series_timelikeM   s   z1TestEmptyConcat.test_concat_empty_series_timelikezleft,right,expectedm8[ns]rI   )categoryrS   rS   )rS   objectrT   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 s1w   Y  |j|ks=J d S )Nzconcatenating bool-dtype)matchr>   )	r    bool_object_FutureWarningr(   assert_produces_warningr   r   r=   )r+   leftrightr1   warnr2   r3   r3   r4   test_concat_empty_series_dtypes_   s   z/TestEmptyConcat.test_concat_empty_series_dtypesr=   )r<   int8uint8boolrR   rI   c                 C   sR   t |}tt|dg}|j|ksJ tt|dt|dg}|j|ks'J d S )Nr>   )r    r=   r   r   )r+   r=   r2   r3   r3   r4   0test_concat_empty_series_dtypes_match_roundtripsx   s
   
z@TestEmptyConcat.test_concat_empty_series_dtypes_match_roundtrips)r<   r^   r_   rR   rI   dtype2c                    st   ||krd S dd dd   fdd}t |}t |}|||}tt|dt|dgj}|j|ks8J d S )Nc                 S   s`   | j |j h}t|h d s| j dks|j dkrdS t|ddh s.| j dks,|j dkr.dS d S )N>   r   iurc   rd   r   kindrN   r=   rb   typsr3   r3   r4   int_result_type   s   zSTestEmptyConcat.test_concat_empty_series_dtypes_roundtrips.<locals>.int_result_typec                 S   s8   | j |j h}t|h d s| j dks|j dkrdS d S )N>   frc   rd   rj   re   rg   r3   r3   r4   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   r3   )r=   rb   r2   rk   ri   r3   r4   get_result_type   s   

zSTestEmptyConcat.test_concat_empty_series_dtypes_roundtrips.<locals>.get_result_typer>   )r    r=   r   r   rf   )r+   r=   rb   rm   r1   r2   r3   rl   r4   *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sJ d S )NrI   r>   )r   r   r    rV   int64r=   rW   r+   r3   r3   r4   &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 )NrS   r>   r<   )r   r   r    arrayr=   rp   r3   r3   r4   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sJ t tdddtddg}ttj}|j|ks5J t tdddtddg}td}|j|ksPJ d S )Nr<   r>   SparsezSparse[float64]rT   )r   r   r&   r=   rL   SparseDtyper    r<   )r+   r2   r1   r3   r3   r4   &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   r6   )RowEmptyCol	NumberColr   r   r   )	r   r    r?   r   r   r&   rT   r(   r)   )r+   df_1df_2r2   r1   r3   r3   r4   !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s5J |d jtjks?J |d jtjksIJ t||tjg}|d jtj	ks]J |d jtjksgJ |d jtjksqJ d S )Nabcr   r   r   r   )
r   r#   r&   r    rV   int32r<   r   r=   rW   )r+   r,   r2   r3   r3   r4   "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|| q!d S )
Nr   r   r7   r   ro   )r   r=   innerouter)r   joinr   r   r(   r)   )r+   df_emptydf_adf_expectedhowr1   r2   r3   r3   r4   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   r7   r   r   )datar   r8   r	   )r   r   dtypesr(   r@   )r+   df1df2r2   r1   r3   r3   r4   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   r2   r1   df3df4r3   r3   r4   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s+J |d jtjks5J d S )Nr6   r   )r   r   r   r   r   )r   r   r=   r    ro   rW   )r+   r   r   r2   r3   r3   r4   ,test_concat_empty_dataframe_different_dtypes  s
   z<TestEmptyConcat.test_concat_empty_dataframe_different_dtypes)__name__
__module____qualname__r5   rE   pytestmarkparametrizerQ   r    rV   r~   float32rW   ro   r]   ra   rn   rq   rs   rv   r|   r   r   r   r   r   r3   r3   r3   r4   r      sL     
	
	)		
r   )numpyr    r   pandasrL   r   r   r   r   r   pandas._testing_testingr(   r   r3   r3   r3   r4   <module>   s    