3
Odj              (   @   sf  d dl Zd dljZd dlZd dlmZ d dlm	Z	 d dl
mZ d dlmZ ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z  d dl!m"Z" d	Z#d
dgddgddgddgddggZ$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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d*ddgZ'e(d/d
d0d1d2d3d4d5d6dd7d8d9d:d#d;ddd d<d=d>d?d@dAd'd(d-dBdCd.dDdEdFdGdHddd,g'Z)ej*ddIdIdJdJdJdKdKdKdKd	d	d	d	d	dLdLdLdLdMdMdMdNdNdOgdNdPZ+ej,e+Z-dQdR Z.ej/j0dSe. dTdU Z1ej/j0dSe. dVdW Z2dXdY Z3dZd[ Z4ej/j5ej/j0d\e4 d]d^ Z6ej/j0d_e"d`da Z7dbdc Z8ddde Z9dfdg Z:dhdi Z;djdk Z<dldm Z=dndo Z>dpdq Z?drds Z@dtdu ZAdvdw ZBdxdy ZCdzd{ ZDd|d} ZEd~d ZFdd ZGdd ZHdd ZIdd ZJdd ZKdd ZLdd ZMdd ZNdd ZOej/j0dddddddddgej/j0de"dd ZPdS )    N)raises)IntegrationWarning)stats)betainc   )check_normalizationcheck_momentcheck_mean_expectcheck_var_expectcheck_skew_expectcheck_kurt_expectcheck_entropycheck_private_entropycheck_entropy_vect_scalecheck_edge_supportcheck_named_argscheck_random_state_propertycheck_meth_dtypecheck_ppf_dtypecheck_cmplx_derivcheck_picklingcheck_rvs_broadcastcheck_freezing)distcont   	betaprimed   V   Zfatiguelife
invweibullF6c?ZburrRGY?ft2@
genextremey7
@kstwoksoneZkappa4
gausshyperZrecipinvgaussgenexponvonmisesZvonmises_lineZcosineZpowerlognormZ	johnsonsu	kstwobignZexponpowZ	exponweibZhalfgennormZgompertzZ	johnsonsbZmielkencfnctZ	powernormZtrapzlevy_stablerv_histogram_instanceZncx2Zrdistbetachichi2dgammadweibullZerlangfgammaZgengammageninvgaussZgennormZ	genparetoZinvgammalevy_lZloggammaZlogisticZ
loguniformZmaxwellZnakagaminorminvgaussZpearson3
reciprocalriceskewnormttukeylambda                  	   )Zbinsc              c   s`   xZt d d  tt fg D ]>\} }| dkr.qq| tkrNtj| |tjjdV  q| |fV  qW d S )Nr,   )marks)r   histogram_test_instancetupledistslowpytestparammarkslow)distnamearg rN   [/var/www/html/virt/lib64/python3.6/site-packages/scipy/stats/tests/test_continuous_basic.pycases_test_cont_basicW   s    "rP   zdistname,argc             C   s  | dkrt j| d ytt| }W n tk
r>   | }d} Y nX tjjd d}tj	 }|j
tdd |j|d|i}|j }|j }|j| \}}	t||||	|||| d	  t|||  t|||  t|||  t|||  t|||  t|||  t|||  t|||  d
}
| dkr2t|j||
| n| dkrJt| ||
| d}|j|j|j|j|jg}ddd dddd}|j| d}| dkrd!}n| dkrd"}t||||| t || t!|| t"|| | d#krt#|||  |j$dkrt%|| |j&j'tj(j'kr&| dkr&t)||tj( tj	 4}|j
t*d |j
t*d |j
t+d t,|| W d Q R X t-|| t.|| t/||| t0|| | t1krt2|| | dkrt3|||  | t4krt5|||dd  | t6krt7|||dd  W d Q R X d S )$N	truncnorm)reasonr-   i i  z
.*frechet_)categorymessagesizezsample mean testg{Gz?r5   r   r   g      ?g      ?g333333?g      @)Z	frechet_lZweibull_maxr6   Zparetor<   r-   r   r%   r>   r)   r$   r(   z The occurrence of roundoff errorzExtremely bad integrandzinvalid value   )r   r   g      g      g      )r   )r>   )r)   r$   )8rH   xfailgetattrr   	TypeErrornprandomseednptsuppress_warningsfilterDeprecationWarningrvsZmeanvarcheck_sample_meanvar_check_cdf_ppfcheck_sf_isf	check_pdfcheck_pdf_logpdfcheck_pdf_logpdf_at_endpointscheck_cdf_logcdfcheck_sf_logsfcheck_ppf_broadcastcheck_distribution_rvscdfpdflogpdflogcdflogsfgetr   r   r   r   r   numargscheck_vecentropy	__class___entropyZrv_continuousr   r   RuntimeWarningr   check_retrieving_supportr   r   r   fails_cmplxr   check_ppf_privateskip_fit_testcheck_fit_argsskip_fit_fix_testcheck_fit_args_fix)rL   rM   distfnsnsupra   smsvmvalphaZlocscale_defaultsZmethsZspec_xxrN   rN   rO   test_cont_basica   s    



















r   c             C   s   yt t| }W n tk
r*   | }d} Y nX tj f}|jtdd |j| }tj	|j| sbt
tj	|j|df is|t
tj	|j|dd ist
W d Q R X d S )Nr-   z
.*frechet_)rS   rT   rU   )rX   r   rY   r]   r^   r_   r`   ra   rZ   ZisscalarAssertionError)rL   rM   r   r   ra   rN   rN   rO   test_rvs_scalar   s    


r   c               C   s   t tjd d S )N      ?皙?)r   r   )r   r   r,   rN   rN   rN   rO   &test_levy_stable_random_state_property   s    r   c           	   c   s   t dg} t ddg}xvtd d  tt fg D ]Z\}}|dkrBq0|| k}||k}||||dfV  | sn| r0tj||dddtjjdV  q0W d S )Nr(   r*   r,   FT)rD   )setr   rE   rF   rH   rI   rJ   rW   )Zfail_normalizationZfail_higherrL   rM   Zcond1Zcond2rN   rN   rO   cases_test_moments   s    
"r   z3distname,arg,normalization_ok,higher_ok,is_xfailingc             C   s   yt t| }W n tk
r*   | }d} Y nX tj }|jtd |jtdd |r^|jt |j|ddi\}}}	}
|rt|||  |rt	||||  t
|||||	|  t|||||  t|||||
|  t|||||  t|||||  W d Q R X d S )Nr-   z9The integral is probably divergent, or slowly convergent.z
.*frechet_)rS   rT   ZmomentsZmvsk)rX   r   rY   r]   r^   r_   r   r`   r   r	   r   r
   r   check_loc_scaler   )rL   rM   Znormalization_okZ	higher_okZis_xfailingr   r   r   r   skrN   rN   rO   test_moments   s*    


r   zdist,shape_argsc             C   s   | dkrt jd | dk}tt| }tjd}tjd}|j}g }ddg}xNt|D ]B}	|	d fd|	d   }
|j	||	 tj|
  |j
d|	d  qTW |j||g t|| |||d d S )Nr&   r'   ztoo slowargusr   r1   r2   	exponnormr5   r,   r+   r7   r9   r:   semicircularr=   r>   r   r?   r   d)r&   r'   )r   r   r1   r2   r   r5   r,   r+   r7   r9   r:   r   )r>   r   )r   )rH   skiprX   r   rZ   zerosonesrs   rangeappendinsertextendr   )distZ
shape_argsZ
shape_onlyZdistfunclocscalenargsallargsZbshaper   ZshprN   rN   rO   test_rvs_broadcast  s"    
 


r   c              C   sx  t jjd tjjt jddd} t j| }tj	t j
|dkd tjjdt jdd} t j| }tj	t j
|dkd tjjt jdt jdd} t j| }tj	t j
|dkd tjjt jdgdggt jdd} t j| j }tj	t j
|dkd tttjjddgddggddgddggd tttjjddd	dgddd
 tttjjddddgddddgdgdggd d S )N{   r   r   )r   r   r   z0All the values are equal, but they shouldn't be!r=   r>   r?   )r=   r=   )r?   )rZ   r[   r\   r   Znormra   r   Zdiffr]   assert_allr   arrayZravelassert_raises
ValueErrorr4   )valsr   rN   rN   rO   test_rvs_gh2069_regression0  s$    


$r   c              C   s   t j} tj| jddtjd tj| jddtjd tj| jdtj dd tj| jdtj dd tj| jddtjd tj| jddtjd tj| jdtj dd tj| jdtj dd tj| jdtj dd d S )	Nr   r   gA?g|N?r   r   r   )r   rQ   r]   assert_almost_equalrm   rZ   infZ_cdf)tnrN   rN   rO   test_nomodify_gh9900_regressionK  s    r   c              C   s   t jddddddg} t jdddd	dd
g}dd t| |D }tjtjjd| || dd t| |D }tjtjjd| || dd t| |D }tjtjj| | || dd t| |D }tjtjj|| || d S )Nr   r=   r>   r?   r   r@   rB          0   c             S   s    g | ]\}}t jjd ||qS )rA   )r   r8   rm   ).0_a_brN   rN   rO   
<listcomp>o  s    z4test_broadcast_gh9990_regression.<locals>.<listcomp>rA   c             S   s    g | ]\}}t jjd ||qS )r   )r   r8   rm   )r   r   r   rN   rN   rO   r   r  s    c             S   s    g | ]\}}t jj|||qS rN   )r   r8   rm   )r   r   r   rN   rN   rO   r   u  s    c             S   s    g | ]\}}t jj|||qS rN   )r   r8   rm   )r   r   r   rN   rN   rO   r   x  s    )rZ   r   zipr]   assert_array_almost_equalr   r8   rm   )abansrN   rN   rO    test_broadcast_gh9990_regressionf  s    r   c               C   sH   t jjtjdddgdtjdddg d tjtjdddgdd d S )	Ng      @g       @g      ?g      ?g      @g      @g      @)r   r   r   r   )r   rQ   ro   rZ   r   r   rN   rN   rN   rO    test_broadcast_gh7933_regression{  s    r   c              C   sb   t jddd } t jt jd t jdf }dd t| |D }tjj| |t j}tj	|| d S )Nr=   y             @Y@2   3   c             S   s"   g | ]\}}t jj||tjqS rN   )r   rQ   rn   rZ   r   )r   _xr   rN   rN   rO   r     s    z*test_gh2002_regression.<locals>.<listcomp>)
rZ   Zr_r   r   r   rQ   rn   r   r]   r   )r   r   expectedr   rN   rN   rO   test_gh2002_regression  s
    r   c              C   s(   d} t jjdtj| g| d gg d S )Ng(\@g      ?)r   r"   ppfrZ   r   )crN   rN   rO   test_gh1320_regression  s    r   c             C   s2   t j|rt|||| t j|r.t||| d S )N)rZ   isfinitecheck_sample_meancheck_sample_var)r   rM   r   r   r   r   r   msgrN   rN   rO   rc     s    

rc   c             C   sr   |d }|d | t | }| | tj|d|   }td| d||||   }tj|dkd|||| f  d S )Nr   g      ?g      ?g{Gz?z'mean fail, t,prob = %f, %f, m, sm=%f,%f)floatrZ   sqrtr   r]   r   )r   r   nZpopmeandfZsvarr;   ZprobrN   rN   rO   r     s    r   c             C   sP   |d }|d | t | }tjjj||d }tj|dkd|||| f  d S )Nr   r=   g{Gz?z(var fail, t, pval = %f, %f, v, sv=%f, %f)r   r   distributionsr0   sfr]   r   )r   r   Zpopvarr   r0   pvalrN   rN   rO   r     s
    r   c             C   s<   dddg}t j| j| j|f| f| |t|d d d S )NgMbP?g      ?g+?z - cdf-ppf roundtrip)decimalerr_msg)r]   r   rm   r   DECIMAL)r   rM   r   valuesrN   rN   rO   rd     s    
rd   c             C   sx   t j| j| jdddgf| f| dddgt|d d t j| jddgf| d| jddgf|  t|d d d S )Ng?g      ?g?z - sf-isf roundtrip)r   r   g      ?z - cdf-sf relationship)r]   r   r   isfr   rm   )r   rM   r   rN   rN   rO   re     s    $
re   c             C   s   | j d	| }d}| j|f| }|dk s2|dkrJ|d }| j|f| }| j|| f| | j|| f|  | d }|d7 }tj||t|d d S )
N      ?gư>g-C6?g     @g?g       @z - cdf-pdf relationship)r   r   )r   )r   rn   rm   r]   r   r   )r   rM   r   medianZepsZpdfvZcdfdiffrN   rN   rO   rf     s    0rf   c             C   s   t jdddddddg}| j|f| }|t j| }| j|f| }| j|f| }||dkt j|@  }|t j| }|d	7 }tjt j||d
|d d S )Ng?g333333?g?g      ?g333333?gffffff?g?r   z - logpdf-log(pdf) relationshiprA   )r   r   )	rZ   r   r   r   rn   ro   r]   r   log)r   argsr   pointsr   rn   ro   rN   rN   rO   rg     s    rg   c       	      C   s   t jddg}| j|f| }|t j| }tj }ddddddg}x|D ]}|jt|d	 qLW | j|f| }| j	|f| }||dkt j|@  }|t j| }|d
7 }tj
t j||d|d W d Q R X d S )Nr   r   z)divide by zero encountered in true_dividez!divide by zero encountered in logz#divide by zero encountered in powerz invalid value encountered in addz%invalid value encountered in subtractz%invalid value encountered in multiply)rS   rT   z - logpdf-log(pdf) relationshiprA   )r   r   )rZ   r   r   r   r]   r^   r_   rw   rn   ro   r   r   )	r   r   r   r   r   r   Zsuppress_messsagesrn   ro   rN   rN   rO   rh     s$    

rh   c          
   C   s   t jddddddddd	g	}| j|f| }|t j| }| j|f| }| j|f| }||d
k }|t j| }|d7 }tjt j||d|d d S )Ng        g?g333333?g?g      ?g333333?gffffff?g?g      ?r   z - logsf-log(sf) relationshiprA   )r   r   )	rZ   r   r   r   r   rq   r]   r   r   )r   r   r   r   r   r   rq   rN   rN   rO   rj     s    rj   c          
   C   s   t jddddddddd	g	}| j|f| }|t j| }| j|f| }| j|f| }||dk }|t j| }|d
7 }tjt j||d|d d S )Nr   g?g333333?g?g      ?g333333?gffffff?g?g      ?z - logcdf-log(cdf) relationshiprA   )r   r   )	rZ   r   r   r   rm   rp   r]   r   r   )r   r   r   r   r   rm   rp   rN   rN   rO   ri     s    ri   c                sb   d g   }|r" fdd|D }| j d| }| j d	| }|d7 }tj||g  d|d d S )
Nr   c                s   g | ]}t j|g  qS rN   )rZ   r   )r   _)num_repeatsrN   rO   r   %  s    z'check_ppf_broadcast.<locals>.<listcomp>      ?z - ppf multiplerA   )r   r   )r   )r   )r   r]   r   )r   rM   r   r   r   ZmediansrN   )r   rO   rk      s    rk   c             C   st   t j|| |dd\}}||k rpt j| | |dd\}}tj||kdt| d t| d t| d t|  d S )Ni  )r   NzD = z	; pval = z
; alpha = z
args = )r   Zkstestr]   r   str)r   r   r   ra   Dr   rN   rN   rO   rl   -  s
    
rl   c             C   s   t j| j| | j|  d S )N)r]   Zassert_equalZ
vecentropyrv   )r   r   rN   rN   rO   rt   @  s    rt   c       	      C   sJ   d\}}| j |||d\}}tj|| | | tj|| | | d S )N      $@)r   r   )r   r   )r   r]   assert_allclose)	r   rM   r   r   r   r   r   mtZvtrN   rN   rO   r   D  s    r   c             C   s>   | j tjdddgf| }tjtjtj| |d  d S )Ng?g      ?g?zppf private is nan)Z_ppfrZ   r   r]   r   anyisnan)r   rM   r   ZppfsrN   rN   rO   rz   K  s    rz   c             C   sH   d\}}| j | }| j |||d}tjtj|| | tj| d S )Nr   r=   )r   r   )r   r=   )Zsupportr]   r   rZ   r   )r   r   r   r   ZsuppZsupp_loc_scalerN   rN   rO   rx   Q  s
    
rx   c             C   s   t jdd\ tj H}|jtdd |jtdd |jtdd | j|}| j|dd}W d Q R X W d Q R X tjt	|d	t	| k tjt	|d	t	| k d S )
Nignore)r   z
.*frechet_)rS   rT   z!The shape parameter of the erlangzfloating point number truncatedZpowell)Z	optimizerr=   )
rZ   errstater]   r^   r_   r`   rw   fitr   len)r   rM   ra   r   r   vals2rN   rN   rO   r|   Y  s    
"r|   c       	      C   s  t jdd tj }|jtdd |jtdd | j|dd}| j|dd	}tjt	|d
t	| k tj|d dk tj|d dk tjt	|d
t	| k t	|dkr| j||d d}tjt	|d
t	| k tj|d |d k t	|dkrJ| j||d d}tjt	|d
t	| k tj|d |d k t	|d
kr| j||d
 d}tjt	|d
t	| k tj|d
 |d
 k W d Q R X W d Q R X d S )Nr   )r   z
.*frechet_)rS   rT   z!The shape parameter of the erlangr   )Zflocr   )Zfscaler=   )Zf0)f1)f2r   r   )
rZ   r   r]   r^   r_   r`   rw   r   r   r   )	r   rM   ra   r   r   r   Zvals3Zvals4Zvals5rN   rN   rO   r~   i  s,    r~   methodrn   ro   rm   rp   r   rq   r   r   zdistname, argsc       
         s   t j }|jtdd tt|}t||  |dkrH| jdrHddg}nddg}d	d
 |D }ddg}ddg} |f|||d}	t j|	 fdd
t|f|||f D ddd W d Q R X d S )Nz
.*frechet_)rS   rT   r   r   g      ?r=   g?g?c             S   s   g | ]}|gd  qS )r=   rN   )r   r   rN   rN   rO   r     s    z+test_methods_with_lists.<locals>.<listcomp>r   r   g)\(?)r   r   c                s   g | ]} | qS rN   rN   )r   r   )r3   rN   rO   r     s    g+=gvIh%,=)ZrtolZatol)	r]   r^   r_   r`   rX   r   
startswithr   r   )
r   rL   r   r   r   r   Zshape2r   r   resultrN   )r3   rO   test_methods_with_lists  s    



 r   )r   r   )r   )r   )r    r!   )r#   )QZnumpyrZ   Znumpy.testingZtestingr]   rH   r   r   Zscipy.integrater   Zscipyr   Zscipy.specialr   Zcommon_testsr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zscipy.stats._distr_paramsr   r   Zdistcont_extrarG   r{   r}   r   ry   Z	histogramZ_hZrv_histogramrE   rP   rJ   Zparametrizer   r   r   r   rK   r   r   r   r   r   r   r   r   rc   r   r   rd   re   rf   rg   rh   rj   ri   rk   rl   rt   r   rz   rx   r|   r~   r   rN   rN   rN   rO   <module>   s   
P





$

^%
	

