U
    f/em                     @   s   d dl Zd dlZd dlZd dlmZmZ d dlmZ	 dd Z
ejdddgdd	 Zd
d Zdd Zdd Zejdejejgejdddide igdd Zdd Zdd Zdd ZdS )    N)
MultiIndexSeriesc                  C   sN   t dtjgdd} | d }|  |ks*t|  |ks:t|  |ksJtd S )Nr   zm8[ns]Zdtype)r   pdZNaTmedianAssertionErrorminmax)serexp r   G/tmp/pip-unpacked-wheel-tiezk1ph/pandas/tests/series/test_reductions.pytest_reductions_td64_with_nat   s
    r   skipnaTFc                 C   s>   t g dd}|j| d}t|tjs(t|tdks:td S )Nztimedelta64[ns]r   )r   r   )r   sum
isinstancer   	Timedeltar   )r   r
   resultr   r   r   test_td64_sum_empty   s    r   c               	   C   s   t tjdddd} | d  td7  < | |    }tt| |   jt|  	 }t
|jd |jd s|td}tjt|d	 | |   	  W 5 Q R X | dd
 }tjt|d	 ||  	  W 5 Q R X | dd }||  	  d S )NZ20130101i H)Zperiodsfreqr   z1s 1msi  zoverflow in timedelta operationmatchi'  )r   r   Z
date_ranger   r   ZmeanZTimedeltaIndexZasi8lenr   npZallclosevaluer   pytestraises
ValueError)r
   r   expectedmsgs1s2r   r   r   test_td64_summation_overflow   s    &r#   c                  C   s0   t dddgtdd} |  }t|t r,td S )Ng      ?   index)r   rangeprodr   r   )r
   r   r   r   r   test_prod_numpy16_bug8   s    r)   c               	   C   sX   t dgtdgd} tt | jdd}W 5 Q R X t dgdgd}t|| d S )Ng      $@)   r$   r%   r   )levelr*   )r   r   from_tuplestmZassert_produces_warningFutureWarningr   Zassert_series_equal)objr   r   r   r   r   test_sum_with_level?   s
    r0   funckwargskeepdimsoutc              	   C   sZ   t ddg}t| d }|j}d| d| d}tjt|d ||f|  W 5 Q R X d S )N   r*   r   zthe 'z=' parameter is not supported in the pandas implementation of z\(\)r   )r   list__name__r   r   r   )r2   r1   r
   paramnamer    r   r   r   )test_validate_any_all_out_keepdims_raisesH   s    r:   c               	   C   s<   t ddg} d}tjt|d tj| dd W 5 Q R X d S )Nr5   r*   zPthe 'initial' parameter is not supported in the pandas implementation of sum\(\)r   
   )initialr   r   r   r   r   r   r
   r    r   r   r   test_validate_sum_initialX   s
    r?   c               	   C   s:   t ddg} d}tjt|d | jdd W 5 Q R X d S )Nr5   r*   z[the 'overwrite_input' parameter is not supported in the pandas implementation of median\(\)r   T)Zoverwrite_input)r   r   r   r   r   r>   r   r   r   test_validate_median_initialc   s
    r@   c               	   C   s<   t ddg} d}tjt|d tj| dd W 5 Q R X d S )Nr5   r*   zQthe 'keepdims' parameter is not supported in the pandas implementation of sum\(\)r   T)r3   r=   r>   r   r   r   test_validate_stat_keepdimsp   s
    rA   )Znumpyr   r   Zpandasr   r   r   Zpandas._testingZ_testingr-   r   markZparametrizer   r#   r)   r0   anyallobjectr:   r?   r@   rA   r   r   r   r   <module>   s    	
		