a
    é´«jú%  ã                   @   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s’J ‚|jdd�tju s¨J ‚d S )Nú
2001-01-01é   )ÚperiodsÚtz©é   é   é   é
   é	   é   é   é   r   é   é   z
2001-01-06)r
   F©Zskipnaéþÿÿÿz2001-01-06 07:12:00)r   ÚtakeÚ_dataÚmeanÚpdÚ	TimestampÚNaT)ÚselfZtz_naive_fixturer   r
   ÚdtiZdtarrÚobj© r!   úk/var/www/html/laksyashrimp/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 sœ0    Y  tjt	dd�� |j
d	d
� W d   ƒ n1 sÖ0    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s˜J ‚| d
¡|d d  d
¡ks¸J ‚d S )N)r   r   r   iùÿÿÿr   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r‚ttddd�ƒ}d	|› d
�}tjt	|d�� ||ƒ W d   ƒ n1 sx0    Y  t  
||ƒ¡s”J ‚t  ||dd�¡sªJ ‚| ¡ }	t ||	ƒ||	jƒ¡ t ||ƒ||	jƒ¡ |tj }
|rþt ||
ƒ¡sþJ ‚tg d¢ƒ}||ƒ dg}| tddƒ¡ t|dd�}t t||ƒƒt||jƒƒ¡ |�rˆtt jddd�ƒ}||ƒ}||ƒ}||k�sˆJ ‚|dv�rÒtjt	d d��  |ttdƒƒƒ W d   ƒ n1 �sÈ0    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 |¡sØJ ‚|jdd�}t |¡sòJ ‚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 |¡sªJ ‚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 r t 	| 
¡ ¡sˆJ ‚t 	| 
¡ ¡ ¡ sØJ ‚qJd
| 
¡ ks°J ‚t| 
¡ tjƒsÄJ ‚| 
¡ 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 | ¡ ¡ ¡ s J ‚qd| ¡ ksxJ ‚t| ¡ tj	ƒsŒJ ‚| ¡ 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