U
    ZÊ¹jLÛ  ã                   @   s~  d dl mZ d dlmZmZ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mZ d dlmZ d dlmZmZmZ d d	lmZmZ d d
lmZmZmZm Z  d dl!m"Z"m#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/m0Z0m1Z1m2Z2 d dl3m4Z4m5Z5m6Z6 d dl7m8Z8 d dl9m:Z:m;Z;m<Z<m=Z= d dl>m?Z?m@Z@mAZA d dlBmCZC d dlDmEZE d dlFmGZG d dlHmIZImJZJ d dlKmLZL d dlMmNZN d dlOmPZP d dl9mQZQ d dlDmRZR d dlKmSZSmTZTmUZU d dlVmWZWmZmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZimjZjmkZkmlZlmmZmmnZnmoZompZpmqZqmrZrmsZsmtZtmuZumvZvmwZwmxZxmyZymzZzm{Z{m|Z|m}Z}m~Z~mZm€Z€m�Z�m‚Z‚mƒZƒm„Z„m…Z…m†Z†m‡Z‡mˆZˆm‰Z‰mŠZŠm‹Z‹mŒZŒm�Z�mŽZŽm�Z�m�Z�m‘Z‘m’Z’m“Z“m”Z”m•Z•m–Z–m—Z—m˜Z˜m™Z™mšZšm›Z›mœZœm�Z�mžZžmŸZŸ d d l m¡Z¡m¢Z¢m£Z£ d d!l¤m¥Z¥m¦Z¦ d d"l§m¨Z¨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µ ej¶Z·e¸ed'ƒ\Z¹ZºZ»d(d)„ Z¼d*d+„ Z½d,d-„ Z¾d.d/„ Z¿d0d1„ ZÀd2d3„ ZÁd4d5„ ZÂd6d7„ ZÃd8d9„ ZÄd:d;„ ZÅd<d=„ ZÆd>d?„ ZÇd@dA„ ZÈdBdC„ ZÉdDdE„ ZÊdFdG„ ZËdHdI„ ZÌdJdK„ ZÍdLdM„ ZÎdNdO„ ZÏdPdQ„ ZÐdRdS„ ZÑdTdU„ ZÒe±dVdW„ ƒZÓdXdY„ ZÔdZd[„ ZÕd\d]„ ZÖd^d_„ Z×e±d`da„ ƒZØdbdc„ ZÙddde„ ZÚdfdg„ ZÛdhdi„ ZÜdjdk„ ZÝdldm„ ZÞdndo„ Zßdpdq„ Zàdrds„ Zádtdu„ Zâdvdw„ Zãdxdy„ Zädzd{„ Zå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ídŒd�„ ZîdŽd�„ Zïd�d‘„ Zðd’d“„ Zñd”d•„ Zòd–d—„ Zód˜d™„ Zôe°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ü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±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 )Õé    )ÚSum)ÚLambdaÚdiffÚexpand_func)ÚMul)Ú
EulerGamma)ÚEÚIÚRationalÚpi)ÚEqÚNe)ÚS)ÚDummyÚSymbolÚsymbols)ÚbinomialÚ	factorial)ÚAbsÚimÚreÚsign)ÚexpÚlog)ÚcoshÚsinh)Úfloor)Úsqrt)Ú	Piecewise)ÚasinÚatanÚcosÚsinÚtan)ÚbesseliÚbesseljÚbesselk)Úbeta)ÚerfÚerfcÚerfiÚexpint)ÚgammaÚ
lowergammaÚ
uppergamma)Úzeta)Úhyper)ÚIntegral)ÚAndÚOr)ÚInterval)Úsimplify)Úlambdify)Úerfinv©Úmeijerg)Ú	FiniteSetÚ
ComplementÚIntersection)JÚPr   ÚwhereÚdensityÚvarianceÚ
covarianceÚskewnessÚkurtosisÚmedianÚgivenÚpspaceÚcdfÚcharacteristic_functionÚmoment_generating_functionÚContinuousRVÚArcsinÚBeniniÚBetaÚBetaNoncentralÚ	BetaPrimeÚCauchyÚChiÚ
ChiSquaredÚChiNoncentralÚDagumÚDavisÚErlangÚ
ExGaussianÚExponentialÚExponentialPowerÚFDistributionÚFisherZÚFrechetÚGammaÚGammaInverseÚGompertzÚGumbelÚKumaraswamyÚLaplaceÚLevyÚLogisticÚ	LogCauchyÚLogLogisticÚLogitNormalÚ	LogNormalÚMaxwellÚMoyalÚNakagamiÚNormalÚGaussianInverseÚParetoÚPowerFunctionÚ
QuadraticUÚRaisedCosineÚRayleighÚ
ReciprocalÚShiftedGompertzÚStudentTÚTrapezoidalÚ
TriangularÚUniformÚ
UniformSumÚVonMisesÚWeibullÚ
coskewnessÚWignerSemicircleÚWaldÚcorrelationÚmomentÚcmomentÚsmomentÚquantileÚLomaxÚBoundedPareto)ÚNormalDistributionÚExponentialDistributionÚContinuousDistributionHandmade)ÚMultivariateLaplaceDistributionÚMultivariateNormalDistribution)ÚSingleContinuousPSpaceÚSingleContinuousDomain)ÚCompoundPSpace)ÚProbability)ÚraisesÚXFAILÚslowÚignore_warnings)Úverify_numericallyZxyzc               	   C   s„  t ddd�} t ddd�}tdddƒ}|| |  }t|ƒ| ks@t‚t|ƒ|d	 ksTt‚t|ƒ}t ddd�}||ƒd	tj t||  d	  d	|d	   ƒ d	t	tj  |  ks®t‚t
|d	 dk ƒtd	tj d	 ƒksÔt‚t|ƒ|ƒ}|ttttd	ƒ| td	ƒ|  d	|  td	| d ƒ  ƒtt tƒƒt| ƒƒk�s6t‚t|t|| ƒƒ| k�sPt‚t|ƒtdƒk�sft‚|j d¡ ¡ dk�s€t‚d S )
NÚmuT©ÚrealÚsigma©ÚpositiveÚxr   é   é   )r   rl   r   ÚAssertionErrorr@   r?   r   ÚHalfr   r   r=   r(   rƒ   r;   r<   r:   r   r7   r4   Úoor   rD   rF   Úcompute_expectationÚdoit)r”   r—   ÚXÚYÚpdfrš   Zans© r¥   úc/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/stats/tests/test_continuous_rv.pyÚtest_single_normal7   s.    8ÿ&.ÿ
þþr§   c                  C   s–   t dddƒ} t| | dkƒ}tdƒ}t|ƒ|ƒdt| ƒ|ƒ ksBt‚|jjjtdt	ƒksZt‚t
|ƒtdƒttƒ ksvt‚t
| d ƒt
|d ƒks’t‚d S )Nrš   r   r›   Úzrœ   )rl   rE   r   r?   r�   rF   ÚdomainÚsetr4   rŸ   r   r   r   )r¢   r£   r¨   r¥   r¥   r¦   Útest_conditional_1dP   s     r«   c                     s®   t dddƒ‰ tˆ d dkƒjtddƒks,t‚tˆ d dkƒjˆ jksHt‚ttˆ d dkˆ dkƒƒjtddƒksrt‚tt‡ fdd„ƒ t	ˆ ˆ dkƒ} | j
jjtdtƒksªt‚d S )Nrš   r   r›   rœ   éÿÿÿÿc                      s   t tˆ ƒdkƒS ©Nr›   )r>   r"   r¥   ©r¢   r¥   r¦   Ú<lambda>b   ó    z'test_ContinuousDomain.<locals>.<lambda>)rl   r>   rª   r4   r�   Úsymbolr2   r�   Ú
ValueErrorrE   rF   r©   rŸ   )r£   r¥   r®   r¦   Útest_ContinuousDomain]   s     *r³   c                  C   s2  t dddƒt dddƒ } }tddd�}t| | ƒdks:t‚t| | ƒdksNt‚t| |  ƒd	ksbt‚t| |ƒdkstt‚td|  | |  ƒd
t| ƒ ks˜t‚t| ƒdks¨t‚t| | ƒdks¼t‚t| ƒdksÌt‚t| | ƒdksàt‚t| |ƒdksòt‚t| | | ƒt| | | ƒk�st‚t	| dƒdk�s(t‚t
| dƒdk�s<t‚t	| | d	ƒdk�sTt‚t
| dƒt| ƒk�slt‚t| |  dƒdk�s„t‚t| | dƒt| | ƒk�s¤t‚t| | d	ƒt| | ƒk�sÄt‚t| t| | dƒƒdk�sât‚t| t| | dƒƒtjk�st‚t| ƒ|ƒtdƒtd| tj ƒ k�s.t‚d S )Nrš   r   r›   ÚyÚpTr˜   rœ   é   éþÿÿÿé   é   )rl   r   r   r�   r@   rA   rB   rC   r   r€   r�   r‚   r   r   rž   rƒ   r   r7   ÚOne)r¢   r£   rµ   r¥   r¥   r¦   Útest_multiple_normali   s.    $"   r»   c                  C   sp  t ddd�\} }t ddd�\}}tddd�}td| |ƒ}td||ƒ}td	|ƒ}t d
dd�\}}	}
t|ƒ| kspt‚t|| ƒ| | ksˆt‚t|| |	 ƒ|t|ƒ |	 ks¬t‚t|ƒ|d ksÀt‚t|||  |	 ƒt|ƒ|d t|ƒ  ksðt‚t|ƒd| k�st‚t|| |	 ƒ|t|ƒ |	 k�s,t‚t|||  |	 ƒ| ||  |	 k�sVt‚t|ƒt| ƒk�slt‚d S )Nzmu1 mu2Tr•   zsigma1 sigma2r˜   Úlambdarš   r´   r¨   úa b crœ   r›   )	r   r   rl   rX   r   r�   r@   rD   r:   )Zmu1Zmu2Ús1Ús2Úrater¢   r£   ÚZÚaÚbÚcr¥   r¥   r¦   Útest_symbolic„   s     
$0&*rÅ   c                     sò   t dddƒ‰ tˆ ƒ} tˆ dk ƒ| dƒ t¡ks2t‚| dƒtjksDt‚tˆ ˆ dkƒ} | dƒdksbt‚tddƒ‰tˆƒ} | dƒdks„t‚tˆdkƒd| dƒ ks t‚t	t
‡ ‡fdd	„ƒ td
dƒ}t|ƒ}|tƒtdtt ƒ tdkfdƒksît‚d S )Nrš   r   r›   r´   é
   éûÿÿÿr¸   c                      s   t ˆ ˆ ƒS ©N)rG   r¥   ©r¢   r£   r¥   r¦   r¯   ¨   r°   ztest_cdf.<locals>.<lambda>r¨   ©r   T)rl   rG   r=   Úrewriter)   r�   r   rž   rX   r�   r²   r¨   r   r   )ÚdrÁ   Úfr¥   rÉ   r¦   Útest_cdf™   s    

rÎ   c                  C   s¢  t dddƒ} t| ƒ}|dƒt dttƒ  ks2t‚tdddƒ}t|ƒ}|dƒdksVt‚|dƒtttj ƒkspt‚tddƒ}t|ƒ}|dƒdks’t‚|dƒ 	¡ t
dd	ƒtd d	  ks¸t‚tdddƒ} t| ƒ}|dƒdksÜt‚|dƒtdtdd
t  ƒ ƒk�st‚tddddƒ} t| ƒ}|dƒdk�s*t‚|dƒdt tt
dd
ƒƒ d
 k�sRt‚tdddƒ}t|ƒ}|dƒdk�sxt‚|dƒttd
ƒ tt ƒ ƒk�sžt‚d S )Nrš   r   r›   r¬   r´   r¨   é   é   é   rœ   )rx   rH   r	   r   r�   rl   r   rž   rX   Úexpandr
   rm   r   rW   rc   )r¢   Úcfr£   rÁ   ÚLr¥   r¥   r¦   Útest_characteristic_function¯   s.    
&&(rÕ   c                  C   s

  t ddd�} t dƒ\}}}ttd||ƒƒ| ƒ}|t|f|| f| ƒksJt‚ttd|ƒƒ| ƒ}|tdƒ|  t|d tj	 ƒ t|d tj	 ft
ddƒf| d d ƒ t|d ƒ t|d ftj	f| d d ƒ ksÔt‚ttd|ƒƒ| ƒ}|dd|   | d  k�st‚ttd||ƒƒ| ƒ}|d| |  |  k�s6t‚ttd|||ƒƒ| ƒ}|t||  |d | d  d  ƒd| |   k�s‚t‚ttd|ƒƒ| ƒ}||||   k�sªt‚ttd||ƒƒ| ƒ}|| |  d |  k�sÜt‚ttd||ƒƒ| ƒ}|t||  ƒt| |  d ƒ k�st‚ttd||ƒƒ| ƒ}||t|ƒ t| | |ƒ k�sPt‚ttd||ƒƒ| ƒ}|t||  ƒ|d  | d  d  k�s�t‚ttd||ƒƒ| ƒ}|t||  ƒt| |  d ||  d ƒ k�sÖt‚ttd||ƒƒ| ƒ}|t||  |d | d  d  ƒk�st‚ttd||ƒƒ| ƒ}||| |  |  t| | |  ƒ k�sVt‚ttd||ƒƒ| ƒ}t|ƒd	k�s|t‚ttd||ƒƒ| ƒ}|td t||  ƒ t||  ƒ ||  |d | d  td    k�sÚt‚ttd|ƒƒ| ƒ}|tdƒttƒ | |  t tdƒ| |  d ƒd  t|d | d  d ƒ d d k�sJt‚tt!d|||ƒƒ| ƒ}t|ƒd
k�srt‚tt"d||ƒƒ| ƒ}|t||  ƒ t||  ƒ | | |   k�s¸t‚tt#d|ƒƒ| ƒ}|t| ƒd |  | k�sèt‚tt$d|ƒƒ| ƒ}|dt%d||  ƒ ||   k�st‚ttdddƒƒ| ƒ}| &| ¡ '| d¡tdddƒd k�sZt‚ttddƒƒ| ƒ}| &| ¡ '| d¡tdƒtdt
ddƒftj	ƒ ttƒ tt
ddƒft
ddƒftj	ƒ dtdƒ tdt
ddƒftj	ƒ dttƒ   k�söt‚ttddƒƒ| ƒ}| &| ¡ '| d¡t(k�s$t‚ttdddƒƒ| ƒ}| &| ¡ '| d¡dk�sTt‚ttddddƒƒ| ƒ}| &| ¡ '| d¡tdƒ k�sŒt‚ttddƒƒ| ƒ}| &| ¡ '| d¡dk�sºt‚ttdddƒƒ| ƒ}| &| ¡ '| d¡dk�sêt‚ttdddƒƒ| ƒ}| &| ¡ '| d¡t)d k�st‚ttdddƒƒ| ƒ}| &| ¡ '| d¡t* t+dddƒ k�s\t‚ttdddƒƒ| ƒ}| &| ¡ '| d¡dk�sŒt‚ttdddƒƒ| ƒ}| &| ¡ '| d¡tddƒk�sÂt‚ttdddƒƒ| ƒ}| &| ¡ '| d¡ttj	ƒk�søt‚ttdddƒƒ| ƒ}| &| ¡ '| d¡tddƒk�s.t‚ttdddƒƒ| ƒ}| &| ¡ '| d¡dt* dtdƒ  k�snt‚ttdddƒƒ| ƒ}| &| ¡ '| d¡dt* td  tdƒ dtd  d  t*td  t,dƒ dtd    k�sât‚ttddƒƒ| ƒ}| &| ¡ '| d¡tdƒttƒ d k�	s t‚tt!ddddƒƒ| ƒ}| &| ¡ '| d¡t* tdƒ k�	s\t‚tt"dddƒƒ| ƒ}| &| ¡ '| d¡dk�	sŒt‚tt#ddƒƒ| ƒ}| &| ¡ '| d¡dk�	sºt‚tt$ddƒƒ| ƒ}| &| ¡ '| d¡dt%ddƒ t%ddƒ t%ddƒ k�
st‚d S )NÚtTr˜   r½   rš   rœ   r¸   r›   zk(3*(t*(-4*b + (a + b)**2) + 4)*exp(b*t) - 3*(t*(a**2 + 2*a*(b - 2) + b**2) + 4)*exp(a*t))/(t**2*(a - b)**3)zb(-2*(-a + b)*exp(c*t) + 2*(-a + c)*exp(b*t) + 2*(b - c)*exp(a*t))/(t**2*(-a + b)*(-a + c)*(b - c)))rœ   )r¸   )r›   rÏ   r   )r¥   )r›   r›   ))r   r   r   r¥   iôÿÿÿr·   )-r   rI   rM   r0   r�   rQ   r   r,   r   rž   r
   rR   rV   rW   r   rX   r]   r`   r_   r+   rb   rd   r'   rl   rn   r.   rp   Ústrrq   r   r   rr   r(   rw   rx   ry   r}   r$   r   Úsubsr	   r   Úer9   r   )rÖ   rÂ   rÃ   rÄ   Zmgfr¥   r¥   r¦   Útest_moment_generating_functionÏ   sä    &ÿ
ÿþ
 6($,2*.J4ÿÿÿ2$(,ÿÿ
 ÿ
ÿÿ"  ÿ""",&ÿÿ,&&ÿrÚ   c                  C   sx  t dƒttd  d ƒ dt tƒ  } tt| dd�}tdddƒ}t|ƒt|ƒksTt‚t|dkƒt|dkƒkspt‚tt	tt	 ƒt
dtƒd�}|jjjt
dtƒks¢t‚t|ƒdks²t‚t|dkƒtd	ƒksÊt‚ttd
d„ ƒ tddd�\}}}dt|ƒ||   ||d   t| | ƒ } t|| t
dtƒd�}td||ƒ}t|ƒt|ƒ  ¡ dk�sVt‚t|ƒt|ƒ  ¡ dk�stt‚d S )Nrœ   T)Úcheckr´   r   r›   ©rª   rÏ   rÇ   c                   S   s   t ttt ƒtddƒdd�S )Nr   rÆ   T)rª   rÛ   )rJ   r¨   r   r4   r¥   r¥   r¥   r¦   r¯   f  r°   z#test_ContinuousRV.<locals>.<lambda>z	x k thetar˜   )r   r   rš   r   rJ   rl   r@   r�   r=   r¨   r4   rŸ   rF   r©   rª   r   r�   r²   r   r,   r]   r5   )r¤   r¢   r£   rÁ   Z_xÚkÚthetar¥   r¥   r¦   Útest_ContinuousRVZ  s     &.rß   c               	   C   s¼   t ddd�} t ddd�}td| |ƒ}t|ƒtƒdttt | t|   ƒ  ksRt‚t|ƒtƒtd| tkfdt	t|  t |  |  ƒƒ t |tkfd	ƒksžt‚t
|ƒjjt| |ƒks¸t‚d S )
NrÂ   Tr•   rÃ   rš   r›   r   rœ   ©r›   T)r   rK   r?   rš   r   r   r�   rG   r   r   rF   r©   rª   r4   ©rÂ   rÃ   r¢   r¥   r¥   r¦   Útest_arcsinr  s    .*þ
râ   c                      sP  t ddd�‰t ddd�‰t ddd�‰tdˆˆˆƒ‰ tˆ ƒtƒˆt dˆ ttˆ ƒ t  tˆ ttˆ ƒ ˆttˆ ƒd   ƒ ksŒt‚tˆ ƒjj	t
ˆtƒks¦t‚tt‡ fdd	„ƒ t ddd
�‰tt‡‡‡fdd	„ƒ t ddd
�‰tt‡‡‡fdd	„ƒ t ddd�‰tt‡‡‡fdd	„ƒ t ddd�‰t ddd
�‰tt‡‡‡fdd	„ƒ d S )NÚalphaTr˜   r'   r—   rš   rœ   c                      s   t ˆ ƒS rÈ   ©rI   r¥   r®   r¥   r¦   r¯   ˆ  r°   ztest_benini.<locals>.<lambda>©Únonpositivec                      s   t dˆ ˆˆƒS ©Nrš   ©rL   r¥   ©rã   r'   r—   r¥   r¦   r¯   Š  r°   c                      s   t dˆ ˆˆƒS rç   rè   r¥   ré   r¥   r¦   r¯   �  r°   c                      s   t dˆ ˆˆƒS rç   rè   r¥   ré   r¥   r¦   r¯   �  r°   c                      s   t dˆ ˆˆƒS rç   rè   r¥   ré   r¥   r¦   r¯   ”  r°   )r   rL   r?   rš   r   r   r�   rF   r©   rª   r4   rŸ   r�   ÚNotImplementedErrorr²   r¥   r¥   )r¢   rã   r'   r—   r¦   Útest_benini~  s$    ((ÿ
rë   c                  C   s¨  t ddd�\} }td| |ƒ}t|ƒjjtddƒks6t‚t|ƒtƒt	| f| | ft
t ƒks^t‚t|ƒtƒt| d  dt |d   t| |ƒ ks”t‚tt|ƒƒ| | |  ks°t‚tt|ƒƒ| | | d d| d  |  | d  d|  |d   d|  |  |d  |d   k�st‚d	\} }td| |ƒ}tt|ƒƒ| t| | ƒ k�sLt‚tt|ƒƒ| | t| | d | | d  ƒ k�s‚t‚t|ƒtddtdƒ  ƒk�s¤t‚d S )
Nz
alpha betaTr˜   rš   r   r›   r¸   rœ   )r›   rœ   )r   rM   rF   r©   rª   r4   r�   rH   rš   r0   r	   r?   r'   r5   r   r@   r   r   rD   r:   r   )rÂ   rÃ   ÚBr¥   r¥   r¦   Ú	test_beta–  s    (6f"6rí   c                     s~  t ddd�\‰ ‰tddd�‰tdƒ} tdˆ ˆˆƒ}t|ƒjjtdd	ƒksLt‚t	|ƒ}td
ƒ}t
|| ˆ  d	  ˆd |   d	| ˆd	   tˆ d ƒ t| ˆ  ˆƒt| ƒ  | dtfƒ}||ƒ |¡sÊt‚t dƒ\‰ ‰‰tdˆ ˆˆƒsêt‚tdddd�‰ tt‡ ‡‡fdd„ƒ tddd�‰ tdddd�‰tt‡ ‡‡fdd„ƒ tddd�‰ tddd�‰tdddd�‰tt‡ ‡‡fdd„ƒ d S )Núa bTr˜   rÄ   )ÚnonnegativerÝ   rš   r   r›   r¨   rœ   r½   rÂ   F©r™   r–   c                      s   t dˆ ˆˆƒS rç   ©rN   r¥   ©rÂ   rÃ   rÄ   r¥   r¦   r¯   ¾  r°   z&test_beta_noncentral.<locals>.<lambda>rÃ   c                      s   t dˆ ˆˆƒS rç   rñ   r¥   rò   r¥   r¦   r¯   Â  r°   )rï   r–   c                      s   t dˆ ˆˆƒS rç   rñ   r¥   rò   r¥   r¦   r¯   Ç  r°   )r   r   r   rN   rF   r©   rª   r4   r�   r?   r   r   r'   r   rŸ   Údummy_eqr�   r²   )Ú_kr¢   Údensr¨   Úresr¥   rò   r¦   Útest_beta_noncentral¨  s0    :ÿÿr÷   c                     sÌ   t ddd�‰ t ddd�‰tdˆ ˆƒ} t| ƒtƒtˆ d  td ˆ  ˆ   tˆ ˆƒ ks\t‚t ddd�‰ tt‡ ‡fdd	„ƒ t ddd�‰ t ddd�‰tt‡ ‡fd
d	„ƒ tdddƒ} t| ƒt	dƒksÈt‚d S )Nrã   Tr˜   r'   rš   r›   rå   c                      s   t dˆ ˆƒS rç   ©rO   r¥   ©rã   Zbetapr¥   r¦   r¯   Ò  r°   z test_betaprime.<locals>.<lambda>c                      s   t dˆ ˆƒS rç   rø   r¥   rù   r¥   r¦   r¯   Ö  r°   )
r   rO   r?   rš   r'   r�   r�   r²   rD   r:   r®   r¥   rù   r¦   Útest_betaprimeÉ  s    8rú   c                     sÀ  t ddd�\‰‰ tt‡ ‡fdd„ƒ t ddd�\‰‰ tt‡ ‡fdd„ƒ t ddd	�\‰‰ tt‡ ‡fd
d„ƒ tddˆˆ ƒ} | jjjtˆˆ ƒks’t‚t	| ƒt
ƒdˆd  t
d dˆd ˆ d     ksÊt‚t| ƒt
ƒtˆ d  ˆd  t
d ˆ d ˆd    ˆ d ˆ d ˆd    ˆt
kfdƒk�s,t‚t| ƒ ¡ dˆ  ˆ ˆ ˆ  k�sRt‚tddddƒ} t| ƒ ¡ tdƒk�szt‚t| ƒttddƒƒk�s–t‚t| ƒ ¡ ddtdƒd   k�s¼t‚d S )NzL, HT©Únegativec                      s   t ddˆˆ ƒS ©Nr¢   r›   ©r…   r¥   ©ÚHrÔ   r¥   r¦   r¯   Ý  r°   z$test_BoundedPareto.<locals>.<lambda>Fr•   c                      s   t ddˆˆ ƒS rý   rþ   r¥   rÿ   r¥   r¦   r¯   ß  r°   r˜   c                      s   t ddˆˆ ƒS )Nr¢   r¬   rþ   r¥   rÿ   r¥   r¦   r¯   á  r°   r¢   rœ   r¸   r›   rÊ   r¶   é   é   )r   r�   r²   r…   rF   r©   rª   r4   r�   r?   rš   rG   r   r   r5   r   rD   r:   r
   r@   r®   r¥   rÿ   r¦   Útest_BoundedParetoÛ  s*    84ÿÿÿ&r  c                     sJ  t ddd�‰t ddd�‰t ddd�} tdˆˆƒ‰ tˆ ƒtƒtˆ ttƒ tt ˆ  ƒks^t‚tt	‡ fdd	„ƒ t
ˆ ƒtƒd
tˆ d
tˆ d ˆd     ks¤t‚ttˆ ƒtƒtƒt
ˆ ƒtƒksÆt‚tˆ ƒ| ƒˆtt| tj  ƒ ˆ ksðt‚t ddd�‰tt‡‡fdd	„ƒ t ddd�‰tt‡‡fdd	„ƒ tˆ ƒtˆƒk�sFt‚d S )NÚx0Tr•   r,   r˜   rµ   rš   c                      s   t ˆ ƒS rÈ   rä   r¥   r®   r¥   r¦   r¯   ÷  r°   ztest_cauchy.<locals>.<lambda>r›   rœ   Úx1Fc                      s   t dˆˆ ƒS rç   ©rP   r¥   )r,   r  r¥   r¦   r¯   ý  r°   rå   c                      s   t dˆˆ ƒS rç   r  r¥   )r,   r  r¥   r¦   r¯   ÿ  r°   )r   rP   rH   rš   r   r   r	   r�   r�   rê   r?   r   r   rG   rƒ   r#   r   rž   r²   rD   r:   )rµ   r¥   )r¢   r,   r  r  r¦   Útest_cauchyï  s    .4"*r  c                     sæ  ddl m}  tddd�‰ tdˆ ƒ}t|ƒtƒdˆ  d d  tˆ d   ttd  d ƒ tˆ d ƒ ksnt‚t	|ƒtƒt
dƒ|  t tˆ d tdƒd  ƒ tˆ d tdƒd  ftd	ƒd ftd  d ƒ tˆ d ƒ tˆ d ftdƒd ftd  d ƒ k�st‚t|ƒtƒt
dƒt tˆ d tdƒd  ƒ tˆ d tdƒd  ftd	ƒd ftd d ƒ tˆ d ƒ tˆ d ftdƒd ftd d ƒ k�s¢t‚tddd
d�‰ tt‡ fdd„ƒ tdd
dd�‰ tt‡ fdd„ƒ d S )Nr   )r	   rÝ   T©Úintegerrš   rœ   r›   r¸   F©r	  r™   c                      s
   t dˆ ƒS rç   ©rQ   r¥   ©rÝ   r¥   r¦   r¯     r°   ztest_chi.<locals>.<lambda>c                      s
   t dˆ ƒS rç   r  r¥   r  r¥   r¦   r¯     r°   )Úsympy.core.numbersr	   r   rQ   r?   rš   r   r,   r�   rH   r   r   r0   rI   r�   r²   )r	   r¢   r¥   r  r¦   Útest_chi  s0    
LF ÿ
ÿ$ÿB 
ÿ
ÿ"ÿr  c                     s  t ddd�‰ t dƒ‰tdˆ ˆƒ} t| ƒtƒtˆ  ˆ tˆ ˆ  d   ttd  d ˆd d  ƒ tˆ d d tˆ ƒ ks‚t‚t dddd	�‰ tt‡ ‡fd
d„ƒ t dddd	�‰ t ddd�‰tt‡ ‡fdd„ƒ t ddd�‰ t ddd�‰tt‡ ‡fdd„ƒ d S )NrÝ   Tr  Úlrš   rœ   r›   Fr
  c                      s   t dˆ ˆƒS rç   ©rS   r¥   ©rÝ   r  r¥   r¦   r¯      r°   z%test_chi_noncentral.<locals>.<lambda>rå   c                      s   t dˆ ˆƒS rç   r  r¥   r  r¥   r¦   r¯   $  r°   r˜   c                      s   t dˆ ˆƒS rç   r  r¥   r  r¥   r¦   r¯   (  r°   )	r   rS   r?   rš   r   r$   r�   r�   r²   r®   r¥   r  r¦   Útest_chi_noncentral  s     &ÿÿ
r  c                     s~  t ddd�‰ tdˆ ƒ} t| ƒtƒdt t d ˆ  d  ks@t‚t| ƒtƒdˆ  d  tˆ d d   tt d ƒ tˆ d ƒ ksˆt‚t	| ƒtƒt
tˆ d td ƒtˆ d ƒ tdkfd	ƒksÄt‚t| ƒˆ ksÔt‚t| ƒdˆ  ksèt‚tdd
ƒ} t	| ƒdƒdtdƒ ttddƒƒ dttƒ  ttdƒd ƒ k�s:t‚t dddd�‰ tt‡ fdd„ƒ t dddd�‰ tt‡ fdd„ƒ d S )NrÝ   Tr  rš   r·   r›   rœ   r   rÊ   é   r¸   içÅÿÿé   éýÿÿÿi�  Fr
  c                      s
   t dˆ ƒS rç   ©rR   r¥   r  r¥   r¦   r¯   ;  r°   z"test_chi_squared.<locals>.<lambda>c                      s
   t dˆ ƒS rç   r  r¥   r  r¥   r¦   r¯   >  r°   )r   rR   rH   rš   r	   r�   r?   r   r,   rG   r   r-   r   r@   r   r
   r   r(   r�   r²   r®   r¥   r  r¦   Útest_chi_squared+  s    
*H<
Hr  c                     sT  t ddd�‰t ddd�‰t ddd�‰ tdˆˆ ˆƒ} t| ƒtƒˆ ˆ tˆ ˆ ˆ   tˆ ˆ  d ˆ d   t ksxt‚t| ƒtƒtdtˆ ˆ    ˆ  tdkfd	ƒks®t‚t ddd
�‰tt‡ ‡‡fdd„ƒ t ddd�‰t ddd
�‰tt‡ ‡‡fdd„ƒ t ddd�‰t ddd
�‰ tt‡ ‡‡fdd„ƒ tddddƒ} t	| ƒt
dƒk�sPt‚d S )Nrµ   Tr˜   rÃ   rÂ   rš   r›   r   rÊ   rå   c                      s   t dˆˆ ˆƒS rç   ©rT   r¥   ©rÂ   rÃ   rµ   r¥   r¦   r¯   L  r°   ztest_dagum.<locals>.<lambda>c                      s   t dˆˆ ˆƒS rç   r  r¥   r  r¥   r¦   r¯   P  r°   c                      s   t dˆˆ ˆƒS rç   r  r¥   r  r¥   r¦   r¯   T  r°   )r   rT   r?   rš   r�   rG   r   r�   r²   rD   r:   r®   r¥   r  r¦   Ú
test_dagumA  s$    F*ÿ
r  c                  C   sŠ   t ddd�} t ddd�}t ddd�}td| ||ƒ}| | t| d|   }t| t|  ƒd t|ƒt|ƒ  }t|ƒtƒ|| ks†t‚d S )	NrÃ   Tr˜   Únr”   rš   r¬   r›   )r   rU   rš   r   r,   r/   r?   r�   )rÃ   r  r”   r¢   ZdividendZdivisorr¥   r¥   r¦   Ú
test_davisX  s    $r  c                  C   s˜   t dddd�} t ddd�}td| |ƒ}t|ƒtƒt| d  ||   tt | ƒ t| ƒ ks`t‚t|ƒtƒtt	| |t ƒt| ƒ tdkfd	ƒks”t‚d S )
NrÝ   Tr
  r  r˜   rš   r›   r   rÊ   )
r   rV   r?   rš   r   r,   r�   rG   r   r-   )rÝ   r  r¢   r¥   r¥   r¦   Útest_erlangc  s    :(ÿr  c            
      C   s‚  t dƒ\} }t ddd�\}}td| ||ƒ}t|ƒ|ƒ|t|||d  d|   d|   d ƒ ttdƒ||d  |  |  d|  ƒ d ks’t‚|||   }|| }ttdd|ƒƒ|ƒ}ttd|d |ƒƒ|ƒ}|t| |d d  t	|ƒ ƒ }	t|ƒ|ƒ|	k�s
t‚t
|ƒ ¡ |d |d  k�s,t‚t|ƒ ¡ d|d	 |d  t|d |d  ƒ |t|d |d  ƒ   k�s~t‚d S )
Nzm, zzs, lTr˜   rš   rœ   r   r·   r¸   )r   rW   r?   r   r)   r   r�   rG   rl   r   r@   rÒ   rB   )
Úmr¨   Úsr  r¢   ÚuÚvZGaussianCDF1ZGaussianCDF2Zactual_outputr¥   r¥   r¦   Útest_exgaussianm  s$    4&ÿÿ
""0ÿr"  c            
   	   C   s<  t ddd�} td| ƒ}t dddd�}t|ƒd|  ks8t‚t|ƒd| d  ksPt‚t|ƒdks`t‚t|ƒt|d	ƒksvt‚t|ƒd
ks†t‚t|ƒt|dƒksœt‚td| dƒt|dƒks¸t‚t|d	ƒd| d	  ksÒt‚t	|dkƒt
jksèt‚t	|dkƒt|  ƒk�st‚t	|dkƒtd|  ƒk�s"t‚t|ƒ|ƒtd| ƒ |  k�sFt‚t|dkƒjtddƒk�sdt‚tddƒ}t|ƒttdƒƒk�sˆt‚tdƒ}t	||kƒt| |  ƒk�s°t‚t	||k ƒdk�sÆt‚t dƒ}tdƒ}t|tdƒƒ}ttƒ�† tdtd| ƒ |d	tfƒ}|j|d	kdd� t¡ |¡�s.t‚tdtd| ƒ |ddfƒ}	|j|dk dd� t¡ |	¡�snt‚W 5 Q R X tdd|  ƒ}t|||ƒt|ƒk�s t‚t||| |  |d|  |  ƒdtddd| d    ƒtddd| d    ƒ  k�sút‚t|d|  || |d|  |d	kƒtdƒt d
dƒ k�s8t‚d S )Nr¼   Tr˜   rš   rµ   rð   r›   rœ   r¸   é	   r¶   r  r   rÆ   iöÿÿÿr´   r¨   Ú_zr·   F©Úevaluateéª   éU   )!r   rX   r   r�   r@   rB   r‚   rC   r€   r=   r   rº   r   rƒ   r   r>   rª   r4   rD   r:   r   r‹   r‡   r’   ÚUserWarningr1   rŸ   ÚprobabilityrË   ró   r|   r   r
   )
rÀ   r¢   rµ   r£   r¨   rš   r$  rÃ   Ú	expected1Ú	expected2r¥   r¥   r¦   Útest_exponential†  sJ    
$
 
$.2ÿ
$ÿr-  c                  C   sÎ   t dƒ} t dƒ}t ddd�}t ddd�}td| ||ƒ}t|ƒ|ƒ|tt| | ƒ| |  ƒ d| td	| ƒ  ksxt‚t|ƒ|ƒtj	t
d	| t| | ƒ| | ƒt|  | ƒ dtd	| ƒ   ksÊt‚d S )
Nr”   r¨   rã   Tr˜   r'   rš   rœ   r›   )r   rY   r?   r   r   r,   r�   rG   r   rž   r-   r   )r”   r¨   rã   r'   r¢   r¥   r¥   r¦   Útest_exponential_power²  s"    ÿÿ
ÿÿþr.  c                      s  t ddd�‰t ddd�‰tdˆˆƒ‰ tˆ ƒtƒˆˆd  tˆt ˆ ˆt ˆ ˆ ˆ   ƒ ttˆd ˆd ƒ  ks|t‚tt‡ fdd„ƒ t ddd	�‰tt	‡fd
d„ƒ t dddd�‰tt	‡fdd„ƒ t ddd�‰t ddd	�‰tt	‡‡fdd„ƒ t dddd�‰tt	‡‡fdd„ƒ d S )NÚd1Tr˜   Úd2rš   rœ   c                      s   t ˆ ƒS rÈ   rä   r¥   r®   r¥   r¦   r¯   Ê  r°   z%test_f_distribution.<locals>.<lambda>rå   c                      s   t dˆ ˆ ƒS rç   ©rZ   r¥   ©r/  r¥   r¦   r¯   Ì  r°   F)r™   r	  c                      s   t dˆ ˆ ƒS rç   r1  r¥   r2  r¥   r¦   r¯   Ï  r°   c                      s   t dˆ ˆƒS rç   r1  r¥   ©r/  r0  r¥   r¦   r¯   Ó  r°   c                      s   t dˆ ˆƒS rç   r1  r¥   r3  r¥   r¦   r¯   Ö  r°   )
r   rZ   r?   rš   r   r'   r�   r�   rê   r²   r¥   r¥   )r¢   r/  r0  r¦   Útest_f_distributionÁ  s     :ÿ
r4  c                  C   s˜   t ddd�} t ddd�}td| |ƒ}t|ƒtƒd| | d   ||d   | tdt ƒ | |  d |d    t| t ƒ t| d |d ƒ ks”t‚d S )Nr/  Tr˜   r0  rš   rœ   )r   r[   r?   rš   r   r'   r�   )r/  r0  r¢   r¥   r¥   r¦   Útest_fisher_zÙ  s    6ÿ
ÿÿr5  c                  C   s¶   t ddd�} t ddd�}t ddd�}td| ||d�}t|ƒtƒ| t| | |  d	   tt| | |    ƒ | kszt‚t|ƒtƒtt| t | |    ƒ|tkfd
ƒks²t‚d S )NrÂ   Tr˜   r  r  r•   rš   )r  r  r›   rÊ   )r   r\   r?   rš   r   r�   rG   r   )rÂ   r  r  r¢   r¥   r¥   r¦   Útest_frechetá  s    Fr6  c                  C   s  t ddd�} t ddd�}td| |ƒ}t|ƒtƒt | t d |   ksLt‚t|ƒtƒt| d  ||    tt | ƒ t| ƒ ksˆt‚t	|dd�t
ƒt|  t| dƒ t| d ƒ | t| t
| ƒ t| d ƒ  t
dkfd	ƒksät‚t|ƒt|dƒksút‚td
dd�\} }td| |ƒ}t|ƒ| | k�s,t‚t|ƒ| |d  k�sFt‚t|ƒ ¡ dt| ƒ k�sdt‚t|ƒ ¡ dd|   k�s‚t‚tdd|  d| ƒ}t||| | | | | ƒ ¡ dd|    t| ƒ | ddd|    dd|     t| d d ƒt|d d ƒ  k�st‚d S )NrÝ   Tr˜   rÞ   rš   r›   r8   r   rÊ   zk thetarœ   r¸   r  r´   iñ r¹   é   )r   r]   rH   rš   r	   r�   r?   r   r,   rG   r¨   r   r-   r   r€   r   r@   rB   rÒ   r   rC   r|   r5   )rÝ   rÞ   r¢   r£   r¥   r¥   r¦   Ú
test_gammaê  s4    (<ÿÿý
4ÿÿr8  c                     sü   t ddd�} t ddd�}td| |ƒ‰ tˆ ƒtƒt|  d  ||   t| t ƒ t| ƒ ks`t‚tˆ ƒtƒtt	| |t ƒt| ƒ tdkfdƒks”t‚t
ˆ ƒtƒd	t | t | d	   t| d	t|ƒ tt t ƒ ƒ t| ƒ ksæt‚tt‡ fd
d„ƒ d S )NrÂ   Tr˜   rÃ   rš   r›   r   rÊ   rœ   c                      s   t ˆ ƒS rÈ   rä   r¥   r®   r¥   r¦   r¯     r°   z$test_gamma_inverse.<locals>.<lambda>)r   r^   r?   rš   r   r,   r�   rG   r   r.   rH   r	   r&   r   r�   rê   ©rÂ   rÃ   r¥   r®   r¦   Útest_gamma_inverse	  s    <4"ÿÿ
r:  c                  C   s¾   t ddd�} t ddd�}td| |ƒ}t|ƒtƒ| | t|ƒ t| t ƒ t| t| t ƒ ƒ ksft‚t|ƒtƒdt|ƒt| t| t ƒ ƒ  ks˜t‚tt|ƒtƒtƒt|ƒtƒksºt‚d S ©NrÃ   Tr˜   Úetarš   r›   )r   r_   r?   rš   r   r�   rG   r   ©rÃ   r<  r¢   r¥   r¥   r¦   Útest_gompertz  s    B2r>  c                  C   sV  t ddd�} t dƒ}t dƒ}t dƒ}td| |ƒ}td| |dd�}t|ƒ|ƒ ¡ t||  ƒt| |  ƒ tt||  ƒ t| |  ƒ ƒ |  ks’t‚t|ƒ|ƒ ¡ t| |  ƒt||  ƒ tt| |  ƒ t||  ƒ ƒ |  ksät‚t|ƒ|ƒ ¡ tt||  ƒ t| |  ƒ ƒk�st‚t|ƒ|ƒtt| | ƒt	t |  | d ƒ k�sRt‚d S )	Nr'   Tr˜   r”   rš   r´   )Úminimumr›   )
r   r`   r?   rÒ   r   r�   rG   rH   r	   r,   )r'   r”   rš   r´   r¢   r£   r¥   r¥   r¦   Útest_gumbel  s     <ÿ<ÿÿ
r@  c                  C   s¢   t ddd�} t ddd�}td| |ƒ}t|ƒtƒt| d  |  | t|   d |d   ks^t‚t|ƒtƒtdtdk ft|   d |  d tdkfdƒksžt‚d S )	NrÂ   Tr˜   rÃ   rš   r›   r   rà   )r   ra   r?   rš   r�   rG   r   rá   r¥   r¥   r¦   Útest_kumaraswamy-  s    :þrA  c                  C   s  t dƒ} t ddd�}td| |ƒ}t|ƒtƒtt|  t ƒ|d td  d  ksTt‚t|ƒtƒttt|  ƒ | ƒd|  ks‚t‚t	|ƒtƒt
t|  t | ƒd | tkft| t | ƒ d d dfƒksÐt‚tdddgddgddggƒ}tt|ƒjtƒ�st‚d S )	Nr”   rÃ   Tr˜   rš   rœ   r›   r   )r   rb   rH   rš   r   r	   r�   r?   r   rG   r   Ú
isinstancerF   Údistributionr‰   )r”   rÃ   r¢   r¥   r¥   r¦   Útest_laplace8  s    4.(ÿ
rD  c                      s$  t ddd�‰t ddd�‰tdˆˆƒ‰ ˆ jjjtˆtƒks<t‚tˆ ƒt	ƒt
ˆdt  ƒtˆ dt	ˆ   ƒ t	ˆ tjtj   ks†t‚tˆ ƒt	ƒtt
ˆdt	ˆ   ƒƒks®t‚tt‡ fdd	„ƒ t dd
d�‰tt‡‡fdd	„ƒ t ddd�‰tt‡‡fdd	„ƒ t ddd�‰tt‡‡fdd	„ƒ d S )Nr”   Tr•   rÄ   r˜   rš   rœ   c                      s   t ˆ ƒS rÈ   rä   r¥   r®   r¥   r¦   r¯   P  r°   ztest_levy.<locals>.<lambda>Fc                      s   t dˆˆ ƒS rç   ©rc   r¥   ©rÄ   r”   r¥   r¦   r¯   R  r°   rå   c                      s   t dˆˆ ƒS rç   rE  r¥   rF  r¥   r¦   r¯   U  r°   c                      s   t dˆˆ ƒS rç   rE  r¥   rF  r¥   r¦   r¯   X  r°   )r   rc   rF   r©   rª   r4   rŸ   r�   r?   rš   r   r   r   r   rº   rž   rG   r)   r�   rê   r²   r¥   r¥   )r¢   rÄ   r”   r¦   Ú	test_levyG  s    J(rG  c                  C   sŒ   t ddd�} t ddd�}td| |ƒ}t|ƒtƒ|tt |d |  ttƒ d    ksZt‚t|ƒtƒtttƒ|  | ƒt t	j
 ksˆt‚d S )Nr”   Tr˜   r—   rš   rœ   )r   re   r?   rš   r   r   r�   rG   r    r   rž   )r”   r—   r¢   r¥   r¥   r¦   Útest_logcauchyZ  s
    6rH  c                  C   s  t ddd�} t ddd�}t ddd�}td| |ƒ}t|ƒtƒtt| t tt|  t ƒ tt| t ƒ t	tdƒfd	ƒks|t
‚t|ƒtƒtt |  | ƒ|tt |  | ƒd
 d   ks¼t
‚t|ƒtƒd
t| t | ƒd
  ksät
‚t|ƒ|ƒ| |ttj d
|  ƒ  k�st
‚d S )Nr”   Tr•   r  r˜   rµ   rš   r   rà   r›   rœ   )r   rd   rH   rš   r   r   r   r	   r   r   r�   r?   rG   rƒ   r   r   rº   )r”   r  rµ   r¢   r¥   r¥   r¦   Útest_logisticd  s    
:ÿ@(rI  c                     s¾  t dƒ\‰ ‰tdˆ ˆƒst‚tddd�‰ tddd�‰tt‡ ‡fdd	„ƒ tddd�‰ tddd�‰tt‡ ‡fd
d	„ƒ t ddd�\‰ ‰} }tdˆ ˆƒ}t|ƒ| ƒˆ| ˆ  ˆd   ˆ | ˆ  ˆ d d   ksÐt‚t|ƒ| ƒdd| ˆ  ˆ    ksöt‚t|ƒ|ƒˆ |d|  dˆ   k�s t‚t	|ƒt
tjˆdkftˆ  ˆttˆ ƒ  dfƒk�sZt‚t ddd�‰tdˆ ˆƒ}t	|ƒtˆ  ˆttˆ ƒ  k�s˜t‚tdddƒ}t|ƒtdƒk�sºt‚d S )Nrî   rš   rÂ   Trû   rÃ   r˜   c                      s   t dˆ ˆƒS rç   ©rf   r¥   r9  r¥   r¦   r¯   y  r°   z"test_loglogistic.<locals>.<lambda>c                      s   t dˆ ˆƒS rç   rJ  r¥   r9  r¥   r¦   r¯   }  r°   za b z pr›   rœ   )Úprime)r   rf   r�   r   r�   r²   r?   rG   rƒ   r   r   r   ÚNaNr   r"   rD   r:   )r¨   rµ   r¢   r¥   r9  r¦   Útest_loglogistics  s&    <&*:&rM  c                  C   sÚ   t ddd�} t ddd�}td| |ƒ}t dƒ}t|ƒ|ƒtdƒt|  t|d|  ƒ d  d|d   ƒ dttƒ | | d|   ksŒt‚t|ƒ|ƒt	tdƒ|  t|d|  ƒ  d|  ƒd t
dƒd  ksÖt‚d S )	Nr”   Tr•   r  r˜   rš   rœ   r›   )r   rg   r?   r   r   r   r   r�   rG   r(   r   )r”   r  r¢   rš   r¥   r¥   r¦   Útest_logitnormal�  s    `rN  c                     sJ  t ddd�} t ddd�}td| |ƒ‰ tt‡ fdd„ƒ t ddd�}t ddd�}td||ƒ‰ tˆ ƒtƒtd	ƒt| ttƒ d	  d	|d	   ƒ d	t tt	ƒ |  ksªt
‚tˆ ƒtƒtttd	ƒ| ttƒ  d	|  ƒd	 td
ƒd	  tdkfdƒksút
‚tddd
ƒ‰ tˆ ƒtƒtd	ƒtttƒd	  d	 ƒ d	t tt	ƒ  k�sFt
‚d S )Nr”   Tr•   r—   r˜   rš   c                      s   t ˆ ƒS rÈ   rä   r¥   r®   r¥   r¦   r¯      r°   z test_lognormal.<locals>.<lambda>rœ   r›   r   rÊ   )r   rh   r�   rê   r?   rš   r   r   r   r   r�   rG   r   r(   r   )ZmeanZstdr”   r—   r¥   r®   r¦   Útest_lognormal–  s,    $
ÿÿ
$
ÿÿþ
rO  c                     sN  t ddd�\‰ ‰tt‡ ‡fdd„ƒ t ddd�\‰ ‰tt‡ ‡fdd„ƒ t ddd	�\‰ ‰td
ˆ ˆƒ} | jjjtdtƒks|t	‚t
| ƒtƒˆ dtˆ  ˆ  d   ˆ ksªt	‚t| ƒtƒtddtˆ  ˆ    tdkfdƒksÞt	‚d‰ td
ˆ ˆƒ} t| ƒˆd k�st	‚t| ƒtˆddtddƒ   ƒk�s,t	‚t| ƒdˆd  d k�sJt	‚d S )Nza, lTrû   c                      s   t dˆ ˆƒS ©Nr¢   ©r„   r¥   ©rÂ   r  r¥   r¦   r¯   ²  r°   ztest_Lomax.<locals>.<lambda>Fr•   c                      s   t dˆ ˆƒS rP  rQ  r¥   rR  r¥   r¦   r¯   ´  r°   r˜   r¢   r   r›   rÊ   r¸   rœ   r¬   r¶   )r   r�   r²   r„   rF   r©   rª   r4   rŸ   r�   r?   rš   rG   r   r   rD   r:   r
   r@   r®   r¥   rR  r¦   Ú
test_Lomax°  s    .4(rS  c                  C   s0  t ddd�} td| ƒ}t|ƒtƒtdƒtd  ttd  d| d   ƒ ttƒ| d   ks`t‚t|ƒdtdƒ |  ttƒ ks„t‚t	|ƒd| d  t d| d   ks¬t‚t
|ƒtƒttdƒt d|   ƒtdƒt ttd  d| d   ƒ ttƒ|    k�st‚tt
|ƒtƒtƒt|ƒtƒk�s,t‚d S )NrÂ   Tr˜   rš   rœ   r¸   iøÿÿÿ)r   ri   r?   rš   r   r   r   r�   r   r@   rG   r(   r   )rÂ   r¢   r¥   r¥   r¦   Útest_maxwellÂ  s    
2ÿ
$(\rT  c                     sÐ  t ddd�‰ t ddd�‰tt‡ ‡fdd„ƒ t ddd�‰ t ddd	�‰tt‡ ‡fd
d„ƒ t ddd�‰tdˆ ˆƒ} t| ƒtƒtdƒttˆ t ˆ ƒ d ˆ  t dˆ   ƒ dttƒ ˆ  ksÄt	‚t
| ƒtƒ ¡ dttdƒtˆ t dˆ  ƒ d ƒ k�st	‚t| ƒtƒdt ˆ t  ttˆ  t ƒ tt ˆ t tddƒ ƒ ttƒ k�sZt	‚t| ƒˆ tˆ  ˆtdƒ  k�s€t	‚t| ƒtƒdˆ t  tˆ t ƒ tˆ t tddƒ ƒ ttƒ k�sÌt	‚d S )Nr”   Fr•   r—   Tr˜   c                      s   t dˆ ˆƒS ©NÚM©rj   r¥   ©r”   r—   r¥   r¦   r¯   Ó  r°   ztest_Moyal.<locals>.<lambda>rû   c                      s   t dˆ ˆƒS rU  rW  r¥   rX  r¥   r¦   r¯   ×  r°   rV  rœ   r›   )r   r�   r²   rj   r?   r¨   r   r   r   r�   rG   r5   r(   rH   r	   r,   r
   r   r   r   rI   )rV  r¥   rX  r¦   Ú
test_MoyalÏ  s2    &ÿÿ
>*ÿÿ&"ÿÿrY  c                  C   s\  t ddd�} t ddd�}td| |ƒ}t|ƒtƒdtd|  d   | |   ||    ttd  |  | ƒ t| ƒ ksxt‚tt|ƒƒt	| ƒt	|ƒ t| t
j ƒ t| d ƒ ks²t‚tt|ƒƒ||t| t
j ƒd  t| ƒt| d ƒ   ksðt‚t|ƒtƒtt| | td  | ƒt| ƒ tdkfd	ƒk�s.t‚tdddƒ}t|ƒtt	tdƒƒƒk�sXt‚d S )
Nr”   Tr˜   Úomegarš   rœ   r›   r   rÊ   )r   rk   r?   rš   r   r,   r�   r5   r   r   r   rž   r@   rG   r   r-   rD   r:   r   )r”   rZ  r¢   r¥   r¥   r¦   Útest_nakagamiå  s,    .ÿÿ
ÿ
ÿ

,ÿ$þr[  c                     s*  t dƒ\‰ ‰tdˆ ˆƒst‚t dƒ\‰ ‰} tdˆ ˆƒ}t|ƒ| ƒtdƒtˆ| d  ƒ tˆ ˆ  |  d  dˆ d  |   ƒ dttƒ  ks’t‚t ddd�\‰ ‰tddd�} tdˆ ˆƒ}t|ƒ| ƒtdƒtˆƒ t| d	 ƒ tˆ ˆ  |  d  dˆ d  |   ƒ dttƒ  k�st‚t	|ƒˆ k�s.t‚t
|ƒ ¡ ˆ d ˆ k�sLt‚t|ƒ| ƒtjttdƒtˆƒ d
| ˆ    dt| ƒ  ƒd  tdˆ ˆ  ƒ ttdƒtˆƒ d| ˆ    dt| ƒ  ƒd  tj k�sÚt‚t ddd�‰ tt‡ ‡fdd„ƒ t ddd�‰ t ddd�‰tt‡ ‡fdd„ƒ d S )Nrî   rš   za b zrœ   r¸   Tr˜   r¨   r  r›   r¬   rÂ   rå   c                      s   t dˆ ˆƒS rç   ©rm   r¥   r9  r¥   r¦   r¯     r°   z'test_gaussian_inverse.<locals>.<lambda>rÃ   c                      s   t dˆ ˆƒS rç   r\  r¥   r9  r¥   r¦   r¯     r°   )r   rm   r�   r~   r?   r   r   r   r   r   r@   rÒ   rG   r   rž   r(   r�   r²   )r¨   r¢   r¥   r9  r¦   Útest_gaussian_inverseö  s*    \bN.ÿÿr]  c                  C   sü   t ddd�\} }|d }td| |ƒ}t|ƒ}t|ƒtƒtt| d   | |d   d t| kfdƒksjt‚t|ƒtƒt t |  |d  |d  t	| d t t |  ƒ ks²t‚|tƒt|d   | |  | ksØt‚t
t|ƒƒ||  |d  ksøt‚d S )Nzxm betaTr˜   rÏ   rš   r›   rÊ   )r   rn   r?   rG   rš   r   r�   rH   r	   r.   r5   r   )Úxmr'   rã   r¢   rõ   r¥   r¥   r¦   Útest_pareto  s    
,ÿ
6ÿ&r_  c                  C   s’   d\} }|d }t d| |ƒ}t|ƒ||  t|d ƒ ks<t‚t|ƒ| d | t|d d |d  ƒ kslt‚t|ƒtddtddƒ  ƒksŽt‚d S )N)r¸   rœ   rÏ   rš   r›   rœ   r¸   é   )rn   r   r   r�   r@   rD   r:   r
   )r^  r'   rã   r¢   r¥   r¥   r¦   Útest_pareto_numeric)  s     0ra  c                     s  t ddd�‰tddd�\‰ ‰tt‡ ‡‡fdd„ƒ tddd�\‰ ‰tt‡ ‡‡fd	d„ƒ t ddd
�‰tddd�\‰ ‰tt‡fdd„ƒ tddˆ ˆƒ} t| ƒtƒdˆ  dt  ˆ  ˆ d  ksÂt‚t| ƒtƒt	ˆ d ˆ d dˆ  ˆ  ˆd   dˆ  t ˆ d dˆ  ˆ  ˆd    td ˆ d dˆ  ˆ  ˆd    ˆ tkfdƒk�sRt‚tddddƒ} t| ƒtƒdt k�szt‚t| ƒtƒt	td tdkfdƒk�s¢t‚t
| ƒtddƒk�sºt‚t| dk ƒdk�sÐt‚t| dk ƒdk�sæt‚t| ƒtdtdƒ ƒk�st‚d S )Nrã   Trå   za, br•   c                      s   t dˆˆ ˆƒS rç   ©ro   r¥   ©rÂ   rã   rÃ   r¥   r¦   r¯   7  r°   z$test_PowerFunction.<locals>.<lambda>Fc                      s   t dˆˆ ˆƒS rç   rb  r¥   rc  r¥   r¦   r¯   :  r°   r˜   c                      s   t dˆ ddƒS )Nrš   rÏ   rœ   rb  r¥   )rã   r¥   r¦   r¯   >  r°   r¢   rœ   r·   rÊ   r   r›   r¸   )r   r   r�   r²   ro   r?   r¨   r�   rG   r   r   r
   r=   rD   r:   r   r®   r¥   rc  r¦   Útest_PowerFunction4  s4    ..&ÿ"ÿÿÿ(rd  c               	   C   sF  t ddd�} t ddd�}td| |ƒ}t|ƒjjt| | | | ƒksFt‚t|ƒtƒt	t
t t |  | ƒd ttt | ƒft
tt |  | ƒd ttt| ƒftd t
t|  t ƒ t|t ƒ |t |d  td  td    dfƒksðt‚t|ƒtƒt	ttt|   | ƒd d|  tt| | k| | tkƒfd	ƒk�sBt‚d S )
Nr”   Tr•   r  r˜   rš   rœ   r›   rÊ   )r   rq   rF   r©   rª   r4   r�   rH   rš   r   r   r	   r   r   r"   r?   r!   r2   )r”   r  r¢   r¥   r¥   r¦   Útest_raised_cosineM  s    "
˜ÿ*ÿÿre  c                  C   s\  t ddd�} td| ƒ}t|ƒtƒtdƒ ttƒ |  t ttdƒ|  t d ƒt  t| d  td  d ƒ d d ks~t	‚t
|ƒtƒtttd  d| d   ƒ | d  ks´t	‚t|ƒtdƒttƒ |  d ksØt	‚t|ƒt | d  d d| d   k�st	‚t|ƒtƒdttd  d| d   ƒ k�s4t	‚tt|ƒtƒtƒt
|ƒtƒk�sXt	‚d S )Nr—   Tr˜   rš   rœ   r›   )r   rr   rH   rš   r   r   r*   r	   r   r�   r?   r   r@   rG   r   )r—   r¢   r¥   r¥   r¦   Útest_rayleigh\  s    
h6$,0rf  c                     s²  t ddd�‰ t ddd�‰tdˆ ˆƒ} t| ƒtƒdttˆ ƒ tˆƒ   ksNt‚t| ƒtƒttˆ ƒtˆ ƒtˆƒ  ttƒtˆ ƒtˆƒ   ˆ tkfdƒksœt‚tddd	ƒ} t| ƒd
td	ƒtdƒ  ksÈt‚t	| dk ƒt
jksÞt‚t	| dk ƒtdƒtd	ƒtdƒ  tdƒtd	ƒtdƒ   k�s t‚t| ƒdƒtdƒtd	ƒtdƒ  tdƒtd	ƒtdƒ   k�sbt‚tddd�‰ tt‡ ‡fdd„ƒ tddd�‰ tddd�‰tt‡ ‡fdd„ƒ d S )NrÂ   Tr•   rÃ   rš   r›   rÊ   rÏ   é   rÐ   r¶   é   rÆ   rå   c                      s   t dˆ ˆƒS rç   ©rs   r¥   r9  r¥   r¦   r¯   y  r°   z!test_reciprocal.<locals>.<lambda>r˜   c                      s   t dˆ ˆ ˆ ƒS rç   ri  r¥   r9  r¥   r¦   r¯   }  r°   )r   rs   r?   rš   r   r�   rG   r   r   r=   r   ÚZeror   r�   r²   r®   r¥   r9  r¦   Útest_reciprocalj  s    *N BBrk  c                  C   s|   t ddd�} t ddd�}td| |ƒ}t|ƒtƒ| |dt|  t ƒ  d  t|  t ƒ t| t|  t ƒ ƒ ksxt‚d S r;  )r   rt   r?   rš   r   r�   r=  r¥   r¥   r¦   Útest_shiftedgompertz  s    rl  c                     sê   t ddd�} td| ƒ‰ tˆ ƒtƒdtd |   |  d tj  t| ƒttj| d ƒ  ks^t‚t	ˆ ƒtƒtjtt
| d tj ƒ ttj| d tj ftddƒftd  |  ƒ ttƒt| ƒ t
| d ƒ   ksÔt‚tt‡ fdd	„ƒ d S )
NÚnuTr˜   rš   r›   rœ   r¸   c                      s   t ˆ ƒS rÈ   rä   r¥   r®   r¥   r¦   r¯   �  r°   ztest_studentt.<locals>.<lambda>)r   ru   r?   rš   r   rž   r   r'   r�   rG   r,   r0   r
   r   r�   rê   )rm  r¥   r®   r¦   Útest_studentt†  s    
H6
 ÿÿrn  c                  C   sl  t ddd�} t ddd�}t ddd�}t ddd�}td| |||ƒ}t|ƒtƒtd|  d	t  |  | |  | | |   | tkt|k @ fd	|  | | |  |tkt|k @ fd	| d	t  | | |  | | |   |tkt|k@ fd
ƒksðt‚tdddd	dƒ}t|ƒtdd	ƒk�st‚t|ƒtddƒk�s0t‚t	|d	k ƒtddƒk�sLt‚t
|ƒttdd	ƒƒk�sht‚d S )NrÂ   Tr•   rÃ   rÄ   rÌ   rš   r·   rœ   rÊ   r   r›   r¸   rÏ   r¹   r¶   )r   rv   r?   rš   r   r�   r   r
   r@   r=   rD   r:   )rÂ   rÃ   rÄ   rÌ   r¢   r¥   r¥   r¦   Útest_trapezoidal�  s    F$:ý
ro  c                  C   sü   t dƒ} t dƒ}t dƒ}td| ||ƒ}t|ƒjjt| |ƒks@t‚tt|ƒt	ƒƒdksXt‚t
|ƒt	ƒ ¡ d|  |  t|t	 ƒ d|  |  t|t	 ƒ  d||  t| t	 ƒ  t	d |  |  |  |  ||    ¡ ksàt‚tt|ƒt	ƒƒdksøt‚d S )	NrÂ   rÃ   rÄ   rš   zšPiecewise(((-2*a + 2*x)/((-a + b)*(-a + c)), (a <= x) & (c > x)), (2/(-a + b), Eq(c, x)), ((2*b - 2*x)/((-a + b)*(b - c)), (b >= x) & (c < x)), (0, True))r·   rœ   zg(2*(-a + b)*exp(I*c*x) - 2*(-a + c)*exp(I*b*x) - 2*(b - c)*exp(I*a*x))/(x**2*(-a + b)*(-a + c)*(b - c)))r   rw   rF   r©   rª   r4   r�   r×   r?   rš   rI   rÒ   r   rH   )rÂ   rÃ   rÄ   r¢   r¥   r¥   r¦   Útest_triangular¡  s    rÿÿrp  c                  C   s2  t ddd�} t ddd�}td| |ƒ}tdddƒ}t|ƒjjt| |ƒksJt‚t|ƒdƒdtdƒ d	tdƒ  ksrt‚t|ƒdƒd
tdƒ d dtdƒ d  ks¢t‚t	|ƒdƒdt
 ddt
   tt
tdt
 ƒ ƒ ksÚt‚t|ƒtƒtdt| d  |d  d  |  | d  tt|k| tkƒfdƒk�s.t‚d S )NrÂ   Tr•   rÃ   rš   r›   rœ   iñÿÿÿé   i÷ÿÿÿr¶   é   r¸   r¬   r¹   rÊ   )r   rp   rF   r©   rª   r4   r�   rI   r   rH   r	   r?   rš   r   r2   )rÂ   rÃ   r¢   r£   r¥   r¥   r¦   Útest_quadratic_u±  s    (084ÿÿrs  c                  C   sŒ  t ddd�} t ddd�}td| | | ƒ}t|ƒ| |d  ks@t‚t|ƒ ¡ |d d ks\t‚tdd	d
ƒ}t|d	k ƒdkrˆt|d
kƒdksŒt‚t|dk ƒt|dkƒ  kr²tjks¸n t‚t	|ƒt
dƒksÌt‚t dƒ}t|ƒ|ƒ}| |d¡tjksöt‚| |d¡dk�st‚| |d¡dk�s"t‚t|ƒ}|dƒdk�rF|d	ƒdk�sJt‚|tddƒƒtddƒk�sht‚|d
ƒdk�r„|dƒdk�sˆt‚d S )Nr  Tr•   Úwr˜   rš   rœ   r¹   r¸   rÏ   r   r¶   r¨   gš™™™™™@r¬   r  r`  r›   )r   rx   r   r�   r@   rÒ   r=   r   rž   rD   r:   r?   rØ   rG   r
   )r  rt  r¢   r¨   rµ   rÄ   r¥   r¥   r¦   Útest_uniformÂ  s$    $, ru  c                  C   sT   t ddd�} t ddd�}td| | | ƒ}t|| k ƒdkrLt|| | kƒdksPt‚dS )	aŽ   This stopped working because SingleContinuousPSpace.compute_density no
    longer calls integrate on a DiracDelta but rather just solves directly.
    integrate used to call UniformDistribution.expectation which special-cased
    subsed out the Min and Max terms that Uniform produces

    I decided to regress on this class for general cleanliness (and I suspect
    speed) of the algorithm.
    r  Tr•   rt  r˜   rš   r   N)r   rx   r=   r�   )r  rt  r¢   r¥   r¥   r¦   Útest_uniform_PÜ  s    rv  c                  C   sê   t ddd�} tdƒ}t dƒ}td| ƒ}td| | | | d   t| |ƒ |dt|ƒfƒt| d ƒ }t|ƒ|ƒ |¡s|t	‚|j
jjtd| ƒks”t	‚t|ƒ|ƒt tt| ƒd  | |  ksÂt	‚t|ƒ|ƒt|ƒd | |  ksæt	‚d S )	Nr  Tr  rÝ   rš   r¬   r›   r   )r   r   ry   r   r   r   r   r?   ró   r�   rF   r©   rª   r4   rH   r	   r   rI   )r  rô   rš   r¢   rö   r¥   r¥   r¦   Útest_uniformsumí  s    
@.rw  c                  C   sZ   t dƒ} t ddd�}td| |ƒ}t|ƒtƒt|tt|  ƒ ƒdt td|ƒ  ksVt‚d S )Nr”   rÝ   Tr˜   rš   rœ   r   )	r   rz   r?   rš   r   r!   r   r$   r�   )r”   rÝ   r¢   r¥   r¥   r¦   Útest_von_mises   s    rx  c                  C   s¸  t ddd�\} }td| |ƒ}t|ƒ ¡ | tdd|  ƒ ks@t‚t|ƒ ¡ | d tdd|  ƒ t|ƒd   ¡ ksxt‚tt|ƒƒdtdd|  ƒd  dtdd|  ƒ tdd|  ƒ  tdd|  ƒ tdd|  ƒd  tdd|  ƒ t	ddƒ  k�st‚tt
|ƒƒdtdd|  ƒd	  d
tdd|  ƒd  tdd|  ƒ  d	tdd|  ƒ tdd|  ƒ  tdd	|  ƒ tdd|  ƒd tdd|  ƒ d  k�s´t‚d S )Nrî   Tr˜   rš   r›   rœ   r¸   r  r¶   r  )r   r{   r   rÒ   r,   r�   r@   r5   rB   r
   rC   rá   r¥   r¥   r¦   Útest_weibull  s    $8Ž &ÿ"ÿÿ&ÿry  c               	   C   sš   d} t jdtddƒdg}|D ]x}td| |ƒ}tt|ƒƒt| tddt |ƒ  ƒ ƒksXt‚tt	|ƒƒt| d tddt |ƒ  ƒ t|ƒd  ƒkst‚qd S )Nr›   r¸   rœ   rÏ   rš   )
r   rž   r
   r{   r5   r   r   r,   r�   r@   )rÂ   ZbvalsrÃ   r¢   r¥   r¥   r¦   Útest_weibull_numeric  s    ,&ÿrz  c                  C   s¶   t ddd�} td| ƒ}t|ƒjjt|  | ƒks2t‚t|ƒtƒdt	td  | d  ƒ t
| d   ksht‚t|ƒdksxt‚t|ƒtƒtdtd| t ƒ | t  ttdƒfdƒks²t‚d S )	NÚRTr˜   rš   rœ   r   r›   rà   )r   r}   rF   r©   rª   r4   r�   r?   rš   r   r   r   rH   r   r%   r   )r{  r¢   r¥   r¥   r¦   Útest_wignersemicircle!  s    
6
(ÿr|  c                     sÆ   t dƒ\} }t ddd�\‰}t dddd�\‰‰ttdd	„ ƒ tt‡‡fd
d	„ƒ td| ˆƒ tt‡fdd	„ƒ tdˆƒ ttttfD ]<‰ tt‡ ‡‡fdd	„ƒ tt‡ ‡‡fdd	„ƒ ˆ dˆ|ƒ q„d S )Nrî   zp qTr˜   zm nFrð   c                   S   s   t dddƒS )Nrš   r¸   r   ©rl   r¥   r¥   r¥   r¦   r¯   4  r°   z-test_input_value_assertions.<locals>.<lambda>c                      s   t dˆ ˆƒS rç   r}  r¥   )r  r  r¥   r¦   r¯   5  r°   r¢   c                      s
   t dˆ ƒS rç   )rX   r¥   )r  r¥   r¦   r¯   7  r°   ZExc                      s   ˆ dˆˆƒS rç   r¥   r¥   )Úfnr  rµ   r¥   r¦   r¯   :  r°   c                      s   ˆ dˆˆƒS rç   r¥   r¥   )r~  r  rµ   r¥   r¦   r¯   ;  r°   rš   )	r   r�   r²   rl   rX   rn   r{   rM   r]   )rÂ   rÃ   Úqr¥   )r~  r  r  rµ   r¦   Útest_input_value_assertions/  s    
r€  c               	   C   s  t dddƒ} tdƒ}ttdƒ| t|d  d ƒ dttƒ  |t tfƒ}ttdƒt|d  d ƒ dttƒ  |dtfƒ}ttƒ�f t	| dd� 
t¡ |¡s¤t‚t	| d dd� 
t¡ |d ¡sÈt‚t| dkdd� 
t¡ |¡sèt‚W 5 Q R X t| dk| d dk ƒtjk�st‚d S )Nrš   r   r›   rÝ   rœ   Fr%  )rl   r   r1   r   r   r   rŸ   r’   r)  r   rË   ró   r�   r=   r   rž   )r¢   rÝ   Zexpr1Zexpr2r¥   r¥   r¦   Útest_unevaluated?  s    82
$*r�  c               	   C   s@   t dddƒ} ttƒ�" tt| dkdd�ƒtks2t‚W 5 Q R X d S )NÚTrg  r¸   é!   Fr%  )rl   r’   r)  Útyper=   rŽ   r�   )r‚  r¥   r¥   r¦   Útest_probability_unevaluatedL  s    
r…  c                  C   s:   t dddƒ} t dddƒ}tt| | dd�tƒtƒs6t‚d S )Nr¢   r   r›   r£   rœ   Fr%  )rl   rB  r?   r¨   r1   r�   rÉ   r¥   r¥   r¦   Útest_density_unevaluatedR  s    r†  c            	      C   s  t ddƒ} tdƒ}|  |¡ttdƒ| d ƒd tj ks>t‚|  d|¡dksRt‚|  ||¡dksft‚|  |d |¡dks~t‚t	|t ddƒƒ}t
dƒ}ttdƒt|d d  d ƒ dttƒ  |t dfƒ}|j|dk d	d
� |¡dksît‚ttdƒt|d d  d ƒ dttƒ  |dtfƒ}|j|dkd	d
� |¡dk�sFt‚t	|t ddƒƒ}ttdƒt|d d  d ƒ dttƒ  |dtfƒ}|j|dkd	d
� |¡dk�s®t‚ttdƒt|d d  d ƒ dttƒ  |t dfƒ}|j|dk d	d
� |¡dk�st‚d S )Nr   r›   rš   rœ   r¶   r$  é    r  Fr%  Tr#  é¢   r7  r  )r†   r   rG   r(   r   r   rž   r�   Zexpectationr‹   r   r1   r   r   rŸ   r*  ró   )	Úndrš   rÂ   r$  r+  r,  rÃ   Z	expected3Z	expected4r¥   r¥   r¦   Útest_NormalDistributionX  s"    
,8 6"6"8rŠ  c                  C   sÀ   t dddƒ} t d| dƒ}t|dd�tƒs,t‚tt|ƒtƒs>t‚t dddgdd	gd	dggƒ}tt|ƒjtƒsnt‚t|ƒtƒ 	¡ t
d
ƒttd  d td
  tdƒd
  ƒ dt
tƒ  ks¼t‚d S )Nr”   rœ   r¸   r‚  r›   Fr%  rš   r   rÏ   rh  rÆ   )rl   r?   r¨   r�   rB  rF   r�   rC  rŠ   r5   r   r   r   r   )r”   Úmeasr¢   r¥   r¥   r¦   Útest_random_parametersr  s    rŒ  c                  C   s<   t dddƒ} t d| dƒ}t|t| dƒƒt dddƒks8t‚d S )Nr”   rœ   r¸   r‚  r›   rÏ   )rl   rE   r   r�   )r”   r‹  r¥   r¥   r¦   Útest_random_parameters_given|  s    r�  c                  C   sB   t dddƒ} t d| dƒ}ttt| t|tƒdd�tƒƒtƒs>t‚d S )Nr”   rœ   r¸   rš   r›   Fr%  )	rl   rB  r5   r?   r   r´   r¨   r   r�   )r”   rš   r¥   r¥   r¦   Útest_conjugate_priors‚  s
    ÿrŽ  c                  C   sD   t dddƒ} t| d ƒst‚tt| d ƒƒs0t‚tt| ƒƒs@t‚dS )z¢ Since using solve in place of deltaintegrate we're able to perform
    substantially more complex density computations on single continuous random
    variables rš   r   r›   r¸   rœ   N)rl   r?   r�   r   r   ©rš   r¥   r¥   r¦   Útest_difficult_univariate‰  s    r�  c                  C   sF   t ddƒ} tdddƒ}t| dk ƒtjks,t‚t|dk ƒtjksBt‚d S )Nrš   r¸   Úgr›   rœ   r¬   )rX   r]   r=   r   rj  r�   )r¢   ÚGr¥   r¥   r¦   Útest_issue_10003“  s    
r“  c            	      C   s¨   t ddd�} t ddd�}t ddd�\}}}t dddd�}td	||ƒtd
||ƒtd|ƒtd|ƒg}|D ]>}t|ƒ| ƒt|jj 	¡ | ƒƒ }t| 
t¡ƒ}|dksdt‚qdd S )Nrš   Tr•   r”   zsigma xm alphar˜   r  r
  r¢   r=   ÚCr   r   )r   rl   rn   rR   rX   rG   r5   rF   r?   Zcompute_cdfrË   r)   r�   )	rš   r”   r—   r^  rã   r  Údistribsr¢   Zcompdiffr¥   r¥   r¦   Útest_precomputed_cdfš  s    

ü r–  c                     sê   dd l ‰ ‡ fdd„} | tdddƒddƒ | tddƒdˆ jƒ | tddƒdˆ jƒ | td	d
ƒdˆ jƒ | tdddƒˆ j ˆ jƒ | tdddƒˆ j ˆ jƒ | tdddƒddƒ | t	ddƒdˆ jƒ | t
dddƒddƒ | tddƒddƒ d S )Nr   c           
         s²   t | ƒ}tdƒ}t|gt| ƒ|ƒdƒ}tt|g|tƒttt | ƒ dƒ‰ ‡ ‡‡‡fdd„}dD ]L}||ƒ}||ƒ}	tt|ƒt|	ƒ ƒdk s�t	‚tt
|ƒt
|	ƒ ƒdk s`t	‚q`d S )NrÖ   Úmpmathc                    s   ˆj ‡‡ fdd„ˆˆgdd�S )Nc                    s
   ˆ | ˆƒS rÈ   r¥   r�  )rÍ   rÖ   r¥   r¦   r¯   ¹  r°   z^test_precomputed_characteristic_functions.<locals>.test_cf.<locals>.<lambda>.<locals>.<lambda>rÆ   )Z	maxdegree)Zquad©rÖ   )rÍ   r—  Úsupport_lower_limitÚsupport_upper_limitr˜  r¦   r¯   ¹  r°   zLtest_precomputed_characteristic_functions.<locals>.test_cf.<locals>.<lambda>)rœ   rÏ   r  é   gê-�™—q=)r?   r   r6   rH   rš   r   r	   Úabsr   r�   r   )
Údistr™  rš  r¤   rÖ   Zcf1Zcf2Z
test_pointZn1Zn2©r—  )rÍ   r™  rš  r¦   Útest_cf°  s    $z:test_precomputed_characteristic_functions.<locals>.test_cfrÃ   r›   rœ   rÄ   r¸   rÙ   r  r  r  r¬   rÏ   Úrr¶   g      à?r   rt  r  )r—  rM   rQ   ÚinfrR   rX   rd   rl   rq   rr   rx   r}   )rŸ  r¥   rž  r¦   Ú)test_precomputed_characteristic_functions¬  s    r¢  c                  C   s4  t ddd�} tdddƒtddd	d
ƒtdddƒtddddƒtdddƒtdd
dƒtdddƒtdddƒt	dddƒt
dddƒtddƒg}|D ]B}tdƒD ]4}ttt|ƒ| ƒ| ƒt|ƒ| ƒ| ddddd�s�t‚q�q„tddƒ}t|ƒ| ƒ t| ƒd¡ ¡ }t|d d!�| ƒ t| ƒd¡ ¡ }tt|| ƒ|| ddddd��s0t‚d S )"Nrš   Tr•   ÚArÇ   r#  ÚDr¶   rÆ   r¸   r   é   rÏ   ÚFrœ   r  r  r’  r`  ZGIÚKr  ZLArÔ   iúÿÿÿÚNr   r   r›   )rÂ   rÃ   rÄ   rÌ   ÚUSFr%  )r   rK   rT   rV   r\   r]   r^   ra   rb   rd   rk   ru   ÚrangeÚtnr   rG   r?   r�   ry   rØ   r   r¡   )rš   r•  ZdistrÚ_r©  Zpdf01Zcdf01r¥   r¥   r¦   Útest_long_precomputed_cdfÏ  s(    







õ4
 r­  c                  C   sF   t dddƒ} t| | tjkƒtddƒks*t‚t| | dkƒtjksBt‚d S )Nr¢   r   r›   r¸   r¶   )rx   r   r   rž   r
   r�   r®   r¥   r¥   r¦   Útest_issue_13324è  s    r®  c                  C   sv   t dddƒ} t dddƒ}t| | ƒtjks.t‚t| |d d  ƒtjksLt‚t|| | d  | |    ƒtjksrt‚d S )Nr¢   r¬   r›   r£   )rx   r   r   rj  r�   rÉ   r¥   r¥   r¦   Útest_issue_20756í  s
    r¯  c                  C   sb   t ddƒ} tdddƒ}tt| dƒƒtjks.t‚tt|dƒƒtjksFt‚tt|tƒƒtjks^t‚d S )Nr   r¸   r¨  rÏ   r`  r›   rœ   )rX   rl   r=   r   r   rj  r�   rš   )r   r¨  r¥   r¥   r¦   Útest_FiniteSet_probô  s
    
r°  c                  C   s†   t ddƒ} tddƒ}tt| dƒƒdks*t‚tt|dƒƒdks@t‚tt|dƒƒdksVt‚tt|dƒƒdkslt‚tt| tƒƒdks‚t‚d S )Nr   r¶   r¢   rœ   r›   rÏ   )rX   rR   r=   r   r�   rš   )r   r¢   r¥   r¥   r¦   Útest_prob_neqû  s    

r±  c                  C   s°   t dddƒ} tt| d |  dkƒƒttdƒƒ d ttdƒd ƒd  tddƒ ksXt‚tt| d d dkƒƒtdtdƒ d ƒ d ttdƒd ƒd  tddƒ ks¬t‚d S )Nr¨  r¸   rœ   r¶   r   rÏ   )rl   r5   r=   r(   r   r)   r
   r�   ©r¨  r¥   r¥   r¦   Ú
test_union  s    .ÿ6ÿr³  c                  C   s¢   t dddƒ} ttt| dk| dk ƒƒƒttdƒƒ d ttdƒd ƒd  tddƒ ksZt‚tt| dk | dk ƒƒt| dk ƒks€t‚tt| dk| dk ƒƒdksžt‚d S )Nr¨  r   r›   rœ   r¸   )	rl   r5   r=   r3   r(   r   r)   r
   r�   r²  r¥   r¥   r¦   Útest_Or  s    .ÿ&r´  c                  C   s‚   t ddƒ} tt| dƒt| dƒƒdks(t‚tt| dƒt| dƒƒdksFt‚t| dkt| dƒƒdksbt‚t| dk t| dƒƒdks~t‚d S )Nr   r›   rœ   r   )rX   r=   r   r�   )r   r¥   r¥   r¦   Útest_conditional_eq  s
    
rµ  c               
   C   s"  t dƒ} tdƒ}t| ttjd| k| dk @ fd| dk| dk @ ftj| dk| dk @ fdƒƒ}t|tddƒd�}t||ƒ}|j	t| ttdƒd | dk| dk @ fd| dk| dk @ ftdƒd | dk| dk @ fdƒƒksÒt
‚t|jƒtddƒksêt
‚t|jƒtddƒk�st
‚t|jƒtd	d
ƒk�st
‚d S )Nrš   r¨   r   r›   rœ   r¸   rÊ   rÜ   é   r¹   )r   r   r   r   r   rž   rˆ   r4   r‹   r¤   r�   rD   Úvaluer   r
   r@   )rš   r¨   rõ   Úspacer¥   r¥   r¦   Ú#test_ContinuousDistributionHandmade  s     , ÿ
$  ÿr¹  c                      s&   t ttddƒƒ‰ tt‡ fdd„ƒ d S )Nr   r›   c                      s   t  ˆ td tth¡S r­   )rŒ   r    rš   r´   r¥   r²  r¥   r¦   r¯   +  r°   z"test_issue_16318.<locals>.<lambda>)rŒ   rš   r4   r�   r²   r¥   r¥   r²  r¦   Útest_issue_16318(  s    rº  c                      s*   t ddtdƒd ƒ‰ tt‡ fdd„ƒ d S )Nr¢   r   r—   rœ   c                      s   t ˆ d ˆ  ƒS )NrÏ   )r?   r¥   r®   r¥   r¦   r¯   /  r°   z&test_compute_density.<locals>.<lambda>)rl   r   r�   r²   r¥   r¥   r®   r¦   Útest_compute_density-  s    r»  N(  Zsympy.concrete.summationsr   Zsympy.core.functionr   r   r   Zsympy.core.mulr   Z
sympy.corer   r  r   rÙ   r	   r
   r   Zsympy.core.relationalr   r   Zsympy.core.singletonr   Zsympy.core.symbolr   r   r   Z(sympy.functions.combinatorial.factorialsr   r   Z$sympy.functions.elementary.complexesr   r   r   r   Z&sympy.functions.elementary.exponentialr   r   Z%sympy.functions.elementary.hyperbolicr   r   Z#sympy.functions.elementary.integersr   Z(sympy.functions.elementary.miscellaneousr   Z$sympy.functions.elementary.piecewiser   Z(sympy.functions.elementary.trigonometricr   r    r!   r"   r#   Zsympy.functions.special.besselr$   r%   r&   Z&sympy.functions.special.beta_functionsr'   Z'sympy.functions.special.error_functionsr(   r)   r*   r+   Z'sympy.functions.special.gamma_functionsr,   r-   r.   Z&sympy.functions.special.zeta_functionsr/   Zsympy.functions.special.hyperr0   Zsympy.integrals.integralsr1   Zsympy.logic.boolalgr2   r3   Zsympy.sets.setsr4   Zsympy.simplify.simplifyr5   Zsympy.utilities.lambdifyr6   r7   r9   r:   r;   r<   Zsympy.statsr=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r€   r�   r‚   rƒ   r„   r…   Zsympy.stats.crv_typesr†   r‡   rˆ   Zsympy.stats.joint_rv_typesr‰   rŠ   Zsympy.stats.crvr‹   rŒ   Zsympy.stats.compound_rvr�   Z sympy.stats.symbolic_probabilityrŽ   Zsympy.testing.pytestr�   r�   r‘   r’   Zsympy.core.randomr“   r«  ÚInfinityrŸ   Úmaprš   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-  r.  r4  r5  r6  r8  r:  r>  r@  rA  rD  rG  rH  rI  rM  rN  rO  rS  rT  rY  r[  r]  r_  ra  rd  re  rf  rk  rl  rn  ro  rp  rs  ru  rv  rw  rx  ry  rz  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¥   r¥   r¦   Ú<module>   s
  ÿ 1  !

+	


	
	







"




	




