U
    -e#                     @   s   d Z ddlZddlZddlZddlm  mZ ddl	Z
ddl	mZmZ ddlmZ ddlmZmZmZ G dd dZG dd dZdS )	zP
Tests for statistical reductions of 2nd moment or higher: var, skew, kurt, ...
    N)	DataFrameSeries)DatetimeArrayPeriodArrayTimedeltaArrayc                	   @   s~   e Zd Zejdeeje	gdd Z
ejdeejegejdddddd	gd
d Zejdeejegdd ZdS )TestDatetimeLikeStatReductionsboxc                 C   s   |}t jdd|d}|dddddd	d
ddddg}|j}||}| t jd|dks\t|jddt jd|dksztt j|d< ||}| t jd|dkst|jddt jkstd S )N
2001-01-01   )periodstz         
   	            r         z
2001-01-06)r   FZskipnaz2001-01-06 07:12:00)pd
date_rangetake_datamean	TimestampAssertionErrorNaT)selfZtz_naive_fixturer   r   dtiZdtarrobj r$   m/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/pandas/tests/reductions/test_stat_reductions.pytest_dt64_mean   s     
z-TestDatetimeLikeStatReductions.test_dt64_meanfreqSHDWBc                 C   s   t jddd}|dddddd	d
ddddg}|j|}||}tjtdd |  W 5 Q R X tjtdd |jdd W 5 Q R X t j	|d< tjtdd |  W 5 Q R X tjtdd |jdd W 5 Q R X d S )Nr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   Z	ambiguousmatchTr   r   )
r   r   r   r   Z	to_periodpytestraises	TypeErrorr   r    )r!   r   r'   r"   Zparrr#   r$   r$   r%   test_period_mean-   s     
z/TestDatetimeLikeStatReductions.test_period_meanc                 C   s   t jddddddddddd	gd
d}|j}||dd}| }t| }||ksXtt j|d< |jddt jksxt|jdd}||dd   kst|d|d d dkstd S )Nr   r   r   ir   r   r   r   r*   )unitF)copyr   Tusg      &@r   )	r   ZTimedeltaIndexr   r   nparrayr   r    round)r!   r   ZtdiZtdarrr#   resultexpectedZresult2r$   r$   r%   test_td64_meanD   s    $
z-TestDatetimeLikeStatReductions.test_td64_meanN)__name__
__module____qualname__r0   markZparametrizer   r   Indexr   r&   r   r3   r   r=   r$   r$   r$   r%   r      s   
r   c                   @   sz   e Zd ZdddZdd Zdd Zdd	 Zd
d Zdd Zdd Z	dd Z
dd Zejdd Zejdd Zdd ZdS )TestSeriesStatReductionsFc              
   C   s  t dd tt|}tj|dd< |dkrptt jddd}d	| d
}tjt	|d || W 5 Q R X t 
||stt ||ddst| }	t||	||	j t||||	j |tj }
|rt||
sttdddd dg}|| dg}|tdd t|dd}tt||t||j |r|tt jddd}||}||}||ks|t|dkrtjt	d d |ttd W 5 Q R X d}tjt|d ||dd W 5 Q R X dt|jkr||dd W 5 Q R X d S )NZuse_bottleneckFr      )maxminr   medianstdz1/1/2001r   r-   zdoes not support reduction ''r.   r   r   r   r   r   l        l      Zint64Zdtypez1/1/2000)sumrF   rE   abcz&No axis named 1 for object type Series)Zaxisnumeric_onlyT)rM   )r   Zoption_contextgetattrr   r8   NaNr   r0   r1   r2   Znotnar   isnaZdropnatmassert_almost_equalvaluesnanisnanextendrangefloatZbdate_rangelist
ValueErrorinspectgetfullargspecargs)r!   nameZ	alternateZstring_series_check_objectscheck_allnafZdsmsgZnonaZallnasitemsresexpr$   r$   r%   _check_stat_op^   sF    


z'TestSeriesStatReductions._check_stat_opc                 C   s&   t  d}| jdtj|dd d S )NseriesrK   F)r`   )rQ   makeStringSeriesrenamerg   r8   rK   r!   string_seriesr$   r$   r%   test_sum   s    z!TestSeriesStatReductions.test_sumc                 C   s"   t  d}| dtj| d S )Nrh   r   )rQ   ri   rj   rg   r8   r   rk   r$   r$   r%   	test_mean   s    z"TestSeriesStatReductions.test_meanc                 C   sR   t  d}| dtj| ttjdtdt	dd}t 
t||  d S )Nrh   rG   r   rJ   )index)rQ   ri   rj   rg   r8   rG   r   onesintrW   rR   )r!   rl   Zint_tsr$   r$   r%   test_median   s    z$TestSeriesStatReductions.test_medianc                 C   s"   t  d}| dtj| d S )Nrh   prod)rQ   ri   rj   rg   r8   rs   rk   r$   r$   r%   	test_prod   s    z"TestSeriesStatReductions.test_prodc                 C   s&   t  d}| jdtj|dd d S )Nrh   rF   Tr_   )rQ   ri   rj   rg   r8   rF   rk   r$   r$   r%   test_min   s    z!TestSeriesStatReductions.test_minc                 C   s&   t  d}| jdtj|dd d S )Nrh   rE   Tru   )rQ   ri   rj   rg   r8   rE   rk   r$   r$   r%   test_max   s    z!TestSeriesStatReductions.test_maxc                 C   s   t  d}t  d}dd }| d|| dd }| d|| |jdd	}tj|jdd	}t || |j	dd	}tj	|jdd	}t || |j
d
g }|j	dd	}t|st|jdd	}t|std S )Nrh   tsc                 S   s   t j| ddS Nr   Zddof)r8   rH   xr$   r$   r%   <lambda>       z7TestSeriesStatReductions.test_var_std.<locals>.<lambda>rH   c                 S   s   t j| ddS ry   )r8   varr{   r$   r$   r%   r}      r~   r   r   rz   r   r   )rQ   ri   rj   makeTimeSeriesrg   rH   r8   rS   rR   r   ilocr   rP   r   r!   rl   Zdatetime_seriesaltr;   r<   rc   r$   r$   r%   test_var_std   s"    z%TestSeriesStatReductions.test_var_stdc                 C   s   t  d}t  d}dd }| d|| |jdd}tj|jddt	t
|j }t || |jdg }|jd	d}t|std S )
Nrh   rx   c                 S   s   t j| ddt t|  S ry   )r8   rH   sqrtlenr{   r$   r$   r%   r}      r~   z3TestSeriesStatReductions.test_sem.<locals>.<lambda>semr   rz   r   r   )rQ   ri   rj   r   rg   r   r8   rH   rS   r   r   rR   r   r   rP   r   r   r$   r$   r%   test_sem   s    z!TestSeriesStatReductions.test_semc                    s   ddl m  t d} fdd}| d|| d}td|d D ]z}tt	|}t
t	||f}||k rt| stt|  stqFd| kst| dk sFtqFd S )	Nr   skewrh   c                    s    | ddS NF)Zbiasr$   r{   r   r$   r%   r}      r~   z4TestSeriesStatReductions.test_skew.<locals>.<lambda>r   r   r   )scipy.statsr   rQ   ri   rj   rg   rW   r   r8   rp   r   rU   r   all)r!   rl   r   min_Nirc   dfr$   r   r%   	test_skew   s    z"TestSeriesStatReductions.test_skewc                    s8   ddl m  t d} fdd}| d|| d S )Nr   kurtosisrh   c                    s    | ddS r   r$   r{   r   r$   r%   r}      r~   z4TestSeriesStatReductions.test_kurt.<locals>.<lambda>kurt)r   r   rQ   ri   rj   rg   )r!   rl   r   r$   r   r%   	test_kurt   s    z"TestSeriesStatReductions.test_kurtc                 C   s   d}t d|d D ]z}tt|}tt||f}||k rht| sPtt|  stqd| ksxt| dk stqd S )Nr   r   r   )	rW   r   r8   rp   r   rU   r   r   r   )r!   r   r   rc   r   r$   r$   r%   test_kurt_corner  s    z)TestSeriesStatReductions.test_kurt_cornerN)FF)r>   r?   r@   rg   rm   rn   rr   rt   rv   rw   r   r   tdZskip_if_no_scipyr   r   r   r$   r$   r$   r%   rC   Y   s       
=

rC   )__doc__r[   numpyr8   r0   Zpandas.util._test_decoratorsutilZ_test_decoratorsr   Zpandasr   r   r   Zpandas._testingZ_testingrQ   Zpandas.core.arraysr   r   r   r   rC   r$   r$   r$   r%   <module>   s   A