3
Udb1                 @   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)IndexNaTPeriodIndexSeriesc               @   sJ  e Zd Zejjdd5d6d7d8d9d:d;d<d=g	dd Zdd Zejjdddd
dddddgdd Zejjdddd
dddddgejjdd e	j
d!gd" d#gd$ fe	jd%d"fd&e	j
d#gd$ d!gd" fe	jd$d'fd!e	j
d#gd$ d!gd$ d#gd$ fe	jd$d"fgd(d) Zd*d+ Zd,d- Zd.d/ Zejjdddgd0d1 Zd2d3 Zd4S )>TestPeriodIndexOpszfreq,expectedAyearQquarterMmonthDdayHhourTminuteSsecondLmillisecondUmicrosecondc             C   s"   t jdd|d}|j|kstd S )Nz
2013-04-01   )startperiodsfreq)pdperiod_range
resolutionAssertionError)selfr   expectedidx r$   X/var/www/html/virt/lib64/python3.6/site-packages/pandas/tests/indexes/period/test_ops.pytest_resolution
   s    z"TestPeriodIndexOps.test_resolutionc             C   sr  t jdddd}ttj|jtdt|d dd}tddd	d
ddddddg
dd}ttddd|dd}x$|t|gD ]}t	j
|j | qxW t jdddd}t	j|j | tdddddtgdd}tddgdd}tddg|d}x$|t|gD ]}t	j
|j | qW tddtgdd}tdddg|d}x*|t|gD ]}t	j
|jdd| q@W t	j|j | d S )Nz2011-01-01 09:00r   
   )r   r      )r   z2011-01-01 18:00z2011-01-01 17:00z2011-01-01 16:00z2011-01-01 15:00z2011-01-01 14:00z2011-01-01 13:00z2011-01-01 12:00z2011-01-01 11:00z2011-01-01 10:00r   Zint64)indexdtypez2013-01-01 09:00z2013-01-01 08:00      )r)   F)Zdropna)r   r   r   nprepeat_valuesrangelenr   tmassert_series_equalZvalue_countsassert_index_equaluniquer   )r!   r#   Zexp_idxr"   objr$   r$   r%   test_value_counts_unique   sH    $z+TestPeriodIndexOps.test_value_counts_uniquer   Z3DZ2HZ2TZ3Sc             C   sh   t jdd|dd}|j }tj|| |j|jks6t|j|}|j }tj|| |j|jksdtd S )Nz
2011-01-01r'   r#   )r   r   name)r   r   drop_duplicatesr3   r5   r   r    append)r!   r   r#   resultZidx_dupr$   r$   r%   test_drop_duplicates_metadataS   s    
z0TestPeriodIndexOps.test_drop_duplicates_metadatazkeep, expected, indexfirstFr'   T   r   last   c             C   s   t jdd|dd}|j|d d }tj|j|d| ||  }|j|d}tj|| t|j|d}tj	|t||d d S )Nz
2011-01-01r'   r#   )r   r   r9   r?   )keep)r)   )
r   r   r;   r3   assert_numpy_array_equalZ
duplicatedr:   r5   r   r4   )r!   r   rB   r"   r)   r#   r<   r$   r$   r%   test_drop_duplicates`   s    
z'TestPeriodIndexOps.test_drop_duplicatesc             C   s*  dd }t dddgddd}td	d
dgdd} x||gD ]}|j }tj|| ||| |jdd}tj||d d d  |||d d d  |jdd\}}tj|| tj|tjdddgdd ||| |jddd\}}tj||d d d  tj|tjdddgdd |||d d d   q:W t dddddgddd}t dddddgddd}td	ddd
d	gdd}td	d	d
ddgdd}x||f||fgD ]\}}	|j }tj||	 ||| |jdd}tj||	d d d!  ||| |jdd\}}tj||	 tjdddddg}
tj||
dd ||| |jddd\}}tj||	d d d"  tjdddddg}
tj||
dd ||| qW t ddddgddd}|j }t ddddgddd}	tj||	 |jdkst	|jdd}t ddddgddd}	tj||	 |jdks&t	d S )#Nc             S   s   t | tr| j|jkstd S )N)
isinstancer   r   r    )r)   Zexpected_indexr$   r$   r%   _check_freq|   s    
z9TestPeriodIndexOps.test_order_compat.<locals>._check_freqZ2011Z2012Z2013pidxr   )r9   r   i  i  i  r#   )r9   F)	ascendingr(   T)return_indexerr   r,   )check_dtype)rI   rH   Z2015i     r+   r   r   r-   r-   r-   r-   r-   r-   )
r   r   sort_valuesr3   r5   rC   r.   arrayr   r    )r!   rF   rG   Ziidxr#   orderedindexerZ	pexpectedZ	iexpectedr"   expr<   r$   r$   r%   test_order_compat{   sd    




z$TestPeriodIndexOps.test_order_compatc             C   s  xHdD ]>}t dddg|dd}|j }tj|| |j|jksFt|jd	d
}|d d d }tj|| |j|jks|t|j|kst|jdd\}}tj|| tj|tjdddgd	d |j|jkst|j|kst|jdd	d\}}|d d d }tj|| tj|tjdddgd	d |j|jks:t|j|kstqW t dddddgddd}t dddddgddd}t dddddgddd}t dddddgddd}	t t	dddt	gddd}
t t	t	dddgddd}x(||f||	f|
|fgD ]\}}|j }tj|| |jdks$t|jd	d
}tj||d d d  |jdksVt|jdd\}}tj|| tjdddddg}tj||d	d |jdkst|jdd	d\}}tj||d d d  tjdddddg}tj||d	d |jdkstqW d S )Nr   2D4Dz
2011-01-01z
2011-01-02z
2011-01-03r#   )r   r9   F)rH   r(   T)rI   r   r,   )rJ   )rI   rH   z
2011-01-05idx1idx2idx3rK   r+   )r   rR   rS   r-   r-   r-   r-   )
r   rL   r3   r5   r   r    rC   r.   rM   r   )r!   r   r#   rN   r"   rO   rT   Zexp1rU   Zexp2rV   Zexp3rP   r$   r$   r%   
test_order   sv    $zTestPeriodIndexOps.test_orderc             C   s   t jjtkstt jg ddjtks(tt jddgdd}|jsDttj|jt	j
ddg |jdksjttj|jt	j
g t	jd t jddgdd}|jsttj|jt	j
dd	g |jd	ksttj|jt	j
d
gt	jd d S )Nr   )r   z
2011-01-01z
2011-01-02r   F)r*   r   Tr(   )r   r   Z	_na_valuer   r    Z_can_hold_nar3   rC   Z_isnanr.   rM   ZhasnansZ	_nan_idxsZintp)r!   r#   r$   r$   r%   test_nat  s    

zTestPeriodIndexOps.test_natc             C   s  t jdddg|d}|j|s"t|j|j s4t|j|jtsHt|jtj|s\t|jtj|jtsvt|jt| st|jt j| stt jdddgdd}|j| st|j|j  st|j|jt st|jtj| st|jt| st|jt j| s4tt jj	|j
j	|j
jdd}tj|j|j |j| srt|j|j  st|j|jt st|jtj| st|jt| st|jt j| std S )Nz
2011-01-01z
2011-01-02r   )r   r   )r   r   equalsr    copyZastypeobjectlistr   Z_simple_newr0   Zasi8r3   rC   )r!   r   r#   rU   rV   r$   r$   r%   test_equals%  s0    zTestPeriodIndexOps.test_equalsc             C   sV   t jdddd}tjd  |j W d Q R X tjtdd t jj	 |_W d Q R X d S )NZ2018Q1rK   r	   )r   r   zcan't set attribute)match)
r   r   r3   Zassert_produces_warningr   pytestZraisesAttributeErroroffsetsZDay)r!   r#   r$   r$   r%   test_freq_setter_deprecatedE  s
    z.TestPeriodIndexOps.test_freq_setter_deprecatedN)r   r   )r	   r
   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )__name__
__module____qualname__r_   markZparametrizer&   r8   r=   r.   ZconcatenateZarangerD   rQ   rW   rX   r]   rb   r$   r$   r$   r%   r   	   s4   7&&& GQ r   )Znumpyr.   r_   Zpandasr   r   r   r   r   Zpandas._testingZ_testingr3   r   r$   r$   r$   r%   <module>   s
   
