U
    sVc'                     @   sd   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	m
Z
 d dlmZ G dd dZG dd dZdS )    N)	DataFrameDatetimeIndexIndexSeries	Timestamp
date_rangec                   @   sD   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	dS )TestSeriesAppendc                 C   s.   |d d  |dd  }|j|jks*td S )N   )_appendnameAssertionError)selfdatetime_seriesresult r   K/tmp/pip-unpacked-wheel-xj8nt62q/pandas/tests/series/methods/test_append.pytest_append_preserve_name   s    z*TestSeriesAppend.test_append_preserve_namec              	   C   s   | |}| D ]H\}}||jkr6||| ksZtq||jkrR||| ksZtqtdqd}tjt|d |j |dd W 5 Q R X d S )Nzorphaned index! Indexes have overlapping values:matchTZverify_integrity)r
   itemsindexr   pytestraises
ValueError)r   r   Zstring_seriesZobject_seriesZappended_seriesidxvaluemsgr   r   r   test_append   s    



zTestSeriesAppend.test_appendc                 C   sH   |d d |dd |dd  g}|d  |dd  }t|| d S )Nr	   
   r      )r
   tmassert_series_equal)r   r   piecesr   r   r   r   test_append_many#   s    "z!TestSeriesAppend.test_append_manyc              	   C   s  t dddg}t dddg}t ddddddgddddddgd}t||| tt||g| t ddddddg}tj|j|d	d
|d	d tjtj||gd	d
|d	d d}tjt|d |j|d	d W 5 Q R X tjt|d tj||gd	d W 5 Q R X d S )Nr!            r	      r   r   T)Zignore_index)Zcheck_index_typer   r   r   )	r   r"   r#   r
   pdconcatr   r   r   )r   s1s2expr   r   r   r   test_append_duplicates)   s*    $    z'TestSeriesAppend.test_append_duplicatesc                 C   sB   t dddg}||g}||f}||}||}t|| d S )Nr!   r&   r'   )r   r
   r"   r#   )r   sZ
list_inputZtuple_inputexpectedr   r   r   r   test_append_tuples@   s    

z#TestSeriesAppend.test_append_tuplesc              	   C   sl   t ddgddgd}d}tjt|d |j| W 5 Q R X tjt|d |j|g W 5 Q R X d S )Nr!   r&   r'   r(   )ABzCto_append should be a Series or list/tuple of Series, got DataFramer   )r   r   r   	TypeErrorr4   r
   )r   dfr   r   r   r   test_append_dataframe_raisesK   s    z-TestSeriesAppend.test_append_dataframe_raisesc              	   C   s4   t t  tddgtddg W 5 Q R X d S )Nr!   r&   r'   r(   )r"   Zassert_produces_warningFutureWarningr   append)r   r   r   r   !test_append_raises_future_warningU   s    z2TestSeriesAppend.test_append_raises_future_warningN)
__name__
__module____qualname__r   r   r%   r0   r3   r8   r;   r   r   r   r   r      s   
r   c                   @   sD   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	dS )!TestSeriesAppendWithDatetimeIndexc           
      C   s  t dddd}ttjt||}ttjt|d|d}||}||}tt	|j
d}t|j| t|j| ||}t|| |||g}tt	|j
d}t|| | }| }	d	|_d
|	_||jd	kst||	jd kstd S )N5/8/2012 1:45r    5Tperiodsfreqr(   r*   r&   r'   Zfoobar)r   r   nprandomrandnlenr   r
   r   Ztilevaluesr"   assert_index_equalr   r:   copyr   r   )
r   rngtsr7   r   	result_dfZex_indexappendedrng1rng2r   r   r   r   \   s&    


z-TestSeriesAppendWithDatetimeIndex.test_appendc                 C   s   t ddddd}t ddddd}t ddddd}ttjt||}ttjt|d|d	}ttjt||}ttjt|d|d	}||}||}	t	|j
| t	|	j
| ||}
t	|
| d S )
Nr@   r    rA   
US/EasternrC   rD   tz5/8/2012 2:35   r(   r*   r   r   rF   rG   rH   rI   r   r
   r"   rK   r   r:   r   rM   rR   rng3rN   r7   ts2df2r   rO   rP   r   r   r   test_append_tzw   s    


z0TestSeriesAppendWithDatetimeIndex.test_append_tzc                 C   s   ddl m} tddd|dd}tddd|dd}tdd	d|dd}ttjt||}ttjt|d
|d}ttjt||}ttjt|d
|d}|	|}	|	|}
t
|	j| t
|
j| ||}t
|| d S )Nr   )timezoner@   r    rA   rS   rT   rV   rW   r(   r*   )Zpytzr^   r   r   rF   rG   rH   rI   r   r
   r"   rK   r   r:   )r   r^   rM   rR   rZ   rN   r7   r[   r\   r   rO   rP   r   r   r   test_append_tz_explicit_pytz   s:             


z>TestSeriesAppendWithDatetimeIndex.test_append_tz_explicit_pytzc                 C   s   t ddddd}t ddddd}t ddddd}ttjt||}ttjt|d|d	}ttjt||}ttjt|d|d	}||}||}	t	|j
| t	|	j
| ||}
t	|
| d S )
Nr@   r    rA   zdateutil/US/EasternrT   rV   rW   r(   r*   rX   rY   r   r   r   test_append_tz_dateutil   s8             


z9TestSeriesAppendWithDatetimeIndex.test_append_tz_dateutilc           	      C   s  t ddddd}t ddddd}tdg|d}tdg|d}||}td	d
gddd}tddg|d}t|| |jj|jkstt ddddd}t ddddd}tdg|d}tdg|d}||}td	d
gddd}tddg|d}t|| |j}||jjkstt ddddd}t ddddd}tdg|d}tdg|d}||}t	t
dddt
dddg}tddg|d}t|| d S )N1/1/2011 01:00r!   HrS   rT   1/1/2011 02:00r*   r&   z2011-01-01 01:00z2011-01-01 02:00)rU   rD   UTCz
US/CentralrU   )r   r   r
   r   r"   r#   r   rU   r   r   r   )	r   rQ   rR   ser1ser2	ts_result	exp_indexr/   utcr   r   r   test_series_append_aware   sN    
  
  


z:TestSeriesAppendWithDatetimeIndex.test_series_append_awarec                 C   s   t dddd}t ddddd}ttjt||d}ttjt||d}||}|jt	
|jt	}|j|stt dddd}td	}ttjt||d}ttjt||d}||}|jt	
|j}|j|std S )
Nra   r!   rb   rB   rc   rS   rT   r*   d   )r   r   rF   rG   rH   rI   r
   r   Zastypeobjectr:   equalsr   range)r   rQ   rR   rf   rg   rh   r2   r   r   r   test_series_append_aware_naive   s    

z@TestSeriesAppendWithDatetimeIndex.test_series_append_aware_naivec                 C   s   t ddddd}t ddddd}tdddg|d	}td
ddg|d	}||}tddddddgdd}tdddd
ddg|d	}t|| |jj|jkstd S )Nz1/1/2016 01:00r'   rb   rS   rT   z8/1/2016 01:00r!   r&   r*   r          z2016-01-01 01:00z2016-01-01 02:00z2016-01-01 03:00z2016-08-01 01:00z2016-08-01 02:00z2016-08-01 03:00re   )	r   r   r
   r   r"   r#   r   rU   r   )r   rQ   rR   rf   rg   rh   ri   r/   r   r   r   test_series_append_dst   s$    
z8TestSeriesAppendWithDatetimeIndex.test_series_append_dstN)
r<   r=   r>   r   r]   r_   r`   rk   rp   rs   r   r   r   r   r?   [   s   ,r?   )ZnumpyrF   r   Zpandasr+   r   r   r   r   r   r   Zpandas._testingZ_testingr"   r   r?   r   r   r   r   <module>   s    K