U
    »mœdv‘ ã                   @   sP  d Z ddlZddlZddlZddlZddlm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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l0m1Z1m2Z2 ddl3m4Z4m5Z5 ddl6m7Z7m8Z8 ddl9m:Z:m;Z; ddl<m=Z= ej>j?dkZ@ej	dk�oŠe	 A¡ dkZBddgZC�dédd„ZDdd„ ZEdd„ ZFdd„ ZGdd „ ZHd!d"„ ZId#d$„ ZJd%d&„ ZKejL Md'd(d)d*d+d,d-g¡d.d/„ ƒZNejL Md0d1d2d3d4d5g¡d6d7„ ƒZOd8d9„ ZPejL Md:d;d<d=d>d?d@g¡dAdB„ ƒZQdCdD„ ZRdEdF„ ZSdGdH„ ZTejL MdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWg¡dXdY„ ƒZUG dZd[„ d[ƒZVG d\d]„ d]ƒZWG d^d_„ d_ƒZXG d`da„ daƒZYG dbdc„ dcƒZZG ddde„ deƒZ[G dfdg„ dgƒZ\G dhdi„ diƒZ]G djdk„ dkƒZ^G dldm„ dmƒZ_G dndo„ doƒZ`G dpdq„ dqƒZaG drds„ dsƒZbG dtdu„ duƒZcG dvdw„ dwƒZdG dxdy„ dyƒZeG dzd{„ d{ƒZfG d|d}„ d}ƒZgG d~d„ dƒZhG d€d�„ d�ƒZiG d‚dƒ„ dƒƒZjG d„d…„ d…ƒZkG d†d‡„ d‡ƒZlG dˆd‰„ d‰ƒZmG dŠd‹„ d‹ƒZnG dŒd�„ d�ƒZoG dŽd�„ d�ƒZpG d�d‘„ d‘ƒZqG d’d“„ d“ƒZrG d”d•„ d•ƒZsG d–d—„ d—ƒZtG d˜d™„ d™ƒZuG dšd›„ d›evƒZwG dœd�„ d�ƒZxG dždŸ„ dŸƒZyd d¡„ Zzd¢d£„ Z{d¤d¥„ Z|ejL Md¦d§d¨d©dªd«d¬g¡ejL Md­ddgddgddgdddgdddggddgddggdgdggg¡d®d¯„ ƒƒZ}ejL Md­ddgddgddgdddgdddggddgddggdgdggg¡d°d±„ ƒZ~G d²d³„ d³ƒZG d´dµ„ dµƒZ€d¶d¶e �d¶d·ej‚  ¡ dd¸e �d¶d·ej‚  ¡ d¹dºe �d¶d·ej‚  ¡ d»d¼e �d¶d·ej‚  ¡ d½d¾e �d¶d·ej‚  ¡ g	fd¿e �d¶dÀej‚  ¡ddÁe �d¶dÀej‚  ¡ d¹dÂe �d¶dÀej‚  ¡ dÃ d»dÄe �d¶dÀej‚  ¡ dÅ d½dÆe �d¶dÀej‚  ¡ dÇ g	fdÈdÈe �d·ej‚ ¡ ddÉdÊe �d·ej‚ ¡  d¹dËdÌe �d·ej‚ ¡  d»dÍdÎe �d·ej‚ ¡  d½dÏdÐe �d·ej‚ ¡  dÑdÒdÓe �d·ej‚ ¡  dÔdÕdÖe �d·ej‚ ¡  d×gfgZƒG dØdÙ„ dÙƒZ„G dÚdÛ„ dÛƒZ…G dÜdÝ„ dÝƒZ†G dÞdß„ dßƒZ‡G dàdá„ dáƒZˆG dâdã„ dãƒZ‰G dädå„ dåƒZŠG dædç„ dçƒZ‹G dèdé„ déƒZŒG dêdë„ dëƒZ�G dìdí„ díƒZŽG dîdï„ dïƒZ�G dðdñ„ dñƒZ�G dòdó„ dóƒZ‘G dôdõ„ dõƒZ’G död÷„ d÷ƒZ“G dødù„ dùƒZ”G dúdû„ dûƒZ•düdý„ Z–G dþdÿ„ dÿƒZ—G �d �d„ �dƒZ˜G �d�d„ �dƒZ™G �d�d„ �dƒZšG �d�d„ �dƒZ›G �d�d	„ �d	ƒZœG �d
�d„ �dƒZ�G �d�d„ �dƒZžG �d�d„ �dƒZŸG �d�d„ �dƒZ G �d�d„ �dƒZ¡G �d�d„ �devƒZ¢G �d�d„ �dƒZ£G �d�d„ �dƒZ¤G �d�d„ �dƒZ¥G �d�d„ �dƒZ¦G �d�d„ �dƒZ§G �d �d!„ �d!ƒZ¨�d"�d#„ Z©�d$�d%„ Zª�d&�d'„ Z«�d(�d)„ Z¬ejLj­e@�d*�d+��d,�d-„ ƒZ®�d.�d/„ Z¯�d0�d1„ Z°�d2�d3„ Z±�d4�d5„ Z²�d6�d7„ Z³�d8�d9„ Z´�d:�d;„ Zµ�d<�d=„ Z¶�d>�d?„ Z·�d@�dA„ Z¸�dB�dC„ Z¹�dD�dE„ Zº�dF�dG„ Z»�dH�dI„ Z¼�dJ�dK„ Z½�dL�dM„ Z¾ejL M�dN�dO�dP�dQ�dR�dS�dTg¡�dU�dV„ ƒZ¿�dW�dX„ ZÀ�dY�dZ„ ZÁ�d[�d\„ ZÂ�d]�d^„ ZÃejL Ä�d_¡�d`�da„ ƒZÅ�db�dc„ ZÆejL M�ddd©e �de�dfg¡fd§e �dg�dhg¡fd¨e �di�djg¡fdªe �dk�dlg¡fg¡�dm�dn„ ƒZÇ�do�dp„ ZÈejL Ä�d_¡�dq�dr„ ƒZÉejL Ä�d_¡�ds�dt„ ƒZÊ�du�dv„ ZË�dw�dx„ ZÌ�dy�dz„ ZÍG �d{�d|„ �d|e(jÎƒZÏG �d}�d~„ �d~e(jÎƒZÐG �d�d€„ �d€e(jÎƒZÑG �d��d‚„ �d‚e(jÎƒZÒG �dƒ�d„„ �d„ƒZÓG �d…�d†„ �d†ƒZÔejLj­e@�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Ü�d˜�d™„ ZÝ�dš�d›„ ZÞ�dœ�d�„ Zß�dž�dŸ„ Zà�d �d¡„ Zá�d¢�d£„ ZâejL M�d¤�d¥�d¦�d§�d¨g¡�d©�dª„ ƒZãejL M�d«�d¬�d­g¡�d®�d¯„ ƒZäejL M�d°d¶d¶�d±�d²�d³�d´gf�dµ�d¶�d±�d²�d³�d´gf�d·�d¸dd¶d¹�dµd·gfg¡�d¹�dº„ ƒZå�d»�d¼„ Zæ�d½�d¾„ ZçejLj­ejè�d¿k�dÀ�d+��dÁ�dÂ„ ƒZéG �dÃ�dÄ„ �dÄƒZê�dÅ�dÆ„ ZëG �dÇ�dÈ„ �dÈƒZìG �dÉ�dÊ„ �dÊƒZíG �dË�dÌ„ �dÌƒZîG �dÍ�dÎ„ �dÎƒZï�dÏ�dÐ„ ZðejL M�dÑe5e2 ¡�dÒ�dÓ„ ƒZñ�dÔ�dÕ„ Zò�dÖ�d×„ ZóejL M�dØ�dÙ�dÚg¡�dÛ�dÜ„ ƒZôejL M�dÝ�dÞ�dß�dàg¡�dá�dâ„ ƒZõ�dã�dä„ Zö�då�dæ„ Z÷�dç�dè„ ZødS (ê  z!
Test functions for stats module
é    N)ÚPath)
Úassert_equalÚassert_array_equalÚassert_almost_equalÚassert_array_almost_equalÚassert_allcloseÚassert_Úassert_warnsÚassert_array_lessÚsuppress_warningsÚIS_PYPY)Ú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ÚdarwinÚx86_64ÚtukeylambdaÚpearson3c                 C   s*   |d krd| |f }t t| |ƒ|d� d S )Nz%s does not have attribute %s©Úmsg)r   Úhasattr)ÚaÚbr*   © r.   ú]/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/scipy/stats/tests/test_distributions.pyÚ_assert_hasattr4   s    r0   c                   C   s   t tjjdƒ d S )NZf_gen)r0   ÚscipyÚstatsÚdistributionsr.   r.   r.   r/   Útest_api_regression:   s    r4   c                 C   s8   t j| ||d�}t| |¡| |dtj |  ¡ƒ d S )N©ÚlocÚscaleé   )r2   Úvonmisesr   ÚpdfÚnumpyÚpi©ÚkÚLÚsÚxÚvmr.   r.   r/   Úcheck_vonmises_pdf_periodic?   s    rC   c                 C   s@   t j| ||d�}t| |¡d | |dtj |  ¡d ƒ d S )Nr5   r   r8   )r2   r9   r   Úcdfr;   r<   r=   r.   r.   r/   Úcheck_vonmises_cdf_periodicD   s    rE   c                  C   sp   t tjjjƒ} dd„ tD ƒ}dd„ tD ƒ}dddddg}|| | }t td	d
„ |ƒƒ}|  d¡ | |kslt	‚d S )Nc                 S   s   g | ]}|d  ‘qS ©r   r.   ©Ú.0Údistr.   r.   r/   Ú
<listcomp>K   s     z0test_distributions_submodule.<locals>.<listcomp>c                 S   s   g | ]}|d  ‘qS rF   r.   rG   r.   r.   r/   rJ   L   s     Úrv_discreteÚrv_continuousÚrv_histogramÚentropyÚtrapzc                 S   s   t | ƒ d¡ S )Nú<)ÚstrÚ
startswith©r@   r.   r.   r/   Ú<lambda>S   ó    z.test_distributions_submodule.<locals>.<lambda>Zgilbrat)
Úsetr1   r2   r3   Ú__all__r   r   ÚfilterÚremoveÚAssertionError)ÚactualZ
continuousZdiscreteÚotherÚexpectedr.   r.   r/   Útest_distributions_submoduleI   s     ÿ
r^   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   )r;   r<   rC   rE   )r>   rA   r.   r.   r/   Útest_vonmises_pdf_periodic[   s    rc   c                   C   s&   t tjjtj ƒ t tjjtjƒ d S ©N)r   r2   Zvonmises_liner,   Únpr<   r-   r.   r.   r.   r/   Útest_vonmises_line_supportg   s    rf   c                  C   s   t  d¡} t|  d¡dƒ d S )Né   r   ç      à?)r2   r9   r   rD   )rB   r.   r.   r/   Útest_vonmises_numericall   s    
ri   zx, kappa, expected_pdf)r_   ç{®Gáz„?g¿˜|65“Ä?)r_   ç      9@g¿õ?‡Uü?)r_   rg   g"µ³‰Ê?)ç       @rj   g™D˜ÎfIÄ?)rl   rk   g¾‹‰1ÝÎ<)rl   rg   ç        c                 C   s    t j | |¡}t||dd� d S ©NçVçž¯Ò<©Úrtol)r2   r9   r:   r   )rA   ÚkappaÚexpected_pdfr:   r.   r.   r/   Útest_vonmises_pdf{   s    rt   zkappa, expected_entropy)r   g³A¿Ö	ú?)é   g,äeÞžå?)rb   gBb9d22ì¿)éè  gÔÍÔû
G À)éÐ  gòÓ÷Àc                 C   s   t j | ¡}t||dd� d S )Nç‚vIhÂ%<=rp   )r2   r9   rN   r   )rr   Zexpected_entropyrN   r.   r.   r/   Útest_vonmises_entropy‘   s    ry   c                  C   s°   t tdƒƒ} tj | ¡}tj | ¡}tj | ¡}tjdddd�j|d�}tjddtj dd�j|d�}tjdddtj t |ƒ d d�j|d�}t	||dd� t	||dd� d S )	NZvon_mises_rvsr   r   r5   )Úrandom_stater8   ro   ©Úatol)
ÚabsÚhashre   ÚrandomÚdefault_rngr2   r9   Úrvsr<   r   )ÚseedZrng1Zrng2Zrng3Zrvs1Úrvs2Zrvs3r.   r.   r/   Útest_vonmises_rvs_gh4598œ   s    ÿÿr„   zx, kappa, expected_logpdf)r_   rj   g«EŸJ?ý¿)r_   rk   goðÎ¹›ïá?)r_   rg   g¢Î0á,ù¿)rl   rj   gdtåœyý¿)rl   rk   gÊ¹¬wð[AÀ)rl   rg   gÀÖú©‘Àc                 C   s    t j | |¡}t||dd� d S rn   )r2   r9   Úlogpdfr   )rA   rr   Zexpected_logpdfr…   r.   r.   r/   Útest_vonmises_logpdf­   s    r†   c                  C   s  t j d¡} |  d¡d \}}}tj||d� dd„ ¡}t|dƒ t  |jt j	¡sVt
‚||dt j  f}tj||d�jd	d„ f|žŽ }t|dƒ t  |jt j	¡s¤t
‚||dt j  f}tj||d�jd
d„ f|žddiŽ}tt  |¡|dt j  ƒ t  |jt j¡�s
t
‚dS )a  
    Test that the vonmises expectation values are
    computed correctly.  This test checks that the
    numeric integration estimates the correct normalization
    (1) and mean angle (loc).  These expectations are
    independent of the chosen 2pi interval.
    l   kD +xNÎn é   ra   )r6   rr   c                 S   s   dS ©Nr   r.   ©rA   r.   r.   r/   rT   Ä   rU   z&test_vonmises_expect.<locals>.<lambda>r   r8   c                 S   s   dS rˆ   r.   r‰   r.   r.   r/   rT   É   rU   c                 S   s   t  d|  ¡S )Ny              ð?)re   Úexpr‰   r.   r.   r/   rT   Î   rU   Zcomplex_funcN)re   r   r€   r2   r9   Úexpectr   Ú
issubdtypeÚdtypeZfloatingrZ   r<   ZangleZcomplexfloating)Úrngr6   rr   ÚlbÚresZboundsr.   r.   r/   Útest_vonmises_expect¹   s"    

ÿÿr‘   c                 K   sZ   | j |f|Ž}tt| ƒ| ƒj |f|Ž}|||ƒ}|||ƒ}||ksVtj||dd�sVt‚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.
    ro   rp   N)ÚfitÚsuperÚtypere   ÚallcloserZ   )rI   ÚdataÚfuncÚkwdsZmle_analyticalZnumerical_optZll_mle_analyticalZll_numerical_optr.   r.   r/   Ú_assert_less_or_close_loglikeÔ   s    

ÿr™   c              	   C   s2  ddg}| j r4t| j  d¡ƒ}|dddgd |… 7 }tt|t t|ƒ¡ƒƒ}ddd	g}tjt	d
d�� | j
|f|Ž W 5 Q R X tjtdd�� |  
tjg¡ W 5 Q R X tjtdd�� |  
tjg¡ W 5 Q R X tjtdd�� | j
|dd� W 5 Q R X tjtdd��$ | j
|fdgt|ƒd  žŽ  W 5 Q R X d S )NÚflocÚfscaleú,Úf0Úf1Úf2r   r8   r‡   z3All parameters fixed. There is nothing to optimize.©Úmatchz#The data contains non-finite valueszUnknown keyword arguments:)Zextra_keywordzToo many positional arguments.)ÚshapesÚlenÚsplitÚdictÚzipre   ÚarangeÚpytestr   ÚRuntimeErrorr’   Ú
ValueErrorÚnanÚinfÚ	TypeError)rI   ÚparamZnshapesZ	all_fixedr–   r.   r.   r/   Úassert_fit_warningsä   s,    
ÿÿÿr¯   rI   ÚalphaÚ	betaprimeÚfatiguelifeÚinvgammaÚinvgaussÚ
invweibullZ	johnsonsbÚlevyÚlevy_lÚlognormZgibratZpowerlognormÚrayleighZwaldc                 C   s†   t tƒ}||  }tt| ƒ} t| j| jf|žŽ dƒ t| j| jf|žŽ t	j
 ƒ t| j| jf|žŽ dƒ t| j| jf|žŽ t	j
 ƒ dS )zgh-6235r   N)r¥   r   Úgetattrr2   r   r:   r,   r   r…   re   r¬   r-   )rI   Ú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éÒ  ©re   r   r‚   ©Ú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 kƒ 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 kƒ d S )Nru   é   rb   ©Úsize©r8   é2   Ú
AllIntegeré   é.   r)   r‡   )r2   Úrandintr�   r   r;   Úallr£   Úshaper�   Úcharr   Ú
isinstanceZ
ScalarTypeÚreprr”   ©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   é$   ru   rÅ   ç{®Gáz¤?)r;   Úr_Úwherer2   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×   rb   rÅ   ru   ç      ð?ç      @r   rk   é   ©Údecimal)	re   Úlinspacer;   ÚfloorÚselectr2   rÍ   rD   r   )rÃ   rA   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 kƒ t j dd¡}tt
|tƒƒ t  dd¡ d¡}tt
|tjƒƒ t|jjt	d kƒ d S ©Nra   ç      è?rÈ   rÆ   r   rÊ   r‡   )r2   Úbinomr�   r   r;   rÎ   rÏ   r�   rÐ   r   rÑ   ÚintÚndarrayrÓ   r.   r.   r/   rÖ   0  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 )Nrb   r   r   rÞ   ro   ©rq   r|   )r2   rí   rÛ   r   )rÃ   Úvals1Úvals2r.   r.   r/   Útest_pmf;  s    zTestBinom.test_pmfc                 C   s~   t  dd¡}t dddg¡}tt||ƒƒ }| ¡ }t||ƒ t  dd¡}| ¡ }t|dƒ t  dd¡}| ¡ }t|dƒ d S )Nr8   rh   ç      Ð?rm   rÞ   )	r2   rí   re   r   Úsumr   rN   r   r   )rÃ   r-   Ú
expected_pÚ
expected_hÚhr.   r.   r/   Útest_entropyB  s    

zTestBinom.test_entropyc              	   C   sT   t  ¡ �B t  dt¡ ttjddd� ¡ dƒ ttjddd� ¡ dƒ W 5 Q R X d S )NÚerrorr8   r   ©ÚnÚp)	ÚwarningsÚcatch_warningsÚsimplefilterÚRuntimeWarningr   r2   rí   ÚmeanÚstdrÂ   r.   r.   r/   Útest_warns_p0R  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   )r2   Zarcsiner:   r   re   r¬   ©rÃ   rý   r.   r.   r/   Útest_endpoints\  s    zTestArcsine.test_endpointsN)rç   rè   ré   r  r.   r.   r.   r/   r  Z  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Ä   d  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 kƒ t j d¡}tt
|tƒƒ t  d¡ d¡}tt
|tjƒƒ t|jjt	d kƒ d S )Nrì   rÈ   rÆ   r   r   rÊ   r‡   )r2   Ú	bernoullir�   r   r;   rÎ   rÏ   r�   rÐ   r   rÑ   rî   rï   rÓ   r.   r.   r/   rÖ   g  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ì   rm   rÞ   )r2   r
  re   ÚlogrN   r   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	  c  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 )Nr_   éìÿÿÿéüÿÿÿ)re   Úlogspacer2   ZbradfordrD   Úppfr   )rÃ   ÚcrA   ÚqÚxxr.   r.   r/   Útest_cdf_ppf„  s
    zTestBradford.test_cdf_ppfN)rç   rè   ré   r  r.   r.   r.   r/   r  ‚  s   r  c                   @   s,   e Zd ZdZdZdd„ Zdd„ Zdd„ Zd	S )
ÚTestChig’nTßß9Ç;g2Â >h�?@c                 C   s"   t j dd¡}t|| jdd� d S )Nra   é   ro   rp   )r2   ÚchiÚsfr   ÚCHI_SF_10_4©rÃ   r@   r.   r.   r/   Útest_sf•  s    zTestChi.test_sfc                 C   s"   t j | jd¡}t|ddd� d S )Nr  ra   ro   rp   )r2   r  Úisfr  r   ©rÃ   rA   r.   r.   r/   Útest_isf™  s    zTestChi.test_isfc                 C   s"   t jjdd�}t|| jdd� d S )Nrv   )Údfçê-�™—q=rp   )r2   r  r  r   ÚCHI_MEAN_1000r  r.   r.   r/   Ú	test_mean�  s    zTestChi.test_meanN)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 )
Ú
TestNBinomc                 C   s   t j d¡ d S r¿   rÁ   rÂ   r.   r.   r/   rÄ   £  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 kƒ t j dd¡}tt
|tƒƒ t  dd¡ d¡}tt
|tjƒƒ t|jjt	d kƒ d S rë   )r2   Únbinomr�   r   r;   rÎ   rÏ   r�   rÐ   r   rÑ   rî   rï   rÓ   r.   r.   r/   rÖ   ¦  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Ñ  g¤p=
×£à?r   r   )	r   re   rŠ   r2   r%  ÚlogpmfrÛ   r1   r   )rÃ   rÕ   r.   r.   r/   ró   ±  s
    ÿzTestNBinom.test_pmfc                 C   sH   t jjddddgddd�}t t jjddddgddd�¡}t||ƒ d S )Nr   ru   ç333333@çÍÌÌÌÌÌÜ?rû   )r2   r%  Úlogcdfre   r  rD   r   )rÃ   rÔ   Úrefr.   r.   r/   Útest_logcdf_gh16159¹  s     zTestNBinom.test_logcdf_gh16159N)rç   rè   ré   rÄ   rÖ   ró   r+  r.   r.   r.   r/   r$  ¢  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Ä   Á  s    zTestGenInvGauss.setup_methodc                 C   s:   t  dd¡}t  |jddd�|j¡\}}t|dkdƒ d S )Nçffffff@ç      ø?éÜ  rÀ   ©rÇ   rz   çš™™™™™©?T©r2   ÚgeninvgaussÚkstestr�   rD   r   ©rÃ   ÚgigÚ_rý   r.   r.   r/   Útest_rvs_with_mode_shiftÄ  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À   r0  r1  Tr2  r5  r.   r.   r/   Útest_rvs_without_mode_shiftË  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 )Nr_   çš™™™™™É?r/  rÀ   r0  r1  Tr2  r5  r.   r.   r/   Útest_rvs_new_methodÒ  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À   r0  r   r1  )r2   r3  r�   r4  rD   )rý   r-   r6  r�   r.   r.   r/   Úmy_ks_checkÛ  s    z4TestGenInvGauss.test_rvs_p_zero.<locals>.my_ks_checkr   r;  Tr9  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ç      ø¿r8   ra   rÀ   r0  r   r.  )r   r2   r3  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-   rz   r´   ©r¼   ç333333Ã?Trb   rj   ra   )rý   r-   r7   )r2   r3  r�   r   r4  re   rã   r:   r   r´   rD   )rÃ   ZigÚmurA   Zpdf_igZcdf_igr.   r.   r/   Útest_invgaussê  s     zTestGenInvGauss.test_invgaussc                 C   sF   t  ddddddddd	d
g
¡}t  ddd¡}t|tj |dd¡ƒ d S )Ng»¡ú§£;gé8y8ºÜ?g›É\}Zü×?g¯hÜ²<Ñ?g&KµhddÈ?g7·!…LÁ?g	C³õf«¸?g_ñ—è¯±?g>ó0èÅ|©?gÑô©ûRq¢?rj   ru   ra   rh   r   )re   r   rã   r   r2   r3  r:   )rÃ   Úvals_RrA   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   rh   g    €„>ArÉ   r8   )r   r2   r3  r:   rÂ   r.   r.   r/   Útest_pdf_zero   s    zTestGenInvGauss.test_pdf_zeroN)rç   rè   ré   rÄ   r¨   ÚmarkÚslowr8  r:  r<  r>  r@  rE  rG  rH  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 )ÚTestGenHyperbolicc                 C   s   t j d¡ d S r¿   rÁ   rÂ   r.   r.   r/   rÄ   	  s    zTestGenHyperbolic.setup_methodc           
      C   s|   t  ddddddddd	d
g
¡}d\}}}d\}}||| || f}tj|||dœŽ}t  ddd¡}	t| |	¡|ddd� d S )NgóÁF^ÀT=g{XâŠ'è=gNunÆ¢sy>g7!±tè?g½É«zÙI…?gÏèÌ¸©ÔÎ?g�í º×Ä?gqá6.£?gmPèàZz?gÝÎ:PgÝN?©r8   r8   r   ©rh   r.  r5   éöÿÿÿra   r   rx   ©r|   rq   )re   r   r2   Úgenhyperbolicrã   r   r:   ©
rÃ   rF  Úlmbdar°   ÚbetarD  Údeltar¼   ÚghrA   r.   r.   r/   Ú
test_pdf_r  s$          ü
zTestGenHyperbolic.test_pdf_rc           
      C   s|   t  ddddddddd	d
g
¡}d\}}}d\}}||| || f}tj|||dœŽ}t  ddd¡}	t| |	¡|ddd� d S )Ng=R0¢W­<=gªEBº‚ÞÐ=gˆ#N¢b>g_¹P¦±Gð>g!æÚ 1Or?g¡U¥°ÀMÍ?g� óu./è?gfÁêyî?gl5ûè\Ãï?g¸kµ‘V÷ï?rL  rM  r5   rN  ra   r   ç�íµ ÷Æ°>rO  )re   r   r2   rP  rã   r   rD   rQ  r.   r.   r/   Ú
test_cdf_r"  s$          ü
zTestGenHyperbolic.test_cdf_rc                    s`   ddddg}d\}}}d\‰‰||ˆ |ˆ f‰ ‡ ‡‡fdd„t d	d
ƒD ƒ}t||ddd� d S )Ng¾@ì�§ò@g¾@ì�§ò @gÎðÿÜŠñB@gvGîÄƒ¸i@rL  rM  c                    s$   g | ]}t jˆ ˆˆd œŽ |¡‘qS )r5   )r2   rP  Úmoment)rH   Úi©r¼   rT  rD  r.   r/   rJ   H  s   ÿz4TestGenHyperbolic.test_moments_r.<locals>.<listcomp>r   ru   r   rx   rO  )Úranger   )rÃ   rF  rR  r°   rS  Zvals_usr.   r[  r/   Útest_moments_r8  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 )	NrL  rM  r5   r/  rÀ   r0  r1  T)r2   rP  r4  r�   rD   r   )
rÃ   rR  r°   rS  rD  rT  r¼   rU  r7  rý   r.   r.   r/   rÖ   O  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Å   ra   r8   r   r5   rj   ç®Gáz®ï?rÉ   rW  rO  )re   rã   Úfloat_powerÚfinfoÚfloat32ÚepsÚsqrtr2   rP  r  Únewaxisr   r:   Út)	rÃ   r   r°   rS  rD  rT  r¼   rU  rA   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 )
NrA  r   )r   r   r5   rj   r^  rÉ   rW  rO  )re   r`  ra  rb  r2   rP  rã   r  rd  r   r:   Úcauchy)	rÃ   rR  r°   rS  rD  rT  r¼   rU  rA   r.   r.   r/   Útest_pdf_cauchyn  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 )NrN  ra   )r   r   r   r5   r  é   rÉ   r   r   ç•dyáý¥=rO  )re   rã   r`  ra  rb  r2   rP  rd  r   r:   Úlaplace)	rÃ   r6   rT  rR  r°   rS  r¼   rU  rA   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   ri  ra   r   é   éÿÿÿÿéœÿÿÿrb   rA  r5   rj   r^  rÉ   )r,   r-   r6   r7   rx   rO  )re   rã   r_  r\  r2   rP  r  rd  r   r:   Únorminvgauss)	rÃ   r°   rS  rT  rD  rR  r¼   rU  rA   r.   r.   r/   Útest_pdf_norminvgauss”  s*    ü(     ÿ ýz'TestGenHyperbolic.test_pdf_norminvgaussN)rç   rè   ré   rÄ   rV  rX  r]  rÖ   rf  rh  rl  rq  r.   r.   r.   r/   rK    s   rK  c                   @   sb   e Zd Zdd„ Zdd„ Zdd„ Zej ddd	d
dg¡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Ä   ¬  s    zTestNormInvGauss.setup_methodc                 C   sL   t  dddddg¡}t  dddd	d
g¡}tjj|ddd�}t||dd� d S )Ngp~Ù§ñõª>g @çXú>g}âï„eÔ?g{Á)ß³öï?gwöØHàÿï?éùÿÿÿéûÿÿÿr   é   rË   r   rh   ©r,   r-   ç•Ö&è.>r{   )re   r   r2   rp  rD   r   )rÃ   Zr_cdfÚx_testÚvals_cdfr.   r.   r/   Ú
test_cdf_R¯  s    
 ÿzTestNormInvGauss.test_cdf_Rc                 C   sL   t  dddddg¡}t  dddd	d
g¡}tjj|ddd�}t||dd� d S )Ng»ÞpÏ¶>g\H“55$?geÐ¡tï&Ý?go N‹ëiH?g‹]”uÁ³â>rs  rt  r   ru  rË   r   rh   rv  rw  r{   )re   r   r2   rp  r:   r   )rÃ   Zr_pdfrx  Zvals_pdfr.   r.   r/   rG  »  s    
 ÿzTestNormInvGauss.test_pdf_Rzx, a, b, sf, rtol)rn  r   r   çí!7èì?rx   )é   r   r   çÌ�ÏùÛ?=ç-Cëâ6?)r   ru   r?  gœÈy5î`?r!  )ra   ru   r?  gí²MöLCý9rw  c                 C   s@   t j |||¡}t|||d� t j |||¡}t|||d� d S ©Nrp   ©r2   rp  r  r   r  )rÃ   rA   r,   r-   r  rq   r@   rZ  r.   r.   r/   Útest_sf_isf_mpmathÃ  s    &z#TestNormInvGauss.test_sf_isf_mpmathc                 C   s^   ddg}ddg}d}ddg}t j |||¡}t||ddd	� t j |||¡}t||d
d� d S )Nrn  r|  r   r   r{  r}  rx   ç¼‰Ø—²Òœ<rð   rW  rp   r€  )rÃ   rA   r,   r-   r  r@   rZ  r.   r.   r/   Útest_sf_isf_mpmath_vectorizedî  s    z.TestNormInvGauss.test_sf_isf_mpmath_vectorizedc                 C   s<   t  dd¡}t ddd¡}| |¡}| |¡}t||ƒ d S )Nr   r   ri  r8   )r2   rp  re   r§   r  r  r   )rÃ   ÚdstrA   r  r  r.   r.   r/   Útest_gh8718ù  s
    

zTestNormInvGauss.test_gh8718c                 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   rh   r8   r‡   ç      @r   r  Úmvsk©Úmoments)re   rc  r   r2   rp  )rÃ   r,   r-   ÚgammaZv_statsr.   r.   r/   Ú
test_stats  s    (ÿzTestNormInvGauss.test_statsc                 C   sB   d\}}t  dddg¡}tj |||¡}t|tj |||¡ƒ d S )Nr†  çü©ñÒMbP?rh   ç+‡ÙÎ÷ï?)re   r   r2   rp  r  r   rD   )rÃ   r,   r-   rx  rÔ   r.   r.   r/   Útest_ppf  s    zTestNormInvGauss.test_ppfN)rç   rè   ré   rÄ   rz  rG  r¨   rI  Úparametrizer�  rƒ  r…  rŒ  r�  r.   r.   r.   r/   rr  «  s   ýÿ
&rr  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 )ÚTestGeomc                 C   s   t j d¡ d S r¿   rÁ   rÂ   r.   r.   r/   rÄ     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 kƒ t j d¡}tt
|tƒƒ t  d¡ d¡}tt
|tjƒƒ t|jjt	d kƒ d S )Nrì   rÈ   rÆ   r   rÊ   r‡   )r2   Úgeomr�   r   r;   rÎ   rÏ   r�   rÐ   r   rÑ   rî   rï   rÓ   r.   r.   r/   rÖ     s    zTestGeom.test_rvsc                 C   sT   t j d¡}tjjt  d¡d|d�}|jt jks4t	‚t  
|t  t j¡jk¡sPt	‚d S )Nl   à¦AÚ: iÝÿÿÿru   r0  )re   r   r€   r2   r’  r�   rŠ   r�   Zint64rZ   rÎ   ZiinfoZint32Úmax)rÃ   rŽ   r�   r.   r.   r/   Útest_rvs_9313  s    zTestGeom.test_rvs_9313c                 C   s(   t j dddgd¡}t|dddgƒ d S )Nr   r8   r‡   rh   rô   ç      À?)r2   r’  rÛ   r   ©rÃ   rÔ   r.   r.   r/   ró   '  s    zTestGeom.test_pmfc                 C   sZ   t  tj dddgd¡¡}tj dddgd¡}t||ddd� tj dd¡}t|dƒ d S )	Nr   r8   r‡   rh   ro   r   rð   rm   )re   r  r2   r’  rÛ   r&  r   r   )rÃ   rñ   rò   rÕ   r.   r.   r/   Útest_logpmf+  s
    zTestGeom.test_logpmfc                 C   sR   t j dddgd¡}t j dddgd¡}tdddgƒ}t||ƒ t|d| ƒ d S ©Nr   r8   r‡   rh   rì   ç      ì?)r2   r’  rD   r  r   r   ©rÃ   rÔ   Úvals_sfr]   r.   r.   r/   Útest_cdf_sf5  s
    
zTestGeom.test_cdf_sfc                 C   s\   t j dddgd¡}t j dddgd¡}tdddgƒ}t|t |¡ƒ t|t | ¡ƒ d S r˜  )	r2   r’  r)  Úlogsfr   r   re   r  Úlog1prš  r.   r.   r/   Útest_logcdf_logsf<  s
    zTestGeom.test_logcdf_logsfc                 C   s0   t j dddgd¡}tdddgƒ}t||ƒ d S )Nrh   rì   r™  rÞ   rl   r‡  )r2   r’  r  r   r   ©rÃ   rÔ   r]   r.   r.   r/   r�  C  s    zTestGeom.test_ppfc                 C   s   t tj dd¡ddd� d S )Nç#B’¡œÇ;rÞ   ç›+¡†›„=r{   )r   r2   r’  r  rÂ   r.   r.   r/   Útest_ppf_underflowH  s    zTestGeom.test_ppf_underflowN)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 )Ú
TestPlanckc                 C   s   t j d¡ d S r¿   rÁ   rÂ   r.   r.   r/   rÄ   N  s    zTestPlanck.setup_methodc                 C   s0   t j dddgd¡}tdddgƒ}t||ƒ d S )Nr   r8   r‡   rß   g›|dµyÍ?g8ì'¢\‡”>ggróU†´!>)r2   Úplanckr  r   r   r   r.   r.   r/   r  Q  s    þzTestPlanck.test_sfc                 C   s0   t j dddgd¡}tdddgƒ}t||ƒ d S )Nç     @�@ç     @Ÿ@ç     p§@g    PŒ.Ág    hˆ>Ág    TåFÁ)r2   r¥  r�  r   r   r   r.   r.   r/   Ú
test_logsfX  s    zTestPlanck.test_logsfN)rç   rè   ré   rÄ   r  r©  r.   r.   r.   r/   r¤  M  s   r¤  c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestGennormc                 C   s2   dddg}t j |d¡}t j |¡}t||ƒ d S ©Nr   r8   r‡   )r2   Úgennormr:   rk  r   ©rÃ   ÚpointsÚpdf1Úpdf2r.   r.   r/   Útest_laplace_  s    
zTestGennorm.test_laplacec                 C   s6   dddg}t j |d¡}t jj|dd�}t||ƒ d S ©Nr   r8   r‡   gÍ;fž æ?©r7   )r2   r¬  r:   Únormr   r­  r.   r.   r/   Ú	test_normf  s    
zTestGennorm.test_normc                 C   s´   t j d¡ t d¡}|jdd�}t ||j¡jdks:t	‚t d¡}|jdd�}tj
jdd�}t ||¡jdkstt	‚t d¡}|jdd�}tjjddd	�}t ||¡jdks°t	‚d S )
Nr   rh   rv   rÆ   r_   r   r8   gÌ;fž æ?)r7   rÇ   )re   r   r‚   r2   r¬  r�   r4  rD   ZpvaluerZ   rk  Zks_2sampr´  )rÃ   rI   r�   Zrvs_laplaceZrvs_normr.   r.   r/   rÖ   m  s    


zTestGennorm.test_rvsc                 C   sð   t j d¡ t ddgddgg¡}|jdddgd�}t |d d …ddf t d¡j¡d	 d
ksbt‚t |d d …dd	f t d¡j¡d	 d
ks�t‚t |d d …d	df t d¡j¡d	 d
ks¾t‚t |d d …d	d	f t d¡j¡d	 d
ksìt‚d S )Nr   rh   rÞ   rl   rß   rv   r8   rÆ   r   r_   )	re   r   r‚   r2   r¬  r�   r4  rD   rZ   )rÃ   rI   r�   r.   r.   r/   Útest_rvs_broadcasting~  s    ...z!TestGennorm.test_rvs_broadcastingN)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 )ÚTestHalfgennormc                 C   s2   dddg}t j |d¡}t j |¡}t||ƒ d S r«  )r2   Úhalfgennormr:   Úexponr   r­  r.   r.   r/   Ú
test_expon‰  s    
zTestHalfgennorm.test_exponc                 C   s6   dddg}t j |d¡}t jj|dd�}t||ƒ d S r²  )r2   r¸  r:   Zhalfnormr   r­  r.   r.   r/   Útest_halfnorm�  s    
zTestHalfgennorm.test_halfnormc                 C   s8   dddg}t j |d¡}t j |d¡}t|d| ƒ d S )Nr   r8   r‡   g’á
(Ôß?)r2   r¸  r:   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   s8   t  dddg¡}tj |d¡}tj |¡}t||ƒ d S r«  )re   r   r2   Úlaplace_asymmetricr:   rk  r   r­  r.   r.   r/   r±     s    z"TestLaplaceasymmetric.test_laplacec                 C   sN   t  dddg¡}d}d| }tj ||¡}tj ||d  |¡}t||ƒ d S r«  )re   r   r2   r¾  r:   r   )rÃ   r®  rr   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é   ra   r8   r_   gü©ñÒMbp?r;  gV-²�ïï?çš™™™™™é?gü©ñÒMb`?)re   r   r  r2   r¾  r:   rD   r  r  r  r   Úconcatenate)rÃ   r®  rr   r¯  Úcdf1Zsf1r°  Ú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„ Z
dEdd„Zddddddgddddddgddddddgdd dd!dd"gd#ejd$d%d&d'gej d#d(d%d)d'gd*dd+d,d-d.gdd/d0d,d1d.gdd2d3d4d5d6gg	Ze e¡Zej d7e¡d8d9„ ƒZd:d;„ Zd<d=„ Zd>d?„ Zd@dA„ ZdBdC„ ZdDS )FÚTestTruncnormc                 C   s   t j d¡ d S r¿   rÁ   rÂ   r.   r.   r/   rÄ   Ã  s    zTestTruncnorm.setup_methodc              	   C   sT   t jjdddddddgdd	d
gd dd�}t tjddd
ddtjg¡}t||ƒ d S )NrA  r   r~  rh   ç§èH.ÿï?r   r8   ç      ð¿rÞ   r‡   é   r5   çf”™˜Oð?çæšÙlÿ@ru   )r2   Ú	truncnormr  re   r   r«   r   r   r.   r.   r/   Útest_ppf_ticket1131Æ  s     ÿz!TestTruncnorm.test_ppf_ticket1131c              	   C   sT   t jjdddddddgdd	d
gd dd�}t tjddd
ddtjg¡}t||ƒ d S )NrA  r   r~  rh   rÇ  r   r8   rÈ  rÞ   r‡   rÉ  r5   ru   rË  rÊ  )r2   rÌ  r  re   r   r«   r   r   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)iõÿÿÿrN  r   r   ra   rÆ   )ra   é   ©r2   rÌ  r�   r   Úminr“  ©rÃ   ÚlowÚhighrA   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)rb   r`   r   r   ra   rÆ   )rv   éé  )é'  i'  )iïØÿÿéðØÿÿ)r2   rÌ  r�   r   rÑ  r“  rQ   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  ddddg¡}t  ddd	d	g¡}	t  dd
ddg¡}
|dk r¾t  ddd
dg¡}
t||ƒ t||	ƒ t||
ƒ tt  	|
d |
d  ¡|d ƒ t  dddg¡}tj 
|||¡}t  |t  |¡d |g¡}t||ƒ |dk �rxt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  éýÿÿÿrl   r   r   rÞ   rm   gd._MTå
@gBŠKŸgý¹?r8   rh   gÓÄ–y–	@g¶d¥v*ë?g,mj%VƒÃ?rô   )re   r   r¬   r2   rÌ  rD   r  r:   r   r  r  Úsign)rÃ   rÓ  rÔ  ÚxvalsÚxmidÚcdfsÚsfsÚpdfsÚexpected_cdfsÚexpected_sfsÚexpected_pdfsÚpvalsÚppfsÚexpected_ppfsr:   r.   r.   r/   Útest_gh_9403_nontail_valuesï  sH    


ÿ

ÿÿÿÿz)TestTruncnorm.test_gh_9403_nontail_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  ddddg¡}t  ddd	d	g¡}	t  dd
ddg¡}
|dk r¾t  ddd
dg¡}
t||ƒ t||	ƒ t||
ƒ tt  	|
d |
d  ¡|d ƒ t  dddg¡}tj 
|||¡}t  |t  |¡d |g¡}t||ƒ tj |||¡}t||ƒ |dk �r’t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é'   é(   éØÿÿÿiÙÿÿÿrl   r   r   rÞ   rm   gŽÄpGƒC@g˜F—f²³<r8   rh   gƒÛßE‚C@g iþÿÿï?gspXäio)>rô   rÏ  rn  )re   r   r¬   r2   rÌ  rD   r  r:   r   r  r  rÛ  rã   )rÃ   rÓ  rÔ  rÜ  rÝ  rÞ  rß  rà  rá  râ  rã  rä  rå  ræ  r:   Zxvals2r.   r.   r/   Útest_gh_9403_medium_tail_values  sh     ÿ


ÿ


ÿÿÿÿ ÿÿÿz-TestTruncnorm.test_gh_9403_medium_tail_valuesc                 C   s6   t t dd¡ d¡dƒ t t dtj¡ d¡dƒ d S )Ng      *@g      .@ç      ,@g³Í Týÿï?ru  gš™™™™™ @g±•‰´‚Rí?)r   r2   rÌ  rD   re   r¬   rÂ   r.   r.   r/   Útest_cdf_tail_15110_14753A  s    ÿÿz'TestTruncnorm.test_cdf_tail_15110_14753çH¯¼šò×z>c                 C   sb   |d d… \}}}}t jj ||dd�\}	}
}}t|	|ƒ t|
|ƒ t|||d� t|||d� d S )Nr  rˆ  r‰  rp   ©r2   rÌ  r   )rÃ   r,   r-   r]   rq   Úm0Úv0Ús0Úk0ÚmÚvr@   r>   r.   r.   r/   Ú_test_moments_one_rangeK  s    

z%TestTruncnorm._test_moments_one_rangeéâÿÿÿrÅ   rm   rÞ   rN  ra   g“LúFu¼rÚ  r‡   gMFmz“%ï?gÔîçÅ¿éþÿÿÿr8   ghöI}Âè?gHNñ…Mä¿r   gQ6Ô3Eˆé?gûnl$ŸA×?gr¿1"DÙï?gK8­ëLÐë?gQ6Ô3Eˆé¿gr¿1"DÙï¿rn  gªƒUê*Ò?g† bßn·ã?gìn»óõAá?g?c3ÃTXÊ¿r   gªƒUê*Ò¿gìn»óõAá¿é÷ÿÿÿg"$•‡7"ÀgO¨´xr‡?gpì7�`þ¿gš–'>K@Úcasec                 C   sL   |\}}}}}}t jj ||dd�\}}	}
}t||	|
|g||||gdd� d S )Nrˆ  r‰  ç—ÔFFõg<r{   rï  )rÃ   rú  r,   r-   rð  rñ  rò  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×?)r2   rÌ  re   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)ra   rË   r   r   ra   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szt‚tt  	||j
dd�k¡ƒ tt  	|jdd�|k¡ƒ d S )NrN  ra   rt  iÓÿÿÿré  rÏ  ru   rê  é-   rÆ   r   )Zaxis)re   r¬   r2   rÌ  r�   r£   rÏ   rZ   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 )Nr€   rN  rt  ru   r0  )r+   re   r   r2   rÌ  r�   r€   rÂ   r.   r.   r/   Útest_rvs_Generator—  s    ÿz TestTruncnorm.test_rvs_Generatorc                 C   s–   t  t j t j dt j dg¡}t  t jt jddt jg¡}t  dddddg¡}ddd	d
dg}tt ||¡ |¡|ƒ tt | | ¡ | ¡|ƒ d S )Néøÿÿÿra   ru  ç      @é	   ri  g±Oèul"»gÚ�»=�ö!½g†L—òçœ!½g>EG	f§ ¼gõ^½K[X²)re   r   r¬   r   r2   rÌ  r)  r�  )rÃ   r,   r-   rA   r]   r.   r.   r/   Útest_logcdf_gh17064�  s      þz!TestTruncnorm.test_logcdf_gh17064N)rî  )rç   rè   ré   rÄ   rÍ  rÎ  rÕ  rÙ  rç  rë  rí  rö  re   r¬   Z_truncnorm_stats_datar   r¨   rI  r�  rü  rþ  rÿ  r  r  r  r.   r.   r.   r/   rÆ  Â  s�   
#/

   ÿ   ÿ   ÿ   ÿüüüüüã#


rÆ  c                   @   s,   e Zd Zej ddddddg¡dd„ ƒZd	S )
ÚTestGenLogisticúx, expected)iüÿÿg4ÁÍ`n—À)iƒÿÿÿg4 	ncgÀ)r   gXâˆÃ
=õ¿)rb   gh@ÜæXÀ)rv   gh‚›Á<�Àc                 C   s$   d}t j ||¡}t||dd� d S )Nr.  rx   rp   )r2   Zgenlogisticr…   r   )rÃ   rA   r]   r  Úlogpr.   r.   r/   Útest_logpdf¬  s    zTestGenLogistic.test_logpdfN)rç   rè   ré   r¨   rI  r�  r
  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 kƒ t j ddd¡}tt
|tƒƒ t  ddd¡ d¡}tt
|tjƒƒ t|jjt	d kƒ d S )Nri  ra   r‡   rÈ   rÆ   r   rÊ   )r2   Ú	hypergeomr�   r   r;   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É   éô  r8   gÐk¸ã…’P?rÏ  )r2   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   r8   r   rÞ   rÏ  rm   )r   r2   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Å   i¾oÌ i  if0  rÞ   )r   r2   r  rD   rÂ   r.   r.   r/   Útest_cdf_above_oneÚ  s    z TestHypergeom.test_cdf_above_onec              	      s¨   d‰ d‰t  ddddddd	g¡d
 }d‰‡ ‡‡fdd„|D ƒ}t  dddddddg¡}t||ddd� ddddg}tj |ˆ ˆ ˆ d¡}ddddg}t||ddd� d S )Ng    €+ø@g     Ûú@r‡   çffffff@ç333333@r  gffffff@gÍÌÌÌÌÌ@ru   ç     ˆÃ@g     ˆÓ@c                    s"   g | ]}t j ˆˆ ˆ ˆ |¡‘qS r.   )r2   r  r  )rH   Zeaten©ZorangesZpearsÚquantiler.   r/   rJ   å  s   ÿz1TestHypergeom.test_precision2.<locals>.<listcomp>r   gpóˆ¶ÁÁR(gá»ã˜�R2gJÏÞ± p9g?ï§Mf¸Ö=gÊ
�Gº°¿?r   g�íµ ÷Æ >rO  g     ŽÒ@g     ‚Ô@g     ÿÔ@g     ‚ä@gò‘ÃÖ)9g­Áå"Ÿ¶1)re   r   r   r2   r  r  )rÃ   Zfruits_eatenr�   r]   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ô   rm   )	r2   r  rN   re   r   rõ   r   r   r   )rÃ   Ú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   é@  éX  é,  g_7ß	j$æ±rË   )r2   r  r�  r   ©rÃ   r>   r  rü   r  Úresultr]   r.   r.   r/   r©  ý  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 dddg¡}d	}d
}d}t j ||||¡}t dd¡}t||dd� d S )Nr   r  r  r  g)\�ÂU™´Àr‡   rá   ré  r  rÉ   r   g*ì³@ÝV»rË   é}   éú   r  g›äáŽ×¨’½)r2   r  r)  r   re   r   Úfullr!  r.   r.   r/   Útest_logcdf  s8    zTestHypergeom.test_logcdfN)rç   rè   ré   rÄ   rÖ   r  r  r  r  rù   r©  r&  r.   r.   r.   r/   r  ·  s   
	r  c                   @   sP   e Zd Zej dddg¡dd„ ƒZdd„ Zdd	„ Zej d
ddg¡dd„ ƒZ	dS )ÚTestLoggammazx, c, sf)r  r.  gQOuÁ3;)é   rb   g\Z{°¡Â0c                 C   s<   t j ||¡}t||dd� t j ||¡}t||dd� d S )Nr!  rp   )r2   Úloggammar  r   r  )rÃ   rA   r  r  r@   Úyr.   r.   r/   Útest_sf_isfK  s    zTestLoggamma.test_sf_isfc                 C   s    t j dd¡}t|ddd� d S )Niþÿÿr8   g     @�Àr¢  rp   )r2   r)  r…   r   )rÃ   Úlpr.   r.   r/   r
  S  s    zTestLoggamma.test_logpdfc                 C   sn   t  ddddddddd	d
dddddg¡ dd¡}|D ]4\}}}}}tjj|dd�}t|||||gdd� q4d S )Nrh   gÑ"Ûù~jÿ¿g46<½@g o�Å�ø¿ç      @rÞ   gÕ	h"lxâ¿gá“©‚Qú?g¬Zd;ò¿ç333333@g      (@g{ƒ/L¦Š@g¼?¶?gÐ³Yõ¹ÚÒ¿gh‘í|?5Æ?rn  ru   Zmsvkr‰  r  rá   )re   r   Úreshaper2   r)  r   )rÃ   Útabler  r  ÚvarÚskewZkurtÚcomputedr.   r.   r/   rŒ  [  s2                ü ûÿzTestLoggamma.test_statsr  r_   r�  c                 C   sv   t jj|dd�}t |¡ ¡ s"t‚t j |¡}t  t 	||k ¡t
|ƒ¡}|jdd�}|jd  k rl|jk srn t‚d S )Né † rÆ   rŽ  )Zconfidence_levelrh   )r2   r)  r�   re   ÚisfiniterÎ   rZ   ÚmedianZ	binomtestZcount_nonzeror£   Zproportion_cirÓ  rÔ  )rÃ   r  rA   ZmedZbtestÚcir.   r.   r/   rÖ   j  s    zTestLoggamma.test_rvsN)
rç   rè   ré   r¨   rI  r�  r+  r
  rŒ  rÖ   r.   r.   r.   r/   r'  D  s   
ÿ
r'  c                   @   sp   e Z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dd„ Zej	 
dddg¡dd„ ƒZdS )ÚTestLogisticc                 C   s2   t  dd¡}tj |¡}tj |¡}t||ƒ d S ©Nr  ri  )re   rã   r2   ÚlogisticrD   r  r   ©rÃ   rA   r*  r  r.   r.   r/   r  {  s    zTestLogistic.test_cdf_ppfc                 C   s2   t  dd¡}tj |¡}tj |¡}t||ƒ d S r9  )re   rã   r2   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      Ò<gÉg|ÓEA@r   )r   r2   r:  r  r  )rÃ   rý   Zdesiredr.   r.   r/   Útest_extreme_values‡  s    z TestLogistic.test_extreme_valuesc                 C   s.   t j dddg¡}dddg}t||dd� d S )	Niñÿÿÿr   ra   gm\‡  .Àgï9úþB.ö¿gO&«æ $Àrx   rp   )r2   r:  r…   r   )rÃ   r	  r]   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 )Nrg   éàüÿÿ)r2   r:  r…   r   ©rÃ   r	  r.   r.   r/   Útest_logpdf_extreme_values–  s    z'TestLogistic.test_logpdf_extreme_valueszloc_rvs,scale_rvs)g�Í9x&´Ü?gi¤ ²'º?)gêÕB"ä?gÕs¹^&Ìç?c                 C   sR   t jjd||d�}dd„ }t|t j |¡|fd�j}t j |¡}t||dd� d S )Nrb   ©rÇ   r6   r7   c                 S   s�   | \}}t |ƒ}t t || | ¡dt || | ¡  ¡|d  }t || | t || | ¡d t || | ¡d   ¡| }||fS ©Nr   r8   )r£   re   rõ   rŠ   )Úinputr–   r,   r-   rü   Úx1Úx2r.   r.   r/   r—   ¢  s    ÿÿÿÿþz#TestLogistic.test_fit.<locals>.funcrB  g ÂëþKH´9r{   )r2   r:  r�   r"   Ú	_fitstartrA   r’   r   )rÃ   Úloc_rvsÚ	scale_rvsr–   r—   Zexpected_solutionZ
fit_methodr.   r.   r/   Útest_fitœ  s    
ÿ
zTestLogistic.test_fitc                 C   sl   t jjdddd�}|t j |¡fg}t j |i ¡d }tt j||ƒ tt j||dd� tt j||dd� d S )Nrb   rh   r8   rA  r   ©rš   ©r›   )r2   r:  r�   rF  Ú_reduce_funcr™   )rÃ   r–   r¼   r—   r.   r.   r/   Útest_fit_comp_optimizer´  s    z$TestLogistic.test_fit_comp_optimizerÚ
testlogcdfTFc                 C   sT   t  dddddg¡}|r&tj |¡}ntj | ¡}dddd	d
g}t||dd� d S )NrØ  r>  é   rÉ   r  ç     ˆÃÀg      ‰Àg%h¢ã9f¾g?~T}%m»g�CÔx^&Ù’gVçž¯â<rp   )re   r   r2   r:  r)  r�  r   )rÃ   rN  rA   r*  r]   r.   r.   r/   Útest_logcdfsf_tails¿  s     ÿz TestLogistic.test_logcdfsf_tailsN)rç   rè   ré   r  r+  r<  r=  r@  r¨   rI  r�  rI  rM  rQ  r.   r.   r.   r/   r8  y  s   
ÿ
r8  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 kƒ t j d¡}tt
|tƒƒ t  d¡ d¡}tt
|tjƒƒ t|jjt	d kƒ d S )Nrì   rÈ   rÆ   r   rÊ   r‡   )r2   Úlogserr�   r   r;   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  r¡  g&¦¬ª¶Y3)r2   rS  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ç:Œ0âŽyE>gî˜W  ð?)r2   rS  r  r   rT  r.   r.   r/   Útest_mean_small_pë  s    zTestLogser.test_mean_small_pN)rç   rè   ré   rÄ   rÖ   rU  rW  r.   r.   r.   r/   rR  Î  s   rR  c                	   @   s¦   e Zd Zejdd�dd„ ƒZej dej	ej
g¡ej dddd	g¡ej d
dd	dg¡ej dddgddgf¡dd„ ƒƒƒƒZej dej	d	fej
dfg¡dd„ ƒZdS )ÚTestGumbel_r_lÚfunction©Úscopec                 C   s   t j d¡S r¿   ©re   r   r€   rÂ   r.   r.   r/   rŽ   ÷  s    zTestGumbel_r_l.rngrI   rG  rn  r   r   rH  r_   ru   zfix_loc, fix_scaleTFc                 C   sl   |j d|||d�}|| |¡fg}| |i ¡d }	tƒ }
|rH|d |
d< |rX|d |
d< t|||	f|
Ž d S )Nrb   )rÇ   r6   r7   rz   r   r8   rš   r›   )r�   rF  rL  r¥   r™   )rÃ   rI   rG  rH  Úfix_locÚ	fix_scalerŽ   r–   r¼   r—   r˜   r.   r.   r/   rM  û  s    
ÿz&TestGumbel_r_l.test_fit_comp_optimizerz	dist, sgnc                 C   sL   |t  ddddddddg¡ }| |¡\}}t||d ƒ t|ddd� d S )Nr‡   gî˜W  @g»   @g3qûtw>rW  rp   )re   r   r’   r   )rÃ   rI   ZsgnÚzr6   r7   r.   r.   r/   rI    s    zTestGumbel_r_l.test_fitN)rç   rè   ré   r¨   ÚfixturerŽ   rI  r�  r2   Úgumbel_rÚgumbel_lrM  rI  r.   r.   r.   r/   rX  ö  s   

ÿÿrX  c                   @   s  e Zd Zdd„ Zdd„ Zejdd�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
ddg¡ej 
dddg¡ej 
dddg¡ej 
ddd„ eddgdd�D ƒ¡ejdd�dd„ ƒƒƒƒƒZejdd�dd „ ƒZ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 5 Q R X d S )Nrú   rh   rˆ  r‰  rÞ   r.  r‡  rl   ç      @g«ªªªªªú?grÇqÇ@rì   ç      @gffffffö?gåK~±ä×?g      2@gÛ¶mÛ¶mÛ?r-  çUUUUUUõ?gÇqÇqÌ?ç      $@ç      @g%I’$I’ô?g�QªÉãÎÂ?gUUUUUU@grÇqÇá?gä8Žã8Nb@)rþ   rÿ   r   r  r2   Úparetor   re   r¬   r«   r   rc  ©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    eÍÍAr8   r.  r   r5   )r2   ri  r  r   )rÃ   rA   r-   r7   rý   r]   r.   r.   r/   r  \  s    zTestPareto.test_sfrY  rZ  c                 C   s   t j d¡S r¿   r\  rÂ   r.   r.   r/   rŽ   d  s    zTestPareto.rngz2ignore:invalid value encountered in double_scalarsÚ	rvs_shaper   r8   Úrvs_locr   Ú	rvs_scaleru   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rv|  krvdks|n t‚t jjd|||d |d�}t jj|dd	�\}	}
}t|d | ¡ ƒ |d }|jd }t|	|t 	t 
|| ¡  ¡¡ ƒ t|
dƒ d S )
Nrb   ©rÇ   r-   r7   r6   rz   r   ç¤p=
×£ð?)rš   r�   )rš   Úfix_b)rš   Úfbr8   rJ  )r2   ri  r�   r’   rZ   r   rÑ  rÏ   re   rõ   r  )rÃ   rk  rl  rm  rŽ   r–   Zshape_mle_analytical1Zshape_mle_analytical2Zshape_mle_analytical3Zshape_mle_aZ	loc_mle_aZscale_mle_aZ
data_shiftZndatar.   r.   r/   rI  h  s0     ÿÿÿ ÿ
ÿzTestPareto.test_fitr_   úfix_shape, fix_loc, fix_scalec                 C   s   g | ]}d |kr|‘qS ©Fr.   ©rH   rý   r.   r.   r/   rJ   ˆ  s    ÿzTestPareto.<listcomp>TFr‡   ©ÚrepeatÚignore©Úinvalidc                 C   sx   t jjd||||d�}|t j |¡fg}	t j |	i ¡d }
i }|rJ||d< |rV||d< |rb||d< tt j||
f|Ž d S )Nrb   rn  r   r�   rš   r›   )r2   ri  r�   rF  rL  r™   ©rÃ   rk  rl  rm  Z	fix_shaper]  r^  rŽ   r–   r¼   r—   r˜   r.   r.   r/   Útest_fit_MLE_comp_optimizer„  s    	 ÿz&TestPareto.test_fit_MLE_comp_optimizerc                 C   s^   d\}}}t jj|||dtj d¡d�}|t j |¡fg}t j |i ¡d }tt j||ƒ d S )N)r   r   r   rb   iÃ°& r0  r   )	r2   ri  r�   re   r   r€   rF  rL  r™   )rÃ   rÏ   Úlocationr7   r–   r¼   r—   r.   r.   r/   Útest_fit_known_bad_seedœ  s    

ÿz"TestPareto.test_fit_known_bad_seedc                 C   sD   t tjƒ tttjjdddgdd� tttjjdddgddd� d S )Nr   r8   r‡   rJ  ru   ©rš   r›   )r¯   r2   ri  Úassert_raisesr    r’   rÂ   r.   r.   r/   Útest_fit_warnings¨  s
    
ÿzTestPareto.test_fit_warningsc                 C   s.   t jjddd|d�}t|dƒ t j |¡}d S )Ni~ÿÿÿr   rb   )r6   r-   rÇ   rz   r   )r2   ri  r�   r
   r’   )rÃ   rŽ   r–   r7  r.   r.   r/   Útest_negative_data°  s    
zTestPareto.test_negative_dataN)rç   rè   ré   rŒ  r  r¨   r`  rŽ   rI  Úfilterwarningsr�  rI  r$   re   Úerrstater{  r}  r€  r�  r.   r.   r.   r/   rc    s*   <


ÿ


rc  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ddddgfdddde d¡ ejgfdddde d ¡ d!gfd"d#d$dd%g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Þ   rm   rm   ç       Àrh   )	re   Úasarrayr2   Ú	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 )Nrm   ©r  r   rg  rÅ   rÞ   ra   )
r2   rˆ  re   rã   r   r:   r¹  rD   r  r  ©rÃ   ÚrvrA   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È  rŒ  r   rg  rÅ   rm   rÞ   ra   r   )r2   rˆ  re   rã   r   r:   ÚuniformrD   r  r  r…   r�  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 )Nr_   rŒ  rm   rÞ   rÈ  )
r2   rˆ  r   r:   re   r¬   rD   r   Úisneginfr…   ©rÃ   rŽ  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   ra   rÅ   ©r   rn  ©r¢  g›+¡†›„½r!  r{   )r¢  r¢  )re   rã   r2   rˆ  r:   r   rD   )rÃ   rA   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!  rj   r_   ©Úbaser   rÅ   F©ZendpointrÞ   )rm   rÈ  r–  r{   )re   rÙ   r  rã   r2   rˆ  r  r   )rÃ   r  r  Zppf0r—  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 r™  )re   rÙ   r  rã   r2   rˆ  r  r   )rÃ   r  r  Zisf0r—  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!  rj   r_   rš  r   rÅ   Frœ  rÞ   )rV  g¬CÒÑ]r2¼ro   gVçž¯Ò¼ro   r{   )	re   rÙ   r  rã   r   r2   rˆ  rD   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    _ Brj   r   r   gÐpŽµEÈœÀ)r2   rˆ  r�  r   r?  r.   r.   r/   r©    s    zTestGenpareto.test_logsfzc, expected_statsr   r   r8   r(  rô   rf  gÇqÇq@ra   gÇqÇq¼?g      ò?g“$I’$	ú?çrÇqÇñ?rÉ  glÁlÁ0@rn  rh   çUUUUUUµ?ç333333ó¿c                 C   s$   t jj |dd�}t||ddd� d S )Nrˆ  r‰  rx   ro   rð   )r2   rˆ  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 )NrV  gvÇ¼
  ð?rx   rp   )r2   rˆ  r1  r   )rÃ   rõ  r.   r.   r/   Útest_var+  s    zTestGenpareto.test_varN)rç   rè   ré   r‹  r�  r‘  r”  r˜  r�  rž  rŸ  r©  r¨   rI  r�  re   rc  r«   rŒ  r¤  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 )ÚTestPearson3c                 C   s   t j d¡ d S r¿   rÁ   rÂ   r.   r.   r/   rÄ   2  s    zTestPearson3.setup_methodc                 C   s˜   t jjddd�}tt |¡dkƒ t|jjtd kƒ t j d¡}tt	|t
ƒƒ t  d¡ d¡}tt	|tjƒƒ t|jjtd kƒ tt|ƒdkƒ d S )Nr_   rÈ   rÆ   ZAllFloatrh   r‡   )r2   r(   r�   r   r;   rÏ   r�   rÐ   r   rÑ   Úfloatrï   r£   rÓ   r.   r.   r/   rÖ   5  s    zTestPearson3.test_rvsc              	   C   sŒ   t j ddddg¡}t|t dddg¡dd	� t j d
d¡}t|t dg¡dd	� t j d
ddddgd¡}t|t dddddg¡dd	� d S )Nr8   rm   r_   r;  gtÏÛT´¤«?g×Å+®q¬?gÏ›Ö­?rW  r{   rÚ  gND}š¬´i?rø  rn  r   r   gëôj¨•ª?gdž�CšÐ?gÖÌs§è†Ù?gÍ'§MøÍ?)r2   r(   r:   r   re   r   r–  r.   r.   r/   rÝ   @  s    ÿ ÿÿzTestPearson3.test_pdfc                 C   s€   t j ddddg¡}t|t dddg¡dd	� t j d
d¡}t|dgdd	� t j d
ddddgd¡}t|dddddgdd	� d S )Nr8   rm   r_   r;  g³rõ„¡Eï?gTpº]0ï?g‡•~€½ï?rW  r{   rÚ  g �E&"ôJ?rø  rn  r   r   gi€ãZ*ôJ?gƒh+Ã8w”?gý‘ÁcKÄ?g³|<x6à?gG‡íê?)r2   r(   rD   r   re   r   r–  r.   r.   r/   ræ   J  s    ÿ
 ÿÿzTestPearson3.test_cdfc                    sD   ddddg}d‰d‰ t j ˆ|¡}‡ ‡fdd„|D ƒ}t||ƒ d S )NrÚ  rn  r   rh   r÷  c                    s$   g | ]}t t |¡jˆ ˆƒd  ‘qS rF   )r   r2   r(   r:   )rH   r2  ©Zneg_infÚx_evalr.   r/   rJ   [  s   ÿz<TestPearson3.test_negative_cdf_bug_11186.<locals>.<listcomp>)r2   r(   rD   r   )rÃ   ÚskewsrÞ  Zint_pdfsr.   r§  r/   Útest_negative_cdf_bug_11186T  s    ÿz(TestPearson3.test_negative_cdf_bug_11186c                 C   sT   t j dd¡}t|dƒ t|tjƒs(t‚t j dd¡}t|dƒ t|tjƒsPt‚d S )Nr   r8   r   rW  )r2   r(   rY  r   rÑ   re   ÚnumberrZ   )rÃ   rY  r.   r.   r/   Útest_return_array_bug_11746_  s    

z(TestPearson3.test_return_array_bug_11746c                 C   sº   ddddg}d}t j t j ||¡|¡}t||ƒ t dgdgg¡}t dd¡}tt j ||¡t j | | ¡ƒ tt j ||¡t j 	| | ¡ƒ tt j ||¡t j 
|| ¡ ƒ d S )	NrÚ  rn  r   rh   rA  r.  rø  r8   )r2   r(   r  rD   r   re   r   rã   r:   r  r  )rÃ   r©  r¨  r�   r2  rA   r.   r.   r/   Útest_ppf_bug_17050j  s    
ÿÿÿzTestPearson3.test_ppf_bug_17050N)
rç   rè   ré   rÄ   rÖ   rÝ   ræ   rª  r¬  r­  r.   r.   r.   r/   r¥  1  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   sH   ddddg}d}dD ].}t j |||¡}t j || ¡}t||ƒ qd S )Nrm   r_   r;  rh   rÞ   )
gffffffþ¿rÈ  rA  çš™™™™™É¿çš™™™™™¹¿r_   r;  rh   rÞ   çffffffþ?)r2   Úkappa4rD   rˆ  r   ©rÃ   rA   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 )Nrt  ru   ra   rm   rÚ  r‡   )re   rã   r2   r²  rD   Ú
genextremer   r³  r.   r.   r/   Útest_cdf_genextremeŠ  s    zTestKappa4.test_cdf_genextremec                 C   s@   t  ddd¡}d}d}tj |||¡}tj |¡}t||ƒ d S )Nr   ra   rÞ   rm   )re   rã   r2   r²  rD   r¹  r   r³  r.   r.   r/   Útest_cdf_expon“  s    zTestKappa4.test_cdf_exponc                 C   s@   t  ddd¡}d}d}tj |||¡}tj |¡}t||ƒ d S )Nrt  ru   ra   rm   )re   rã   r2   r²  rD   ra  r   r³  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 )Nrt  ru   ra   rÈ  rm   )re   rã   r2   r²  rD   r:  r   r³  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 )Nrt  ru   ra   rÞ   )re   rã   r2   r²  rD   r�  r   r³  r.   r.   r/   Útest_cdf_uniform®  s    zTestKappa4.test_cdf_uniformc                 C   s   t  dd¡ d S rB  )r2   r²  rÂ   r.   r.   r/   Útest_integers_ctor·  s    zTestKappa4.test_integers_ctorN)
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 )ÚTestPoissonc                 C   s   t j d¡ d S r¿   rÁ   rÂ   r.   r.   r/   rÄ   ¾  s    zTestPoisson.setup_methodc                 C   sB   t  d¡}tj dddg|¡}d|d |d d g}t||ƒ d S )Nr8   r   r   rh   r  )re   r  r2   ÚpoissonrÛ   r   )rÃ   Zln2rÔ   r]   r.   r.   r/   Útest_pmf_basicÁ  s    
zTestPoisson.test_pmf_basicc                 C   sD   t j dddgd¡}dddg}t||ƒ t j dd¡}t|dƒ d S )Nr   r   r8   çffffffî?©r   r   )r2   r½  rÛ   r   Úintervalr   )rÃ   rÔ   r]   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 kƒ t j d¡}tt
|tƒƒ t  d¡ d¡}tt
|tjƒƒ t|jjt	d kƒ d S )Nrh   rÈ   rÆ   r   rÊ   r‡   )r2   r½  r�   r   r;   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 dddg¡}t jj |dd�}||tjddt d¡ gtjdd	gf}t||ƒ d S )
Ng      0@rˆ  r‰  rÞ   rm   rl   r   r8   rh   )r2   r½  r   re   rc  r   r¬   )rÃ   rD  r"  r]   r.   r.   r/   rŒ  Ü  s     &zTestPoisson.test_statsN)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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   r8   r‡   ra   rb   rv   r   rh   r   rÞ   r8   rm   )re   r   r1   r   ÚgammalnrŠ   r2   Úksoner  r“  ÚkstworD   r   )rÃ   rü   rA   Úv1ÚlgÚelgr]   ry  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Ä  rh   rÞ   r8   )re   rã   r   r1   r   rÅ  rŠ   r2   rÆ  r  rÑ  rÇ  r   )rÃ   rA   rü   rÈ  rÉ  rÊ  r]   r›  r.   r.   r/   r  ÿ  s    &
 ýzTestKSTwo.test_sfc                 C   sd   t  ddd¡dd … }ddddd	d
g}|D ]4}|t  |¡ }tj ||¡}t  |¡}t|dƒ q*d S )Nr   r8   rÏ  r   rÉ   rb   éÈ   i�  rv   rw   rV  )re   rã   rc  r2   rÇ  rD   Údiffr
   )rÃ   rA   Ú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Ä  )re   rã   r2   rÇ  rD   r  r   )rÃ   rA   rü   ry  r›  r.   r.   r/   rœ    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Ñ  )re   rã   rc  r2   rÇ  rD   r  r   )rÃ   rA   rü   rÎ  ry  r›  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Ä  rh   r^  r~  rp   )re   rã   r2   rÇ  rD   r  r   ©rÃ   rA   rü   rÎ  ry  Ú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Ä  rh   rÞ   r~  rp   )re   rã   r2   rÇ  r  r  r   )rÃ   rA   rü   rÎ  Zvals_isfrÔ  rÔ   r.   r.   r/   Útest_isf_of_sf4  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Ä  rh   rÞ   )re   rã   rc  r2   rÇ  rD   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Ä  rh   r¿  )re   rã   rc  r2   rÇ  r  r  r   )rÃ   rA   rü   rÎ  r›  rÔ  rÔ   r.   r.   r/   Útest_isf_of_sf_sqrtnF  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Ñ  )re   rã   r2   rÇ  r  rD   r   )rÃ   rÏ  rü   rÎ  ry  r.   r.   r/   r�  P  s
    zTestKSTwo.test_ppfc                 C   sÜ   ddddddg}t  ddd	d
ddg¡}t  ddddddgddddddgddddddgdd d!d"d#d$gd%d&d'd(d)d*gd+d,d-d.d/d0gg¡}t|ƒD ]J\}}|t  d¡ t  t jd | ¡ }tj ||¡}t	||| d1d2� qŒd S )3Nra   rÉ   rb   rË  r  rv   rô   gUUUUUUÕ?rh   r   r8   r‡   g¾R”¨ì¡T>gãræ”Ç	?g¾K¬º5
–?gn
 "Ë5ä?g¡’ªU
íï?gkŠÜàÿÿï?g‰&6–ã—#>gb
ÄE±áô>g€éá�I5�?g\³ã?g;•Ù°àï?g%®ª1ýÿï?gÍíðì6>g�LÅéÔÒë>gÓ<…‰?gä“€^ÙÁâ?gO|6$Þï?g qOüÿï?g}È+:ó >gwQ¨9‹úã>g‰üªH{ö†?g]qv(‹â?g)•~/vÜï?gmJîºûÿï?gV2�7Jð=gñÝGk(»Ü>gÃWÈX…¿„?gê¶„Yâ?g{¨0`Ûï?gÍZ
Hûÿï?g_ÀR “å=gÊáÍ4þú×>gò•Ìª¹§ƒ?gTÐÉ_@â?göÖ<eÚï?g2ˆûÿï?çñhãˆµøä>rp   )
re   r   Ú	enumerater  rc  r<   r2   rÇ  rD   r   )rÃ   rÍ  Úratiosr]   Úidxrü   rA   ry  r.   r.   r/   Útest_simard_lecuyer_table1W  s@     ÿ ÿ ÿ ÿ ÿ ÿõ"z$TestKSTwo.test_simard_lecuyer_table1N)rç   rè   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 )ÚTestZipfc                 C   s   t j d¡ d S r¿   rÁ   rÂ   r.   r.   r/   rÄ   z  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 kƒ t j d¡}tt
|tƒƒ t  d¡ d¡}tt
|tjƒƒ t|jjt	d kƒ d S )Nr.  rÈ   rÆ   r   rÊ   r‡   )r2   Úzipfr�   r   r;   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 )Nçffffff@©r,   r'  Úsk©r,   rŠ  )r2   rß  r   re   r5  r   r¬   rÎ   rj  r.   r.   r/   rü  ˆ  s
    zTestZipf.test_momentsN)rç   rè   ré   rÄ   rÖ   rü  r.   r.   r.   r/   rÞ  y  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Ä   “  s    zTestDLaplace.setup_methodc                 C   sœ   t jjddd�}tt |¡dkƒ t|jjtd kƒ t j d¡}tt	|t
ƒƒ t  d¡ d¡}tt	|tjƒƒ t|jjtd kƒ tt j d¡d k	ƒ d S )Nr.  rÈ   rÆ   rÊ   r‡   rÁ  )r2   Údlaplacer�   r   r;   rÏ   r�   rÐ   r   rÑ   rî   rï   rÓ   r.   r.   r/   rÖ   –  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Þ   rˆ  é%   r   r8   r  rÀ  r‡  r¢  rV  rO  )r2   rå  re   r§   rÛ   rõ   r   r   )rÃ   r,   Údlrô  rõ  r@   r>   r  r  ÚppÚm2Úm4r.   r.   r/   rŒ  ¡  s    

&zTestDLaplace.test_statsc                 C   sF   t  d¡}t |¡}| d¡\}}}}t||fdƒ t||fdƒ d S )Nrl   rˆ  )rm   rm   )r-  g      
@)re   r  r2   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ä  ’  s   rä  c                       sh   e Zd Zdd„ Zej dddg¡dd„ ƒZej d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)r8   r   r   )g
×£p=Š@g¦›Ä °r@gƒÀÊ¡E6@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 t
‚d S )Nrb   ©rÇ   rD  r6   r7   rJ  rn  ro   rO  r   r~  ro  )Úfmur   )Zfix_mu©r�   )r2   r´   r�   r’   re   r  r£   rõ   r   r   rZ   )rÃ   Úrvs_murl  rm  r–   rD  r6   r7   Zmu_tempÚ	scale_mleZmu_mleZ
shape_mle1Z
shape_mle2Z
shape_mle3r.   r.   r/   rI  º  s2    
 ÿ


 ÿÿzTestInvgauss.test_fit)gX9´Èv>@gÍÌÌÌÌÌ	@g®Gáz@c           
         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¡sÀt‚t	t j||	|d d� t	t j||	dd� t	t j||	|t
j d¡d d� d S )	Nrb   rí  r   r8   )rš   rî  r   rJ  r~  )r2   r´   r�   r“   r”   r’   r   rF  rL  r™   re   rÎ   rZ   r   Úrand)
rÃ   rð  rl  rm  r–   Z	super_fitZsuper_fittedZinvgauss_fitr¼   r—   ©Ú	__class__r.   r/   r{  Ù  s,    
 ÿ


ÿÿz(TestInvgauss.test_fit_MLE_comp_optimizerc              	   C   s:   t tjƒ t t¡� tjjdddgdd� W 5 Q R X d S )Nr   r8   r‡   rJ  )r¯   r2   r´   r¨   r   r    r’   rÂ   r.   r.   r/   Útest_fit_raise_errors	  s    
z"TestInvgauss.test_fit_raise_errorsc                 C   sž   dddddg}dddddg}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 )NgÁ4‰ßwT;?gjdV&�}?g¥{ƒi\0³>gDV¤_Äh?gqacX?r   çš™™™™™Ù?©rD  r�  çÍÌÌÌÌÌð?gáf¨úFšén   g¥‰r^ñß:gÖÿ9Ì—?r~  gÞÏx_Ï;¢:g™ò!¨½?gƒÏÙ·
?ï?)r2   r´   rD   r   r   r  )rÃ   rD  r]   r[   Z
cdf_actualZ	sf_actualr.   r.   r/   rœ  	  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¨úFš’gpQ^ÇLÀ)r2   r´   r)  r   r�  )rÃ   r)  r�  r.   r.   r/   rŸ  *	  s    	


zTestInvgauss.test_logcdf_logsf)rç   rè   ré   rÄ   r¨   rI  r�  rI  r{  rõ  rœ  rŸ  Ú__classcell__r.   r.   ró  r/   rì  ¶  s   ÿ
ÿ&#rì  c                       s„   e Zd Zej dddddg¡ej dddddg¡d	d
„ ƒƒZej ddddg¡‡ fdd„ƒZdd„ Zdd„ Z	dd„ Z
dd„ Z‡  ZS )ÚTestLaplacerl  rt  r   r   r8   rm  r‡   ra   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 )	Nrb   rA  ro   rO  rJ  rK  r8   r~  )r2   rk  r�   re   r6  rõ   r}   r£   r’   r   r   r  r©   rª   r«   r¬   )rÃ   rl  rm  r–   Zloc_mlerñ  r6   r7   r.   r.   r/   rI  >	  s*    



ÿzTestLaplace.test_fitzrvs_scale,rvs_loc)ra   rt  )ru   ra   )r;  rh   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|t‚d S )Nrv   rA  c              	   S   s8   dt |ƒ t d| ¡ d| t t ||  ¡¡   S )Nrn  r8   r   )r£   re   r  rõ   r}   )r6   r7   r–   r.   r.   r/   Úllr	  s    ÿz3TestLaplace.test_fit_MLE_comp_optimizer.<locals>.llro   rO  )	r2   rk  r�   r’   r“   r”   re   r•   rZ   )rÃ   rl  rm  r–   rü  r6   r7   Zloc_optZ	scale_optZll_mleZll_optró  r.   r/   r{  k	  s    
ÿÿ ÿz'TestLaplace.test_fit_MLE_comp_optimizerc                 C   sb   t  ddddddg¡}tjj|dd�\}}t|dd	d	d
� tjj|dd�\}}t|dd	d	d
� d S )NrÞ   r‡  rß   ç       @rì  r(  rJ  r  ro   rO  rK  )re   r   r2   rk  r’   r   )rÃ   r–   r6   r7   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t‚t j |¡}|dks6t‚t j |¡}|dksNt‚t j | ¡}|dksht‚d S )Nrv   rm   rÞ   )r2   rk  rD   rZ   r  )rÃ   rA   Úp0Úp1r.   r.   r/   Útest_sf_cdf_extremes‰	  s    z TestLaplace.test_sf_cdf_extremesc                 C   s.   d}t j |¡}t|t | ¡d dd� d S )NrË  r8   rx   rp   )r2   rk  r  r   re   rŠ   )rÃ   rA   rý   r.   r.   r/   r  ž	  s    zTestLaplace.test_sfc                 C   s.   d}t j |¡}t|t d| ¡ dd� d S )NgÙ}ÚõÐò¾:r8   rx   rp   )r2   rk  r  r   re   r  )rÃ   rý   rA   r.   r.   r/   r  £	  s    zTestLaplace.test_isf)rç   rè   ré   r¨   rI  r�  rI  r{  rþ  r  r  r  rú  r.   r.   ró  r/   rû  =	  s   +
þ	rû  c                   @   s¤   e Zd Zejdd�dd„ ƒZej ddddd	d
g¡ej dddd	g¡ej ddd	dg¡ej ddd„ eddgdd�D ƒ¡dd„ ƒƒƒƒZ	dd„ Z
dd„ Zdd„ ZdS ) ÚTestPowerlawrY  rZ  c                 C   s   t j d¡S r¿   r\  rÂ   r.   r.   r/   rŽ   ª	  s    zTestPowerlaw.rngrk  r_   rh   rì   r   r8   rl  rn  r   rm  ru   rr  c                 C   s   g | ]}d |kr|‘qS rs  r.   rt  r.   r.   r/   rJ   ²	  s    ÿzTestPowerlaw.<listcomp>TFr‡   ru  c                 C   sŠ   t jjd||||d�}|t j |¡fg}	t j |	i ¡d }
tƒ }|rL||d< |rht | ¡ tj	 ¡|d< |rt||d< t
t j||
f|Ž d S )Nr$  )rÇ   r,   r6   r7   rz   r   r�   rš   r›   )r2   Úpowerlawr�   rF  rL  r¥   re   Z	nextafterrÑ  r¬   r™   rz  r.   r.   r/   r{  ®	  s     ÿz(TestPowerlaw.test_fit_MLE_comp_optimizerc                 C   st   d}d}d}t jj|||dtj d¡d�}d| ¡ d i}|t j |¡fg}t j |i ¡d	 }t	t j||f|Ž d S )
Ng•`- @rm   gÏrØþßŸA@rb   ru   )r,   r6   r7   rÇ   rz   r›   r8   r   )
r2   r  r�   re   r   r€   ÚptprF  rL  r™   )rÃ   r,   r|  r7   r–   r˜   r¼   r—   r.   r.   r/   Útest_problem_caseÅ	  s    
ÿzTestPowerlaw.test_problem_casec              	   C   s
  t tjƒ d}tt|d�� tjjdddgddd� W 5 Q R X d}tt|d�� tjjdddgdd	� W 5 Q R X d}tt|d�� tjjdddgdd	� W 5 Q R X d
}tt|d�� tjjdddgdd� W 5 Q R X d}tt|d�� tjjdddgdd� W 5 Q R X d S )Nz7 Maximum likelihood estimation with 'powerlaw' requiresr    r   r8   r  r   r‡   r~  rJ  z$Negative or zero `fscale` is outsiderÚ  rK  z0`fscale` must be greater than the range of data.)r¯   r2   r  r  r    r’   rª   )rÃ   r*   r.   r.   r/   r€  Õ	  s     
"   zTestPowerlaw.test_fit_warningsc                 C   sL   ddddddddddddg}t j}tjdd	�� t|||jƒ W 5 Q R X d S )
Nr   r   r8   r‡   r  ru   r(  rw  ©Zover)r2   r  re   rƒ  r™   Znnlf)rÃ   r–   rI   r.   r.   r/   Útest_minimum_data_zero_gh17801ð	  s    z+TestPowerlaw.test_minimum_data_zero_gh17801N)rç   rè   ré   r¨   r`  rŽ   rI  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�}ddddg}t||ƒ d	d
dg}tjj|dd�}dddgtjddgtj	ddgtj	tj	dgf}t
||ƒD ]\}}t||ƒ qŒW 5 Q R X d S )Nrú   g�Âõ(\O3@rˆ  rã  gœ¥Ì~ö«?g×C‰Xù•&?g*ª7ÐgSð?gBqFçq @çš™™™™™ñ?çÍÌÌÌÌÌ@gffffff@rg  gŒEžçyÞ?gÑž3ozÓË?g¥á^YåbÊ?g,žÓr–âŠ?gO¶»æùD@g2á*Z@gøF�Nì„8@)rþ   rÿ   r   r  r2   r³   r   re   r¬   r«   r¦   r   )rÃ   rˆ  r]   r,   rA   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   )re   r  r2   r³   rD   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 )Nì        r8   rb   é   r   rÞ   rp   )	ÚsysÚmaxsizere   r  r2   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   sZ   t jddgg}|D ]\}}}|j|jf|žŽ }qdd„ |D ƒ}dd„ |D ƒ}t||ƒ d S )N)r8   r   rÞ   c                 S   s$   g | ]\}}}|j |jf|žŽ ‘qS r.   ©r:   r,   ©rH   Ú_fÚ_argsr7  r.   r.   r/   rJ   )
  s     z(TestF.test_endpoints.<locals>.<listcomp>c                 S   s   g | ]\}}}|‘qS r.   r.   ©rH   r  r  Z	_correct_r.   r.   r/   rJ   *
  s     )r2   Úfr:   r,   r   )rÃ   r–   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Ï  ç      @rˆ  r‰  )r2   r  r   re   r5  rj  r.   r.   r/   Útest_f_moments-
  s
    zTestF.test_f_momentsc              	   C   sD   t  ¡ �2 t  dt¡ tjjdgd ddddgdd� W 5 Q R X d S )	Nrú   rÏ  r  r8   r(  ru  rˆ  ©ÚdfnÚdfdrŠ  )rþ   rÿ   r   r  r2   r  rÂ   r.   r.   r/   Útest_moments_warnings5
  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à   rˆ  r  r8   r  ru  r(  ru   é   )re   r   r2   r  r   rc  )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 )Nru   r(  g‚áËé§ô?g€©Ž˜ó?)r   r2   re  r  r.   r.   r.   r/   Útest_rvgeneric_stdM
  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   rˆ  )r   rŠ  ç)\�Âõ(ð?rm   r8   g®Gáz @g–     i@r‡   râ  g®Gáz@r  g
×£p=
@)rm   gq    À‚@)r   r2   re  re   r¬   r«   r.   r.   r.   r/   Útest_moments_tR
  s     ÿÿÿÿr$  c                  C   s2   ddddg} ddddg}t tj | ¡|d	d
� d S )Nr   r8   r|  rb   gÖíð£‰?@g�TÄÀM]ÿ?gößßgY÷?gU•“°Ýö?rx   rp   )r   r2   re  rN   )r   r]   r.   r.   r/   Útest_t_entropyb
  s     ÿr%  Úmethnamer:   r…   rD   r  r  r  Ú
df_infmaskc                 C   sÔ   t j d¡ t j|td�}t jjdd|jd�}t jj|jŽ }t j||< t	j
|ddd�}t	j
||  ddd�}t	jddd�}t|| ƒ}t|| ƒ}t|| ƒ}	||ƒ}
t|
| |	|| ƒƒ t|
|  |||  ƒƒ d S )	Nr   ©r�   ra   rÆ   r‡   r   ©r   r6   r7   r5   )re   r   r‚   r‡  Úboolr�  rÏ   Úrandnr¬   r2   re  r´  rº   r   )r&  r'  r   rA   Zt_distZ
t_dist_refZ	norm_distZt_methZ
t_meth_refZ	norm_methr�   r.   r.   r/   Útest_t_inf_dfj
  s    



r,  c                 C   s  t j d¡ t j| td�} t jjdd| jd�}t j|| < tj	j|dddd�}tj
jdddd	�}tj	j||   dddd�}td
ƒD ]2}t|| |  || ƒ t|| |   || ƒ q€tj	j|ddd�}tj
jddd�}tj	j||   ddd�}t||  |ƒ t||   |ƒ d S )Nr   r(  ra   rÆ   r‡   r   rˆ  )r   r6   r7   rŠ  ©r6   r7   rŠ  r  r)  r5   )re   r   r‚   r‡  r*  r�  rÏ   r¬   r2   re  r´  r\  r   rN   )r'  r   r�   Z
res_ex_infZres_ex_noinfrZ  r.   r.   r/   Útest_t_inf_df_stats_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¬   ddddddg}ddd	dddg}d
}t jd||fd�}|j|d�}tt|tjƒƒ t||ƒD ],\}}ttt	||kƒt
|ƒ | ƒdk ƒ q\| ¡ }t t|ƒtj¡s¨t‚d S )Nrn  r   r   r8   r‡   r  rm   ç333333Ó?rö  rv   Úsample)ÚnameÚvaluesrÆ   r1  )r2   rK   r�   r   rÑ   r;   rï   r¦   r}   rõ   r¦  re   rŒ   r”   ÚintegerrZ   )rÃ   ZstatesZprobabilityÚsamplesÚrrA   r@   rý   r.   r.   r/   rÖ   �
  s    &zTestRvDiscrete.test_rvsc                 C   sz   t  dddg¡}tjdddg|fd�}tt||ƒƒ }| ¡ }t||ƒ tjdddgdddgfd�}| ¡ }t|d	ƒ d S )
Nrô   r(  r0  r   r   r8   ©r3  rÞ   rm   )	re   r   r2   rK   rõ   r   rN   r   r   )rÃ   rä  rý   r÷   rø   r.   r.   r/   rù   «
  s    
zTestRvDiscrete.test_entropyc                 C   sX   dddg}dddg}t j||fd�}dd	gd
dgg}t| |¡ddgddggdd� d S )Nr   r8   r  rh   r0  r;  r7  rÞ   r-  r‡  rm   r¢  r{   )r2   rK   r   rÛ   )rÃ   ÚxkÚpkrŽ  rA   r.   r.   r/   ró   ·
  s    

ÿ
ÿþzTestRvDiscrete.test_pmfc                    s€   dddg}dddg}t j||fd�‰ dd	d
dddddg}ddddddddg}tˆ  |¡|dd� t‡ fdd„|D ƒ|dd� d S )Nr   r8   r  rh   r0  r;  r7  rø  rÞ   r	  r.  rl   r‡  ru   r   rÁ  r¢  r{   c                    s   g | ]}ˆ   |¡‘qS r.   )rD   )rH   r  ©rŽ  r.   r/   rJ   Ì
  s     z+TestRvDiscrete.test_cdf.<locals>.<listcomp>)r2   rK   r   rD   )rÃ   r8  r9  Zx_valuesr]   r.   r:  r/   ræ   Â
  s    

 ÿzTestRvDiscrete.test_cdfc                    sx   dddg}dddg}t j||fd�‰ ddd	d
ddg}ddddddg}tˆ  |¡|dd� t‡ fdd„|D ƒ|dd� d S )Nr   r8   r  rh   r0  r;  r7  r_   ç333333ã?rÁ  r9  rÞ   r¢  r{   c                    s   g | ]}ˆ   |¡‘qS r.   )r  )rH   r  r:  r.   r/   rJ   Ù
  s     z+TestRvDiscrete.test_ppf.<locals>.<listcomp>)r2   rK   r   r  )rÃ   r8  r9  Zq_valuesr]   r.   r:  r/   r�  Ï
  s    

 ÿzTestRvDiscrete.test_ppfc                 C   sZ   dddddgdddddgf}t j|d	�}t| | |jd d
… ¡d ¡|jdd … ƒ d S )Nr   r8   r  rÉ  ru  r_   r;  r0  r7  rn  rV  )r2   rK   r   r  rD   r8  )rÃ   rÔ   rŽ  r.   r.   r/   Útest_cdf_ppf_nextÜ
  s
    ÿz TestRvDiscrete.test_cdf_ppf_nextc                 C   sl   t  d¡ d¡}t  ddddgddddgddddgg¡}tj||fd�}t| ¡ t  |j	|j
 ¡dd� d S )	Nrà   )r‡   r  r_   rC  r1  r7  r¢  r{   )re   r§   r/  r   r2   rK   r   r‹   rõ   r8  r9  ©rÃ   r8  r9  rŽ  r.   r.   r/   Útest_multidimensionä
  s    

þz"TestRvDiscrete.test_multidimensionc                 C   s¸   dddg}ddg}t ttjft||fd�Ž dddg}t ttjft||fd�Ž dddg}dddg}t ttjft||fd�Ž ddddd	g}d
d
d
d
dg}t ttjft||fd�Ž d S )Nr   r8   r‡   rh   r7  ç333333ó?gffffffæ¿r  ru   r0  r¯  )r  rª   r2   rK   r¥   ©rÃ   r8  r9  r.   r.   r/   Útest_bad_inputí
  s    



zTestRvDiscrete.test_bad_inputc                 C   s®   t  d¡ d¡t  dd¡ }}tttjft||fd�Ž t  d¡ d¡t  dd¡ }}tttjft||fd�Ž t  d¡ d¡t  dd¡ }}t	tj||fd� 
d¡dƒ d S )	Nr  ©r8   r8   )r8   r‡   gUUUUUUÅ?r7  r(  ©r‡   r8   r   )re   r§   r/  r%  r  rª   r2   rK   r¥   r   rÛ   r@  r.   r.   r/   Útest_shape_rv_sampleý
  s    z#TestRvDiscrete.test_shape_rv_samplec                 C   sT   ddddddg}ddddddg}t j||fd	�}t| ¡ t |j|j ¡d
d� d S )Nr   r8   r  r(  rÉ  rÏ  r_   r;  r7  r¢  r{   )r2   rK   r   r‹   re   rõ   r8  r9  r=  r.   r.   r/   Útest_expect1  s    zTestRvDiscrete.test_expect1c              /   C   s@  ddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/g/}d0d1d2d3d1d1d4d5d1d1d1d6d7d8d9d:d;d<d=d>d?d@dAd1dBdCdDdEdFdGdHdId1d1dJdKd7dLd1dMd1dNd1d1dOdPd1g/}t j||fdQ�}t| ¡ | ¡ dRdS� t| ¡ tdTdU„ t||ƒD ƒƒdRdS� t| dVdW„ ¡tdXdU„ t||ƒD ƒƒdRdS� d S )YNg      i@g     Àr@g      y@g     @@g     À‚@g     à…@ç      ‰@g      Œ@r¦  g     0‘@g     À’@g     P”@g     à•@g     p—@g      ™@g     �š@g      œ@g     °�@r§  g     h @g     0¡@g     ø¡@g     À¢@g     ˆ£@g     P¤@g     ¥@g     à¥@g     ¨¦@r¨  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:?rm   gF%ušk?g:´Èv¾Ÿz?g.n£¼r?g…|Ð³Yõå?g @ëâ6*?g 4U0*©C?g@+‡™?g€Cëâ6z?g n£¼r?g ‡ÙÎ÷“?g€OjM£?g n£¼’?gÀ�1w-!�?g€û:pÎˆ’?g×£p=
§?g ö_˜Le?g€ž^)Ëp?g€~j¼t“x?g€ŒJê4q?g€®Gázt?g ŒJê4q?g ¨ñÒMb@?g@Püs×‚?g@ž^)Ë€?g Á¨¤N@s?g �1w-!_?gàµ„|Ð³™?g€ËH¿}}?g€
F%uŠ?g ž^)Ë€?g »¸�ðv?r7  r¢  r{   c                 s   s   | ]\}}|| V  qd S rd   r.   ©rH   rõ  Úwr.   r.   r/   Ú	<genexpr>2  s     z.TestRvDiscrete.test_expect2.<locals>.<genexpr>c                 S   s   | d S ©Nr8   r.   r‰   r.   r.   r/   rT   5  rU   z-TestRvDiscrete.test_expect2.<locals>.<lambda>c                 s   s   | ]\}}|d  | V  qdS )r8   Nr.   rG  r.   r.   r/   rI  6  s     )r2   rK   r   r‹   r  rõ   r¦   )rÃ   r*  ÚpyrŽ  r.   r.   r/   Útest_expect2  sº                                     û                           ò ÿ ÿzTestRvDiscrete.test_expect2N)rç   rè   ré   rÄ   rÖ   rù   ró   ræ   r�  r<  r>  rA  rD  rE  rL  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 ©Nrt  ru   rb   r   rá  )	re   rã   r   r2   Ú
skewcauchyr:   rg  rD   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 }dddd	d
dddddg
}ddddddddddg
}ttj ||¡|ƒ ttj ||¡|ƒ ttj 	||¡|ƒ d S )Nr   ra   r8   r   ru   g& 4Ñî5¤?gÆQÿÊ¶’Ó?g-í4<?æÎ?gòð¾ïJ”?gw½@Ävó•?gJ%„Ø¢‚?g>”[uû�?g
øa­ƒ2²?g	¡R˜nº?gÑ¦}c‰ÙŠ?gN@ÿQþùë?gPPz@	Ø?g†¨’ã?gœ;
€­7í?gàlg¨¸?g!?%±�›£?g¤QÒ™µ?gCøþ"êç?gø©Ão½ä?gèÕ@ŽSgî?)
re   r   r‚   rò  r   r2   rO  r:   rD   r  )rÃ   r,   rA   r:   rD   r.   r.   r/   Útest_skewcauchy_RC  s0        ý    ýz TestSkewCauchy.test_skewcauchy_RN)rç   rè   ré   rP  rQ  r.   r.   r.   r/   rM  9  s   	rM  r8   ru   gš™™™™™@r‡   g×£p=
×1@rË   gR¸…ëÑZ@éi   gøSã¥›ÔŠ@r_   r`   g&�š¹ë@iÈQ iÙ'  i0ybi�¸ l   €HO1Z iñÕ3rÚ  iÁÿÿÿra   iöÿÿrb   ik‰ÿÿrË  i1ñÚÿrw   i±  ií4†ñi N  i›(  lýÿÿÿEI. é@ iß c                   @   sZ   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Ze	j
 de¡dd„ ƒZdd„ ZdS )ÚTestSkewNormc                 C   s   t dƒ| _d S r¿   )r   rŽ   rÂ   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 rN  )re   rã   r   r2   Úskewnormr:   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  ru   rì   )r,   rÇ   rz   rÚ  )r2   rU  r�   rŽ   r   rÏ   )rÃ   rÏ   rA   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  ru   r8   )r,   rÇ   r6   r7   rz   rˆ  )r,   r6   r7   rŠ  rá   r  )r2   rU  r�   rî   rŽ   re   r  r1  r2  Zkurtosisr   )rÃ   ÚXr]   r3  r.   r.   r/   rü  £  s    ÿ$ÿ$zTestSkewNorm.test_momentsc                 C   sH   t j dddgd¡}t|t d¡dd� t j dd	¡}t|d
dd� d S )Nra   ri  rÅ   rn  r‡   r¢  rp   r|  rd  rÞ   )r2   rU  rD   r   re   Úonesr  r.   r.   r/   Útest_cdf_large_x°  s    zTestSkewNorm.test_cdf_large_xc                 C   s|   dddgdddgddd	gd
ddgdddgg}|D ]F\}}}t j ||¡}t||dd� t j | | ¡}t||dd� q0d S )Nr  r   gzbL’¿eŸ9r  r8   gÊn'Ë/2Ã;rø  ru   g¾èí€:“:rù  rn  g|æ»¯§<rN  ç±Oèul2;rV  rp   )r2   rU  rD   r   r  )rÃ   ZcdfvalsrA   r,   Zcdfvalrý   r.   r.   r/   Útest_cdf_sf_small_values¹  s    ûz%TestSkewNorm.test_cdf_sf_small_valuesz
a, momentsc                 C   s6   t |dd�D ]$\}}tj ||¡}t||dd� qd S )Nr   )Ústartr¢  rp   )rÚ  r2   rU  rY  r   )rÃ   r,   rŠ  Úorderr]   Zmomr.   r.   r/   Útest_noncentral_momentsÊ  s    z$TestSkewNorm.test_noncentral_momentsc                 C   s”  t j d¡}d\}}}t |||¡}|jd|d�}tjj|ddd�\}}}	tjj|ddd�\}
}}||  krvdks|n t‚||
ksˆt‚tjj|ddd	d
�\}}}|dks®t‚t |||¡}|jdd�}t  |¡t 	|¡f}t
||ƒ tjjdd|d�}tj |¡}t  t  |¡¡�st‚tjj|d	d�\}}}t  |¡�s@t‚t  |¡t  |¡ }}t
|||t  dt j ¡  ƒ t
||d ddt j   ƒ d S )Nl   #­k˜eÊ )rø  re  rh   rb   r0  r?  r‡   rJ  gš™™™™™ù¿Úmm©r›   ÚmethodÚmsr‰  r   ©ra  r8   )re   r   r€   r2   rU  r�   r’   rZ   r  r2  r   ri  rÎ   r5  Úisinfr1  rc  r<   )rÃ   rŽ   r,   r6   r7   rI   r�   Úa2Úloc2Úscale2Úa3Úloc3Úscale3Za4Úloc4Úscale4Údist4r�   r*  Za5Zloc5Zscale5rô  rõ  r.   r.   r/   rI  Ð  s,    

zTestSkewNorm.test_fitN)rç   rè   ré   rÄ   rV  rÖ   rü  rY  r[  r¨   rI  r�  Ú_skewnorm_noncentral_momentsr^  rI  r.   r.   r.   r/   rT  ‘  s   	
rT  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   r2   r¹  r:   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 )Ng¬CÒÑ]r2<ré  )r   r2   r¹  rD   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¼@çyX¨5Í»@çèj+ö—Ýò?ç›UŸ«­X@)re   r   r«   r  rª   r2   r¹  r’   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 rr  )re   r   r¬   r  rª   r2   r¹  r’   r  r.   r.   r/   Útest_inf_raises_error  s    zTestExpon.test_inf_raises_errorN)rç   rè   ré   rp  rq  rx  ry  r.   r.   r.   r/   ro  ù  s   ro  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 rr  )re   r   r«   r  rª   r2   r´  r’   r  r.   r.   r/   rx    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 rr  )re   r   r¬   r  rª   r2   r´  r’   r  r.   r.   r/   ry    s    zTestNorm.test_inf_raises_errorc                 C   s"   dddg}t ttjj|dd� d S )Nr   r8   r‡   Úshrimp)Úplate)r  r­   r2   r´  r’   r  r.   r.   r/   Útest_bad_keyword_arg  s    
zTestNorm.test_bad_keyword_argN)rç   rè   ré   rx  ry  r}  r.   r.   r.   r/   rz    s   rz  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 rr  )re   r   r«   r  rª   r2   r�  r’   r  r.   r.   r/   rx    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 rr  )re   r   r¬   r  rª   r2   r�  r’   r  r.   r.   r/   ry  #  s    z!TestUniform.test_inf_raises_errorN)rç   rè   ré   Ú__doc__rx  ry  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	d
dddddg¡dd„ ƒZ
ej 	dddddgddddgddddgddddgdd dd!gg¡d"d#„ ƒZej 	dd$ddd%gd&ddd'gddd(d)gd$dd(d*gd+dd(dgd,d dd-gg¡d.d/„ ƒZd0S )1Ú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   r8   r‡   r?  ç      @rø  r.   )ÚlamÚsigrD  ZopK2Zexp_skewZexp_kurtr.   r.   r/   Úget_moms,  s    z,TestExponNorm.test_moments.<locals>.get_moms)r   r   r   rÞ   rˆ  r-  )rÚ  r8   r_   )r   r‡   r   )rt  rÏ  re  )r2   Ú	exponnormr   )rÃ   r…  rD  r„  rƒ  ÚKÚstsr.   r.   r/   rü  *  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 ©	Nrs  rt  ru  rv  rw  r   r   r~  )re   r   r«   r  rª   r2   r†  r’   r  r.   r.   r/   rx  E  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‰  )re   r   r¬   r  rª   r2   r†  r’   r  r.   r.   r/   ry  J  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   rm   é„  rj   )r   r2   r†  r:   rÂ   r.   r.   r/   Útest_extremes_xO  s    zTestExponNorm.test_extremes_xzx, K, expected)ri  rj   gç6
˜NöÕ-)r   rj   gÈÕœn+HÏ?)rn  rj   gi›™Ÿ©Î?)r  rj   g¦bÄJIÍ-)ra   r   gâ�I¥8Ÿ?)ra   r×  gQ3|Ì-0?c                 C   s   t tj ||¡|dd� d S )Ng•dyáý•=rp   )r   r2   r†  r:   )rÃ   rA   r‡  r]   r.   r.   r/   Útest_std_pdfa  s    zTestExponNorm.test_std_pdfzx, K, scale, expectedr   rj   r   gVAÒ¤¾ß?rt  g{®Gázt?gš'^ËÀ’>rP  rb   rm   rv   gbr…» ;ru   r�  gVŒMeÿÿï?c                 C   s:   t jj|||d�}|dkr(|dks6t‚nt||dd� d S )Nr³  rm   rx   rp   )r2   r†  rD   rZ   r   ©rÃ   rA   r‡  r7   r]   rý   r.   r.   r/   Útest_cdf_small_Kw  s    zTestExponNorm.test_cdf_small_Kra   gh¡G–}$;r8   g]fJ“—?rh   g31"˜g#;gf¯
�ˆ+�-ri  rÚ  gôa9Súôï?c                 C   s:   t jj|||d�}|dkr(|dks6t‚nt||dd� d S )Nr³  rm   gê-�™—a=rp   )r2   r†  r  rZ   r   r�  r.   r.   r/   Útest_sf_small_K�  s    zTestExponNorm.test_sf_small_KN)rç   rè   ré   rü  rx  ry  r‹  r¨   rI  r�  rŒ  rŽ  r�  r.   r.   r.   r/   r�  )  sB   ûÿ





üÿ






ûÿ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   )Úsimpsra   rj   rh   rl   )Zdxr   )Úscipy.integrater‘  r2   Úgenexponr:   r;   r§   r   )rÃ   r‘  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   ra   rj   rh   rl   r   )r2   r“  rD   r;   r§   r   rÎ   )rÃ   rD   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   r8   r.  g®M• <rx   rp   )r2   r“  r  r   r  r.   r.   r/   Útest_sf_tail«  s    zTestGenExpon.test_sf_tailN)rç   rè   ré   r”  r•  r–  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ç»½×Ùß|Û=rl   r¡  ru   rÁ  )r   r2   ÚexponpowrD   r  r  rÂ   r.   r.   r/   rq  »  s    ÿzTestExponpow.test_tailN)rç   rè   ré   rq  r.   r.   r.   r/   r—  º  s   r—  c                   @   s(   e Zd Zdd„ Zej d¡dd„ ƒZdS )ÚTestSkellamc                 C   sn   t  dd¡}d\}}t  dddddd	d
ddddddddddddddddddg¡}ttj |||¡|dd� d S )NrN  rË   ©ra   ru   gÌYjP'?gã$ˆS¨å?g�Q`sùý2?gC/qþªF?gDì<]Y?g/æÃX�j?g8é–ÿ6õy?güé]aÂ¨‡?gÎ:�¢”?g›‘�°Ÿ?gQÊ„å>§?g›‘�°¯?gÎ:�¢´?gûé]aÂ¨·?g9é–ÿ6õ¹?g0æÃX�º?gAì<]¹?gB/qþª¶?g�Q`sùý²?gâ$ˆS¨å­?gÏYjP'¦?gX„¼¤_ùž?gá¸+r¢x”?gµfSÕr¢‰?g‹JßXx~?rá   )r;   r§   r   r   r2   ÚskellamrÛ   )rÃ   r>   Úmu1Úmu2ZskpmfRr.   r.   r/   ró   Â  s<               ôÿzTestSkellam.test_pmfúignore::RuntimeWarningc                 C   sn   t  dd¡}d\}}t  dddddd	d
ddddddddddddddddddg¡}ttj |||¡|dd� d S )NrN  rË   r›  gÆƒQÄË?gSÔì`X'?g³»Vy)ª>?gŒ:í–	 S?ge“…i�.f?gÈ¼Jô]x?gþÒðŠ•)‰?g{^'ö+i˜?g£L”Ig>¦?g�næZ³?g?rv¨Íª¾?gåŸßŽAÇ?g¥0²¯¥Ð?g#™‡Jà�Ö?gqSm
.Ý?g~¦˜BØá?gdÅäå?gîFB“DÙç?gQ®Á9ê?gmÓæF^ì?gªcŒMÓyí?gÌG²Jžqî?g“¥C^cï?g.ó˜)í{ï?gÃ±ªÙÝ¸ï?ru   rá   )r;   r§   r   r   r2   rœ  rD   )rÃ   r>   r�  rž  ZskcdfRr.   r.   r/   ræ   ×  s<               ôÿzTestSkellam.test_cdfN)rç   rè   ré   ró   r¨   rI  r‚  ræ   r.   r.   r.   r/   rš  Á  s   
rš  c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestLognormc              	   C   sH   t  ¡ �6 t  dt¡ tj dddgd¡}t|dddgƒ W 5 Q R X d S )Nrú   r   rh   r   rm   g~û¾¨rä?g Þe3EˆÙ?)rþ   rÿ   r   r  r2   r¸   r:   r   ©rÃ   r:   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@éÃ   gßO�—nÃ?rS   )r   r2   r¸   r  r´  re   r  r�  )rÃ   rE  rD  Ú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ejjedd
�dd„ ƒZej dejjejjg¡ej dddg¡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   rh   gÜ;úþB.æ¿)r2   rS  r…   r   re   r¬   ©rÃ   r…   r.   r.   r/   r
    s    
zTestBeta.test_logpdfc                 C   sX   d\}}t  dddg¡}t ||¡}t| |¡ ¡ dƒ t| |¡t  | |¡¡ƒ d S )N©i  iÀ  r;  rh   r;  gêàÜÖËÆ’À)	re   r   r2   rS  r   r…   rõ   r:   rŠ   ©rÃ   r°   rS  rA   r-   r.   r.   r/   Útest_logpdf_ticket_1866  s
    z TestBeta.test_logpdf_ticket_1866c                 C   s&   dddg}t ttjj|dddd� d S )Nr_   rh   r;  r   r   r{  )rš   r›   r|  )r  r­   r2   rS  r’   r  r.   r.   r/   Útest_fit_bad_keyword_args  s    
ÿz"TestBeta.test_fit_bad_keyword_argsc                 C   s$   dddg}t ttjj|ddd� d S )Nr_   rh   r;  )ÚfaÚfix_a)r  rª   r2   rS  r’   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   0x¡�Agðx)ã¨Ã>)r   r2   rS  r  )rÃ   rý   r,   r-   r.   r.   r/   Útest_issue_12635  s    	
zTestBeta.test_issue_12635c                 C   sl   t  dddg¡}t  dddg¡}d}tj ||d d	| ¡}t||ƒ tj ||d d	| ¡}t||ƒ d S )
Ng@‚ö¿·3@?gò³ý^?g€N¤C‰?ra   rb   rv   rj  r   r4  )re   r   r2   rS  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 )NçñhãˆµøÔ>r   ri  r4  )re   r§   r2   rS  r  rD   r   )	rÃ   Zalpha_2Zcount_Znobsr  r,   r-   r°  r�   r.   r.   r/   Útest_issue_127968  s    zTestBeta.test_issue_12796c                 C   sD   d\}}t tj d||¡tjƒ d\}}t tj d||¡tjƒ d S )Nr†  r   )r;  r‡   r   )r   r2   rS  r:   re   r¬   )rÃ   r,   r-   r.   r.   r/   r  D  s    zTestBeta.test_endpointszDoes not convert boost warningc              	   C   s4   d\}}}t  t¡� tj |||¡ W 5 Q R X d S )N)g×£p=
×ï?g   èvH7Bg  @åœ0¢B)r¨   Úwarnsr  r2   rS  r  )rÃ   r  r,   r-   r.   r.   r/   Útest_boost_eval_issue_14606O  s    
z$TestBeta.test_boost_eval_issue_14606ra  úa, b)ç+æp‹h  ç      )@)r¸  r·  c                 C   s.   d}z||||ƒ W n t k
r(   Y nX d S )Nr9  )ÚOverflowError)rÃ   ra  r,   r-   rý   r.   r.   r/   Ú test_beta_ppf_with_subnormal_a_bU  s
    z)TestBeta.test_beta_ppf_with_subnormal_a_bN)rç   rè   ré   r
  r¨  r©  r¬  r¨   rI  ÚskipifÚMACOS_INTELr¯  r±  r³  r  Úxfailr   rµ  r�  r2   rS  r  r  rº  r.   r.   r.   r/   r¤     s    



r¤  c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestBetaPrimec                 C   s\   d\}}t  dddg¡}t ||¡}tt  | |¡¡ ¡ ƒ t| 	|¡t  
| |¡¡ƒ d S )Nr¦  r;  rh   r;  )re   r   r2   r±   r   r5  r…   rÎ   r   r:   rŠ   r§  r.   r.   r/   r
  o  s
    zTestBetaPrime.test_logpdfc                    s†   t j ddd¡}t|dƒ d\‰ ‰t dddg¡}t j |ˆ ˆ¡}tt |¡ ¡ ƒ t j	j
‰‡ ‡‡fdd	„|D ƒ}t||dd
d� d S )Nr   r;  r0  rm   r¦  rh   r;  c                    s   g | ]}ˆt j|ˆ ˆƒ‘qS r.   )r2   r±   )rH   rÕ   ©r°   rS  Zgen_cdfr.   r/   rJ   ƒ  s     z*TestBetaPrime.test_cdf.<locals>.<listcomp>çê-�™—�=rO  )r2   r±   rD   r   re   r   r   r5  rÎ   rL   Z_cdf_singler   )rÃ   rA   rÞ  Zcdfs_gr.   r¿  r/   ræ   v  s    
zTestBetaPrime.test_cdfN)rç   rè   ré   r
  ræ   r.   r.   r.   r/   r¾  n  s   r¾  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 )	NéZ   iŠ  r;  r³  g
CŸTñb?r‡   ra   gBþãÎ–½Ä?)r2   r‹  r:   r   r¡  r.   r.   r/   rÝ   ˆ  s    
zTestGamma.test_pdfc                 C   s   t j dd¡}t|dƒ d S r  )r2   r‹  r…   r   r¥  r.   r.   r/   r
  �  s    zTestGamma.test_logpdfc                 C   s$   dddg}t ttjj|ddd� d S )Nr_   rh   r;  r   r{  )rš   r|  )r  r­   r2   r‹  r’   r  r.   r.   r/   r©  –  s    
z#TestGamma.test_fit_bad_keyword_argsc                 C   s@   t jtj dd¡ddd�st‚t jtj dd¡dd	d�s<t‚d S )
Nrû  r   çgªp×l’C@r¢  r{   g¸ÔJzî�5rb   gÚè1ý}ªt@rx   )re   Úiscloser2   r‹  r  rZ   rÂ   r.   r.   r/   r  š  s     ÿ
 ÿzTestGamma.test_isfN)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S )ÚTestChi2c                 C   s4   t tj dd¡ddd� t tj dd¡ddd� d S )Nrv   gÞžwä1D‚?é   rá   rb   gÑ6:˜¡Öœ?©r   r2   Úchi2r:   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'bçdé5 <r˜  rp   rh   gÊQœ8ø›@é   gÜ�ÁØ†0g¸uu¿[9¦=r_   g¯“8-€*@)r2   rÈ  r  r   )rÃ   r   rA   r.   r.   r/   r�  ¹  s    zTestChi2.test_ppfN)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ej ddd	g¡d
d„ ƒZ	dS )ÚTestGumbelLc                 C   s2   t  dd¡}tj |¡}tj |¡}t||ƒ d S ©Nro  r  )re   rã   r2   rb  rD   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 rË  )
re   rã   r2   rb  r)  r�  rŠ   r   Úexpm1r   )rÃ   rA   r*  r_  Úurõ  r.   r.   r/   rŸ  Ð  s    
zTestGumbelL.test_logcdf_logsfc                 C   s2   t  dd¡}tj |¡}tj |¡}t||ƒ d S )Nr  ru   )re   rã   r2   rb  r  r  r   r;  r.   r.   r/   r+  Ø  s    zTestGumbelL.test_sf_isfr6   rn  r   c                 C   s2   t jjd|d�}t jj||d�\}}t||ƒ d S )Nrb   )rÇ   r6   rJ  )r2   rb  r�   r’   r   )rÃ   r6   r–   Z
fitted_locr7  r.   r.   r/   Útest_fit_fixed_paramÞ  s    z TestGumbelL.test_fit_fixed_paramN)
rç   rè   ré   r  rŸ  r+  r¨   rI  r�  rÎ  r.   r.   r.   r/   rÊ  È  s
   rÊ  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;r¢  rp   )r   r2   ra  r  rÂ   r.   r.   r/   r  é  s    ÿzTestGumbelR.test_sfc                 C   s   t tj d¡ddd� d S )Nrû  rÃ  r¢  rp   )r   r2   ra  r  rÂ   r.   r.   r/   r  ò  s    ÿzTestGumbelR.test_isfN)rç   rè   ré   r  r  r.   r.   r.   r/   rÏ  ç  s   	rÏ  c                   @   sn  e Zd Zejdd„ ƒZejdd„ ƒZejdd„ ƒZej 	de 
d¡ej
d	ejjd
�g¡ej 	dddg¡ej 	dddddg¡ej 	dddg¡dd„ ƒƒƒƒZejjej 	dddg¡dd„ ƒƒZdd„ Zejjdd �ej 	d!d"d#g¡ej 	d$ddg¡d%d&„ ƒƒƒZd'd(„ Zd)d*„ Zd+d,„ Zej 	d-e 
d.dd/gd0dd1gd2d3d4g¡ej
d.d5dd6d/gd0ddd7d1gd8d9d3d:d;dgejjd
�ej
d.d5d0d<d=dd>d?d@d6d/ge d0d1dA¡e d2ddB¡ejjd
�g¡dCdD„ ƒZej 	d-e 
d.dd/gd0dd1gd2d3d4g¡ej
d.d5dd6d/gd0ddd7d1gd8d9d3d:d;dgejjd
�ej
d.d5d0d<d=dd>d?d@d6d/ge d0d1dA¡e d2ddB¡ejjd
�g¡dEdF„ ƒZej 	dGd3dg¡ej 	dHdIdJg¡dKdL„ ƒƒZej 	dMdNdOgdPdOgg¡dQdR„ ƒZej 	dSdTd3ejejejfgdUdVgg¡dWdX„ ƒZej 	dYd<dd?g¡ej 	dZejj d[e d\d3d]¡d^fejj!d[e d\d3d]¡d^fejj d_e d3d`d]¡d[fejj!d_e d3d`d]¡d^fg¡dadb„ ƒƒZ"dcS )dÚTestLevyStablec                 C   s,   t  ttƒjd ¡}t jjj|jdd�}|S )a  Sample data points for pdf computed with Nolan's stablec

        See - http://fs2.american.edu/jpnolan/www/stable/stable.html

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

        The data table loaded below is generated from Nolan's stablec
        with the following parameter space:

            alpha = 0.1, 0.2, ..., 2.0
            beta = -1.0, -0.9, ..., 1.0
            p = 0.01, 0.05, 0.1, 0.25, 0.35, 0.5,
        and the equivalent for the right tail

        Typically inputs for stablec:

            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/levy_stable/stable-Z1-pdf-sample-data.npyúx,p,alpha,beta,pct©Únames©	re   Úloadr   Ú__file__ÚparentÚcoreÚrecordsZ
fromarraysÚT©rÃ   r–   r.   r.   r/   Únolan_pdf_sample_dataý  s    ÿÿz$TestLevyStable.nolan_pdf_sample_datac                 C   s,   t  ttƒjd ¡}t jjj|jdd�}|S )a#  Sample data points for cdf computed with Nolan's stablec

        See - http://fs2.american.edu/jpnolan/www/stable/stable.html

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

        The data table loaded below is generated from Nolan's stablec
        with the following parameter space:

            alpha = 0.1, 0.2, ..., 2.0
            beta = -1.0, -0.9, ..., 1.0
            p = 0.01, 0.05, 0.1, 0.25, 0.35, 0.5,

        and the equivalent for the right tail

        Ideally, Nolan's output for CDF values should match the percentile
        from where they have been sampled from. Even more so as we extract
        percentile x positions from stablec too. However, we note at places
        Nolan's stablec will produce absolute errors in order of 1e-5. We
        compare against his calculations here. In future, once we less
        reliant on Nolan's paper we might switch to comparing directly at
        percentiles (those x values being produced from some alternative
        means).

        Typically inputs for stablec:

            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/levy_stable/stable-Z1-cdf-sample-data.npyrÑ  rÒ  rÔ  rÛ  r.   r.   r/   Únolan_cdf_sample_data  s    %ÿÿz$TestLevyStable.nolan_cdf_sample_datac                 C   s   t  ttƒjd ¡}|S )a&  Sample data where loc, scale are different from 0, 1

        Data extracted in similar way to pdf/cdf above using
        Nolan's stablec but set to an arbitrary location scale of
        (2, 3) for various important parameters alpha, beta and for
        parameterisations S0 and S1.
        z1data/levy_stable/stable-loc-scale-sample-data.npy)re   rÕ  r   rÖ  r×  rÛ  r.   r.   r/   Únolan_loc_scale_sample_dataK  s    	ÿÿz*TestLevyStable.nolan_loc_scale_sample_dataÚsample_sizerÉ   r/  )ZmarksÚparameterizationZS0ZS1z
alpha,beta)rÞ   r   )rÞ   rA  )r.  r   )r±  rh   zgamma,delta©r   r   rC  c           
      C   sF   |t j_t j||||d�}t  |j|dd�|j¡\}}	|	dksBt‚d S )N)r°   rS  r7   r6   rÀ   r0  r1  )r2   Úlevy_stablerà  r4  r�   rD   rZ   )
rÃ   rà  r°   rS  r‹  rT  rß  Úlsr7  rý   r.   r.   r/   rÖ   Z  s       ÿ ÿzTestLevyStable.test_rvsrS  rh   r   c                 C   sZ   t j d¡ d}d}d}tjj||||dd�}tj|d||||fd�\}}|d	ksVt‚d
S )z3Additional test cases for rvs for alpha equal to 1.é±hÞ:rÞ   rh   r.  iˆ  ©r6   r7   rÇ   râ  rB  rj   N)re   r   r‚   r2   râ  r�   r4  rZ   )rÃ   rS  r°   r6   r7   rA   Ústatrý   r.   r.   r/   Útest_rvs_alpha1v  s    ÿ
ÿ
zTestLevyStable.test_rvs_alpha1c                 C   sÌ   dddddddddddddddddddddg}t j |¡\}}}}t|dddd	� t|d
dƒ t|ddƒ t|ddƒ |dddddg }t j |¡\}}}	}
t|dƒ t|dƒ t|
ddƒ t|	ddƒ d S )Ngžwgí¶«¿rm   g¾¼ ûèÔu?gÎ67¦',¡?gtA}Ëœ.«?ç®Gáz®÷?r   rj   rð   ç)\�Âõ(Ì¿r8   gÛ§ã1•‘?r  gƒú–9]c?rn  gáî¬Ýv¡™?)r2   râ  rF  r   r   r   ©rÃ   rA   Úalpha1Úbeta1Úloc1Úscale1rE  Úalpha2Úbeta2rf  rg  r.   r.   r/   rI  „  sJ                      ý  ÿ

zTestLevyStable.test_fitzUnknown problem with fitstart.r­  zalpha,beta,delta,gamma)r.  rö  r8   r‡   )rÞ   rö  r8   r‡   Úparametrizationc                 C   sZ   |t j_t jj||||ddd�}t j |¡}|\}}	}
}t||||g||	|
|gdd� dS )z7Test that fit agrees with rvs for each parametrization.r×  rÀ   ©r6   r7   rÇ   rz   rj   rp   N)r2   râ  rñ  r�   rF  r   )rÃ   r°   rS  rT  r‹  rñ  r–   r’   Z	alpha_obsZbeta_obsZ	delta_obsZ	gamma_obsr.   r.   r/   Útest_fit_rvsœ  s          ÿ

ýzTestLevyStable.test_fit_rvsc           
      C   s�   t  dddddddddddg¡}tj |¡\}}}}tj | ¡\}}}}	t|dƒ |dks`t‚t||ƒ t|| ƒ t|| ƒ t|	|ƒ d S )Nr   r‡   ra   rÅ   rb   r   )re   r   r2   râ  rF  r   rZ   r   )
rÃ   rA   rë  rì  rí  rî  rï  rð  rf  rg  r.   r.   r/   Útest_fit_beta_flipµ  s     

z!TestLevyStable.test_fit_beta_flipc                 C   s„   d}t  dddddddddddg¡}tj | ¡\}}}}tj | | ¡\}}}	}
t||ƒ t||ƒ t|	|| ƒ t|
|ƒ d S )Nr   r‡   ra   rÅ   rb   )re   r   r2   râ  rF  r   )rÃ   ZSHIFTrA   rë  rì  rí  rî  rï  rð  rf  rg  r.   r.   r/   Útest_fit_delta_shiftÁ  s     

z#TestLevyStable.test_fit_delta_shiftc                 C   sÔ   dddddddddddg}t j |¡\}}}}|dk sDtd|› �ƒ‚|t|ƒk shtdt|ƒ› d|› �ƒ‚dddddddddd	d	g}t j |¡\}}}	}
|dks¬td
|› �ƒ‚|	t|ƒksÐtdt|ƒ› d|	› �ƒ‚d S )Nr   r‡   ra   rÅ   éŒ   zExpected alpha < 1, got zExpected loc < z, got é‚   zExpected alpha > 1, got zExpected loc > )r2   râ  rF  rZ   rÑ  r“  rê  r.   r.   r/   Útest_fit_loc_extrapÌ  s    $z"TestLevyStable.test_fit_loc_extrapz pct_range,alpha_range,beta_rangerj   r^  r_   r8   rn  r   rÁ  r1  r¿  r.  gÍÌÌÌÌÌì¿rA  r0  r;  rô   çffffffÖ?çÍÌÌÌÌÌä?rì   r9  ri  é   c                    sÎ  |}t  ¡ }|jdko|jdk‰d |j|j|jg¡}dd‡ ‡‡fdd„gdd	‡ ‡‡fd
d„gdd	‡ ‡‡‡fdd„gdd‡ ‡‡fdd„gdd‡ ‡‡fdd„gdd‡ ‡‡fdd„gg}t|ƒD �]
\}	\}
}}|
tj_	|dk	rè|||ƒ n|}t
ƒ �Ð}| td¡ tjj|d |d |d ddd�}tjdd��H t|dddg|t ||d   ¡t ||d   ¡t |d  ¡ gƒ}W 5 Q R X ||d |kt |¡B  }t||d  |d!|	|
||jj|f d"d#� W 5 Q R X q¼dS )$z2Test pdf values against Nolan's stablec.exe outputÚLinuxÚi686ú/Údnirî  c                    sª  t  | d ˆ¡t  | d ˆ ¡@ t  | d ˆ¡@ | d dk| d dk@ | d dk| d dk@ | d dk@ B | d dkt  | d d	d
g¡@ B | d dkt  | d ddg¡@ B | d dkt  | d ddg¡@ B | d dkt  | d ddg¡@ t  t  | d ¡dddg¡@ B | d dkt  | d dg¡@ t  t  | d ¡dg¡@ B | d dkt  | d ddg¡@ t  t  | d ¡dddddg¡@ B | d dk| d dk@ | d dk@ B | d dk| d dk@ | d dk@ B | d dk| d dk@ | d dk@ B | d dkt  | d dg¡@ t  t  | d ¡ddddg¡@ B | d dkt  | d ddg¡@ t  t  | d ¡dddg¡@ B | d dkt  | d d	d
g¡@ t  t  | d ¡ddg¡@ B | d dkB  @ S )NÚpctr°   rS  r   rh   r9  çš™™™™™ù?rö  rj   r^  r0  r1  r¿  r;  r_   rô   rì   r;  çffffffæ?rù  rú  gš™™™™™Ù¿ç333333Ó¿rÞ   rÁ  r°  r	  )re   Úisinr}   ©r6  ©Úalpha_rangeÚ
beta_rangeÚ	pct_ranger.   r/   rT      s¨    ÿþ

ÿ

ÿ
þû

ÿö
ÿò
ÿî
ÿþê
ÿþå 
ÿþà%

ÿ
þÛ*

ÿ
þÖ/

ÿ
þÑ4
ÿþÌ9
ÿþÇ>
ÿþÂC
½ÿýz7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>Ú	piecewiserj  c                    sH   t  | d ˆ¡t  | d ˆ ¡@ t  | d ˆ¡@ | d dk@ | d dk@ S )Nr   r°   rS  r;  rÞ   ©re   r  r  r  r.   r/   rT   N  s    ÿþ
ý
üc                    s:   | d dkˆ @ t  | d ˆ¡@ dˆ k@ t  | d ˆ¡@ S )Nr°   rÞ   r   rS  r  r  ©r  r  Úis_linux_32r	  r.   r/   rT   Y  s    
ÿþýüg•Ö&è.ñ=c                    s<   t  | d ˆ¡t  | d ˆ ¡@ t  | d ˆ¡@ | d dk@ S )Nr   r°   rS  r;  r  r  r  r.   r/   rT   c  s    ÿþ
ýúfft-simpsonrÙ  c                    s<   | d dkt  | d ˆ¡@ t  | d ˆ ¡@ t  | d ˆ¡@ S )Nr°   r±  r   rS  r  r  r  r.   r/   rT   l  s    
ÿþýrW  c                    sH   t  | d ˆ¡t  | d ˆ ¡@ t  | d ˆ¡@ | d dk@ | d dk @ S )Nr   r°   rS  r   r±  r  r  r  r.   r/   rT   t  s    ÿþ
ý
üNz2Density calculations experimental for FFT method.*rA   r°   rS  r   r   ©r7   r6   rw  r  ÚcalcÚabserrÚrelerrrý   z8pdf test %s failed with method '%s' [platform: %s]
%s
%sF©Úerr_msgÚverbose)ÚplatformÚunameÚsystemÚmachineÚjoinÚ	processorrÚ  r2   râ  Úpdf_default_methodr   Úrecordr  r:   re   rƒ  r   r}   Úisnanr   r�   rÓ  )rÃ   rÜ  r	  r  r  r–   r  Zplatform_descÚtestsÚixÚdefault_methodrq   Úfilter_funcÚsubdataÚsuprý   Úsubdata2Úfailuresr.   r  r/   Útest_pdf_nolan_samplesØ  sš    ÿ
  ÿO  ÿ  ÿ  ÿ
  ÿ	  ÿ‹ ÿÿÿþûýý	
ÿÿÿþøz%TestLevyStable.test_pdf_nolan_samplesc                    s˜  |}dd‡ ‡‡fdd„gdd‡ ‡‡fdd„gdd‡ ‡‡fd	d„gdd
‡ ‡‡fdd„gdd‡ ‡‡fdd„gdd‡ ‡‡fdd„gg}t |ƒD �]\}\}}	}
|tj_|
dk	r´||
|ƒ n|}tƒ �Î}| td¡ tjj|d |d |d ddd�}tj	dd��H t
|dddg|t ||d  ¡t ||d  ¡t |d ¡ gƒ}W 5 Q R X ||d |	kt |¡B  }t||d |	d|||jj|f dd � W 5 Q R X qˆdS )!z4 Test cdf values against Nolan's stablec.exe output.r
  rÀ  c              	      sŽ   t  | d ˆ¡t  | d ˆ ¡@ t  | d ˆ¡@ | d dkt  | d dddg¡@ | d dk@ | d dkt  | d d	d
dg¡@ | d dk@ B  @ S ©Nr   r°   rS  rÞ   r  r¯  r°  rj   r_   r;  r0  r^  r  r  r  r.   r/   rT   Ë  s$    ÿþ
ÿ
þ
ÿ
þúÿýz7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>r1  c                    sŒ   t  | d ˆ¡t  | d ˆ ¡@ t  | d ˆ¡@ | d dkt  | d dddg¡@ | d dk@ @ | d dkt  | d d	d
dg¡@ | d dk@ B S r(  r  r  r  r.   r/   rT   à  s"    ÿþ
ÿ
þü	
ÿ
þ÷r  rÙ  c                    s<   t  | d ˆ¡t  | d ˆ ¡@ t  | d ˆ¡@ | d dk@ S )Nr   r°   rS  ç333333û?r  r  r  r.   r/   rT   ò  s    ÿþ
ýr~  c                    sH   t  | d ˆ¡t  | d ˆ ¡@ t  | d ˆ¡@ | d dk@ | d dk@ S )Nr   r°   rS  r.  r)  r  r  r  r.   r/   rT   ú  s    ÿþ
ý
ür�  c                    sH   t  | d ˆ¡t  | d ˆ ¡@ t  | d ˆ¡@ | d dk@ | d dk@ S )Nr   r°   rS  çÍÌÌÌÌÌô?r.  r  r  r  r.   r/   rT     s    ÿþ
ý
ürj   c                    sH   t  | d ˆ¡t  | d ˆ ¡@ t  | d ˆ¡@ | d dk@ | d dk@ S )Nr   r°   rS  rÞ   r*  r  r  r  r.   r/   rT     s    ÿþ
ý
üNz[Cumulative density calculations experimental for FFT method. Use piecewise method instead.*rA   r°   rS  r   r   r  rw  r  r  r  r  rý   z)cdf test %s failed with method '%s'
%s
%sFr  )rÚ  r2   râ  Úcdf_default_methodr   r  r  rD   re   rƒ  r   r}   r  r   r�   rÓ  )rÃ   rÝ  r	  r  r  r–   r  r   r!  rq   r"  r#  r$  rý   r%  r&  r.   r  r/   Útest_cdf_nolan_samples®  sŠ      ÿ  ÿ  ÿ	  ÿ
  ÿ
  ÿ½Nÿÿÿþûýý	
ÿÿÿúz%TestLevyStable.test_cdf_nolan_samplesr®   rú  r:   rD   c           
      C   sÀ   t  ¡ }|jdko dt  ¡ d k}|r8|dkr8t d¡ |}dtj_dtj_	||d |k }d|› �tj_
|d	ksvt‚|dkr†tjjntjj}||d
 |d |d ddd�}	t|	|| dƒ dS )zGTests for pdf and cdf where loc, scale are different from 0, 1
        rü  Ú32bitr   r:   z4Test unstable on some platforms; see gh-17839, 17859r
  r®   ÚS)r:   rD   rA   r°   rS  r8   r‡   r  rÙ  N)r  r  r  Úarchitecturer¨   Úskipr2   râ  r+  r  rà  rZ   r:   rD   r   )
rÃ   rÞ  r®   rú  r  r  r–   r#  rY  rÈ  r.   r.   r/   Útest_location_scale>  s(    
ÿ    ÿz"TestLevyStable.test_location_scalezmethod,decimal_placesrÿ  r  r
  c                 C   sþ   t  ddddddddddddddddddddg¡}t  dddd	d
dddddddddddddddg¡}t  ddddddddddddddddddddg¡}t jdd��R tƒ �@}|jtdd� |tj_tjj	|d|ddd �}t
||||ƒ W 5 Q R X W 5 Q R X d!S )"zˆ sample points extracted from Tables and Graphs of Stable
        Probability Density Functions - Donald R Holt - 1973 - p 187.
        r   r   r8   r‡   r  gtF”ö_Ô?gÆÜµ„|ÐÓ?g¸…ëQ¸Ò?g€·@‚âÇÐ?g¯”eˆc]Ä?gŽðHPÄ?gò°PkšwÄ?g!°rh‘íÄ?gÊTÁ¨¤N°?gÓÞà“©²?gDioð…É´?g¦›Ä °r¸?g¹�ðH ?g+‡ÙÎ÷£?gHPüs§?gâX·Ñ ®?g¥½Á&“?gí¾0™*˜?gÉv¾Ÿ/�?ga2U0*©£?rô   rh   rw  ©rÎ   zDensity calculation unstable.*)ÚcategoryÚmessager  N)re   r   rƒ  r   rX   r  r2   râ  r  r:   r   )rÃ   ra  Zdecimal_placesZxsÚdensityZbetasr$  r:   r.   r.   r/   Ú'test_pdf_alpha_equals_one_beta_non_zero`  s|    *ÿ                 ýÿ                  þÿþ   ÿz6TestLevyStable.test_pdf_alpha_equals_one_beta_non_zerozparams,expected)rè  ré  r   r   )r8   r9  ra   r.  )ra   rh  r   r   c                 C   s4   t jj |d |d |d |d dd�}t||ƒ d S )Nr   r   r8   r‡   rˆ  r-  )r2   râ  r   )rÃ   Úparamsr]   Zobservedr.   r.   r/   rŒ  ‡  s       þzTestLevyStable.test_statsr°   zfunction,beta,points,expectedrÞ   içÿÿÿra   rm   rÈ  r|  c                 C   s>   d|  k rdk sn t ‚t||||d�t t|ƒ|¡ƒ dS )a\  Ensure the pdf/cdf routines do not return nan outside support.

        This distribution's support becomes truncated in a few special cases:
            support is [mu, infty) if alpha < 1 and beta = 1
            support is (-infty, mu] if alpha < 1 and beta = -1
        Otherwise, the support is all reals. Here, mu is zero by default.
        r   r   )r°   rS  N)rZ   r   re   r%  r£   )rÃ   r°   rY  rS  r®  r]   r.   r.   r/   Ú!test_distribution_outside_support•  s
    (þz0TestLevyStable.test_distribution_outside_supportN)#rç   rè   ré   r¨   r`  rÜ  rÝ  rÞ  rI  r�  r®   rJ  rÖ   rç  rI  r½  ró  rô  rõ  rø  re   rã   Úxslowr'  r,  r1  r6  r¬   ÚNaNrŒ  r2   râ  rD   r:   r8  r.   r.   r.   r/   rÐ  ü  sü   
!
+
 ÿÿ 
ÿþþ ÿýüüôÿ
 Býüüôÿ
{ þþ
 þþ
üüüüíþrÐ  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 )Nru   r›  rå  )r2   r´  r�   re   r§   rX  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 k	r tdt jj ¡ kƒ t jjd k	r@tdt jj ¡ kƒ d S )Nr¹   r
  )r2   r¹   r€  r   Úlowerr
  rÂ   r.   r.   r/   Útest_docstringsÏ  s    zTestDocstring.test_docstringsc                 C   s   t  ¡  t  ¡  d S rd   )r2   rL   rK   rÂ   r.   r.   r/   Útest_no_name_argÖ  s    zTestDocstring.test_no_name_argN)rç   rè   ré   r@  rA  r.   r.   r.   r/   r>  Î  s   r>  c                  C   s¸   t dddddddgƒ} t| dk| dƒ\}}t|dddddgƒ t|dddddgƒ tddk| dƒ\}}t|| d ƒ t|dgƒ t| dk| dƒ\}}t|| ƒ t|dgt | ¡ ƒ d S )Nr   r‡   r8   r   )r   r   r   r;   rÇ   ©r,   r-   r  r.   r.   r/   ÚTestArgsreduceÜ  s    
rC  c                   @   s²   e Zd ZdddgZdd„ Zdddg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j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_methodr¹  r´  r�  z	dist,argsc                 C   sz   || j k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� t	t
|j|dd� d	S )
r  z"%s fit known to fail or deprecatedrs  rt  ru  rv  rw  r   rK  N)ÚfitSkipNonFiniter¨   r0  re   r   r«   r¬   rº   r2   r  rª   r’   )rÃ   rI   r¼   rA   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��d 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 5 Q R X d S )Ni90  rw  r2  rô   rm   ç      4@ri  rÆ   r8   r   r~  rV  r{   )re   r   r‚   rƒ  r2   r¸   r�   rc  r  r  r   r   r’   )rÃ   rA   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‡   r8   rJ  rK  )re   r§   r2   r´  r’   r   rc  r   ©rÃ   rA   r6   r7   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   rJ  ru   rá   ru  ©r�   rš   r8   r~  )re   r§   r  r  r2   r‹  r’   r   r   Zdigammar   )rÃ   rA   Zmeanlogrš   r,   r6   r7   r@   r�   r›   r  r.   r.   r/   Útest_fix_fit_gamma  s6    






z TestFitMethod.test_fix_fit_gammac              	   C   s¼  dd„ }t  dddg¡}tjj|ddd�\}}}}t|dƒ t|dƒ t||||ƒddgd	d
� t  dddg¡}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  dddg¡}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 rˆ   )r£   re   r  rõ   r   Úpsi)r,   r-   rA   rü   Ús1r   Zpsiabr—   r.   r.   r/   ÚmlefuncA  s    ÿz0TestFitMethod.test_fix_fit_beta.<locals>.mlefuncr•  rô   rh   r   r   r~  rW  r{   r8   )r�   rš   r›   rÙ  )rž   rš   r›   )rš   r›   r�   )rš   r›   rž   r‡   )r�   rž   rš   r›   )
re   r   r2   rS  r’   r   r   r   r  rª   )rÃ   rP  rA   r,   r-   r6   r7   ÚdaÚdbrE  re  Úb2rf  rg  r*  r.   r.   r/   Útest_fix_fit_beta>  s<    








 ÿzTestFitMethod.test_fix_fit_betac              
   C   s’   t  ddddddddg¡}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 )Nr8   r  ru  r‡   rK  r   rJ  )re   r   r2   r¹  r’   r   rJ  r.   r.   r/   Útest_expon_fitu  s    




zTestFitMethod.test_expon_fitc                 C   s  t  ddddddg¡}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 )Nr.  r‡   ra   rË   é   é;   r   rJ  r!  rp   r(  r~  r8   rì   )rš   Zfix_s)re   r   r  r2   r¸   r’   r   r  r   rŠ   r  rc  )rÃ   rA   Zlnxm1rÏ   r6   r7   r.   r.   r/   Útest_lognorm_fit„  s     
ÿ



zTestFitMethod.test_lognorm_fitc                 C   s¾   t  ddddg¡}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 )NrÞ   r	  r?  ç      "@r   rJ  ra   rK  rl   rß   )re   r   r2   r�  r’   r   rÑ  r  r“  r  rª   rJ  r.   r.   r/   Útest_uniform_fit˜  s    


zTestFitMethod.test_uniform_fitra  ZMLEZMMc              
   C   sn  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dddgƒ d}t jj|dd�}t jj|||d�\}
}}t|
|ƒ d S )N)r‡  r-  rb   rÀ   r0  r‡  )r�   ra  )rª  ra  r!  rO  )r«  ra  r-  )rž   ra  )rq  ra  )rp  ra  r   r8   )rª  r�   ra  r   r‡   )rª  rž   rš   r›   ra  )rª  rš   r›   ra  rÆ   )	r2   rS  r�   r’   r   r  rª   r   r‹  )rÃ   ra  r,   r-   rA   Zres_1Zres_2Zres_3Zres_4Zres_5ZaaZbbrü  Ússr–   r.   r.   r/   Útest_fshapesª  s2      ÿzTestFitMethod.test_fshapesc                 C   s<   t j}|jddd�}tdd�}tt|j|f|d|i—Ž d S )Nr8   rb   )r‡  rÇ   i›ÿÿÿ)Zenikibenikira  )r2   r†  r�   r¥   r  r­   r’   )rÃ   ra  rI   r–   r»   r.   r.   r/   Útest_extra_paramsÒ  s    
zTestFitMethod.test_extra_paramsN)rç   rè   ré   r0  rÄ   rF  r¨   rI  r�  r   rG  rI  rK  rM  rT  rU  rX  rZ  rJ  r\  r]  r.   r.   r.   r/   rD  ì  s"   



	&7&rD  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 )Nrg  r‡  r5   rH  rô   r8   )r2   r´  r:   r   rD   r  r  r  r6  r  r1  r  rN   rY  r,   r-   )rÃ   rI   Ú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 )Nrl   rH  rô   rg  r8   )r2   r‹  r:   r   rD   r  r  r  r6  r  r1  r  rN   rY  r,   rI   r-   )rÃ   r,   rI   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   r8   rˆ  r‰  )r2   r¸   rY  r   )rÃ   r_  Úm1ré  r.   r.   r/   Útest_regression_ticket_1293K  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k	ƒ dD ]l}t |¡}t j|d�}|j|j	 }}t|dƒ t
t |¡ƒ t d¡}t j |¡\}}t||gdd	gƒ qàd S )
Nr°  rŒ  rm   rg  r_   r   r…  r†  rh   )r2   rˆ  rI   r‰  r   r:   re   r¬   r,   r-   r   r‡  rŠ  r   )rÃ   r  rŽ  r,   r-   Zrv1r.   r.   r/   r‹  Z  s2    



zTestFrozen.test_abc                 C   s   t ttjdƒƒ d S )NZ	rv_frozen)r   r+   r2   r3   rÂ   r.   r.   r/   Útest_rv_frozen_in_namespace†  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 )Nrz   é*   rÀ   ru  r0  )r2   r´  r   r+   rz   r   Z	get_statere   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ddddgdd	d
dg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 ¡ƒ q@d S )Ng�µds’z@g@ø¯eä?r‡  r   r   r8   r‡   r_   r;  r0  rö  r7  rÀ   ru  rÆ   rh   )r2   rS  r½  rK   rz   r�   ÚpickleÚdumpsÚloadsr   r  rD   )
rÃ   rS  Zpoissr1  Údistfnr@   Zr0Z	unpickledÚr1Zmediansr.   r.   r/   Útest_pickling˜  s$    

ÿ


ÿzTestFrozen.test_picklingc              
   C   s    dd„ }t jdddd�}tjddd��2 |j|d	dd
d�}t jj|dddd	dd
d�}W 5 Q R X t||ƒ t jddd�}| |¡}t jj|ddd�}t||ƒ d S )Nc                 S   s   | S rd   r.   r‰   r.   r.   r/   r—   ³  s    z$TestFrozen.test_expect.<locals>.funcr8   r‡   r  )r,   r6   r7   rw  )ry  Údivider   T)r�   ÚubÚconditional©r8   ©r¼   r6   r7   r�   rn  ro  ©r6   )r‡   ©r¼   r6   )r2   r‹  re   rƒ  r‹   r   r½  )rÃ   r—   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µ  ra  rc  r‹  rd  rf  rl  rt  r.   r.   r.   r/   r^  Û  s   34,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	e
j d¡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 )Nru   r.   r‰   r.   r.   r/   rT   É  rU   z&TestExpect.test_norm.<locals>.<lambda>ru   r8   r5   r  rÆ  rá   c                 S   s   | S rd   r.   r‰   r.   r.   r/   rT   Ì  rU   r1  r¿  c                 S   s   dS rˆ   r.   r‰   r.   r.   r/   rT   Ñ  rU   ©r6   r7   r�   rn  r9  c                 S   s   dS rˆ   r.   r‰   r.   r.   r/   rT   Ô  rU   T©r6   r7   r�   rn  ro  rÞ   )r2   r´  r‹   r   r  )rÃ   rõ  rô  r�   rn  Ú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 )NçUUUUUU@r.   r‰   r.   r.   r/   rT   Ú  rU   z&TestExpect.test_beta.<locals>.<lambda>r›  ru   r8   )r¼   r6   r7   çÇqÇq¬?rÉ  rá   c                 S   s   | S rd   r.   r‰   r.   r.   r/   rT   Þ  rU   rß   rl   rz  r¿  ra   r5   r1  c                 S   s   dS )NrÞ   r.   r‰   r.   r.   r/   rT   ã  rU   )ra   ra   Frq  r9  c                 S   s   dS rˆ   r.   r‰   r.   r.   r/   rT   ç  rU   TrÞ   )r2   rS  r‹   r   r  )rÃ   rõ  rô  rn  r�   rx  ry  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 )Nri  ra   ru  rß   rr  c                 S   s   | S rd   r.   r‰   r.   r.   r/   rT   ð  rU   z+TestExpect.test_hypergeom.<locals>.<lambda>)ri  ra   ru  rs  rÉ  rá   c                 S   s   | d d S ©NrY  r8   r.   r‰   r.   r.   r/   rT   ó  rU   rÆ  c                 S   s   | d d S r}  r.   r‰   r.   r.   r/   rT   ø  rU   ru   )r¼   r6   r�   rn  r   c                 S   s   dS rˆ   r.   r‰   r.   r.   r/   rT   ÿ  rU   r(  rà   c                 S   s   dS rˆ   r.   r‰   r.   r.   r/   rT     rU   T)r¼   r6   r�   rn  ro  c                 S   s   dS rˆ   r.   r‰   r.   r.   r/   rT   	  rU   r   )r¼   r�   rn  )r2   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ë  s@    ÿ  þ"  ÿ  ÿ ÿ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/   rT     rU   z)TestExpect.test_poisson.<locals>.<lambda>rp  r‡   F)r¼   r�   ro  r   r8   rÆ  rá   c                 S   s   dS rˆ   r.   r‰   r.   r.   r/   rT     rU   T)r2   r½  r‹   rD   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.  rB  )rh   rÆ  rá   )r2   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ç  ç®Gáz®ç?c                 S   s   dS rˆ   r.   r‰   r.   r.   r/   rT   '  rU   z/TestExpect.test_rice_overflow.<locals>.<lambda>)rƒ  rB  c                 S   s   dS rJ  r.   r‰   r.   r.   r/   rT   (  rU   c                 S   s   dS ©Nr‡   r.   r‰   r.   r.   r/   rT   )  rU   )r   re   r5  r2   Úricer:   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)r0  r‡   c                 S   s   | S rd   r.   ©r>   r.   r.   r/   rT   .  rU   z(TestExpect.test_logser.<locals>.<lambda>rB  rÞ   ro   r{   c                 S   s   | S rd   r.   r‡  r.   r.   r/   rT   4  rU   rs  )r2   rS  r‹   r   re   r  )rÃ   rý   r6   Zres_0Zres_lr.   r.   r/   Útest_logser+  s     ÿzTestExpect.test_logserrŸ  c                 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 rd   r.   r‰   r.   r.   r/   rT   <  rU   z)TestExpect.test_skellam.<locals>.<lambda>rB  c                 S   s   | d S rJ  r.   r‰   r.   r.   r/   rT   =  rU   r!  r{   r8   )r2   rœ  r‹   r   )rÃ   r   Úp2rb  ré  r.   r.   r/   Útest_skellam7  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 rd   r.   r‰   r.   r.   r/   rT   E  rU   z)TestExpect.test_randint.<locals>.<lambda>c                 s   s   | ]
}|V  qd S rd   r.   ©rH   r7  r.   r.   r/   rI  G  s     z*TestExpect.test_randint.<locals>.<genexpr>ro   r{   )r2   rÍ   r‹   r   rõ   r\  )rÃ   ÚloÚhir�   r.   r.   r/   Útest_randintA  s     ÿzTestExpect.test_randintc                 C   s   t ttjjdd„ dƒ d S )Nc                 S   s   | d S rJ  r.   r‰   r.   r.   r/   rT   L  rU   z&TestExpect.test_zipf.<locals>.<lambda>rp  )r	   r  r2   rß  r‹   rÂ   r.   r.   r/   Ú	test_zipfI  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/   rT   P  rU   z/TestExpect.test_discrete_kwds.<locals>.<lambda>rp  rB  c                 S   s   dS rˆ   r.   r‰   r.   r.   r/   rT   Q  rU   rÖ  é    rV  )r¼   ZmaxcountÚ	chunksizeZ	tolerancerÆ  rá   )r2   r½  r‹   r   )rÃ   Zn0Zn1r.   r.   r/   Útest_discrete_kwdsN  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 )Nru   ra   r  r|  r‡   rË   r8   r.   r÷  r.   r.   r/   Úpoiss_moment5X  s    z-TestExpect.test_moment.<locals>.poiss_moment5)ru   rÉ  ru   r˜  rp   )r2   r½  rY  r   )rÃ   r”  rD  Zm5r.   r.   r/   Útest_momentU  s    zTestExpect.test_momentc                 C   sn   t tjjddd�dƒ t tjjddd�dƒ t tjjddd�dƒ t tjjdd�d	ƒ t tjjd
d�d
ƒ d S )Nr×   rÞ   r5   ré  ra   r_   )é”   rB  r–  éU   rr  )r   r2   r´  r‹   r‹  r:  rÂ   r.   r.   r/   Útest_challenging_cases_gh8928_  s
    z(TestExpect.test_challenging_cases_gh8928c                 C   sÄ   t j}|jddd�}t|jddd�|ƒ t|jddddd�|ƒ t|jddddd�|d	 ƒ t|jddddd
d�|ƒ t|jddddd�dƒ t|jddddd�dƒ t|jddddd
d�dƒ d S )Nra   ru   r5   r  rÀ  rv  rÏ  rÆ  r;  Trw  rÉ  g433333@g433333Àrà   )r2   r�  r  r   r‹   )rÃ   rI   r*  r.   r.   r/   Útest_lb_ub_gh15855h  s"    ÿÿÿÿzTestExpect.test_lb_ub_gh15855N)rç   rè   ré   rµ  r|  r  r€  r‚  r†  rˆ  r¨   rI  r‚  rŠ  r�  r�  r“  r•  r˜  r™  r.   r.   r.   r/   ru  Ã  s   "
	

	
	ru  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 )Nru   r   rh   rn  g’ã ÑKìê?ra   rá   )r2   Únctr   rD   r   r“  r.   r.   r/   Útest_nc_parameter  s    zTestNct.test_nc_parameterc              	   C   sf   t j dt dd¡d d …d f t ddd¡¡}tdddd	gd
dddgddddggƒ}t||dd� d S )Nru   r  rÉ  r_   r   g—ÛÅMp^j?g6].ftÕv?gÈ³ìÅ'Ï‚?g¸«ÛÉu��?g¯!Y<ÌÉa?g£]d†¶1p?gŠoß|?gªÍæî‡?gÕHd‚ŽY?g2‹Ô¤©Øg?g}oü/ƒu?gÄ .mÝr‚?rÙ  rp   )r2   r›  r:   re   r§   rã   r   r   )rÃ   r�   r]   r.   r.   r/   Útest_broadcasting‡  s    ÿ

þzTestNct.test_broadcastingc                 C   s   t  dd¡}t| ¡ dƒ d S )Nr  r   rl   )r2   r›  r   r1  r“  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 )Nr9  r0  rˆ  )r   ÚncrŠ  r±  r
  )r2   r›  r   re   r«   r   r5  rÎ   rj  r.   r.   r/   Útest_nct_inf_moments—  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 )Nrv   r8   g‡@ @gå*‘dnð?r   r˜  rp   r4  g½qIÝ  @gLºñ) ð?rw  )r2   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_values¤  s    
ÿÿz&TestNct.test_nct_stats_large_df_valuesN)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 )
ÚTestRecipInvGaussc                 C   s   t j dd¡}|dkst‚d S )Nr   r;  rm   )r2   Úrecipinvgaussr:   rZ   r  r.   r.   r/   Útest_pdf_endpoint½  s    z#TestRecipInvGauss.test_pdf_endpointc                 C   s"   t j dd¡}|tj kst‚d S )Nr   r;  )r2   r£  r…   re   r¬   rZ   r?  r.   r.   r/   Útest_logpdf_endpointÁ  s    z&TestRecipInvGauss.test_logpdf_endpointc                 C   s$   t j dd¡}d}t||dd� d S )Nr1  rh   g9V9�só;r¢  rp   )r2   r£  rD   r   ©rÃ   rý   r]   r.   r.   r/   Útest_cdf_small_xÅ  s    z"TestRecipInvGauss.test_cdf_small_xc                 C   s"   t j dd¡}d}t||dƒ d S )NéP   rh   glæ‘ÄæH<ç›+¡†›„ö<)r2   r£  r  r   r¦  r.   r.   r/   Útest_sf_large_xÙ  s    z!TestRecipInvGauss.test_sf_large_xN)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 )ÚTestRicec                 C   sú   dddg}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�¡ ¡ ƒ ddddg}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 )Nr;  rÞ   rß   rm   ©r-   r_   rh   r9  r   rˆ  r‰  rV  rO  )r   re   r5  r2   r…  r:   rÎ   r…   rD   r)  r  r   )rÃ   rA   r  rˆ  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 )Nr‡  r¬  r   )r‡   ru   )r-   rÇ   )r2   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¡¡}ddddddd	d
dddddddg}t||ƒ t ddd¡}t jj|ddd�}dddddddddg	}t||ƒ tj j d t dd!d¡¡}d"d#d$d%d&d'd(d)d*d+d,d-d.d/g}t||ƒ d S )0Nra   é    g/¨�Æ¸Þ?g�[jÇŠ\ß?gÅ ›	“ß?g«9âLJ®ß?gá#§O¢¾ß?gËXïx‡Éß?g•—l¨OÑß?gÙ¥aÃ%×ß?gVzßÓ¯Ûß?gTQ+xQßß?g?Ù`Jâß?g—oôêÃäß?gbu=Üæß?gIo|ñ§èß?gÝ"Z6êß?r_   r   g     @_@r  r³  gÞÚÜî<î~@gwÂ�¢d
@gCŽ?å±@gçbÃ
0@gÚ` ‰A@@g'†êNxP@g3™3-Ña@g»Ñ4pv@gÎã�$F’@rh   é–   gøJ-”$@gàî+f4@gce*D>@g�$”™D@gnÚH«GI@g¤ärN@g<
Îu€Q@giff T@g9ýr[€V@g3bXëQ Y@gqãxJ€[@g`*DD ^@güðí�@`@gdöËA€a@)r2   r…  rD   re   r§   r   r  r1   )rÃ   rD   Zcdf_expZprobabilitiesr  Zppf_expr.   r.   r/   Útest_rice_gh9836û  sT    "        ü
    þ
       ü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   sv   t  ¡ �d t  dt¡ tttjjddddd� ddd	d
g}tjj|dd�}tj	j|dd�}t
||dd� W 5 Q R X d S )Nrú   r*  r   r   r  rå  rh   rÞ   rl   r-  rï  r�  rp   )rþ   rÿ   r   r  r  r2   Úerlangr�   r’   r‹  r   )rÃ   r–   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 )Nrh   r   rn  rá  )r   r2   r³  r:   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                   @   sp   e Z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gg¡dd„ ƒZ
dd„ Zdd„ ZdS )ÚTestRayleighc                 C   s   t j d¡ d S )Nrä  rÁ   rÂ   r.   r.   r/   rÄ   B  s    zTestRayleigh.setup_methodc                 C   s   t j d¡}t|dƒ d S )NrÉ   gò)¤Zx“À)r2   r¹   r…   r   ©rÃ   r*  r.   r.   r/   r
  F  s    zTestRayleigh.test_logpdfc                 C   s   t j d¡}t|dƒ d S )NrÉ   iûÿÿ)r2   r¹   r�  r   r·  r.   r.   r/   r©  J  s    zTestRayleigh.test_logsfzrvs_loc,rvs_scale)gÑBÀ)ÅQë?g¾ot|Ñë?)gºS2ç¶PÊ?gï¢3þ·ã?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$  rA  c                 S   s"   t  | | d ¡dt| ƒ  d S )Nr8   rh   )re   rõ   r£   )r–   rš   r.   r.   r/   rñ  S  s    z(TestRayleigh.test_fit.<locals>.scale_mlerJ  r;  rK  )r2   r¹   r�   r’   r   )rÃ   rl  rm  r–   rñ  Zscale_expectr6   r7   r.   r.   r/   rI  N  s    



zTestRayleigh.test_fitrƒ  rj   gÌ¡=E«µ?g@1²dŽå¾?c                 C   sH   t jjd||d�}|t j |¡fg}t j |i ¡d }tt j||ƒ d S )Nr$  rA  r   )r2   r¹   r�   rF  rL  r™   )rÃ   rl  rm  r–   r¼   r—   r.   r.   r/   Ú test_fit_comparison_super_methodg  s    z-TestRayleigh.test_fit_comparison_super_methodc                 C   s   t tjƒ d S rd   )r¯   r2   r¹   rÂ   r.   r.   r/   r€  t  s    zTestRayleigh.test_fit_warningsc           	      C   s‚   t j d¡}d\}}}tjj||||d�}tj |¡\}}|t  |¡k sLt‚tjj||d�\}}|t  |¡k srt‚||ks~t‚d S )NiÈ  )rÉ   r  r  r0  rK  )	re   r   r€   r2   r¹   r�   r’   rÑ  rZ   )	rÃ   rŽ   r6   r7   rÇ   r�   Zloc_fitr7  Z	scale_fitr.   r.   r/   Útest_fit_gh17088w  s    
zTestRayleigh.test_fit_gh17088N)rç   rè   ré   rÄ   r
  r©  r¨   rI  r�  rI  r¸  r€  r¹  r.   r.   r.   r/   r¶  A  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 )Nr_   rÞ   g      Y@g:±2Ë3WË+gõÔ~`9ëkÀ)r2   Ú	exponweibr:   r…   r   )rÃ   rA   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  rn  r  r   rb   )re   r  r2   r»  r:   Úweibull_minr   r…   ©rÃ   rA   r,   r  rý   r]   r	  r.   r.   r/   Útest_a_is_1‘  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   ra   )re   r  r2   r»  r:   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 )NrF  rd  ç”Äì‘X·à9rx   rp   )r2   r²   r  r   r  r.   r.   r/   r–  ²  s    zTestFatigueLife.test_sf_tailc                 C   s$   d}t j |d¡}t|ddd� d S )NrÂ  rd  rF  rx   rp   )r2   r²   r  r   )rÃ   rý   r  r.   r.   r/   Útest_isf_tailÀ  s    zTestFatigueLife.test_isf_tailN)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 )ÚTestWeibullc                 C   s   t j dd¡}t|dƒ d S r  )r2   r½  r…   r   r·  r.   r.   r/   r
  É  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.  rl   r‡  r³  r  r‡   rÅ   r8   ro  r?  g•Ö&è.¾gC‚º¨e ¼)r2   r½  r:   r   re   rŠ   r…   r  rD   r   rÌ  r)  r  r�  Zweibull_max)
rÃ   rA   r,   r-   rý   r,  r  Úlcr@   rã  r.   r.   r/   Útest_with_maxima_distribÎ  sH    


z$TestWeibull.test_with_maxima_distribc                 C   sê   t j d¡}d\}}}t |||¡}|jd|d�}tjj|ddd�\}}}	tjj|ddd�\}
}}||  krvdks|n t‚||
ksˆt‚tjj|ddd	d
�\}}}|dks®t‚t |||¡}|jdd�}t  |¡t 	|¡f}t
||ƒ d S )Nl   â£>“ )r8   re  rh   rb   r0  r.  r‡   rJ  r  r_  r`  rb  r‰  )re   r   r€   r2   r½  r�   r’   rZ   r  r2  r   )rÃ   rŽ   r  r6   r7   rI   r�   Úc2rf  rg  Úc3ri  rj  Zc4rk  rl  rm  r�   r*  r.   r.   r/   Útest_fit_min"  s    
zTestWeibull.test_fit_minN)rç   rè   ré   r
  rÆ  rÉ  r.   r.   r.   r/   rÄ  Ç  s   TrÄ  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 )ÚTestTruncWeibullc                 C   s(   t j ddgddd¡}t|ddgƒ d S )Nr_   rl   g)\�Âõ(¼?g×£p=
×ÿ?rm   )r2   Útruncweibull_minr:   r   r·  r.   r.   r/   Útest_pdf_bounds<  s    z TestTruncWeibull.test_pdf_boundsc                 C   s>   t j dddtj¡}t|dƒ t j dddd¡}t|dƒ d S )Nrl   rÞ   rm   r-  g€öø~èœÂ?)r2   rË  r…   re   r¬   r   r   r·  r.   r.   r/   r
  A  s    
zTestTruncWeibull.test_logpdfc                 C   s(   t j ddgddd¡}t|ddgƒ d S )Nrm   rÞ   rl   r_   )r2   rË  r  r   r·  r.   r.   r/   Útest_ppf_boundsI  s    z TestTruncWeibull.test_ppf_boundsc                 C   sD   dddddddg}t j |ddd	¡}t j |ddd	¡}t||ƒ d S ©
Nrm   r_   rô   rh   rì   r9  rÞ   rl   r‡  )r2   rË  r  rD   r   ©rÃ   r  rA   Zq_outr.   r.   r/   Útest_cdf_to_ppfN  s    z TestTruncWeibull.test_cdf_to_ppfc                 C   sD   dddddddg}t j |ddd	¡}t j |ddd	¡}t||ƒ d S rÎ  )r2   rË  r  r  r   rÏ  r.   r.   r/   Útest_sf_to_isfT  s    zTestTruncWeibull.test_sf_to_isfc                    s  d‰d‰ d‰‡ ‡‡fdd„‰t j dˆˆ ˆ¡}t|dƒ t j dˆˆ ˆ¡}t‡fdd	„ˆ ˆƒ\}}t||ƒ t j d
ˆˆ ˆ¡}t‡fdd	„ˆ ˆƒ\}}t||ƒ t j dˆˆ ˆ¡}t‡fdd	„ˆ ˆƒ\}}t||ƒ t j dˆˆ ˆ¡}	t‡fdd	„ˆ ˆƒ\}
}t|	|
ƒ d S )Nrl   rÞ   r‡  c                    s   | | t j | ˆˆ ˆ¡ S rd   )r2   rË  r:   )rA   rü   rB  r.   r/   Úxnpdf_  s    z)TestTruncWeibull.test_munp.<locals>.xnpdfr   r   c                    s
   ˆ | dƒS rˆ   r.   r‰   ©rÒ  r.   r/   rT   f  rU   z,TestTruncWeibull.test_munp.<locals>.<lambda>r8   c                    s
   ˆ | dƒS rJ  r.   r‰   rÓ  r.   r/   rT   j  rU   r‡   c                    s
   ˆ | dƒS r„  r.   r‰   rÓ  r.   r/   rT   n  rU   r  c                    s
   ˆ | dƒS )Nr  r.   r‰   rÓ  r.   r/   rT   r  rU   )r2   rË  rY  r   r   r   )rÃ   rð  rb  Zm1_expectedr7  ré  Zm2_expectedZm3Zm3_expectedrê  Zm4_expectedr.   )r,   r-   r  rÒ  r/   Ú	test_munpZ  s$    



zTestTruncWeibull.test_munpc                 C   sò   d}d}d}t  dt  dt  dt  d¡  ¡ ¡ ¡}tj ||||¡}t|dƒ tj ||||¡}t|t  d¡ ƒ tj 	d|||¡}t||ƒ tj 
||||¡}t|dƒ tj ||||¡}	t|	t  d¡ ƒ tj d|||¡}
t|
|ƒ d S )NrÞ   r‡  rl   r   rh   rý  )re   rc  r  rŠ   r2   rË  rD   r   r)  r  r  r�  r  )rÃ   r,   r-   r  Zx_medrD   rÅ  r  r  rã  r  r.   r.   r/   Útest_reference_valuesu  s     *


z&TestTruncWeibull.test_reference_valuesc                 C   sŒ  d}d}d}t j}d}tjj|||d�}tjj|||||d�}t||ƒ tjj|||d�}tjj|||||d�}	t||	ƒ tjj|||d�}
tjj|||||d�}t|
|ƒ tjj	|||d�}tjj	|||||d�}t||ƒ tjj
|||d�}tjj
|||||d�}t||ƒ tjj|||d�}tjj|||||d�}t||ƒ tjj
dd||dd�}t|t  d	¡ƒ tjjdd||dd�}t|d	ƒ d S )
Nr.  rl   rm   r‡  r³  rÅ   r8   r‡   ro  )re   r¬   r2   r½  r:   rË  r   r…   rD   r)  r  r�  rŠ   )rÃ   rA   r  r,   r-   r7   rý   Zp_truncr,  Zlp_truncrD   Z	cdf_truncrÅ  Zlc_truncr@   Zs_truncrã  Zls_truncr.   r.   r/   Útest_compare_weibull_min�  s6    





z)TestTruncWeibull.test_compare_weibull_minc           
      C   sª   d\}}}t  ||d¡}tj ||||¡}tj ||||¡}tj ||¡tj ||¡ }tj ||¡| }tj ||¡tj ||¡ | }	t j ||¡ t j ||	¡ d S )N)rd  rô   ç      ô?rb   )	re   rã   r2   rË  r:   rD   r½  Útestingr   )
rÃ   r  r,   r-   rA   r¯  rÃ  r´  r°  rÄ  r.   r.   r/   Útest_compare_weibull_min2¶  s    
 z*TestTruncWeibull.test_compare_weibull_min2N)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S )Ú	TestRdistc                 C   s2   t j}dddg}t| | |d¡d¡|dd� d S )Nr�  rh   rŽ  g     è€@ru   rá   )r2   Úrdistr   rD   r  )rÃ   rj  r3  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 )Ng®Gáz®ï¿r^  ra   gš™™™™™@rh   r8   r   )re   rã   r   r2   rS  r:   rÛ  )rÃ   rA   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   sd   ddddg}|D ]N}d|dg}t tj |||¡tj ||¡ƒ t tj |||¡tj ||¡ƒ qd S )Nr   r0  rh   r   )r   r2   r   r:   ÚtriangrD   )rÃ   ÚmodesÚmoderA   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   ra   )re   rã   r   r2   r   r:   r�  rD   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   r8   r   rh   rÁ  r   r;  rÞ   r_   g      ä?r×  r9  g       ?r•  g      ï?)r   r2   r   r:   rD   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Ú  rn  r8   r‡   r8   c                    sT   ˆˆ| d  ˆ| d   ˆˆ  ˆ| d  ˆ | d   ˆˆ     | d  | d  S )Nr8   r   r.   )rü   ©r,   r-   r  Údrø   r.   r/   rY    s     ÿþþz6TestTrapezoid.test_moments_and_entropy.<locals>.momentr   rh   rÉ  rá   r   rÚ  r(  rn  r‡   )re   r  r   r2   r   r  r1  rN   )	rÃ   r   r‰  r6   r7   rY  r  r1  rN   r.   ræ  r/   Útest_moments_and_entropyú  s,    0> ÿ ÿ ÿz&TestTrapezoid.test_moments_and_entropyc                 C   sf  t  dddg¡}t  ddg¡d d …d f }t  dddg¡}tj |||¡}t  |||¡\}}}t j|j|jd	�}t  	|j¡}	t
|	| ¡ | ¡ | ¡ ƒD ] \}
}}}tj |||¡||
< q–t|| |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 )Nr_   r;  r0  rh   r;  rC  rô   r9  r(  ro   r{   rˆ  r‰  r  )re   r   r2   r   r:   Zbroadcast_arraysÚemptyrÇ   r�   r§   r¦   Úravelr   r/  rÏ   r‡  rÚ  )rÃ   r  rç  rA   rõ  ÚccÚddr  r�   ÚindrZ  rD  Ú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ã  )re   rã   r   r2   rO   r:   r�  r  r.   r.   r/   Ú
test_trapz/  s    zTestTrapezoid.test_trapzN)	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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 5 Q R X d S )NÚraiser2  r   rl   rh   rÞ   r   rm   r8   rì   rô   )re   rƒ  r   r2   rß  r:   rD   rÂ   r.   r.   r/   Útest_edge_cases6  s    zTestTriang.test_edge_casesN)rç   rè   ré   ró  r.   r.   r.   r/   rñ  5  s   rñ  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‘@g´Èv¾Ÿã?r   rÞ   r#  )r   r2   ÚmielkerY  re   r¬   r   r5  )rÃ   r>   r@   r.   r.   r/   rü  J  s    zTestMielke.test_momentsc                 C   s@   t  ddd¡}d\}}ttj |||| ¡tj |||¡ƒ d S )Nrj   rb   rÉ   )gš™™™™™@gHáz®G@)re   rã   r   r2   Úburrr:   rõ  )rÃ   rA   r>   r@   r.   r.   r/   Útest_burr_equivalenceQ  s    z TestMielke.test_burr_equivalenceN)rç   rè   ré   rü  r÷  r.   r.   r.   r/   rô  I  s   rô  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   )rh   r8   )r   r   )r8   rh   r†  rh   rÞ   )r   r8   rl   c                 S   s$   g | ]\}}}|j |jf|žŽ ‘qS r.   r  r  r.   r.   r/   rJ   d  s     z0TestBurr.test_endpoints_7491.<locals>.<listcomp>c                 S   s   g | ]\}}}|‘qS r.   r.   r  r.   r.   r/   rJ   e  s     c                 S   s$   g | ]\}}}|j |jf|žŽ ‘qS r.   )r…   r,   r  r.   r.   r/   rJ   h  s     c                 S   s   g | ]\}}}t  |¡‘qS r.   )re   r  r  r.   r.   r/   rJ   i  s     )r2   Zfiskrö  Úburr12r   )rÃ   r–   r  r  r.   r.   r/   Útest_endpoints_7491X  s    






ù	
zTestBurr.test_endpoints_7491c                 C   s<   d\}}t  ||¡  ¡ \}}d\}}t||ƒ t||ƒ d S )N)rß   r‡   )g¼©4U�“ö?g�Šˆ&MIÍ?)r2   rö  r   )rÃ   r  rç  r  ÚvarianceZmean_hcZvariance_hcr.   r.   r/   Útest_burr_stats_9544l  s
    
zTestBurr.test_burr_stats_9544c           	      C   sZ  d\}}t  ||¡  ¡ \}}tt |¡ƒ tt |¡ƒ d\}}t  ||¡  ¡ \}}tt |¡ƒ tt |¡ƒ d\}}t j t ddddg¡||¡\}}}}tt |¡ƒ tt |¡ƒ tt |¡ƒ tt |¡ƒ d\}}t j ddddg||¡\}}}}tt |¡ƒ tt |¡ƒ tt |¡ƒ tt |¡ƒ d\}}t j ddddg||¡\}}}}tt |¡ƒ tt |¡ƒ tt |¡ƒ tt |¡ƒ d\}}t j ddddg||¡\}}}}tt |¡ƒ tt |¡ƒ tt |¡ƒ tt |¡ƒ d	\}}t j ddddg||¡\}}}}tt |¡ƒ tt |¡ƒ tt |¡ƒ tt |¡ƒ d S )
N)rh   r‡   )r.  r‡   r   r8   r‡   r  )rd  r‡   )re  r‡   )rh  r‡   )r2   rö  r   re   r  r5  Ú_munpr   )	rÃ   r  rç  r  rû  Úe1Úe2Ze3Ze4r.   r.   r/   Útest_burr_nan_mean_var_9544w  sL    &    z$TestBurr.test_burr_nan_mean_var_9544N)rç   rè   ré   rú  rü  r   r.   r.   r.   r/   rø  W  s   rø  c                   @   sH  e Zd Zddddddddd	d
ddddddddddddddgZdddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0gZd1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHgZe eeef¡ZdIdJdKgZ	dLdMdNdOdPej
gZdQdRdSdOgZeeee	eeƒeƒƒZdTdUdLdMej
dVfdWdMej
dXfdLdNej
dYfgZdZd[„ Zejjd\d]„ ƒZej e¡Zd^Zeej ee¡d_ƒ�Ze  !e¡Z"W 5 Q R X ej #d`e"da ¡dbdc„ ƒZ$ej #d`e"dd ¡dedf„ ƒZ%ejjej &dg¡ej #d`e"dh ¡didj„ ƒƒƒZ'dkdl„ Z(ejj)dmdn„ ƒZ*ej #doe¡dpdq„ ƒZ+ejjej &dg¡drds„ ƒƒZ,ejj)dtdu„ ƒZ-dvdw„ Z.dxdy„ Z/dzd{„ Z0d|S )}ÚTestStudentizedRangeg¸…ëQø1@g33333³F@g
×£p=*K@gHáz®ÇM@g/Ý$@gÛù~j¼´!@g33333³$@g{®Gáz&@gh‘í|?5	@g¸…ëQ8@gé&1¬@g‘í|?5Þ@gš™™™™™@gßO�—n@g!°rh‘m@gB`åÐ"Û@rà  gÁÊ¡E¶s@g‘í|?5^@g/Ý$�@g“V-@g¾Ÿ/Ý$@gF¶óýÔø@g?5^ºI@gR¸…ë�V@gffffffl@gÍÌÌÌÌüp@g      r@gƒÀÊ¡… @gHáz®G/@g¸…ëQ82@g…ëQ¸Å3@g!°rh‘í@g     €@g+‡Ù@gÁÊ¡E¶s @gj¼t“@gB`åÐ"[@gÍÌÌÌÌÌ@g˜nƒÀJ@gV-²�@gF¶óýÔx@gsh‘í|?@g+‡ÙN@g¾Ÿ/Ý$@g¦›Ä °ò@gš™™™™™@g®Gáz”@gfffff"Œ@ià  iž
  i¤  gHáz®G2@g�Âõ(\A@g¸…ëQØC@gfffff†E@g¦›Ä °ò@gNbX9´"@gHáz®Ç$@g�Âõ(\&@g-²�ï§Æ@g�—nƒ@@gw¾Ÿ/Ý@g=
×£p½ @gJ+‡@g-²�ï'@g˜nƒÀÊ@gHáz®Ç@gV-²�@g˜nƒÀJ@gÝ$�•Ã@g¾Ÿ/Ý¤@r¿  r^  rŽ  r   r‡   ra   ri  éx   r8   ru  rÆ  )r_   r‡   i)#  gupm1�f?)r   ra   rv   g?¿<-š=A?gv"èü«ÏÎ?r  gÒdæš•ï?gaâý-ûA?c                 C   s<   | j D ]0\}}|\}}}tj |||¡}t||dd� qd S )Nr~  rp   )r–   r2   Ústudentized_rangerD   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 ]0\}}|\}}}tj |||¡}t||dd� qd S )Nçü©ñÒMb@?rp   )r–   r2   r  r  r   )rÃ   r  Z
q_expectedrý   rõ  r>   Zres_qr.   r.   r/   Útest_ppf_against_tablesÓ  s    
z,TestStudentizedRange.test_ppf_against_tablesz&data/studentized_range_mpmath_ref.jsonr6  Ú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_rtolrO  )r2   r  rD   r   ©rÃ   r  r
  r  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 r	  )r2   r  r:   r   r  r.   r.   r/   Útest_pdf_against_mpê  s    þz(TestStudentizedRange.test_pdf_against_mpz+intermittent RuntimeWarning: invalid value.Zmoment_datac              	   C   sf   |d }|d }|d |d |d f}t jdd�� tjj|Ž }W 5 Q R X t|||d |d	 d
� d S )Nr
  r  rô  r>   rõ  rw  rx  r  r  rO  )re   rƒ  r2   r  rY  r   )rÃ   r  r
  r  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‡   ra   r   rB  r   )r   r2   r  r:   re   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 )	Nr  r   ra   rj   )Ústepr   r~  rp   )re   r§   r2   r  rD   r:   r   r   )rÃ   r>   rõ  rA   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   sB   |\}}}}t jdd�� tj |||¡}W 5 Q R X t||ƒ d S )Nrw  rx  )re   rƒ  r2   r  rD   r   )rÃ   r  r  r>   rõ  Zr_resr�   r.   r.   r/   Útest_cdf_against_r  s    z'TestStudentizedRange.test_cdf_against_rc              	   C   sx   t jdd��" tj ddgddgddg¡}W 5 Q R X t|jd	ƒ tjt	d
d��  tj dddgdddg¡ W 5 Q R X d S )Nrw  rx  r   r8   r  ru   ra   rÏ  rp  z...could not be broadcast...r    rà   )
re   rƒ  r2   r  rý  r   rÏ   r¨   r   rª   rT  r.   r.   r/   Útest_moment_vectorization$  s
    &z.TestStudentizedRange.test_moment_vectorizationc              
   C   sd   t ƒ �B}tjdd��* | t¡ tj dddg¡\}}}}W 5 Q R X W 5 Q R X ttj 	||¡ƒ d S )Nrw  rx  r   r8   r‡   )
r   re   rƒ  rX   r   r2   r  rF  r   Z	_argcheck)rÃ   r$  r>   r   r7  r.   r.   r/   Útest_fitstart_valid4  s    
.z(TestStudentizedRange.test_fitstart_validc                 C   sh   t j ddtj¡}t j ddd¡}t||ddd� t j ddtj¡}t j ddd¡}t||ddd� d S )Nr‡   ra   éŸ† r~  rO  )r2   r  r:   re   r¬   r   rD   )rÃ   r�   Ú
res_finiter.   r.   r/   Útest_infinite_df<  s    z%TestStudentizedRange.test_infinite_dfc                 C   s¬   t j ddd¡}t j ddd¡}t j ddd¡}ttt||ddd� t||ddd� t j ddd¡}t j ddd¡}t j ddd¡}ttt||ddd� t||ddd� d S )Nr‡   ra   r4  r  iž† rW  rO  )r2   r  r:   r  rZ   r   rD   )rÃ   r�   r  Z
res_sanityr.   r.   r/   Útest_df_cutoffG  s     
 ÿ
 ÿz#TestStudentizedRange.test_df_cutoffc                 C   s8   d\}}}t j |||¡}t|ddd� |dks4t‚d S )N)g¯ÈúaRA@r‡   iS  r   r˜  r{   )r2   r  r  r   rZ   )rÃ   r  r>   rõ  rý   r.   r.   r/   Útest_clipping\  s    
z"TestStudentizedRange.test_clippingN)1rç   rè   ré   Zq05Zq01Zq001re   rÂ  ÚqsZpsr¬   ÚvsÚksÚlistr¦   r$   r–   Zr_datar  r¨   rI  rJ  r  ÚosÚpathÚdirnamerÖ  Zpath_prefixÚrelative_pathÚopenr  ÚfileÚjsonrÕ  Zpregenerated_datar�  r  r  Zxfail_on_32bitr  r  r9  r  r  r  r  r  r  r  r.   r.   r.   r/   r  ¢  sÒ                  û               û               û
û









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Ùóÿë2ü¿gû‘÷£?ra   Útest_540_567)râ   r  gèùÿë2ü¿gk‘÷£?gÜ;úþB.ö?gæ†ÏÍ£hî?gH–ÅŽ*Ê?r5   g£û.£yï?)r   r2   r´  rD   r.   r.   r.   r/   r*  f  s     ÿ ÿÿ ýr*  c                   C   s   t jjdd� d S )Nr‹  ©r2  )r2   Z_continuous_distnsZ	gamma_genr.   r.   r.   r/   Útest_regression_ticket_1316r  s    r,  c                   C   s   t tj dd¡ddƒ d S )Nrm   r8   rh   rÆ  rÇ  r.   r.   r.   r/   Útest_regression_ticket_1326x  s    r-  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 5 Q R X tt  	|¡ ¡  ƒ t|d
 dk ¡ ƒ t|d dk ¡ ƒ t|d dk 
¡ ƒ t|d dk 
¡ ƒ d S )Nç      Àrß   r`   rw  ©rm  rm   rÈ  r†  rl   r   r   r8   )re   rã   rƒ  r   r2   r'   r:   r   rÎ   r  Úany)rA   rƒ  rý   r.   r.   r/   Útest_regression_tukey_lambda}  s    "r1  zdocstrings strippedr­  c                   C   s$   t dtjjkƒ t dtjjkƒ d S )Nzpdf(x, mu, loc=0, scale=1)zpmf(x,)r   r2   r½  r€  r.   r.   r.   r/   Útest_regression_ticket_1421’  s    r2  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 5 Q R X d S )Nrw  rx  r   rh   )re   rƒ  r   r  r2   re  r)  r«   rD   r�  r  r:   r…   r  r  r
  rÛ   r&  r.   r.   r.   r/   Ú test_nan_arguments_gh_issue_1362˜  s"    r3  c               	   C   sX  t j d¡ t  dddg¡} tjj| d | d | d dd	�}t jd
d�� t  tjj|dd�¡}W 5 Q R X 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ô   rm   rh   r   r   r8   rb   rÆ   rw  r/  rJ  rá   )r›   r6   )r�   r6   rL  r9  rl   r  )re   r   r‚   r   r2   r¸   r�   rƒ  r’   r   r´  rc  r  )ÚtruerA   r7  r6   rš   r]   r.   r.   r/   Útest_frozen_fit_ticket_1536­  s&       r5  c                  C   s<   t j d¡ tjjdd�} tj | ¡}d}t||dd� d S )Niñû	 rb   rÆ   )g
×£p=
§?gƒÀÊ¡Eò?r   rá   )re   r   r‚   r2   rg  r�   r’   r   )r�   r7  r]   r.   r.   r/   Útest_regression_ticket_1530É  s
    r6  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À   re  )r  g   Õ6ÒArÞ   r{   r;  )re   r   r‚   r+  r2   rg  r’   r   )rA   Úoffsetr6   r7   r.   r.   r/   Útest_gh_pr_4806Ò  s    r8  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�} dd
ddg}t| |dd� t jj ddd�} ddddg}t| |dd� d S )Nr   rˆ  r‰  r8   r‡   r?  ra   rá   g
×£p=
	@gz5¯™v‘›?gˆ‰RTí¼ì¿gìQ¸…ëÁ?gNºgãá @g´ôJFÙ»›¿)r2   r'   re   r<   r   )rý  r]   r.   r.   r/   Ú"test_tukeylambda_stats_ticket_1545Ü  s    r9  c                   C   s   t t tj dd¡¡ƒ d S )Nr/  rË  )r   re   r5  r2   r½  r&  r.   r.   r.   r/   Útest_poisson_logpmf_ticket_1436ð  s    r:  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Þ   )rh   r¡  rm   r¢  )rl   )gUUUUUUå?r{  g^cÿQâ¿g333333ã¿rˆ  r‰  N)r2   r  r   )Zcasesr,   Z
exact_mvskrˆ  r.   r.   r/   Útest_powerlaw_statsô  s    ÿr;  c                  C   s   t j dd¡} t| dƒ d S )Nr   r   rm   )r2   r  r…   r   ©rý   r.   r.   r/   Útest_powerlaw_edge  s    r=  c                  C   sl   t j dd¡} t| dƒ t j ddddg¡} t| tjddgƒ t j ddddg¡} t| tjdtj gƒ d S )Nr   r   rm   rô   rÞ   r.  )r2   r™  r…   r   r:   re   r¬   r<  r.   r.   r/   Útest_exponpow_edge   s    
r>  c                  C   s   t j ddd¡} t| dƒ d S )Nr   r   rÞ   )r2   Úgengammar:   r   r<  r.   r.   r/   Útest_gengamma_edge,  s    r@  c                  C   s@   t j ddd¡} | dkst‚t j ddd¡}|tj ks<t‚d S )Nr   r   rn  rm   )r2   r?  r:   rZ   r…   re   r¬   )rý   r	  r.   r.   r/   Ú!test_gengamma_endpoint_with_neg_c2  s    rA  c                  C   s8   t j ddd¡} t| dƒ t j ddd¡} t| dƒ d S )Nrø  rË  rÞ   g—óîŸ¼œú>ra   gÇqÇqŒ?)r2   r?  rý  r   r<  r.   r.   r/   Útest_gengamma_munp9  s    
rB  c               2   C   s¼   t  ddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0g0¡} t jd1d2��< tƒ �*}| td3¡ | td4¡ tj 	| ¡ W 5 Q R X W 5 Q R X d S )5Ng>öŠÙX*È¿gPixÌ#Ä?gÍ=îÇ?g&—^“ÜÑ?gôo—ýºÓÏ¿gøëµ�ËË¿gO_�»ZQ¿?g��þŸ\Ã?g½~·ñŸ?g)…/ðÛ?gÁRŸÜ¶?gèí•š¹Î¿gHßƒ[gÒ?gS"‰¹¿gm_Ù Ð¿g‚òÊ7Ók¼?g‘#BÈFÂ?gKU=º?gí±üTÈ?gZg[Qs‡Ð?g¯êî2ª©®?g6HwÆ­8«?g¡�…*-
Ì?gÜa—Ñ]ŒÔ?gø²£'Ë?g™ã‰Þ»?g?¾J_„ ¸?gú¶ý~swÏ?g0FfÍ¿g•¨¬à–´¿g"½�@÷Ó¿gÿ‚Õ?%:Ë¿g&ÍzŒM†¼?g…?GÔÙÁ¿gÞÿÇ	F‹?g¼›~»²,¦¿gÿÈø ™H¸¿g¢›šW·2Ò¿gÁÍÚTzyÌ?gwÙm´Ç¿g°¡ @¼¿gþÔWÛ=ŽÖ¿g	ð't¨±?g".„Åv1¢¿gš‡löö±¿gî.Háê®¿g,³ŒýúØ?g*…Š»‹ÁË¿rw  rx  z:The maximum number of subdivisions .50. has been achieved.z-floating point number truncated to an integer)
re   r   rƒ  r   rX   r   r  r2   rÆ  r’   )rç  r$  r.   r.   r/   Útest_ksone_fit_freezeB  sp    
                                  ÷ÿÿÿrC  c                  C   sÔ   t  ttdddƒƒ¡ } dddddd	d
dddddddddddddddddddddd d!g}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  gœD­þB.æ¿gí”õ8_¸$Àg%`O¸�AÀgjhwHÚRÀgWMB¯@v`Àgð7VY}iÀgÛ¦x\”ArÀgÆÌã	ÄxÀgÇìòÎ#€ÀgöË/œd„Àg³3ØÞ$‰Àg¡eŽÀgd¦þ‹)’ÀgN§éq{3•ÀgÙŠGÇ“˜ÀgrÔÙâ4œÀgÉ37ø'
 Àg’fÁþF¢Àg®Ž�?dJ¤ÀgØ¶¬ëš¦Àg§2”,š
©ÀgÖm³%³š«Àg”Ó…õÊJ®Àgz;Ûp�°Àg¯É¿{²ÀgÔkŠ2†�³Àg€ij<�%µÀgiVSå™Í¶ÀgBR4£…¸Àg
Q¶/¬MºÀrV  r{   y        ›+¡†›„=y        »½×Ùß|Û=r˜  )re   r‡  r"  r\  r   r2   r´  r)  ÚrealÚimagrŠ   r…   )rA   r]   ZderivZderiv_expectedr.   r.   r/   Útest_norm_logcdfZ  sD                       ù	rF  c                  C   sd   t  ddddddg¡} t  ddd	d
ddg¡}tj | ¡}t||dd� tj |¡}t|| dd� d S )Nrv   rÞ   rh   r_   rj   r�  gÖ~½äV1ï?g²|»ÐNÔ?gÔÝûba"Ä?gÜ„4àÅ¥Y?rZ  g$ï%ü+I„r˜  rp   rx   )re   r   r2   r¶   rD   r   r  )rA   r]   r*  r  r.   r.   r/   Útest_levy_cdf_ppfs  s    ûrG  c                  C   sB   t  ddddg¡} t  ddddg¡}tj | ¡}t||d	d
� d S )Nç  4&õkCg‘(,*‹ Eg‚MÇraB3Ggšd~ÅQJgæep«ˆ[>g}XEÁQ=gÇÑ­”EG<g?_Ú%~±¸:r¢  rp   )re   r   r2   r¶   r  r   ©rA   r]   r*  r.   r.   r/   Útest_levy_sf‹  s    ýrJ  zp, expected_isf)r¡  gjÖ1eµ2H)rV  g¥¼ãéž6C)g      Ø?g²nE¾@)r™  gøÑ!^x1Û?)rŽ  gÑZø²¤·?)g   þÿÿï?g:}!Nu�?c                 C   s   t j | ¡}t||dd� d S )Nr©  r{   )r2   r¶   r  r   )rý   Zexpected_isfrA   r.   r.   r/   Útest_levy_isf¢  s    rK  c                  C   sB   t  ddddg¡} t  ddddg¡}tj | ¡}t||d	d
� d S )Ngü©ñÒMb�¿g{®Gáz„¿g{®Gázt¿gú~j¼t“X¿g#¤]ŠËÿç<g±Oèul2;gÞ¢¨ò§Ø§6gÌ…7=“ó�!rx   rp   )re   r   r2   r·   r  r   rI  r.   r.   r/   Útest_levy_l_sf®  s    ýrL  c                  C   s:   t  dddg¡} tj | ¡}tj |¡}t|| dd� d S )Ng [n‡ë<rô   r^  g‚vIhÂ%,=rp   )re   r   r2   r·   r  r  r   )rý   rA   r  r.   r.   r/   Útest_levy_l_isfº  s    rM  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 )Nr¿  iÑÜ i¸¨  iõ  )g      c@g      h@g=
×£p=î?ç®Gázî?)g      c@g     €h@ç{®Gáz”?rb   ru  r   )r   r2   r  rÁ  r  r.   r.   r.   r/   Útest_hypergeom_interval_1802Â  s    ÿÿÿrP  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À   r_   r  ru   ©Únumr8   r‡   rÞ   rr  r  rh   r5   rl   rý  rÉ  rÆ   r(  r³  )re   r   r‚   rã   r  r­   r2   r‹  r:   r�   rD   r  rN   r’   r’  rÛ   r¹  r»  rE  r‰   r.   r.   r/   Útest_distribution_too_many_argsÑ  s8    rS  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 )	Nri  r|  r;  r8   g�ºòYÝZ@r�  r   rð   )r2   Úncx2rD   re   r§   Z_cdfvecr   rv  r.   r.   r/   Útest_ncx2_tails_ticket_955ù  s    rU  c               	   C   s¸   t  ¡ �H t  dt¡ ttj dt 	dd¡d¡dƒ tj 
dt 	dd¡d¡} W 5 Q R X tt | ¡ ¡ ƒ t  ¡ �> t  dt¡ ttj ddd	¡dƒ ttj 
ddd	¡d
ƒ W 5 Q R X d S )Nrú   r   iT  i^  r8   r   r×  r‡   rà   gs¸¹Âq6²À)rþ   rÿ   r   r  r   r2   rT  r:   re   r§   r…   r   r’  rÎ   r   )Zlogvalr.   r.   r/   Útest_ncx2_tails_pdf  s    
"
rV  zmethod, expectedg´‹—–u%>g	;ÃQñž÷=g<àÑxºŸ€>gR‰z†\R>gÊŽK$êÎ/ÀgëÅÔ†Xâ1Àgf´©Hòu@ge°:˜@c                 C   s,   t tj| ƒdddgdd�}t||dd� d S )Nr_   r   r  ra   )rŸ  r   ro   r{   )rº   r2   rT  r   )ra  r]   r"  r.   r.   r/   Útest_ncx2_zero_nc  s    rW  c                  C   s4   t jjdddd�} t jjddd�}t| |dd� d S )Nra   r   r   )r   rŸ  rz   )r   rz   ro   r{   )r2   rT  r�   rÈ  r   )r"  r]   r.   r.   r/   Útest_ncx2_zero_nc_rvs'  s    rX  c                  C   s,   dt  dd¡ } ttjjdd| d�dƒ d S )Nra   ru   r  r   ©r   rŸ  r   )re   r§   r   r2   rT  rD   )rŸ  r.   r.   r/   Útest_ncx2_gh12731/  s    rZ  c                  C   sn   t  ddddddddd	d
dddg¡} d\}}tjj| ||d�}dddddddddddddg}t||dd� d S )NgÑŽ]š	û@gj–Ô†%@gb	ªy/7@g†òô ÌùH@güI‚çZ@g»”Xûl@g'/2?8@gƒÝ°m±Ð�@gU‡Ü¢@gy]¿`'ƒ³@gäÉÝÅ@g*©Ð\¤Ö@g×4ï8ñcè@)ri  g¿hØ ?8@rY  rÞ   g›ÿÿÿÿÿï?gy[qÕDå?rm   r!  r{   )re   r   r2   rT  r  r   )rA   Únurƒ  r  Zsf_expectedr.   r.   r/   Útest_ncx2_gh86656  s6    
      ü
      ür\  c               	   C   sx   d} d}t jtj d| |¡tj d| |¡dd�}tj || |¡}tj || | t  d|  d|  ¡¡}t||d	d
� d S )Ni,  i´  r�  rŽ  r×  rQ  r8   r  r~  r{   )	re   rã   r2   rT  r  r:   r´  rc  r   )r   rŸ  rA   Zncx2_pdfZgauss_approxr.   r.   r/   Útest_ncx2_gh11777R  s     ÿ&r]  c                  C   s"   t jddd�} t|  d¡dƒ d S )Nr   r   r³  )r2   Zfoldnormr   rD   r:  r.   r.   r/   Útest_foldnorm_zeroa  s    r^  c                  C   sˆ   t j  dddgdd¡} t j  ddgdd¡}tdd„ |D ƒƒ}t|| ƒ t j  ddd	g¡} t j  ddg¡}td
d„ |D ƒƒ}t|| ƒ d S )Nrm   rh   rÞ   r   c                 s   s   | ]}t jt j|f V  qd S rd   ©re   rÙ   r«   rŒ  r.   r.   r/   rI  l  s     z-test_stats_shapes_argcheck.<locals>.<genexpr>r8   r.  rn  c                 s   s   | ]}t j|t jf V  qd S rd   r_  rŒ  r.   r.   r/   rI  r  s     )r2   r³   Útupler   r¸   )Zmv3Zmv2Zmv2_augmentedr.   r.   r/   Útest_stats_shapes_argcheckg  s    
ra  c                   @   s   e Zd Zdd„ ZdS )Ú
_distr_genc                 C   s   dS ©Nre  r.   ©rÃ   rA   r,   r.   r.   r/   Ú_pdf}  s    z_distr_gen._pdfN©rç   rè   ré   re  r.   r.   r.   r/   rb  |  s   rb  c                   @   s   e Zd Zdd„ ZdS )Ú_distr2_genc                 C   s   d| | S rc  r.   rd  r.   r.   r/   Ú_cdf‚  s    z_distr2_gen._cdfN)rç   rè   ré   rh  r.   r.   r.   r/   rg  �  s   rg  c                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú_distr3_genc                 C   s   || S rd   r.   ©rÃ   rA   r,   r-   r.   r.   r/   re  ‡  s    z_distr3_gen._pdfc                 C   s   d| | S rc  r.   rd  r.   r.   r/   rh  Š  s    z_distr3_gen._cdfN©rç   rè   ré   re  rh  r.   r.   r.   r/   ri  †  s   ri  c                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú_distr6_genc                 C   s   || | S rd   r.   rj  r.   r.   r/   re  ’  s    z_distr6_gen._pdfc                 C   s   d| | S rc  r.   rj  r.   r.   r/   rh  •  s    z_distr6_gen._cdfNrk  r.   r.   r.   r/   rl  �  s   rl  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,   ©r2  r¢   r   rá  re  ©rb  r   r:   ©rÃ   Údummy_distrr.   r.   r/   Útest_correct_shapesœ  s    z1TestSubclassingExplicitShapes.test_correct_shapesc                 C   s(   t ddd�}tt|jdftdd�Ž d S )Nrn  ÚAro  r   rá  )rb  r  r­   r:   r¥   rq  r.   r.   r/   Útest_wrong_shapes_1   s    z1TestSubclassingExplicitShapes.test_wrong_shapes_1c                 C   s0   t ddd�}tdddd�}tt|jdf|Ž d S )Nrn  za, b, cro  r   r8   r‡   rB  )rb  r¥   r  r­   r:   )rÃ   rr  r»   r.   r.   r/   Útest_wrong_shapes_2¤  s    z1TestSubclassingExplicitShapes.test_wrong_shapes_2c                 C   s   t ddd�}tttf|Ž d S )Nrn  re  ro  )r¥   r  r­   rb  ©rÃ   r»   r.   r.   r/   Útest_shapes_string©  s    z0TestSubclassingExplicitShapes.test_shapes_stringc                 C   s   t ddd�}tttf|Ž d S )Nrn  z(!)ro  ©r¥   r  ÚSyntaxErrorrb  rw  r.   r.   r/   Útest_shapes_identifiers_1®  s    z7TestSubclassingExplicitShapes.test_shapes_identifiers_1c                 C   s   t ddd�}tttf|Ž d S )Nrn  Z4chanro  ry  rw  r.   r.   r/   Útest_shapes_identifiers_2³  s    z7TestSubclassingExplicitShapes.test_shapes_identifiers_2c                 C   s   t ddd�}tttf|Ž d S )Nrn  zm(fti)ro  ry  rw  r.   r.   r/   Útest_shapes_identifiers_3·  s    z7TestSubclassingExplicitShapes.test_shapes_identifiers_3c                 C   s   t ddd�}tttf|Ž d S )Nrn  za=2ro  ry  rw  r.   r.   r/   Ú"test_shapes_identifiers_nodefaults»  s    z@TestSubclassingExplicitShapes.test_shapes_identifiers_nodefaultsc                 C   s   t ddd�}tttf|Ž d S )Nrn  z*argsro  ry  rw  r.   r.   r/   Útest_shapes_args¿  s    z.TestSubclassingExplicitShapes.test_shapes_argsc                 C   s   t ddd�}tttf|Ž d S )Nrn  z**kwargsro  ry  rw  r.   r.   r/   Útest_shapes_kwargsÃ  s    z0TestSubclassingExplicitShapes.test_shapes_kwargsc                 C   s   t ddd�}tttf|Ž d S )Nrn  za, b, c, lambdaro  ry  rw  r.   r.   r/   Útest_shapes_keywordsÇ  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 rd   ©r2   r´  re  rd  r.   r.   r/   re  Ï  s    zKTestSubclassingExplicitShapes.test_shapes_signature.<locals>._dist_gen._pdfNrf  r.   r.   r.   r/   Ú	_dist_genÎ  s   rƒ  r,   ©r¢   rh   r8   rá  ©r2   rL   r   r:   r´  ©rÃ   rƒ  rI   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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 rd   r‚  rd  r.   r.   r/   re  Ø  s    zXTestSubclassingExplicitShapes.test_shapes_signature_inconsistent.<locals>._dist_gen._pdfNrf  r.   r.   r.   r/   rƒ  ×  s   rƒ  r¶  r„  rh   r   r8   rv  )r2   rL   r  r­   r:   r¥   r†  r.   r.   r/   Ú"test_shapes_signature_inconsistentÕ  s    
z@TestSubclassingExplicitShapes.test_shapes_signature_inconsistentc                 C   sv   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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Ã   rA   r¼   Úextra_kwargr.   r.   r/   re  â  s    zDTestSubclassingExplicitShapes.test_star_args.<locals>._dist_gen._pdfNrf  r.   r.   r.   r/   rƒ  á  s   rƒ  rŠ  r„  rh   é!   ©rŠ  )Zxxx)r2   rL   r   r:   r´  r  r­   r¥   r†  r.   r.   r/   Útest_star_argsÞ  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Ã   rA   r7  r¼   rŠ  r.   r.   r/   re  ï  s    zFTestSubclassingExplicitShapes.test_star_args_2.<locals>._dist_gen._pdfNrf  r.   r.   r.   r/   rƒ  î  s   rƒ  zoffset, extra_kwargr„  rh   éo   r‹  )r7  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   )Úpopr2   r´  re  )rÃ   rA   r¼   ÚkwargsrŠ  r.   r.   r/   re  ý  s    zGTestSubclassingExplicitShapes.test_extra_kwarg.<locals>._distr_gen._pdfNrf  r.   r.   r.   r/   rb  ü  s   rb  rŠ  r„  r   r‡   rŒ  r…  )rÃ   rb  rI   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 rd   )r2   r´  r:   r  r.   r.   r/   re  
  s    zITestSubclassingExplicitShapes.shapes_empty_string.<locals>._dist_gen._pdfNrf  r.   r.   r.   r/   rƒ  	  s   rƒ  Ú r„  rh   r…  r†  r.   r.   r/   Úshapes_empty_string  s    
z1TestSubclassingExplicitShapes.shapes_empty_stringN)rç   rè   ré   rs  ru  rv  rx  r{  r|  r}  r~  r  r€  r�  r‡  rˆ  r�  r�  r’  r”  r.   r.   r.   r/   rm  ™  s"   		rm  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 )Nrn  r+  r   rá  re  rp  rq  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 )Nrn  r+  r   rá  )rg  r   r:   rq  r.   r.   r/   Útest_only__cdf  s    
z&TestSubclassingNoShapes.test_only__cdfúdocstring strippedr­  c                 C   sD   t dd�}t|jdƒ t|jdƒ t d|j¡}tt|ƒdkƒ d S )Nrn  r+  r   r,   zlogpdf\(x, a, loc=0, scale=1\))	rb  r   Únumargsr¢   ÚreÚfindallr€  r   r£   ©rÃ   rr  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 )Nrn  r+  r8   r¶  z!logpdf\(x, a, b, loc=0, scale=1\)r   )	rl  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 )Nrn  r+  )r  r­   ri  rÂ   r.   r.   r/   Ú0test_signature_inspection_2args_incorrect_shapes2  s    zHTestSubclassingNoShapes.test_signature_inspection_2args_incorrect_shapesc                 C   s*   G dd„ dt jƒ}tt|ftdd�Ž d S )Nc                   @   s   e Zd Zddd„ZdS )z>TestSubclassingNoShapes.test_defaults_raise.<locals>._dist_genre  c                 S   s   dS rc  r.   rd  r.   r.   r/   re  9  s    zCTestSubclassingNoShapes.test_defaults_raise.<locals>._dist_gen._pdfN)re  rf  r.   r.   r.   r/   rƒ  8  s   rƒ  rn  r+  ©r2   rL   r  r­   r¥   ©rÃ   rƒ  r.   r.   r/   Útest_defaults_raise6  s    z+TestSubclassingNoShapes.test_defaults_raisec                 C   s*   G dd„ dt jƒ}tt|f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 rc  r.   )rÃ   rA   r,   r¼   r.   r.   r/   re  @  s    zCTestSubclassingNoShapes.test_starargs_raise.<locals>._dist_gen._pdfNrf  r.   r.   r.   r/   rƒ  ?  s   rƒ  rn  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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 rc  r.   )rÃ   rA   r,   r‘  r.   r.   r/   re  G  s    zATestSubclassingNoShapes.test_kwargs_raise.<locals>._dist_gen._pdfNrf  r.   r.   r.   r/   rƒ  F  s   rƒ  rn  r+  r   r¡  r.   r.   r/   Útest_kwargs_raiseD  s    z)TestSubclassingNoShapes.test_kwargs_raiseN)rç   rè   ré   r–  r—  r¨   rI  r»  ÚDOCSTRINGS_STRIPPEDr�  rž  rŸ  r¢  r£  r¤  r.   r.   r.   r/   r•    s   


	r•  r˜  c                  C   sV   dddg} t jD ]@}tt |ƒ}t|t jt jfƒr| D ]}tt ||j	¡d kƒ q4qd S )Nz,\s*,z\(\s*,z^\s*:)
r2   rW   rº   rÑ   rK   rL   r   rš  Úsearchr€  )ZbadonesÚdistnamerI   Úregexr.   r.   r/   r@  L  s    


r@  c                   C   s4   t tj tjdd¡dƒ t tj tjdd¡dƒ d S )Nra   rÏ  r   ru  r_   r   )r   r2   rœ  r  re   r¬   rT  rh  r.   r.   r.   r/   Útest_infinite_inputV  s    r©  c                  C   s&   t j t j dd¡d¡} t| dƒ d S ©Ng0Žä.ÿ++r   )r2   Zlomaxr  rD   r   r<  r.   r.   r/   Útest_lomax_accuracy[  s    r«  c                  C   s&   t j t j dd¡d¡} t| dƒ d S rª  )r2   Zgompertzr  rD   r   r<  r.   r.   r/   Útest_gompertz_accuracya  s    r¬  c                  C   s&   t j t j dd¡d¡} t| dƒ d S rª  )r2   Z
truncexponr  rD   r   r<  r.   r.   r/   Útest_truncexpon_accuracyg  s    r­  c                  C   s*   t j t j dd¡d¡} t| ddd� d S )Nr  r   rY  rË   rá   )r2   r¹   r  r  r   r<  r.   r.   r/   Útest_rayleigh_accuracym  s    r®  c               	   C   st   t jdd��^} t  d¡ tj dd¡ tj dd¡ tj dd¡ tj t	j
 d¡ t| ƒ}t|dƒ W 5 Q R X dS )zregression test for gh-6219T)r  Úalwaysrh   r   rm   N)rþ   rÿ   r   r2   rµ  rD   r:   r  r…   re   r¬   r£   r   )rH  Znumber_of_warnings_thrownr.   r.   r/   Ú test_genextreme_give_no_warningss  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¶oüŒxâ?rÈ  r8   r   r¢  rp   r   rÞ   r†  ra   r³  r‡   rù  rN  rÏ  )r2   rµ  rN   r   r   re   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ü%4gìQ¸…ë@r•  g¼‰Ø—²Òœ;r   g‹¸. ×l6?)r2   rµ  r  r   r  )rA   r@   rE  r.   r.   r/   Útest_genextreme_sf_isf˜  s    




r²  c                  C   s"   d} t j | dd¡}t|dƒ d S )Nr‚  r8   r‡   g�H&‰Ì8>)r2   rù  r  r   )Zprobr  r.   r.   r/   Útest_burr12_ppf_small_argÄ  s    	r³  c                  C   s  t  ddd¡dd… } tjj| ddd�}t  d	d
ddddddddddddddddddg¡}t||dd� tjj| ddd�}t  ddd d!d"d#d$d%d&d'd(d'd&d%d$d)d*d+d,d-g¡}t||dd� tjj| ddd.dd/�}t  d0d1d2d3d4d5d6d7d8d9d:d;d:d9d8d7d6d5d4d3g¡}t||dd� tjj| ddd�}t  d<d=d>d?dd@dAdBdCdDdEdFdGdHdIdJdKdLdMdNg¡}t||dd� tjj| ddd�}t  dOdPdQdRdSd#dTdUdVdWdXdYdZd[d\d]d^d_d`dNg¡}t||dd� tjj| ddd.dd/�}t  dad#dbdTdcdUdddVdedWdfdXdgdYdhdZdid[djd\g¡}t||dd� dS )kzµ
    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.
    r.  rß   rû  Nrn  rÞ   rl   )rS  rô  gCÐ,d	Æ”?gH¼áã¸˜?g5”Òõé�?gM"M#w¢?gÉ«sÈ^§?gÇ� @†®?g—¦­¶Æ´?gÝ@�wòé½?gÉ«sÈ^Ç?gÌ|?q Ñ?gó ùõCÓ?gýJçÃ³¹?g,BV\ÁÛ¤?g¹§«;‹?g¶#éek?g‚%ÝêÇ“E?g(ÈÈŒÉx?g­º>üJé>r�  rp   r‡  g#È÷{`?gdåÙÝêf?g ™JýÄq?g‚—SáS){?g'“	®¨w‡?gúuL‚Üê–?g“ �T)«?gcAJÀ?gñGT¨nÎ?gôR±1¯#Ö?gúA]¤PÙ?gvÊþÔÓ¢‘?gK«Öq?gŽú§øL?gÒ
	¡N<!?gþÐAÎwð>rh   )rS  rô  r6   r7   g=aO}€?gªI8ãê†?g#‡ãTÆ‘?gëaèW)›?gÉÇ“I²³¥?g³æ
J°?gE?dÛ³ø¶?gñGT¨n¾?g¥ØÑ8ÔïÂ?gôR±1¯#Æ?g‡kµ‡½PÈ?g(*ÖTÉ?gåD»
)¿?g:3PÿÀ?g¡¼�£9²Â?g?S¯[ÆÄ?gÎOqxµÊ?gåD»
)Ï?g¡¼�£9²Ò?gÉ«sÈ^×?g…˜Kª¶›Þ?g»ñîÈXíã?g3¸<ÖŒè?g‘¤‹M+ì?gûyS‘
cî?g³ìI`sï?g¼è¾œÙï?g{iŠ §÷ï?g^0¸æŽþï?gÞ«Íÿï?g¼#cµùÿï?gÃó%Žr?gc@‰àêv?ghtjÛî}?g³(Ë”ÿ^„?gHKŠ4–U�?gÄŸ—@ _¤?gy›’}Dµ?g„‚R´r/Æ?g¨ýÖN”„Ô?gYj½ßhGà?gÈa0…Læ?g4fõë?gÍ<¹¦@æí?g@¢CàHï?g	Þ�FÎï?g5²+-#õï?g¨§�Àþï?g?q ý¾ÿï?g}'Áv‹’?g*VÂÜî�?g´r/0+­?g[Ñæ8·	¿?gÎ¥¸ªì»Î?gÇõïúÌYÚ?g¸å#)éaã?g?«Ì”Ößè?g‡ú]Øš­ì?g|c Ž½î?)re   rã   r2   Úcrystalballr:   r   r   rD   )rW  Z
calculatedr]   r.   r.   r/   Útest_crystalball_functionÒ  sì               ü            ü            ü            ý            ü            ýrµ  c                  C   s´  t  dddddg¡} t  dddddg¡}t  dddddg¡}tj d| |¡}t||dd� t  d	d
dddg¡}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
    rl   rÞ   r‡  r-  rY  r   r�  rp   gÔšæ§h@gõ¡ê[&@g„žÍªÏ@g‹2d’Q@gãün6-@g¼?Þ«V&Ì¿g·Ñ ÞBÀgQˆ€C¨RÁ¿géóQF\ j¿r   g�¥½Á
@gn‡†Å(@r8   g?Ò–)œ“­¿r‡   gMg'ƒ#@r  g('ÚUHùô¿ru   N)re   r   r2   r´  rý  r   r¬   )rS  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 )Nr8   r‡   )ià±ÿÿrÅ   rS  rî  rp   )	r2   r´  rN   re   rã   r   r   r:   r   )Úcbr�  r�  rŽ  r  rA   r  r.   r.   r/   Útest_crystalball_entropyG  s    
r¸  c                  C   st   ddd„} t  ddddd	d
ddddddddg¡}tjj|d| d�\}}}t|ddd� |dksbt‚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#   )r—   Úx0r¼   r¹  r.   r.   r/   Ú	optimizeri  s    z&test_invweibull_fit.<locals>.optimizerr   r×  r8   rd  rà  r‡   r  r  ru   ru  ra   rà   é@   éc   )rš   r»  g`Ç•Æð?r²  rp   g¸ [–¯Ë@N)r.   r   )re   r   r2   rµ   r’   r   rZ   )r»  rA   r  r6   r7   r.   r.   r/   Útest_invweibull_fitR  s    
&r¾  zx, c, expected)r‡   r.  g7Ô¸ŒƒhÆ?)rw   r.  gz“ªŸ]rç>)rw   g     €"@goB±ôÚ±—9)rH  r.  g$‰ë=cC;c                 C   s    t j | |¡}t||dd� d S rn   )r2   rµ   r  r   )rA   r  r]   r3  r.   r.   r/   Útest_invweibull_sft  s    r¿  zp, c, expected)rh   rd  g…ö9°¾†ò?)g�e»ºŒ«K<ru   gàì«‹÷¨@c                 C   s    t j | |¡}t||dd� d S rn   )r2   rµ   r  r   )rý   r  r]   r3  r.   r.   r/   Útest_invweibull_isf  s    rÀ  z	df1,df2,xrA  r;  rÞ   r-  r  rÏ  rÉ  rO  c                 C   sh   d}t j || |¡}t j || ||¡}t||dd� t j || |¡}t j || ||¡}t||dd� d S )Nr   r¢  rp   rW  )r2   r  rD   rE  r   r:   )Zdf1Zdf2rA   rŸ  Zexpected_cdfZcalculated_cdfrs   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 )Nr8   r(  r  g     `E@r¢  rp   )r2   rE  r1  r   )rõ  r.   r.   r/   Útest_ncf_variance�  s    rÂ  c                  C   s.   t j dddd¡} d}t|tj| dd�ƒ d S )Nri  r(  r‹  gffffff>@g&4I,)÷ï?)Zdecimals)r2   rE  rD   r   re   Úround)Z	scipy_valZ	check_valr.   r.   r/   Útest_ncf_cdf_spotcheck¨  s    rÄ  r  z(On some 32-bit the warning is not raisedc               	      sb   t  ddd¡} d| d< d‰ t t¡�* tjj| fˆ žŽ }‡ fdd„| D ƒ}W 5 Q R X t||ƒ d S )Nr   r   r  r‚  )r_   r8   ru   r   r   c                    s   g | ]}t jj|fˆ žŽ ‘qS r.   )r2   rE  r  )rH   Úxi©Úparr.   r/   rJ   »  s     z,test_ncf_ppf_issue_17026.<locals>.<listcomp>)	re   rã   r¨   r´  r  r2   rE  r  r   )rA   r  Úq0r.   rÆ  r/   Útest_ncf_ppf_issue_17026²  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ddddddddddddddddddddddd	d	d
gd	d�}t |¡| _tjjddddd�}t j|dd�}t |¡| _	d S )NrÀ   r   r8   r‡   r  ru   r(  rÉ  ru  r  ©ÚbinsrÞ   rd  r×  é{   rò  rÉ   )
re   r   r‚   Ú	histogramr2   rM   Útemplater´  r�   Únorm_template)rÃ   rÎ  r–   Znorm_histogramr.   r.   r/   rÄ   À  s&    "         ÿÿzTestHistogram.setup_methodc                 C   sô   t  ddddddddd	d
ddddddddddg¡}t  ddddddddddddddddddddg¡}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 )!Nrm   rh   rÞ   r.  rl   rd  r‡  re  r-  rh  rß   ç      @r‚  r  ç      @r  rý  ç      !@rY  ç      #@rØ   ç{®Gáz´?ç¸…ëQ¸¾?g{®GázÄ?r;  rg  rø  r8   ra   r5   r_   rp   )re   r   r‡  r   rÏ  r:   r   rã   rÐ  r2   r´  )rÃ   r3  Z
pdf_valuesrA   r.   r.   r/   rÝ   Ð  sP             ÿ            ü ÿzTestHistogram.test_pdfc                 C   s  t  ddddddddd	d
ddddddddddg¡}t  dddddddddddddddd d!d"ddg¡}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 )+Nrm   rh   rÞ   r.  rl   rd  r‡  re  r-  rh  rß   rÑ  r‚  r  rÒ  r  rý  rÓ  rY  rÔ  rO  rØ   rÕ  rÖ  ç
×£p=
Ç?ç¸…ëQ¸Î?ç{®GázÔ?rö  r;  çÃõ(\�Âå?çR¸…ëQè?ç=
×£p=ê?ç)\�Âõ(ì?rN  r8   rn  rb   rø  ra   r5   r_   rp   )re   r   r‡  r   rÏ  rD   r  rã   rÐ  r2   r´  )rÃ   r3  Z
cdf_valuesrA   r.   r.   r/   r  ê  sR             ÿ            ü" ÿ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Í  r0  rÞ   rm   rl   rØ   r;  rp   rd  rÕ  r‡  rÖ  r_   re  r×  r-  rØ  rh  rÙ  rß   rö  r1  rÑ  rh   r‚  r;  r  rÚ  rÒ  rÛ  r  rÜ  rý  rÝ  rÓ  rN  rY  )rÏ  r�   r   re   rõ   r   )rÃ   r  r1  r.   r.   r/   rÖ      s(    zTestHistogram.test_rvsc                 C   s6   t dƒD ](}t| j |¡t dd¡ |¡dd� qd S )Nr  rÞ   rd  r1  rp   )r\  r   rÐ  rý  r2   r´  rY  )rÃ   rü   r.   r.   r/   rÔ    s
     ÿzTestHistogram.test_munpc                 C   s$   t | j ¡ tjjddd�dd� d S )NrÞ   rd  r5   r1  rp   )r   rÐ  rN   r2   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î   ddgdddg } }t j| |fdd�}tj | ddg¡ddg¡ | ¡ dksRt‚t j| |fd	d�}tj | ddg¡d
¡ | ¡ dksŒt‚d}tt	|d��$ t  | |f¡}| ¡ dks¼t‚W 5 Q R X t  | dddgf¡}| ¡ dksêt‚d S )Nr   r   rÖ  F)r5  rh   rË  r  Tgœî£'^P?g     H@z(Bin widths are not constant. Assuming...r    r8   )
r2   rM   re   rØ  r   r:   r6  rZ   r	   r  )ÚcountsrÌ  rI   r4  r.   r.   r/   Útest_histogram_non_uniform   s    rß  c                   @   s.   e Zd Zdd„ Zej dddg¡dd„ ƒZdS )	ÚTestLogUniformc                 C   sº   t j d¡}t dd¡}|jd|d�}t j d¡}t dd¡}|jd|d�}t||ƒ t jt  	|¡dd�\}}d| 
¡   kr”| ¡   kr”d	ksšn t‚t  t  |¡d
 ¡dks¶t‚d S )Nì   0o[ r�  r   r×  r0  ra   rË  rŠ  iL  rv   )re   r   r€   r2   Ú
loguniformr�   Z
reciprocalr   rÎ  Úlog10rÑ  r“  rZ   r}   r6  )rÃ   rŽ   rŽ  r�   Zrv2rƒ   rÔ   r7  r.   r.   r/   Ú
test_alias8  s    
,zTestLogUniform.test_aliasra  Zmler_  c                 C   sn   t j d¡}tjjddd|d�}tjj||d�\}}}}|dksDt‚tjj|d|d�\}}}}|dksjt‚d S )	Nrá  r_   r   rv   r0  rc  r8   r`  )re   r   r€   r2   râ  r�   r’   rZ   )rÃ   ra  rŽ   r�   r,   r-   r6   r7   r.   r.   r/   Útest_fit_overrideI  s    z TestLogUniform.test_fit_overrideN)rç   rè   ré   rä  r¨   rI  r�  rå  r.   r.   r.   r/   rà  7  s   rà  c                   @   sT  e Zd Zdd„ Zej dddgddgdd	gg¡d
d„ ƒZej dddg¡dd„ ƒZej ddddddg¡dd„ ƒZ	ej ddddddg¡dd „ ƒZ
ej d!d"d#d$d%d&d'd(d)g¡d*d+„ ƒZej d,d-d.d/d0d1d2d3d4g¡d5d6„ ƒZej d,d7d8d9d:d;d<d=d>g¡d?d@„ ƒZej d,dAdBdCdDdEdFdGdHg¡dIdJ„ ƒZej d!dKdLdMdNdOdPdQdRg¡dSdT„ ƒZdUS )VÚ	TestArgusc                 C   s2   t jjdddd�}tt  d¡ ¡ | ¡ dd� d S )NrÉ   r  éE  r0  r  rá   )r2   Úargusr�   r   r  r  r.   r.   r/   Útest_argus_rvs_large_chiX  s    z"TestArgus.test_argus_rvs_large_chizchi, random_stater_   rç  r*  é›   re  é‡   c                 C   s6   t jj|d|d�}t  |d|f¡\}}t|dkƒ d S )Nr  r0  rè  r1  ©r2   rè  r�   r4  r   )rÃ   r  rz   rA   r7  rý   r.   r.   r/   rÖ   ]  s    zTestArgus.test_rvsr  rw  rW  c                 C   s6   t jj|ddd�}t  |dd„ ¡\}}t|dkƒ d S )Nr  ie˜ r0  c                 S   s   dd| d  d  S )Nr   r8   r.  r.   r‰   r.   r.   r/   rT   m  rU   z.TestArgus.test_rvs_small_chi.<locals>.<lambda>r1  rì  )rÃ   r  r6  r7  rý   r.   r.   r/   Útest_rvs_small_chig  s    zTestArgus.test_rvs_small_chizchi, expected_mean)r   g Ñ‰iÌã?)ra   g.ý¬æ†ƒï?)ré  g\ØpaPøï?)é<   g²ê	â•üï?)r½  g,6Èÿ¾þï?c                 C   s"   t jj|dd�}t||dd� d S )Nr   r³  rx   rp   )r2   rè  r  r   )rÃ   r  Zexpected_meanrô  r.   r.   r/   r#  q  s    zTestArgus.test_meanzchi, expected_var, rtol)r   g¡LH'B´ª?rx   )ra   gšüµo·$?rj  )ré  g
=‹Ìõ¸£>rV  )rî  g2WÍëµ>rV  )r½  góâb~ÆP>rV  c                 C   s"   t jj|dd�}t|||d� d S )Nr   r³  rp   )r2   rè  r1  r   )rÃ   r  Zexpected_varrq   rõ  r.   r.   r/   r¤  |  s    zTestArgus.test_varzchi, expected, rtol)r9  gwM€Ç“³?r¢  )rh   gõ²¢j¨™�?r¢  )r_   gH‘EA»`!?r¢  )rj   gc¬Ù�>ro   )r�  gÁéØ×Fâ=r¢  )r~  gß¹Q#·B=r¢  )rW  gÅ0ÙþÞŸ<r¢  )rw  g¸ŽŠ*W%:ro   c                 C   s   t t|ƒ||d� d S r  )r   r!   )rÃ   r  r]   rq   r.   r.   r/   Útest_argus_phi_small_chi‡  s    
z"TestArgus.test_argus_phi_small_chizchi, expected)rh   )g-¨ôœ\/Ò?g+·Àp7cô?gŽ5Ï¦\Ïó?)r;  )g
ÃÄfôÒ?gi{?Ù¸ô?gæZ@Ü7üò?)r_   )gB	àÓ?g]®ÊÝÄô?gãÛÁR{Þò?)rj   )g§lÍ…wÓ?g,ñíöÑÈô?g[Z=±Ôò?)r�  )gØz,±�Ó?g]ÜÈô?g‚Ñª1˜Ôò?)r~  )g8<ï�Ó?gÏEÿ-ÜÈô?gI�ñ—Ôò?)rW  )g~7¬ï�Ó?gÉ7B.ÜÈô?g¼9çð—Ôò?)rw  )g–;¬ï�Ó?g€9B.ÜÈô?g}5çð—Ôò?c                 C   s,   t  dddg¡}ttj ||¡|dd� d S )Nr_   rh   r9  rx   rp   )re   r   r   r2   rè  r:   ©rÃ   r  r]   rA   r.   r.   r/   Útest_pdf_small_chi”  s    zTestArgus.test_pdf_small_chi)rh   )gQß¹?e‹ï?g¥†rJ,å?g’òº—„¶?)r;  )góÎŽÖd†ï?g¡�‚ˆÐØä?gõ•‘’hµ?)r_   )g|
o«…ï?gvb¨ÙÌä?g¹+ê÷Ô@µ?)rj   )gÍ„On…ï?g€‡�eæÈä?g‚C|[Ã3µ?)r�  )g²!?€m…ï?g{jiHÜÈä?g¹u5î¡3µ?)r~  )g¨­~m…ï?g0-….ÜÈä?g£˜¡3µ?)rW  )gü¨~m…ï?g7;B.ÜÈä?g¼ÄÅ—¡3µ?)rw  )gëû¨~m…ï?g€9B.ÜÈä?g¿Å—¡3µ?c                 C   s,   t  dddg¡}ttj ||¡|dd� d S )Nr_   rh   r9  r¢  rp   )re   r   r   r2   rè  r  rð  r.   r.   r/   Útest_sf_small_chi£  s    zTestArgus.test_sf_small_chi)rh   )gÆ+ˆ°&�?gµÔók§Õ?gÎ¼¡m/í?)r;  )g?CL\ÊfŽ?g¾äúî^NÖ?g]AÍ­íRí?)r_   )gaý>$•Ž?gù;¯LfÖ?g‰ºaåWí?)rj   )gØÌ¬x¤Ž?g ñÞ43nÖ?g�w�”‡Yí?)r�  )go“7ðŸ¤Ž?g
+-oGnÖ?gIQ9Â‹Yí?)r~  )g½T ¤Ž?gŸ¥õ¢GnÖ?g@ŸëÌ‹Yí?)rW  )g�þÀU ¤Ž?g“‰{£GnÖ?giGÍ‹Yí?)rw  )gDÁU ¤Ž?g �{£GnÖ?gHÍ‹Yí?c                 C   s,   t  dddg¡}ttj ||¡|dd� d S )Nr_   rh   r9  r!  rp   )re   r   r   r2   rè  rD   rð  r.   r.   r/   Útest_cdf_small_chi²  s    zTestArgus.test_cdf_small_chi)rh   )gQ)ñã?gÇ6É{«?r!  )gB`åÐ"Û¹?)g­£òÛâ?g©¯8%«?rj  )r_   )gæ388æÛâ?g–üVí%«?rx   )rj   )g*©j¬‚Ùâ?gRÅS¨%«?rx   )r�  )g!�|Ùâ?gZ’±©%«?rx   )r~  )gyœ[|Ùâ?gýGµ©%«?rx   )rW  )gÛ"3|Ùâ?gÀWµ©%«?rx   )rw  )gÒ!3|Ùâ?güWµ©%«?rx   c                 C   s"   t jj |dd�}t|||d� d S )Nrý  r‰  rp   )r2   rè  r   )rÃ   r  r]   rq   rÕ   r.   r.   r/   Útest_stats_small_chiÁ  s    zTestArgus.test_stats_small_chiN)rç   rè   ré   ré  r¨   rI  r�  rÖ   rí  r#  r¤  rï  rñ  rò  ró  rô  r.   r.   r.   r/   ræ  W  s¶   ý

	üÿ
üÿ
ùÿ	
ùþ

ùþ

ùþ

ùþ
ræ  c                	   @   sž   e Zd Zdd„ Zdd„ Zejjdd�ej ddd	d
g¡ej ddddg¡ej ddddg¡dd„ ƒƒƒƒZ	ej ddddg¡ej ddddg¡dd„ ƒƒZ
dS )ÚTestNakagamic                 C   s$   d}d}t j ||¡}t|dƒ d S )Nrd  r|  gÿMƒ³+˜À)r2   Únakagamir…   r   )rÃ   r[  rA   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 )Nrd  rß   gŠÂ"S¿+Õ:rx   rp   )r2   rö  r  r   r  )rÃ   r[  rº  r  rD  r.   r.   r/   r+  ã  s    zTestNakagami.test_sf_isfz+Fit of nakagami not reliable, see gh-10908.r­  r[  r  rd  r  r6   rk   ra   é#   r7   rÉ  ru   ri  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 )Nrb   é9  ©rÇ   r[  r6   r7   rz   r;  rp   c                    s<   d|  d t  dˆ |  ¡ d|  |d  t  ˆ | ¡  S )Nrø  r   r8   ©re   rõ   ©r[  r6   r7   )r5  r.   r/   Ú	dlogl_dnu  s    ÿz(TestNakagami.test_fit.<locals>.dlogl_dnuc                    sN   ˆ dt  | ¡ td| ƒ  dt  t  ˆ| | ¡¡  t  ˆ| | d ¡ S )Nr   r   r8   )re   r  r   rõ   rû  ©r  r5  r.   r/   Ú
dlogl_dloc	  s
    ÿþz)TestNakagami.test_fit.<locals>.dlogl_dlocc                    s2   dˆ  |  | d|  |d  t  ˆ| d ¡  S )Nrø  r8   r‡   rú  rû  rý  r.   r/   Údlogl_dscale  s     ÿz+TestNakagami.test_fit.<locals>.dlogl_dscaler   r�  r{   )r2   rö  r�   r’   r   )
rÃ   r[  r6   r7   Únu_estÚloc_estÚ	scale_estrü  rþ  rÿ  r.   rý  r/   rI  ö  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 )	Nrh   rb   rø  rù  rï  r8   rî  rp   )	r2   rö  r�   r’   re   rÑ  rc  r  r   )rÃ   r6   r7   r[  rü   r5  r   r  r  Zloc_theoZ
scale_theor.   r.   r/   Útest_fit_nu  s     ÿ
zTestNakagami.test_fit_nuN)rç   rè   ré   r
  r+  r¨   rI  r½  r�  rI  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 )ÚTestWrapCauchyc                 C   sr   t  ddgddgg¡}t  dgdgg¡}tj ||¡}|jdksDt‚dd	„ t  ||f¡D ƒ}t| 	¡ |d
d� d S )Nç¸…ëQ¸ž?rô   rh   rì   rÞ   r-  rB  c                 S   s   g | ]\}}t j ||¡‘qS r.   )r2   Ú
wrapcauchyrD   )rH   rD  rî  r.   r.   r/   rJ   4  s   ÿz>TestWrapCauchy.test_cdf_shape_broadcasting.<locals>.<listcomp>rx   rp   )
re   r   r2   r  rD   rÏ   rZ   Znditerr   rê  )rÃ   r  rA   rý   Zscalar_valuesr.   r.   r/   Útest_cdf_shape_broadcasting,  s    ÿz*TestWrapCauchy.test_cdf_shape_broadcastingc                 C   s"   t j tjd¡}t|ddd� d S )Nr  rh   r¢  rp   )r2   r  rD   re   r<   r   r  r.   r.   r/   Útest_cdf_center8  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   r8   )r2   r  rD   r   re   ZarctanÚtanr<   )rÃ   rD  rE  r  rý   Úcrr.   r.   r/   ræ   <  s    (zTestWrapCauchy.test_cdfN)rç   rè   ré   r  r  ræ   r.   r.   r.   r/   r  *  s   r  c               	   C   s@   G dd„ dt jƒ} | dd�}ttdd�� | ¡  W 5 Q R X d S )Nc                   @   s   e Zd Zdd„ ZdS )z/test_rvs_no_size_error.<locals>.rvs_no_size_genc                 S   s   dS rˆ   r.   rÂ   r.   r.   r/   Ú_rvsI  s    z4test_rvs_no_size_error.<locals>.rvs_no_size_gen._rvsN)rç   rè   ré   r  r.   r.   r.   r/   Úrvs_no_size_genH  s   r  Úrvs_no_sizer+  z_rvs\(\) got (an|\d) unexpectedr    )r2   rL   r  r­   r�   )r  r  r.   r.   r/   Útest_rvs_no_size_errorF  s    
r  zdistname, argsc                 C   sÄ   | t krt d| › d�¡ tt| ƒ}t|tjƒršt|ƒdkrb|j|Ž \}}t	|t
jƒ t	|t
jƒ d\}}|j|||fžŽ \}}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   r•  )Ú$skip_test_support_gh13294_regressionr¨   r0  rº   r2   rÑ   rL   r£   Úsupportr   re   r«   )r§  r¼   rI   Úa0Úb0rí  rî  Úa1Úb1r,   r-   r.   r.   r/   Útest_support_gh13294_regressionR  s    
r  c                  C   sh  t j ddddgddddg¡\} }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s€t	‚|j|jks�t	‚t j g g ¡\}}t g ¡t g ¡ }}t||ƒ t||ƒ |j|jksÜt	‚|j|jksìt	‚t j ddddgdg¡\}}	t dtjg ¡}
t dtjg ¡}t||
ƒ t|	|ƒ |j|
jk�sRt	‚|	j|jk�sdt	‚d S )Nr   r   rn  r  )
r2   r´  r  re   r   r¬   r«   r   rÏ   rZ   )r  r  Zex_a0Zex_b0r  r  Zex_a1Zex_b1re  rS  Zex_a2Zex_b2r.   r.   r/   Ú,test_support_broadcasting_gh13294_regressionm  s(    " 





r  c                  C   sn   ddg} dgdgdgg}t tj | |¡ddgddgddggƒ t d¡} t d¡}tj | |¡jdksjt‚d S )	Nrm   rÞ   rl   r‡  r-  rY  rF   rá  )r   r2   r´  r1  re   ré  rÏ   rZ   r5   r.   r.   r/   Ú*test_stats_broadcasting_gh14953_regression†  s    &

r  r  )gn†ðù!	ÀgŸ½:I"<)g…ëQ¸	@g¤Eñÿÿÿï?c                 C   s*   t tj | ¡|ƒ t tj |  ¡|ƒ d S rd   )r   r2   ÚcosinerD   r  )rA   r]   r.   r.   r/   Útest_cosine_cdf_sf”  s    r  zp, expected)rW  gÃkM6OÝÀ)rû  g0Ó­Š÷!	À)g333333ï?gÁ’;'u(@c                 C   s*   t tj | ¡|ƒ t tj | ¡| ƒ d S rd   )r   r2   r  r  r  )rý   r]   r.   r.   r/   Útest_cosine_ppf_isfœ  s    r  c                  C   s0   t j tj tjg¡} t| tj tj gƒ d S rd   )r2   r  r…   re   r<   r   r¬   )r	  r.   r.   r/   Útest_cosine_logpdf_endpoints¥  s    r  c                  C   sT   dd„ t D ƒ} dd„ tD ƒ}| |ks(t‚dd„ tD ƒ}dd„ tD ƒ}||ksPt‚d S )Nc                 S   s   h | ]\}}t |tƒr|’qS r.   )rÑ   rQ   ©rH   r2  r7  r.   r.   r/   Ú	<setcomp>®  s    
ÿz*test_distr_params_lists.<locals>.<setcomp>c                 S   s   h | ]\}}|’qS r.   r.   r  r.   r.   r/   r  °  s     c                 S   s   h | ]\}}|’qS r.   r.   r  r.   r.   r/   r  ³  s     c                 S   s   h | ]\}}|’qS r.   r.   r  r.   r.   r/   r  ´  s     )r   r   rZ   r   r   )Zdiscrete_distnamesZinvdiscrete_distnamesZcont_distnamesZinvcont_distnamesr.   r.   r/   Útest_distr_params_listsª  s    r  c                   C   sB   t jjddd� t jjddd�dks(t‚t j dd¡dks>t‚d S )Nr   r>   rã  r  )r]  r,   r‡  )r2   rU  Z_statsrY  rZ   rý  r.   r.   r.   r/   Útest_moment_order_4¸  s    r   )N)ùr€  rþ   rš  r  rg  Úpathlibr   r#  r)  r  Znumpy.testingr   r   r   r   r   r   r	   r
   r   r   r¨   r   r  r;   re   r   r   Znumpy.lib.recfunctionsr   r1   r   Zscipy._lib._utilr   r’  r   r   r   r   Zscipy.statsr2   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¥  r  r¼  r  r0   r4   rC   rE   r^   rc   rf   ri   rI  r�  rt   ry   r„   r†   r‘   r™   r¯   r½   r¾   rê   r  r	  r  r  r$  r,  rK  rr  r‘  r¤  rª  r·  r½  rÆ  r  r  r'  r8  rR  rX  rc  r„  r¥  r®  r¼  rÃ  rÞ  rä  rì  rû  Úobjectr  r  r  r"  r$  r%  r,  r.  r/  rM  rc  r<   rn  rT  ro  rz  r~  r�  r�  r—  rš  r   r¤  r¾  rÁ  rÅ  rÊ  rÏ  rÐ  r;  r>  rC  rD  r^  ru  rš  r¢  r«  r²  r¶  rº  rÁ  rÄ  rÊ  rÚ  rÞ  rñ  rô  rø  r  r*  r,  r-  r1  r»  r2  r3  r5  r6  r8  r9  r:  r;  r=  r>  r@  rA  rB  rC  rF  rG  rJ  rK  rL  rM  rP  rS  r‚  rU  rV  rW  rX  rZ  r\  r]  r^  ra  rL   rb  rg  ri  rl  rm  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  r  r  r  r  r  r  r  r  r   r.   r.   r.   r/   Ú<module>   sÚ  0ûÿ
üÿ
ûÿ
         ýÿ
.	
H $d>*# h 5U() wM?* $ lP)+  ÿ
ý
ý
 !5ø	ø	óí$hv-n*     M
 p i <=%EC,s ^K E	
&	
ûÿ(
ü
	x;	,G."
ýÿ
ÿÿþþ
ÿa yZ
ÿÿ
þÿ