B
    0d              -   @   sf  d dl Z d dlZd dlmZ d dlZd dlmZ ddlm	Z	 dddgZ
d	Zd
ZdddddddddddddddddddgZdddd d!d"dd#d$d%d&d'd(d)d*dd+d,d-d.d/d0d1d2ddd3d4dd5d6dd7dd8dd9dd:d;d<dd=ddg-Zd>d?d@dddAdBdCdDddEdFdGdddHgZee edIZdJgZdKdL ZejjejdMe ejdNdOdPgdQdR ZdYdSdTZdUdV ZdWdX ZdS )Z    N)assert_allclose)stats   )distconti  i  i'  g      ?g      ?ZburrZchi2Z
gausshyperZgenexponZgengammaZkappa4ZksoneZkstwoZmielkeZncfZncx2Zpearson3ZpowerlognormZ
truncexponZtukeylambdaZvonmisesZlevy_stableZ	trapezoidZstudentized_rangealphaZ	betaprimeZburr12ZcauchychiZcrystalballZdgammaZdweibullfZfatiguelifeZfiskZ
foldcauchyZ
genextremeZgenhyperbolicZgennormZ	genparetoZ
halfcauchyZinvgammaZ
invweibullZ	johnsonsuZkappa3ZlevyZlevy_lZ
loglaplaceZlomaxZnakagamiZnctZparetoZ	powernormZ
skewcauchytZtriangZargusZexponpowZ	exponweibZgenhalflogisticZhalfgennormZgompertzZ	johnsonsbZ	kstwobignZrecipinvgaussZskewnormZvonmises_line)MMMLEerlangc              c   s(   x"t D ]\} }| tkr| |fV  qW d S )N)r   skip_fit)distnamearg r   L/var/www/html/venv/lib/python3.7/site-packages/scipy/stats/tests/test_fit.pycases_test_cont_fitA   s    r   zdistname,argmethodr   r
   c          
   C   s  | t | krXyttjd  }W n tk
r8   d}Y nX |rXd|  }|d7 }t| tt| }t	
|ddgg}t	t	|t t	|jd tgd}xtD ]}t	jd	 t	jd
d$ |j|d|i}	|j|	|d}
W d Q R X |
| }t	t	|	 t tg|d< t	t	|
r,tdqt	t	||krP qW dt| }|dt|
 7 }|dt| 7 }td|j | d S )NZSCIPY_XFAILTz$Fitting %s doesn't work reliably yetzH [Set environment variable SCIPY_XFAIL=1 to run this test nevertheless.]g        g      ?   r   i  ignore)allsize)r   znan returned in fitzparameter: %s
zestimated: %s
zdiff     : %s
zfit not very good in %s
)failing_fitsintosenviron	Exceptionpytestxfailgetattrr   npZhstackmaxZvstackthresh_percentfullZnumargs
thresh_min	fit_sizesrandomseedZerrstatervsfitabsZmeananyisnanAssertionErrorr   strname)r   r   r   r   msgZdistfnZtrueargZdiffthresholdZfit_sizer)   Zestdifftxtr   r   r   test_cont_fitK   s<    




r4   c             C   s4   t t| }||dd  }t|||d|  d d S )Nr   z"poor mle fit of (loc, scale) in %s)atolerr_msg)r    r   r*   r   )r0   dataZdesiredr5   dactualr   r   r   _check_loc_scale_mle_fit|   s    
r:   c           
   C   sB   t ddddddddg} td| ddgd td| dd	gd d S )
Ng)\(?g{Gz?gGz?g       @uniformgGz?gMbP?expongp=
ף?)r!   arrayr:   )r7   r   r   r   "test_non_default_loc_scale_mle_fit   s    r>   c              C   s:   ddddddddg} t jj| dd}t|ddgdd dS )zgh-6167r   r   )Zflocg      ?gMbP?)r5   N)r   r<   r*   r   )r7   Zphatr   r   r   test_expon_fit   s    r?   )N)r   numpyr!   Znumpy.testingr   r   Zscipyr   Ztest_continuous_basicr   r&   r#   r%   Zmle_failing_fitsZmm_failing_fitsZmm_slow_fitsr   r   r   markZslowZparametrizer4   r:   r>   r?   r   r   r   r   <module>   sd   






/
