3
Ud                 @   sL   d dl Zd dlZd dlZd dlmZmZmZmZ d dl	j
ZG dd dZdS )    N)	DataFrameSeries	Timestamp
date_rangec               @   s~  e Zd Zdd Zejjdddgdd Zejjdddgdd	 Zd
d Z	dd Z
dd Zdd Zdd Zejjdeddd Zdd Zdd Zdd Zdd Zejjd d!ejejd!d"d!ejejejd!gejd"ejejd3d"ejejgejejd$ejd%d&d'd(d)d*d+gd,d-d.fd"ejejejd$d!d"ejd"ejejejd!gejejd$ejejd$d,d-d.fgd/d0 Zd1d2 ZdS )4TestDataFrameDiffc             C   s  |j d}tj|d |d |d jd  d}|d }t||g}td|ij  }|jd dksft|jd}|j d}tj|d |d |d jd  t	jt	jdgt	jdgd}|j
d	d
d |j dd}	t	jtjt	jdt	jddjd}
tj|	|
 d S )N   Al     _sZfloat32      )yzr   x)axis)r   r   r   float64)difftmZassert_series_equalshiftr   r   r	   AssertionErrorastypepdinsertnpnanassert_frame_equal)selfdatetime_frameZthe_diffabr	   rstfdfresultexpected r$   X/var/www/html/virt/lib64/python3.6/site-packages/pandas/tests/frame/methods/test_diff.py	test_diff
   s$    


" zTestDataFrameDiff.test_difftzNUTCc             C   sd   t tddd|dtddd|dd}|jdd}t tjdd	gtjdd	gd}tj|| d S )
N2010Dr
   )freqperiodsr'   )r   r   r   )r   NaTz1 days)r   r   r   r   TimedeltaIndexr   r   )r   r'   r!   r"   r#   r$   r$   r%   test_diff_datetime_axis0'   s    z*TestDataFrameDiff.test_diff_datetime_axis0c             C   sd   t tddd|dtddd|dd}|jdd}t tjddgtjd	d	gd}tj|| d S )
Nr)   r*   r
   )r+   r,   r'   )r   r   r   )r   r-   z0 days)r   r   r   r   r.   r   r   )r   r'   r!   r"   r#   r$   r$   r%   test_diff_datetime_axis1:   s    z*TestDataFrameDiff.test_diff_datetime_axis1c             C   s^   t ttdtdgddgd}|j }t tjtjgtjddggdd	gd
}t	j
|| d S )Nz20130101 9:01z20130101 9:02g      ?g       @)timevaluez00:01:00r   r1   r2   )columns)r   dictr   r   r   r-   r   r   Z	Timedeltar   r   )r   r!   resexpr$   r$   r%   test_diff_timedeltaM   s    $z%TestDataFrameDiff.test_diff_timedeltac             C   sN   t tjjdd}tjdddddgtd|d< |j }|d jtjksJt	d S )	N   r   r   r
      )dtyper   r   )
r   r   randomrandnarrayobjectr   r:   r   r   )r   r!   r"   r$   r$   r%   test_diff_mixed_dtype\   s    z'TestDataFrameDiff.test_diff_mixed_dtypec             C   s(   |j d}||jd }tj|| d S )Nr   r@   )r   r   r   r   )r   r   r   xpr$   r$   r%   test_diff_neg_nc   s    
z!TestDataFrameDiff.test_diff_neg_nc             C   s$   |j d}|j d}tj|| d S )Ng      ?r   )r   r   r   )r   r   r   rA   r$   r$   r%   test_diff_float_nh   s    

z#TestDataFrameDiff.test_diff_float_nc             C   sh   t ddgddgg}tj|jddt tjdgtjdgg tj|jddt tjtjgddgg d S )Ng      ?g       @g      @g      @r   )r   r   )r   r   r   r   r   r   )r   r!   r$   r$   r%   test_diff_axism   s
    $z TestDataFrameDiff.test_diff_axisz5GH#32995 needs to operate column-wise or do inference)reasonZraisesc             C   sP   t jdddjd}t jd|i}|jddd}|t j jt}tj	|| d S )Nz
2016-01-01r   )r,   r*   r   r   )r   )
r   r   Z	to_periodr   r   r-   r   r>   r   r   )r   pir!   r"   r#   r$   r$   r%   test_diff_periodw   s
    z"TestDataFrameDiff.test_diff_periodc             C   sd   t jtddtjdtjd d}t jtjtjtjg|d d d}|jdd}tj	|| d S )Nr   r
   )r:   )r   BrH   r   )r   )
r   r   ranger   aranger   r   r   r   r   )r   r!   r#   r"   r$   r$   r%   test_diff_axis1_mixed_dtypes   s    $$z.TestDataFrameDiff.test_diff_axis1_mixed_dtypesc             C   sL   t jtddtjdtjd d}|tj }|jddd}tj	|| d S )Nr   r
   )r:   )r   rH   r   )r   r,   )
r   r   rI   r   rJ   r   r   r   r   r   )r   r!   r#   r"   r$   r$   r%   *test_diff_axis1_mixed_dtypes_large_periods   s    $
z<TestDataFrameDiff.test_diff_axis1_mixed_dtypes_large_periodsc             C   sd   t jtddtjdtjd d}t jd
|d  |d tj d}|jddd	}tj	|| d S )Nr   r
   )r:   )r   rH   g      ?r   rH   r   )r   r,   g      r@   )
r   r   rI   r   rJ   r   r   r   r   r   )r   r!   r#   r"   r$   r$   r%   -test_diff_axis1_mixed_dtypes_negative_periods   s    $"z?TestDataFrameDiff.test_diff_axis1_mixed_dtypes_negative_periodsc             C   sX   t jddgddggdd}|j }t jtjtjgddggt jddd}tj|| d S )	Nr   r   zSparse[int])r:   g      ?floatg        g      )r   r   r   r   r   ZSparseDtyper   r   )r   Z	sparse_dfr"   r#   r$   r$   r%   test_diff_sparse   s
    "z"TestDataFrameDiff.test_diff_sparsezaxis,expectedr   r   r
      r   r8      	            )r   r   cdInt64)r:   c             C   sn   t jtjddtjdgdtjddtjdgdtjtjdtjddd ddd}|j|d	}tj	|| d S )
Nr   r   r
   rP   rR   )r   r   rV   rW   rX   )r:   )r   )
r   r   r   repeatr   ZtilerJ   r   r   r   )r   r   r#   r!   r"   r$   r$   r%   test_diff_integer_na   s    z&TestDataFrameDiff.test_diff_integer_nac             C   sL   t jjdd}d|j_tj|}|j }tjt j|j }t	j
|| d S )Nr8   r
   F)r   r;   r<   flagsZ	writeabler   r   r   r=   r   r   )r   Zarrr!   r"   r#   r$   r$   r%   test_diff_readonly   s    
z$TestDataFrameDiff.test_diff_readonly)__name__
__module____qualname__r&   pytestmarkZparametrizer/   r0   r7   r?   rB   rC   rD   Zxfailr   rG   rK   rL   rM   rO   r   r   r   r   rY   rZ   r\   r$   r$   r$   r%   r   	   s@   
			r   )Znumpyr   ra   Zpandasr   r   r   r   r   Zpandas._testingZ_testingr   r   r$   r$   r$   r%   <module>   s
   
