U
    sVc?                     @   sR   d dl 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 G dd dZdS )    N)	DataFrameDatetimeIndexIndex
MultiIndexSeriesconcat
date_rangec                   @   sx   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	e
jdeddfdgdd Zdd Zdd ZdS )TestSeriesConcatc                 C   s   t  }d|_|d d |dd |dd  g}t|}t || |j|jksTtt|dddgd}| }ttj	|j
jdd	|_
tdddgd
d |D tt|g}tdddg|j
g|d}||_
t || d S )Nfoo      r         )keyszM8[ns]Zdtypec                 S   s   g | ]}t |qS  )len).0xr   r   K/tmp/pip-unpacked-wheel-xj8nt62q/pandas/tests/reshape/concat/test_series.py
<listcomp>!   s     z7TestSeriesConcat.test_concat_series.<locals>.<listcomp>)levelscodes)tmmakeTimeSeriesnamer   assert_series_equalAssertionErrorcopyr   nparrayindexvaluesrepeatZaranger   r   )selftspiecesresultexpectedZ	exp_codesZ	exp_indexr   r   r   test_concat_series   s    "*z#TestSeriesConcat.test_concat_seriesc                 C   s6   t dg}t g td}|}t||g}t|| d S )Nr   r   )r   objectr   r   r   )r$   s1s2r(   r'   r   r   r   1test_concat_empty_and_non_empty_series_regression&   s
    
zBTestSeriesConcat.test_concat_empty_and_non_empty_series_regressionc                 C   s   t  }|d d |dd  |dd g}t|dd}t|j}t || t|dddgdd}t|dddgd	j}t || d S )
Nr   r   axisABC)r   r0   r!   )r   r   r   r   Tassert_frame_equal)r$   r%   r&   r'   r(   r   r   r   test_concat_series_axis1/   s    "
z)TestSeriesConcat.test_concat_series_axis1c                 C   s   t tjddd}t tjddd}t||gdd}t||d}t|| d |_t||gdd}t	|j
tddgd	d
 d S )Nr   r1   r   r2   r   r/   r1   r2   r   r*   r   )r   r   randomrandnr   r   r   r6   r   assert_index_equalcolumnsr   r$   sr,   r'   r(   r   r   r   /test_concat_series_axis1_preserves_series_names<   s    z@TestSeriesConcat.test_concat_series_axis1_preserves_series_namesc                 C   s   t tjddddgdd}t tjdddddgd	d}t||gd
|d}t||dddddgd}|rr| }t|| d S )N   cabr1   r!   r      dr2   r   )r0   sortr9   r4   )	r   r   r:   r;   r   r   Z
sort_indexr   r6   )r$   rH   r?   r,   r'   r(   r   r   r   %test_concat_series_axis1_with_reindexI   s    z6TestSeriesConcat.test_concat_series_axis1_with_reindexc                 C   s   t dddg}t dddg}t||gdddgd	gd
}tddgddgddggtddgd	dd}t|| t||gdddgd	dgd
}tddgddgddggtjddgd	dgdd}t|| d S )Nr   r   rA   rF   r      rC   rD   r1   )r0   r   namesr8   r=   )rC   r   )rD   r   r2   )rK   )r   r   r   r   r   r6   r   from_tuplesr>   r   r   r   &test_concat_series_axis1_names_appliedS   s     z7TestSeriesConcat.test_concat_series_axis1_names_appliedc                 C   s~   t dddddd }ttjt||dd}ttjt||dd}t||gd	d
d}ttd}t	j
|j|d
d d S )Nz01-Jan-2013z01-Jan-2014ZMS)freqr   valuerE   r   Tr0   Zignore_indexr   )exact)r   r   r   r:   r;   r   r   r   ranger   r<   r=   )r$   datesr+   r,   r'   r(   r   r   r   0test_concat_series_axis1_same_names_ignore_indexd   s    zATestSeriesConcat.test_concat_series_axis1_same_names_ignore_indexzs1name,s2name   +   r   )rW   rX   c                 C   sR   t ddd|d}t ddd|d}t||g}t ddddd}t|| d S )	Nr   r   )rC   rD   r8   r   rJ   )rB   rG   )rC   rD   rB   rG   )r   r   r   r   )r$   Zs1nameZs2namer+   r,   r'   r(   r   r   r   &test_concat_series_name_npscalar_tuplen   s
    z7TestSeriesConcat.test_concat_series_name_npscalar_tuplec                 C   s   t ddgdd}t ddg}t ddg}t|||gdd}tddgddgddgddd	dgd
}t|| t|||gddddgd}tddgddgddgddddgd
}t|| t|||gddd}tddgddgddgd}t|| d S )Nr   r   r
   r8   rF   r   r/   )r
   r   r   r   rL   redblueyellow)r0   r   )r[   r\   r]   TrR   )r   r   r   )r   r   r   r   r6   )r$   r
   barZbazr'   r(   r   r   r   (test_concat_series_partial_columns_namesy   s$     z9TestSeriesConcat.test_concat_series_partial_columns_namesc                 C   s0   |dg}t |jd d d g}t|| d S )Nd   rP   )r   Zilocr   Zassert_equal)r$   Zframe_or_seriesobjr'   r   r   r   &test_concat_series_length_one_reversed   s    
z7TestSeriesConcat.test_concat_series_length_one_reversedN)__name__
__module____qualname__r)   r-   r7   r@   rI   rN   rV   pytestmarkZparametrizer   Zint64rZ   r_   rb   r   r   r   r   r	      s   	

 
r	   )Znumpyr   rf   Zpandasr   r   r   r   r   r   r   Zpandas._testingZ_testingr   r	   r   r   r   r   <module>   s   $	