U
    Ãmœd  ã                
   @   s  d dl Zd dlmZmZ d dlZd dlZd dl	Z	d dl
mZ d dlmZmZmZ e	j d¡Ze	jdd�dd	„ ƒZd
d„ ZddddgddddgddddggZejdddgdefdefddgd�Zejdd d!gdefdefgd�Zejd"d#d$d$gd#d%d%d%gd#d$d$d%gged�Ze d"d#d%d$d&d'gd'd&d$d%d#d"gd(d(d(d(d(d(gg¡Zd)d*„ Zd+d,„ Zd-d.„ Z d/d0„ Z!d1d2„ Z"d3d4d5d6e#d7d8„ e$d"d'ƒD ƒƒfd9e#d:d8„ e$d"d'ƒD ƒƒffZ%e	jj&d;e%d<d8„ e%D ƒd=�d>d?„ ƒZ'd@dA„ Z(e	jj)e*edBƒ dCdD�dEdF„ ƒZ+dGdH„ Z,dIdJ„ Z-dS )Ké    N)Úassert_almost_equalÚassert_equal)ÚSimpleTable)ÚDescriptionÚdescribeÚ	sign_testz=ignore::DeprecationWarning:statsmodels.stats.descriptivestatsÚfunction)Úscopec                  C   s:   t j d¡ d¡} tjt  d¡d dd�}t | |dœ¡S )Nr   éd   é
   Úcategory©Zdtype©ÚaÚb)ÚnpÚrandomZRandomStateZstandard_normalÚpdÚSeriesÚarangeÚ	DataFramer   © r   úf/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/statsmodels/stats/tests/test_descriptivestats.pyÚdf   s    r   c                  C   sD   ddddddddd	d
dg} t | dd�\}}t|ddƒ t|dƒ d S )Ng333333@gffffff@g      @gš™™™™™@g333333@ç      @gš™™™™™@gffffff@gÍÌÌÌÌÌ@gffffff@g333333@)Zmu0g�ƒfÚþ•?é   é   )r   r   r   )ÚxÚMÚpr   r   r   Útest_sign_test   s    r    é   ZBobTg333333ó?é)   ZJohnFg      à?é   ZAliceg333333Ó?)é   é   r   Zaa)r%   é   r   Zbb)r%   r   r   ÚccÚalphaÚbeta)Úgammaz|S1)Údeltaz|S2r   )r$   r%   )r%   r&   )r%   r   r$   r%   r   r&   r   é   é	   c               	   C   s
  t jt d¡t  t d¡d ¡dœdd�} t t¡� t	| dgd� W 5 Q R X t t¡� t	| dd	� W 5 Q R X t t¡� t	| d
dgd� W 5 Q R X t t¡� t	| ddddgd� W 5 Q R X t t¡� t	| dd� W 5 Q R X t t¡� t	| ddd� W 5 Q R X d S )Nr
   r   r   r   r   Úunknown©Ústatsg333333Ó¿)r(   r   ©Úpercentilesé   r#   éýÿÿÿ©ZntopF)ÚnumericÚcategorical)
r   r   r   Úemptyr   r   ÚpytestZraisesÚ
ValueErrorr   ©r   r   r   r   Útest_description_exceptions<   s     þr<   c                 C   sv  t | ƒ}t|jtjƒst‚t|jtjƒs,t‚t|jtjƒs>t‚t| ¡ t	ƒsPt‚t| ¡  
¡ tƒsft‚dt|ƒksvt‚t | jƒ}t|jtjƒs’t‚t|jtjƒs¤t‚t|jtjƒs¶t‚t| ¡ t	ƒsÈt‚t| ¡  
¡ tƒsÞt‚dt|ƒksît‚t | jƒ}t|jtjƒ�st‚t|jtjƒ�s t‚t|jtjƒ�s4t‚t| ¡ t	ƒ�sHt‚t| ¡  
¡ tƒ�s`t‚dt|ƒk�srt‚d S )NZDescriptive)r   Ú
isinstanceÚframer   r   ÚAssertionErrorr6   r7   Úsummaryr   Zas_textÚstrr   r   ©r   Úresr   r   r   Útest_description_basicO   s*    

rD   c              .   C   s�   t  ddd¡}t| |d�}ddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2g.}t|jj ¡ |ƒ d S )3Nr   g     @W@é   r1   ÚnobsÚmissingZmeanÚstd_errÚupper_ciÚlower_ciZstdZiqrZ
iqr_normalZmadZ
mad_normalZcoef_varÚrangeÚmaxÚminZskewZkurtosisÚjarque_beraÚjarque_bera_pvalÚmodeÚ	mode_freqZmedianZdistinctZtop_1Ztop_2Ztop_3Ztop_4Ztop_5Zfreq_1Zfreq_2Zfreq_3Zfreq_4Zfreq_5z7.0%z14.1%z21.3%z28.5%z35.6%z42.8%z50.0%z57.1%z64.3%z71.5%z78.6%z85.8%z93.0%)r   Zlinspacer   r   r>   ÚindexÚtolist)r   r2   rC   r0   r   r   r   Útest_odd_percentilesi   sd                                           ùrT   c                 C   s    t | dd�}d|jjkst‚d S )Né   r5   Ztop_15)r   r>   rR   r?   rB   r   r   r   Útest_large_ntopw   s    rV   c                 C   sH   t | ƒ}t | dd�}|jjj|jjjk s,t‚|jjj|jjjksDt‚d S )NT)Zuse_t)r   r>   r   rJ   r?   rI   )r   rC   Zres_tr   r   r   Ú
test_use_t|   s    rW   )Úci)rJ   rI   )rN   )rN   rO   )rP   )rP   rQ   Útopc                 C   s   g | ]}d |› �‘qS )Ztop_r   ©Ú.0Úir   r   r   Ú
<listcomp>‡   s     r]   Úfreqc                 C   s   g | ]}d |› �‘qS )Zfreq_r   rZ   r   r   r   r]   ˆ   s     Ústatc                 C   s   g | ]}|d  ‘qS )r   r   )r[   Úsr   r   r   r]   Œ   s     )Zidsc                 C   sL   dd„ t jD ƒ}| |d ¡ t | |d�}|d D ]}||jjks2t‚q2d S )Nc                 S   s   g | ]}|‘qS r   r   )r[   Ústr   r   r   r]   Ž   s     z&test_special_stats.<locals>.<listcomp>r   r/   r$   )r   Zdefault_statisticsÚremover>   rR   r?   )r   r_   Z	all_statsrC   Úvalr   r   r   Útest_special_statsŒ   s
    rd   c                 C   s|   t j| d< t| ƒ}|jj ¡ }|jd dks0t‚d|ks<t‚d|ksHt‚t j| d< t| jƒ}|j ¡ }|jd dksxt‚d S )NÚcr   r%   rG   rF   )r   Únanr   r>   re   ZdropnaÚshaper?   )r   rC   Zdroppedr   r   r   Útest_empty_columns•   s    



rh   ÚNAzMust support NA)Úreasonc                 C   sŠ   t  t d¡¡| d< t jt d¡t  ¡ d�| d< tj| j| jd d d… df< t j| j| jd d d… df< t	| ƒ}tj
 |jj|jj¡ d S )Ng      Y@re   r
   r   Údr%   )r   r   r   r   Z
Int64Dtyperf   ÚlocrR   ri   r   ÚtestingÚassert_allcloser>   re   rk   rB   r   r   r   Útest_extension_types£   s    ro   c                 C   s.   t j t| d ƒjjd tj | d ¡¡ dS )zQ
    Test the standard error of the mean matches result from scipy.stats.sem
    r   rH   N)	r   rm   rn   r   r>   rl   Úscipyr0   Zsemr;   r   r   r   Útest_std_err­   s    þrq   c                 C   s   t j t| ƒt| ƒj¡ d S )N)r   rm   Zassert_frame_equalr   r   r>   r;   r   r   r   Útest_describe·   s    rr   ).Únumpyr   Znumpy.testingr   r   Zpandasr   Zscipy.statsrp   r9   Zstatsmodels.iolib.tabler   Z"statsmodels.stats.descriptivestatsr   r   r   ÚmarkÚfilterwarningsZ
pytestmarkZfixturer   r    Zdata5ÚarrayÚfloatÚintZdata1Zdata2Zdata3Zdata4r<   rD   rT   rV   rW   ÚtuplerK   ZSPECIALZparametrizerd   rh   ZskipifÚhasattrro   rq   rr   r   r   r   r   Ú<module>   s`   ÿ




ýüþ	 ÿ,4û	

	
