a
    Pf%                     @   sd   d Z ddlZddlZddlZddlZddlmZmZm	Z	 ddl
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
date_rangec                   @   s~   e Zd Zejdeejej	gdd Z
ejdeejej	gejdg ddd Zejdeejej	gdd	 Zd
S )TestDatetimeLikeStatReductionsboxc                 C   s   |}t dd|d}|g d}|j}||}| tjd|dksHJ |jddtjd|dksfJ tj|d	< ||}| tjd
|dksJ |jddtju sJ d S )N
2001-01-01   )periodstz         
   	            r         z
2001-01-06)r
   FZskipnaz2001-01-06 07:12:00)r   take_datameanpd	TimestampNaT)selfZtz_naive_fixturer   r
   dtiZdtarrobj r!   e/var/www/ai-form-bot/venv/lib/python3.9/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   sb  t ddd}|g d}|dkr&tnd }d}tj||d |j|}W d    n1 s^0    Y  ||}tjt	dd |
  W d    n1 s0    Y  tjt	dd |j
d	d
 W d    n1 s0    Y  tj|d< tjt	dd |
  W d    n1 s0    Y  tjt	dd |j
d	d
 W d    n1 sT0    Y  d S )Nr   r   r	   r   r)   zPeriodDtype\[B\] is deprecatedmatchZ	ambiguousTr   r   )r   r   FutureWarningtmZassert_produces_warningr   Z	to_periodpytestraises	TypeErrorr   r   r   )r   r   r$   r   warnmsgZparrr    r!   r!   r"   test_period_mean'   s     *&*
(z/TestDatetimeLikeStatReductions.test_period_meanc           	      C   s   t g dd}t|d}|j}||dd}| }t | }||ksTJ tj|d< |jddtju stJ |jdd}||d	d   ksJ |d
|d d d
ksJ d S )N)r   r   r   ir   r   r   r   r   r   zm8[D]nsF)copyr   r   Tr   usg      &@r   )	nparrayr   ZTimedeltaIndexZas_unitr   r   r   round)	r   r   Zm8valuesZtdiZtdarrr    resultexpectedZresult2r!   r!   r"   test_td64_meanA   s    
z-TestDatetimeLikeStatReductions.test_td64_meanN)__name__
__module____qualname__r/   markZparametrizer   r   Indexr:   r#   r4   r>   r!   r!   r!   r"   r      s   
r   c                   @   sn   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dd Zdd Zdd ZdS )TestSeriesStatReductionsFc              	   C   sT  t dd0 tt|}tj|dd< |dvrttddd}d	| d
}tjt	|d || W d    n1 sx0    Y  t 
||sJ t ||ddsJ | }	t||	||	j t||||	j |tj }
|rt||
sJ tg d}|| dg}|tdd t|dd}tt||t||j |rtt jddd}||}||}||ksJ |dvrtjt	d d  |ttd W d    n1 s0    Y  d}tjt|d ||dd W d    n1 s0    Y  dt|jv r0||dd W d    n1 sF0    Y  d S )NZuse_bottleneckFr      )maxminr   medianstdz1/1/2001r   r*   zdoes not support reduction ''r+   r   )r   r   r   Nr   r   l        l      Zint64dtypez1/1/2000)sumrG   rF   abcz&No axis named 1 for object type Seriesr   )Zaxisnumeric_onlyT)rO   )r   Zoption_contextgetattrr   r9   nanr   r/   r0   r1   ZnotnaisnaZdropnar.   assert_almost_equalvaluesisnanextendrangefloatZbdate_rangelist
ValueErrorinspectgetfullargspecargs)r   name	alternateZstring_series_check_objectscheck_allnafZdsr3   ZnonaZallnar%   itemsresexpr!   r!   r"   _check_stat_op\   sF    
&

0,z'TestSeriesStatReductions._check_stat_opc                 C   s,   t tdtjdd}| jdtj|dd d S )N   seriesrL   r^   rM   F)ra   )r   rW   r9   float64rf   rM   r   string_seriesr!   r!   r"   test_sum   s    z!TestSeriesStatReductions.test_sumc                 C   s(   t tdtjdd}| dtj| d S )Nrg   rh   ri   r   )r   rW   r9   rj   rf   r   rk   r!   r!   r"   	test_mean   s    z"TestSeriesStatReductions.test_meanc                 C   sX   t tdtjdd}| dtj| t tjdtdtdd}t	t||  d S )Nrg   rh   ri   rH   r   rK   )index)
r   rW   r9   rj   rf   rH   onesintr.   rS   )r   rl   Zint_tsr!   r!   r"   test_median   s    z$TestSeriesStatReductions.test_medianc                 C   s(   t tdtjdd}| dtj| d S )Nrg   rh   ri   prod)r   rW   r9   rj   rf   rs   rk   r!   r!   r"   	test_prod   s    z"TestSeriesStatReductions.test_prodc                 C   s,   t tdtjdd}| jdtj|dd d S )Nrg   rh   ri   rG   Tr`   )r   rW   r9   rj   rf   rG   rk   r!   r!   r"   test_min   s    z!TestSeriesStatReductions.test_minc                 C   s,   t tdtjdd}| jdtj|dd d S )Nrg   rh   ri   rF   Tru   )r   rW   r9   rj   rf   rF   rk   r!   r!   r"   test_max   s    z!TestSeriesStatReductions.test_maxc                 C   s   t tdtjdd}t tjdtjdtdddd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|sJ |jdd}t|sJ d S )Nrg   rh   ri   r   rK   
2020-01-01r*   tsro   r^   c                 S   s   t j| ddS Nr   Zddof)r9   rI   xr!   r!   r"   <lambda>       z7TestSeriesStatReductions.test_var_std.<locals>.<lambda>rI   c                 S   s   t j| ddS r{   )r9   varr}   r!   r!   r"   r      r   r   r   r|   r   r   )r   rW   r9   rj   aranger   rf   rI   rT   r.   rS   r   ilocr   rR   r   rl   Zdatetime_seriesaltr<   r=   r%   r!   r!   r"   test_var_std   s*    
z%TestSeriesStatReductions.test_var_stdc                 C   s   t tdtjdd}t tjdtjdtddddd	}d
d }| d|| |jdd}tj|j	ddt
t|j	 }t|| |jdg }|jdd}t|sJ d S )Nrg   rh   ri   r   rK   rx   r*   ry   rz   c                 S   s   t j| ddt t|  S r{   )r9   rI   sqrtlenr}   r!   r!   r"   r      r   z3TestSeriesStatReductions.test_sem.<locals>.<lambda>semr   r|   r   r   )r   rW   r9   rj   r   r   rf   r   rI   rT   r   r   r.   rS   r   r   rR   r   r!   r!   r"   test_sem   s     
z!TestSeriesStatReductions.test_semc                    s   t d ttdtjdd} fdd}| d|| d}td	|d	 D ]}tt|}tt||f}||k rt	|
 sJ t	|
  sJ qJd
|
 ksJ t|
 tjsJ |
 d
k sJJ qJd S )Nscipy.statsrg   rh   ri   c                    s    j | ddS NF)Zbias)skewr}   Zsp_statsr!   r"   r      r   z4TestSeriesStatReductions.test_skew.<locals>.<lambda>r   r   r   r   )r/   importorskipr   rW   r9   rj   rf   rp   r   rU   r   all
isinstance)r   rl   r   min_Nir%   dfr!   r   r"   	test_skew   s    
z"TestSeriesStatReductions.test_skewc                    s<   t d ttdtjdd} fdd}| d|| d S )Nr   rg   rh   ri   c                    s    j | ddS r   )Zkurtosisr}   r   r!   r"   r     r   z4TestSeriesStatReductions.test_kurt.<locals>.<lambda>kurt)r/   r   r   rW   r9   rj   rf   )r   rl   r   r!   r   r"   	test_kurt   s    
z"TestSeriesStatReductions.test_kurtc                 C   s   d}t d|d D ]}tt|}tt||f}||k rht| sPJ t|  sJ qd| ksxJ t| tj	sJ | dk sJ qd S )Nr   r   r   )
rW   r   r9   rp   r   rU   r   r   r   rj   )r   r   r   r%   r   r!   r!   r"   test_kurt_corner  s    z)TestSeriesStatReductions.test_kurt_cornerN)FF)r?   r@   rA   rf   rm   rn   rr   rt   rv   rw   r   r   r   r   r   r!   r!   r!   r"   rD   W   s    
=rD   )__doc__r[   numpyr9   r/   Zpandasr   r   r   r   Zpandas._testingZ_testingr.   r   rD   r!   r!   r!   r"   <module>   s   E