a
    /'a                    @   s
  d Z ddlZddlZddl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mZmZmZmZmZmZ ddlZddlmZ ddlZddlZddlmZ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# ddl$m%Z% dd
l&m'Z' ddl(Zddl)m*Z*m+Z+m,Z, ddl-m.Z.m/Z/ ddl0m1Z1m2Z2 ddl3m4Z4m5Z5 ddl6m7Z7m8Z8 ddl9m:Z: ej;j<dkZ=ejdkoze> dkZ?ddgZ@ddddZAdd ZBdd ZCdd ZDdd ZEd d! ZFd"d# ZGd$d% ZHejIJd&g d'd(d) ZKd*d+ ZLd,d- ZMejIJd.g d/d0d1 ZNG d2d3 d3ZOG d4d5 d5ZPG d6d7 d7ZQG d8d9 d9ZRG d:d; d;ZSG d<d= d=ZTG d>d? d?ZUG d@dA dAZVG dBdC dCZWG dDdE dEZXG dFdG dGZYG dHdI dIZZG dJdK dKZ[G dLdM dMZ\G dNdO dOZ]G dPdQ dQZ^G dRdS dSZ_G dTdU dUZ`G dVdW dWZaG dXdY dYZbG dZd[ d[ZcG d\d] d]ZdG d^d_ d_ZeG d`da daZfG dbdc dcZgG ddde deZhG dfdg dgZiG dhdi diZjG djdk dkZkG dldm dmZlG dndo doZmG dpdq dqZnG drds dsZoG dtdu duZpdvdw Zqdxdy Zrdzd{ ZsG d|d} d}ZtG d~d dZuG dd dZvG dd dZwG dd dZxG dd dZyG dd dZzG dd dZ{G dd dZ|G dd dZ}G dd dZ~G dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZdd ZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG ddÄ dÃZG ddń dŃZddǄ ZddɄ Zdd˄ Zdd̈́ ZejIje=ddύddф Zddӄ ZddՄ Zddׄ Zddل Zddۄ Zdd݄ Zdd߄ Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZejIJddeddgfdedd gfdeddgfdeddgfgdd Zd	d
 Zdd Zdd Zdd Zdd ZG dd de%jZG dd de%jZG dd de%jZG dd de%jZG dd dZG dd dZejIje=d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ǐd0d1 ZȐd2d3 Zɐd4d5 Zʐd6d7 Zːd8d9 Z̐d:d; ZejIJd<d=d=g d>fd?d@g d>fdAdBg dCfgdDdE ZΐdFdG ZG dHdI dIZАdJdK ZG dLdM dMZG dNdO dOZG dPdQ dQZԐdRdS ZejIJdTe2e/ dUdV Z֐dWdX ZejIJdYdZd[gd\d] ZejIJd^g d_d`da Zِdbdc ZdS (e  z!
Test functions for stats module
    N)	assert_equalassert_array_equalassert_almost_equalassert_array_almost_equalassert_allcloseassert_assert_warnsassert_array_lesssuppress_warnings)raises)	typecodesarray)rec_append_fields)special)check_random_state)IntegrationWarningquad	trapezoidcumulative_trapezoid)
argsreduce)xlogy	polygammaentr)distcontinvdistcont   )distdiscreteinvdistdiscrete)FitDataError
_argus_phi)rootfmin)productdarwinZx86_64tukeylambdapearson3c                 C   s*   |d u rd| |f }t t| ||d d S )Nz%s does not have attribute %smsg)r   hasattr)abr'    r+   Clib/python3.9/site-packages/scipy/stats/tests/test_distributions.py_assert_hasattr3   s    r-   c                   C   s   t tjjd d S )NZf_gen)r-   scipystatsdistributionsr+   r+   r+   r,   test_api_regression9   s    r1   c                 C   s8   t j| ||d}t||||dtj |   d S )Nlocscale   )r/   vonmisesr   pdfnumpypikLsxvmr+   r+   r,   check_vonmises_pdf_periodic>   s    r@   c                 C   s@   t j| ||d}t||d ||dtj |  d  d S )Nr2   r   r5   )r/   r6   r   cdfr8   r9   r:   r+   r+   r,   check_vonmises_cdf_periodicC   s    rB   c                  C   s`   t tjjj} dd tD }dd tD }g d}|| | }t tdd |}| |ks\J d S )Nc                 S   s   g | ]}|d  qS r   r+   .0distr+   r+   r,   
<listcomp>J       z0test_distributions_submodule.<locals>.<listcomp>c                 S   s   g | ]}|d  qS rC   r+   rD   r+   r+   r,   rG   K   rH   )rv_discreterv_continuousrv_histogramentropytrapzc                 S   s   t | d S )N<)str
startswithr=   r+   r+   r,   <lambda>R   rH   z.test_distributions_submodule.<locals>.<lambda>)setr.   r/   r0   __all__r   r   filter)actualZ
continuousZdiscreteotherexpectedr+   r+   r,   test_distributions_submoduleH   s    rY   c                  C   sx   dD ]n} ddt jddfD ]X}t| dd| t| dd| t| dd| t| dd| t| dd| t| dd| qqd S )N)皙?r   e   r   r   
   d   )r8   r9   r@   rB   )r;   r>   r+   r+   r,   test_vonmises_pdf_periodicW   s    r^   c                   C   s&   t tjjtj  t tjjtj d S N)r   r/   Zvonmises_liner)   npr9   r*   r+   r+   r+   r,   test_vonmises_line_supportc   s    ra   c                  C   s   t d} t| dd d S )N   r         ?)r/   r6   r   rA   )r?   r+   r+   r,   test_vonmises_numericalh   s    
rd   zx, kappa, expected_pdf))rZ   {Gz?g|65?)rZ         9@g?U?)rZ   rb   g"?)       @re   gDfI?)rg   rf   g1<)rg   rb           c                 C   s    t j| |}t||dd d S )NV瞯<rtol)r/   r6   r7   r   )r>   kappaexpected_pdfr7   r+   r+   r,   test_vonmises_pdfw   s    rn   c                 K   sb   | j |fi |}tt| | j |fi |}|||}|||}||ks^tj||dds^J dS )aS  
    This utility function checks that the log-likelihood (computed by
    func) of the result computed using dist.fit() is less than or equal
    to the result computed using the generic fit method.  Because of
    normal numerical imprecision, the "equality" check is made using
    `np.allclose` with a relative tolerance of 1e-15.
    ri   rj   N)fitsupertyper`   allclose)rF   datafunckwdsZmle_analyticalZnumerical_optZll_mle_analyticalZll_numerical_optr+   r+   r,   _assert_less_or_close_loglike   s    

rv   c                 C   s  ddg}| j r2t| j d}|g dd | 7 }tt|tt|}g d}tjt	dd" | j
|fi | W d    n1 s0    Y  tjt	dd | 
tjg W d    n1 s0    Y  tjt	dd | 
tjg W d    n1 s0    Y  tjtd	d | j
|d
d W d    n1 s@0    Y  tjtdd0 | j
|gdgt|d  R   W d    n1 s0    Y  d S )Nflocfscale,)f0f1f2r   r5      z3All parameters fixed. There is nothing to optimize.matchz#The data contains non-finite valueszUnknown keyword arguments:r5   )Zextra_keywordzToo many positional arguments.r   )shapeslensplitdictzipr`   arangepytestr   RuntimeErrorro   naninf	TypeError)rF   ZparamZnshapesZ	all_fixedrs   r+   r+   r,   assert_fit_warnings   s,    0,..r   rF   )alpha	betaprimefatiguelifeinvgammainvgauss
invweibullZ	johnsonsblevylevy_llognormZgilbratZpowerlognormrayleighZwaldc                 C   s   t t}||  }tt| } t| j| jg|R  d t| j| jg|R  t	j
  t| j| jg|R  d t| j| jg|R  t	j
  dS )zgh-6235r   N)r   r   getattrr/   r   r7   r)   r   logpdfr`   r   r*   )rF   dctargsr+   r+   r,   test_support   s    
r   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestRandIntc                 C   s   t jd d S N  r`   randomseedselfr+   r+   r,   setup_method   s    zTestRandInt.setup_methodc                 C   s   t jjdddd}tt|dk t|dk@  tt|dk t jjdddd}tt|dk t|jj	t
d v  t jdd}t|dk|dk @  tt|tjtt|d	 t ddd
}t|jj	t
d v  d S )N      r]   sizer5   2   
AllInteger   .   r&   r~   )r/   randintrvsr   r8   allr   shapedtypecharr   
isinstanceZ
ScalarTypereprrq   r   valsvalr+   r+   r,   test_rvs   s     zTestRandInt.test_rvsc                 C   sF   t jdd }t |dk|dk @ dd}tj|dd}t|| d S )Nr   $   r   r   {Gz?)r8   r_wherer/   r   pmfr   )r   r;   outr   r+   r+   r,   test_pdf   s    zTestRandInt.test_pdfc                 C   sd   t ddd}t|}t|dk|dkgd|d d d	 gd}tj|dd}t||d
d d S )Nr   r   r]   r   r         ?      @r   rf      decimal)	r`   linspacer8   ZfloorZselectr/   r   rA   r   )r   r>   r;   r   r   r+   r+   r,   test_cdf   s
    
*zTestRandInt.test_cdfN)__name__
__module____qualname__r   r   r   r   r+   r+   r+   r,   r      s   r   c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )	TestBinomc                 C   s   t jd d S r   r   r   r+   r+   r,   r      s    zTestBinom.setup_methodc                 C   s   t jjdddd}tt|dkt|dk@  tt|dk t|jjt	d v  t jdd}tt
|t t ddd}tt
|tj t|jjt	d v  d S Nr\         ?r   r   r   r   r~   )r/   binomr   r   r8   r   r   r   r   r   r   intndarrayr   r+   r+   r,   r      s     zTestBinom.test_rvsc                 C   sD   t jddd}t jddd}t|dddd t|dddd d S )Nr]   r   r   r   ri   rk   atol)r/   r   r   r   )r   vals1vals2r+   r+   r,   test_pmf   s    zTestBinom.test_pmfc                 C   s|   t dd}tg d}tt|| }| }t|| t dd}| }t|d t dd}| }t|d d S )Nr5   rc   )      ?rc   r   rh   r   )	r/   r   r`   r   sumr   rL   r   r   )r   r*   
expected_p
expected_hhr+   r+   r,   test_entropy   s    

zTestBinom.test_entropyc                 C   sh   t  L t dt ttjddd d ttjddd d W d    n1 sZ0    Y  d S )Nerrorr5   r   )np)	warningscatch_warningssimplefilterRuntimeWarningr   r/   r   meanstdr   r+   r+   r,   test_warns_p0  s    
zTestBinom.test_warns_p0N)r   r   r   r   r   r   r   r   r+   r+   r+   r,   r      s
   r   c                   @   s   e Zd Zdd ZdS )TestArcsinec                 C   s&   t jddg}t|tjtjg d S Nr   r   )r/   Zarcsiner7   r   r`   r   r   r   r+   r+   r,   test_endpoints  s    zTestArcsine.test_endpointsN)r   r   r   r   r+   r+   r+   r,   r   	  s   r   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestBernoullic                 C   s   t jd d S r   r   r   r+   r+   r,   r     s    zTestBernoulli.setup_methodc                 C   s   t jjddd}tt|dkt|dk@  tt|dk t|jjt	d v  t jd}tt
|t t dd}tt
|tj t|jjt	d v  d S )Nr   r   r   r   r   r   r~   )r/   	bernoullir   r   r8   r   r   r   r   r   r   r   r   r   r+   r+   r,   r     s     zTestBernoulli.test_rvsc                 C   st   t d}dtd dtd  }| }t|| t d}| }t|d t d}| }t|d d S )Nr         пr   rh   r   )r/   r   r`   logrL   r   r   )r   r*   r   r   r+   r+   r,   r   !  s    




zTestBernoulli.test_entropyN)r   r   r   r   r   r   r+   r+   r+   r,   r     s   r   c                   @   s   e Zd Zdd ZdS )TestBradfordc                 C   s:   d}t dd}tj||}tj||}t|| d S )NrZ   )r`   logspacer/   ZbradfordrA   ppfr   )r   cr>   qxxr+   r+   r,   test_cdf_ppf3  s
    zTestBradford.test_cdf_ppfN)r   r   r   r   r+   r+   r+   r,   r   1  s   r   c                   @   s    e Zd ZdZdd Zdd ZdS )TestChignT9;c                 C   s"   t jdd}t|| jdd d S )Nr\      ri   rj   )r/   chisfr   CHI_SF_10_4r   r=   r+   r+   r,   test_sfA  s    zTestChi.test_sfc                 C   s"   t j| jd}t|ddd d S )Nr   r\   ri   rj   )r/   r   isfr   r   r   r>   r+   r+   r,   test_isfE  s    zTestChi.test_isfN)r   r   r   r   r   r   r+   r+   r+   r,   r   ;  s   r   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )
TestNBinomc                 C   s   t jd d S r   r   r   r+   r+   r,   r   K  s    zTestNBinom.setup_methodc                 C   s   t jjdddd}tt|dk tt|dk t|jjt	d v  t jdd}tt
|t t ddd}tt
|tj t|jjt	d v  d S r   )r/   nbinomr   r   r8   r   r   r   r   r   r   r   r   r   r+   r+   r,   r   N  s    zTestNBinom.test_rvsc                 C   sH   t ttjdddtjddd tjjddd}t|d d S )Ni  i  gp=
ף?r   r   )	r   r`   expr/   r  logpmfr   r.   r   )r   r   r+   r+   r,   r   Y  s
    zTestNBinom.test_pmfN)r   r   r   r   r   r   r+   r+   r+   r,   r  J  s   r  c                   @   st   e Zd Zdd Zejjdd Zejjdd Zejjdd Z	ejjd	d
 Z
dd Zdd Zdd Zdd ZdS )TestGenInvGaussc                 C   s   t jd d S r   r   r   r+   r+   r,   r   c  s    zTestGenInvGauss.setup_methodc                 C   s:   t dd}t |jddd|j\}}t|dkd d S )Nffffff@      ?  r   r   random_state皙?Tr/   geninvgausskstestr   rA   r   r   gig_r   r+   r+   r,   test_rvs_with_mode_shiftf  s    z(TestGenInvGauss.test_rvs_with_mode_shiftc                 C   s:   t dd}t |jddd|j\}}t|dkd d S )N?r   r  r   r	  r  Tr  r  r+   r+   r,   test_rvs_without_mode_shiftm  s    z+TestGenInvGauss.test_rvs_without_mode_shiftc                 C   s:   t dd}t |jddd|j\}}t|dkd d S )NrZ   皙?r  r   r	  r  Tr  r  r+   r+   r,   test_rvs_new_methodt  s    z#TestGenInvGauss.test_rvs_new_methodc                 C   s<   dd }t |ddd t |ddd t |ddd d S )Nc                 S   s0   t | |}|jddd}t ||jd dkS )Nr  r   r	  r   r  )r/   r  r   r  rA   )r   r*   r  r   r+   r+   r,   my_ks_check}  s    z4TestGenInvGauss.test_rvs_p_zero.<locals>.my_ks_checkr   r  Tr  r  )r   )r   r  r+   r+   r,   test_rvs_p_zero{  s    zTestGenInvGauss.test_rvs_p_zeroc                 C   s6   t tddjddddtddjddd  d S )N      r5   r\   r   r	  r   r  )r   r/   r  r   r   r+   r+   r,   test_rvs_negative_p  s    z#TestGenInvGauss.test_rvs_negative_pc                 C   s   t jjddddd}tt j|ddgdd dkd	 d
tddd }}t jj|dd| |d}t|t 	|| t jj
|dd| |d}t|t 	|
| d S )Nr        r   r   )r   r   r*   r
  r   r   333333?Tr]   re   r\   )r   r*   r4   )r/   r  r   r   r  r`   r   r7   r   r   rA   )r   Zigmur>   Zpdf_igZcdf_igr+   r+   r,   test_invgauss  s     zTestGenInvGauss.test_invgaussc                 C   s6   t g d}t ddd}t|tj|dd d S )N)
g;g8y8?g\}Z?ghܲ<?g&Khdd?g7!L?g	Cf?g_诱?g>0|?gRq?re   r   r\   rc   r   )r`   r   r   r   r/   r  r7   )r   vals_Rr>   r+   r+   r,   
test_pdf_R  s    zTestGenInvGauss.test_pdf_Rc                 C   s0   t tjdddd t tjdddd d S )Nr   rc   g    >Ar   r5   )r   r/   r  r7   r   r+   r+   r,   test_pdf_zero  s    zTestGenInvGauss.test_pdf_zeroN)r   r   r   r   r   markslowr  r  r  r  r  r  r!  r"  r+   r+   r+   r,   r  b  s   




r  c                   @   sT   e Z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 )TestGenHyperbolicc                 C   s   t jd d S r   r   r   r+   r+   r,   r     s    zTestGenHyperbolic.setup_methodc           
      C   sl   t g d}d\}}}d\}}||| || f}tj|||d}t ddd}	t||	|ddd	 d S )
N)
gF^T=g{X'=gNunƢsy>g7!t?gɫzI?g̸?g?gq6.?gmPZz?g:PgN?r5   r5   r   rc   r  r2   r\   r   vIh%<=r   rk   )r`   r   r/   genhyperbolicr   r   r7   
r   r   lmbdar   betar  deltar   ghr>   r+   r+   r,   
test_pdf_r  s    
zTestGenHyperbolic.test_pdf_rc           
      C   sl   t g d}d\}}}d\}}||| || f}tj|||d}t ddd}	t||	|ddd	 d S )
N)
g=R0W<=gEB=g#Nb>g_PG>g! 1Or?gUM?g u./?gfy?gl5\?gkV?r&  r'  r2   r(  r\   r   ư>r*  )r`   r   r/   r+  r   r   rA   r,  r+   r+   r,   
test_cdf_r  s    
zTestGenHyperbolic.test_cdf_rc                    s\   g d}d\}}}d\|| | f  fddt ddD }t||dd	d
 d S )N)g@쐧@g@쐧 @g܊B@gvGăi@r&  r'  c                    s$   g | ]}t j d |qS )r2   )r/   r+  moment)rE   ir   r/  r  r+   r,   rG     s   z4TestGenHyperbolic.test_moments_r.<locals>.<listcomp>r   r   r   r)  r*  )ranger   )r   r   r-  r   r.  Zvals_usr+   r6  r,   test_moments_r  s    	
z TestGenHyperbolic.test_moments_rc           
      C   sd   d\}}}d\}}||| || f}t j|||d}t |jddd|j\}}	t|	dkd d S )	Nr&  r'  r2   r  r   r	  r  T)r/   r+  r  r   rA   r   )
r   r-  r   r.  r  r/  r   r0  r  r   r+   r+   r,   r     s    
zTestGenHyperbolic.test_rvsc           	      C   s   t ddd}t |dt t jj d }}dt | }}| d ||f}tj|||d}t |	d|	dd	d d t j
f }t||tj||dd
d d S )Nr   r   r\   r5   r   r2   re   Gz?r   r2  r*  )r`   r   float_powerfinfofloat32epssqrtr/   r+  r   newaxisr   r7   t)	r   dfr   r.  r  r/  r   r0  r>   r+   r+   r,   
test_pdf_t  s     (zTestGenHyperbolic.test_pdf_tc           	      C   s   dt t jjd  }}}d\}}|||f}tj|||d}t |d|ddd d t jf }t	|
|tj
|ddd	 d S )
Nr  r   )r   r   r2   re   r9  r   r2  r*  )r`   r;  r<  r=  r/   r+  r   r   r?  r   r7   cauchy)	r   r-  r   r.  r  r/  r   r0  r>   r+   r+   r,   test_pdf_cauchy  s    
(z!TestGenHyperbolic.test_pdf_cauchyc           	      C   s   t ddd}t t jj}d\}}}||| || f}tj|||d}t dddd d t jf }t|	|tj
j	||ddd	d
d d S )Nr(  r\   )r   r   r   r2   r      r   r   r   dy=r*  )r`   r   r;  r<  r=  r/   r+  r?  r   r7   laplace)	r   r3   r/  r-  r   r.  r   r0  r>   r+   r+   r,   test_pdf_laplace!  s    
z"TestGenHyperbolic.test_pdf_laplacec           	   	   C   s   t dddt dddt dtd t dddt dddf\}}}}d	}||| || f}tj|||d
}t |d|ddd d t jf }t|	|tj
j	|||||dddd d S )Nr   rE  r\   r      r]   r  r2   re   r9  r   )r)   r*   r3   r4   r)  r*  )r`   r   r:  r7  r/   r+  r   r?  r   r7   norminvgauss)	r   r   r.  r/  r  r-  r   r0  r>   r+   r+   r,   test_pdf_norminvgauss6  s    (
z'TestGenHyperbolic.test_pdf_norminvgaussN)r   r   r   r   r1  r3  r8  r   rB  rD  rH  rM  r+   r+   r+   r,   r%    s   r%  c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )TestNormInvGaussc                 C   s   t jd d S r   r   r   r+   r+   r,   r   N  s    zTestNormInvGauss.setup_methodc                 C   s@   t g d}t g d}tjj|ddd}t||dd d S )N)gp~٧>g @X>g}e?g{)߳?gwH?ir      r   r   rc   r)   r*   &.>r   )r`   r   r/   rL  rA   r   )r   Zr_cdfx_testvals_cdfr+   r+   r,   
test_cdf_RQ  s    zTestNormInvGauss.test_cdf_Rc                 C   s@   t g d}t g d}tjj|ddd}t||dd d S )N)gp϶>g\H55$?geСt&?go NiH?g]u>rO  r   rc   rR  rS  rT  )r`   r   r/   rL  r7   r   )r   Zr_pdfrU  Zvals_pdfr+   r+   r,   r!  ]  s    zTestNormInvGauss.test_pdf_Rc                 C   s   d\}}t |d |d  }|| |d |d  d| |t |  ddd|d  |d    | f}t|tjj||dd d S )	Nr   rc   r5   r~         @r   r   mvskmoments)r`   r>  r   r/   rL  )r   r)   r*   gammaZv_statsr+   r+   r,   
test_statse  s    (zTestNormInvGauss.test_statsc                 C   s@   d\}}t g d}tj|||}t|tj||| d S )NrX  MbP?rc   +?)r`   r   r/   rL  r   r   rA   )r   r)   r*   rU  r   r+   r+   r,   test_ppfl  s    zTestNormInvGauss.test_ppfN)r   r   r   r   rW  r!  r^  rb  r+   r+   r+   r,   rN  M  s
   rN  c                   @   sL   e Z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 )TestGeomc                 C   s   t jd d S r   r   r   r+   r+   r,   r   t  s    zTestGeom.setup_methodc                 C   s   t jjddd}tt|dk tt|dk t|jjt	d v  t jd}tt
|t t dd}tt
|tj t|jjt	d v  d S )Nr   r   r   r   r   r~   )r/   geomr   r   r8   r   r   r   r   r   r   r   r   r   r+   r+   r,   r   w  s    zTestGeom.test_rvsc                 C   s$   t jg dd}t|g d d S )Nr}   rc   )rc   r         ?)r/   rd  r   r   r   r   r+   r+   r,   r     s    zTestGeom.test_pmfc                 C   sV   t tjg dd}tjg dd}t||ddd tjdd}t|d d S )Nr}   rc   ri   r   r   r   rh   )r`   r   r/   rd  r   r  r   r   )r   r   r   r   r+   r+   r,   test_logpmf  s
    zTestGeom.test_logpmfc                 C   sL   t jg dd}t jg dd}tg d}t|| t|d|  d S )Nr}   rc   rc   r   g      ?r   )r/   rd  rA   r   r   r   r   r   vals_sfrX   r+   r+   r,   test_cdf_sf  s
    
zTestGeom.test_cdf_sfc                 C   sV   t jg dd}t jg dd}tg d}t|t| t|t|  d S )Nr}   rc   rh  )	r/   rd  logcdflogsfr   r   r`   r   Zlog1pri  r+   r+   r,   test_logcdf_logsf  s
    zTestGeom.test_logcdf_logsfc                 C   s,   t jg dd}tg d}t|| d S )Nrh  rc   )r   rg   rY  )r/   rd  r   r   r   r   r   rX   r+   r+   r,   rb    s    zTestGeom.test_ppfc                 C   s   t tjddddd d S )N#B;r   +=rT  )r   r/   rd  r   r   r+   r+   r,   test_ppf_underflow  s    zTestGeom.test_ppf_underflowN)r   r   r   r   r   r   rg  rk  rn  rb  rr  r+   r+   r+   r,   rc  s  s   
rc  c                   @   s$   e Zd Zdd Zdd Zdd ZdS )
TestPlanckc                 C   s   t jd d S r   r   r   r+   r+   r,   r     s    zTestPlanck.setup_methodc                 C   s,   t jg dd}tg d}t|| d S )Nr}   r   )g|dy?g8'\>ggrU!>)r/   planckr   r   r   ro  r+   r+   r,   r     s    zTestPlanck.test_sfc                 C   s,   t jg dd}tg d}t|| d S )N)     @@     @@     p@ru  )g    P.g    h>g    TF)r/   rt  rm  r   r   ro  r+   r+   r,   
test_logsf  s    zTestPlanck.test_logsfN)r   r   r   r   r   rx  r+   r+   r+   r,   rs    s   rs  c                   @   s   e Zd Zdd Zdd ZdS )TestGennormc                 C   s0   g d}t j|d}t j|}t|| d S Nr}   r   )r/   gennormr7   rG  r   r   pointspdf1pdf2r+   r+   r,   test_laplace  s    zTestGennorm.test_laplacec                 C   s4   g d}t j|d}t jj|dd}t|| d S Nr}   r5   g;f?r4   )r/   r{  r7   normr   r|  r+   r+   r,   	test_norm  s    zTestGennorm.test_normN)r   r   r   r  r  r+   r+   r+   r,   ry    s   ry  c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestHalfgennormc                 C   s0   g d}t j|d}t j|}t|| d S rz  )r/   halfgennormr7   exponr   r|  r+   r+   r,   
test_expon  s    zTestHalfgennorm.test_exponc                 C   s4   g d}t j|d}t jj|dd}t|| d S r  )r/   r  r7   Zhalfnormr   r|  r+   r+   r,   test_halfnorm  s    zTestHalfgennorm.test_halfnormc                 C   s6   g d}t j|d}t j|d}t|d|  d S )Nr}   g
(?r5   )r/   r  r7   r{  r   r|  r+   r+   r,   test_gennorm  s    zTestHalfgennorm.test_gennormN)r   r   r   r  r  r  r+   r+   r+   r,   r    s   r  c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestLaplaceasymmetricc                 C   s6   t g d}tj|d}tj|}t|| d S rz  )r`   r   r/   laplace_asymmetricr7   rG  r   r|  r+   r+   r,   r    s    z"TestLaplaceasymmetric.test_laplacec                 C   sL   t g d}d}d| }tj||}tj||d  |}t|| d S )Nr}   r5   r   )r`   r   r/   r  r7   r   )r   r}  rl   Zkapinvr~  r  r+   r+   r,   test_asymmetric_laplace_pdf  s    z1TestLaplaceasymmetric.test_asymmetric_laplace_pdfc              	   C   s   t t d t dg}d}tj||}tj||}tj||}t ddg}t ddg}t dd	g}tj||}	|}
tj	||}|}t
t ||||	|ft ||||
|f d S )
N   r\   r5   rZ   gMbp?r  gV-?皙?gMb`?)r`   r   r   r/   r  r7   rA   r   r   r   r   concatenate)r   r}  rl   r~  Zcdf1Zsf1r  Zcdf2Zsf2Zppf1Zppf2Zisf1Zisf2r+   r+   r,   !test_asymmetric_laplace_log_10_16  s    z7TestLaplaceasymmetric.test_asymmetric_laplace_log_10_16N)r   r   r   r  r  r  r+   r+   r+   r,   r    s   	r  c                   @   s   e Z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dZ
ejddd Zdd Zdd Zdd Zdd ZdS )TestTruncnormc                 C   s   t jd d S r   r   r   r+   r+   r,   r     s    zTestTruncnorm.setup_methodc              	   C   sJ   t jjg ddddgd dd}ttjdd	dd
dtjg}t|| d S )Nr  r   -C6?rc   gH.?r   r5         r   r~      r5   r2   r   fO?l@r   )r/   	truncnormr   r`   r   r   r   ro  r+   r+   r,   test_ppf_ticket1131  s
    
z!TestTruncnorm.test_ppf_ticket1131c              	   C   sJ   t jjg ddddgd dd}ttjdd	dd
dtjg}t|| d S )Nr  r  r   r~   r  r5   r2   r   r  r  r   )r/   r  r   r`   r   r   r   ro  r+   r+   r,   test_isf_ticket1131  s
    
z!TestTruncnorm.test_isf_ticket1131c                 C   s   d\}}t jj||dddd}t||   k oD|   k oD|k n   d\}}t jj||dddd}t||   k o|   k o|k n   d S )N)ir(  r   r   r\   r   )r\      r/   r  r   r   minmaxr   lowhighr>   r+   r+   r,   test_gh_2477_small_values  s    .z'TestTruncnorm.test_gh_2477_small_valuesc                 C   sF  d\}}t jj||dddd}t||   koD|   koD|kn  t|||gf d\}}t jj||dddd}t||   k o|   k o|k n   d\}}t jj||dddd}t||   k o|   k o|k n   d\}}t jj||dddd}t||   k o:|   k o:|k n   d S )	N)r]   r[   r   r   r\   r   )    )'  i'  )ii)r/   r  r   r   r  r  rO   r  r+   r+   r,   test_gh_2477_large_values  s    <..z'TestTruncnorm.test_gh_2477_large_valuesc                 C   s  ddgddgfD ]\}}t t j ||t jg}|| d }tj|||}tj|||}tj|||}t g d}t g d}	t g d}
|d	k rt g d
}
t|| t||	 t||
 tt 	|
d |
d  |d  t g d}tj
|||}t |t |d |g}t|| |d	k rfttj|||d ttj|||d n,ttj|||d ttj|||d tj|||}tt 	||
d  |d d  qd S )Nr~   r   r   rg   r   r   r   r   r   r   rh   rh   )r   d._MT
@BKg?r   r   )r   r  r  r   r   r5   rc   r   rc   r   gĖy	@gdv*?g,mj%V?r   )r`   r   r   r/   r  rA   r   r7   r   r   r   sign)r   r  r  xvalsxmidcdfssfspdfsexpected_cdfsexpected_sfsexpected_pdfspvalsppfsexpected_ppfsr7   r+   r+   r,   test_gh_9403_nontail_values0  sH    




z)TestTruncnorm.test_gh_9403_nontail_valuesc                 C   s  ddgddgfD ]x\}}t t j ||t jg}|| d }tj|||}tj|||}tj|||}t g d}t g d}	t g d}
|d	k rt g d
}
t|| t||	 t||
 tt 	|
d |
d  |d  t g d}tj
|||}t |t |d |g}t|| tj|||}t|| |d	k rttj|||d ttj|||d n,ttj|||d ttj|||d tj|||}tt 	||
d  |d d  t ||d}|d d d  }ttj|||tj|| | d d d  ttj|||tj|| | d d d  ttj|||tj|| | d d d  qd S )N'   (   rg   r  r  )r   pGC@Ff<r   r   )r   r  r  r   r   r5   rc   r  gEC@g i?gspXio)>r   r  rJ  )r`   r   r   r/   r  rA   r   r7   r   r   r   r  r   )r   r  r  r  r  r  r  r  r  r  r  r  r  r  r7   Zxvals2r+   r+   r,   test_gh_9403_medium_tail_valuesS  sb    





 z-TestTruncnorm.test_gh_9403_medium_tail_valuesr  c                 C   s^   |d d \}}}}t jj ||dd\}	}
}}t|	| t|
| t|||d t|| d S )Nr   rZ  r[  r   )r/   r  r   )r   r)   r*   rX   	decimal_sZm0Zv0Zs0Zk0mvr=   r;   r+   r+   r,   _test_moments_one_range  s    

z%TestTruncnorm._test_moments_one_rangez&reduced accuracy with 32bit platforms.c                 C   s   |  ddg d |  ddg d |  ddg d |  d	d
g d |  dtjg d |  tj dg d |  ddg d |  ddg d |  ddg d |  ddg d | j ddg ddd |  ddg d |  dd g d! d S )"Nr   )r   r   rh   rh   r(  r\   r  r~   )rh   gMFmz%?rh   gſr5   )rh   ghI}?rh   gHNMr   )gQ63E?nl$A?gv1"D?<8L?)gQ63Er  gv1"Dr  rJ  )gU*? bn?gnA?!c3TXʿr   )gU*ҿr  gnAr  )gH$7"g͢xr?gN8`gp=#K@r   i)gif3g6oRf?gg+15|@i)go=gqXS?gCØsgm@   )r  r  r  )gGC&SԍuE?gynw@r  r  )gGC@r  gy?r  )r  r`   r   r   r+   r+   r,   test_moments  s    	zTestTruncnorm.test_momentsc                 C   s0   t jj dtjdd\}}t|d t|d d S )Nr   mvr[  g e3E?g:&A?)r/   r  r`   r   r   )r   r  r  r+   r+   r,   test_9902_moments  s    
zTestTruncnorm.test_9902_momentsc                 C   sP   d\}}t jj||dddd}t||   k oD|   k oD|k n   d S )N)r\   r   r   r   r\   r   r  r  r+   r+   r,   test_gh_1489_trac_962_rvs  s    z'TestTruncnorm.test_gh_1489_trac_962_rvsc                 C   s   ddt j dt j t j dddddg}dddt jddddd	t jt jg}tjj||dt|fd
}t |dt|fkszJ tt ||j	ddk tt |j
dd|k d S )Nr(  r\   rP  ir  r  r   r  -   r   r   )Zaxis)r`   r   r/   r  r   r   r   r   r   r  r  r  r+   r+   r,   test_gh_11299_rvs  s    & zTestTruncnorm.test_gh_11299_rvsc                 C   s*   t tjdr&tjjdddtj d d S )Ndefault_rngr(  rP  r   r	  )r(   r`   r   r/   r  r   r  r   r+   r+   r,   test_rvs_Generator  s    z TestTruncnorm.test_rvs_GeneratorN)r  )r   r   r   r   r  r  r  r  r  r  r  r   r#  Zxfail_on_32bitr  r  r  r  r  r+   r+   r+   r,   r    s   
#/


7
r  c                   @   s&   e Zd Zejdg ddd ZdS )TestGenLogisticx, expected))ig4`n)ig4	ncg)r   gX
=)r]   gh@X)r  gh<c                 C   s$   d}t j||}t||dd d S )Nr  r)  rj   )r/   Zgenlogisticr   r   )r   r>   rX   r   logpr+   r+   r,   test_logpdf  s    zTestGenLogistic.test_logpdfN)r   r   r   r   r#  parametrizer  r+   r+   r+   r,   r    s   r  c                   @   sT   e Z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 )TestHypergeomc                 C   s   t jd d S r   r   r   r+   r+   r,   r     s    zTestHypergeom.setup_methodc                 C   s   t jjddddd}tt|dkt|dk@  tt|dk t|jjt	d v  t jddd}tt
|t t dddd}tt
|tj t|jjt	d v  d S )NrE  r\   r~   r   r   r   r   )r/   	hypergeomr   r   r8   r   r   r   r   r   r   r   r   r   r+   r+   r,   r     s    zTestHypergeom.test_rvsc                 C   s6   d}d}d}|}|}t jd|||}t|dd d S )Ni	  r     r5   gkㅒP?r  )r/   r  r   r   )r   Mr   NZtotZgoodZhgpmfr+   r+   r,   test_precision  s    zTestHypergeom.test_precisionc                 C   sl   t tjdddddd t tjdddddd t tjdddddd t tjdddddd d S )Nr   r5   r   r   r  rh   )r   r/   r  r   r   r+   r+   r,   	test_args  s    zTestHypergeom.test_argsc                 C   s.   t dtjdddd  ko"dkn   d S )Nr   r   io i  if0  r   )r   r/   r  rA   r   r+   r+   r,   test_cdf_above_one  s    z TestHypergeom.test_cdf_above_onec                    s   d dt g dd }d fdd|D }t g d}t||d	d
d g d}tj|   d}g d}t||d	d
d d S )Ng    +@g     @)r~   ffffff@333333@r   gffffff@g@r        @     @c                    s"   g | ]}t j   |qS r+   )r/   r  r   )rE   ZeatenZorangesZpearsquantiler+   r,   rG     s   z1TestHypergeom.test_precision2.<locals>.<listcomp>)r   gpR(g㘍R2gJޱ p9g?Mf=
G?r   r   gƠ>r*  )g     @r  g     @g     @g     @)r   r  g)9g"1)r`   r   r   r/   r  r   )r   Zfruits_eatenresrX   Z	quantilesres2Z	expected2r+   r  r,   test_precision2  s    zTestHypergeom.test_precision2c                 C   sd   t ddd}| }tddg}tt|| }t|| t ddd}| }t|d d S )Nr   r   r   r   rh   )	r/   r  rL   r`   r   r   r   r   r   )r   Zhgr   r   r   r+   r+   r,   r   &  s    
zTestHypergeom.test_entropyc                 C   sl   d}d}d}d}t j||||}d}t||dd d}d	}d
}d}t j||||}d}t||dd d S )Nr      cA    .A     j@gor~   r   r   @  iX  ,  g_7	j$r   )r/   r  rm  r   r   r;   r  r   r  resultrX   r+   r+   r,   rx  2  s    zTestHypergeom.test_logsfc                 C   s   d}d}d}d}t j||||}d}t||dd d}d	}d
}d}t j||||}d}t||dd d}d	}d}d}t j||||}d}t||dd tg d}d	}d
}d}t j||||}tdd}t||dd d S )Nr   r  r  r  g)\Ur~   r   r  r  r   r  g*@Vr   }      r  gר)r  r  r  )r/   r  rl  r   r`   r   fullr  r+   r+   r,   test_logcdfJ  s8    zTestHypergeom.test_logcdfN)r   r   r   r   r   r  r  r  r  r   rx  r  r+   r+   r+   r,   r    s   
	r  c                   @   s6   e Zd Zejdddgdd Zdd Zdd	 Zd
S )TestLoggammazx, c, sf)r   r  gQOu3;)r  r]   g\Z{0c                 C   s<   t j||}t||dd t j||}t||dd d S N-q=rj   )r/   loggammar   r   r   )r   r>   r   r   r=   yr+   r+   r,   test_sf_isf  s    zTestLoggamma.test_sf_isfc                 C   s    t jdd}t|ddd d S )Nir5   g     @rq  rj   )r/   r  r   r   )r   lpr+   r+   r,   r    s    zTestLoggamma.test_logpdfc                 C   sT   t g ddd}|D ]4\}}}}}tjj|dd}t|||||gdd qd S )N)rc   g"~jg46<@g oŏ      @r   g	h"lxgQ?gZd;333333@g      (@g{/L@g??gгYҿgh|?5?rJ  r   Zmsvkr[  r   r   )r`   r   reshaper/   r  r   )r   tabler   r   varskewZkurtcomputedr+   r+   r,   r^    s    zTestLoggamma.test_statsN)	r   r   r   r   r#  r  r  r  r^  r+   r+   r+   r,   r  y  s   

r  c                   @   st   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zej	
dejdgdd Zej	
dejdgdd ZdS )TestLogisticc                 C   s2   t dd}tj|}tj|}t|| d S Nr   rE  )r`   r   r/   logisticrA   r   r   r   r>   r  r   r+   r+   r,   r     s    zTestLogistic.test_cdf_ppfc                 C   s2   t dd}tj|}tj|}t|| d S r	  )r`   r   r/   r
  r   r   r   r  r+   r+   r,   r    s    zTestLogistic.test_sf_isfc                 C   s4   d}d}t tjd| | t tj|| d S )Ng      <gg|EA@r   )r   r/   r
  r   r   )r   r   Zdesiredr+   r+   r,   test_extreme_values  s    z TestLogistic.test_extreme_valuesc                 C   s*   t jg d}g d}t||dd d S )N)ir   r\   )gm\  .g9B.gO& $r)  rj   )r/   r
  r   r   )r   r  rX   r+   r+   r,   test_logpdf_basic  s    zTestLogistic.test_logpdf_basicc                 C   s"   t jddg}t|ddg d S )Nrb   i)r/   r
  r   r   r   r  r+   r+   r,   test_logpdf_extreme_values  s    z'TestLogistic.test_logpdf_extreme_valuesloc_rvs,scale_rvsr5   c                 C   sR   t jjd||d}dd }t|t j||fdj}t j|}t||dd d S )Nr]   r   r3   r4   c                 S   s   | \}}t |}tt|| | dt|| |   |d  }t|| | t|| | d t|| | d   | }||fS Nr   r5   )r   r`   r   r  )inputrs   r)   r*   r   x1x2r+   r+   r,   rt     s    z#TestLogistic.test_fit.<locals>.funcr  gKH9rT  )r/   r
  r   r    	_fitstartr>   ro   r   )r   loc_rvs	scale_rvsrs   rt   Zexpected_solutionZ
fit_methodr+   r+   r,   test_fit  s    

zTestLogistic.test_fitc                 C   sH   t jjd||d}|t j|fg}t j|i d }tt j|| d S Nr]   r  r   )r/   r
  r   r  _reduce_funcrv   )r   r  r  rs   r   rt   r+   r+   r,   test_fit_comp_optimizer  s    z$TestLogistic.test_fit_comp_optimizerN)r   r   r   r   r  r  r  r  r   r#  r  r`   r   randr  r  r+   r+   r+   r,   r    s   
r  c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )

TestLogserc                 C   s   t jd d S r   r   r   r+   r+   r,   r     s    zTestLogser.setup_methodc                 C   s   t jjddd}tt|dk tt|dk t|jjt	d v  t jd}tt
|t t dd}tt
|tj t|jjt	d v  d S )Nr   r   r   r   r   r~   )r/   logserr   r   r8   r   r   r   r   r   r   r   r   r   r+   r+   r,   r     s    zTestLogser.test_rvsc                 C   s   t jdd}t|d d S )Nr   rp  g&Y3)r/   r  r   r   r   r  r+   r+   r,   test_pmf_small_p  s    zTestLogser.test_pmf_small_pc                 C   s   t jd}t|d d S )N:0yE>gW  ?)r/   r  r   r   r   r+   r+   r,   test_mean_small_p  s    zTestLogser.test_mean_small_pN)r   r   r   r   r   r!  r#  r+   r+   r+   r,   r    s   r  c                   @   sp   e Zd Zdd Zejdejej	gejde
jdgdd Zejdejd	fej	d
fgdd ZdS )TestGumbel_r_lc                 C   s   t jd d S r   r   r   r+   r+   r,   r     s    zTestGumbel_r_l.setup_methodrF   r  r5   c                 C   s@   |j d||d}|||fg}||i d }t||| d S r  )r   r  r  rv   )r   rF   r  r  rs   r   rt   r+   r+   r,   r    s    z&TestGumbel_r_l.test_fit_comp_optimizerz	dist, sgnr   rJ  c                 C   s@   |t g d }||\}}t||d  t|ddd d S )N)r~   r~   r~   r~   r~   r~   r~   gW  @g   @g3qtw>r2  rj   )r`   r   ro   r   )r   rF   Zsgnzr3   r4   r+   r+   r,   r    s    zTestGumbel_r_l.test_fitN)r   r   r   r   r   r#  r  r/   gumbel_rgumbel_lr`   r   r  r  r  r+   r+   r+   r,   r$    s   
r$  c                   @   s   e Zd Zdd Zdd Zejdejdddgejd	d
dgejdddgdd Z	ejdejdddgejd	d
dgejdddgdd Z
dd ZdS )
TestParetoc                 C   s  t   t dt tjjddd\}}}}t|tj t|tj t|tj	 t|tj	 tjjddd\}}}}t|tj t|tj t|tj	 t|tj	 tjjddd\}}}}t|d t|tj t|tj	 t|tj	 tjjddd\}}}}t|d t|tj t|tj	 t|tj	 tjjd	dd\}}}}t
|d
 t
|d t|tj	 t|tj	 tjjddd\}}}}t
|d t
|d t|tj	 t|tj	 tjjddd\}}}}t
|d t
|d t
|dtd  t|tj	 tjjddd\}}}}t
|d t
|d t
|dtd  t|tj	 tjjddd\}}}}t
|d t
|d t
|dtd  t
|d W d    n1 s0    Y  d S )Nr   rc   rZ  r[  r   r  rY  rg         @g?grq@r         @gffffff?gK~?g      2@g۶m۶m?r  UUUUUU?gqq?      $@      @g%I$I?gQ?gUUUUUU@grq?g88Nb@)r   r   r   r   r/   paretor   r`   r   r   r   r>  r   r  r  r=   r;   r+   r+   r,   r^  )  s^    











zTestPareto.test_statsc                 C   s:   d}d}d}t jj||d|d}|| | }t|| d S )Ng    eAr5   r  r   r2   )r/   r.  r   r   )r   r>   r*   r4   r   rX   r+   r+   r,   r   e  s    zTestPareto.test_sfz2ignore:invalid value encountered in double_scalars	rvs_shaper   r5   rvs_locr   	rvs_scaler   c                 C   s  t jjd|||d}t jj|dddd }t jj|dddd }t jj|dddd }||  krt|  krtdkszn J t jjd|||d d}t jj|dd	\}}	}
t|
d |  t|d
d
t|d  tt	|d | d     t|	d d S )Nr]   r   r*   r4   r3   r   p=
ף?rw   rz   )rw   fix_b)rw   fbr5   rw   r   )
r/   r.  r   ro   r   r  r   r`   r   r   )r   r0  r1  r2  rs   Zshape_mle_analytical1Zshape_mle_analytical2Zshape_mle_analytical3Zshape_mle_aZ	loc_mle_aZscale_mle_ar+   r+   r,   r  m  s0    

zTestPareto.test_fitc                 C   s   t jjd|||d}|t j|fg}t j|i d }tt j|||d tt j||dd tt j||ddd tt j||d|d d	 d S )
Nr]   r3  r   r8  r   r   r5  r5   rw   rx   )r/   r.  r   r  r  rv   )r   r0  r1  r2  rs   r   rt   r+   r+   r,   test_fit_MLE_comp_optimzer  s    z%TestPareto.test_fit_MLE_comp_optimzerc                 C   s@   t tj tttjjg ddd tttjjg dddd d S )Nr}   r5   r8  )r   r5   r~   r   r~   r9  )r   r/   r.  assert_raisesr   ro   r   r+   r+   r,   test_fit_warnings  s
    
zTestPareto.test_fit_warningsN)r   r   r   r^  r   r   r#  filterwarningsr  r  r:  r<  r+   r+   r+   r,   r(  (  s   <

r(  c                   @   s   e Z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ejddg dfdddded ejgfdddded d gfd!g d"fgd#d$ Zd%d& Zd'S )(TestGenparetoc                 C   sl   dD ]6}t |}tj|\}}t|d tt | qt d}tj|\}}t||gddg d S )Nr   rh   rh          rc   )	r`   asarrayr/   	genpareto_get_supportr   r   isposinfr   )r   r   r)   r*   r+   r+   r,   test_ab  s    


zTestGenpareto.test_abc                 C   s   t jdd}tddd}t||t j| t||t j| t||t j| tddd}t|	|t j	| d S )Nrh   r   r   r,  r   r   r\   )
r/   rB  r`   r   r   r7   r  rA   r   r   r   rvr>   r   r+   r+   r,   test_c0  s    zTestGenpareto.test_c0c                 C   s   t jdd}tddd}t||t j| t||t j| t||t j| tddd}t|	|t j	| t|
d	d d S )
Nr  rF  r   r,  r   rh   r   r\   r   )r/   rB  r`   r   r   r7   uniformrA   r   r   r   rG  r+   r+   r,   test_cm1  s    zTestGenpareto.test_cm1c                 C   s   t jdd}t|tj|tjgddg tt|	tj t jdd}t|tj|tjgddg tt|	tj t jdd}t|tj|tjgddg tt|	tj d S )NrZ   rF  rh   r   r  )
r/   rB  r   r7   r`   r   rA   r   isneginfr   r   rH  r+   r+   r,   
test_x_inf  s    """zTestGenpareto.test_x_infc                 C   s   t ddd}dD ]t}tj||}dD ]$}tj||| }t||dd q(tj||}dD ]$}tj||| }t||dd q`qd S )	Nr   r\   r   r   rJ  rq  g+r  rT  )rq  rq  )r`   r   r/   rB  r7   r   rA   )r   r>   r   Zpdf0dcZpdfcZcdf0Zcdfcr+   r+   r,   test_c_continuity  s    zTestGenpareto.test_c_continuityc              	   C   s   t jt jddddt jdddddd	t jdddd f }d
D ]<}tj||}dD ]$}tj||| }t||dd qTq>d S Nr  re   rZ   baser   r   FZendpointr   )rh   r  rP  rT  )r`   r   r   r   r/   rB  r   r   )r   r   r   Zppf0rQ  Zppfcr+   r+   r,   test_c_continuity_ppf  s    z#TestGenpareto.test_c_continuity_ppfc              	   C   s   t jt jddddt jdddddd	t jdddd f }d
D ]<}tj||}dD ]$}tj||| }t||dd qTq>d S rS  )r`   r   r   r   r/   rB  r   r   )r   r   r   Zisf0rQ  Zisfcr+   r+   r,   test_c_continuity_isf  s    z#TestGenpareto.test_c_continuity_isfc              	   C   sj   t jt jddddt jdddddd	t jdddd f }d
D ]&}ttjtj||||dd q>d S )Nr  re   rZ   rT  r   r   FrV  r   )r"  gC]r2ri   gV瞯Ҽri   rT  )	r`   r   r   r   r   r/   rB  rA   r   )r   r   r   r+   r+   r,   test_cdf_ppf_roundtrip  s    z$TestGenpareto.test_cdf_ppf_roundtripc                 C   s    t jdddd}t|d d S )Ng    _Bre   r   r   gpEȜ)r/   rB  rm  r   r  r+   r+   r,   rx    s    zTestGenpareto.test_logsfzc, expected_statsr   )r   r   r5   r  r   r+  gqq@r\   r5   gqq?g      ?g$I$	?rq?r  gll0@rJ  )rc   UUUUUU?r   333333c                 C   s$   t jj |dd}t||ddd d S )NrZ  r[  r)  ri   r   )r/   rB  r   )r   r   expected_statsr  r+   r+   r,   r^    s    zTestGenpareto.test_statsc                 C   s   t jd}t|ddd d S )Nr"  gvǼ
  ?r)  rj   )r/   rB  r  r   )r   r  r+   r+   r,   test_var  s    zTestGenpareto.test_varN)r   r   r   rE  rI  rK  rN  rR  rW  rX  rY  rx  r   r#  r  r`   r>  r   r^  r^  r+   r+   r+   r,   r>    s&   

	


r>  c                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )TestPearson3c                 C   s   t jd d S r   r   r   r+   r+   r,   r   $  s    zTestPearson3.setup_methodc                 C   s   t jjddd}tt|dk t|jjtd v  t jd}tt	|t
 t dd}tt	|tj t|jjtd v  tt|dk d S )NrZ   r   r   ZAllFloatrc   r~   )r/   r%   r   r   r8   r   r   r   r   r   floatr   r   r   r+   r+   r,   r   '  s    zTestPearson3.test_rvsc                 C   s|   t jdg d}t|tg ddd t jdd}t|tdgdd t jg d	d}t|tg d
dd d S )Nr5   rh   rZ   r  )gtT?g+q?g?r2  rT  r  rZ   ND}i?r  r  rJ  r   r   )rb  gj?gdC?gs?g'M?)r/   r%   r7   r   r`   r   rf  r+   r+   r,   r   2  s    zTestPearson3.test_pdfc                 C   sp   t jdg d}t|tg ddd t jdd}t|dgdd t jg d	d}t|g d
dd d S )Nr5   ra  )grE?gTp]0?g~?r2  rT  r  rZ   g E&"J?rc  )giZ*J?gh+8w?gcK?g|<x6?gG?)r/   r%   rA   r   r`   r   rf  r+   r+   r,   r   <  s    
zTestPearson3.test_cdfc                    s@   g d}dd t j|} fdd|D }t|| d S )N)r  rJ  r   rc   rc   r  c                    s$   g | ]}t t|j d  qS rC   )r   r/   r%   r7   )rE   r  Zneg_infZx_evalr+   r,   rG   M  s   z<TestPearson3.test_negative_cdf_bug_11186.<locals>.<listcomp>)r/   r%   rA   r   )r   Zskewsr  Zint_pdfsr+   rd  r,   test_negative_cdf_bug_11186F  s    z(TestPearson3.test_negative_cdf_bug_11186c                 C   sP   t jdd}t|d tt|t t jdd}t|d tt|t d S )Nr   r5   r   r2  )r/   r%   r4  r   rq   r`  )r   r4  r+   r+   r,   test_return_array_bug_11746Q  s    

z(TestPearson3.test_return_array_bug_11746N)	r   r   r   r   r   r   r   re  rf  r+   r+   r+   r,   r_  #  s   

r_  c                   @   sD   e Z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 )
TestKappa4c                 C   sD   g d}d}dD ].}t j|||}t j|| }t|| qd S )N)rh   rZ   r  rc   r   )
gffffffr  r  皙ɿ皙rZ   r  rc   r   ffffff?)r/   kappa4rA   rB  r   r   r>   r   r;   r   Z	vals_compr+   r+   r,   test_cdf_genpareto^  s    zTestKappa4.test_cdf_genparetoc                 C   sL   t ddd}d}t ddd}tj|||}tj||}t|| d S )NrP  r   r\   rh   r  r~   )r`   r   r/   rk  rA   
genextremer   rl  r+   r+   r,   test_cdf_genextremei  s    zTestKappa4.test_cdf_genextremec                 C   s@   t ddd}d}d}tj|||}tj|}t|| d S )Nr   r\   r   rh   )r`   r   r/   rk  rA   r  r   rl  r+   r+   r,   test_cdf_exponr  s    zTestKappa4.test_cdf_exponc                 C   s@   t ddd}d}d}tj|||}tj|}t|| d S )NrP  r   r\   rh   )r`   r   r/   rk  rA   r&  r   rl  r+   r+   r,   test_cdf_gumbel_r{  s    zTestKappa4.test_cdf_gumbel_rc                 C   s@   t ddd}d}d}tj|||}tj|}t|| d S )NrP  r   r\   r  rh   )r`   r   r/   rk  rA   r
  r   rl  r+   r+   r,   test_cdf_logistic  s    zTestKappa4.test_cdf_logisticc                 C   s@   t ddd}d}d}tj|||}tj|}t|| d S )NrP  r   r\   r   )r`   r   r/   rk  rA   rJ  r   rl  r+   r+   r,   test_cdf_uniform  s    zTestKappa4.test_cdf_uniformc                 C   s   t dd d S r  )r/   rk  r   r+   r+   r,   test_integers_ctor  s    zTestKappa4.test_integers_ctorN)
r   r   r   rm  ro  rp  rq  rr  rs  rt  r+   r+   r+   r,   rg  ]  s   					rg  c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )TestPoissonc                 C   s   t jd d S r   r   r   r+   r+   r,   r     s    zTestPoisson.setup_methodc                 C   s@   t d}tjg d|}d|d |d d g}t|| d S )Nr5   r   r   r5   rc   r   )r`   r   r/   poissonr   r   )r   Zln2r   rX   r+   r+   r,   test_pmf_basic  s    
zTestPoisson.test_pmf_basicc                 C   s@   t jg dd}g d}t|| t jdd}t|d d S )Nrv  r   )r   r   r   ffffff?r   r   )r/   rw  r   r   intervalr   )r   r   rX   r{  r+   r+   r,   test_mu0  s
    
zTestPoisson.test_mu0c                 C   s   t jjddd}tt|dk tt|dk t|jjt	d v  t jd}tt
|t t dd}tt
|tj t|jjt	d v  d S )Nrc   r   r   r   r   r~   )r/   rw  r   r   r8   r   r   r   r   r   r   r   r   r   r+   r+   r,   r     s    zTestPoisson.test_rvsc                 C   s   d}t jj |dd}t|||td| d| g tg d}t jj |dd}||tjddtd gtjddgf}t|| d S )	Ng      0@rZ  r[  r   )rh   r   rg   r   r5   rc   )r/   rw  r   r`   r>  r   r   )r   r  r  rX   r+   r+   r,   r^    s     &zTestPoisson.test_statsN)r   r   r   r   rx  r|  r   r^  r+   r+   r+   r,   ru    s
   	ru  c                   @   sl   e Z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d ZdS )	TestKSTwoc                 C   s   t jd d S r   r   r   r+   r+   r,   r     s    zTestKSTwo.setup_methodc                 C   s   dD ]}t dd| d| ddd|  dg}d| | }tj|d }|dkr\t |nd}t dd|| ddtjd|  t	dd|  ddg}tj
||}t|| qd S )Nr   r5   r~   r\   r]   r  r   rc   r   r   r5   rh   )r`   r   r.   r   gammalnr  r/   ksoner   r  kstworA   r   )r   r   r>   v1lgelgrX   rV  r+   r+   r,   r     s    &zTestKSTwo.test_cdfc                 C   s   t ddd}dD ]}t dd| d| ddd|  dg}d| | }tj|d }|dkrjt |nd}t ddd||  dtj	d| t
d| ddg}tj	||}t|| qd S )Nr   r   r  r~  rc   r   r5   )r`   r   r   r.   r   r  r  r/   r  r   r  r  r   )r   r>   r   r  r  r  rX   rj  r+   r+   r,   r     s    &
zTestKSTwo.test_sfc                 C   s\   t ddddd  }g d}|D ]4}|t | }tj||}t |}t|d q"d S )Nr   r5   r  r   )r   r]      i  r  i  r"  )r`   r   r>  r/   r  rA   Zdiffr	   )r   r>   nsZ_xxnprobsZdiffsr+   r+   r,   test_cdf_sqrtn  s    
zTestKSTwo.test_cdf_sqrtnc                 C   sF   t ddd}dD ].}tj||}tj||}t|d|  qd S Nr   r   r  r~  )r`   r   r/   r  rA   r   r   )r   r>   r   rV  rj  r+   r+   r,   rk    s
    zTestKSTwo.test_cdf_sfc                 C   sT   t ddd}dD ]<}|t | }tj||}tj||}t|d|  qd S r  )r`   r   r>  r/   r  rA   r   r   )r   r>   r   r  rV  rj  r+   r+   r,   test_cdf_sf_sqrtn  s    zTestKSTwo.test_cdf_sf_sqrtnc                 C   sn   t ddd}dD ]V}||d| k }tj||}d|k |dk @ }tj||}t|| || dd qd S )	Nr   r   r  r~  rc   r9  r  rj   )r`   r   r/   r  rA   r   r   r   r>   r   r  rV  condr   r+   r+   r,   test_ppf_of_cdf	  s    zTestKSTwo.test_ppf_of_cdfc                 C   sn   t ddd}dD ]V}||d| k }tj||}d|k |dk @ }tj||}t|| || dd qd S )	Nr   r   r  r~  rc   r   r  rj   )r`   r   r/   r  r   r   r   )r   r>   r   r  Zvals_isfr  r   r+   r+   r,   test_isf_of_sf  s    zTestKSTwo.test_isf_of_sfc                 C   st   t ddd}dD ]\}|t | |d| k }tj||}d|k |dk @ }tj||}t|| ||  qd S )Nr   r   r  r~  rc   r   )r`   r   r>  r/   r  rA   r   r   r  r+   r+   r,   test_ppf_of_cdf_sqrtn  s    zTestKSTwo.test_ppf_of_cdf_sqrtnc                 C   st   t ddd}dD ]\}|t | |d| k }tj||}d|k |dk @ }tj||}t|| ||  qd S )Nr   r   r  r~  rc   ry  )r`   r   r>  r/   r  r   r   r   )r   r>   r   r  rj  r  r   r+   r+   r,   test_isf_of_sf_sqrtn%  s    zTestKSTwo.test_isf_of_sf_sqrtnc                 C   sJ   t ddddd  }dD ]*}tj||}tj||}t|| qd S r  )r`   r   r/   r  r   rA   r   )r   r  r   r  rV  r+   r+   r,   rb  /  s
    zTestKSTwo.test_ppfc              	   C   s   g d}t g d}t g dg dg dg dg dg dg}t|D ]J\}}|t d	 t t jd	 |  }tj||}t	||| d
d qLd S )N)r\   r   r]   r  r  r  )r   gUUUUUU?rc   r   r5   r~   )gRT>gr	?gK5
?gn
"5?gU
?gk?)g&6#>gb
E>gI5?g\?g;?g%1?)g6>gL>g<?g䓀^?gO|6$?g qO?)g}+: >gwQ9>gH{?g]qv(?g)~/v?gmJ?)gV27J=gGk(>gWX?gY?g{0`?gZ
H?)g_R=g4>g̪?gT_@?g<e?g2?r5   h㈵>rj   )
r`   r   	enumerater   r>  r9   r/   r  rA   r   )r   r  ZratiosrX   idxr   r>   rV  r+   r+   r,   test_simard_lecuyer_table16  s    "z$TestKSTwo.test_simard_lecuyer_table1N)r   r   r   r   r   r   r  rk  r  r  r  r  r  rb  r  r+   r+   r+   r,   r}    s   
		
r}  c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestZipfc                 C   s   t jd d S r   r   r   r+   r+   r,   r   Y  s    zTestZipf.setup_methodc                 C   s   t jjddd}tt|dk tt|dk t|jjt	d v  t jd}tt
|t t dd}tt
|tj t|jjt	d v  d S )Nr  r   r   r   r   r~   )r/   zipfr   r   r8   r   r   r   r   r   r   r   r   r   r+   r+   r,   r   \  s    zTestZipf.test_rvsc                 C   s\   t jj dd\}}tt| t|tj t jj ddd\}}tt||g   d S )Nffffff@r)   333333@skr)   r\  )r/   r  r   r`   isfiniter   r   r   r/  r+   r+   r,   r  g  s
    zTestZipf.test_momentsN)r   r   r   r   r   r  r+   r+   r+   r,   r  X  s   r  c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestDLaplacec                 C   s   t jd d S r   r   r   r+   r+   r,   r   r  s    zTestDLaplace.setup_methodc                 C   s   t jjddd}tt|dk t|jjtd v  t jd}tt	|t
 t dd}tt	|tj t|jjtd v  tt jdd u d S )Nr  r   r   r   r~   r  )r/   dlaplacer   r   r8   r   r   r   r   r   r   r   r   r+   r+   r,   r   u  s    zTestDLaplace.test_rvsc                 C   s   d}t |}| d\}}}}d}t| |d }||}	t|	|d  t|	|d   }
}t||fd t||f|
||
d  d fd	d
d d S )Nr   rZ  %   r   r5   r   rz  rY  rq  r"  r*  )r/   r  r`   r   r   r   r   r   )r   r)   dlr  r  r=   r;   r  r   Zppm2Zm4r+   r+   r,   r^    s    

&zTestDLaplace.test_statsc                 C   sF   t d}t|}|d\}}}}t||fd t||fd d S )Nrg   rZ  )rh   rh   )r  g      
@)r`   r   r/   r  r   r   )r   r)   r  r  r  r=   r;   r+   r+   r,   test_stats2  s
    

zTestDLaplace.test_stats2N)r   r   r   r   r   r^  r  r+   r+   r+   r,   r  q  s   r  c                       s   e Zd Zdd Zejddej	dd gdd Z
ejddej	dd g fd	d
Zdd Zdd Zdd Z  ZS )TestInvgaussc                 C   s   t jd d S r   r   r   r+   r+   r,   r     s    zTestInvgauss.setup_methodzrvs_mu,rvs_loc,rvs_scale)r5   r   r   r~   r\   c                 C   sF  t jjd|||d}t jj||d\}}}|| }t|}t|t|d |d   }	||	 }
t|
|ddd t|	|ddd t	|| t jjd|||d}t jj||d |d d\}}}t	|d | t	|d | t jj|d	d
d }t jj|d	dd }t jj|d	dd }||  kr<|  kr<d	ksBn J d S )Nr]   r   r  r3   r4   r8  rJ  ri   r*  r   r9  r4  )fmur   )Zfix_murz   )
r/   r   r   ro   r`   r   r   r   r   r   )r   rvs_mur1  r2  rs   r  r3   r4   Zmu_temp	scale_mleZmu_mleZ
shape_mle1Z
shape_mle2Z
shape_mle3r+   r+   r,   r    s.    



zTestInvgauss.test_fitc           
         s  t jjd|||d}ttt jt jj}||}t j|}t|| ||ddd}t jj|ddd}t|| |t j|fg}t j|i d }	t	t j||	|d t
||d  dksJ t	t j||	|d d t	t j||	dd t	t j||	|t
jdd d d S )	Nr]   r  r   r5   )rw   r  r   r8  r9  )r/   r   r   rp   rq   ro   r   r  r  rv   r`   r   r   r  )
r   r  r1  r2  rs   Z	super_fitZsuper_fittedZinvgauss_fitr   rt   	__class__r+   r,   r:    s*    



z'TestInvgauss.test_fit_MLE_comp_optimzerc                 C   sL   t tj tt$ tjjg ddd W d    n1 s>0    Y  d S )Nr}   r5   r8  )r   r/   r   r   r   r   ro   r   r+   r+   r,   test_fit_raise_errors  s    
z"TestInvgauss.test_fit_raise_errorsc                 C   s   g d}g d}t jjd|d}t|| t jjddd}t|d t jjddd}t|d	 t jd
d}t|d t jdd}t|d d S )N)g4wT;?gjdV&}?g{i\0>gDV_h?gqacX?)r   r   r   r   r   皙?r  r`  ?gfFn   gr^:g9̗?r  gx_;:g!?gٷ
??)r/   r   rA   r   r   r   )r   r  rX   rV   Z
cdf_actualZ	sf_actualr+   r+   r,   rk    s    



zTestInvgauss.test_cdf_sfc                 C   sh   t jjddd}t|d t jdd}t|d t jjddd}t|d t jdd}t|d	 d S )
Nr  r  r  giJ.r  gr^ߺr`  gpgFgpQ^L)r/   r   rl  r   rm  )r   rl  rm  r+   r+   r,   rn  	  s    	


zTestInvgauss.test_logcdf_logsf)r   r   r   r   r   r#  r  r`   r   r  r  r:  r  rk  rn  __classcell__r+   r+   r  r,   r    s   
&#r  c                       sz   e Zd Zejdg dejdg ddd Zejdg d fd	d
Zdd Zdd Z	dd Z
dd Z  ZS )TestLaplacer1  )rP  r   r   r5   r2  )r   r5   r~   r\   c                 C   sL  t jjd||d}t|}tt|| t| }t j|\}}t	||ddd t	||ddd t jj||d\}}t	||ddd t jj||d\}}t	|| |d }tt|| t| }t jj||d\}}t
|| t jj||d\}}t
|| ttt jj|||d ttt jjtjg ttt jjtjg d S )	Nr]   r  ri   r*  r8  rx   r5   r9  )r/   rG  r   r`   medianr   absr   ro   r   r   r;  r   r   r   )r   r1  r2  rs   Zloc_mler  r3   r4   r+   r+   r,   r    s*    



zTestLaplace.test_fitzrvs_scale,rvs_loc))r\   rP  )r   r\   )r  rc   c                    s   t jjd||d}dd }t j|\}}ttt jt j|\}}||||}	||||}
|	|
k s|tj|	|
ddds|J d S )Nr  r  c              	   S   s8   dt | td|  d| tt||     S )NrJ  r5   r   )r   r`   r   r   r  )r3   r4   rs   r+   r+   r,   llQ  s    z2TestLaplace.test_fit_MLE_comp_optimzer.<locals>.llri   r*  )r/   rG  r   ro   rp   rq   r`   rr   )r   r1  r2  rs   r  r3   r4   Zloc_optZ	scale_optZll_mleZll_optr  r+   r,   r:  J  s    
z&TestLaplace.test_fit_MLE_comp_optimzerc                 C   sZ   t g d}tjj|dd\}}t|dddd tjj|dd\}}t|dddd d S )N)r   r   rY  r          @g      ,@r  r8  r   ri   r*  r  )r`   r   r/   rG  ro   r   )r   rs   r3   r4   r+   r+   r,   test_fit_simple_non_random_data_  s
    z+TestLaplace.test_fit_simple_non_random_datac                 C   sl   d}t j| }|dksJ t j|}|dks6J t j|}|dksNJ t j| }|dkshJ d S )Nr  rh   r   )r/   rG  rA   r   )r   r>   Zp0p1r+   r+   r,   test_sf_cdf_extremesh  s    z TestLaplace.test_sf_cdf_extremesc                 C   s.   d}t j|}t|t| d dd d S )Nr  r5   r)  rj   )r/   rG  r   r   r`   r  )r   r>   r   r+   r+   r,   r   }  s    zTestLaplace.test_sfc                 C   s.   d}t j|}t|td|  dd d S )Ng}:r5   r)  rj   )r/   rG  r   r   r`   r   )r   r   r>   r+   r+   r,   r     s    zTestLaplace.test_isf)r   r   r   r   r#  r  r  r:  r  r  r   r   r  r+   r+   r  r,   r    s   +	r  c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestInvGammac                 C   s   t   t dt tjjddd}g d}t|| g d}tjj|dd}g dtjdd	gtj	d
dgtj	tj	dgf}t
||D ]\}}t|| qW d    n1 s0    Y  d S )Nr   g(\O3@rZ  r  )g~?gCX&?g*7gS?gBqFq @)皙?@gffffff@)r,  gEy?gў3oz?g^Yb?g,r?gOD@g2*Z@gFN8@)r   r   r   r   r/   r   r   r`   r   r   r   r   )r   rZ  rX   r)   r>   r  r+   r+   r,   test_invgamma_inf_gh_1866  s    



z&TestInvGamma.test_invgamma_inf_gh_1866c                 C   s6   t dd}tj|d}tj|d}t|| d S )Ngr   r   )r`   r   r/   r   rA   r   r   r  r+   r+   r,   r     s    zTestInvGamma.test_cdf_ppfc                 C   sR   t jdkrtdd}ntdd}tj|d}tj|d}t||dd d S )Nl        r5   r]      r   r   rj   )	sysmaxsizer`   r   r/   r   r   r   r   r  r+   r+   r,   r    s    
zTestInvGamma.test_sf_isfN)r   r   r   r  r   r  r+   r+   r+   r,   r    s   r  c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestFc                 C   s\   t jddgg}|D ]\}}}|j|jg|R  }qdd |D }dd |D }t|| d S )N)r5   r   r   c                 S   s&   g | ]\}}}|j |jg|R  qS r+   r7   r)   rE   _f_argsr  r+   r+   r,   rG     rH   z(TestF.test_endpoints.<locals>.<listcomp>c                 S   s   g | ]\}}}|qS r+   r+   rE   r  r  Z	_correct_r+   r+   r,   rG     rH   )r/   fr7   r)   r   )r   rs   r  r  Z_correctanscorrectr+   r+   r,   r     s    zTestF.test_endpointsc                 C   sX   t jj dddd\}}}}tt| tt| tt| tt|  d S )Nr        @rZ  r[  )r/   r  r   r`   r  r/  r+   r+   r,   test_f_moments  s
    zTestF.test_f_momentsc                 C   sT   t  8 t dt tjjdgd g ddd W d    n1 sF0    Y  d S )Nr   r  r   )r5   r   r  rQ  rZ  dfndfdr\  )r   r   r   r   r/   r  r   r+   r+   r,   test_moments_warnings  s    
zTestF.test_moments_warningsc                 C   sD  t dgdgg}t ddg}tjj||dd\}}}}||d  gd }t|| d|d  || d  | |d d  |d  }t|| d| | d t d|d   |d	 t ||| d    }	t||	 d|d
| d  || d  |d |d d    }
||d	  |d  || d  }|
| }t|| d S )Nr~   r  r   rZ  r  r5   r   rQ  r  r      )r`   r   r/   r  r   r>  )r   r  r  r  r  r=   r;   r  Zv2s2Zk2numZk2denZk2r+   r+   r,   test_stats_broadcast  s"    
0
 
 zTestF.test_stats_broadcastN)r   r   r   r   r  r  r  r+   r+   r+   r,   r    s   
r  c                   C   s   t tjddgddg d S )Nr   r  g?g?)r   r/   r@  r   r+   r+   r+   r,   test_rvgeneric_std  s    r  c                   C   s   t tjjdddtjtjtjtjf t tjjddddtjtjtjf t tjjddddtjtjtjf t tjjdddddtjtjf t tjjd	d
dtjtjf t tjjdd
ddtjf t tjjdd
ddtjf t tjjdd
dd d S )Nr   rZ  )rA  r\  )\(?rh   r5   gGz @g     i@r~   r  gGz@r   g
ףp=
@)rh   gq    @)r   r/   r@  r`   r   r   r+   r+   r+   r,   test_moments_t  s     r  c                  C   s*   g d} g d}t tj| |dd d S )N)r   r5      r]   )g?@gTM]?ggY?gU?r)  rj   )r   r/   r@  rL   )rA  rX   r+   r+   r,   test_t_entropy  s    r  c                   @   sl   e Z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d ZdS )TestRvDiscretec                 C   s   t jd d S r   r   r   r+   r+   r,   r     s    zTestRvDiscrete.setup_methodc                 C   s   g d}g d}d}t jd||fd}|j|d}tt|tj t||D ],\}}ttt	||kt
| | dk  qL| }tt|t d S )N)rJ  r   r   r5   r~   r   )rh   333333?r  rh   r  rh   r  sample)namevaluesr   r  )r/   rI   r   r   r   r8   r   r   r  r   r`  r   )r   ZstatesZprobabilitysamplesrr>   r=   r   r+   r+   r,   r     s    &zTestRvDiscrete.test_rvsc                 C   sr   t g d}tjg d|fd}tt|| }| }t|| tjg dg dfd}| }t|d d S )N)r   g?r  rv  r  )r   r   r   rh   )	r`   r   r/   rI   r   r   rL   r   r   )r   r  r   r   r   r+   r+   r,   r   	  s    
zTestRvDiscrete.test_entropyc                 C   sT   g d}g d}t j||fd}ddgddgg}t||dd	gd
dggdd d S )Nr   r5   r   rc   r  r  r  r   r  rY  r5   rc   r  rh   r  rq  rT  )r/   rI   r   r   )r   xkpkrH  r>   r+   r+   r,   r   	  s    
zTestRvDiscrete.test_pmfc                    sd   g d}g d}t j||fd g d}g d}t ||dd t fdd	|D |dd d S )
Nr  r  r  )r  r   r  r  rg   rY  r   r   )r   rc   rc   rc   r  r  r   r   rq  rT  c                    s   g | ]}  |qS r+   )rA   )rE   r   rH  r+   r,   rG   ,	  rH   z+TestRvDiscrete.test_cdf.<locals>.<listcomp>)r/   rI   r   rA   )r   r  r  Zx_valuesrX   r+   r  r,   r   "	  s    zTestRvDiscrete.test_cdfc                    sd   g d}g d}t j||fd g d}g d}t ||dd t fdd	|D |dd d S )
Nr  r  r  )rZ   rc   333333?r  r  r   )r   r   r5   r5   r   r   rq  rT  c                    s   g | ]}  |qS r+   )r   )rE   r   r  r+   r,   rG   9	  rH   z+TestRvDiscrete.test_ppf.<locals>.<listcomp>)r/   rI   r   r   )r   r  r  Zq_valuesrX   r+   r  r,   rb  /	  s    zTestRvDiscrete.test_ppfc                 C   sN   g dg df}t j|d}t|||jd d d |jdd   d S )N)r   r5   r   r  rQ  )rZ   r  r  r  rZ   r  rJ  r"  r   )r/   rI   r   r   rA   r  )r   r   rH  r+   r+   r,   test_cdf_ppf_next<	  s
    z TestRvDiscrete.test_cdf_ppf_nextc                 C   s`   t dd}t g dg dg dg}tj||fd}t| t |j	|j
 dd d S )Nr   )r~   r   )rZ   rZ   r  r  )rZ   rZ   r  r  r  rq  rT  )r`   r   r  r   r/   rI   r   expectr   r  r  r   r  r  rH  r+   r+   r,   test_multidimensionD	  s    
z"TestRvDiscrete.test_multidimensionc                 C   s   g d}ddg}t ttjfi t||fd g d}t ttjfi t||fd g d}g d}t ttjfi t||fd g d}g d}t ttjfi t||fd d S )Nr}   rc   r  )rc   333333?gffffff濩r   r5   r~   r   r   )r  r  r  r  rh  )r;  
ValueErrorr/   rI   r   r   r  r  r+   r+   r,   test_bad_inputM	  s    zTestRvDiscrete.test_bad_inputc                 C   s   t ddt dd }}tttjfi t||fd t ddt dd }}tttjfi t||fd t ddt dd }}t	tj||fd
dd d S )	Nr   r5   r5   )r5   r~   gUUUUUU?r  r  )r~   r5   r   )r`   r   r  r  r;  r  r/   rI   r   r   r   r  r+   r+   r,   test_shape_rv_sample]	  s    z#TestRvDiscrete.test_shape_rv_samplec                 C   sD   g d}g d}t j||fd}t| t|j|j dd d S )N)r   r5   r   r  r  r  )rZ   r  r  r  r  rZ   r  rq  rT  )r/   rI   r   r  r`   r   r  r  r  r+   r+   r,   test_expect1l	  s    zTestRvDiscrete.test_expect1c                 C   s   g d}g d}t j||fd}t| | dd t| tdd t||D dd t|dd	 td
d t||D dd d S )N)/g      i@g     r@g      y@g     @@g     @g     @      @g      @ru  g     0@g     @g     P@g     @g     p@g      @g     @g      @g     @rv  g     h@g     0@g     @g     @g     @g     P@g     @g     @g     @rw  g     8@g      @g     ȩ@g     @g     X@g      @g     @g     @g     x@g     @@g     @g     h@g     ̰@g     0@g     @g     @g     \@g     @)/g-C6:?rh   gF%uk?g:vz?rh   rh   g.nr?g|гY?rh   rh   rh   g @6*? 4U0*C?g@+?gC6z?g nr?g ?gOjM?g n?g1w-!?g:pΈ?gףp=
?g _Le?rh   g^)p?g~jtx?gJ4q?gGzt?g J4q?g Mb@?g@Psׂ?g@^)ˀ?rh   rh   g N@s?g 1w-!_?r  gൄ|г?rh   gH}}?rh   g
F%u?rh   rh   g ^)ˀ?g v?rh   r  rq  rT  c                 s   s   | ]\}}|| V  qd S r_   r+   rE   r  wr+   r+   r,   	<genexpr>	  rH   z.TestRvDiscrete.test_expect2.<locals>.<genexpr>c                 S   s   | d S Nr5   r+   r>   r+   r+   r,   rR   	  rH   z-TestRvDiscrete.test_expect2.<locals>.<lambda>c                 s   s   | ]\}}|d  | V  qdS )r5   Nr+   r  r+   r+   r,   r  	  rH   )r/   rI   r   r  r   r   r   )r   r  pyrH  r+   r+   r,   test_expect2s	  s    zTestRvDiscrete.test_expect2N)r   r   r   r   r   r   r   r   rb  r  r  r  r  r  r  r+   r+   r+   r,   r    s   	r  c                   @   s   e Zd Zdd Zdd ZdS )TestSkewCauchyc                 C   sl   t ddd}ttjj|ddtj| ttjj|ddtj| ttjj|ddtj| d S NrP  r   r]   r   r  )	r`   r   r   r/   
skewcauchyr7   rC  rA   r   r   r+   r+   r,   test_cauchy	  s    


zTestSkewCauchy.test_cauchyc                 C   s   t jd t jdd d }t jdd d }g d}g d}ttj||| ttj||| ttj	||| d S )Nr   r\   r5   r   r   )
g& 45?gQʶ?g-4<??gJ?gw@v?gJ%?g>[u?g
a2?g	Rn?gѦ}cي?)
gN@Q?gPPz@	?g?g;
7?glg?g!?%?gQҙ?gC"?go?g@Sg?)
r`   r   r   r  r   r/   r  r7   rA   r   )r   r)   r>   r7   rA   r+   r+   r,   test_skewcauchy_R	  s    z TestSkewCauchy.test_skewcauchy_RN)r   r   r   r  r   r+   r+   r+   r,   r  	  s   	r  c                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )TestSkewNormc                 C   s   t d| _d S r   )r   rngr   r+   r+   r,   r   	  s    zTestSkewNorm.setup_methodc                 C   s0   t ddd}ttjj|ddtj| d S r  )r`   r   r   r/   skewnormr7   r  r   r+   r+   r,   test_normal	  s    
zTestSkewNorm.test_normalc                 C   sH   d}t jjd|| jd}t||j t jjd|| jd}t||j d S )N)r~   r   r   r   )r)   r   r
  r  )r/   r  r   r  r   r   )r   r   r>   r+   r+   r,   r   	  s
    zTestSkewNorm.test_rvsc                 C   s   t jjdtddd| jd}t|t|t |t 	|g}t jj ddddd}t
||dd t jjd	tddd| jd}t|t|t |t 	|g}t jj d	dddd}t
||dd d S )
Nr   r  r   r5   )r)   r   r3   r4   r
  rZ  )r)   r3   r4   r\  r   r   )r/   r  r   r   r  r`   r   r  r  Zkurtosisr   )r   XrX   r  r+   r+   r,   r  	  s    $$zTestSkewNorm.test_momentsc                 C   sF   t jg dd}t|tddd t jdd}t|ddd d S )	N)r\   rE  r   rJ  r~   rq  rj   r  r)  r   )r/   r  rA   r   r`   onesr   r+   r+   r,   test_cdf_large_x	  s    zTestSkewNorm.test_cdf_large_xc                 C   sr   g dg dg dg dg dg}|D ]F\}}}t j||}t||dd t j| | }t||dd q&d S )N)r   gzbLe9)r   r5   gn'/2;)r  r   g::)r  rJ  g|<)r(  r   Oul2;r"  rj   )r/   r  rA   r   r   )r   Zcdfvalsr>   r)   Zcdfvalr   r+   r+   r,   test_cdf_sf_small_values	  s    z%TestSkewNorm.test_cdf_sf_small_valuesN)	r   r   r   r   r  r   r  r  r
  r+   r+   r+   r,   r  	  s   	r  c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
	TestExponc                 C   s   t tjdd d S r   )r   r/   r  r7   r   r+   r+   r,   	test_zero
  s    zTestExpon.test_zeroc                 C   s0   t tjdd t tjtjdd d S )NgC]r2<r  )r   r/   r  rA   r   r   r   r+   r+   r,   	test_tail
  s    zTestExpon.test_tailc                 C   s,   t dddddt jg}tttjj| d S No_?46@yX5ͻ@j+?UX@)r`   r   r   r;  r   r/   r  ro   r   r+   r+   r,   test_nan_raises_error
  s    zTestExpon.test_nan_raises_errorc                 C   s,   t dddddt jg}tttjj| d S r  )r`   r   r   r;  r   r/   r  ro   r   r+   r+   r,   test_inf_raises_error
  s    zTestExpon.test_inf_raises_errorN)r   r   r   r  r  r  r  r+   r+   r+   r,   r   
  s   r  c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestNormc                 C   s,   t dddddt jg}tttjj| d S r  )r`   r   r   r;  r   r/   r  ro   r   r+   r+   r,   r  
  s    zTestNorm.test_nan_raises_errorc                 C   s,   t dddddt jg}tttjj| d S r  )r`   r   r   r;  r   r/   r  ro   r   r+   r+   r,   r  
  s    zTestNorm.test_inf_raises_errorc                 C   s    g d}t ttjj|dd d S )Nr}   shrimp)plate)r;  r   r/   r  ro   r   r+   r+   r,   test_bad_keyword_arg
  s    zTestNorm.test_bad_keyword_argN)r   r   r   r  r  r  r+   r+   r+   r,   r  
  s   r  c                   @   s    e Zd ZdZdd Zdd ZdS )TestUniformgh-10300c                 C   s,   t dddddt jg}tttjj| d S r  )r`   r   r   r;  r   r/   rJ  ro   r   r+   r+   r,   r  %
  s    z!TestUniform.test_nan_raises_errorc                 C   s,   t dddddt jg}tttjj| d S r  )r`   r   r   r;  r   r/   rJ  ro   r   r+   r+   r,   r  *
  s    z!TestUniform.test_inf_raises_errorN)r   r   r   __doc__r  r  r+   r+   r+   r,   r  #
  s   r  c                
   @   s   e Zd Zdd Zdd Zdd Zdd Zej	d	g d
dd Z
ej	dg dg dg dg dg dgdd Zej	dg dg dg dg dg dg dgdd ZdS )TestExponNormc                 C   s   dd }d\}}}d||  }t jj |||dd}t||||| d\}}}d||  }t jj |||dd}t||||| d\}}}d||  }t jj |||dd}t||||| d	\}}}d||  }t jj |||dd}t||||| d S )
Nc                 S   sh   dd| | d   }d| | d  |d  }dd| | d  d  }|d|   || d| |    ||gS )Nr   r   r5   r~   r        @r  r+   )lamsigr  ZopK2Zexp_skewZexp_kurtr+   r+   r,   get_moms3
  s    z,TestExponNorm.test_moments.<locals>.get_moms)r   r   r   r   rZ  r3   r4   r\  )r  r5   rZ   )r   r~   r   )rP  r  r*  )r/   	exponnormr   )r   r!  r  r   r  Kstsr+   r+   r,   r  1
  s"    



zTestExponNorm.test_momentsc                 C   s2   t dddddt jg}tttjj|ddd d S 	Nr  r  r  r  r  r   r   r9  )r`   r   r   r;  r   r/   r#  ro   r   r+   r+   r,   r  L
  s    z#TestExponNorm.test_nan_raises_errorc                 C   s2   t dddddt jg}tttjj|ddd d S r&  )r`   r   r   r;  r   r/   r#  ro   r   r+   r+   r,   r  Q
  s    z#TestExponNorm.test_inf_raises_errorc                 C   sT   t tjddd t tjddd t tjddd t tjddd d S )Ni|r   rh     re   )r   r/   r#  r7   r   r+   r+   r,   test_extremes_xV
  s    zTestExponNorm.test_extremes_xzx, K, expected))rE  re   g6
N-)r   re   g՜n+H?)rJ  re   gi?)r   re   gbJI-)r\   r   gI8?)r\   r  gQ3|-0?c                 C   s   t tj|||dd d S r  )r   r/   r#  r7   )r   r>   r$  rX   r+   r+   r,   test_std_pdfh
  s    zTestExponNorm.test_std_pdfzx, K, scale, expected)r   re   r   gVAҤ?)rP  {Gzt?r   g'^>)     re   r]   rh   )r+  re   r  gbr ;)r   r`  r   gVMe?c                 C   s:   t jj|||d}|dkr(|dks6J nt||dd d S )Nr  rh   r)  rj   )r/   r#  rA   r   r   r>   r$  r4   rX   r   r+   r+   r,   test_cdf_small_K~
  s    zTestExponNorm.test_cdf_small_K)r\   re   r   ghG}$;)r5   r*  r   g]fJ?)r   r*  rc   g31"g#;)r\   r*  rc   gf
+-)rE  r*  rc   rh   )r  r`  r   ga9S?c                 C   s:   t jj|||d}|dkr(|dks6J nt||dd d S )Nr  rh   g-a=rj   )r/   r#  r   r   r,  r+   r+   r,   test_sf_small_K
  s    zTestExponNorm.test_sf_small_KN)r   r   r   r  r  r  r(  r   r#  r  r)  r-  r.  r+   r+   r+   r,   r  0
  s6   

r  c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestGenExponc                 C   s@   ddl m} tjtdddddd}t||dddd d S )	Nr   )simpsr\   re   rc   rg   )Zdxr   )scipy.integrater0  r/   genexponr7   r8   r   r   )r   r0  r   r+   r+   r,   test_pdf_unity_area
  s    z TestGenExpon.test_pdf_unity_areac                 C   s:   t jtdddddd}ttd|k|dk@  d S )Nr   r\   re   rc   rg   r   )r/   r2  rA   r8   r   r   r   )r   rA   r+   r+   r,   test_cdf_bounds
  s    zTestGenExpon.test_cdf_boundsc                 C   s$   t jdddd}t|ddd d S )Nr   r   r5   r  gM <r)  rj   )r/   r2  r   r   r   r+   r+   r,   test_sf_tail
  s    zTestGenExpon.test_sf_tailN)r   r   r   r3  r4  r5  r+   r+   r+   r,   r/  
  s   r/  c                   @   s   e Zd Zdd ZdS )TestExponpowc                 C   s6   t tjddd t tjtjdddd d S )N绽|=rg   rp  r   r  )r   r/   exponpowrA   r   r   r   r+   r+   r,   r  
  s    zTestExponpow.test_tailN)r   r   r   r  r+   r+   r+   r,   r6  
  s   r6  c                   @   s   e Zd Zdd Zdd ZdS )TestSkellamc                 C   s@   t dd}d\}}t g d}ttj||||dd d S )Nr(  r   r\   r   )gYjP'?g$S?gQ`s2?gC/qF?gD<]Y?g/Xj?g86y?g]a¨?g:?g?gQ>?g?g:?g]a¨?g96?g0X?gA<]?gB/q?gQ`s?g$S?gYjP'?gX_?g+rx?gfSr?gJXx~?r   )r8   r   r   r   r/   skellamr   )r   r;   mu1mu2ZskpmfRr+   r+   r,   r   
  s    zTestSkellam.test_pmfc                 C   s@   t dd}d\}}t g d}ttj||||dd d S )Nr(  r   r:  )gƃQ?gS`X'?gVy)>?g:	 S?gei.f?gȼJ]x?g)?g{^'+i?gLIg>?gnZ?g?rvͪ?gA?g0?g#J?gqSm
.?g~B?gd?gFBD?gQ9?gmF^?gcMy?gGJq?gC^c?g.){?gñݸ?r   r   )r8   r   r   r   r/   r;  rA   )r   r;   r<  r=  ZskcdfRr+   r+   r,   r   
  s    zTestSkellam.test_cdfN)r   r   r   r   r   r+   r+   r+   r,   r9  
  s   r9  c                   @   s   e Zd Zdd Zdd ZdS )TestLognormc                 C   sX   t  < t dt tjg dd}t|g d W d    n1 sJ0    Y  d S )Nr   r   rc   r   r   )rh   g~r?g e3E?)r   r   r   r   r/   r   r7   r   r   r7   r+   r+   r,   r   
  s    
zTestLognorm.test_pdfc                 C   sn   d\}}}t tjj|| |dtjt|| |  t tjj|| |dtjt|| |  d S )N)g(\5i@   gOn?rQ   )r   r/   r   r   r  r`   r   rm  )r   r  r  Zsigmar+   r+   r,   r  
  s    
zTestLognorm.test_logcdfN)r   r   r   r   r  r+   r+   r+   r,   r>  
  s   r>  c                   @   s   e Zd Zdd Zdd Zdd Zdd Zejj	e
d	d
dd Zejj	e
d	d
dd Zejj	e
d	d
dd Zdd Zdd ZdS )TestBetac                 C   s:   t jddd}t|d t jddd}t|tj d S )Nr   r   rc   g;B.)r/   r.  r   r   r`   r   r   r   r+   r+   r,   r    s    
zTestBeta.test_logpdfc                 C   sV   d\}}t g d}t||}t|| d t||t || d S )Ni  i  r  rc   r  gƒ)	r`   r   r/   r.  r   r   r   r7   r  r   r   r.  r>   r*   r+   r+   r,   test_logpdf_ticket_1866  s
    z TestBeta.test_logpdf_ticket_1866c                 C   s$   g d}t ttjj|dddd d S )NrZ   rc   r  r   r   r  )rw   rx   r  )r;  r   r/   r.  ro   r   r+   r+   r,   test_fit_bad_keyword_args  s    z"TestBeta.test_fit_bad_keyword_argsc                 C   s"   g d}t ttjj|ddd d S )NrH  rc   )fafix_a)r;  r  r/   r.  ro   r   r+   r+   r,   #test_fit_duplicated_fixed_parameter  s    z,TestBeta.test_fit_duplicated_fixed_parameterzOverflow, see gh-14901reasonc                 C   s$   d\}}}t tj|||d d S )N)g?g     R@g   0xAgx)>)r   r/   r.  r   )r   r   r)   r*   r+   r+   r,   test_issue_12635   s    	
zTestBeta.test_issue_12635c                 C   sh   t g d}t g d}d}tj||d d| }t|| tj||d d| }t|| d S )N)g@3@?g^?gNC?)r\   r]   r  rF  r   順 )r`   r   r/   r.  r   r   r   )r   Zinv_RZ
count_listr   invr  r+   r+   r,   test_issue_12794,  s    
zTestBeta.test_issue_12794c           	      C   sb   d}t dd}d}d| |d ||   }}}tj|||}tj|||}t|d|  d S )Nh㈵>r   rE  rP  )r`   r   r/   r.  r   rA   r   )	r   Zalpha_2Zcount_Znobsr   r)   r*   rQ  r  r+   r+   r,   test_issue_12796>  s    zTestBeta.test_issue_12796c                 C   sD   d\}}t tjd||tj d\}}t tjd||tj d S )NrX  r   )r  r~   r   )r   r/   r.  r7   r`   r   )r   r)   r*   r+   r+   r,   r   J  s    zTestBeta.test_endpointsc                 C   sH   d\}}}t t  tj||| W d    n1 s:0    Y  d S )N)gףp=
?g   vH7Bg  @0B)r   Zwarnsr   r/   r.  r   )r   r   r)   r*   r+   r+   r,   test_boost_eval_issue_14606U  s    
z$TestBeta.test_boost_eval_issue_14606N)r   r   r   r  rG  rI  rL  r   r#  skipifMACOS_INTELrO  rR  rT  r   rU  r+   r+   r+   r,   rB    s   


rB  c                   @   s   e Zd Zdd Zdd ZdS )TestBetaPrimec                 C   sZ   d\}}t g d}t||}tt ||  t|	|t 
|| d S )NrD  rE  )r`   r   r/   r   r   r  r   r   r   r7   r  rF  r+   r+   r,   r  \  s
    zTestBetaPrime.test_logpdfc                    s   t jddd}t|d d\ tg d}t j| }tt|  t j	j
 fdd|D }t||dd	d
 d S )Nr   r  r  rh   rD  rE  c                    s   g | ]}t j| qS r+   )r/   r   )rE   r   r   r.  Zgen_cdfr+   r,   rG   p  rH   z*TestBetaPrime.test_cdf.<locals>.<listcomp>g-=r*  )r/   r   rA   r   r`   r   r   r  r   rJ   Z_cdf_singler   )r   r>   r  Zcdfs_gr+   rY  r,   r   c  s    
zTestBetaPrime.test_cdfN)r   r   r   r  r   r+   r+   r+   r,   rX  [  s   rX  c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
	TestGammac                 C   s<   t jjdddd}t|d t jjdddd}t|d d S )	NZ   i  r  r  g
CTb?r~   r\   gBΖ?)r/   r]  r7   r   r@  r+   r+   r,   r   u  s    
zTestGamma.test_pdfc                 C   s   t jdd}t|d d S r   )r/   r]  r   r   rC  r+   r+   r,   r  }  s    zTestGamma.test_logpdfc                 C   s"   g d}t ttjj|ddd d S )NrH  r   r  )rw   r  )r;  r   r/   r]  ro   r   r+   r+   r,   rI    s    z#TestGamma.test_fit_bad_keyword_argsc                 C   s@   t jtjdddddsJ t jtjdddd	ds<J d S )
NFFg<r   gplC@rq  rT  gJz5r]   g1}t@r)  )r`   Ziscloser/   r]  r   r   r+   r+   r,   r     s    
zTestGamma.test_isfN)r   r   r   r   r  rI  r   r+   r+   r+   r,   rZ  t  s   rZ  c                   @   s   e Zd Zdd Zdd ZdS )TestChi2c                 C   s4   t tjddddd t tjddddd d S )Nr  gޞw1D?   r   r]   g6:֜?r   r/   chi2r7   r   r+   r+   r,   r    s    zTestChi2.test_precisionc                 C   s|   d}t jd|}t|ddd t jd|}t|ddd d}t jd	|}t|d
dd t jd|}t|ddd d S )Nr  gλm:=6g'bd5 <r7  rj   rc   gQ8@   gܐ؆0guu[9=rZ   g8-*@)r/   ra  r   r   )r   rA  r>   r+   r+   r,   rb    s    zTestChi2.test_ppfN)r   r   r   r  rb  r+   r+   r+   r,   r^    s   r^  c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestGumbelLc                 C   s2   t dd}tj|}tj|}t|| d S NrK  r   )r`   r   r/   r'  rA   r   r   r  r+   r+   r,   r     s    zTestGumbelL.test_cdf_ppfc                 C   sH   t dd}tj|}tj|}t |}t| }t	|| d S rd  )
r`   r   r/   r'  rl  rm  r  r   expm1r   )r   r>   r  r%  ur  r+   r+   r,   rn    s    
zTestGumbelL.test_logcdf_logsfc                 C   s2   t dd}tj|}tj|}t|| d S )Nr   r   )r`   r   r/   r'  r   r   r   r  r+   r+   r,   r    s    zTestGumbelL.test_sf_isfN)r   r   r   r   rn  r  r+   r+   r+   r,   rc    s   rc  c                   @   s   e Zd Zdd Zdd ZdS )TestGumbelRc                 C   s   t tjdddd d S )Nr   g?~T}%m;rq  rj   )r   r/   r&  r   r   r+   r+   r,   r     s    zTestGumbelR.test_sfc                 C   s   t tjdddd d S )Nr\  r]  rq  rj   )r   r/   r&  r   r   r+   r+   r,   r     s    zTestGumbelR.test_isfN)r   r   r   r   r   r+   r+   r+   r,   rg    s   	rg  c                   @   sf   e Zd Zdd Zejjdd Zejjdd Zdd Z	d	d
 Z
ejjejdddgdd ZdS )TestLevyStablec                 C   s   g d}t j|\}}}}t|dddd t|dd t|dd	 t|d
d |g d }t j|\}}}	}
t|d t|d t|
dd	 t|	dd	 d S )N)wgri  rh   rh   rh   rh   羼 u?rj  rj  rj  rj  67',?rk  rk  rk  rk  tA}˜.?rl  rl  rl  rl  Gz?r   re   r   )\(̿r5   gۧ1?r   g9]c?)rl  rl  rl  rl  rl  rJ  gv?rk  )r/   levy_stabler  r   r   r   )r   r>   Zalpha1Zbeta1loc1scale1r  Zalpha2Zbeta2loc2scale2r+   r+   r,   r    s    

zTestLevyStable.test_fitc                    s  t jt jt jtd}t|}tjj	j
|jdd}ttdrLtjntj g dddd fd	d
gddddd
 gddddd
 gddddd
 gddddd
 gddddd
 gddddd
 gg}t|D ]\}\}}}}|tj_|tj_|dur||| n|}	t }
|
td |
td tjj|	d |	d |	d ddd}t|	d|}t||	d  }||dd |   kt|B  }t||	d |d!|||f d"d# W d   q1 s0    Y  qdS )$a!   Test pdf values against Nolan's stablec.exe output
            see - http://fs2.american.edu/jpnolan/www/stable/stable.html

            There's a known limitation of Nolan's executable for alpha < 0.2.

            Repeat following with beta = -1, -.5, 0, .5 and 1
                stablec.exe <<
                1 # pdf
                1 # Nolan S equivalent to S0 in scipy
                .25,2,.25 # alpha
                -1,-1,0 # beta
                -10,10,1 # x
                1,0 # gamma, delta
                2 # output file
        zdata/stable-pdf-sample-data.npyx,p,alpha,betanamesisin)ZbestNrQ  N
quadratureNrQ  c                    s   | d dk | d g d@ S )Nr   r   r>   )r(  rP  r   r   r\   r+   r  Znpisinr+   r,   rR     s   
z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>	zolotarevc                 S   s   | d dkS Nr   r   r+   ry  r+   r+   r,   rR   !  rH   c                 S   s   | d dk| d dk@ S Nr   r   r.  r   r+   ry  r+   r+   r,   rR   #  rH   r   c                 S   s   | d dk| d dk@ S r}  r+   ry  r+   r+   r,   rR   %  rH   fftr   r   c                 S   s   | d dkS r|  r+   ry  r+   r+   r,   rR   )  rH   r~   c                 S   s   | d dk | d dk@ S )Nr   r   r   r+   ry  r+   r+   r,   rR   *  rH   c                 S   s   | d dk| d dk@ S )Nr   r   r>   r   r+   ry  r+   r+   r,   rR   ,  rH   z6Density calculation unstable for alpha=1 and beta!=0.*z2Density calculations experimental for FFT method.*r>   r   r.  r4   r3   calcr   r  r,  z&pdf test %s failed with method '%s'
%sFverbose)ospathabspathjoindirname__file__r`   loadcorerecords
fromarraysTr(   rw  Zin1dr  r/   ro  pdf_default_methodpdf_fft_min_points_thresholdr
   recordr   r7   r   r  isnanr   r   fnrs   testsZixdefault_methodfft_min_pointsdecimal_placesZfilter_funcZsubdatasupr   Zsubdata2ZpadiffZfailuresr+   rz  r,   test_pdf_nolan_samples  sd    


z%TestLevyStable.test_pdf_nolan_samplesc              
   C   sN  t jt jt jtd}t|}tjj	j
|jdd}g dddddd	 gg}t|D ]\}\}}}}|tj_|tj_|d
ur||| n|}	t }
|
td tjj|	d |	d |	d ddd}t|	d|}t||	d  }||dd|   kt|B  }t||	d |d|||f dd W d
   q\1 s>0    Y  q\d
S )a!   Test cdf values against Nolan's stablec.exe output
            see - http://fs2.american.edu/jpnolan/www/stable/stable.html

            There's a known limitation of Nolan's executable for alpha < 0.2.

            Repeat following with beta = -1, -.5, 0, .5 and 1
                stablec.exe <<
                2 # cdf
                1 # Nolan S equivalent to S0 in scipy
                .25,2,.25 # alpha
                -1,-1,0 # beta
                -10,10,1 # x
                1,0 # gamma, delta
                2 # output file
        zdata/stable-cdf-sample-data.npyrt  ru  )r{  NrQ  Nr~  r   r5   c                 S   s   | d dkS r|  r+   ry  r+   r+   r,   rR   b  rH   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>NzXFFT method is considered experimental for cumulative distribution function evaluations.*r>   r   r.  r   r  r  r   r  r,  z&cdf test %s failed with method '%s'
%sFr  )r  r  r  r  r  r  r`   r  r  r  r  r  r  r/   ro  r  r  r
   r  r   rA   r   r  r  r   r  r+   r+   r,   test_cdf_nolan_samplesF  s@    

z%TestLevyStable.test_cdf_nolan_samplesc           
   
   C   s   t g d}t g d}t g d}g dg dg}t jdd t b}|jtdd	 |D ]>\}}}|tj_|tj_	tjj
|d
|d
dd}	t|	||| qbW d   n1 s0    Y  W d   n1 s0    Y  dS )z
        sample points extracted from Tables and Graphs of Stable Probability
        Density Functions - Donald R Holt - 1973 - p 187.
        )r   r   r   r   r   r   r   r   r5   r5   r5   r5   r~   r~   r~   r~   r   r   r   r   )gtF_?gܵ|?gQ?g@?gec]?gHP?gPkw?g!rh?gTN?g?gDioɴ?g r?gH?g+?gHPs?gX ?g&?g0*?gv/?ga2U0*?)r   r   rc   r   r   r   rc   r   r   r   rc   r   r   r   rc   r   r   r   rc   r   )rx  Nr   )r{  Nr   ignorer   zDensity calculation unstable.*)categorymessager   r   r  N)r`   r   errstater
   rU   r   r/   ro  r  r  r7   r   )
r   ZxsZdensityZbetasr  r  r  r  r  r7   r+   r+   r,   'test_pdf_alpha_equals_one_beta_non_zeroy  s"    z6TestLevyStable.test_pdf_alpha_equals_one_beta_non_zeroc                 C   s`   ddt jt jt jfgddgg}|D ]8\}}tjj|d |d |d |d dd	}t|| q"d S )
N)rm  rn  r   r   r   )r5   r  r\   r  )r\   r-  r   r   r   r5   r~   rZ  r"  )r`   r   ZNaNr/   ro  r   )r   Z
param_setsr   Z	exp_statsZ
calc_statsr+   r+   r,   r^    s    zTestLevyStable.test_statsr.  rc   r   c                 C   sZ   t jd d}d}d}tjj||||dd}tj|d||||fd\}}|d	ksVJ d S )
Nh:r   rc   r  i  r3   r4   r   ro  r  re   )r`   r   r   r/   ro  r   r  )r   r.  r   r3   r4   r>   statr   r+   r+   r,   test_rvs_alpha1  s    

zTestLevyStable.test_rvs_alpha1N)r   r   r   r  r   r#  r$  r  r  r  r^  r  r  r+   r+   r+   r,   rh    s   
K
2$rh  c                   @   s   e Zd Zdd Zdd ZdS )TestArrayArgumentc                 C   s   t jd d S r   r   r   r+   r+   r,   r     s    zTestArrayArgument.setup_methodc                 C   s.   t jjtdtddd}t|jd d S )Nr   r:  r  )r/   r  r   r`   r   r  r   r   r   r   r+   r+   r,   test_noexception  s    z"TestArrayArgument.test_noexceptionN)r   r   r   r   r  r+   r+   r+   r,   r    s   r  c                   @   s   e Zd Zdd Zdd ZdS )TestDocstringc                 C   sD   t jjd ur tdt jj v  t jjd ur@tdt jj v  d S )Nr   r   )r/   r   r  r   lowerr   r   r+   r+   r,   test_docstrings  s    zTestDocstring.test_docstringsc                 C   s   t   t   d S r_   )r/   rJ   rI   r   r+   r+   r,   test_no_name_arg  s    zTestDocstring.test_no_name_argN)r   r   r   r  r  r+   r+   r+   r,   r    s   r  c                  C   s   t g d} t| dk| d\}}t|g d t|g d tddk| d\}}t|| d  t|dg t| dk| d\}}t||  t|dgt|   d S )N)r   r~   r5   r   r5   r~   r~   r   r5   )r~   r5   r5   r~   r~   )r5   r5   r5   r5   r5   r   )r   r   r   r8   r   r)   r*   r   r+   r+   r,   TestArgsreduce  s    
r  c                   @   s   e Zd Zg dZdd Zg dZejde	dd Z
dd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zejdddgdd Zejdddgdd ZdS )TestFitMethod)ncfr  r  c                 C   s   t jd d S r   r   r   r+   r+   r,   r     s    zTestFitMethod.setup_method)r  r  rJ  z	dist,argsc                 C   s~   || j v rtd|  tdddddtjg}tdddddtjg}tt|}t	t
|j|ddd	 t	t
|j|ddd	 d
S )r  z"%s fit known to fail or deprecatedr  r  r  r  r  r   r   r9  N)fitSkipNonFiniter   skipr`   r   r   r   r   r/   r;  r   ro   )r   rF   r   r>   r  Zdistfuncr+   r+   r,   !test_fit_w_non_finite_data_values  s    

z/TestFitMethod.test_fit_w_non_finite_data_valuesc              	   C   s   t jd t jddn tjjddddd}t t |t d d	 	 }t
t tjj|d
dd|d
dgdd W d    n1 s0    Y  d S )Ni90  r  r  r   rh         4@rE  r   r5   r   r9  r"  rT  )r`   r   r   r  r/   r   r   r>  r   r   r   r   ro   )r   r>   Zexpected_shaper+   r+   r,   test_fix_fit_2args_lognorm  s    "
z(TestFitMethod.test_fix_fit_2args_lognormc                 C   s   t dd}tj|\}}t|d t|t d tjj|dd\}}t|d t|t d tjj|dd\}}t|d t|d d S )Nr   r  r~   r5   r8  r  )r`   r   r/   r  ro   r   r>  r   r   r>   r3   r4   r+   r+   r,   test_fix_fit_norm  s    


zTestFitMethod.test_fix_fit_normc                 C   sn  t dd}t | }d}tjj||d\}}}t | | }tt |t	| |dd t
|| t|| | dd d}d}tjj|||d\}}}t
|| t
|| t|| | dd d	}d}tjj|||d\}}}t
|| t
|| t|| | dd d}d	}	tjj|||	d
\}}}t
|| t
||	 |t |	 }
tt	||
 d S )Nr   r  r   r8  r   r   rQ  rz   rw   r5   r9  )r`   r   r   r   r/   r]  ro   r   r   Zdigammar   )r   r>   Zmeanlogrw   r)   r3   r4   r=   rz   rx   r   r+   r+   r,   test_fix_fit_gamma
  s6    






z TestFitMethod.test_fix_fit_gammac              	   C   s  dd }t g d}tjj|ddd\}}}}t|d t|d t||||ddgdd t g d}tjj|d	ddd
\}}}}t|d	 t|d t|d ||||\}}t|ddd d| }	tjj|	d	ddd\}
}}}t|d	 t|d t|d ||
||	\}}t|ddd t|
| tt	tjj|ddd t g d}tt	tjj|ddd tt	tjj|ddd	d tt	tjj|ddd	d tt	tjj|ddd	dd d S )Nc                 S   sj   t |}t| }td|  }t| | }||| t|    ||| t|   g}|S Nr   )r   r`   r   r   r   Zpsi)r)   r*   r>   r   s1r  Zpsiabrt   r+   r+   r,   mlefunc3  s    z0TestFitMethod.test_fix_fit_beta.<locals>.mlefunc)re  r   rc   r   r   r9  r2  rT  r5   )rz   rw   rx   r  )r{   rw   rx   rc   r?  )rw   rx   rz   )rw   rx   r{   r~   )rz   r{   rw   rx   )
r`   r   r/   r.  ro   r   r   r   r;  r  )r   r  r>   r)   r*   r3   r4   ZdaZdbr  a2b2rr  rs  r  r+   r+   r,   test_fix_fit_beta0  s:    








zTestFitMethod.test_fix_fit_betac                 C   s   t g d}tj|\}}t|d t|d tjj|dd\}}t|d t|d tjj|dd\}}t|d t|d d S )N)r5   r5   r   r   r   r   r   rQ  r5   r~   r  r   r8  r   )r`   r   r/   r  ro   r   r  r+   r+   r,   test_expon_fitg  s    




zTestFitMethod.test_expon_fitc                 C   s   t g d}t |d }tjj|dd\}}}t|| dd t|d t|t 	|
 dd tjj|ddd\}}}t|t |t d d 
 dd t|d t|d tjj|dd	d
\}}}t|d	 t|d t|t 	|
 dd d S )N)r  r~   r\   r      ;   r   r8  r  rj   r  r9  r5   r   )rw   Zfix_s)r`   r   r   r/   r   ro   r   r   r   r  r   r>  )r   r>   Zlnxm1r   r3   r4   r+   r+   r,   test_lognorm_fitv  s     




zTestFitMethod.test_lognorm_fitc                 C   s   t g d}tj|\}}t||  t||  tjj|dd\}}t|d t||  tjj|dd\}}t|d t|d t	t
tjj|dd t	t
tjj|dd d S )N)r   r  r        "@r   r8  r\   r  rg   r   )r`   r   r/   rJ  ro   r   r  Zptpr  r;  r  r  r+   r+   r,   test_uniform_fit  s    


zTestFitMethod.test_uniform_fitmethodZMLEZMMc              
   C   sl  d\}}t jj||ddd}t jj|d|d}t jj|d|d}t||ddd	 t jj|d|d
}t||ddd	 t jj|d|d}t jj|d|d}t||ddd	 t jj|d|d}t||ddd	 ttt jj|dd|d ttt jj|dddd|d t jj|ddd|d}	|	\}
}}}t|
||gg d d}t jj|dd}t jj|||d\}
}}t|
| d S )N)rY  r  r]   r   r	  rY  )rz   r  )rJ  r  r  r*  )rK  r  r  )r{   r  )r7  r  )r6  r  r   r5   )rJ  rz   r  r   r~   )rJ  r{   rw   rx   r  )rJ  rw   rx   r  )rY  r   r   r   )	r/   r.  r   ro   r   r;  r  r   r]  )r   r  r)   r*   r>   Zres_1Zres_2Zres_3Zres_4Zres_5ZaaZbbr  Zssrs   r+   r+   r,   test_fshapes  s.    zTestFitMethod.test_fshapesc                 C   s@   t j}|jddd}tdd}tt|j|fi |d|i d S )Nr5   r]   )r$  r   i)Zenikibenikir  )r/   r#  r   r   r;  r   ro   )r   r  rF   rs   r   r+   r+   r,   test_extra_params  s    
zTestFitMethod.test_extra_paramsN)r   r   r   r  r   r  r   r#  r  r   r  r  r  r  r  r  r  r  r  r  r+   r+   r+   r,   r    s    

	&7
&r  c                   @   sT   e Z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 )
TestFrozenc                 C   s   t jd d S r   r   r   r+   r+   r,   r     s    zTestFrozen.setup_methodc                 C   s  t j}t jddd}|d}|jdddd}t|| |d}|jdddd}t|| |d}|jdddd}t|| |d}|jdddd}t|| |d}|jdddd}t|| | }|jddd}t|| |	 }|j	ddd}t|| |
 }|j
ddd}t|| | }|jddd}t|| | }|jddd}t|| |d}|jdddd}t|| t|j|j t|j|j d S )Nr,  rY  r2   r  r   r5   )r/   r  r7   r   rA   r   r   r   r  r   r  r   rL   r4  r)   r*   )r   rF   frozenresult_fr  r+   r+   r,   r    sJ    
















zTestFrozen.test_normc                 C   s  d}t j}t |}|d}|d|}t|| |d}|d|}t|| |d}|d|}t|| |d}|d|}t|| |d}|d|}t|| | }||}t|| |	 }|	|}t|| |
 }|
|}t|| | }||}t|| | }||}t|| |d}|d|}t|| t|j|jj t|j|jj d S )Nrg   r  r   r,  r5   )r/   r]  r7   r   rA   r   r   r   r  r   r  r   rL   r4  r)   rF   r*   )r   r)   rF   r  r  r  r+   r+   r,   
test_gamma  sL    






















zTestFrozen.test_gammac                 C   s8   t d}|d}|j dd |d}t|| d S )Nr   r5   rZ  r[  )r/   r   r4  r   )r   r  m1r  r+   r+   r,   test_regression_ticket_1293<  s
    


z&TestFrozen.test_regression_ticket_1293c                 C   sR  d}t j|d}|j|\}}t||gddg d}t jjd|d t|j|dtjg d}t j|d}|j|\}}t||gddg d}t jd| t|jj|jj	ft j| t jdd}t
|j|ju dD ]l}t|}t j|d}|j|j	 }}t|d t
t| td}t j|\}}t||gdd	g qd S )
Nri  rF  rh   r,  rZ   r   r?  r@  rc   )r/   rB  rF   rC  r   r7   r`   r   r)   r*   r   rA  rD  r   )r   r   rH  r)   r*   Zrv1r+   r+   r,   rE  K  s2    



zTestFrozen.test_abc                 C   s   t ttjd d S )NZ	rv_frozen)r   r(   r/   r0   r   r+   r+   r,   test_rv_frozen_in_namespacew  s    z&TestFrozen.test_rv_frozen_in_namespacec                 C   sV   t  }tt|d d|_t|j tj	d  tj	d}|j
d|d d S )Nr
  *   r   rQ  r	  )r/   r  r   r(   r
  r   Z	get_stater`   r   ZRandomStater   )r   r  Zrndmr+   r+   r,   test_random_state{  s    
zTestFrozen.test_random_statec           
      C   s   t dd}t d}t jg dg dfd}|||fD ]}d|_|jdd	 t|}|jdd	}t|}|jdd	}t	|| |
d
|
d
g}	t	|	d |	d  t	||	d ||	d  q8d S )Ngdsz@g@e?rY  )r   r   r5   r~   )rZ   r  r  r  r  r   rQ  r   rc   r   r   )r/   r.  rw  rI   r
  r   pickledumpsloadsr   r   rA   )
r   r.  Zpoissr  distfnr=   Zr0Z	unpickledZr1Zmediansr+   r+   r,   test_pickling  s$    




zTestFrozen.test_picklingc              	   C   s   dd }t jdddd}|j|dddd	}t jj|d
dddddd}t|| t jddd}||}t jj|ddd}t|| d S )Nc                 S   s   | S r_   r+   r  r+   r+   r,   rt     s    z$TestFrozen.test_expect.<locals>.funcr5   r~   r   )r)   r3   r4   r   T)lbubconditionalr5   r   r3   r4   r  r  r  r3   )r~   r   r3   )r/   r]  r  r   rw  )r   rt   ZgmZgm_valZ	gamma_valr   Zp_valZpoisson_valr+   r+   r,   test_expect  s    

zTestFrozen.test_expectN)r   r   r   r   r  r  r  rE  r  r  r  r  r+   r+   r+   r,   r    s   34,r  c                   @   sl   e Z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d ZdS )
TestExpectc                 C   s   t jjdd ddd}t|ddd t jjd	d ddd}t|ddd t jjd
ddd}t jjdddd}t jjdd dd||d}t|ddd t jjdd dd||dd}t|ddd d S )Nc                 S   s   | d | d  S )Nr   r+   r  r+   r+   r,   rR     rH   z&TestExpect.test_norm.<locals>.<lambda>r   r5   r2   r   r_  r   c                 S   s   | S r_   r+   r  r+   r+   r,   rR     rH   r  ry  c                 S   s   dS r  r+   r  r+   r+   r,   rR     rH   )r3   r4   r  r  r  c                 S   s   dS r  r+   r  r+   r+   r,   rR     rH   T)r3   r4   r  r  r  r   )r/   r  r  r   r   )r   r  r  r  r  prob90prob90cr+   r+   r,   r    s    zTestExpect.test_normc              	   C   s   t jjdd dddd}t|ddd	 t jjd
d dddd}t|ddd	 t jjdddddd}t jjdddddd}t jjdd ddd||dd}t|ddd	 t jjdd ddd||dd}t|ddd	 d S )Nc                 S   s   | d | d  S )NUUUUUU@r+   r  r+   r+   r,   rR     rH   z&TestExpect.test_beta.<locals>.<lambda>r:  r   r5   )r   r3   r4   qq?rb  r   c                 S   s   | S r_   r+   r  r+   r+   r,   rR     rH   r   rg   r  ry  r\   r2   r  c                 S   s   dS )Nr   r+   r  r+   r+   r,   rR     rH   )r\   r\   Fr  r  c                 S   s   dS r  r+   r  r+   r+   r,   rR     rH   Tr   )r/   r.  r  r   r   )r   r  r  r  r  r  r  r+   r+   r,   	test_beta  s     zTestExpect.test_betac           
      C   s&  t jj ddddd\}}t jjdd ddd	}t||d
d t jjdd ddd	}t||dd t jjdd dddd
d}t||dd dt jjdd
gddddd  }t jjdd ddddd}t||d
d t jjdd dddddd}t|ddd t jjdd dddd}	t|	dd
d d S )NrE  r\   rQ  r   r  c                 S   s   | S r_   r+   r  r+   r+   r,   rR     rH   z+TestExpect.test_hypergeom.<locals>.<lambda>)rE  r\   rQ  r  rb  r   c                 S   s   | d d S Nr  r5   r+   r  r+   r+   r,   rR     rH   r_  c                 S   s   | d d S r  r+   r  r+   r+   r,   rR     rH   r   )r   r3   r  r  r   c                 S   s   dS r  r+   r  r+   r+   r,   rR     rH   r  r   c                 S   s   dS r  r+   r  r+   r+   r,   rR     rH   T)r   r3   r  r  r  c                 S   s   dS r  r+   r  r+   r+   r,   rR     rH   r   )r   r  r  )r/   r  r  r   r   r   )
r   Zm_trueZv_truer  r  Zv_boundsZ	prob_trueprob_boundsZprob_bcZprob_br+   r+   r,   test_hypergeom  s2    "zTestExpect.test_hypergeomc                 C   sb   t jjdd dddd}dt jdd }t||d	d
 t jjdd dddd}t|dd	d
 d S )Nc                 S   s   dS r  r+   r  r+   r+   r,   rR     rH   z)TestExpect.test_poisson.<locals>.<lambda>r  r~   F)r   r  r  r   r5   r_  r   c                 S   s   dS r  r+   r  r+   r+   r,   rR     rH   T)r/   rw  r  rA   r   )r   r  Zprob_b_trueZprob_lbr+   r+   r,   test_poisson  s    zTestExpect.test_poissonc                 C   s<   t j}|jdd}|jdd |jdd}t||dd d S )N)r  r  )rc   r_  r   )r/   Zgenhalflogisticr  r   )r   Zhalflogres1r  r+   r+   r,   test_genhalflogistic  s
    zTestExpect.test_genhalflogisticc                 C   sv   t ttjdd t ttjjdd dd t ttjjdd dd t ttjjdd dd d S )	Ni  Gz?c                 S   s   dS r  r+   r  r+   r+   r,   rR     rH   z/TestExpect.test_rice_overflow.<locals>.<lambda>)r  r  c                 S   s   dS r  r+   r  r+   r+   r,   rR     rH   c                 S   s   dS )Nr~   r+   r  r+   r+   r,   rR     rH   )r   r`   r  r/   ricer7   r  r   r+   r+   r,   test_rice_overflow  s    zTestExpect.test_rice_overflowc                 C   sp   d\}}t jjdd |fd}t|||d  td|  dd t jjdd |f|d	}t||| dd d S )
N)r  r~   c                 S   s   | S r_   r+   r;   r+   r+   r,   rR     rH   z(TestExpect.test_logser.<locals>.<lambda>r  r   ri   rT  c                 S   s   | S r_   r+   r  r+   r+   r,   rR   $  rH   r  )r/   r  r  r   r`   r   )r   r   r3   Zres_0Zres_lr+   r+   r,   test_logser  s    zTestExpect.test_logserc                 C   sh   d\}}t jjdd ||fd}t jjdd ||fd}t||| dd t||d  || dd d S )	N)r  r  c                 S   s   | S r_   r+   r  r+   r+   r,   rR   +  rH   z)TestExpect.test_skellam.<locals>.<lambda>r  c                 S   s   | d S r  r+   r  r+   r+   r,   rR   ,  rH   r  rT  r5   )r/   r;  r  r   )r   r  p2r  r  r+   r+   r,   test_skellam'  s
    zTestExpect.test_skellamc                 C   sL   d\}}t jdd ||f}t|tdd t||D ||  dd d S )N)r   q   c                 S   s   | S r_   r+   r  r+   r+   r,   rR   4  rH   z)TestExpect.test_randint.<locals>.<lambda>c                 s   s   | ]
}|V  qd S r_   r+   rE   r  r+   r+   r,   r  6  rH   z*TestExpect.test_randint.<locals>.<genexpr>ri   rT  )r/   r   r  r   r   r7  )r   lohir  r+   r+   r,   test_randint0  s
     zTestExpect.test_randintc                 C   s   t ttjjdd d d S )Nc                 S   s   | d S r  r+   r  r+   r+   r,   rR   ;  rH   z&TestExpect.test_zipf.<locals>.<lambda>r  )r   r   r/   r  r  r   r+   r+   r,   	test_zipf8  s    
zTestExpect.test_zipfc                 C   s@   t jjdd dd}t jjdd ddddd	}t||d
d d S )Nc                 S   s   dS r  r+   r  r+   r+   r,   rR   ?  rH   z/TestExpect.test_discrete_kwds.<locals>.<lambda>r  r  c                 S   s   dS r  r+   r  r+   r+   r,   rR   @  rH   r      r"  )r   ZmaxcountZ	chunksizeZ	tolerancer_  r   )r/   rw  r  r   )r   Zn0Zn1r+   r+   r,   test_discrete_kwds=  s
    zTestExpect.test_discrete_kwdsc                 C   s6   dd }dD ]$}t jd|}t|||dd qd S )Nc                 S   s0   | d d| d   d| d   d| d   |  S )Nr   r\   r   r  r~   r   r5   r+   r  r+   r+   r,   poiss_moment5G  s    z-TestExpect.test_moment.<locals>.poiss_moment5)r   r  r   r7  rj   )r/   rw  r4  r   )r   r  r  Zm5r+   r+   r,   test_momentD  s    zTestExpect.test_momentN)r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r+   r+   r+   r,   r    s   "
		r  c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )TestNctc                 C   s@   t dd}t|dd t dd}t|dddd d S )Nr   r   rc   rJ  g K?r\   r   )r/   nctr   rA   r   rM  r+   r+   r,   test_nc_parameterP  s    zTestNct.test_nc_parameterc              	   C   sZ   t jdtddd d d f tddd}tg dg dg dg}t||d	d
 d S )Nr   r   r  rZ   r   )gMp^j?g6].ftv?gȳ'ς?gu?)g!Y<a?g]d1p?go|?g?)gHdY?g2Ԥg?g}o/u?g .mr?r  rj   )r/   r  r7   r`   r   r   r   r   )r   r  rX   r+   r+   r,   test_broadcastingX  s    zTestNct.test_broadcastingc                 C   s   t dd}t| d d S )Nr   r   rg   )r/   r  r   r  rM  r+   r+   r,   test_variance_gh_issue_2401`  s    z#TestNct.test_variance_gh_issue_2401c                 C   s   t jj dddd\}}}}t||||gtjtjtjtjg t jj dddd\}}}}tt| t|||gtjtjtjg t jj dddd\}}}}tt|||g  t|tj d S )Nr  r  rZ  )rA  ncr\  rj  r  )r/   r  r   r`   r   r   r  r   r/  r+   r+   r,   test_nct_inf_momentsh  s    "zTestNct.test_nct_inf_momentsc                 C   s   t jdd}t j dd}ddg}t||d dd t||dd t jdd}t j dd}d	d
g}t||d dd t||dd d S )Nr  r5   g@ @g*dn?r   r7  rj   rP  gqI  @gL) ?rS  )r/   r  r   r   )r   Znct_mean_df_1000Znct_stats_df_1000Zexpected_stats_df_1000Znct_meanZ	nct_statsr]  r+   r+   r,   test_nct_stats_large_df_valuesu  s    
z&TestNct.test_nct_stats_large_df_valuesN)r   r   r   r  r  r  r  r  r+   r+   r+   r,   r  O  s
   r  c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestRicec                 C   s   g d}t ttjj|dd  t ttjj|dd  t ttjj|dd  t ttjj	|dd  g d}t ttjj
|dd  tjjddd}t t|  d}ttj|dtj|||dd	 d S )
N)r  r   r   rh   r*   )rZ   rZ   rc   r  r   rZ  r[  r"  r*  )r   r`   r  r/   r  r7   r   r   rA   rl  r   r   )r   r>   r   rZ  r*   r+   r+   r,   test_rice_zero_b  s    zTestRice.test_rice_zero_bc                 C   s2   t jj}t|ddjd t|dddjd d S )NrY  r  r   )r~   r   )r*   r   )r/   r  r   r   r   r   r  r+   r+   r,   test_rice_rvs  s    zTestRice.test_rice_rvsc                 C   s   t jtdddtddd}g d}t|| tddd}t jj|ddd}g d	}t|| tj jd
tddd}g d}t|| d S )Nr\      )g/Ƹ?g[jǊ\?g 	?g9LJ?g#O?gXx?glO?g٥a%?gVzӯ?gTQ+xQ?g?`J?go?gbu=?gIo|?g"Z6?rZ   r   g     @_@r   r  )	g<~@gwd
@gC?@gb
0@g` A@@g'NxP@g33-a@g4pv@g$F@rc      )gJ-$@g+f4@gce*D>@g$D@gnHGI@grN@g<
uQ@giff T@g9r[V@g3bXQ Y@gqxJ[@g`*DD ^@g@`@gdAa@)r/   r  rA   r`   r   r   r   r.   )r   rA   Zcdf_expZprobabilitiesr   Zppf_expr+   r+   r,   test_rice_gh9836  s    "

zTestRice.test_rice_gh9836N)r   r   r   r  r  r	  r+   r+   r+   r,   r    s   r  c                   @   s$   e Zd Zdd Zdd Zdd ZdS )
TestErlangc                 C   s   t jd d S r   r   r   r+   r+   r,   r     s    zTestErlang.setup_methodc              	   C   s   t  j t dt tttjjddddd g d}tjj|dd}tj	j|dd}t
||d	d
 W d    n1 sx0    Y  d S )Nr   g?r   r   r   r  )rc   r   rg   r  r  r`  rj   )r   r   r   r   r;  r/   erlangr   ro   r]  r   )r   rs   Zresult_erlangZresult_gammar+   r+   r,   test_erlang_runtimewarning  s    
z%TestErlang.test_erlang_runtimewarningc                 C   s.   t tjjdddgdtjjdddgd d S )Nrc   r   rJ  r  )r   r/   r  r7   r]  r   r+   r+   r,   test_gh_pr_10949_argcheck  s    z$TestErlang.test_gh_pr_10949_argcheckN)r   r   r   r   r  r  r+   r+   r+   r,   r
    s   r
  c                   @   sr   e Zd Zdd Zdd Zdd Zejde	j
dgd	d
 Zejdddge	j
dgdd Zdd ZdS )TestRayleighc                 C   s   t jd d S )Nr  r   r   r+   r+   r,   r     s    zTestRayleigh.setup_methodc                 C   s   t jd}t|d d S )Nr   g)Zx)r/   r   r   r   r   r  r+   r+   r,   r    s    zTestRayleigh.test_logpdfc                 C   s   t jd}t|d d S )Nr   i)r/   r   rm  r   r  r+   r+   r,   rx    s    zTestRayleigh.test_logsfzrvs_loc,rvs_scaler5   c                 C   s   t jjd||d}dd }|||}t jj||d\}}t|| t|| t jj|dd\}}t|d t j|\}}t|||| d S )Nr  r  c                 S   s"   t | | d dt|   d S )Nr5   rc   )r`   r   r   )rs   rw   r+   r+   r,   r    s    z(TestRayleigh.test_fit.<locals>.scale_mler8  r  r  )r/   r   r   ro   r   )r   r1  r2  rs   r  Zscale_expectr3   r4   r+   r+   r,   r    s    



zTestRayleigh.test_fitr  re   c                 C   sH   t jjd||d}|t j|fg}t j|i d }tt j|| d S )Nr  r  r   )r/   r   r   r  r  rv   )r   r1  r2  rs   r   rt   r+   r+   r,    test_fit_comparison_super_method  s    z-TestRayleigh.test_fit_comparison_super_methodc                 C   s   t tj d S r_   )r   r/   r   r   r+   r+   r,   r<    s    zTestRayleigh.test_fit_warningsN)r   r   r   r   r  rx  r   r#  r  r`   r   r  r  r  r<  r+   r+   r+   r,   r    s   


r  c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestExponWeibc                 C   sB   d}d}d}t j|||}t j|||}t||gddg d S )NrZ   r   g      Y@g:23W+g~`9k)r/   	exponweibr7   r   r   )r   r>   r)   r   r   r  r+   r+   r,   test_pdf_logpdf%  s    zTestExponWeib.test_pdf_logpdfc                 C   sj   t ddd}d}d}tj|||}tj||}t|| tj|||}tj||}t|| d S )Nr   rJ  r   r   r]   )r`   r   r/   r  r7   weibull_minr   r   r   r>   r)   r   r   rX   r  r+   r+   r,   test_a_is_10  s    
zTestExponWeib.test_a_is_1c                 C   sf   t ddd}d}d}tj|||}tj|}t|| tj|||}tj|}t|| d S )Nr  r   r\   )r`   r   r/   r  r7   r  r   r   r  r+   r+   r,   test_a_is_1_c_is_1@  s    
z TestExponWeib.test_a_is_1_c_is_1N)r   r   r   r  r  r  r+   r+   r+   r,   r  #  s   r  c                   @   s   e Zd Zdd Zdd ZdS )TestFatigueLifec                 C   s    t jdd}t|ddd d S )Nr  r)  X9r)  rj   )r/   r   r   r   r   r+   r+   r,   r5  Q  s    zTestFatigueLife.test_sf_tailc                 C   s$   d}t j|d}t|ddd d S )Nr  r)  r  r)  rj   )r/   r   r   r   )r   r   r   r+   r+   r,   test_isf_tail_  s    zTestFatigueLife.test_isf_tailN)r   r   r   r5  r  r+   r+   r+   r,   r  O  s   r  c                   @   s   e Zd Zdd Zdd ZdS )TestWeibullc                 C   s   t jdd}t|d d S r   )r/   r  r   r   r  r+   r+   r,   r  h  s    zTestWeibull.test_logpdfc           
      C   sP  d}d}d}t jj|||d}t|tdd  t jj|||d}t|dtd  t jj|||d}t|t	
d  t jj|||d}t|tt	
d  t jj|||d}t|td t jj|||d}	t|	d t jjdddd}t|td	 t jjdddd}	t|	d	 d
}t jj|||d}t|tdd  t jj|||d}t|dtd  t jj|||d}t|td t jj|||d}t|d t jj|||d}t|t	
d  t jj|||d}	t|	tt	
d  t jjdddd}t|t	
d  t jjdddd}	t|	tt	
d  d S )Nr  rg   rY  r  r   r~   r   r5   rK  r  g&.gCe )r/   r  r7   r   r`   r  r   r   rA   r   re  rl  r   rm  Zweibull_max)
r   r>   r)   r*   r   r   r   Zlcr=   Zlsr+   r+   r,   test_with_maxima_distribm  sH    


z$TestWeibull.test_with_maxima_distribN)r   r   r   r  r  r+   r+   r+   r,   r  f  s   r  c                   @   s   e Zd Zdd Zdd ZdS )	TestRdistc                 C   s0   t j}g d}t|||dd|dd d S )Nr_  g     @r   r   )r/   rdistr   rA   r   )r   r  r  r+   r+   r,   test_rdist_cdf_gh1285  s
    zTestRdist.test_rdist_cdf_gh1285c                 C   sN   t ddd}d}tdt|d |d |d d  t|| d S )NgGzr9  r\   g@rc   r5   r   )r`   r   r   r/   r.  r7   r  )r   r>   r   r+   r+   r,   test_rdist_beta  s
    &zTestRdist.test_rdist_betaN)r   r   r   r  r   r+   r+   r+   r,   r    s   r  c                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )TestTrapezoidc                 C   s`   g d}|D ]N}d|dg}t tj|||tj|| t tj|||tj|| qd S )N)r   r  rc   r   r   r   )r   r/   r   r7   triangrA   )r   Zmodesmoder>   r+   r+   r,   test_reduces_to_triang  s    
z$TestTrapezoid.test_reduces_to_triangc                 C   sN   t ddd}ttj|ddtj| ttj|ddtj| d S Nr   r   r\   )r`   r   r   r/   r   r7   rJ  rA   r   r+   r+   r,   test_reduces_to_uniform  s    z%TestTrapezoid.test_reduces_to_uniformc                 C   s  t tjdddd t tjdddd t tjdddd t tjdddd t tjd	ddd
 t tjdddd t tjdddd
 t tjd	ddd t tjdddd t tjdddd t tjdddd t tjdddd d S )Nr   r5   r   rc   r  rZ  r  r   rZ   g      ?      ?r  g      ?re  g      ?)r   r/   r   r7   rA   r   r+   r+   r,   
test_cases  s     zTestTrapezoid.test_casesc           	         sf  d\              f\}}}}d      fdd}|d}|d|d  }d          t d      }ttj|||||dd ttj|||||dd ttj|||||dd ttjd	d	d
dddd ttjd	dd
dd	dd ttjd	dd
dddd d S )N)r  rJ  r5   r~   r5   c                    sT   | d  | d     | d   | d        | d  | d  S )Nr5   r   r+   )r   r)   r*   r   dr   r+   r,   r4    s     z6TestTrapezoid.test_moments_and_entropy.<locals>.momentr   rc   rb  r   r   r  r  rJ  r~   )r`   r   r   r/   r   r   r  rL   )	r   r  r  r3   r4   r4  r   r  rL   r+   r)  r,   test_moments_and_entropy  s&    0>z&TestTrapezoid.test_moments_and_entropyc                 C   sb  t g d}t ddgd d d f }t g d}tj|||}t |||\}}}t j|j|jd}t 	|j}	t
|	| | | D ] \}
}}}tj|||||
< qt|||jdd t tjj||dd	}t ||\}}t |jd
f}t 	|j}	t
|	| | D ]"\}
}}tjj||dd	||
< q"t||j|jdd d S )N)rZ   r  r  rc   r  )r  r   r  )r   ri   rT  rZ  r[  r   )r`   r   r/   r   r7   Zbroadcast_arraysemptyr   r   r   r   ravelr   r  r   rA  r  )r   r   r*  r>   r  ZccZddr   r  Zindr5  r  c1Zd1r+   r+   r,   test_trapezoid_vect  s"    &z!TestTrapezoid.test_trapezoid_vectc                 C   s0   t ddd}ttj|ddtj| d S r%  )r`   r   r   r/   rM   r7   rJ  r   r+   r+   r,   
test_trapz*  s    zTestTrapezoid.test_trapzN)	r   r   r   r$  r&  r(  r+  r/  r0  r+   r+   r+   r,   r!    s   	r!  c                   @   s   e Zd Zdd ZdS )
TestTriangc                 C   s$  t jdd  ttjddd ttjddd ttjddd ttjddd ttjddd ttjddd	 ttjddd ttjddd
 ttjddd ttjddd ttjddd ttjddd W d    n1 s0    Y  d S )Nraiser  r   rg   rc   r   r   rh   r5   r   r   )r`   r  r   r/   r"  r7   rA   r   r+   r+   r,   test_edge_cases1  s    zTestTriang.test_edge_casesN)r   r   r   r3  r+   r+   r+   r,   r1  0  s   r1  c                   @   s   e Zd Zdd Zdd ZdS )
TestMielkec                 C   s\   d\}}t t||dtj t t|ddtj ttt|dd d S )N)g rh@gv?r   r   r  )r   r/   mielker4  r`   r   r   r  )r   r;   r=   r+   r+   r,   r  E  s    zTestMielke.test_momentsc                 C   s@   t ddd}d\}}ttj|||| tj||| d S )Nre   r]   r   )g@gHzG@)r`   r   r   r/   burrr7   r5  )r   r>   r;   r=   r+   r+   r,   test_burr_equivalenceL  s    z TestMielke.test_burr_equivalenceN)r   r   r   r  r7  r+   r+   r+   r,   r4  D  s   r4  c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestBurrc              	   C   s   t jddgt jddgt jddgt jddgt jddgt jddgt jd	d
gg}dd |D }dd |D }t|| dd |D }dd |D }t|| d S )N)r   r   )rc   r5   )r   r   )r5   rc   rX  rc   r   )r   r5   rg   c                 S   s&   g | ]\}}}|j |jg|R  qS r+   r  r  r+   r+   r,   rG   _  rH   z0TestBurr.test_endpoints_7491.<locals>.<listcomp>c                 S   s   g | ]\}}}|qS r+   r+   r  r+   r+   r,   rG   `  rH   c                 S   s&   g | ]\}}}|j |jg|R  qS r+   )r   r)   r  r+   r+   r,   rG   c  rH   c                 S   s   g | ]\}}}t |qS r+   )r`   r   r  r+   r+   r,   rG   d  rH   )r/   Zfiskr6  burr12r   )r   rs   r  r  r+   r+   r,   test_endpoints_7491S  s    






	
zTestBurr.test_endpoints_7491c                 C   s<   d\}}t ||  \}}d\}}t|| t|| d S )N)r   r~   )g4U?g&MI?)r/   r6  r   )r   r   r*  r   varianceZmean_hcZvariance_hcr+   r+   r,   test_burr_stats_9544g  s
    
zTestBurr.test_burr_stats_9544c           	      C   sF  d\}}t ||  \}}tt| tt| d\}}t ||  \}}tt| tt| d\}}t jtg d||\}}}}tt| tt| tt| tt| d\}}t jg d||\}}}}tt| tt| tt| tt| d\}}t jg d||\}}}}tt| tt| tt| tt| d\}}t jg d||\}}}}tt| tt| tt| tt| d\}}t jg d||\}}}}tt| tt| tt| tt| d S )N)rc   r~   )r  r~   )r   r5   r~   r   )r)  r~   )r*  r~   )r-  r~   )r/   r6  r   r`   r  r  _munpr   )	r   r   r*  r   r;  Ze1Ze2Ze3Ze4r+   r+   r,   test_burr_nan_mean_var_9544r  sL    "z$TestBurr.test_burr_nan_mean_var_9544N)r   r   r   r:  r<  r>  r+   r+   r+   r,   r8  R  s   r8  c                   @   s  e Zd Zg dZg dZg dZeeeefZg dZ	ddddd	ej
gZg d
Zeee	eeeZddddej
dfddej
dfddej
dfgZdd Zejjdd ZejeZdZeejeedZe eZ!W d   n1 s0    Y  ej"de!d dd Z#ej"de!d dd Z$ejjej"de!d d d! Z%d"d# Z&ejj'd$d% Z(ej"d&ed'd( Z)ejjd)d* Z*ejj'd+d, Z+dS )-TestStudentizedRange)gQ1@g33333F@g
ףp=*K@gHzM@g/$@g~j!@g33333$@g{Gz&@gh|?5	@gQ8@g&1@g|?5@g@gOn@g!rhm@gB`"@r  gʡEs@g|?5^@g/$@gV-@g/$@gF@g?5^I@)gRV@gffffffl@gp@g     r@gʡ @gHzG/@gQ82@gQ3@g!rh@g     @g+@gʡEs @gjt@gB`"[@g@gnJ@gV-@gFx@gsh|?@g+N@g/$@g @g@gGz@)gfffff"@i  i
  i  gHzG2@g(\A@gQC@gfffffE@g @gNbX9"@gHz$@g(\&@g-@gn@@gw/@g=
ףp @gJ+@g-'@gn@gHz@gV-@gnJ@g$@g/ݤ@)ry  r9  ra  r   r~   r\   rE  x   )r5   rQ  r_  rE  )rZ   r~   i)#  gupm1f?)r   r\   r  g?<-=A?gv"?r   gd暕?ga-A?c                 C   s<   | j D ]0\}}|\}}}tj|||}t||dd qd S Nr  rj   )rs   r/   studentized_rangerA   r   )r   pvkr   Z
p_expectedr  r;   Zres_pr+   r+   r,   test_cdf_against_tables  s    
z,TestStudentizedRange.test_cdf_against_tablesc                 C   s.   | j D ]"\}}tjj| }t||dd qd S rA  )rs   r/   rB  r   r   )r   rC  Z
q_expectedZres_qr+   r+   r,   test_ppf_against_tables  s    z,TestStudentizedRange.test_ppf_against_tablesz&data/studentized_range_mpmath_ref.jsonr  Ncase_resultZcdf_datac                 C   sN   |d }|d }|d |d |d f}t jj| }t|||d |d d d S 	Nsrc_case	mp_resultr   r;   r  expected_atolexpected_rtolr*  r/   rB  rA   r   r   rF  rH  rI  Zqkvr  r+   r+   r,   test_cdf_against_mp  s    z(TestStudentizedRange.test_cdf_against_mpZpdf_datac                 C   sN   |d }|d }|d |d |d f}t jj| }t|||d |d d d S rG  )r/   rB  r7   r   rM  r+   r+   r,   test_pdf_against_mp  s    z(TestStudentizedRange.test_pdf_against_mpZmoment_datac                 C   sN   |d }|d }|d |d |d f}t jj| }t|||d |d d d S )	NrH  rI  r  r;   r  rJ  rK  r*  )r/   rB  r4  r   )r   rF  rH  rI  Zmkvr  r+   r+   r,   test_moment_against_mp  s    z+TestStudentizedRange.test_moment_against_mpc                 C   s4   d\}}t tjjdtj||fd}t|d d d S )Nr~   r\   r   r  r   )r   r/   rB  r7   r`   r   r   )r   r;   r  r  r+   r+   r,   test_pdf_integration  s    z)TestStudentizedRange.test_pdf_integrationc                 C   s\   d\}}t jdddd}tj|||dd  }tj|||}t||}t||dd d S )	NrQ  r   r\   re   )stepr   r  rj   )r`   r   r/   rB  rA   r7   r   r   )r   r;   r  r>   Zy_cdfZ	y_pdf_rawZy_pdf_cumulativer+   r+   r,   test_pdf_against_cdf  s    
z)TestStudentizedRange.test_pdf_against_cdfr_case_resultc                 C   s*   |\}}}}t j|||}t|| d S r_   rL  )r   rU  r   r;   r  Zr_resr  r+   r+   r,   test_cdf_against_r  s    z'TestStudentizedRange.test_cdf_against_rc                 C   sr   t jddgddgddg}t|jd tjtdd	( t jdddgg d
 W d    n1 sd0    Y  d S )Nr   r5   r   r   r\   r  r  z...could not be broadcast...r   )r\   r  r   )r/   rB  r=  r   r   r   r   r  r   r+   r+   r,   test_moment_vectorization  s    z.TestStudentizedRange.test_moment_vectorizationc              	   C   s   t  ^}tjdd2 |t tjg d\}}}}W d    n1 sL0    Y  W d    n1 sj0    Y  ttj	|| d S )Nr  Zinvalidr}   )
r
   r`   r  rU   r   r/   rB  r  r   Z	_argcheck)r   r  r;   rA  r  r+   r+   r,   test_fitstart_valid"  s    
Tz(TestStudentizedRange.test_fitstart_valid),r   r   r   Zq05Zq01Zq001r`   r  ZqsZpsr   ZvsZksr   r"   rs   Zr_datarD  r   r#  r$  rE  r  r  r  r  Zpath_prefixrelative_pathopenr  filejsonr  Zpregenerated_datar  rN  rO  rP  rR  ZxslowrT  rV  rW  rY  r+   r+   r+   r,   r?    sJ   
(







	r?  c                   C   sR   t tjddddd t tjddddd t tjjdd	d
ddddd d S )Ng2g?r\   test_540_567)r   err_msgg2gk?g;B.?gͣh?gHŎ*?r2   g.y?)r   r/   r  rA   r+   r+   r+   r,   r^  +  s    r^  c                   C   s   t jjdd d S )Nr]  r  )r/   Z_continuous_distnsZ	gamma_genr+   r+   r+   r,   test_regression_ticket_13167  s    ra  c                   C   s   t tjdddd d S )Nrh   r5   rc   r_  r`  r+   r+   r+   r,   test_regression_ticket_1326=  s    rb  c               	   C   s  t ddd} t jdd dddt dgdgdggfD ]6}tj| |}t|dk  tt 	|   q:t dgdgd	gg}tj| |}W d    n1 s0    Y  tt 	|   t|d
 dk  t|d dk  t|d dk
  t|d dk
  d S )N      r   r[   r  Zdividerh   r  r@  rg   r   r   r5   )r`   r   r  r   r/   r$   r7   r   r   r  any)r>   r  r   r+   r+   r,   test_regression_tukey_lambdaB  s    ",rf  zdocstrings strippedrM  c                   C   s$   t dtjjv t dtjjv  d S )Nzpdf(x, mu, loc=0, scale=1)zpmf(x,)r   r/   rw  r  r+   r+   r+   r,   test_regression_ticket_1421W  s    rg  c                   C   s  t jdd tt tjdt j tt tjdt j tt tj	dt j tt tj
dt j tt tjdt j tt tjdt j tt tjdt j tt tjdt j tt tjt jd tt tjt jd tt tj	t jd tt tj
t jd tt tjt jd tt tjt jd tt tjt jd tt tjt jd W d    n1 s0    Y  d S )Nr  rX  r   rc   )r`   r  r   r  r/   r@  rl  r   rA   rm  r   r7   r   r   r   r   r   r  r+   r+   r+   r,    test_nan_arguments_gh_issue_1362]  s"    rh  c                  C   sj  t jd t g d} tjj| d | d | d dd}t jdd	& t tjj|d
d}W d    n1 sr0    Y  t	|| dd t tjj|ddd}t	|| dd t tjj|ddd}t	|| dd t tjj|ddd}t	|| dd t jd d}d}tj
j|ddd}t tj
j||d}t |t || d  g}t	||dd d S )Ni.  )r   rh   rc   r   r   r5   r]   r   r  rd  rh   r8  r   rc   )rx   r3   r   )rz   r3   r  r  rg   r   )r`   r   r   r   r/   r   r   r  ro   r   r  r>  r   )truer>   paramsr3   rw   rX   r+   r+   r,   test_frozen_fit_ticket_1536r  s&     4 rk  c                  C   s<   t jd tjjdd} tj| }d}t||dd d S )Ni	 r]   r   )g
ףp=
?gʡE?r   r   )r`   r   r   r/   rC  r   ro   r   )r   rj  rX   r+   r+   r,   test_regression_ticket_1530  s
    rl  c                  C   sV   t jd t jd} dD ]4}tj| | \}}t||dd t|ddd qd S )Nr   r  )r  g   6Ar   rT  r  )r`   r   r   Zrandnr/   rC  ro   r   )r>   offsetr3   r4   r+   r+   r,   test_gh_pr_4806  s    rn  c                  C   s   t jj ddd} dtjd d ddg}t| |dd t jj d	dd} g d
}t| |dd t jj ddd} g d}t| |dd d S )Nr   rZ  r[  r5   r~   r  r\   r   g
ףp=
	@)r   gz5v?r   gRTgQ?)r   gNg @r   gJFٻ)r/   r$   r`   r9   r   )r  rX   r+   r+   r,   "test_tukeylambda_stats_ticket_1545  s    ro  c                   C   s   t ttjdd d S )Nr  r  )r   r`   r  r/   rw  r  r+   r+   r+   r,   test_poisson_logpmf_ticket_1436  s    rp  c                  C   s4   ddg} | D ]"\}}t jj |dd}t|| qdS )a  Test the powerlaw stats function.

    This unit test is also a regression test for ticket 1548.

    The exact values are:
    mean:
        mu = a / (a + 1)
    variance:
        sigma**2 = a / ((a + 2) * (a + 1) ** 2)
    skewness:
        One formula (see https://en.wikipedia.org/wiki/Skewness) is
            gamma_1 = (E[X**3] - 3*mu*E[X**2] + 2*mu**3) / sigma**3
        A short calculation shows that E[X**k] is a / (a + k), so gamma_1
        can be implemented as
            n = a/(a+3) - 3*(a/(a+1))*a/(a+2) + 2*(a/(a+1))**3
            d = sqrt(a/((a+2)*(a+1)**2)) ** 3
            gamma_1 = n/d
        Either by simplifying, or by a direct calculation of mu_3 / sigma**3,
        one gets the more concise formula:
            gamma_1 = -2.0 * ((a - 1) / (a + 3)) * sqrt((a + 2) / a)
    kurtosis: (See https://en.wikipedia.org/wiki/Kurtosis)
        The excess kurtosis is
            gamma_2 = mu_4 / sigma**4 - 3
        A bit of calculus and algebra (sympy helps) shows that
            mu_4 = 3*a*(3*a**2 - a + 2) / ((a+1)**4 * (a+2) * (a+3) * (a+4))
        so
            gamma_2 = 3*(3*a**2 - a + 2) * (a+2) / (a*(a+3)*(a+4)) - 3
        which can be rearranged to
            gamma_2 = 6 * (a**3 - a**2 - 6*a + 2) / (a*(a+3)*(a+4))
    )r   )rc   r[  rh   r\  )rg   )gUUUUUU?r  g^cQg333333rZ  r[  N)r/   powerlawr   )Zcasesr)   Z
exact_mvskrZ  r+   r+   r,   test_powerlaw_stats  s    rr  c                  C   s   t jdd} t| d d S )Nr   r   rh   )r/   rq  r   r   r   r+   r+   r,   test_powerlaw_edge  s    rt  c                  C   sh   t jdd} t| d t jdg d} t| tjddg t jdg d} t| tjdtj g d S )Nr   r   rh   )r   r   r  r   )r/   r8  r   r   r7   r`   r   rs  r+   r+   r,   test_exponpow_edge  s    
ru  c                  C   sR   t jddd} t| d t jddd} t| d t jddd} t| d d S )	Nr   r   r   r  r  g>r\   gqq?)r/   Zgengammar7   r   r=  r   rs  r+   r+   r,   test_gengamma_edge  s    

rv  c               	   C   s   t g d} t jddZ t 4}|td |td tj	|  W d    n1 s\0    Y  W d    n1 sz0    Y  d S )N)0g>X*ȿgPix#?g=?g&^?goϿg뵏˿gO_ZQ?g\?g~?g)/?gRܶ?g핚οgH߃[g?gS"gm_ пg7k?g#BF?gKU=?gT?gZg[Qs?g2?g6Hwƭ8?g*-
?ga]?g'?g޻?g?J_ ?g~sw?g0FfͿgg"@ӿg?%:˿g&zM?g?Gg	F?g~,g HgW2ҿgTzy?gwmǿg @gW=ֿg	't?g".v1glg.Hꮿg,?g*˿r  rX  z:The maximum number of subdivisions .50. has been achieved.z-floating point number truncated to an integer)
r`   r   r  r
   rU   r   r   r/   r  ro   )r*  r  r+   r+   r,   test_ksone_fit_freeze  s    rw  c                  C   s   t ttddd } g d}tt | |dd tt | d j|dd tj| d d	 j	}t 
tj| tj|  }t||d	d d S )
Nr   r@  r   )gDB.g8_$g%`OAgjhwHRgWMB@v`g7VY}igۦx\Arg	xg#g/dg3$gegd)gNq{3gيGǓgr4g37'
gfFg?dJgضg2,
gm%gӅJgz;pgɿ{gk2gij<%giVSͶgBR4g
Q/Mr"  rT  y        +=y        |=r7  )r`   rA  listr7  r   r/   r  rl  realimagr  r   )r>   rX   ZderivZderiv_expectedr+   r+   r,   test_norm_logcdf  s    	r{  c                  C   sT   t g d} t g d}tj| }t||dd tj|}t|| dd d S )N)r  r   rc   rZ   re   r`  )g~V1?g|N?gba"?g܄4ťY?r	  g$%+Ir7  rj   r)  )r`   r   r/   r   rA   r   r   )r>   rX   r  r   r+   r+   r,   test_levy_cdf_ppf/  s    r|  c                  C   s:   t g d} t g d}tj| }t||dd d S )N)g  4&kCg(,* EgMraB3Ggd~QJ)gep[>g}XEQ=gѭEG<g?_%~:rq  rj   )r`   r   r/   r   r   r   r>   rX   r  r+   r+   r,   test_levy_sfG  s    r~  c                  C   s:   t g d} t g d}tj| }t||dd d S )N)gMbg{Gzg{Gztg~jtX)g#]<gOul2;gޢا6g̅7=!r)  rj   )r`   r   r/   r   r   r   r}  r+   r+   r,   test_levy_l_sfS  s    r  c                  C   s8   t g d} tj| }tj|}t|| dd d S )N)g [n<r   r9  gvIh%,=rj   )r`   r   r/   r   r   r   r   )r   r>   r   r+   r+   r,   test_levy_l_isf_  s    r  c                   C   s|   t tjddddd t tjddddd t tjddddd t tjd	d
d
dd t tjdd
d
dd d S )Nry  i i  i  )g      c@g     h@g=
ףp=?Gz?)g      c@g     h@{Gz?r]   rQ  r   )r   r/   r  r{  r   r+   r+   r+   r,   test_hypergeom_interval_1802g  s    r  c                  C   sr  t jd t jdddd} tttjj| dddd	 tttjj| ddd
dd	 tttjj| ddd
d tttjj| ddddd tttjj	ddddd tttjj
| ddddd tttjj| ddddd tttjjddddd tttjjddddd tttjj| ddddd tj| dd tj| ddd
 tjdd tjddd
 tjddd
d tj	ddd
d tjtjj	dddd tjj| ddd	 tttjj| ddd
 tttjj| ddd
d	 tttjj| ddd	 tttjj| dd
ddd	 tttjj| dd
ddd tttjj| dd
dddd	 tttjj| dd
ddddd	 tj| dd
ddd d S )Nr   rZ   gffffff?r   )Znumr5   r~   r   r  r   rc   r2   rg   r  r  r   r  r  )r`   r   r   r   r;  r   r/   r]  r7   r   rA   r   rL   ro   rd  r   r  r  r  r  r+   r+   r,   test_distribution_too_many_argsv  s8    r  c                  C   sH   t jtddddd} t jtddddd}t| |ddd d S )	NrE  r  r  r5   gYZ@r`  r   r   )r/   ncx2rA   r`   r   Z_cdfvecr   rR  r+   r+   r,   test_ncx2_tails_ticket_955  s    r  c               	   C   s   t  R t dt ttjdt	dddd tj
dt	ddd} W d    n1 s`0    Y  tt|   t  H t dt ttjddd	d ttj
ddd	d
 W d    n1 s0    Y  d S )Nr   r   iT  i^  r5   r   r  r~   r   gsq6)r   r   r   r   r   r/   r  r7   r`   r   r   r   rL  r   r   )Zlogvalr+   r+   r,   test_ncx2_tails_pdf  s    
6
r  zmethod, expectedrA   gu%>g	;Q=r7   g<x>gRz\R>r   gʎK$/gԆX1r   gfHu@ge:@c                 C   s,   t tj| dddgdd}t||dd d S )NrZ   r   r   r\   )r   rA  ri   rT  )r   r/   r  r   )r  rX   r  r+   r+   r,   test_ncx2_zero_nc  s    r  c                  C   s4   t jjdddd} t jjddd}t| |dd d S )Nr\   r   r   )rA  r   r
  )rA  r
  ri   rT  )r/   r  r   ra  r   )r  rX   r+   r+   r,   test_ncx2_zero_nc_rvs  s    r  c                  C   s,   dt dd } ttjjdd| dd d S )Nr\   r   r  r   rA  r   r   )r`   r   r   r/   r  rA   )r   r+   r+   r,   test_ncx2_gh12731  s    r  c                  C   sB   t g d} d\}}tjj| ||d}g d}t||dd d S )N)gю]	@gj%@gb	y/7@g H@gIZ@gXl@g'/2?8@gݰmА@gU@gy]`'@g@g*\@g48c@)rE  gh ?8@r  )r   r   r   r   r   g?gy[qD?rh   rh   rh   rh   rh   rh   r  rT  )r`   r   r/   r  r   r   )r>   nur  r   Zsf_expectedr+   r+   r,   test_ncx2_gh8665  s
    
r  c                  C   s"   t jddd} t| dd d S )Nr   r   r  )r/   Zfoldnormr   rA   r  r+   r+   r,   test_foldnorm_zero  s    r  c                  C   s   t j g ddd} t j ddgdd}tdd |D }t||  t j g d} t j dd	g}td
d |D }t||  d S )N)rh   rc   r   r   rc   r   c                 s   s   | ]}t jt j|f V  qd S r_   r`   r   r   r  r+   r+   r,   r    rH   z-test_stats_shapes_argcheck.<locals>.<genexpr>)r5   r  rJ  r5   r  c                 s   s   | ]}t j|t jf V  qd S r_   r  r  r+   r+   r,   r    rH   )r/   r   tupler   r   )Zmv3Zmv2Zmv2_augmentedr+   r+   r,   test_stats_shapes_argcheck  s    
r  c                   @   s   e Zd Zdd ZdS )
_distr_genc                 C   s   dS Nr  r+   r   r>   r)   r+   r+   r,   _pdf  s    z_distr_gen._pdfNr   r   r   r  r+   r+   r+   r,   r    s   r  c                   @   s   e Zd Zdd ZdS )_distr2_genc                 C   s   d| | S r  r+   r  r+   r+   r,   _cdf  s    z_distr2_gen._cdfN)r   r   r   r  r+   r+   r+   r,   r    s   r  c                   @   s   e Zd Zdd Zdd ZdS )_distr3_genc                 C   s   || S r_   r+   r   r>   r)   r*   r+   r+   r,   r    s    z_distr3_gen._pdfc                 C   s   d| | S r  r+   r  r+   r+   r,   r    s    z_distr3_gen._cdfNr   r   r   r  r  r+   r+   r+   r,   r    s   r  c                   @   s   e Zd Zdd Zdd ZdS )_distr6_genc                 C   s   || | S r_   r+   r  r+   r+   r,   r  %  s    z_distr6_gen._pdfc                 C   s   d| | S r  r+   r  r+   r+   r,   r  (  s    z_distr6_gen._cdfNr  r+   r+   r+   r,   r  #  s   r  c                   @   s   e Z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d Zdd Zdd Zdd Zdd  Zd!d" Zd#S )$TestSubclassingExplicitShapesc                 C   s$   t ddd}t|jdddd d S )Ndummyr)   r  r   r   r  r  r  r   r7   r   dummy_distrr+   r+   r,   test_correct_shapes/  s    z1TestSubclassingExplicitShapes.test_correct_shapesc                 C   s,   t ddd}tt|jdfi tdd d S )Nr  Ar  r   r  )r  r;  r   r7   r   r  r+   r+   r,   test_wrong_shapes_13  s    z1TestSubclassingExplicitShapes.test_wrong_shapes_1c                 C   s4   t ddd}tdddd}tt|jdfi | d S )Nr  za, b, cr  r   r5   r~   r  )r  r   r;  r   r7   )r   r  r   r+   r+   r,   test_wrong_shapes_27  s    z1TestSubclassingExplicitShapes.test_wrong_shapes_2c                 C   s"   t ddd}tttfi | d S )Nr  r  r  )r   r;  r   r  r   r   r+   r+   r,   test_shapes_string<  s    z0TestSubclassingExplicitShapes.test_shapes_stringc                 C   s"   t ddd}tttfi | d S )Nr  z(!)r  r   r;  SyntaxErrorr  r  r+   r+   r,   test_shapes_identifiers_1A  s    z7TestSubclassingExplicitShapes.test_shapes_identifiers_1c                 C   s"   t ddd}tttfi | d S )Nr  Z4chanr  r  r  r+   r+   r,   test_shapes_identifiers_2F  s    z7TestSubclassingExplicitShapes.test_shapes_identifiers_2c                 C   s"   t ddd}tttfi | d S )Nr  zm(fti)r  r  r  r+   r+   r,   test_shapes_identifiers_3J  s    z7TestSubclassingExplicitShapes.test_shapes_identifiers_3c                 C   s"   t ddd}tttfi | d S )Nr  za=2r  r  r  r+   r+   r,   "test_shapes_identifiers_nodefaultsN  s    z@TestSubclassingExplicitShapes.test_shapes_identifiers_nodefaultsc                 C   s"   t ddd}tttfi | d S )Nr  z*argsr  r  r  r+   r+   r,   test_shapes_argsR  s    z.TestSubclassingExplicitShapes.test_shapes_argsc                 C   s"   t ddd}tttfi | d S )Nr  z**kwargsr  r  r  r+   r+   r,   test_shapes_kwargsV  s    z0TestSubclassingExplicitShapes.test_shapes_kwargsc                 C   s"   t ddd}tttfi | d S )Nr  za, b, c, lambdar  r  r  r+   r+   r,   test_shapes_keywordsZ  s    z2TestSubclassingExplicitShapes.test_shapes_keywordsc                 C   s@   G dd dt j}|dd}t|jdddt jdd  d S )Nc                   @   s   e Zd Zdd ZdS )zFTestSubclassingExplicitShapes.test_shapes_signature.<locals>._dist_genc                 S   s   t j|| S r_   r/   r  r  r  r+   r+   r,   r  b  s    zKTestSubclassingExplicitShapes.test_shapes_signature.<locals>._dist_gen._pdfNr  r+   r+   r+   r,   	_dist_gena  s   r  r)   r   rc   r5   r  r/   rJ   r   r7   r  r   r  rF   r+   r+   r,   test_shapes_signature_  s    
z3TestSubclassingExplicitShapes.test_shapes_signaturec                 C   s>   G dd dt j}|dd}tt|jdfi tddd d S )	Nc                   @   s   e Zd Zdd ZdS )zSTestSubclassingExplicitShapes.test_shapes_signature_inconsistent.<locals>._dist_genc                 S   s   t j|| S r_   r  r  r+   r+   r,   r  k  s    zXTestSubclassingExplicitShapes.test_shapes_signature_inconsistent.<locals>._dist_gen._pdfNr  r+   r+   r+   r,   r  j  s   r  a, br  rc   r   r5   rR  )r/   rJ   r;  r   r7   r   r  r+   r+   r,   "test_shapes_signature_inconsistenth  s    
z@TestSubclassingExplicitShapes.test_shapes_signature_inconsistentc                 C   sz   G dd dt j}|dd}t|jdddt jdd  t|ddt jdd  tt|jdfi tdd d S )	Nc                   @   s   e Zd Zdd ZdS )z?TestSubclassingExplicitShapes.test_star_args.<locals>._dist_genc                 W   s   |d }t j|| S Nr   r  )r   r>   r   extra_kwargr+   r+   r,   r  u  s    zDTestSubclassingExplicitShapes.test_star_args.<locals>._dist_gen._pdfNr  r+   r+   r+   r,   r  t  s   r  r  r  rc   !   r  )Zxxx)r/   rJ   r   r7   r  r;  r   r   r  r+   r+   r,   test_star_argsq  s
    
 z,TestSubclassingExplicitShapes.test_star_argsc                 C   sj   G dd dt j}|dd}t|jddddt jdd d  t|dddt jdd d  d S )	Nc                   @   s   e Zd Zdd ZdS )zATestSubclassingExplicitShapes.test_star_args_2.<locals>._dist_genc                 W   s   |d }t j|| | S r  r  )r   r>   rm  r   r  r+   r+   r,   r    s    zFTestSubclassingExplicitShapes.test_star_args_2.<locals>._dist_gen._pdfNr  r+   r+   r+   r,   r    s   r  zoffset, extra_kwargr  rc   o   r  )rm  r  r  r  r+   r+   r,   test_star_args_2~  s    
z.TestSubclassingExplicitShapes.test_star_args_2c                 C   s<   G dd dt j}|dd}t|jdddt jd d S )Nc                   @   s   e Zd Zdd ZdS )zBTestSubclassingExplicitShapes.test_extra_kwarg.<locals>._distr_genc                 _   s   | dd}tj|| S )Nr  r   )popr/   r  r  )r   r>   r   kwargsr  r+   r+   r,   r    s    zGTestSubclassingExplicitShapes.test_extra_kwarg.<locals>._distr_gen._pdfNr  r+   r+   r+   r,   r    s   r  r  r  r   r~   r  r  )r   r  rF   r+   r+   r,   test_extra_kwarg  s    
z.TestSubclassingExplicitShapes.test_extra_kwargc                 C   s8   G dd dt j}|dd}t|dt jd d S )Nc                   @   s   e Zd Zdd ZdS )zDTestSubclassingExplicitShapes.shapes_empty_string.<locals>._dist_genc                 S   s   t j|S r_   )r/   r  r7   r   r+   r+   r,   r    s    zITestSubclassingExplicitShapes.shapes_empty_string.<locals>._dist_gen._pdfNr  r+   r+   r+   r,   r    s   r   r  rc   r  r  r+   r+   r,   shapes_empty_string  s    
z1TestSubclassingExplicitShapes.shapes_empty_stringN)r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r+   r+   r+   r,   r  ,  s"   		r  c                   @   sl   e Zd Zdd Zdd Zejjedddd Z	ejjeddd	d
 Z
dd Zdd Zdd Zdd ZdS )TestSubclassingNoShapesc                 C   s"   t dd}t|jdddd d S )Nr  r`  r   r  r  r  r  r+   r+   r,   test_only__pdf  s    
z&TestSubclassingNoShapes.test_only__pdfc                 C   s"   t dd}t|jdddd d S )Nr  r`  r   r  )r  r   r7   r  r+   r+   r,   test_only__cdf  s    
z&TestSubclassingNoShapes.test_only__cdfdocstring strippedrM  c                 C   sD   t dd}t|jd t|jd td|j}tt|dk d S )Nr  r`  r   r)   zlogpdf\(x, a, loc=0, scale=1\))	r  r   numargsr   refindallr  r   r   r   r  r  r+   r+   r,   test_signature_inspection  s    
z1TestSubclassingNoShapes.test_signature_inspectionc                 C   sD   t dd}t|jd t|jd td|j}tt|dk d S )Nr  r`  r5   r  z!logpdf\(x, a, b, loc=0, scale=1\)r   )	r  r   r  r   r  r  r  r   r   r  r+   r+   r,   test_signature_inspection_2args  s    
z7TestSubclassingNoShapes.test_signature_inspection_2argsc                 C   s   t ttdd d S )Nr  r`  )r;  r   r  r   r+   r+   r,   0test_signature_inspection_2args_incorrect_shapes  s    zHTestSubclassingNoShapes.test_signature_inspection_2args_incorrect_shapesc                 C   s.   G dd dt j}tt|fi tdd d S )Nc                   @   s   e Zd ZdddZdS )z>TestSubclassingNoShapes.test_defaults_raise.<locals>._dist_genr  c                 S   s   dS r  r+   r  r+   r+   r,   r    s    zCTestSubclassingNoShapes.test_defaults_raise.<locals>._dist_gen._pdfN)r  r  r+   r+   r+   r,   r    s   r  r  r`  r/   rJ   r;  r   r   r   r  r+   r+   r,   test_defaults_raise  s    z+TestSubclassingNoShapes.test_defaults_raisec                 C   s.   G dd dt j}tt|fi tdd d S )Nc                   @   s   e Zd Zdd ZdS )z>TestSubclassingNoShapes.test_starargs_raise.<locals>._dist_genc                 W   s   dS r  r+   )r   r>   r)   r   r+   r+   r,   r    s    zCTestSubclassingNoShapes.test_starargs_raise.<locals>._dist_gen._pdfNr  r+   r+   r+   r,   r    s   r  r  r`  r  r  r+   r+   r,   test_starargs_raise  s    z+TestSubclassingNoShapes.test_starargs_raisec                 C   s.   G dd dt j}tt|fi tdd d S )Nc                   @   s   e Zd Zdd ZdS )z<TestSubclassingNoShapes.test_kwargs_raise.<locals>._dist_genc                 [   s   dS r  r+   )r   r>   r)   r  r+   r+   r,   r    s    zATestSubclassingNoShapes.test_kwargs_raise.<locals>._dist_gen._pdfNr  r+   r+   r+   r,   r    s   r  r  r`  r  r  r+   r+   r,   test_kwargs_raise  s    z)TestSubclassingNoShapes.test_kwargs_raiseN)r   r   r   r  r  r   r#  rV  DOCSTRINGS_STRIPPEDr  r  r  r  r  r  r+   r+   r+   r,   r    s   


	r  r  c                  C   sT   g d} t jD ]@}tt |}t|t jt jfr| D ]}tt||j	d u  q2qd S )N)z,\s*,z\(\s*,z^\s*:)
r/   rT   r   r   rI   rJ   r   r  searchr  )ZbadonesdistnamerF   Zregexr+   r+   r,   r    s    

r  c                   C   s4   t tjtjddd t tjtjddd d S )Nr\   r  r   rQ  rZ   r   )r   r/   r;  r   r`   r   r  r  r+   r+   r+   r,   test_infinite_input  s    r  c                  C   s&   t jt jddd} t| d d S Ng0.++r   )r/   Zlomaxr   rA   r   rs  r+   r+   r,   test_lomax_accuracy  s    r  c                  C   s&   t jt jddd} t| d d S r  )r/   Zgompertzr   rA   r   rs  r+   r+   r,   test_gompertz_accuracy  s    r  c                  C   s&   t jt jddd} t| d d S r  )r/   Z
truncexponr   rA   r   rs  r+   r+   r,   test_truncexpon_accuracy  s    r  c                  C   s*   t jt jddd} t| ddd d S )N	   r   r  r   r   )r/   r   r   r   r   rs  r+   r+   r,   test_rayleigh_accuracy   s    r  c                  C   s   t jddh} t d tjdd tjdd tjdd tjt	j
 d t| }t|d W d   n1 sz0    Y  dS )zregression test for gh-6219T)r  alwaysrc   r   rh   N)r   r   r   r/   rn  rA   r7   r   r   r`   r   r   r   )r  Znumber_of_warnings_thrownr+   r+   r,    test_genextreme_give_no_warnings  s    
r  c                  C   s   d} t jd}t|d|  d dd t jd}t|| d dd t jd}t|d t jjd	d
d}t|| d td
 d dd t jd
}t|d|  d dd t jd}t|d|  d dd d S )Ngox?r  r5   r   rq  rj   r   r   r@  r\   r  r~   r  r(  r  )r/   rn  rL   r   r   r`   r   )Zeuler_gammar   r+   r+   r,   test_genextreme_entropy  s    
 r  c                  C   s   d} t j| d}t|d t j|d}t||  d} t j| d}t|d t j|d}t||  d} t j| d}t|d t j|d}t||  d S )	Ng    חAg      g'b%4gQ@re  gؗҜ;r   g.l6?)r/   rn  r   r   r   )r>   r=   r  r+   r+   r,   test_genextreme_sf_isf+  s    




r  c                  C   s"   d} t j| dd}t|d d S )NgؗҜ<r5   r~   gH&8>)r/   r9  r   r   )Zprobr  r+   r+   r,   test_burr12_ppf_small_argW  s    	r  c                  C   s6  t ddddd } tjj| ddd}t g d	}t||d
d tjj| ddd}t g d}t||d
d tjj| ddddd}t g d}t||d
d tjj| ddd}t g d}t||d
d tjj| ddd}t g d}t||d
d tjj| ddddd}t g d}t||d
d dS )z
    All values are calculated using the independent implementation of the
    ROOT framework (see https://root.cern.ch/).
    Corresponding ROOT code is given in the comments.
    rc  r      NrJ  r   rg   )r.  r  )gC,d	Ɣ?gH㸘?g5?gM"M#w?gɫs^?g @?gƴ?g@w?ɫs^?|?q ?g C?r  r  gJó?g,BV\ۤ?g;?g#ek?g%ǓE?g(Ȍx?g>J>r`  rj   rY  )g#{`?gdf?g Jq?gSS){?g'	w?uL? T)?cAJ?GTn?R1#?gA]P?r  r  r  r  gvӢ?gKq?gL?g
	N<!?gAw>rc   )r.  r  r3   r4   )g=aO}?gI8?g#T?aW)?ǓI?
J?E?d۳?GTn?8?R1#?kP?g(*T?r  r  r  r  r  r  r  r  )gD
)?g:3P?g9?g?S[?r  gOqx?gD
)?g9?gɫs^?gK?gX?g3<֌?gM+?gyS
c?gI`s?g辜?g{i ?g^0?g?#c?)g%r?gc@v?ghtj}?g(˔^?gHK4U?r  ğ@ _?y}D?焂Rr/?N?YjhG?a0L?4f?<@?@CH?g	ސF?g5+-#?g?g?q ?r  )g}'v?r  g*V?r  gr/0+?r  g[8	?r  gΥ?r  gY?r  g#)a?r  g?̔?r  g]ؚ?r  g|c ?r  )r`   r   r/   crystalballr7   r   r   rA   )r  Z
calculatedrX   r+   r+   r,   test_crystalball_functione  s&    r   c                  C   s  t g d} t g d}t g d}tjd| |}t||dd t g d}t dd	t jd
dg}|| }tjd| |}t||dd t t jt jt jddg}|| }tjd| |}	t||	dd t t jt jt jt jdg}|| }
tjd| |}t|
|dd t t jt jt jt jdg}|| }tjd| |}t||dd t t jt jt jt jdg}|| }tjd| |}t||dd dS )zg
    All values are calculated using the pdf formula and the integrate function
    of Mathematica
    )rg   r   rY  rg   rY  )rY  rY  rg   r  r  )r   r   r   r   r   r   r`  rj   )gԚh@g[&@gͪ@g2dQ@gn6-@g?ޫV&̿g BgQCRgQF\ jr   g
@gn(@r5   g?Җ)r~   gMg'#@r   g('UHr   N)r`   r   r/   r  r=  r   r   )r.  r  Zexpected_0th_momentZcalculated_0th_momentr  r)   Zexpected_1th_momentZcalculated_1th_momentZexpected_2th_momentZcalculated_2th_momentZexpected_3th_momentZcalculated_3th_momentZexpected_4th_momentZcalculated_4th_momentZexpected_5th_momentZcalculated_5th_momentr+   r+   r,   !test_crystalball_function_moments  s4    r  c                  C   sR   t dd} |  }d\}}}t|||}tt| ||}t||dd d S )Nr5   r~   )ir   i@ Hz>rj   )	r/   r  rL   r`   r   r   r   r7   r   )cbr  r  r  r  r>   r  r+   r+   r,   test_crystalball_entropy  s    
r  c                  C   s\   ddd} t g d}tjj|d| d\}}}t|ddd	 |dksJJ t|d
dd	 dS )a?  
    Test fitting invweibull to data.

    Here is a the same calculation in R:

    > library(evd)
    > library(fitdistrplus)
    > x = c(1, 1.25, 2, 2.5, 2.8,  3, 3.8, 4, 5, 8, 10, 12, 64, 99)
    > result = fitdist(x, 'frechet', control=list(reltol=1e-13),
    +                  fix.arg=list(loc=0), start=list(shape=2, scale=3))
    > result
    Fitting of the distribution ' frechet ' by maximum likelihood
    Parameters:
          estimate Std. Error
    shape 1.048482  0.2261815
    scale 3.099456  0.8292887
    Fixed parameters:
        value
    loc     0

    r+   r   c                 S   s   t | |||dddS )Nr  )r   dispZxtolZftol)r!   )rt   x0r   r  r+   r+   r,   	optimizer  s    z"test_invweibull.<locals>.optimizer)r   r'  r5   r)  r  r~   r  r   r   rQ  r\   r   @   c   )rw   r  g`?rS  rj   g [@N)r+   r   )r`   r   r/   r   ro   r   )r  r>   r   r3   r4   r+   r+   r,   test_invweibull  s    
r
  z	df1,df2,xr5   )r  r  r   r  r   r  r     r  c                 C   sh   d}t j|| |}t j|| ||}t||dd t j|| |}t j|| ||}t||dd d S )Nr   rq  rj   r2  )r/   r  rA   r  r   r7   )Zdf1Zdf2r>   r   Zexpected_cdfZcalculated_cdfrm   Zcalculated_pdfr+   r+   r,   test_ncf_edge_case  s    
r  c                  C   s"   t jddd} t| ddd d S )Nr5   r  r   g     `E@rq  rj   )r/   r  r  r   )r  r+   r+   r,   test_ncf_variance  s    r  c                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )TestHistogramc                 C   s\   t jd t jg ddd}t|| _tjjddddd	}t j|d
d}t|| _	d S )Nr   )r   r5   r5   r~   r~   r~   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  rQ  rQ  r  rQ  Zbinsr   r)  r  {   )r3   r4   r   r
  r   )
r`   r   r   	histogramr/   rK   templater  r   norm_template)r   r  rs   Znorm_histogramr+   r+   r,   r   (  s    
zTestHistogram.setup_methodc                 C   s   t g d}t g d}t| j|| t| jdd t| jdd t| jdd t| jdd t d	d
d}t| j|t	j
j|ddddd d S )Nrh   rc   r   r  rg   r)  rY  r*  r  r-  r         @r  r        @      @r        !@r  g      #@)rh   rh   r   r   {Gz?r  Q?r  {Gz?r  r  r  r  r  r  r  r  r  rh   rh   r  r  r  r  rh   r,  r  r5   r\   r   r)  r2   rZ   rj   )r`   r   rA  r   r  r7   r   r   r  r/   r  )r   r  Z
pdf_valuesr>   r+   r+   r,   r   8  s    zTestHistogram.test_pdfc                 C   s   t g d}t g d}t| j|| t| j|dd |dd  t ddd}t| j| j|| t ddd}t| j| j|| t d	dd
}t| j|t	j
j|ddddd d S )Nr  )rh   rh   rh   r  r   r  r  
ףp=
?Q?{Gz?r  rc   r  (\?RQ?=
ףp=?)\(?r  r   r   r5   rJ  r   r  r]   rh   r  r\   r)  r2   rZ   rj   )r`   r   rA  r   r  rA   r   r   r  r/   r  )r   r  Z
cdf_valuesr>   r+   r+   r,   r   R  s    "zTestHistogram.test_cdf_ppfc                 C   s   d}| j j|dd}tt|dk d tt|dkd| dd	 tt|d
kd| dd	 tt|dkd| dd	 tt|dkd| dd	 tt|dkd| dd	 tt|dkd| dd	 tt|dkd| dd	 tt|dkd| dd	 tt|dkd| dd	 tt|dkd| dd	 tt|dkd| dd	 tt|d kd!| dd	 tt|d"kd#| dd	 tt|d$kd%| dd	 tt|d&kd| dd	 tt|d&kd| dd	 tt|d&kd d S )'Nr  r  r	  r   rh   rg   r   r  rj   r)  r  rY  r  rZ   r*  r  r  r  r-  r  r   r  r  r  rc   r  r  r  r  r  r   r  r!  r  r"  r  r  r  )r  r   r   r`   r   r   )r   r  r  r+   r+   r,   r   h  s(    zTestHistogram.test_rvsc                 C   s6   t dD ](}t| j|tdd|dd qd S )Nr   r   r)  r  rj   )r7  r   r  r=  r/   r  r4  )r   r   r+   r+   r,   	test_munp~  s    zTestHistogram.test_munpc                 C   s$   t | j tjjddddd d S )Nr   r)  r2   r  rj   )r   r  rL   r/   r  r   r+   r+   r,   r     s    
zTestHistogram.test_entropyN)	r   r   r   r   r   r   r   r#  r   r+   r+   r+   r,   r  '  s   r  c                  C   s~   t dd} | jddd}tjt|dd\}}d|   krX|   krXd	ks^n J tt	|d
 dkszJ d S )Nr`  r   r  r  r	  r\   r  r'  iL  r  )
r/   Z
loguniformr   r`   r  Zlog10r  r  r  r  )rH  r   r   r  r+   r+   r,   test_loguniform  s
    ,r$  c                   @   s   e Zd Zdd Zdd Zejdg ddd Zejd	g d
dd Z	ejdg ddd Z
ejdg ddd Zejdg ddd Zejdg ddd Zejdg ddd ZdS )	TestArgusc                 C   s2   t jjdddd}tt d | dd d S )Nr   r  iE  r	  r   r   )r/   argusr   r   r   r   r+   r+   r,   test_argus_rvs_large_chi  s    z"TestArgus.test_argus_rvs_large_chic                 C   sN   t jjdddd}tt d | dd tt d | dd d S )Nr*  r  i  r	  r~   r   )r/   r&  r   r   r   r   r   r+   r+   r,   test_argus_rvs_ratio_uniforms  s    z'TestArgus.test_argus_rvs_ratio_uniformszchi, expected_mean))r   g щi?)r\   g.憃?)r  g\paP?)<   g	?)r	  g,6?c                 C   s"   t jj|dd}t||dd d S )Nr   r  r)  rj   )r/   r&  r   r   )r   r   Zexpected_meanr  r+   r+   r,   	test_mean  s    zTestArgus.test_meanzchi, expected_var, rtol))r   gLH'B?r)  )r\   go$?rF  )r  g
=>r"  )r)  g2W>r"  )r	  gb~P>r"  c                 C   s"   t jj|dd}t|||d d S )Nr   r  rj   )r/   r&  r  r   )r   r   Zexpected_varrk   r  r+   r+   r,   r^    s    zTestArgus.test_varzchi, expected, rtol))r  gwM?rq  )rc   gj?rq  )rZ   gHEA`!?rq  )re   gcف>ri   )r`  gF=rq  )r  g߹Q#B=rq  )r2  g0ޟ<rq  )rS  g*W%:ri   c                 C   s   t t|||d d S )Nrj   )r   r   )r   r   rX   rk   r+   r+   r,   test_argus_phi_small_chi  s    
z"TestArgus.test_argus_phi_small_chizchi, expected))rc   )g-\/?g+p7c?g5Ϧ\?)r  )g
f?gi{?ٸ?gZ@7?)rZ   )gB	?g]?gR{?)re   )glͅw?g,?g[Z=?)r`  )gz,?g]?gѪ1?)r  )g8<?gE-?gI?)r2  )g~7?g7B.?g9?)rS  )g;?g9B.?g}5?c                 C   s*   t g d}ttj|||dd d S )NrZ   rc   r  r)  rj   )r`   r   r   r/   r&  r7   r   r   rX   r>   r+   r+   r,   test_pdf_small_chi  s    zTestArgus.test_pdf_small_chi))rc   )gQ߹?e?grJ,?g򺗄?)r  )gΎd?g?gh?)rZ   )g|
o?gvb?g+@?)re   )g̈́On?ge?gC|[3?)r`  )g!?m?g{jiH?gu53?)r  )g~m?g0-.?g3?)r2  )g~m?g7;B.?gŗ3?)rS  )g~m?g9B.?gŗ3?c                 C   s*   t g d}ttj|||dd d S )Nr,  rq  rj   )r`   r   r   r/   r&  r   r-  r+   r+   r,   test_sf_small_chi  s    zTestArgus.test_sf_small_chi))rc   )g+&?gk?gμm/?)r  )g?CL\f?g^N?g]AͭR?)rZ   )ga>$?g;Lf?gaW?)re   )gx?g 43n?gwY?)r`  )go7🤎?g
+-oGn?gIQ9Y?)r  )gT?gGn?g@̋Y?)r2  )gU?g{Gn?giG͋Y?)rS  )gDU?g {Gn?gH͋Y?c                 C   s*   t g d}ttj|||dd d S )Nr,  r  rj   )r`   r   r   r/   r&  rA   r-  r+   r+   r,   test_cdf_small_chi  s    zTestArgus.test_cdf_small_chi))rc   )gQ)?g6{?r  )gB`"۹?)g?g8%?rF  )rZ   )g388?gV%?r)  )re   )g*j?gRS%?r)  )r`  )g!|?gZ%?r)  )r  )gy[|?gG%?r)  )r2  )g"3|?gW%?r)  )rS  )g!3|?gW%?r)  c                 C   s"   t jj |dd}t|||d d S )Nr  r[  rj   )r/   r&  r   )r   r   rX   rk   r   r+   r+   r,   test_stats_small_chi  s    zTestArgus.test_stats_small_chiN)r   r   r   r'  r(  r   r#  r  r*  r^  r+  r.  r/  r0  r1  r+   r+   r+   r,   r%    sD   

	







r%  c                   @   s   e Zd Zdd Zdd Zejdg dejdg dejd	g d
dd Zejdg dejd	g d
dd Z	dS )TestNakagamic                 C   s$   d}d}t j||}t|d d S )Nr)  r  gM+)r/   nakagamir   r   )r   r  r>   r  r+   r+   r,   r    s    zTestNakagami.test_logpdfc                 C   sD   d}d}t j||}t|ddd t j||}t||dd d S )Nr)  r   g"S+:r)  rj   )r/   r3  r   r   r   )r   r  r  r   r  r+   r+   r,   r    s    zTestNakagami.test_sf_isfr  )g?r)  r  r3   )rf   r\   #   r4   )rb  r   rE  c           
         s   d t jj |||ddt j\}}}t||dd t||dd t||dd fdd} fdd	} fd
d}	t||||ddd t||||ddd t|	|||ddd d S )Nr]   9  r   r  r3   r4   r
  r  rj   c                    s<   d|  d t d |   d|  |d  t  |   S )Nr  r   r5   r`   r   r  r3   r4   )r  r+   r,   	dlogl_dnu1  s    z(TestNakagami.test_fit.<locals>.dlogl_dnuc                    sN    dt |  td|   dt t | |   t | | d  S )Nr   r   r5   )r`   r   r   r   r8  r  r  r+   r,   
dlogl_dloc5  s
    z)TestNakagami.test_fit.<locals>.dlogl_dlocc                    s2   d  |  | d|  |d  t | d   S )Nr  r5   r~   r7  r8  r:  r+   r,   dlogl_dscale:  s     z+TestNakagami.test_fit.<locals>.dlogl_dscaler   r`  rT  )r/   r3  r   ro   r   )
r   r  r3   r4   nu_estloc_est	scale_estr9  r;  r<  r+   r:  r,   r  #  s    zTestNakagami.test_fitc                 C   s   d}d}t jj||||dd}t jj||d\}}}t|}	tt|| d }
t||dd t||	dd t||
dd d S )	Nrc   r]   r5  r6  r  r5   r  rj   )	r/   r3  r   ro   r`   r  r>  r   r   )r   r3   r4   r  r   r  r=  r>  r?  Zloc_theoZ
scale_theor+   r+   r,   test_fit_nuB  s    
zTestNakagami.test_fit_nuN)
r   r   r   r  r  r   r#  r  r  r@  r+   r+   r+   r,   r2    s   r2  c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestWrapCauchyc                 C   sr   t ddgddgg}t dgdgg}tj||}|jdksDJ dd	 t ||fD }t| |d
d d S )NQ?r   rc   r   r   r  r  c                 S   s   g | ]\}}t j||qS r+   )r/   
wrapcauchyrA   )rE   r  r.  r+   r+   r,   rG   `  s   z>TestWrapCauchy.test_cdf_shape_broadcasting.<locals>.<listcomp>r)  rj   )	r`   r   r/   rC  rA   r   Znditerr   r-  )r   r   r>   r   Zscalar_valuesr+   r+   r,   test_cdf_shape_broadcastingX  s    z*TestWrapCauchy.test_cdf_shape_broadcastingc                 C   s"   t jtjd}t|ddd d S )NrB  rc   rq  rj   )r/   rC  rA   r`   r9   r   r   r+   r+   r,   test_cdf_centerd  s    zTestWrapCauchy.test_cdf_centerc                 C   s   d}d}d}t j||g|}d| d|  }t|d t|t|d  tj  t|d dt|ttj|d   tj   d S )Nr   r  r   r   r   r5   )r/   rC  rA   r   r`   ZarctanZtanr9   )r   r  r  r   r   Zcrr+   r+   r,   r   h  s    (zTestWrapCauchy.test_cdfN)r   r   r   rD  rE  r   r+   r+   r+   r,   rA  V  s   rA  c                  C   sR   G dd dt j} | dd}ttj |  W d    n1 sD0    Y  d S )Nc                   @   s   e Zd Zdd ZdS )z1test_rvs_no_size_warning.<locals>.rvs_no_size_genc                 S   s   dS r  r+   r   r+   r+   r,   _rvst  s    z6test_rvs_no_size_warning.<locals>.rvs_no_size_gen._rvsN)r   r   r   rF  r+   r+   r+   r,   rvs_no_size_gens  s   rG  rvs_no_sizer`  )r/   rJ   r   r`   ZVisibleDeprecationWarningr   )rG  rH  r+   r+   r,   test_rvs_no_size_warningr  s    
rI  zdistname, argsc                 C   s   | t v rtd|  d tt| }t|tjrt|dkrb|j| \}}t	|t
j t	|t
j d\}}|jg |||R  \}}t	|t
j t	|t
j n&|j| \}	}
t	|	t
j t	|
t
j d S )Nz6skipping test for the support method for distribution .r   rO  )$skip_test_support_gh13294_regressionr   r  r   r/   r   rJ   r   supportr   r`   r   )r  r   rF   a0b0rp  rq  a1b1r)   r*   r+   r+   r,   test_support_gh13294_regression}  s"    

rQ  c                  C   s\  t jg dg d\} }ttj tj tj tjg}ttjtjtjtjg}t| | t|| | j|jksxJ |j|jksJ t jg g \}}tg tg  }}t|| t|| |j|jksJ |j|jksJ t jg ddg\}}	tdtjg }
tdtjg }t||
 t|	| |j|
jksFJ |	j|jksXJ d S )N)r   r   r   r   )r   r   r   rJ  rJ  r   )	r/   r  rL  r`   r   r   r   r   r   )rM  rN  Zex_a0Zex_b0rO  rP  Zex_a1Zex_b1r  r  Zex_a2Zex_b2r+   r+   r,   ,test_support_broadcasting_gh13294_regression  s(     





rR  r  )gn!	g:I"<)gQ	@gE?c                 C   s*   t tj| | t tj|  | d S r_   )r   r/   cosinerA   r   )r>   rX   r+   r+   r,   test_cosine_cdf_sf  s    rT  zp, expected))r2  gkM6O)r\  g0ӭ!	)g333333?g;'u(@c                 C   s*   t tj| | t tj| |  d S r_   )r   r/   rS  r   r   )r   rX   r+   r+   r,   test_cosine_ppf_isf  s    rU  c                  C   sT   dd t D } dd tD }| |ks(J dd tD }dd tD }||ksPJ d S )Nc                 S   s   h | ]\}}t |tr|qS r+   )r   rO   rE   r  r  r+   r+   r,   	<setcomp>  s   
z*test_distr_params_lists.<locals>.<setcomp>c                 S   s   h | ]\}}|qS r+   r+   rV  r+   r+   r,   rW    rH   c                 S   s   h | ]\}}|qS r+   r+   rV  r+   r+   r,   rW    rH   c                 S   s   h | ]\}}|qS r+   r+   rV  r+   r+   r,   rW    rH   )r   r   r   r   )Zdiscrete_distnamesZinvdiscrete_distnamesZcont_distnamesZinvcont_distnamesr+   r+   r,   test_distr_params_lists  s    rX  )N)r  r   r  r  r  r  r]  platformZnumpy.testingr   r   r   r   r   r   r   r	   r
   r   r   r;  r8   r`   r   r   Znumpy.lib.recfunctionsr   r.   r   Zscipy._lib._utilr   r1  r   r   r   r   Zscipy.statsr/   Z!scipy.stats._distn_infrastructurer   Zscipy.stats.distributionsZscipy.specialr   r   r   Zscipy.stats._distr_paramsr   r   Ztest_discrete_basicr   r   Zscipy.stats._continuous_distnsr   r   Zscipy.optimizer    r!   	itertoolsr"   flagsoptimizer  machinerW  rK  r-   r1   r@   rB   rY   r^   ra   rd   r#  r  rn   rv   r   r   r   r   r   r   r   r   r  r  r%  rN  rc  rs  ry  r  r  r  r  r  r  r  r  r$  r(  r>  r_  rg  ru  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r/  r6  r9  r>  rB  rX  rZ  r^  rc  rg  rh  r  r  r  r  r  r  r  r  r
  r  r  r  r  r  r!  r1  r4  r8  r?  r^  ra  rb  rf  rV  rg  rh  rk  rl  rn  ro  rp  rr  rt  ru  rv  rw  r{  r|  r~  r  r  r  r  r  r  r  r  r  r  r  r  rJ   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r
  r  r  r  r$  r%  r2  rA  rI  rQ  rR  rT  rU  rX  r+   r+   r+   r,   <module>   s  ,

.	
H $&5# \ 'E( w:?* $ l)+ !-:v,U* V
 o h =E6,\^K 
	
&(
	x;	,G.!a	lY

