3
Udq                 @   s\   d dl mZ 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jZG dd dZdS )    )	timedeltaN)Categorical	DataFrameNaTPeriodSeries	Timedelta	Timestampc               @   s  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zej	j
dddddddgfdddddddddgfddidddejejgfdddddddejgfeddejdejejgfeddgddddejejgfedddddddejgfeddgddgddejdddgfgdd Zej	j
dedddddgdddddgfedddddgdddddgfeedddddgdddddgddddddgfgdd Zdd Zdd Zd d! Zd"S )#TestSeriesFillNAc             C   sL   t tjtdgddgd}|jtd}t tdddgd}tj|| d S )Nz1 daysAB)index   )r   npnanr   fillnar   tmassert_series_equal)selfserresultexpected r   [/var/www/html/virt/lib64/python3.6/site-packages/pandas/tests/series/methods/test_fillna.pytest_fillna_pytimedelta   s    z(TestSeriesFillNA.test_fillna_pytimedeltac             C   sh   t tdddtdddg}|jtddd}t tdddtdddg}tj|| |jdksdtd S )Nz2011-01M)freqr   z2012-01z	Period[M])r   r   r   r   r   ZdtypeAssertionError)r   r   resexpr   r   r   test_fillna_period   s
    z#TestSeriesFillNA.test_fillna_periodc             C   s   t tdtdtdtdg}tj|d< |jtd}t tdtdtdtdg}tj|| |jt}|}tj|| d S )NZ20130101Z20130102z20130103 9:01:01   Z20130104)r   r	   r   r   r   r   r   r   )r   r   r   r   r   r   r   test_fillna_dt64_timestamp   s     

z+TestSeriesFillNA.test_fillna_dt64_timestampc             C   sV   t tdttdg}tjdd}|j|}t tdtdtdg}tj|| d S )Nz
2010-01-01z
2000-01-01z
1975-04-05ms)r   r	   r   r   Z
datetime64r   r   r   )r   r   valr   r   r   r   r   test_fillna_dt64_non_nao7   s    
z)TestSeriesFillNA.test_fillna_dt64_non_naoc             C   sb   t tjdtjdtjgdddddg}|j }|jdd	d
}|d ksFt|jdd}tj|| d S )Ng      ?g      @zabcdr   T)valueZinplace)r+   )r   r   r   copyr   r   r   r   )r   xyZreturn_valuer   r   r   r   test_fillna_numeric_inplaceB   s    $z,TestSeriesFillNA.test_fillna_numeric_inplacezfill_value, expected_outputr'   r(   )r         r   )r   r0   )r   r0   r1   c             C   sV   dt jdt jt jg}tt|ddgd}tt|ddgd}|j|}tj|| d S )Nr'   r(   )
categories)r   r   r   r   r   r   r   )r   
fill_valueexpected_outputdatar   r   r   r   r   r   test_fillna_categoricalO   s
    
z(TestSeriesFillNA.test_fillna_categoricalr)   r*   e)r2   c             C   sb   dt jdt jt jg}tt|dddddgd}tt|dddddgd}|j|}tj|| d S )Nr'   r(   r)   r*   r7   )r2   )r   r   r   r   r   r   r   )r   r3   r4   r5   r   r   r   r   r   r   +test_fillna_categorical_with_new_categoriese   s
    
z<TestSeriesFillNA.test_fillna_categorical_with_new_categoriesc          /   C   s,  dt jdt jt jg}tt|ddgd}tjtdd |jd W d Q R X tjtdd |jtd W d Q R X tjtdd |jddd W d Q R X d}tjt|d |jddg W d Q R X d	}tjt|d |jd W d Q R X d
}tjt|d |jt	dgdgd W d Q R X d S )Nr'   r(   )r2   z fill value must be in categories)matchr*   )r   r0   zC"value" parameter must be a scalar or dict, but you passed a "list"zD"value" parameter must be a scalar or dict, but you passed a "tuple"zP"value" parameter must be a scalar, dict or Series, but you passed a "DataFrame")r'   r(   )
r   r   r   r   pytestraises
ValueErrorr   	TypeErrorr   )r   r5   r   msgr   r   r   test_fillna_categorical_raises|   s"    z/TestSeriesFillNA.test_fillna_categorical_raisesc             C   sl   t tjjddd}d}tjt|d |jddg W d Q R X d}tjt|d |jd	 W d Q R X d S )
Nd   2   zC"value" parameter must be a scalar or dict, but you passed a "list")r9   r   r!   zD"value" parameter must be a scalar or dict, but you passed a "tuple"i)r   r!   )r   r   randomrandintr:   r;   r=   r   )r   r   r>   r   r   r   test_fillna_listlike_invalid   s    z-TestSeriesFillNA.test_fillna_listlike_invalidc             C   s^   t dddd g}d}xDdD ]<}x6dD ].}tjt|d |jd||d W d Q R X q$W qW d S )Nr   r!   r0   z`Cannot specify both 'value' and 'method'\.|Limit must be greater than 0|Limit must be an integerr         ?       @backfillbfillpadffill)r9   )limitmethod)rM   r   rE   rF   )rG   rH   rI   rJ   N)r   r:   r;   r<   r   )r   r   r>   rK   rL   r   r   r   $test_fillna_method_and_limit_invalid   s    

z5TestSeriesFillNA.test_fillna_method_and_limit_invalidN)__name__
__module____qualname__r   r    r"   r%   r/   r:   markZparametrizer   r   r   r6   r   r8   r?   rD   rN   r   r   r   r   r
   
   s4   	0
r
   )datetimer   Znumpyr   r:   Zpandasr   r   r   r   r   r   r	   Zpandas._testingZ_testingr   r
   r   r   r   r   <module>   s
   $
