a
    ˆù»jÇ ã                   @   sB  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 ddlZddlmZ ddlZddlZddlmZmZ ddlmZ ddlmZ dd	lm Z  dd
l!m"Z"m#Z#m$Z$m%Z% ddl&m'Z' ddl(m)Z) ddl*Zddl+m,Z,m-Z-m.Z. ddl/m0Z0m1Z1 ddl2m3Z3m4Z4 ddl5m6Z6m7Z7 ddl8m9Z9m: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„ ZFG dd„ dƒZG�dÝd d!„ZHd"d#„ ZIejJ Kd$g d%¢¡d&d'„ ƒZLG d(d)„ d)ƒZMG d*d+„ d+ƒZNG d,d-„ d-ƒZOG d.d/„ d/ƒZPG d0d1„ d1ƒZQG d2d3„ d3ƒZRG d4d5„ d5ƒZSG d6d7„ d7ƒZTG d8d9„ d9ƒZUG d:d;„ 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`da„ daƒZiG dbdc„ dcƒZjG ddde„ deƒZkG dfdg„ dgƒZlG dhdi„ diƒZmG djdk„ dkƒZnG dldm„ dmƒZoG dndo„ doƒZpG dpdq„ dqƒZqG drds„ dsƒZrG dtdu„ duƒZsG dvdw„ dwƒZtG dxdy„ dyƒZuG dzd{„ d{ƒZvG d|d}„ d}ƒZwG d~d„ dƒZxG d€d�„ d�ƒZyG d‚dƒ„ dƒƒZzG 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Ž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�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óƒ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®�d�d	„ Z¯�d
�d„ Z°ejJj±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¼ejJ K�d$g �d%¢¡�d&�d'„ ƒZ½�d(�d)„ Z¾�d*�d+„ Z¿�d,�d-„ ZÀ�d.�d/„ ZÁ�d0�d1„ ZÂ�d2�d3„ ZÃejJ K�d4g �d5¢¡�d6�d7„ ƒZÄ�d8�d9„ ZÅ�d:�d;„ ZÆ�d<�d=„ ZÇ�d>�d?„ ZÈ�d@�dA„ ZÉ�dB�dC„ ZÊejJ K�dD�dEe �dF�dGg¡f�dHe �dI�dJg¡f�dKe �dL�dMg¡f�dNe �dO�dPg¡fg¡�dQ�dR„ ƒZË�dS�dT„ ZÌ�dU�dV„ ZÍ�dW�dX„ ZÎ�dY�dZ„ ZÏejJ K�d[g �d\¢¡�d]�d^„ ƒZÐejJ K�d_g �d`¢¡�da�db„ ƒZÑejJ K�dcg �dd¢¡�de�df„ ƒZÒ�dg�dh„ ZÓejJ K�d[g �di¢¡�dj�dk„ ƒZÔ�dl�dm„ ZÕG �dn�do„ �doe'jÖƒZ×G �dp�dq„ �dqe'jÖƒZØG �dr�ds„ �dse'jÖƒZÙG �dt�du„ �due'jÖƒZÚG �dv�dw„ �dwƒZÛG �dx�dy„ �dyƒZÜejJj±e@�dz�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éejJ K�d[g �d•¢¡�d–�d—„ ƒZêejJ K�d˜�d™�dšg¡�d›�dœ„ ƒZëejJ K�d�dŽdŽg �dž¢f�dŸ�d g �dž¢f�d¡�d¢g �d£¢fg¡�d¤�d¥„ ƒZì�d¦�d§„ Zí�d¨�d©„ ZîejJj±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jJ K�d¼e4e1 ¡�d½�d¾„ ƒZø�d¿�dÀ„ Zù�dÁ�dÂ„ ZúejJ K�d_�dÃ�dÄg¡�dÅ�dÆ„ ƒZûejJ K�dcg �dÇ¢¡�dÈ�dÉ„ ƒZü�dÊ�dË„ Zý�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ejJ K�dØg �dÙ¢¡�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)Ú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Údifferential_evolution)ÚproductÚdarwinÚx86_64ÚtukeylambdaÚpearson3c                 C   s,   |d u r| › d|› �}t t| |ƒ|d� d S )Nz does not have attribute ©Úmsg)r   Úhasattr)ÚaÚbr*   © r.   úJE:\soccer\ml_env\Lib\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   s`   t tjjjƒ} dd„ tD ƒ}dd„ tD ƒ}g d¢}|| | }t tdd„ |ƒƒ}| |ks\J ‚d S )Nc                 S   s   g | ]}|d  ‘qS ©r   r.   ©Ú.0Údistr.   r.   r/   Ú
<listcomp>A   ó    z0test_distributions_submodule.<locals>.<listcomp>c                 S   s   g | ]}|d  ‘qS r5   r.   r6   r.   r.   r/   r9   B   r:   )Úrv_discreteÚrv_continuousÚrv_histogramÚentropyÚtrapzc                 S   s   t | ƒ d¡ S )Nú<)ÚstrÚ
startswith©Úsr.   r.   r/   Ú<lambda>I   r:   z.test_distributions_submodule.<locals>.<lambda>)Úsetr1   r2   r3   Ú__all__r   r   Úfilter)ÚactualZ
continuousZdiscreteÚotherÚexpectedr.   r.   r/   Útest_distributions_submodule?   s    rL   c                	   @   s@  e Zd Zej dg d¢¡ej dddejddg¡dd	„ ƒƒZd
d„ Z	dd„ Z
ej dg d¢¡dd„ ƒZej dg d¢¡dd„ ƒZdd„ Zej dg d¢¡dd„ ƒZdd„ Zejjej dddg¡ej d g d!¢¡ej d"d#d$g¡ej d%d#d$g¡d&d'„ ƒƒƒƒƒZd(d)„ Zej d*d+dg¡d,d-„ ƒZd.d/„ Zd0d1„ Zd2d3„ Zd4S )5ÚTestVonMisesÚk)çš™™™™™¹?r   ée   Úxr   r   é
   éd   c                 C   sh   dd„ }dd„ }||dd|ƒ ||dd|ƒ ||dd|ƒ ||dd|ƒ ||dd|ƒ ||dd|ƒ d S )Nc                 S   s8   t j| ||d�}t| |¡| |dtj |  ¡ƒ d S )N©ÚlocÚscaleé   )r2   Úvonmisesr   ÚpdfÚnpÚpi©rN   ÚLrD   rQ   Úvmr.   r.   r/   Úcheck_vonmises_pdf_periodicR   s    zHTestVonMises.test_vonmises_periodic.<locals>.check_vonmises_pdf_periodicc                 S   s@   t j| ||d�}t| |¡d | |dtj |  ¡d ƒ d S )NrT   r   rW   )r2   rX   r   ÚcdfrZ   r[   r\   r.   r.   r/   Úcheck_vonmises_cdf_periodicV   s    ÿzHTestVonMises.test_vonmises_periodic.<locals>.check_vonmises_cdf_periodicr   r   rR   r.   )ÚselfrN   rQ   r_   ra   r.   r.   r/   Útest_vonmises_periodicO   s    z#TestVonMises.test_vonmises_periodicc                 C   s&   t tjjtj ƒ t tjjtjƒ d S ©N)r   r2   Zvonmises_liner,   rZ   r[   r-   ©rb   r.   r.   r/   Útest_vonmises_line_supportc   s    z'TestVonMises.test_vonmises_line_supportc                 C   s   t  d¡}t| d¡dƒ d S )Né   r   ç      à?)r2   rX   r   r`   )rb   r^   r.   r.   r/   Útest_vonmises_numericalg   s    
z$TestVonMises.test_vonmises_numericalzx, kappa, expected_pdf))rO   ç{®Gáz„?g¿˜|65“Ä?)rO   ç      9@g¿õ?‡Uü?)rO   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   rX   rY   r   )rb   rQ   ÚkappaÚexpected_pdfrY   r.   r.   r/   Útest_vonmises_pdfu   s    zTestVonMises.test_vonmises_pdfzkappa, expected_entropy))r   g³A¿Ö	ú?)é   g,äeÞžå?)rS   gBb9d22ì¿)éè  gÔÍÔû
G À)éÐ  gòÓ÷Àc                 C   s   t j |¡}t||dd� d S ©Nç‚vIhÂ%<=rp   )r2   rX   r>   r   )rb   rr   Zexpected_entropyr>   r.   r.   r/   Útest_vonmises_entropyŠ   s    z"TestVonMises.test_vonmises_entropyc                 C   s¨   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 )	Ni@}×r   r   rT   ©Úrandom_staterW   ro   ©Úatol)	rZ   ÚrandomÚdefault_rngr2   rX   Úrvsr[   Úabsr   )rb   ÚseedZrng1Zrng2Zrng3Zrvs1Úrvs2Zrvs3r.   r.   r/   Útest_vonmises_rvs_gh4598”   s    ÿÿz%TestVonMises.test_vonmises_rvs_gh4598zx, kappa, expected_logpdf))rO   rj   g«EŸJ?ý¿)rO   rk   goðÎ¹›ïá?)rO   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   rX   Úlogpdfr   )rb   rQ   rr   Zexpected_logpdfr†   r.   r.   r/   Útest_vonmises_logpdf¤   s    z!TestVonMises.test_vonmises_logpdfc                 C   s  t j d¡}| d¡d \}}}tj||d� dd„ ¡}t|dƒ t  |jt j	¡sVJ ‚||dt j
  f}tj||d�jd	d„ g|¢R Ž }t|dƒ t  |jt j	¡s¦J ‚||dt j
  f}tj||d�jd
d„ g|¢R ddiŽ}tt  |¡|dt j
  ƒ t  |jt j¡�sJ ‚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.
        ì   kD +xNÎn é   rR   ©rU   rr   c                 S   s   dS ©Nr   r.   ©rQ   r.   r.   r/   rE   º   r:   z3TestVonMises.test_vonmises_expect.<locals>.<lambda>r   rW   c                 S   s   dS r‹   r.   rŒ   r.   r.   r/   rE   ¿   r:   c                 S   s   t  d|  ¡S )Ny              ð?)rZ   ÚexprŒ   r.   r.   r/   rE   Ä   r:   Zcomplex_funcN)rZ   r   r€   r2   rX   Úexpectr   Ú
issubdtypeÚdtypeZfloatingr[   ZangleZcomplexfloating)rb   ÚrngrU   rr   ÚlbÚresÚboundsr.   r.   r/   Útest_vonmises_expect¯   s"    
 
ÿÿz!TestVonMises.test_vonmises_expectÚrvs_locrW   Ú	rvs_shape)r   rS   ç    „×—AÚfix_locTFÚ	fix_shapec                 C   sp   |r|rt  d¡ tj d¡}tjj|d||d�}ddi}|rF||d< |rR||d< ttj|tjj	fi |¤Ž d S )	NzNothing to fit.rˆ   rv   )ÚsizerU   r|   Úfscaler   ÚflocÚf0)
ÚpytestÚskiprZ   r   r€   r2   rX   r�   Ú_assert_less_or_close_loglikeÚnnlf)rb   r–   r—   r™   rš   r‘   ÚdataÚkwdsr.   r.   r/   Útest_fit_MLE_comp_optimizerÉ   s     
ÿÿÿz(TestVonMises.test_fit_MLE_comp_optimizerc                 C   sb   g d¢}t  |¡}dt j }tjj||d�\}}}|t  t¡jksFJ ‚t	tj|tjj
d|d� d S )N)g!ä*K¼í¿g4,%O‚ÌÔ¿gZðÚÛµÀ?gý
€Žâï¿g˜µe_@g™-8øƒì¿gPg“hnšó?g¿è<t‹÷?g.Œ6àî@gƒjbèø?gâØ0]o@gÝ…Z‘ ÙÀg‰S˜s€Àgx7¢½òWú?g¦ˆ%Hÿ?g·6à5àJò¿gþ•:m2ë?gÛ×¬êï@g;›Ÿ,Æêú¿gM^lsFì¿ç      à¿©r�   r   )rœ   r�   )rZ   Úasarrayr[   r2   rX   ÚfitÚfinfoÚfloatZtinyr¡   r¢   )rb   r£   rU   Ú	kappa_fitÚloc_fitÚ	scale_fitr.   r.   r/   Útest_vonmises_fit_bad_flocà   s    


ÿz'TestVonMises.test_vonmises_fit_bad_flocÚsignéÿÿÿÿc                 C   s¤   t j d¡}tj|d t j dd�jd|d�}|dt j  }tj |¡\}}}tj |¡\}}	}
t||	ƒ t||ƒ |dks€J ‚t j |  k ršt jk s n J ‚d S )	Nrˆ   rh   rR   rŠ   é † r{   é   r   )	rZ   r   r€   r2   rX   r[   r�   r©   r   )rb   r°   r‘   r£   Zshifted_datar¬   r­   r®   Zkappa_fit_shiftedZloc_fit_shiftedÚ_r.   r.   r/   Ú test_vonmises_fit_unwrapped_dataì   s    ÿ

z-TestVonMises.test_vonmises_fit_unwrapped_datac                 C   sÄ   t  d¡}t| d¡ddtj  dd� t| tjd ¡ddd� t| tj d ¡ddd� t| d¡tjd dd� t| 	¡ ddd	� t| 
¡ ddd	� t t |jd
dd�¡tjk¡sÀJ ‚d S )Nr   r   rW   ro   rp   ç      è?çÍÌÌÌÌÌì?çš™™™™™é?r}   rR   éÒ  ©r›   r|   )r2   rX   r   rY   rZ   r[   r`   ÚsfÚppfÚmeanrŽ   Úallr‚   r�   )rb   r8   r.   r.   r/   Útest_vonmises_kappa_0_gh18166ù   s    
z*TestVonMises.test_vonmises_kappa_0_gh18166c                 C   s4   t j dg¡\}}}|dkr,|dkr,|dks0J ‚d S )Nr   g €à7yÃACr   )r2   rX   r©   )rb   rr   rU   rV   r.   r.   r/   Útest_vonmises_fit_equal_data  s    z)TestVonMises.test_vonmises_fit_equal_datac                 C   s8   t jjjddgdd� t jjjtjd d gdd� d S )Nr   gèlÄ=Ýc>r§   rW   gôdýÿÿï?)r1   r2   rX   r©   rZ   r[   re   r.   r.   r/   Útest_vonmises_fit_bounds	  s    z%TestVonMises.test_vonmises_fit_boundsN)Ú__name__Ú
__module__Ú__qualname__rŸ   ÚmarkÚparametrizerZ   r[   rc   rf   ri   rt   rz   r…   r‡   r•   Úxslowr¥   r¯   rµ   r¿   rÀ   rÁ   r.   r.   r.   r/   rM   N   s>   ÿ
ÿ
ÿ

rM   Fc           	      K   s¾   |du r| j }| j|fi |¤Ž}tt| ƒ| ƒj|fi |¤Ž}|sRt ||k¡sRJ ‚|||ƒ}|||ƒ}||ks‚tj||dd�s‚J ‚d|v rž|d |d ksžJ ‚d|v rº|d |d ksºJ ‚dS )a^  
    This utility function checks that the negative log-likelihood function
    (or `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.
    Nro   rp   r�   éþÿÿÿrœ   r±   )r¢   r©   ÚsuperÚtyperZ   ÚanyÚallclose)	r8   r£   ÚfuncÚmaybe_identicalr¤   Zmle_analyticalZnumerical_optZll_mle_analyticalZll_numerical_optr.   r.   r/   r¡     s    	

ÿr¡   c                 C   sž  ddg}| j r2t| j  d¡ƒ}|g d¢d |… 7 }tt|t t|ƒ¡ƒƒ}g d¢}tjt	dd��" | j
|fi |¤Ž W d   ƒ n1 sˆ0    Y  tjtdd�� |  
tjg¡ W d   ƒ n1 sÄ0    Y  tjtdd�� |  
tjg¡ W d   ƒ n1 �s0    Y  tjtd	d�� | j
|d
d� W d   ƒ n1 �s@0    Y  tjtdd��0 | j
|gdgt|ƒd  ¢R Ž  W d   ƒ n1 �s�0    Y  d S )Nr�   rœ   ú,)rž   Úf1Úf2©r   rW   r‰   ú3All parameters fixed. There is nothing to optimize.©Úmatchz#The data contains non-finite valueszUnknown keyword arguments:rW   )Zextra_keywordzToo many positional arguments.r   )ÚshapesÚlenÚsplitÚdictÚziprZ   ÚarangerŸ   r   ÚRuntimeErrorr©   Ú
ValueErrorÚnanÚinfÚ	TypeError)r8   ÚparamZnshapesZ	all_fixedr£   r.   r.   r/   Úassert_fit_warnings9  s,    ÿ0ÿ,ÿ..râ   r8   )ÚalphaÚ	betaprimeÚfatiguelifeÚinvgammaÚinvgaussÚ
invweibullÚ	johnsonsbÚlevyÚlevy_lÚlognormÚgibratÚpowerlognormÚrayleighZwaldc                 C   sŽ   t tƒ}||  }tt| ƒ} t| j| jg|¢R Ž dƒ t| j| jg|¢R Ž t	j
 ƒ t| j| jg|¢R Ž dƒ t| j| jg|¢R Ž t	j
 ƒ dS )zgh-6235r   N)rÙ   r   Úgetattrr2   r   rY   r,   r   r†   rZ   rß   r-   )r8   ÚdctÚargsr.   r.   r/   Útest_supportP  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 ©Nr¹   ©rZ   r   rƒ   re   r.   r.   r/   Úsetup_methodc  s    zTestRandInt.setup_methodc                 C   sâ   t jjdddd�}tt |dk ¡t |dk¡@ ƒ tt|ƒdkƒ t jjdddd�}tt |¡dkƒ t|jj	t
d v ƒ t j dd¡}t|dk|dk @ ƒ tt|tjƒtt|ƒƒd	� t  dd¡ d
¡}t|jj	t
d v ƒ d S )Nru   é   rS   ©r›   ©rW   é2   Ú
AllIntegeré   é.   r)   r‰   )r2   Úrandintr�   r   Únumpyr¾   r×   Úshaper�   Úcharr   Ú
isinstanceZ
ScalarTypeÚreprrÊ   ©rb   ÚvalsÚvalr.   r.   r/   Útest_rvsf  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   )rb   rN   Úoutr  r.   r.   r/   Útest_pdfs  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	  rS   rø   ru   ç      ð?ç      @r   rk   é   ©Údecimal)	rZ   Úlinspacer   ÚfloorÚselectr2   rÿ   r`   r   )rb   rQ   rN   r  r  r.   r.   r/   Útest_cdfy  s
    
*zTestRandInt.test_cdfN)rÂ   rÃ   rÄ   r÷   r  r  r  r.   r.   r.   r/   rô   b  s   rô   c                   @   sT   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ ZdS )Ú	TestBinomc                 C   s   t j d¡ d S rõ   rö   re   r.   r.   r/   r÷   ‚  s    zTestBinom.setup_methodc                 C   s®   t jjdddd�}tt |dk¡t |dk¡@ ƒ tt |¡dkƒ t|jjt	d v ƒ t j dd¡}tt
|tƒƒ t  dd¡ d¡}tt
|tjƒƒ t|jjt	d v ƒ d S ©NrR   r¶   rú   rù   r   rü   r‰   )r2   Úbinomr�   r   r   r¾   r  r�   r  r   r  ÚintÚndarrayr  r.   r.   r/   r  …  s     zTestBinom.test_rvsc                 C   sD   t j ddd¡}t j ddd¡}t|dddd� t|dddd� d S )NrS   r   r   r  ro   ©rq   r~   ©r2   r  r  r   )rb   Úvals1Úvals2r.   r.   r/   Útest_pmf�  s    zTestBinom.test_pmfc                 C   s|   t  dd¡}t g d¢¡}tt||ƒƒ }| ¡ }t||ƒ t  dd¡}| ¡ }t|dƒ t  dd¡}| ¡ }t|dƒ d S )NrW   rh   )ç      Ð?rh   r#  rm   r  )	r2   r  rZ   r   Úsumr   r>   r   r   )rb   r-   Ú
expected_pÚ
expected_hÚhr.   r.   r/   Útest_entropy—  s    

zTestBinom.test_entropyc                 C   sh   t  ¡ �L t  dt¡ ttjddd� ¡ dƒ ttjddd� ¡ dƒ W d   ƒ n1 sZ0    Y  d S )NÚerrorrW   r   ©ÚnÚp)	ÚwarningsÚcatch_warningsÚsimplefilterÚRuntimeWarningr   r2   r  r½   Ústdre   r.   r.   r/   Útest_warns_p0§  s    
zTestBinom.test_warns_p0c                 C   s"   d}t jjd|dd�|ksJ ‚d S )Nr³   ç333333Ó?r  )Úqr+  r,  )r2   r  r¼   ©rb   r+  r.   r.   r/   Útest_ppf_p1®  s    zTestBinom.test_ppf_p1c                 C   sH   d}d}t  d¡}tjj|||d�}tj ||| ¡}t||dd� d S )Ngl¾ðÔyæCgq]\Æ	T3<r‰   r*  ç¼‰Ø—²Òœ<r}   )rZ   rÛ   r2   r  r  Úpoissonr   )rb   r+  r,  rQ   r“   Úrefr.   r.   r/   Útest_pmf_poisson³  s    
zTestBinom.test_pmf_poissonc                 C   s>   d}d}d}t j |||¡}t j |||¡}t||dd� d S )NgöJáÇ-•DgO›
´ã’;r   r7  r}   )r2   r  r  r`   r   )rb   r+  r,  Úrr“   r9  r.   r.   r/   Útest_pmf_cdf¼  s    zTestBinom.test_pmf_cdfc                 C   s"   t j ddd¡}t|ddd� d S )Nr‰   rw   ç+‡ÙÎ÷ï?r   r7  r}   r  )rb   r“   r.   r.   r/   Útest_pmf_gh15101Å  s    zTestBinom.test_pmf_gh15101N)rÂ   rÃ   rÄ   r÷   r  r"  r(  r2  r6  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arcsinerY   r   rZ   rß   ©rb   r,  r.   r.   r/   Útest_endpointsÍ  s    zTestArcsine.test_endpointsN)rÂ   rÃ   rÄ   rB  r.   r.   r.   r/   r?  Ë  s   r?  c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestBernoullic                 C   s   t j d¡ d S rõ   rö   re   r.   r.   r/   r÷   Õ  s    zTestBernoulli.setup_methodc                 C   s¨   t jjddd�}tt |dk¡t |dk¡@ ƒ tt |¡dkƒ t|jjt	d v ƒ t j d¡}tt
|tƒƒ t  d¡ d¡}tt
|tjƒƒ t|jjt	d v ƒ d S )Nr¶   rú   rù   r   r   rü   r‰   )r2   Ú	bernoullir�   r   r   r¾   r  r�   r  r   r  r  r  r  r.   r.   r/   r  Ø  s     zTestBernoulli.test_rvsc                 C   st   t  d¡}dt d¡ dt d¡  }| ¡ }t||ƒ t  d¡}| ¡ }t|dƒ t  d¡}| ¡ }t|dƒ d S )Nr#  ç      Ð¿r¶   rm   r  )r2   rD  rZ   Úlogr>   r   r   )rb   r-   r&  r'  r.   r.   r/   r(  ã  s    




zTestBernoulli.test_entropyN)rÂ   rÃ   rÄ   r÷   r  r(  r.   r.   r.   r/   rC  Ô  s   rC  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 )NrO   éìÿÿÿéüÿÿÿ)rZ   Úlogspacer2   Zbradfordr`   r¼   r   )rb   ÚcrQ   r4  Úxxr.   r.   r/   Útest_cdf_ppfõ  s
    zTestBradford.test_cdf_ppfN)rÂ   rÃ   rÄ   rM  r.   r.   r.   r/   rG  ó  s   rG  c                   @   s\   e Zd ZdZdZdd„ Zdd„ Zej 	ddefd	g¡d
d„ ƒZ
ej 	dg d¢¡dd„ ƒZdS )ÚTestChig’nTßß9Ç;g2Â >h�?@c                 C   s"   t j dd¡}t|| jdd� d S )NrR   r³   ro   rp   )r2   Úchir»   r   ÚCHI_SF_10_4©rb   rD   r.   r.   r/   Útest_sf  s    zTestChi.test_sfc                 C   s"   t j | jd¡}t|ddd� d S )Nr³   rR   ro   rp   )r2   rO  ÚisfrP  r   ©rb   rQ   r.   r.   r/   Útest_isf
  s    zTestChi.test_isfúdf, refç     @�@)g  �Ä¼ÖBgóÿÿÿÏcAc                 C   s   t tj |¡|dd� d S ©Nçê-�™—q=rp   )r   r2   rO  r½   ©rb   Údfr9  r.   r.   r/   Ú	test_mean  s    zTestChi.test_mean))ç-Cëâ6?gQ¯(¥Ý‚ÃÀ)r   çÅ„jÉ®9ç?)rW  gãWr4¹'ñ?)ç    _ Bg««r$h(ñ?)ç}Ã”%­I²TgßÐs$h(ñ?c                 C   s   t t |¡ ¡ |dd� d S rn   )r   r2   rO  r>   rZ  r.   r.   r/   r(  %  s    zTestChi.test_entropyN)rÂ   rÃ   rÄ   rP  ZCHI_MEAN_1000rR  rU  rŸ   rÅ   rÆ   r\  r(  r.   r.   r.   r/   rN  ý  s   
ÿÿ
ÿrN  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ö   re   r.   r.   r/   r÷   0  s    zTestNBinom.setup_methodc                 C   s    t jjdddd�}tt |dk¡ƒ tt |¡dkƒ t|jjt	d v ƒ t j dd¡}tt
|tƒƒ t  dd¡ d¡}tt
|tjƒƒ t|jjt	d v ƒ d S r  )r2   Únbinomr�   r   r   r¾   r  r�   r  r   r  r  r  r  r.   r.   r/   r  3  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   rZ   r�   r2   rb  Úlogpmfr  r1   r   )rb   r  r.   r.   r/   r"  >  s
    ÿzTestNBinom.test_pmfc                 C   s@   t jjg d¢ddd�}t t jjg d¢ddd�¡}t||ƒ d S )N)r   ru   r   ru   ç333333@çÍÌÌÌÌÌÜ?r*  )r2   rb  ÚlogcdfrZ   rF  r`   r   )rb   r  r9  r.   r.   r/   Útest_logcdf_gh16159F  s    zTestNBinom.test_logcdf_gh16159N)rÂ   rÃ   rÄ   r÷   r  r"  rg  r.   r.   r.   r/   ra  /  s   ra  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ö   re   r.   r.   r/   r÷   N  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º   çš™™™™™©?T©r2   ÚgeninvgaussÚkstestr�   r`   r   ©rb   Úgigr´   r,  r.   r.   r/   Útest_rvs_with_mode_shiftQ  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 )Nr·   r¶   rk  r¹   rº   rl  Trm  rp  r.   r.   r/   Útest_rvs_without_mode_shiftX  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 )NrO   çš™™™™™É?rk  r¹   rº   rl  Trm  rp  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 )Nrk  r¹   rº   r   rl  )r2   rn  r�   ro  r`   )r,  r-   rq  r�   r.   r.   r/   Úmy_ks_checkh  s    z4TestGenInvGauss.test_rvs_p_zero.<locals>.my_ks_checkr   rt  Tr·   rj  )r   )rb   rv  r.   r.   r/   Útest_rvs_p_zerof  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ç      ø¿rW   rR   r¹   rº   r   rj  )r   r2   rn  r�   re   r.   r.   r/   Útest_rvs_negative_pq  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 )Nrk  r¦   r   r¹   )r›   r,  r-   r|   rç   ©rò   ç333333Ã?TrS   rj   rR   )r,  r-   rV   )r2   rn  r�   r   ro  rZ   r  rY   r   rç   r`   )rb   ZigÚmurQ   Zpdf_igZcdf_igr.   r.   r/   Útest_invgaussw  s     zTestGenInvGauss.test_invgaussc                 C   s6   t  g d¢¡}t  ddd¡}t|tj |dd¡ƒ d S )N)
g»¡ú§£;gé8y8ºÜ?g›É\}Zü×?g¯hÜ²<Ñ?g&KµhddÈ?g7·!…LÁ?g	C³õf«¸?g_ñ—è¯±?g>ó0èÅ|©?gÑô©ûRq¢?rj   ru   rR   rh   r   )rZ   r   r  r   r2   rn  rY   )rb   Úvals_RrQ   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û   rW   )r   r2   rn  rY   re   r.   r.   r/   Útest_pdf_zero�  s    zTestGenInvGauss.test_pdf_zeroN)rÂ   rÃ   rÄ   r÷   rŸ   rÅ   Úslowrr  rs  ru  rw  ry  r}  r  r€  r.   r.   r.   r/   rh  M  s   




rh  c                   @   sˆ   e Zd Zdd„ Zdd„ Zdd„ Zej dg d¢¡d	d
„ ƒZ	ej dg d¢¡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ö   re   r.   r.   r/   r÷   –  s    zTestGenHyperbolic.setup_methodc           
      C   sl   t  g d¢¡}d\}}}d\}}||| || f}tj|||dœŽ}t  ddd¡}	t| |	¡|ddd	� d S )
N)
góÁF^ÀT=g{XâŠ'è=gNunÆ¢sy>g7!±tè?g½É«zÙI…?gÏèÌ¸©ÔÎ?g�í º×Ä?gqá6.£?gmPèàZz?gÝÎ:PgÝN?©rW   rW   r   ©rh   rj  rT   éöÿÿÿrR   r   ry   ©r~   rq   )rZ   r   r2   Úgenhyperbolicr  r   rY   ©
rb   r~  Úlmbdarã   Úbetar|  Údeltarò   ÚghrQ   r.   r.   r/   Ú
test_pdf_r™  s    
zTestGenHyperbolic.test_pdf_rc           
      C   sl   t  g d¢¡}d\}}}d\}}||| || f}tj|||dœŽ}t  ddd¡}	t| |	¡|ddd	� d S )
N)
g=R0¢W­<=gªEBº‚ÞÐ=gˆ#N¢b>g_¹P¦±Gð>g!æÚ 1Or?g¡U¥°ÀMÍ?g� óu./è?gfÁêyî?gl5ûè\Ãï?g¸kµ‘V÷ï?rƒ  r„  rT   r…  rR   r   ç�íµ ÷Æ°>r†  )rZ   r   r2   r‡  r  r   r`   rˆ  r.   r.   r/   Ú
test_cdf_r¯  s    
zTestGenHyperbolic.test_cdf_rzx, p, a, b, loc, scale, ref)
)éñÿÿÿrW   r‰   rj  rh   rj  g8É¹vF(ì;)r�  rR   rj  r#  r   ru   g[¿­Ï ?)r�  rR   rj  g      ö?r   r   g âœ�Œ`D;)r�  ç      À?rj  çÇ):’Ëÿ÷?r   r   gÎìd–L;)r±   r‘  rj  r’  r   r   gzžK^7?)ru   ç      À¿rj  r’  r   r   g�îjè¤Ð?)ru   r“  rv   éç  r   r   ga=„ôèvG:)é   r“  rv   r”  r   r   g¾ø‰üØÎ?)é(   r“  rv   r”  r   r   g1½bV¶ÿï?)é<   r“  rv   r”  r   r   g¶©ÿÿÿÿï?c           	      C   s*   t jj||||||d�}t||dd� d S ©NrT   ç•dyáý•=rp   )r2   r‡  r`   r   )	rb   rQ   r,  r,   r-   rU   rV   r9  r`   r.   r.   r/   Útest_cdf_mpmathÉ  s    z!TestGenHyperbolic.test_cdf_mpmath))r   rŽ  r  r±   r   r   gC!Ïñ,§Ø?)r±   r‰   ç      @ç      @r   r‰   g,Ð‹fëÿï?)rH  r‰   r›  rœ  r   r‰   r  )é   rW   r‰   rj  rh   rj  gÕmþ"Ú†>)é,  rR   rj  r#  r   ru   g´¥:¥À­;)r—  r“  rv   r”  r   r   gýãw…’…=)éK   r“  rv   r”  r   r   gé3ìZ0&K<c           	      C   s*   t jj||||||d�}t||dd� d S r˜  )r2   r‡  r»   r   )	rb   rQ   r,  r,   r-   rU   rV   r9  r»   r.   r.   r/   Útest_sf_mpmathÞ  s    z TestGenHyperbolic.test_sf_mpmathc                    s\   g d¢}d\}}}d\‰‰||ˆ |ˆ f‰ ‡ ‡‡fdd„t ddƒD ƒ}t||dd	d
� d S )N)g¾@ì�§ò@g¾@ì�§ò @gÎðÿÜŠñB@gvGîÄƒ¸i@rƒ  r„  c                    s$   g | ]}t jˆ ˆˆd œŽ |¡‘qS )rT   )r2   r‡  Úmoment)r7   Úi©rò   r‹  r|  r.   r/   r9   ü  s   ÿz4TestGenHyperbolic.test_moments_r.<locals>.<listcomp>r   ru   r   ry   r†  )Úranger   )rb   r~  r‰  rã   rŠ  Zvals_usr.   r£  r/   Útest_moments_rì  s    	
þz TestGenHyperbolic.test_moments_rc           
      C   sd   d\}}}d\}}||| || f}t j|||dœŽ}t  |jddd�|j¡\}}	t|	dkdƒ d S )	Nrƒ  r„  rT   rk  r¹   rº   rl  T)r2   r‡  ro  r�   r`   r   )
rb   r‰  rã   rŠ  r|  r‹  rò   rŒ  r´   r,  r.   r.   r/   r    s    
zTestGenHyperbolic.test_rvsc           	      C   s¬   t  ddd¡}t  |d¡t  t j¡j d }}dt  |¡ }}| d ||f}tj|||dœŽ}t  | 	d¡| 	d¡d	¡d d …t j
f }t| |¡tj ||¡dd
d� d S )Nr   rø   rR   rW   r   rT   rj   ç®Gáz®ï?rû   rŽ  r†  )rZ   r  Úfloat_powerrª   Úfloat32ÚepsÚsqrtr2   r‡  r¼   Únewaxisr   rY   Út)	rb   r[  rã   rŠ  r|  r‹  rò   rŒ  rQ   r.   r.   r/   Ú
test_pdf_t  s     (þzTestGenHyperbolic.test_pdf_tc           	      C   sˆ   dt  t j¡jd  }}}d\}}|||f}tj|||dœŽ}t  | d¡| d¡d¡d d …t jf }t	| 
|¡tj 
|¡ddd	� d S )
Nr¦   r   )r   r   rT   rj   r¦  rû   rŽ  r†  )rZ   rª   r¨  r©  r2   r‡  r  r¼   r«  r   rY   Úcauchy)	rb   r‰  rã   rŠ  r|  r‹  rò   rŒ  rQ   r.   r.   r/   Útest_pdf_cauchy"  s    
(þz!TestGenHyperbolic.test_pdf_cauchyc           	      C   sŽ   t  ddd¡}t  t j¡j}d\}}}||| || f}tj|||dœŽ}t  ddd¡d d …t jf }t| 	|¡tj
j	||dd�d	d
d� d S )Nr…  rR   )r   r   r   rT   rH  r•  rû   r   r   ç•dyáý¥=r†  )rZ   r  rª   r¨  r©  r2   r‡  r«  r   rY   Úlaplace)	rb   rU   r‹  r‰  rã   rŠ  rò   rŒ  rQ   r.   r.   r/   Útest_pdf_laplace3  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   r•  rR   r   é   r±   éœÿÿÿrS   r¦   rT   rj   r¦  rû   )r,   r-   rU   rV   ry   r†  )rZ   r  r§  r¤  r2   r‡  r¼   r«  r   rY   Únorminvgauss)	rb   rã   rŠ  r‹  r|  r‰  rò   rŒ  rQ   r.   r.   r/   Útest_pdf_norminvgaussH  s    ü(
ÿýz'TestGenHyperbolic.test_pdf_norminvgaussN)rÂ   rÃ   rÄ   r÷   r�  r�  rŸ   rÅ   rÆ   rš  r   r¥  r  r­  r¯  r²  r¶  r.   r.   r.   r/   r‚  •  s&   þ
þ

r‚  c                   @   s@   e Zd Zej dddg¡dd„ ƒZej dddg¡d	d
„ ƒZdS )ÚTestHypSecantzx, reference)rø   gèœA¦Ä0=)rû   g½!Žb;c                 C   s   t j |¡}t||dd� d S ©Nç›+¡†›„ö<rp   )r2   Ú	hypsecantr»   r   )rb   rQ   Ú	referencer»   r.   r.   r/   rR  d  s    zTestHypSecant.test_sfzp, reference)rŽ  g9­bÀTº*@)rY  gTWù¬ï-;@c                 C   s   t j |¡}t||dd� d S r¸  )r2   rº  rS  r   )rb   r,  r»  rQ   r.   r.   r/   rU  n  s    zTestHypSecant.test_isfN©rÂ   rÃ   rÄ   rŸ   rÅ   rÆ   rR  rU  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g d¢¡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ö   re   r.   r.   r/   r÷   w  s    zTestNormInvGauss.setup_methodc                 C   s@   t  g d¢¡}t  g d¢¡}tjj|ddd�}t||dd� d S )N)gp~Ù§ñõª>g @çXú>g}âï„eÔ?g{Á)ß³öï?gwöØHàÿï?©iùÿÿÿéûÿÿÿr   é   rý   r   rh   ©r,   r-   ç•Ö&è.>r}   )rZ   r   r2   rµ  r`   r   )rb   Zr_cdfÚx_testÚvals_cdfr.   r.   r/   Ú
test_cdf_Rz  s    zTestNormInvGauss.test_cdf_Rc                 C   s@   t  g d¢¡}t  g d¢¡}tjj|ddd�}t||dd� d S )N)g»ÞpÏ¶>g\H“55$?geÐ¡tï&Ý?go N‹ëiH?g‹]”uÁ³â>r¾  r   rh   rÁ  rÂ  r}   )rZ   r   r2   rµ  rY   r   )rb   Zr_pdfrÃ  Zvals_pdfr.   r.   r/   r  †  s    zTestNormInvGauss.test_pdf_Rzx, a, b, sf, rtol))r±   r   r   çí!7èì?ry   )r�  r   r   çÌ�ÏùÛ?=r]  )r   ru   rx  gœÈy5î`?rY  )rR   ru   rx  gí²MöLCý9rÂ  c                 C   s@   t j |||¡}t|||d� t j |||¡}t|||d� d S ©Nrp   ©r2   rµ  r»   r   rS  )rb   rQ   r,   r-   r»   rq   rD   r¢  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 )Nr±   r�  r   r   rÆ  rÇ  ry   r7  r  rŽ  rp   rÉ  )rb   rQ   r,   r-   r»   rD   r¢  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   r•  rW   )r2   rµ  rZ   rÛ   r»   rS  r   )rb   ÚdstrQ   r»   rS  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   rW   r‰   ç      @r   r³   Úmvsk©Úmoments)rZ   rª  r   r2   rµ  )rb   r,   r-   ÚgammaZv_statsr.   r.   r/   Ú
test_stats®  s    (ÿzTestNormInvGauss.test_statsc                 C   s@   d\}}t  g d¢¡}tj |||¡}t|tj |||¡ƒ d S )NrÎ  ©çü©ñÒMbP?rh   r=  )rZ   r   r2   rµ  r¼   r   r`   )rb   r,   r-   rÃ  r  r.   r.   r/   Útest_ppfµ  s    zTestNormInvGauss.test_ppfN)rÂ   rÃ   rÄ   r÷   rÅ  r  rŸ   rÅ   rÆ   rÊ  rË  rÍ  rÔ  r×  r.   r.   r.   r/   r½  v  s   ÿ
r½  c                   @   s\   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ ZdS )ÚTestGeomc                 C   s   t j d¡ d S rõ   rö   re   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 v ƒ t j d¡}tt
|tƒƒ t  d¡ d¡}tt
|tjƒƒ t|jjt	d v ƒ d S )Nr¶   rú   rù   r   rü   r‰   )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s4J ‚t  	|t  
t j¡jk¡sPJ ‚d S )Nl   à¦AÚ: iÝÿÿÿru   rº   )rZ   r   r€   r2   rÙ  r�   r�   r�   Zint64r¾   ZiinfoZint32Úmax)rb   r‘   r�   r.   r.   r/   Útest_rvs_9313Ë  s    zTestGeom.test_rvs_9313c                 C   s$   t j g d¢d¡}t|g d¢ƒ d S )NrÒ   rh   )rh   r#  r‘  )r2   rÙ  r  r   ©rb   r  r.   r.   r/   r"  Ô  s    zTestGeom.test_pmfc                 C   sV   t  tj g d¢d¡¡}tj g d¢d¡}t||ddd� tj dd¡}t|dƒ d S )NrÒ   rh   ro   r   r  r   rm   )rZ   rF  r2   rÙ  r  rc  r   r   )rb   r   r!  r  r.   r.   r/   Útest_logpmfØ  s
    zTestGeom.test_logpmfc                 C   sL   t j g d¢d¡}t j g d¢d¡}tg d¢ƒ}t||ƒ t|d| ƒ d S )NrÒ   rh   ©rh   r¶   ç      ì?r   )r2   rÙ  r`   r»   r   r   ©rb   r  Úvals_sfrK   r.   r.   r/   Útest_cdf_sfâ  s
    
zTestGeom.test_cdf_sfc                 C   sV   t j g d¢d¡}t j g d¢d¡}tg d¢ƒ}t|t |¡ƒ t|t | ¡ƒ d S )NrÒ   rh   rÞ  )	r2   rÙ  rf  Úlogsfr   r   rZ   rF  Úlog1prà  r.   r.   r/   Útest_logcdf_logsfé  s
    zTestGeom.test_logcdf_logsfc                 C   s,   t j g d¢d¡}tg d¢ƒ}t||ƒ d S )NrÞ  rh   )r  rl   rÏ  )r2   rÙ  r¼   r   r   ©rb   r  rK   r.   r.   r/   r×  ð  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¼   re   r.   r.   r/   Útest_ppf_underflowõ  s    zTestGeom.test_ppf_underflowc                 C   s    t  d¡ ¡ }t|ddd� d S )NgŸ<,Ôšæ�?g¨¿ýÛ©à@ro   rp   )r2   rÙ  r>   r   )rb   r'  r.   r.   r/   Útest_entropy_gh18226ù  s    zTestGeom.test_entropy_gh18226N)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 )Ú
TestPlanckc                 C   s   t j d¡ d S rõ   rö   re   r.   r.   r/   r÷     s    zTestPlanck.setup_methodc                 C   s,   t j g d¢d¡}tg d¢ƒ}t||ƒ d S )NrÒ   r  )g›|dµyÍ?g8ì'¢\‡”>ggróU†´!>)r2   Úplanckr»   r   r   ræ  r.   r.   r/   rR    s    zTestPlanck.test_sfc                 C   s,   t j g d¢d¡}tg d¢ƒ}t||ƒ d S )N)rW  ç     @Ÿ@ç     p§@rW  )g    PŒ.Ág    hˆ>Ág    TåFÁ)r2   rì  rã  r   r   ræ  r.   r.   r/   Ú
test_logsf  s    zTestPlanck.test_logsfN)rÂ   rÃ   rÄ   r÷   rR  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 )
ÚTestGennormc                 C   s0   g d¢}t j |d¡}t j |¡}t||ƒ d S ©NrÒ   r   )r2   ÚgennormrY   r±  r   ©rb   ÚpointsÚpdf1Úpdf2r.   r.   r/   Útest_laplace  s    zTestGennorm.test_laplacec                 C   s4   g d¢}t j |d¡}t jj|dd�}t||ƒ d S ©NrÒ   rW   gÍ;fž æ?©rV   )r2   rò  rY   Únormr   ró  r.   r.   r/   Ú	test_norm  s    zTestGennorm.test_normc                 C   s´   t j d¡ t d¡}|jdd�}t ||j¡jdks:J ‚t d¡}|jdd�}tj	jdd�}t 
||¡jdkstJ ‚t d¡}|jdd�}tjjddd	�}t 
||¡jdks°J ‚d S )
Nr   rh   rv   rù   rO   r   rW   gÌ;fž æ?©rV   r›   )rZ   r   rƒ   r2   rò  r�   ro  r`   Zpvaluer±  Zks_2samprú  )rb   r8   r�   Zrvs_laplaceZrvs_normr.   r.   r/   r     s    


zTestGennorm.test_rvsc                 C   sî   t j d¡ t ddgddgg¡}|jg d¢d�}t |d d …ddf t d¡j¡d d	ks`J ‚t |d d …ddf t d¡j¡d d	ksŽJ ‚t |d d …ddf t d¡j¡d d	ks¼J ‚t |d d …ddf t d¡j¡d d	ksêJ ‚d S )
Nr   rh   r  rl   r  )rv   rW   rW   rù   r   rO   )rZ   r   rƒ   r2   rò  r�   ro  r`   )rb   r8   r�   r.   r.   r/   Útest_rvs_broadcasting1  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ej dddg¡dd„ ƒZdS )Ú
TestGibratúx, sfx)rj  g�D.Ÿ¡ìÕ?)éˆ  gJ¢Ë]¯Øb<c                 C   s0   t tj |¡|dd� t tj |¡|dd� d S ©Nç›+¡†›„=rp   )r   r2   rí   r»   rS  ©rb   rQ   Úsfxr.   r.   r/   Útest_sf_isfI  s    zTestGibrat.test_sf_isfN)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g d¢¡dd„ ƒZej dg d¢¡d	d
„ ƒZdS )ÚTestGompertzc                 C   s&   t j t j dd¡d¡}t|dƒ d S ©Nç0Žä.ÿ++r   )r2   Úgompertzr¼   r`   r   rA  r.   r.   r/   Útest_gompertz_accuracyR  s    z#TestGompertz.test_gompertz_accuracyz	x, c, sfx))r   r›  g|å‘tè‹?)r‰   r›  g(fMàrë¡;)rl  ru   g¼–´[„Ãè?)g      @ru   gøgùÔ[<c                 C   s4   t tj ||¡|dd� t tj ||¡|dd� d S ©Nrè  rp   )r   r2   r	  r»   rS  )rb   rQ   rK  r  r.   r.   r/   r  c  s    zTestGompertz.test_sf_isfúc, ref))r]  g±eUT8ù?)r   gtqßqÕÙ?)rv   g’s{�¢À)r_  gN£*ž6Àc                 C   s   t tj |¡|dd� d S r  )r   r2   r	  r>   ©rb   rK  r9  r.   r.   r/   r(  r  s    zTestGompertz.test_entropyN)	rÂ   rÃ   rÄ   r
  rŸ   rÅ   rÆ   r  r(  r.   r.   r.   r/   r  P  s
   
r  c                   @   s&   e Zd Zej dddg¡dd„ ƒZdS )ÚTestFoldNormú	x, c, ref)r]  ç:Œ0âŽyE>g:0N<ƒê?)r]  r]  gò�:ƒê?c                 C   s   t tj ||¡|dd� d S rn   )r   r2   Úfoldnormr`   ©rb   rQ   rK  r9  r.   r.   r/   r  �  s    zTestFoldNorm.test_cdfN)rÂ   rÃ   rÄ   rŸ   rÅ   rÆ   r  r.   r.   r.   r/   r  z  s   
ÿr  c                   @   s˜   e Zd Zej dddg¡dd„ ƒZej dg d¢¡dd	„ ƒZej d
ddg¡ej dg d¢¡ej dddg¡ej dddg¡dd„ ƒƒƒƒZdd„ Z	dS )ÚTestHalfNormrÿ  )r   ç²|»ÐNÔ?)rR   ç±Oèul2;c                 C   s0   t tj |¡|dd� t tj |¡|dd� d S r  )r   r2   Úhalfnormr»   rS  r  r.   r.   r/   r  •  s    zTestHalfNorm.test_sf_isfúx, ref))çœWw'&l¡7g;GÎ<^Í›7)ç¬CÒÑ]r2<gÝÒE~Îo-<)rÀ  gõÿÿÿÿÿï?c                 C   s   t tj |¡|dd� d S rn   )r   r2   r  r`   ©rb   rQ   r9  r.   r.   r/   r  ¢  s    zTestHalfNorm.test_cdfr–   çñhãˆµøä>r_  Ú	rvs_scale©rj   rS   r˜   r™   TFÚ	fix_scalec           	      C   s¬   t j d¡}tjj||d|d�}|rp|rpd}tjt|d��" tj	j
|||d� W d   ƒ n1 sb0    Y  d S i }|r€||d< |rŒ||d< ttj|fi |¤d	d
i¤Ž d S ©Nrˆ   rv   ©rU   rV   r›   r|   rÓ   rÔ   ©r�   rœ   r�   rœ   rÎ   T)rZ   r   r€   r2   r  r�   rŸ   r   rÜ   Úhalflogisticr©   r¡   ©	rb   r–   r  r™   r  r‘   r£   Ú	error_msgr¤   r.   r.   r/   r¥   ¨  s"    ÿ0ÿz(TestHalfNorm.test_fit_MLE_comp_optimizerc                 C   sB   t  t¡�$ tjjg d¢dd� W d   ƒ n1 s40    Y  d S ©NrÒ   rW   r§   )rŸ   r   r   r2   r  r©   re   r.   r.   r/   Útest_fit_errorÅ  s    zTestHalfNorm.test_fit_errorN)
rÂ   rÃ   rÄ   rŸ   rÅ   rÆ   r  r  r¥   r&  r.   r.   r.   r/   r  ‡  s   
ÿ

r  c                   @   sd   e Z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	g¡dd„ ƒƒƒƒZdd„ ZdS )ÚTestHalfCauchyr–   r  r_  r  rj   r˜   r™   TFr  c           	      C   s¤   t j d¡}tjj||d|d�}|rp|rpd}tjt|d��" tj	j
|||d� W d   ƒ n1 sb0    Y  d S i }|r€||d< |rŒ||d< ttj	|fi |¤Ž d S )	Nrˆ   rv   r   rÓ   rÔ   r!  r�   rœ   )rZ   r   r€   r2   r  r�   rŸ   r   rÜ   Ú
halfcauchyr©   r¡   r#  r.   r.   r/   r¥   Í  s    ÿ0z*TestHalfCauchy.test_fit_MLE_comp_optimizerc                 C   sB   t  t¡�$ tjjg d¢dd� W d   ƒ n1 s40    Y  d S r%  )rŸ   r   r   r2   r(  r©   re   r.   r.   r/   r&  ç  s    zTestHalfCauchy.test_fit_errorN)rÂ   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g¡dd„ ƒZej dg d¢¡dd	„ ƒZej d
ddg¡ej dg d¢¡ej dddg¡ej dddg¡dd„ ƒƒƒƒZdd„ Z	dS )ÚTestHalfLogisticr  )rS   ç]¯âŒú6)éÈ   çúLö-c                 C   s   t tj |¡|dd� d S rn   )r   r2   r"  r»   r  r.   r.   r/   rR  õ  s    zTestHalfLogistic.test_sfúq, ref))r*  rS   )r,  r+  )g¡�vÿÿÿï?g   à.!>)g÷ÿÿÿÿÿï?g      â<c                 C   s   t tj |¡|dd� d S rn   )r   r2   r"  rS  ©rb   r4  r9  r.   r.   r/   rU    s    zTestHalfLogistic.test_isfr–   r  r_  r  r  r™   TFr  c           	      C   s¬   t j d¡}tjj||d|d�}i }|rt|rtd}tjt|d��" tjj	|||d� W d   ƒ n1 sf0    Y  d S |r€||d< |rŒ||d< t
tj|fi |¤d	d
i¤Ž d S r  )rZ   r   r€   r2   r"  r�   rŸ   r   rÜ   r©   r¡   )	rb   r–   r  r™   r  r‘   r£   r¤   r$  r.   r.   r/   r¥     s"    ÿ0ÿz,TestHalfLogistic.test_fit_MLE_comp_optimizerc                 C   sH   d}t t|d��$ tjjg d¢dd� W d   ƒ n1 s:0    Y  d S )Nz; Maximum likelihood estimation with 'halflogistic' requiresrÔ   )r   rW   r³   r   r§   )Úassert_raisesr   r2   r"  r©   ©rb   r*   r.   r.   r/   Útest_fit_bad_floc%  s    z"TestHalfLogistic.test_fit_bad_flocN)
rÂ   rÃ   rÄ   rŸ   rÅ   rÆ   rR  rU  r¥   r1  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   s0   g d¢}t j |d¡}t j |¡}t||ƒ d S rñ  )r2   ÚhalfgennormrY   Úexponr   ró  r.   r.   r/   Ú
test_expon,  s    zTestHalfgennorm.test_exponc                 C   s4   g d¢}t j |d¡}t jj|dd�}t||ƒ d S rø  )r2   r3  rY   r  r   ró  r.   r.   r/   Útest_halfnorm3  s    zTestHalfgennorm.test_halfnormc                 C   s6   g d¢}t j |d¡}t j |d¡}t|d| ƒ d S )NrÒ   g’á
(Ôß?rW   )r2   r3  rY   rò  r   ró  r.   r.   r/   Útest_gennorm:  s    zTestHalfgennorm.test_gennormN)rÂ   rÃ   rÄ   r5  r6  r7  r.   r.   r.   r/   r2  +  s   r2  c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestLaplaceasymmetricc                 C   s6   t  g d¢¡}tj |d¡}tj |¡}t||ƒ d S rñ  )rZ   r   r2   Úlaplace_asymmetricrY   r±  r   ró  r.   r.   r/   r÷  C  s    z"TestLaplaceasymmetric.test_laplacec                 C   sL   t  g d¢¡}d}d| }tj ||¡}tj ||d  |¡}t||ƒ d S )NrÒ   rW   r   )rZ   r   r2   r9  rY   r   )rb   rô  rr   Zkapinvrõ  rö  r.   r.   r/   Útest_asymmetric_laplace_pdfJ  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é   rR   rW   rO   gü©ñÒMbp?rt  gV-²�ïï?r¸   gü©ñÒMb`?)rZ   r   rF  r2   r9  rY   r`   r»   r¼   rS  r   Úconcatenate)rb   rô  rr   rõ  Úcdf1Úsf1rö  Úcdf2Zsf2Zppf1Zppf2Zisf1Zisf2r.   r.   r/   Ú!test_asymmetric_laplace_log_10_16S  s    ÿz7TestLaplaceasymmetric.test_asymmetric_laplace_log_10_16N)rÂ   rÃ   rÄ   r÷  r:  r@  r.   r.   r.   r/   r8  B  s   	r8  c                   @   s   e Zd Zdd„ Zej dg d¢¡dd„ ƒZej dg 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g d¢g d¢g d¢g d¢dejdddd gej dd!dd"d gg d#¢g d$¢g d%¢g	Ze e¡Zej d&e¡d'd(„ ƒZd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5S )6ÚTestTruncnormc                 C   s   t j d¡ d S rõ   rö   re   r.   r.   r/   r÷   f  s    zTestTruncnorm.setup_methodú	a, b, ref))r   rS   r^  )ç333333ã?çffffffæ?g•Ü²þlÀ)rŽ  g�íµ ÷ÆÀ>g ÿ�™Š¡+Àc                 C   s   t tj ||¡|dd� d S ©Nç»½×Ùß|Û=rp   ©r   r2   Ú	truncnormr>   ©rb   r,   r-   r9  r.   r.   r/   r(  i  s    zTestTruncnorm.test_entropy))r°  r_  ghøiÉ®9ç?)r  r`  r^  )g0Žä.ÿ+«r`  r^  )ç}Ã”%­I²Ôr`  çZ_2äø³ö?c                 C   s   t tj ||¡|dd� d S r  rG  rI  r.   r.   r/   Útest_extreme_entropy}  s    z"TestTruncnorm.test_extreme_entropyc              	   C   sJ   t jjg d¢dddgd dd�}t tjdd	dd
dtjg¡}t||ƒ d S )N©r¦   r   r]  rh   ç§èH.ÿï?r   rW   ç      ð¿r  r‰   é   rW   rT   r   çf”™˜Oð?çæšÙlÿ@ru   )r2   rH  r¼   rZ   r   rÞ   r   ræ  r.   r.   r/   Útest_ppf_ticket1131�  s
    
ÿz!TestTruncnorm.test_ppf_ticket1131c              	   C   sJ   t jjg d¢dddgd dd�}t tjdd	dd
dtjg¡}t||ƒ d S )NrM  rO  r  r‰   rP  rW   rT   ru   rR  rQ  r   )r2   rH  rS  rZ   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õÿÿÿr…  r   r   rR   rù   )rR   é   ©r2   rH  r�   r   ÚminrÚ  ©rb   ÚlowÚhighrQ   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)rS   rP   r   r   rR   rù   )rv   éé  )é'  i'  )iïØÿÿéðØÿÿ)r2   rH  r�   r   rW  rÚ  rA   rX  r.   r.   r/   Útest_gh_2477_large_values¥  s    <..z'TestTruncnorm.test_gh_2477_large_valuesc                 C   sÈ  ddgddgfD �]°\}}t  t j ||t jg¡}|| d }tj |||¡}tj |||¡}tj |||¡}t  g d¢¡}t  g d¢¡}	t  g d¢¡}
|d	k r®t  g d
¢¡}
t||ƒ t||	ƒ t||
ƒ tt  	|
d |
d  ¡|d ƒ t  g d¢¡}tj 
|||¡}t  |t  |¡d |g¡}t||ƒ |d	k �rfttj |||¡dƒ ttj |||¡dƒ n,ttj |||¡dƒ ttj |||¡dƒ tj |||¡}tt  	||
d  ¡|d d ƒ qd S )Nr‰   r³   rI  éýÿÿÿrl   ©r   r   r   r   ©r  r  rm   rm   )r   çd._MTå
@çBŠKŸgý¹?r   r   )r   rd  rc  r   r   rW   rh   ©r   rh   r  gÓÄ–y–	@g¶d¥v*ë?g,mj%VƒÃ?r#  )rZ   r   rß   r2   rH  r`   r»   rY   r   rF  r¼   r°   )rb   rY  rZ  ÚxvalsÚxmidÚcdfsÚsfsÚpdfsÚexpected_cdfsÚexpected_sfsÚexpected_pdfsÚpvalsÚppfsÚexpected_ppfsrY   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 �]x\}}t  t j ||t jg¡}|| d }tj |||¡}tj |||¡}tj |||¡}t  g d¢¡}t  g d¢¡}	t  g d¢¡}
|d	k r®t  g d
¢¡}
t||ƒ t||	ƒ t||
ƒ tt  	|
d |
d  ¡|d ƒ t  g d¢¡}tj 
|||¡}t  |t  |¡d |g¡}t||ƒ tj |||¡}t||ƒ |d	k �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é'   r–  éØÿÿÿiÙÿÿÿrl   ra  rb  )r   çŽÄpGƒC@ç˜F—f²³<r   r   )r   ru  rt  r   r   rW   rh   re  gƒÛßE‚C@g iþÿÿï?gspXäio)>r#  rU  r±   )rZ   r   rß   r2   rH  r`   r»   rY   r   rF  r¼   r°   r  )rb   rY  rZ  rf  rg  rh  ri  rj  rk  rl  rm  rn  ro  rp  rY   Zxvals2r.   r.   r/   Útest_gh_9403_medium_tail_valuesÛ  sb    


ÿ


ÿÿÿÿ ÿÿÿ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ýÿï?rÀ  gš™™™™™ @g±•‰´‚Rí?)r   r2   rH  r`   rZ   rß   re   r.   r.   r/   Útest_cdf_tail_15110_14753
  s    ÿÿz'TestTruncnorm.test_cdf_tail_15110_14753)éâÿÿÿrø   rm   r  rm   rm   )r…  rR   rm   r  rm   g“LúFu¼)r`  r‰   rm   gMFmz“%ï?rm   gÔîçÅ¿)rÈ   rW   rm   ghöI}Âè?rm   gHNñ…Mä¿r   gQ6Ô3Eˆé?gûnl$ŸA×?gr¿1"DÙï?gK8­ëLÐë?gQ6Ô3Eˆé¿gr¿1"DÙï¿)r±   r‰   gªƒUê*Ò?ç† bßn·ã?gìn»óõAá?ç?c3ÃTXÊ¿)r`  r   gªƒUê*Ò¿rz  gìn»óõAá¿r{  )r…  é÷ÿÿÿ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}   )r2   rH  r   )rb   r}  r,   r-   Úm0Zv0Ús0Zk0ÚmÚvrD   rN   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   rH  rZ   rß   r   )rb   r�  r‚  r.   r.   r/   Útest_9902_momentsC  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)rR   rý   r   r   rR   rù   rV  rX  r.   r.   r/   Útest_gh_1489_trac_962_rvsH  s    z'TestTruncnorm.test_gh_1489_trac_962_rvsc                 C   s²   ddt j dt j t j dddddg}dddt jddddd	t jt jg}tjj||dt|ƒfd
�}t  |¡dt|ƒfkszJ ‚tt  ||j	dd�k¡ƒ tt  |j
dd�|k¡ƒ d S )Nr…  rR   r¿  iÓÿÿÿr–  rU  ru   rs  é-   rù   r   )Zaxis)rZ   rß   r2   rH  r�   r×   r  r   r¾   rW  rÚ  rX  r.   r.   r/   Útest_gh_11299_rvsN  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€   r…  r¿  ru   rº   )r+   rZ   r   r2   rH  r�   r€   re   r.   r.   r/   Útest_rvs_GeneratorX  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  g d¢¡}g d¢}tt ||¡ |¡|ƒ tt | | ¡ | ¡|ƒ d S )NéøÿÿÿrR   rÀ  )rR   ç      @r‹  é	   r•  )g±Oèul"»gÚ�»=�ö!½g†L—òçœ!½g>EG	f§ ¼gõ^½K[X²)rZ   r   rß   r   r2   rH  rf  rã  )rb   r,   r-   rQ   rK   r.   r.   r/   Útest_logcdf_gh17064^  s     z!TestTruncnorm.test_logcdf_gh17064c                 C   s$   t  dd¡ d¡}d}t||ƒ d S )NrÈ   r‰   ru   gël).0Sú?)r2   rH  r¡  r   )rb   r“   r9  r.   r.   r/   Útest_moments_gh18634i  s    z"TestTruncnorm.test_moments_gh18634N)rÂ   rÃ   rÄ   r÷   rŸ   rÅ   rÆ   r(  rL  rS  rT  r[  r_  rq  rv  rx  rZ   rß   Z_truncnorm_stats_datar   rƒ  r…  r†  rˆ  r‰  r�  rŽ  r.   r.   r.   r/   rA  e  sZ   ÿ
ÿ

#/üüã#


rA  c                   @   s¨   e Zd Zej dg d¢¡dd„ ƒZej dg d¢¡dd„ ƒZej d	d
dg¡dd„ ƒZej dddg¡dd„ ƒZ	ej dddg¡dd„ ƒZ
ej d	ddg¡dd„ ƒZdS )ÚTestGenLogisticúx, expected))iüÿÿg4ÁÍ`n—À)iƒÿÿÿg4 	ncgÀ)r   gXâˆÃ
=õ¿)rS   gh@ÜæXÀ)rv   gh‚›Á<�Àc                 C   s$   d}t j ||¡}t||dd� d S )Nrj  ry   rp   )r2   Úgenlogisticr†   r   )rb   rQ   rK   rK  Úlogpr.   r.   r/   Útest_logpdfv  s    zTestGenLogistic.test_logpdfr  ))r  gòTKµEèl@)r]  g£°ÉJÇk$@)r˜   gûs�F<ù?)r`  çÛ7~F<ù?c                 C   s   t tj |¡|dd� d S r¸  )r   r2   r‘  r>   r  r.   r.   r/   r(  ‡  s    zTestGenLogistic.test_entropyr  )r+  rR   g8 †ž‡.)éô  r•  gpT	öoc                 C   s   t tj ||¡|dd� d S r  )r   r2   r‘  r»   r  r.   r.   r/   rR  ž  s    zTestGenLogistic.test_sfú	q, c, ref)rj   r+  g^ˆ… Ì#@)rÖ  rW   gG´FŽf@c                 C   s   t tj ||¡|dd� d S ©NçVçž¯Â<rp   )r   r2   r‘  rS  ©rb   r4  rK  r9  r.   r.   r/   rU  £  s    zTestGenLogistic.test_isf)rh   r+  gÄ°ïà§@)r¦  r•  gˆ³1äìa@c                 C   s   t tj ||¡|dd� d S r—  )r   r2   r‘  r¼   r™  r.   r.   r/   r×  ¨  s    zTestGenLogistic.test_ppf)rS   ç{®Gáz”?g�(?ˆ„ý�¶)rû   r•  g'ÅÎTn7²»c                 C   s   t tj ||¡|dd� d S rn   )r   r2   r‘  rf  r  r.   r.   r/   Útest_logcdf­  s    zTestGenLogistic.test_logcdfN)rÂ   rÃ   rÄ   rŸ   rÅ   rÆ   r“  r(  rR  rU  r×  r›  r.   r.   r.   r/   r�  s  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d„ Z
dd„ Zdd„ Zdd„ ZdS )ÚTestHypergeomc                 C   s   t j d¡ d S rõ   rö   re   r.   r.   r/   r÷   ´  s    zTestHypergeom.setup_methodc                 C   s´   t jjddddd�}tt |dk¡t |dk¡@ ƒ tt |¡dkƒ t|jjt	d v ƒ t j ddd¡}tt
|tƒƒ t  ddd¡ d¡}tt
|tjƒƒ t|jjt	d v ƒ d S )Nr•  rR   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û   r•  rW   gÐk¸ã…’P?rU  )r2   r�  r  r   )rb   Ú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   rW   r   r  rU  rm   )r   r2   r�  r  re   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�  r`   re   r.   r.   r/   Útest_cdf_above_oneÖ  s    z TestHypergeom.test_cdf_above_onec                    sŒ   d‰ d‰t  g d¢¡d }d‰‡ ‡‡fdd„|D ƒ}t  g d¢¡}t||d	d
d� g d¢}tj |ˆ ˆ ˆ d¡}g d¢}t||d	d
d� d S )Ng    €+ø@g     Ûú@)r‰   çffffff@ç333333@r³   gffffff@çÍÌÌÌÌÌ@ru   ç     ˆÃ@ç     ˆÓ@c                    s"   g | ]}t j ˆˆ ˆ ˆ |¡‘qS r.   )r2   r�  r»   )r7   Zeaten©ZorangesZpearsÚquantiler.   r/   r9   á  s   ÿz1TestHypergeom.test_precision2.<locals>.<listcomp>)r   gpóˆ¶ÁÁR(gá»ã˜�R2gJÏÞ± p9g?ï§Mf¸Ö=çÊ
�Gº°¿?r   r   g�íµ ÷Æ >r†  )g     ŽÒ@r§  g     ‚Ô@g     ÿÔ@g     ‚ä@)r   rª  gò‘ÃÖ)9g­Áå"Ÿ¶1)rZ   r   r   r2   r�  r»   )rb   Zfruits_eatenr“   rK   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�  r>   rZ   r   r$  r   r   r   )rb   Ú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  rž  g_7ß	j$æ±rý   )r2   r�  rã  r   ©rb   rN   rž  r+  rŸ  ÚresultrK   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 g d¢¡}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›äáŽ×¨’½)r–  r–  r–  )r2   r�  rf  r   rZ   r   Úfullr³  r.   r.   r/   r›    s8    zTestHypergeom.test_logcdfc                 C   s6   d}d}d}t j |||¡}|| | }t||ƒ d S )Nipó iP¥ ià.  )r2   r�  r½   r   )rb   rž  r+  rŸ  ZhmZrmr.   r.   r/   Útest_mean_gh18511?  s    zTestHypergeom.test_mean_gh18511c                 C   s`   d}d}t  dd¡}d| }tj |d |||¡}t  |dk¡sDJ ‚t  t  |¡dk ¡s\J ‚d S )NrR   r²   ru   rý   ç      $@r   r   )rZ   rÛ   r2   r�  r»   r¾   Údiff)rb   r+  rŸ  r¢  Zpopulation_sizer,  r.   r.   r/   Útest_sf_gh18506J  s    zTestHypergeom.test_sf_gh18506N)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ej dg d¢¡dd„ ƒZej dg d¢¡dd„ ƒZd	d
„ Zdd„ Z	ej dddg¡dd„ ƒZ
ej dg d¢¡dd„ ƒZdS )ÚTestLoggammaz	x, c, cdf))r   rW   g;ŠÆYþ%è?)r±   é   gRÙ²®a6_<)gÍÌÌÌÌH‡ÀrÖ  gi|ØÈÀeÞ?)éàüÿÿrÖ  g6ãlÞÆÜ?)i+ýÿÿrO   g“Ö¬ðCCf9)iýÿÿr¶   g Öºlåc                 C   s<   t j ||¡}t||dd� t j ||¡}t||dd� d S rx   )r2   Úloggammar`   r   r¼   )rb   rQ   rK  r`   r,  Úyr.   r.   r/   rM  ]  s    zTestLoggamma.test_cdf_ppfzx, c, sf))r³   rj  gQOuÁ3;)é   rS   g\Z{°¡Â0)r¾  rÖ  geŽÉ�ùœá?)iýÿÿg{®Gázd?gr0T±²ÿê?c                 C   s<   t j ||¡}t||dd� t j ||¡}t||dd� d S rx   )r2   r¿  r»   r   rS  )rb   rQ   rK  r»   rD   rÀ  r.   r.   r/   r  o  s    zTestLoggamma.test_sf_isfc                 C   s    t j dd¡}t|ddd� d S )NéþÿÿrW   g     @�Àrè  rp   )r2   r¿  r†   r   )rb   Úlpr.   r.   r/   r“  z  s    zTestLoggamma.test_logpdfc                 C   sT   t  g d¢¡ dd¡}|D ]4\}}}}}tjj|dd�}t|||||gdd� qd S )N)rh   gÑ"Ûù~jÿ¿g46<½@g o�Å�ø¿ç      @r  gÕ	h"lxâ¿gá“©‚Qú?g¬Zd;ò¿ç333333@g      (@g{ƒ/L¦Š@g¼?¶?gÐ³Yõ¹ÚÒ¿gh‘í|?5Æ?r±   ru   ZmsvkrÑ  r³   r  )rZ   r   Úreshaper2   r¿  r   )rb   ÚtablerK  r½   ÚvarÚskewZkurtÚcomputedr.   r.   r/   rÔ  ‚  s    ûÿzTestLoggamma.test_statsrK  rO   rÖ  c                 C   sv   t jj|dd�}t |¡ ¡ s"J ‚t j |¡}t  t ||k ¡t	|ƒ¡}|j
dd�}|jd  k rl|jk srn J ‚d S )Nr²   rù   r=  )Zconfidence_levelrh   )r2   r¿  r�   rZ   Úisfiniter¾   ÚmedianZ	binomtestZcount_nonzeror×   Zproportion_cirY  rZ  )rb   rK  rQ   ZmedZbtestÚcir.   r.   r/   r  ‘  s    zTestLoggamma.test_rvsr  ))r  g3Hà»±k3@)r   r”  )r¦  g8,[H^}	À)r_  gÉ90$À)r`  gt‹ºÑum\Àc                 C   s   t tj |¡|dd� d S r  )r   r2   r¿  r>   r  r.   r.   r/   r(  Ÿ  s    zTestLoggamma.test_entropyN)rÂ   rÃ   rÄ   rŸ   rÅ   rÆ   rM  r  r“  rÔ  r  r(  r.   r.   r.   r/   r¼  V  s    ÿ
ÿ

ÿr¼  c                   @   s*   e Zd Zg d¢Zej de¡dd„ ƒZdS )ÚTestJohnsonsu))rÂ  r   r   g�®ÿÿÿï?r  )rw   r   r   gHû'ôˆÁ;ç‚vIhÂ%,=)r²   r   r   g?Ä•x Á7rÏ  r}  c                 C   sF   |\}}}}}t tj |||¡|dd� t tj |||¡||d� d S ©NrÏ  rp   )r   r2   Ú	johnsonsur»   rS  ©rb   r}  rQ   r,   r-   r»   Útolr.   r.   r/   r  À  s    zTestJohnsonsu.test_sf_isfN©rÂ   rÃ   rÄ   ÚcasesrŸ   rÅ   rÆ   r  r.   r.   r.   r/   rÎ  ±  s   rÎ  c                   @   s*   e Zd Zg d¢Zej de¡dd„ ƒZdS )ÚTestJohnsonb))r]  r   r   gÿÿÿÿÿÿï?çH¯¼šò×z>)rN  r   r   g0új—…Añ:rÏ  )gé!çýÿï?r   r   g�QbFÚÁµ5rÏ  r}  c                 C   sF   |\}}}}}t tj |||¡|dd� t tj |||¡||d� d S )NrÏ  rp   r}   )r   r2   ré   r»   rS  rÒ  r.   r.   r/   r  Ö  s    zTestJohnsonb.test_sf_isfNrÔ  r.   r.   r.   r/   rÖ  Ç  s   rÖ  c                   @   sx   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d„ ZdS )ÚTestLogisticc                 C   s2   t  dd¡}tj |¡}tj |¡}t||ƒ d S ©NrH  r•  )rZ   r  r2   Úlogisticr`   r¼   r   ©rb   rQ   rÀ  rL  r.   r.   r/   rM  ß  s    zTestLogistic.test_cdf_ppfc                 C   s2   t  dd¡}tj |¡}tj |¡}t||ƒ d S rÙ  )rZ   r  r2   rÚ  r»   rS  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¼   rS  )rb   r,  Zdesiredr.   r.   r/   Útest_extreme_valuesë  s    z TestLogistic.test_extreme_valuesc                 C   s*   t j g d¢¡}g d¢}t||dd� d S )N)r�  r   rR   )gm\‡  .Àgï9úþB.ö¿gO&«æ $Àry   rp   )r2   rÚ  r†   r   )rb   r’  rK   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   r¾  )r2   rÚ  r†   r   ©rb   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 )NrS   ©r›   rU   rV   c                 S   s�   | \}}t |ƒ}t t || | ¡dt || | ¡  ¡|d  }t || | t || | ¡d t || | ¡d   ¡| }||fS ©Nr   rW   )r×   rZ   r$  r�   )Úinputr£   r,   r-   r+  Úx1Úx2r.   r.   r/   rÍ     s    ÿÿÿÿþz#TestLogistic.test_fit.<locals>.funcrz  g ÂëþKH´9r}   )r2   rÚ  r�   r!   Ú	_fitstartrQ   r©   r   )rb   Úloc_rvsÚ	scale_rvsr£   rÍ   Zexpected_solutionZ
fit_methodr.   r.   r/   Útest_fit   s    
ÿ
zTestLogistic.test_fitc                 C   sB   t jjdddd�}tt j|ƒ tt j|dd� tt j|dd� d S )NrS   rh   rW   rà  r   r§   ©rœ   )r2   rÚ  r�   r¡   ©rb   r£   r.   r.   r/   Útest_fit_comp_optimizer  s    z$TestLogistic.test_fit_comp_optimizerÚ
testlogcdfTFc                 C   sH   t  g d¢¡}|r tj |¡}ntj | ¡}g d¢}t||dd� d S )N)r^  r¾  é   rû   r•  )ç     ˆÃÀg      ‰Àg%h¢ã9f¾g?~T}%m»g�CÔx^&Ù’çVçž¯â<rp   )rZ   r   r2   rÚ  rf  rã  r   )rb   rì  rQ   rÀ  rK   r.   r.   r/   Útest_logcdfsf_tails  s    z TestLogistic.test_logcdfsf_tailsc                 C   s2   t  g d¢dgd  dgd  ¡}ttj|ƒ d S )N)	i5þÿÿé%   é+   r‡  r‡  é0   é6   é7   é:   é;   r‰   é=   rŒ  )rZ   r   r¡   r2   rÚ  rê  r.   r.   r/   Útest_fit_gh_18176,  s    
ÿÿzTestLogistic.test_fit_gh_18176N)rÂ   rÃ   rÄ   rM  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d„ Zd	S )
Ú
TestLogserc                 C   s   t j d¡ d S rõ   rö   re   r.   r.   r/   r÷   6  s    zTestLogser.setup_methodc                 C   sš   t jjddd�}tt |dk¡ƒ tt |¡dkƒ t|jjt	d v ƒ t j d¡}tt
|tƒƒ t  d¡ d¡}tt
|tjƒƒ t|jjt	d v ƒ d S )Nr¶   rú   rù   r   rü   r‰   )r2   Úlogserr�   r   r   r¾   r  r�   r  r   r  r  r  r  r.   r.   r/   r  9  s    zTestLogser.test_rvsc                 C   s   t j dd¡}t|dƒ d S )Nr³   rç  g&¦¬ª¶Y3)r2   rû  r  r   ©rb   r�  r.   r.   r/   Útest_pmf_small_pD  s    zTestLogser.test_pmf_small_pc                 C   s   t j d¡}t|dƒ d S )Nr  gî˜W  ð?)r2   rû  r½   r   rü  r.   r.   r/   Útest_mean_small_pR  s    zTestLogser.test_mean_small_pN)rÂ   rÃ   rÄ   r÷   r  rý  rþ  r.   r.   r.   r/   rú  5  s   rú  c                	   @   s¢   e Zd Zejdd�dd„ ƒZej dej	ej
g¡ej dg d¢¡ej dg d	¢¡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õ   ©rZ   r   r€   re   r.   r.   r/   r‘   ^  s    zTestGumbel_r_l.rngr8   ræ  ©r±   r   r   rç  ©rO   r   ru   zfix_loc, fix_scaleTFc           	      C   sN   |j d|||d�}tƒ }|r(|d |d< |r8|d |d< t||fi |¤Ž d S )NrS   ©r›   rU   rV   r|   rW   r�   rœ   )r�   rÙ   r¡   )	rb   r8   ræ  rç  r™   r  r‘   r£   r¤   r.   r.   r/   rë  b  s    
ÿz&TestGumbel_r_l.test_fit_comp_optimizerz	dist, sgnr   r±   c                 C   s@   |t  g d¢¡ }| |¡\}}t||d ƒ t|ddd� d S )N)r‰   r‰   r‰   r‰   r‰   r‰   r‰   gî˜W  @g»   @g3qûtw>rŽ  rp   )rZ   r   r©   r   )rb   r8   ZsgnÚzrU   rV   r.   r.   r/   rè  w  s    zTestGumbel_r_l.test_fitN)rÂ   rÃ   rÄ   rŸ   Úfixturer‘   rÅ   rÆ   r2   Úgumbel_rÚgumbel_lrë  rè  r.   r.   r.   r/   rÿ  ]  s   

ÿÿrÿ  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 d   ƒ n1 �s´0    Y  d S )Nr)  rh   rÐ  rÑ  r  rj  rÏ  rl   r›  g«ªªªªªú?grÇqÇ@r¶   ç      @gffffffö?gåK~±ä×?g      2@gÛ¶mÛ¶mÛ?rÄ  çUUUUUUõ?gÇqÇqÌ?r¹  ç      @g%I’$I’ô?g�QªÉãÎÂ?gUUUUUU@grÇqÇá?gä8Žã8Nb@)r-  r.  r/  r0  r2   Úparetor   rZ   rß   rÞ   r   rª  ©rb   r�  r‚  rD   rN   r.   r.   r/   rÔ  ƒ  s^    











zTestPareto.test_statsc                 C   s:   d}d}d}t jj||d|d�}|| | }t||ƒ d S )Ng    eÍÍArW   rj  r   rT   )r2   r  r»   r   )rb   rQ   r-   rV   r,  rK   r.   r.   r/   rR  ¿  s    zTestPareto.test_sfr   r  c                 C   s   t j d¡S rõ   r  re   r.   r.   r/   r‘   Ç  s    zTestPareto.rngz2ignore:invalid value encountered in double_scalarsr—   r   rW   r–   r   r  ru   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 J ‚t jjd|||d |d�}t jj|dd	�\}	}
}t|d | ¡ ƒ |d }|jd }t|	|t t 	|| ¡  ¡¡ ƒ t|
dƒ d S )
NrS   ©r›   r-   rV   rU   r|   r   ç¤p=
×£ð?)r�   rž   )r�   Úfix_b)r�   ÚfbrW   r§   )
r2   r  r�   r©   r   rW  r  rZ   r$  rF  )rb   r—   r–   r  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/   rè  Ë  s,    ÿÿÿÿ
ÿzTestPareto.test_fitrO   úfix_shape, fix_loc, fix_scalec                 C   s   g | ]}d |v r|‘qS ©Fr.   ©r7   r,  r.   r.   r/   r9   ë  s   ÿzTestPareto.<listcomp>TFr‰   ©ÚrepeatÚignore©Úinvalidc           
      C   sV   t jjd||||d�}i }	|r&||	d< |r2||	d< |r>||	d< tt j|fi |	¤Ž d S )NrS   r  rž   r�   rœ   )r2   r  r�   r¡   ©
rb   r—   r–   r  rš   r™   r  r‘   r£   r¤   r.   r.   r/   r¥   ç  s    	ÿz&TestPareto.test_fit_MLE_comp_optimizerc                 C   s8   d\}}}t jj|||dtj d¡d�}tt j|ƒ d S )N)r   r   r   rS   iÃ°& rº   )r2   r  r�   rZ   r   r€   r¡   )rb   r  ÚlocationrV   r£   r.   r.   r/   Útest_fit_known_bad_seedý  s
    

ÿz"TestPareto.test_fit_known_bad_seedc                 C   s@   t tjƒ tttjjg d¢dd� tttjjg d¢ddd� d S )NrÒ   rW   r§   )ru   rW   r‰   r   r‰   r!  )râ   r2   r  r/  r   r©   re   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   rS   )rU   r-   r›   r|   r   )r2   r  r�   r
   r©   )rb   r‘   r£   r´   r.   r.   r/   Útest_negative_data	  s    
zTestPareto.test_negative_dataN)rÂ   rÃ   rÄ   rÔ  rR  rŸ   r  r‘   rÅ   ÚfilterwarningsrÆ   rè  r$   rZ   Úerrstater¥   r  r   r!  r.   r.   r.   r/   r  ‚  s*   <


ÿ


	r  c                   @   s¸   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zej ddg d¢fdddde d¡ ejgfdddde d¡ d gfd!g d"¢fg¡d#d$„ ƒZd%d&„ Zd'S )(ÚTestGenparetoc                 C   sl   dD ]6}t  |¡}tj |¡\}}t|dƒ tt  |¡ƒ qt  d¡}tj |¡\}}t||gddgƒ d S )N©r  rm   rm   ç       Àrh   )	rZ   r¨   r2   Ú	genparetoÚ_get_supportr   r   Úisposinfr   )rb   rK  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   ©rK  r   r¹  rø   r  rR   )
r2   r'  rZ   r  r   rY   r4  r`   r»   r¼   ©rb   ÚrvrQ   r4  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 )
NrO  r+  r   r¹  rø   rm   r  rR   r   )r2   r'  rZ   r  r   rY   Úuniformr`   r»   r¼   r†   r,  r.   r.   r/   Útest_cm13	  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 )NrO   r+  rm   r  rO  )
r2   r'  r   rY   rZ   rß   r`   r   Úisneginfr†   ©rb   r-  r.   r.   r/   Ú
test_x_infA	  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   rR   rø   ©r   r±   ©rè  g›+¡†›„½rY  r}   )rè  rè  )rZ   r  r2   r'  rY   r   r`   )rb   rQ   rK  Zpdf0ÚdcZpdfcZcdf0Zcdfcr.   r.   r/   Útest_c_continuityO	  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 ©NrY  rj   rO   ©Úbaser   rø   F©Zendpointr  )rm   rO  r5  r}   )rZ   r  rJ  r  r2   r'  r¼   r   )rb   r4  rK  Zppf0r6  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 r8  )rZ   r  rJ  r  r2   r'  rS  r   )rb   r4  rK  Zisf0r6  Zisfcr.   r.   r/   Útest_c_continuity_isfg	  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 )NrY  rj   rO   r9  r   rø   Fr;  r  )r  g¬CÒÑ]r2¼ro   gVçž¯Ò¼ro   r}   )	rZ   r  rJ  r  r   r2   r'  r`   r¼   )rb   r4  rK  r.   r.   r/   Útest_cdf_ppf_roundtripq	  s    þÿz$TestGenpareto.test_cdf_ppf_roundtripc                 C   s    t j dddd¡}t|dƒ d S )Nr_  rj   r   r   gÐpŽµEÈœÀ)r2   r'  rã  r   rÞ  r.   r.   r/   rï  z	  s    zTestGenpareto.test_logsfzc, expected_statsr   )r   r   rW   rÁ  r#  r  gÇqÇq@rR   rW   gÇqÇq¼?g      ò?g“$I’$	ú?çrÇqÇñ?rP  glÁlÁ0@r±   )rh   çUUUUUUµ?r   ç333333ó¿c                 C   s$   t jj |dd�}t||ddd� d S )NrÐ  rÑ  ry   ro   r  )r2   r'  r   )rb   rK  Úexpected_statsr´  r.   r.   r/   rÔ  €	  s    zTestGenpareto.test_statsc                 C   s   t j d¡}t|ddd� d S )Nr  gvÇ¼
  ð?ry   rp   )r2   r'  rÈ  r   )rb   r‚  r.   r.   r/   Útest_varŠ	  s    zTestGenpareto.test_varN)rÂ   rÃ   rÄ   r*  r.  r0  r3  r7  r<  r=  r>  rï  rŸ   rÅ   rÆ   rZ   rª  rÞ   rÔ  rC  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S )ÚTestPearson3c                 C   s   t j d¡ d S rõ   rö   re   r.   r.   r/   r÷   ‘	  s    zTestPearson3.setup_methodc                 C   s˜   t jjddd�}tt |¡dkƒ t|jjtd v ƒ t j d¡}tt	|t
ƒƒ t  d¡ d¡}tt	|tjƒƒ t|jjtd v ƒ tt|ƒdkƒ d S )NrO   rú   rù   ZAllFloatrh   r‰   )r2   r(   r�   r   r   r  r�   r  r   r  r«   r  r×   r  r.   r.   r/   r  ”	  s    zTestPearson3.test_rvsc                 C   s|   t j dg d¢¡}t|t g d¢¡dd� t j dd¡}t|t dg¡dd� t j g d	¢d¡}t|t g d
¢¡dd� d S )NrW   ©rm   rO   rt  )gtÏÛT´¤«?g×Å+®q¬?gÏ›Ö­?rŽ  r}   r`  rO   çND}š¬´i?©r`  rÈ   r±   r   r   )rF  gëôj¨•ª?gdž�CšÐ?gÖÌs§è†Ù?gÍ'§MøÍ?)r2   r(   rY   r   rZ   r   rÜ  r.   r.   r/   r  Ÿ	  s    ÿÿzTestPearson3.test_pdfc                 C   sp   t j dg d¢¡}t|t g d¢¡dd� t j dd¡}t|dgdd� t j g d	¢d¡}t|g d
¢dd� d S )NrW   rE  )g³rõ„¡Eï?gTpº]0ï?g‡•~€½ï?rŽ  r}   r`  rO   g �E&"ôJ?rG  )gi€ãZ*ôJ?gƒh+Ã8w”?gý‘ÁcKÄ?g³|<x6à?gG‡íê?)r2   r(   r`   r   rZ   r   rÜ  r.   r.   r/   r  ©	  s    ÿ
ÿzTestPearson3.test_cdfc                    s@   g d¢}d‰d‰ t j ˆ|¡}‡ ‡fdd„|D ƒ}t||ƒ d S )N©r`  r±   r   rh   rh   ry  c                    s$   g | ]}t t |¡jˆ ˆƒd  ‘qS r5   )r   r2   r(   rY   )r7   rÉ  ©Zneg_infÚx_evalr.   r/   r9   º	  s   ÿz<TestPearson3.test_negative_cdf_bug_11186.<locals>.<listcomp>)r2   r(   r`   r   )rb   Úskewsrh  Zint_pdfsr.   rI  r/   Útest_negative_cdf_bug_11186³	  s    ÿz(TestPearson3.test_negative_cdf_bug_11186c                 C   sT   t j dd¡}t|dƒ t|tjƒs(J ‚t j dd¡}t|dƒ t|tjƒsPJ ‚d S )Nr   rW   r   rŽ  )r2   r(   r¡  r   r  rZ   Únumber)rb   r¡  r.   r.   r/   Útest_return_array_bug_11746¾	  s    

z(TestPearson3.test_return_array_bug_11746c                 C   s¶   g d¢}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 )NrH  rh   r¦   rj  rÈ   rW   )r2   r(   r¼   r`   r   rZ   r   r  rY   r»   rS  )rb   rK  rJ  r“   rÉ  rQ   r.   r.   r/   Útest_ppf_bug_17050É	  s    
ÿÿÿzTestPearson3.test_ppf_bug_17050c                 C   sT   g d¢}g d¢}g d¢}t tj ||¡|dd� t tj |d¡tj |¡dd� d S )N)rO   rh   r  çš™™™™™¹¿)r  r¹  g      I@ç       @)gÃ7¼À¢»>g¯Ž~×¼Ö=gp'ž+àè¦7güªªª;r  rp   r   )r   r2   r(   r»   rú  )rb   rÉ  rQ   r9  r.   r.   r/   rR  Ü	  s
    zTestPearson3.test_sfN)rÂ   rÃ   rÄ   r÷   r  r  r  rL  rN  rO  rR  r.   r.   r.   r/   rD  �	  s   

rD  c                   @   sD   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dS )Ú
TestKappa4c                 C   sD   g d¢}d}dD ].}t j |||¡}t j || ¡}t||ƒ qd S )N)rm   rO   rt  rh   r  )
gffffffþ¿rO  r¦   çš™™™™™É¿rP  rO   rt  rh   r  çffffffþ?)r2   Úkappa4r`   r'  r   ©rb   rQ   r'  rN   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 )Nr¿  ru   rR   rm   r`  r‰   )rZ   r  r2   rU  r`   Ú
genextremer   rV  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   rR   r  rm   )rZ   r  r2   rU  r`   r4  r   rV  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 )Nr¿  ru   rR   rm   )rZ   r  r2   rU  r`   r	  r   rV  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 )Nr¿  ru   rR   rO  rm   )rZ   r  r2   rU  r`   rÚ  r   rV  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 )Nr¿  ru   rR   r  )rZ   r  r2   rU  r`   r/  r   rV  r.   r.   r/   Útest_cdf_uniform
  s    zTestKappa4.test_cdf_uniformc                 C   s   t  dd¡ d S rá  )r2   rU  re   r.   r.   r/   Útest_integers_ctor!
  s    zTestKappa4.test_integers_ctorN)
rÂ   rÃ   rÄ   rW  rY  rZ  r[  r\  r]  r^  r.   r.   r.   r/   rR  è	  s   					rR  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ö   re   r.   r.   r/   r÷   (
  s    zTestPoisson.setup_methodc                 C   s@   t  d¡}tj g d¢|¡}d|d |d d g}t||ƒ d S )NrW   ©r   r   rW   rh   r³   )rZ   rF  r2   r8  r  r   )rb   Zln2r  rK   r.   r.   r/   Útest_pmf_basic+
  s    
zTestPoisson.test_pmf_basicc                 C   s@   t j g d¢d¡}g d¢}t||ƒ t j dd¡}t|dƒ d S )Nr`  r   )r   r   r   çffffffî?©r   r   )r2   r8  r  r   Úintervalr   )rb   r  rK   rd  r.   r.   r/   Útest_mu02
  s
    
zTestPoisson.test_mu0c                 C   sš   t jjddd�}tt |dk¡ƒ tt |¡dkƒ t|jjt	d v ƒ t j d¡}tt
|tƒƒ t  d¡ d¡}tt
|tjƒƒ t|jjt	d v ƒ d S )Nrh   rú   rù   r   rü   r‰   )r2   r8  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 g d¢¡}t jj |dd�}||tjddt d¡ gtjddgf}t||ƒ d S )	Ng      0@rÐ  rÑ  r  )rm   r  rl   r   rW   rh   )r2   r8  r   rZ   rª  r   rß   )rb   r|  r´  rK   r.   r.   r/   rÔ  F
  s     &zTestPoisson.test_statsN)rÂ   rÃ   rÄ   r÷   ra  re  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ö   re   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   rW   r‰   rR   rS   rv   r   rh   r   r  rW   rm   )rZ   r   r1   r   Úgammalnr�   r2   Úksoner»   rÚ  Úkstwor`   r   )rb   r+  rQ   Úv1ÚlgÚelgrK   rÄ  r.   r.   r/   r  U
  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   rU  rg  rh   r  rW   )rZ   r  r   r1   r   rh  r�   r2   ri  r»   rW  rj  r   )rb   rQ   r+  rk  rl  rm  rK   rá  r.   r.   r/   rR  i
  s    &
ýzTestKSTwo.test_sfc                 C   s\   t  ddd¡dd … }g d¢}|D ]4}|t  |¡ }tj ||¡}t  |¡}t|dƒ q"d S )Nr   rW   rU  r   )rû   rS   r+  i�  rv   rw   r  )rZ   r  rª  r2   rj  r`   rº  r
   )rb   rQ   ÚnsZ_xÚxnÚprobsZdiffsr.   r.   r/   Útest_cdf_sqrtnx
  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   rU  rg  )rZ   r  r2   rj  r`   r»   r   )rb   rQ   r+  rÄ  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 rr  )rZ   r  rª  r2   rj  r`   r»   r   )rb   rQ   r+  ro  rÄ  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   rU  rg  rh   r¦  r]  rp   )rZ   r  r2   rj  r`   r¼   r   ©rb   rQ   r+  ro  rÄ  Ú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   rU  rg  rh   r  r]  rp   )rZ   r  r2   rj  rS  r»   r   )rb   rQ   r+  ro  Zvals_isfru  r  r.   r.   r/   Útest_isf_of_sfž
  s    zTestKSTwo.test_isf_of_sfc                 C   st   t  ddd¡}dD ]\}|t  |¡ |d| k }tj ||¡}d|k |dk @ }tj ||¡}t|| || ƒ qd S )Nr   r   rU  rg  rh   r  )rZ   r  rª  r2   rj  r`   r¼   r   rt  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   rU  rg  rh   rb  )rZ   r  rª  r2   rj  r»   rS  r   )rb   rQ   r+  ro  rá  ru  r  r.   r.   r/   Útest_isf_of_sf_sqrtn°
  s    zTestKSTwo.test_isf_of_sf_sqrtnc                 C   sJ   t  ddd¡dd … }dD ]*}tj ||¡}tj ||¡}t||ƒ qd S rr  )rZ   r  r2   rj  r¼   r`   r   )rb   rp  r+  ro  rÄ  r.   r.   r/   r×  º
  s
    zTestKSTwo.test_ppfc              	   C   sœ   g d¢}t  g d¢¡}t  g d¢g d¢g d¢g d¢g d¢g d¢g¡}t|ƒD ]J\}}|t  d	¡ t  t jd	 | ¡ }tj ||¡}t	||| d
d� qLd S )N)rR   rû   rS   r+  r•  rv   )r#  gUUUUUUÕ?rh   r   rW   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ˆûÿï?rW   r  rp   )
rZ   r   Ú	enumeraterF  rª  r[   r2   rj  r`   r   )rb   rn  ÚratiosrK   Úidxr+  rQ   rÄ  r.   r.   r/   Útest_simard_lecuyer_table1Á
  s    õ"z$TestKSTwo.test_simard_lecuyer_table1N)rÂ   rÃ   rÄ   r÷   r  rR  rq  râ  rs  rv  rw  rx  ry  r×  r}  r.   r.   r.   r/   rf  Q
  s   
		
rf  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ö   re   r.   r.   r/   r÷   ä
  s    zTestZipf.setup_methodc                 C   sš   t jjddd�}tt |dk¡ƒ tt |¡dkƒ t|jjt	d v ƒ t j d¡}tt
|tƒƒ t  d¡ d¡}tt
|tjƒƒ t|jjt	d v ƒ d S )Nrj  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,   rd  Úsk©r,   rÒ  )r2   r  r   rZ   rË  r   rß   r¾   r  r.   r.   r/   rƒ  ò
  s
    zTestZipf.test_momentsN)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 )
ÚTestDLaplacec                 C   s   t j d¡ d S rõ   rö   re   r.   r.   r/   r÷   ý
  s    zTestDLaplace.setup_methodc                 C   sœ   t jjddd�}tt |¡dkƒ t|jjtd v ƒ t j d¡}tt	|t
ƒƒ t  d¡ d¡}tt	|tjƒƒ t|jjtd v ƒ tt j d¡d uƒ d S )Nrj  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ñ  r   rW   r³   rc  rÏ  rè  r  r†  )r2   r…  rZ   rÛ   r  r$  r   r   )rb   r,   Údlr�  r‚  rD   rN   rŸ  rL  Ú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Ä  ç      
@)rZ   rF  r2   r…  r   r   )rb   r,   r†  r�  r‚  rD   rN   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                       s‚   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ej dg d¢¡dd„ ƒZ‡  ZS )ÚTestInvgaussc                 C   s   t j d¡ d S rõ   rö   re   r.   r.   r/   r÷   !  s    zTestInvgauss.setup_methodzrvs_mu,rvs_loc,rvs_scale)rW   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 J ‚d S )NrS   )r›   r|  rU   rV   r§   r±   ro   r†  r   r!  r  )Úfmur   )Zfix_mu©rž   )
r2   rç   r�   r©   rZ   r½   r×   r$  r   r   )rb   Úrvs_mur–   r  r£   r|  rU   rV   Zmu_tempÚ	scale_mleZmu_mleZ
shape_mle1Z
shape_mle2Z
shape_mle3r.   r.   r/   rè  $  s.    
ÿ


ÿÿzTestInvgauss.test_fit)gX9´Èv>@gÍÌÌÌÌÌ	@g®Gáz@c           	         sî   t j d¡}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
tj||d� t  ||d  dk¡s¨J ‚t
tj||d d� t
tj|dd� t
tj||t j d¡d d	� d S )
Nr¹   rS   )r›   r|  rU   rV   r|   r   rW   )r�   r�  r§   r   r!  )rZ   r   ÚRandomStater2   rç   r�   rÉ   rÊ   r©   r   r¡   r¾   Úrand)	rb   r�  r–   r  r‘   r£   Z	super_fitZsuper_fittedZinvgauss_fit©Ú	__class__r.   r/   r¥   C  s$    
ÿ


ÿz(TestInvgauss.test_fit_MLE_comp_optimizerc                 C   sL   t tjƒ t t¡�$ tjjg d¢dd� W d   ƒ n1 s>0    Y  d S r%  )râ   r2   rç   rŸ   r   r   r©   re   r.   r.   r/   Útest_fit_raise_errorsg  s    
z"TestInvgauss.test_fit_raise_errorsc                 C   s’   g d¢}g d¢}t jjd|d�}t||ƒ t jjddd�}t|dƒ t jjddd�}t|d	ƒ t j d
d¡}t|dƒ t j dd¡}t|dƒ d S )N)gÁ4‰ßwT;?gjdV&�}?g¥{ƒi\0³>gDV¤_Äh?gqacX?)r   r   r   r   r   çš™™™™™Ù?©r|  rÖ  çÍÌÌÌÌÌð?gáf¨úFšén   g¥‰r^ñß:gÖÿ9Ì—?r]  gÞÏx_Ï;¢:g™ò!¨½?gƒÏÙ·
?ï?)r2   rç   r`   r   r   r»   )rb   r|  rK   rI   Z
cdf_actualZ	sf_actualr.   r.   r/   râ  m  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ç   rf  r   rã  )rb   rf  rã  r.   r.   r/   rå  �  s    	


zTestInvgauss.test_logcdf_logsfzmu, ref))g:Œ0âŽyU>g ‹™ç,9À)rÖ  g%£æã!À)rj   gä4¹0üÀ)r˜   gµK'Š˜
@)r`  g°é`pŠ˜
@c                 C   s   t tj |¡|dd� d S rÐ  )r   r2   rç   r>   )rb   r|  r9  r.   r.   r/   r(  §  s    zTestInvgauss.test_entropy)rÂ   rÃ   rÄ   r÷   rŸ   rÅ   rÆ   rè  r¥   r•  râ  rå  r(  Ú__classcell__r.   r.   r“  r/   rŒ     s   ÿ
ÿ"#rŒ  c                       sz   e Zd Zej dg d¢¡ej dg d¢¡dd„ ƒƒZej dg d¢¡‡ fd	d
„ƒZdd„ Zdd„ Z	dd„ Z
dd„ Z‡  ZS )ÚTestLaplacer–   )r¿  r   r   rW   r  )r   rW   r‰   rR   c           	      C   sZ  t j d¡}tjjd|||d�}t  |¡}t  t  || ¡¡t	|ƒ }tj 
|¡\}}t||ddd� t||ddd� tjj
||d�\}}t||ddd� tjj
||d�\}}t||ƒ |d }t  t  || ¡¡t	|ƒ }tjj
||d�\}}t||ƒ tjj
||d�\}}t||ƒ tttjj
|||d	� tttjj
t jgƒ tttjj
t jgƒ d S )
Nr¹   rS   r  ro   r†  r§   ré  rW   r!  )rZ   r   r‘  r2   r±  r�   rÌ  r$  r‚   r×   r©   r   r   r/  rÜ   rÝ   rÞ   rß   )	rb   r–   r  r‘   r£   Zloc_mler�  rU   rV   r.   r.   r/   rè  ±  s0    ÿ



ÿzTestLaplace.test_fitúrvs_loc,rvs_scale))r¿  rR   ©rR   ru   )rh   rt  c                    sŽ   t j d¡}tjjd|||d�}dd„ }tj |¡\}}tttjƒtjƒ |¡\}}	||||ƒ}
|||	|ƒ}|
|k sŠt j	|
|ddd�sŠJ ‚d S )Nr¹   rv   r  c              	   S   s8   dt |ƒ t d| ¡ d| t t ||  ¡¡   S )Nr±   rW   r   )r×   rZ   rF  r$  r‚   )rU   rV   r£   r.   r.   r/   Úllé  s    ÿz3TestLaplace.test_fit_MLE_comp_optimizer.<locals>.llro   r†  )
rZ   r   r‘  r2   r±  r�   r©   rÉ   rÊ   rÌ   )rb   r–   r  r‘   r£   rž  rU   rV   Zloc_optZ	scale_optZll_mleZll_optr“  r.   r/   r¥   à  s     ÿ
ÿÿÿz'TestLaplace.test_fit_MLE_comp_optimizerc                 C   sZ   t  g d¢¡}tjj|dd�\}}t|dddd� tjj|dd�\}}t|dddd� d S )N)r  r  rÏ  r  rQ  rw  rÁ  r§   r³   ro   r†  ré  )rZ   r   r2   r±  r©   r   )rb   r£   rU   rV   r.   r.   r/   Útest_fit_simple_non_random_data÷  s
    z+TestLaplace.test_fit_simple_non_random_datac                 C   sl   d}t j | ¡}|dksJ ‚t j |¡}|dks6J ‚t j |¡}|dksNJ ‚t j | ¡}|dkshJ ‚d S )Nrv   rm   r  )r2   r±  r`   r»   )rb   rQ   Ú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+  rW   ry   rp   )r2   r±  r»   r   rZ   r�   )rb   rQ   r,  r.   r.   r/   rR    s    zTestLaplace.test_sfc                 C   s.   d}t j |¡}t|t d| ¡ dd� d S )NgÙ}ÚõÐò¾:rW   ry   rp   )r2   r±  rS  r   rZ   rF  )rb   r,  rQ   r.   r.   r/   rU    s    zTestLaplace.test_isf)rÂ   rÃ   rÄ   rŸ   rÅ   rÆ   rè  r¥   rŸ  r¢  rR  rU  rš  r.   r.   r“  r/   r›  °  s   -	r›  c                   @   s„   e Zd Zdd„ Zdd„ Zej dg d¢¡dd„ ƒZej d	g d
¢¡ej ddg¡ej dddg¡ej dddg¡dd„ ƒƒƒƒZ	dS )ÚTestLogLaplacec                 C   s@   t  g d¢¡}t  g d¢¡}g d¢}ttj ||¡|dd� d S )N)rl   rÏ  r  )r  r_  ç  4&õkC)gÈ ùÿÿÿï?g ÂëþKH¤9gXr—±òL0ro   rp   )rZ   r   r   r2   Ú
loglaplacer»   )rb   rK  rQ   r9  r.   r.   r/   rR  "  s    zTestLogLaplace.test_sfc                 C   s0   d}g d¢}g d¢}t tj ||¡|dd� d S )NrŠ  )r¸   rO   rF  rç  r  )gHhlh#è?g”H]9ç@ú?g"fjÛî#Ž@g1”›‘1Ags!ñ8 àwBrè  rp   )r   r2   r¥  rS  )rb   rK  r4  r9  r.   r.   r/   rU  *  s    zTestLogLaplace.test_isfr;  ©r   rW   r‰   r³   c                 C   sX   d|d  }t  d|d d¡}ttj ||¡t jƒ t  t  tjj||d�¡¡rTJ ‚d S )NrÐ  r   rh   rÑ  )	rZ   rÛ   r   r2   r¥  r¡  rß   rË   rË  )rb   r;  ÚmomrK  r.   r.   r/   Útest_moments_stats3  s    z!TestLogLaplace.test_moments_statsrK  )rh   r  rl   z
loc, scale)rA  gš™™™™™@Úfix_cTFr  c                 C   s¼   t j d¡}tjj|||d|d�}d|i}|r6||d< |rB||d< dt|ƒ }	|	dkr¤d	}
tjt	t
f|
d
��$ tjj|fi |¤Ž W d   ƒ n1 s–0    Y  d S ttj|fi |¤Ž d S )Nrˆ   rS   r   r�   Úfcrœ   r‰   r   rÓ   rÔ   )rZ   r   r€   r2   r¥  r�   r×   rŸ   r   rÜ   rÝ   r©   r¡   )rb   rK  rU   rV   r©  r  r‘   r£   r¤   Únfreer$  r.   r.   r/   Útest_fit_analytic_mle>  s     ÿ2z$TestLogLaplace.test_fit_analytic_mleN)
rÂ   rÃ   rÄ   rR  rU  rŸ   rÅ   rÆ   r¨  r¬  r.   r.   r.   r/   r£     s   	

r£  c                   @   s´   e Zd Zej dddg¡dd„ ƒZejdd�dd	„ ƒZej d
g d¢¡ej dg d¢¡ej dg d¢¡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 ) ÚTestPowerlawzx, a, sf)r#  rl   g      î?)g     àï?g      p?gÞÝSQýð>c                 C   s   t tj ||¡|dd� d S rn   )r   r2   Úpowerlawr»   )rb   rQ   r,   r»   r.   r.   r/   rR  \  s    zTestPowerlaw.test_sfr   r  c                 C   s   t j d¡S rõ   r  re   r.   r.   r/   r‘   b  s    zTestPowerlaw.rngr—   )rO   rh   r¶   r   rW   r–   r  r  r  r  c                 C   s   g | ]}d |v r|‘qS r  r.   r  r.   r.   r/   r9   j  s   ÿzTestPowerlaw.<listcomp>TFr‰   r  c           
      C   sp   t jjd||||d�}tƒ }	|r(||	d< |rDt | ¡ tj ¡|	d< |rP||	d< tt j|fi |	¤ddi¤Ž d S )Nr¶  )r›   r,   rU   rV   r|   rž   r�   rœ   rÎ   T)	r2   r®  r�   rÙ   rZ   Ú	nextafterrW  rß   r¡   r  r.   r.   r/   r¥   f  s    ÿÿz(TestPowerlaw.test_fit_MLE_comp_optimizerc                 C   sT   d}d}d}t jj|||dtj d¡d�}dt |¡d i}tt j|fi |¤Ž d S )	Ng•`- @rm   gÏrØþßŸA@rS   ru   )r,   rU   rV   r›   r|   rœ   rW   )r2   r®  r�   rZ   r   r€   Úptpr¡   )rb   r,   r  rV   r£   r¤   r.   r.   r/   Útest_problem_case~  s    
ÿzTestPowerlaw.test_problem_casec                 C   sh  t tjƒ d}tt|d��& tjjg d¢ddd� W d   ƒ n1 sF0    Y  d}tt|d��$ tjjg d¢dd� W d   ƒ n1 sŠ0    Y  d}tt|d��$ tjjg d¢d	d� W d   ƒ n1 sÎ0    Y  d
}tt|d��$ tjjg d¢dd� W d   ƒ n1 �s0    Y  d}tt|d��$ tjjg d¢dd� W d   ƒ n1 �sZ0    Y  d S )Nz7 Maximum likelihood estimation with 'powerlaw' requiresrÔ   ©r   rW   r³   r   r‰   r!  rW   r§   r   z$Negative or zero `fscale` is outsider`  ré  z0`fscale` must be greater than the range of data.)râ   r2   r®  r/  r   r©   rÝ   r0  r.   r.   r/   r   Œ  s     
4224zTestPowerlaw.test_fit_warningsc                 C   sH   g d¢}t j}tjdd�� t||ƒ W d   ƒ n1 s:0    Y  d S )N)r   r   rW   rW   r‰   r‰   r‰   r‰   r³   r³   ru   rÁ  r  ©Zover)r2   r®  rZ   r#  r¡   )rb   r£   r8   r.   r.   r/   Útest_minimum_data_zero_gh17801§  s    z+TestPowerlaw.test_minimum_data_zero_gh17801N)rÂ   rÃ   rÄ   rŸ   rÅ   rÆ   rR  r  r‘   r$   r¥   r±  r   r´  r.   r.   r.   r/   r­  Y  s$   ÿÿ


ÿr­  c                   @   st   e Zd Zej dg d¢¡dd„ ƒZej dddg¡dd	„ ƒZej dg d
¢¡dd„ ƒZej dg d¢¡dd„ ƒZ	dS )ÚTestPowerLogNormzx, c, s, ref))rS   r•  r   gaº!è®ÅR()rÖ  r•  r   g•;ùÿÿÿï?)rÖ  rš  r   gEþÿÿÿÿï?)ç’ÕMÏð€Drš  r   gÌìñºžœ=c                 C   s   t tj |||¡|dd� d S rx   )r   r2   rî   r»   ©rb   rQ   rK  rD   r9  r.   r.   r/   rR  Á  s    zTestPowerLogNorm.test_sfzq, c, s, ref)g¨½ßéÿÿï?rš  r   rj   )gR4Ó-—ºr•  r   rv   c                 C   s   t tj |||¡|dd� d S )Ng»½×Ùß|Ë=rp   )r   r2   rî   rS  )rb   r4  rK  rD   r9  r.   r.   r/   rU  Ë  s    zTestPowerLogNorm.test_isf))ç‘(,*‹ Erš  r   gßÿÿÿÿÿï?)rŽ  rš  r   g°¹��Šv§6)rŽ  r+  r   g+	94¤|7)r3  r+  r   g�üÿÿÿï?c                 C   s   t tj |||¡|dd� d S )Ng´àø¤tã =rp   )r   r2   rî   r`   r·  r.   r.   r/   r  Ñ  s    zTestPowerLogNorm.test_cdf))r¶  rš  r   gS^ÕŒ‰e9)ç@Œµx¯DrÖ  r   g0Ÿ�ÿg;)g¥\Ãñ)c=HrÖ  r   g±ó�7Hƒ7c                 C   s   t tj |||¡|dd� d S )NgßÄAfcŠ=rp   )r   r2   rî   rY   r·  r.   r.   r/   r  ä  s    zTestPowerLogNorm.test_pdfN)
rÂ   rÃ   rÄ   rŸ   rÅ   rÆ   rR  rU  r  r  r.   r.   r.   r/   rµ  °  s$   ÿ
ÿÿ
ÿ
ÿrµ  c                   @   sZ   e Zd Zej dg d¢¡dd„ ƒZej dg d¢¡dd„ ƒZej dg d	¢¡d
d„ ƒZdS )ÚTestPowerNormr  ))rŒ  r   g|æ»¯§ <)r•  rW   g²e¨²”()rS   rš  g%Ó!@Åç6)r+  rj   g©¼T€;²ä-c                 C   s   t tj ||¡|dd� d S rx   )r   r2   Ú	powernormr»   r  r.   r.   r/   rR  ô  s    zTestPowerNorm.test_sfr–  ))r  r•  g½�Â�Ä¿)gwJëÿï?rS   g!XñèÌÀ)rN  rš  gç¼‚U�À)rl  rš  gäÍ«¨ê1@)r  rW   g§µDÁý@)ç¸ÔJzî�5ru   gU!zYr@c                 C   s   t tj ||¡|dd� d S ©Nr™  rp   )r   r2   r»  rS  r™  r.   r.   r/   rU    s    zTestPowerNorm.test_isf))iôÿÿÿrŒ  g€.Óu	ÁT9)rW   rŒ  çñÿÿÿÿÿï?)rH  rŒ  gs¹K�¿-)r¿  rš  gkö‰Ÿ8>)rH  rš  g^Çuó1-c                 C   s   t tj ||¡|dd� d S rÐ  )r   r2   r»  r`   r  r.   r.   r/   r    s    zTestPowerNorm.test_cdfN)	rÂ   rÃ   rÄ   rŸ   rÅ   rÆ   rR  rU  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 )ÚTestInvGammac                 C   sº   t  ¡ �ž t  dt¡ tjjddd�}g d¢}t||ƒ g d¢}tjj|dd�}g d¢tjdd	gtj	d
dgtj	tj	dgf}t
||ƒD ]\}}t||ƒ q„W d   ƒ n1 s¬0    Y  d S )Nr)  g�Âõ(\O3@rÐ  rƒ  )gœ¥Ì~ö«?g×C‰Xù•&?g*ª7ÐgSð?gBqFçq @)çš™™™™™ñ?çÍÌÌÌÌÌ@gffffff@)r¹  gŒEžçyÞ?gÑž3ozÓË?g¥á^YåbÊ?g,žÓr–âŠ?gO¶»æùD@g2á*Z@gøF�Nì„8@)r-  r.  r/  r0  r2   ræ   r   rZ   rß   rÞ   rÚ   r   )rb   rÐ  rK   r,   rQ   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   )rZ   rJ  r2   ræ   r`   r¼   r   rÛ  r.   r.   r/   rM  3  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ì        rW   rS   é   r   r  rp   )	ÚsysÚmaxsizerZ   rJ  r2   ræ   r»   rS  r   rÛ  r.   r.   r/   r  :  s    
zTestInvGamma.test_sf_isfúa, ref)r˜   g—70K6:À)r`  gVMO€uÀc                 C   s   t tj |¡|dd� d S rn   )r   r2   ræ   r>   ©rb   r,   r9  r.   r.   r/   Útest_large_entropyG  s    zTestInvGamma.test_large_entropyN)
rÂ   rÃ   rÄ   rÂ  rM  r  rŸ   rÅ   rÆ   rÉ  r.   r.   r.   r/   r¿    s   ÿÿr¿  c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestFc                 C   s\   t jddgg}|D ]\}}}|j|jg|¢R Ž }qdd„ |D ƒ}dd„ |D ƒ}t||ƒ d S )N)rW   r   r  c                 S   s&   g | ]\}}}|j |jg|¢R Ž ‘qS r.   ©rY   r,   ©r7   Ú_fÚ_argsr´   r.   r.   r/   r9   ]  r:   z(TestF.test_endpoints.<locals>.<listcomp>c                 S   s   g | ]\}}}|‘qS r.   r.   ©r7   rÍ  rÎ  Z	_correct_r.   r.   r/   r9   ^  r:   )r2   ÚfrY   r,   r   )rb   r£   rÍ  rÎ  Z_correctÚansÚcorrectr.   r.   r/   rB  W  s    zTestF.test_endpointsc                 C   sX   t jj dddd�\}}}}tt |¡ƒ tt |¡ƒ tt |¡ƒ tt |¡ ƒ d S )NrU  ç      @rÐ  rÑ  )r2   rÐ  r   rZ   rË  r  r.   r.   r/   Útest_f_momentsa  s
    zTestF.test_f_momentsc                 C   sT   t  ¡ �8 t  dt¡ tjjdgd g d¢dd� W d   ƒ n1 sF0    Y  d S )Nr)  rU  r³   )rW   r³   rÁ  rÀ  rÐ  ©ÚdfnÚdfdrÒ  )r-  r.  r/  r0  r2   rÐ  re   r.   r.   r/   Útest_moments_warningsi  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‰   rU  r  rÐ  rÕ  rW   r³   rÀ  rÁ  ru   é   )rZ   r   r2   rÐ  r   rª  )rb   rÖ  r×  r�  r‚  rD   rN   rˆ  Zv2Ús2Zk2numZk2denZk2r.   r.   r/   Útest_stats_broadcasto  s"    
0
 ÿ
ÿ zTestF.test_stats_broadcastN)rÂ   rÃ   rÄ   rB  rÔ  rØ  rÛ  r.   r.   r.   r/   rÊ  V  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	ej dg d¢¡ej dddgddgddgg d¢g d¢gddgddggdgdggg¡dd„ ƒƒZ
ej dddgddgddgg d¢g d¢gddgddggdgdggg¡dd„ ƒZdd„ ZdS )ÚTestStudentTc                 C   s   t tj ddg¡ddgƒ d S )Nru   rÁ  g‚áËé§ô?g€©Ž˜ó?)r   r2   r¬  r1  re   r.   r.   r/   Útest_rvgeneric_std‚  s    zTestStudentT.test_rvgeneric_stdc                 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   rW   g®Gáz @g–     i@r‰   r‚  g®Gáz@r³   g
×£p=
@)rm   gq    À‚@)r   r2   r¬  rZ   rß   rÞ   re   r.   r.   r/   Útest_moments_t†  s     ÿÿÿÿzTestStudentT.test_moments_tc                 C   s*   g d¢}g d¢}t tj |¡|dd� d S )N)r   rW   r�  rS   )gÖíð£‰?@g�TÄÀM]ÿ?gößßgY÷?çU•“°Ýö?ry   rp   ©r   r2   r¬  r>   )rb   r[  rK   r.   r.   r/   Útest_t_entropy•  s    zTestStudentT.test_t_entropyzv, ref)rS   rà  )r`  rK  c                 C   s   t tj |¡|dd� d S r  rá  )rb   r‚  r9  r.   r.   r/   Útest_t_extreme_entropyœ  s    z#TestStudentT.test_t_extreme_entropyÚmethname)rY   r†   r`   r¼   r»   rS  Ú
df_infmaskr   r   )r   r   r   )r   r   r   c                 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�   rR   rù   r‰   r   ©r[  rU   rV   rT   )rZ   r   rƒ   r¨   Úboolr/  r  Úrandnrß   r2   r¬  rú  rð   r   )rb   rä  rå  r[  rQ   Zt_distZ
t_dist_refZ	norm_distZt_methZ
t_meth_refZ	norm_methr“   r.   r.   r/   Útest_t_inf_df­  s    



zTestStudentT.test_t_inf_dfc                 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æ  rR   rù   r‰   r   rÐ  )r[  rU   rV   rÒ  ©rU   rV   rÒ  r³   rç  rT   )rZ   r   rƒ   r¨   rè  r/  r  rß   r2   r¬  rú  r¤  r   r>   )rb   rå  r[  r“   Z
res_ex_infZres_ex_noinfr¢  r.   r.   r/   Útest_t_inf_df_stats_entropyÃ  s"    
ÿz(TestStudentT.test_t_inf_df_stats_entropyc                 C   sT   g d¢}g d¢}g d¢}g d¢}t tj ||¡|dd� t tj ||¡|dd� d S )N)r   rW  rR   r   )r`  çšd~ÅQJr¹  r   )gZ_2äø³ö¿g9þ¬ƒ„Ágû’!ÇŸuIÀgµ¾dÈñgý¿)g73ŽåøÎ?r   gÚÕ´FhAW;gƒÈÉm0_Ä?rè  rp   )r   r2   r¬  r†   rY   )rb   rQ   r[  Z
logpdf_refZpdf_refr.   r.   r/   Útest_logpdf_pdfÚ  s    zTestStudentT.test_logpdf_pdfN)rÂ   rÃ   rÄ   rÝ  rß  râ  rŸ   rÅ   rÆ   rã  rê  rì  rî  r.   r.   r.   r/   rÜ  �  s.   ÿÿ

ý
ý
rÜ  c                   @   sl   e Zd Zdd„ Zdd„ Z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ö   re   r.   r.   r/   r÷   è  s    zTestRvDiscrete.setup_methodc                 C   sœ   g d¢}g d¢}d}t jd||fd�}|j|d�}tt|tjƒƒ t||ƒD ],\}}ttt	||kƒt
|ƒ | ƒdk ƒ qL| ¡ }t t|ƒtj¡s˜J ‚d S )N)r±   r   r   rW   r‰   r³   )rm   r3  r–  rm   r3  rm   rv   Úsample)ÚnameÚvaluesrù   rl  )r2   r;   r�   r   r  r   r  rÚ   r‚   r$  r«   rZ   r�   rÊ   Úinteger)rb   ZstatesZprobabilityÚsamplesr;  rQ   rD   r,  r.   r.   r/   r  ë  s    &zTestRvDiscrete.test_rvsc                 C   sr   t  g d¢¡}tjg d¢|fd�}tt||ƒƒ }| ¡ }t||ƒ tjg d¢g d¢fd�}| ¡ }t|dƒ d S )N)r#  re  r3  r`  ©rò  )r  r   r   rm   )	rZ   r   r2   r;   r$  r   r>   r   r   )rb   rn  r,  r&  r'  r.   r.   r/   r(  ù  s    
zTestRvDiscrete.test_entropyc                 C   sT   g d¢}g d¢}t j||fd�}ddgddgg}t| |¡dd	gd
dggdd� d S )Nr²  ©rh   r3  rt  rõ  r  rÄ  rÏ  rW   rh   rt  rm   r3  rè  r}   )r2   r;   r   r  )rb   ÚxkÚpkr-  rQ   r.   r.   r/   r"    s    ÿ
ÿþzTestRvDiscrete.test_pmfc                    sd   g d¢}g d¢}t j||fd�‰ g d¢}g d¢}tˆ  |¡|dd� t‡ fdd	„|D ƒ|dd� d S )
Nr²  rö  rõ  )rÈ   r  rÀ  rj  rl   rÏ  r³   ru   )r   rh   rh   rh   r¸   r¸   r   r   rè  r}   c                    s   g | ]}ˆ   |¡‘qS r.   )r`   )r7   rL  ©r-  r.   r/   r9     r:   z+TestRvDiscrete.test_cdf.<locals>.<listcomp>)r2   r;   r   r`   )rb   r÷  rø  Zx_valuesrK   r.   rù  r/   r    s    ÿzTestRvDiscrete.test_cdfc                    sd   g d¢}g d¢}t j||fd�‰ g d¢}g d¢}tˆ  |¡|dd� t‡ fdd	„|D ƒ|dd� d S )
Nr²  rö  rõ  )rO   rh   rC  r¸   r·   r  )r   r   rW   rW   r³   r³   rè  r}   c                    s   g | ]}ˆ   |¡‘qS r.   )r¼   )r7   r4  rù  r.   r/   r9   '  r:   z+TestRvDiscrete.test_ppf.<locals>.<listcomp>)r2   r;   r   r¼   )rb   r÷  rø  Zq_valuesrK   r.   rù  r/   r×    s    ÿzTestRvDiscrete.test_ppfc                 C   sN   g d¢g d¢f}t j|d�}t| | |jd d… ¡d ¡|jdd … ƒ d S )N)r   rW   r³   rP  rÀ  )rO   rt  r3  r3  rO   rõ  r±   r  r   )r2   r;   r   r¼   r`   r÷  )rb   r  r-  r.   r.   r/   Útest_cdf_ppf_next*  s
    ÿz TestRvDiscrete.test_cdf_ppf_nextc                 C   s`   t  d¡ d¡}t  g d¢g d¢g d¢g¡}tj||fd�}t| ¡ t  |j	|j
 ¡dd� d S )Nr  )r‰   r³   )rO   rO   r{  rl  )rO   rO   rl  rl  rõ  rè  r}   )rZ   rÛ   rÆ  r   r2   r;   r   rŽ   r$  r÷  rø  ©rb   r÷  rø  r-  r.   r.   r/   Útest_multidimension2  s    
þz"TestRvDiscrete.test_multidimensionc                 C   sâ   g d¢}ddg}t ttjfi t||fd�¤Ž g d¢}t ttjfi t||fd�¤Ž g d¢}g d¢}t ttjfi t||fd�¤Ž g d¢}g d¢}t ttjfi t||fd�¤Ž ddg}ddg}t ttjfi t||fd�¤Ž d S )NrÒ   rh   rõ  )rh   ç333333ó?gffffffæ¿©r   rW   r‰   r³   ru   )r3  r3  r3  r3  rS  r   )r/  rÝ   r2   r;   rÙ   ©rb   r÷  rø  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i t||fd�¤Ž t  d¡ d¡t  dd¡ }}tttjfi t||fd�¤Ž t  d¡ d¡t  dd¡ }}t	tj||fd� 
d¡dƒ d S )	Nr³   ©rW   rW   ©rW   r‰   gUUUUUUÅ?rõ  rÁ  ©r‰   rW   r   )rZ   rÛ   rÆ  r·  r/  rÝ   r2   r;   rÙ   r   r  rÿ  r.   r.   r/   Útest_shape_rv_sampleO  s    z#TestRvDiscrete.test_shape_rv_samplec                 C   sD   g d¢}g d¢}t j||fd�}t| ¡ t |j|j ¡dd� d S )N)r   rW   r³   rÁ  rP  rU  )rO   rt  rt  rt  rt  rO   rõ  rè  r}   )r2   r;   r   rŽ   rZ   r$  r÷  rø  rû  r.   r.   r/   Útest_expect1^  s    zTestRvDiscrete.test_expect1c                 C   sŒ   g d¢}g d¢}t j||fd�}t| ¡ | ¡ dd� t| ¡ tdd„ t||ƒD ƒƒdd� t| dd	„ ¡td
d„ t||ƒD ƒƒdd� d S )N)/g      i@g     Àr@g      y@g     @@g     À‚@g     à…@ç      ‰@g      Œ@rW  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?rm   rm   g.n£¼r?g…|Ð³Yõå?rm   rm   rm   g @ëâ6*?ç 4U0*©C?g@+‡™?g€Cëâ6z?g n£¼r?g ‡ÙÎ÷“?g€OjM£?g n£¼’?gÀ�1w-!�?g€û:pÎˆ’?g×£p=
§?g ö_˜Le?rm   g€ž^)Ëp?g€~j¼t“x?g€ŒJê4q?g€®Gázt?g ŒJê4q?g ¨ñÒMb@?g@Püs×‚?g@ž^)Ë€?rm   rm   g Á¨¤N@s?g �1w-!_?r  gàµ„|Ð³™?rm   g€ËH¿}}?rm   g€
F%uŠ?rm   rm   g ž^)Ë€?g »¸�ðv?rm   rõ  rè  r}   c                 s   s   | ]\}}|| V  qd S rd   r.   ©r7   r‚  Úwr.   r.   r/   Ú	<genexpr>„  r:   z.TestRvDiscrete.test_expect2.<locals>.<genexpr>c                 S   s   | d S ©NrW   r.   rŒ   r.   r.   r/   rE   ‡  r:   z-TestRvDiscrete.test_expect2.<locals>.<lambda>c                 s   s   | ]\}}|d  | V  qdS )rW   Nr.   r  r.   r.   r/   r
  ˆ  r:   )r2   r;   r   rŽ   r½   r$  rÚ   )rb   rÀ  Úpyr-  r.   r.   r/   Útest_expect2e  s    ÿÿzTestRvDiscrete.test_expect2N)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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 ©Nr¿  ru   rS   r   r�  )	rZ   r  r   r2   Ú
skewcauchyrY   r®  r`   r¼   rT  r.   r.   r/   Útest_cauchyŒ  s    
ÿ
ÿ
ÿzTestSkewCauchy.test_cauchyc                 C   s„   t j d¡ t j d¡d d }t j d¡d d }g d¢}g d¢}ttj ||¡|ƒ ttj ||¡|ƒ ttj 	||¡|ƒ d S )Nr   rR   rW   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î?)
rZ   r   rƒ   r’  r   r2   r  rY   r`   r¼   )rb   r,   rQ   rY   r`   r.   r.   r/   Útest_skewcauchy_R•  s    z TestSkewCauchy.test_skewcauchy_RN)rÂ   rÃ   rÄ   r  r  r.   r.   r.   r/   r  ‹  s   	r  c                   @   s<   e Zd Zdd„ Zejdd„ ƒZej dg d¢¡dd„ ƒZ	d	S )
ÚTestJFSkewTc                 C   s’   d }}|d }g d¢}g d¢}t  ||¡}t  |¡}t| |¡| |¡ƒ t| |¡| |¡ƒ t| |¡| |¡ƒ t|  d¡|  d¡ƒ d S )Nru   rW   )rO  rm   r  rl   )rm   rO   r#  r¶   r·   r  rÐ  )r2   Ú	jf_skew_tr¬  r   rY   r`   r¼   )rb   r,   r-   r[  rQ   r4  Zjfr¬  r.   r.   r/   Útest_compare_t¹  s    
zTestJFSkewT.test_compare_tc                 C   s$   t  ttƒjd ¡}t jj|dd�S )a¬  Sample data points computed using the `ST5` distribution from the
        GAMLSS package in R. The pdf has been calculated for (a,b)=(2,3),
        (a,b)=(8,4), and (a,b)=(12,13) for x in `np.linspace(-10, 10, 41)`.

        N.B. the `ST5` distribution in R uses an alternative parameterization
        in terms of nu and tau, where:
            - nu = (a - b) / (a * b * (a + b)) ** 0.5
            - tau = 2 / (a + b)
        z"data/jf_skew_t_gamlss_pdf_data.npyz	x,pdf,a,b©Únames)rZ   Úloadr   Ú__file__ÚparentÚrecÚ
fromarraysrê  r.   r.   r/   Úgamlss_pdf_dataÉ  s    ÿzTestJFSkewT.gamlss_pdf_dataza,b)r  )rÀ  r³   )r  é   c                 C   sN   ||d |k|d |k@  }|d |d  }}t |t ||¡ |¡dd� dS )zÙCompare the pdf with a table of reference values. The table of
        reference values was produced using R, where the Jones and Faddy skew
        t distribution is available in the GAMLSS package as `ST5`.
        r,   r-   rQ   rY   rY  rp   N)r   r2   r  rY   )rb   r  r,   r-   r£   rQ   rY   r.   r.   r/   Útest_compare_with_gamlss_rÙ  s
    ÿz&TestJFSkewT.test_compare_with_gamlss_rN)
rÂ   rÃ   rÄ   r  rŸ   r  r  rÅ   rÆ   r  r.   r.   r.   r/   r  ¸  s
   
r  rW   ru   gš™™™™™@r‰   g×£p=
×1@rý   gR¸…ëÑZ@éi   gøSã¥›ÔŠ@rO   rP   g&�š¹ë@iÈQ iÙ'  i0ybi�¸ l   €HO1Z iñÕ3r`  iÁÿÿÿrR   iöÿÿrS   ik‰ÿÿr+  i1ñÚÿrw   i±  ií4†ñi N  i›(  lýÿÿÿEI. é@ iß c                   @   sj   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e¡dd„ ƒZdd„ Zdd„ ZdS )ÚTestSkewNormc                 C   s   t dƒ| _d S rõ   )r   r‘   re   r.   r.   r/   r÷     s    zTestSkewNorm.setup_methodc                 C   s0   t  ddd¡}ttjj|dd�tj |¡ƒ d S r  )rZ   r  r   r2   ÚskewnormrY   rú  rT  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›   r|   r`  )r2   r#  r�   r‘   r   r  )rb   r  rQ   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   rW   )r,   r›   rU   rV   r|   rÐ  )r,   rU   rV   rÒ  r  rI  )r2   r#  r�   r  r‘   rZ   r½   rÈ  rÉ  Úkurtosisr   )rb   ÚXrK   rÊ  r.   r.   r/   rƒ  "  s    ÿ$ÿ$zTestSkewNorm.test_momentsc                 C   s^   g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}|D ]&\}}}t j ||¡}t||dd	� q2d S )
N)r–  r±   g¨‡EAV™À)r–  r¦   gV|@Á$a�À)r–  r   g0rüY‰À)r–  rh   ç¡Z²kÎ‰À)rs  r¦   r'  )rÈ   r®  ç�Ä¼æÂ)rW   g    ÐcÁr(  r  rp   )r2   r#  r†   r   )rb   Z
logpdfvalsrQ   r,   Z	logpdfvalr’  r.   r.   r/   Útest_pdf_large_x/  s    ù	zTestSkewNorm.test_pdf_large_xc                 C   sF   t j g d¢d¡}t|t d¡dd� t j dd¡}t|ddd� d S )	N)rR   r•  rø   r±   r‰   rè  rp   r�  r›  r  )r2   r#  r`   r   rZ   ÚonesrA  r.   r.   r/   Útest_cdf_large_x?  s    zTestSkewNorm.test_cdf_large_xc                 C   sr   g d¢g d¢g d¢g d¢g d¢g}|D ]F\}}}t j ||¡}t||dd� t j | | ¡}t||dd� q&d S )N)rŠ  r   gzbL’¿eŸ9)rI  rW   gÊn'Ë/2Ã;)rÈ   ru   g¾èí€:“:)r|  r±   g|æ»¯§<)r…  rI  r  r  rp   )r2   r#  r`   r   r»   )rb   ZcdfvalsrQ   r,   Zcdfvalr,  r.   r.   r/   Útest_cdf_sf_small_valuesH  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   )rz  r2   r#  r¡  r   )rb   r,   rÒ  ÚorderrK   r§  r.   r.   r/   Útest_noncentral_momentsY  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 J ‚||
ksˆJ ‚tjj|ddd	d
�\}}}|dks®J ‚t |||¡}|jdd�}t  |¡t |¡f}t	||ƒ tj
jdd|d�}tj |¡}t  t  |¡¡�sJ ‚tjj|d	d�\}}}t  |¡�s@J ‚t  |¡t  |¡ }}t	|||t  dt j ¡  ƒ t	||d ddt j   ƒ tjj|dd�\}}}tjj| dd�\}}}t	|||g| | |gƒ tjj|d	d�\}} }!tjj| d	d�\}"}#}$t	|"|#|$g| |  |!gƒ d S )Nl   #­k˜eÊ )rÈ   r  rh   rS   rº   rx  r‰   r§   gš™™™™™ù¿Úmm©rœ   ÚmethodÚmsrÑ  r   ©r2  rW   Úmle)rZ   r   r€   r2   r#  r�   r©   r½   rÉ  r   r  r¾   rË  ÚisinfrÈ  rª  r[   )%rb   r‘   r,   rU   rV   r8   r�   Úa2Úloc2Úscale2Úa3Úloc3Úscale3Za4Úloc4Úscale4Údist4r“   r9  r„   Za5Zloc5Zscale5r�  r‚  Za6pZloc6pZscale6pZa6mZloc6mZscale6mZa7pZloc7pZscale7pZa7mZloc7mZscale7mr.   r.   r/   rè  _  s8    

zTestSkewNorm.test_fitc           	         s¶   t  g d¢ddg  dg ¡}tj |¡}tj ||¡}tjj|dd�}tj ||¡}||d k sfJ ‚t j d¡‰ d	d
ddœ}‡ fdd„}tjtj|||d�}t jj	||j
dd� d S )N)r¿  r±   r  r  r   ru   T)Zsuperfitrh   l   Åy™
N¸D )r¿  ru   )r…  rR   )r7  rR   ©r,   rU   rV   c                    s   t | |ˆ d�S )N)rƒ   )r#   )Zfunr”   ©r‘   r.   r/   Ú	optimizer£  s    z0TestSkewNorm.test_fit_gh19332.<locals>.optimizer)rB  r]  rp   )rZ   r   r2   r#  r©   r¢   r   r€   Útestingr   Úparams)	rb   rQ   rD  r“   Zparams_superr9  r”   rB  Z
fit_resultr.   rA  r/   Útest_fit_gh19332�  s    zTestSkewNorm.test_fit_gh19332N)rÂ   rÃ   rÄ   r÷   r$  r  rƒ  r)  r+  r,  rŸ   rÅ   rÆ   Ú_skewnorm_noncentral_momentsr/  rè  rE  r.   r.   r.   r/   r"    s   	
0r"  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   r4  rY   re   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 )Nr  r–  )r   r2   r4  r`   rS  r»   re   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@)rZ   r   rÞ   r/  rÝ   r2   r4  r©   rT  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 rJ  )rZ   r   rß   r/  rÝ   r2   r4  r©   rT  r.   r.   r/   Útest_inf_raises_error·  s    zTestExpon.test_inf_raises_errorN)rÂ   rÃ   rÄ   rH  rI  rP  rQ  r.   r.   r.   r/   rG  ª  s   rG  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 )ÚTestNormc                 C   s,   t  dddddt jg¡}tttjj|ƒ d S rJ  )rZ   r   rÞ   r/  rÝ   r2   rú  r©   rT  r.   r.   r/   rP  ¾  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 rJ  )rZ   r   rß   r/  rÝ   r2   rú  r©   rT  r.   r.   r/   rQ  Ã  s    zTestNorm.test_inf_raises_errorc                 C   s    g d¢}t ttjj|dd� d S )NrÒ   Úshrimp)Úplate)r/  rà   r2   rú  r©   rT  r.   r.   r/   Útest_bad_keyword_argÈ  s    zTestNorm.test_bad_keyword_argrU   r   r   c                 C   s^   d}t jjd| d| |d�}t||dd� t jjd|  d|  | d�}t||dd� d S )Ngg	«ä{F.:rU  r  ©rU   ry   rp   )r2   rú  Ú
_delta_cdfr   )rb   rU   rK   r‹  r.   r.   r/   Útest_delta_cdfÌ  s
     zTestNorm.test_delta_cdfN)
rÂ   rÃ   rÄ   rP  rQ  rU  rŸ   rÅ   rÆ   rX  r.   r.   r.   r/   rR  ½  s
   rR  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 rJ  )rZ   r   rÞ   r/  rÝ   r2   r/  r©   rT  r.   r.   r/   rP  Ü  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 rJ  )rZ   r   rß   r/  rÝ   r2   r/  r©   rT  r.   r.   r/   rQ  á  s    z!TestUniform.test_inf_raises_errorN)rÂ   rÃ   rÄ   Ú__doc__rP  rQ  r.   r.   r.   r/   rY  Ú  s   rY  c                
   @   s´   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zej 	d	g d
¢¡dd„ ƒZ
ej 	dg d¢g d¢g d¢g d¢g d¢g¡dd„ ƒZej 	dg d¢g d¢g d¢g d¢g d¢g d¢g¡dd„ ƒZdS )ÚTestExponNormc                 C   sü   dd„ }d\}}}d||  }t jj |||dd�}t|||||ƒƒ d\}}}d||  }t jj |||dd�}t|||||ƒƒ d\}}}d||  }t jj |||dd�}t|||||ƒƒ d	\}}}d||  }t jj |||dd�}t|||||ƒƒ d S )
Nc                 S   sh   dd| | d   }d| | d  |d  }dd| | d  d  }|d|   || d| |    ||gS )Nr  r   rW   r‰   rx  ç      @rÈ   r.   )ÚlamÚsigr|  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`  rW   rO   )r   r‰   r   )r¿  rU  r  )r2   Ú	exponnormr   )rb   r`  r|  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 ©	NrK  rL  rM  rN  rO  r   r   r!  )rZ   r   rÞ   r/  rÝ   r2   ra  r©   rT  r.   r.   r/   rP    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 rd  )rZ   r   rß   r/  rÝ   r2   ra  r©   rT  r.   r.   r/   rQ    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   ra  rY   re   r.   r.   r/   Útest_extremes_x  s    zTestExponNorm.test_extremes_xzx, K, expected))r•  rj   gç6
˜NöÕ-)r   rj   gÈÕœn+HÏ?)r±   rj   gi›™Ÿ©Î?)rH  rj   g¦bÄJIÍ-)rR   r   gâ�I¥8Ÿ?)rR   r]  gQ3|Ì-0?c                 C   s   t tj ||¡|dd� d S r½  )r   r2   ra  rY   )rb   rQ   rb  rK   r.   r.   r/   Útest_std_pdf  s    zTestExponNorm.test_std_pdfzx, K, scale, expected)r   rj   r   gVAÒ¤¾ß?)r¿  ç{®Gázt?r   gš'^ËÀ’>)rî  rj   rS   rm   )rî  rj   rv   gbr…» ;)ru   rÖ  r   gVŒMeÿÿï?c                 C   s:   t jj|||d�}|dkr(|dks6J ‚nt||dd� d S )Nrù  rm   ry   rp   )r2   ra  r`   r   ©rb   rQ   rb  rV   rK   r,  r.   r.   r/   Útest_cdf_small_K5  s    zTestExponNorm.test_cdf_small_K)rR   rj   r   gh¡G–}$;)rW   rh  r   g]fJ“—?)ru   rh  rh   g31"˜g#;)rR   rh  rh   gf¯
�ˆ+�-)r•  rh  rh   rm   )r`  rÖ  r   gôa9Súôï?c                 C   s:   t jj|||d�}|dkr(|dks6J ‚nt||dd� d S )Nrù  rm   çê-�™—a=rp   )r2   ra  r»   r   ri  r.   r.   r/   Útest_sf_small_KN  s    zTestExponNorm.test_sf_small_KN)rÂ   rÃ   rÄ   rƒ  rP  rQ  rf  rŸ   rÅ   rÆ   rg  rj  rl  r.   r.   r.   r/   r\  ç  s6   ÿ
üÿ
ûÿr\  c                   @   sP   e Zd Zdd„ Zdd„ Zej dg d¢¡dd„ ƒZej dg d	¢¡d
d„ ƒZ	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   )ÚsimpsonrR   rj   rh   rl   )Zdxr   )Úscipy.integratern  r2   ÚgenexponrY   r   rÛ   r   )rb   rn  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   rR   rj   rh   rl   r   )r2   rp  r`   r   rÛ   r   r¾   )rb   r`   r.   r.   r/   Útest_cdf_boundsd  s    zTestGenExpon.test_cdf_boundszx, p, a, b, c))rý   g®M• <r   rW   rj  )r#  gñ¨%DYYè?rh   rW   r‰   )r#  gS4òz¶·?ç      #@rW   rh   )rj   g�aÐ^°5ï?r›  r#  rh   )rŠ  gàás%º)?r›  r#  rh   )r‘  gÂd¥‡�mî?r#  ru   rh   c                 C   sD   t j ||||¡}t||dd� t j ||||¡}t||dd� d S r  )r2   rp  r»   r   rS  )rb   rQ   r,  r,   r-   rK  r»   rS  r.   r.   r/   r  t  s    zTestGenExpon.test_sf_isf))r#  g;\iïššÎ?rh   rW   r‰   )r#  gu¹¡0‰í?rs  rW   rh   )rj   g-Îó%ôI™?r›  r#  rh   )rŠ  gâÁ¨]dþï?r›  r#  rh   )r‘  gæ³©…ç'©?r#  ru   rh   c                 C   sD   t j ||||¡}t||dd� t j ||||¡}t||dd� d S r  )r2   rp  r`   r   r¼   )rb   rQ   r,  r,   r-   rK  r`   r¼   r.   r.   r/   rM  ‚  s    zTestGenExpon.test_cdf_ppfN)
rÂ   rÃ   rÄ   rq  rr  rŸ   rÅ   rÆ   r  rM  r.   r.   r.   r/   rm  ]  s   ÿ
ÿrm  c                   @   s   e Zd Zdd„ ZdS )ÚTestTruncexponc                 C   sL   ddg}ddg}ddg}t tj ||¡|dd� t tj ||¡|d	d� d S )
Nr•  rS   g_9ïÿÿ3@gBÎûÿÿX@g,M¾õ²�â<gÇƒ¡Û@Ö«5gLÎaã§�ä=rp   rY  )r   r2   Ú
truncexponr»   rS  )rb   r-   rQ   r9  r.   r.   r/   r  ‘  s
    zTestTruncexpon.test_sf_isfN)rÂ   rÃ   rÄ   r  r.   r.   r.   r/   rt  �  s   rt  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 )NrF  rl   rç  ru   r¸   )r   r2   Úexponpowr`   rS  r»   re   r.   r.   r/   rI  œ  s    ÿzTestExponpow.test_tailN)rÂ   rÃ   rÄ   rI  r.   r.   r.   r/   rv  ›  s   rv  c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestSkellamc                 C   s@   t  dd¡}d\}}t  g d¢¡}ttj |||¡|dd� d S )Nr…  rý   r�  )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  )rb   rN   Úmu1Úmu2ZskpmfRr.   r.   r/   r"  £  s    ÿzTestSkellam.test_pmfc                 C   s@   t  dd¡}d\}}t  g d¢¡}ttj |||¡|dd� d S )Nr…  rý   r�  )gÆƒQÄË?gSÔì`X'?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   ry  r`   )rb   rN   rz  r{  ZskcdfRr.   r.   r/   r  ¸  s    ÿzTestSkellam.test_cdfc                 C   sB   d\}}}t tj |||¡ddd� t tj |||¡ddd� d S )N)r   r   gs³Þù1Cr   r7  r}   r   )r   r2   ry  r  r`   )rb   rQ   rz  r{  r.   r.   r/   Útest_extreme_mu2Í  s    
zTestSkellam.test_extreme_mu2N)rÂ   rÃ   rÄ   r"  r  r|  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	d
dg¡ej 	dg d¢¡ej 	dg d¢¡ej 	ddd„ e
ddd�D ƒ¡ejdd�dd„ ƒƒƒƒƒZdd„ ZdS )ÚTestLognormc                 C   sX   t  ¡ �< t  dt¡ tj g d¢d¡}t|g d¢ƒ W d   ƒ n1 sJ0    Y  d S )Nr)  ©r   rh   r   r   )rm   g~û¾¨rä?g Þe3EˆÙ?)r-  r.  r/  r0  r2   rì   rY   r   ©rb   rY   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Ã?rC   )r   r2   rì   r»   rú  rZ   rF  rã  )rb   rä  r|  Úsigmar.   r.   r/   r›  Ý  s    
ÿÿzTestLognorm.test_logcdfr   r  c                 C   s   t j d¡S rõ   r  re   r.   r.   r/   r‘   å  s    zTestLognorm.rngr—   rO   rW   r–   )rÈ   r   rW   r  )rt  r   ru   r  c                 C   s   g | ]}d |v r|‘qS r  r.   )r7   Úer.   r.   r/   r9   í  s   ÿzTestLognorm.<listcomp>)FTr‰   r  r  r  c           
      C   s^   t jjd||||d�}i }	|r&||	d< |r2||	d< |r>||	d< tt j|fi |	¤ddi¤Ž d S )NrS   )r›   rD   rV   rU   r|   rž   r�   rœ   rÎ   T)r2   rì   r�   r¡   r  r.   r.   r/   r¥   é  s    	ÿÿz'TestLognorm.test_fit_MLE_comp_optimizerc                 C   s0   d}g d¢}g d¢}t tj ||¡|dd� d S )NgºI+‡î?)rO   g»½×Ùß|ë=g¬Ò¶OÉƒí;gk3;9"Ê7)g¼?¿y+@g~K¤£8ax@gÍˆ€Æ¶@gÄ9]’Arè  rp   )r   r2   rì   rS  )rb   rD   r4  r9  r.   r.   r/   rU    s    zTestLognorm.test_isfN)rÂ   rÃ   rÄ   r  r›  rŸ   r  r‘   rÅ   rÆ   r$   rZ   r#  r¥   rU  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dd
�dd„ ƒZej dejjejjg¡ej dddg¡dd„ ƒƒZej dg d¢¡dd„ ƒZej d g d!¢¡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   rŠ  r†   r   rZ   rß   ©rb   r†   r.   r.   r/   r“    s    
zTestBeta.test_logpdfc                 C   sV   d\}}t  g d¢¡}t ||¡}t| |¡ ¡ dƒ t| |¡t  | |¡¡ƒ d S )N©i  iÀ  ©rt  rh   rC  gêàÜÖËÆ’À)	rZ   r   r2   rŠ  r   r†   r$  rY   r�   ©rb   rã   rŠ  rQ   r-   r.   r.   r/   Útest_logpdf_ticket_1866  s
    z TestBeta.test_logpdf_ticket_1866c                 C   s$   g d¢}t ttjj|dddd� d S )N©rO   rh   rC  r   r   rS  )r�   rœ   rT  )r/  rà   r2   rŠ  r©   rT  r.   r.   r/   Útest_fit_bad_keyword_args  s    ÿz"TestBeta.test_fit_bad_keyword_argsc                 C   s"   g d¢}t ttjj|ddd� d S )Nr‰  rh   )ÚfaÚfix_a)r/  rÝ   r2   rŠ  r©   rT  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   rŠ  r¼   )rb   r,  r,   r-   r.   r.   r/   Útest_issue_12635(  s    	
zTestBeta.test_issue_12635c                 C   sh   t  g d¢¡}t  g d¢¡}d}tj ||d d| ¡}t||ƒ tj ||d d| ¡}t||ƒ d S )N)g@‚ö¿·3@?gò³ý^?g€N¤C‰?)rR   rS   rv   r°  r   r²   )rZ   r   r2   rŠ  rS  r   r»   )rb   Zinv_RZ
count_listr,  Úinvr“   r.   r.   r/   Útest_issue_127944  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   r•  r²   )rZ   rÛ   r2   rŠ  r¼   r`   r   )	rb   Zalpha_2Zcount_Znobsr4  r,   r-   r‘  r“   r.   r.   r/   Útest_issue_12796F  s    zTestBeta.test_issue_12796c                 C   s¬   d\}}t tj d||¡tjƒ d\}}t tj d||¡tjƒ d\}}t tj d||¡dƒ t tj d||¡dƒ d\}}t tj d||¡dƒ t tj d	||¡dƒ d S )
NrÎ  r   )rt  r‰   r   )r   ru   ru   ç+æp‹h  )ru   r   r  )r   r2   rŠ  rY   rZ   rß   )rb   r,   r-   r.   r.   r/   rB  R  s    zTestBeta.test_endpointsz!Does not warn on special codepathc                 C   sH   d\}}}t  t¡�  tj |||¡ W d   ƒ n1 s:0    Y  d S )N)g×£p=
×ï?g   èvH7Bç  @åœ0¢B)rŸ   Úwarnsr0  r2   rŠ  r¼   )rb   r4  r,   r-   r.   r.   r/   Útest_boost_eval_issue_14606i  s    
z$TestBeta.test_boost_eval_issue_14606r2  úa, b)r•  ç      )@)rš  r•  c                 C   s,   d}z||||ƒ W n t y&   Y n0 d S )Nr·   )ÚOverflowError)rb   r2  r,   r-   r,  r.   r.   r/   Ú test_beta_ppf_with_subnormal_a_bo  s
    z)TestBeta.test_beta_ppf_with_subnormal_a_brB  ))rh   rh   g‘Á”°•ëÎ¿)rÖ  r   gàÌê¼ �À)r   r]  g¤Ê&×¾k À)r²   r²   g¢à*)M‚Àc                 C   s   t t ||¡ ¡ |ƒ d S rd   ©r   r2   rŠ  r>   rI  r.   r.   r/   r(  ‘  s    zTestBeta.test_entropyza, b, ref, tol))r   rR   gÅCýpö¿rè  )rR   r•  g8EO›èð¿ry   )g    €„NAg    Š„NAg(4F¨ãÀrÂ  )g    ÐSAg   €ÒSAgÉò8TAUÀr  )r_  g    _ Bg[VVuD&Àr°  )rí  rí  gRŸ#€»—LÀro   )rW   r_  g‹?ÀÂÙr5Àr°  )rW   r¹  ç‚ë°ö»<FÀrè  )rW   rí  g…uR›Tc\Àrè  )ru   r_  göÄÚðLß4ÀrF  )ru   r¹  çÔ6½�õòEÀrè  )ru   rí  g.›Øfq>\Àrè  )rR   r_  gænëQc}4ÀrÂ  )rR   r¹  g{ïC¾ ÂEÀrè  )rR   rí  ç‚÷ÿö%\Àrè  )r¹  rW   rž  rè  )r¹  ru   rŸ  rè  )rí  rR   r   rè  c                 C   s   t t ||¡ ¡ ||d� d S rÈ  r�  )rb   r,   r-   r9  rÓ  r.   r.   r/   rL  ™  s    $zTestBeta.test_extreme_entropyN)rÂ   rÃ   rÄ   r“  rˆ  rŠ  r�  rŸ   rÅ   ÚskipifÚMACOS_INTELr�  r’  r”  rB  Úxfailr˜  rÆ   r2   rŠ  r¼   rS  rœ  r(  rL  r.   r.   r.   r/   rƒ    s2   



 ÿ
þrƒ  c                   @   s¤   e Zd Zg d¢Zdd„ Zdd„ Zej dg d¢¡dd	„ ƒZ	ej d
e¡dd„ ƒZ
ej deg d¢ ¡dd„ ƒZej dddg¡dd„ ƒZdd„ Zdd„ Zdd„ ZdS )ÚTestBetaPrime))r¶  ç      Y@rl  ç½D>´¶ì?)r_  r¥  rl  ç�må—½êâ?)r˜   rl  rO   gPÊóàþKî?)r˜   r¥  rl  g%pšß?)rF  rl  rO   gð#’|‹/Ë?)rF  rj  rj  gãsM•
•Þ<)rF  rl  r¥  çà$5Ð„*Ú?)çæ^ 9^;rl  rO   gomžp¢P«?)r©  rj  rj  gú7j“"¡!9)r©  rl  r¥  çzß^Jº?)r  rl  rO   gÜ·"ö•+Ü>)r  rj  rj  gßrÓNs:Ö )r  rl  r¥  g‘ÚKë>c                 C   sZ   d\}}t  g d¢¡}t ||¡}tt  | |¡¡ ¡ ƒ t| 	|¡t  
| |¡¡ƒ d S )Nr…  r†  )rZ   r   r2   rä   r   rË  r†   r¾   r   rY   r�   r‡  r.   r.   r/   r“  Ý  s
    zTestBetaPrime.test_logpdfc                    s„   t j ddd¡}t|dƒ d\‰ ‰t g d¢¡}t j |ˆ ˆ¡}tt |¡ ¡ ƒ t j	j
‰‡ ‡‡fdd„|D ƒ}t||dd	d
� d S )Nr   rt  r3  rm   r…  r†  c                    s   g | ]}ˆt j|ˆ ˆƒ‘qS r.   )r2   rä   )r7   r  ©rã   rŠ  Zgen_cdfr.   r/   r9   ñ  r:   z*TestBetaPrime.test_cdf.<locals>.<listcomp>çê-�™—�=r†  )r2   rä   r`   r   rZ   r   r   rË  r¾   r<   Z_cdf_singler   )rb   rQ   rh  Zcdfs_gr.   r«  r/   r  ä  s    
zTestBetaPrime.test_cdfzp, a, b, expected))rj   ç      ô?r›  g”VÿÕ)†?)rY  r­  r›  gWJúB9*Ý=)r  r­  r›  gOG üJÞ<)r~  r#  ç      @gÎ£0œ1)ç      Ø?r#  r®  g8ÒÇ˜…¯`?)çèÞ>q¤îï?rl  rO   g××MÏð€Dc                 C   s"   t j |||¡}t||dd� d S r  )r2   rä   r¼   r   )rb   r,  r,   r-   rK   rQ   r.   r.   r/   r×    s    
zTestBetaPrime.test_ppfz
x, a, b, pc                 C   s   t tj |||¡|dd� d S r  )r   r2   rä   r¼   )rb   rQ   r,   r-   r,  r.   r.   r/   Útest_ppf_gh_17631  s    zTestBetaPrime.test_ppf_gh_17631zx, a, b, expected))r_  rj  rj  r¾  )r_  rl  rO   g‘Vˆ[æìî?)r¶  rl  rO   r°  c                 C   s   t tj |||¡|dd� d S r  )r   r2   rä   r`   )rb   rQ   r,   r-   rK   r.   r.   r/   Útest_cdf_gh_17631  s    zTestBetaPrime.test_cdf_gh_17631)rí  rl  rO   g£%ùÿï?)rí  r¥  rl  gÖoXržÞï?c                 C   s.   t j |||¡}|dk sJ ‚t||dd� d S )Nr  gñhãˆµøô>rp   )r2   rä   r`   r   )rb   rQ   r,   r-   rK   rÀ  r.   r.   r/   Útest_cdf_extreme_tails  s    z$TestBetaPrime.test_cdf_extreme_tailsc                 C   sB   g d¢}g d¢}g d¢}g d¢}t j |||¡}t||dd� d S )N)ru   r³   rW   rl  rl  rl  rl  r¥  r¥  rl  rl  rl  rj  rj  )r‰   rW   r   rO   rO   rO   rO   rl  rl  r¥  r¥  r¥  rj  rj  )r_  r¹  çêŒ 9Y>)Fr¶  rF  r©  r  r¶  r_  rF  r©  r  r_  rF  )g²˜/:g  U±/ÇÕ7gŸÂëþKHÄ9g<!ÁŽ[a?gwÛ 4é?g)öØõJî?gï5êñÿï?rª  r¨  r§  r¦  g%´äâäÿï?gâsM•
•Þ<r¾  rY  rp   )r2   rä   r»   r   )rb   r,   r-   rQ   r9  Z	sf_valuesr.   r.   r/   rR  )  s    zTestBetaPrime.test_sfc                 C   s.   t jjg d¢ddd� t jddd�  d¡ d S )N)rO   r#  r3  rý  çš™™™™™ù?r   r   r!  rÁ  rÐ  )r2   rä   r©   re   r.   r.   r/   Útest_fit_stats_gh18274>  s    z$TestBetaPrime.test_fit_stats_gh18274c                 C   s.   t jdg}t dddg¡ d¡}t||ƒ d S )NgoÅoB¿ë?rW   r¥  gffffff@ru   )rZ   rß   r2   rä   r¡  r   )rb   r9  r“   r.   r.   r/   Útest_moment_gh18634E  s    
z!TestBetaPrime.test_moment_gh18634N)rÂ   rÃ   rÄ   Zcdf_valsr“  r  rŸ   rÅ   rÆ   r×  r±  r²  r³  rR  r¶  r·  r.   r.   r.   r/   r¤  À  s2   þ	


þ
ÿþ
r¤  c                
   @   sÔ   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zej 	d	d
dg¡dd„ ƒZ
ej 	dg d¢¡dd„ ƒZej 	dg d¢¡ej 	dg d¢¡ej 	d	g d¢¡ej 	dddg¡ej 	dddg¡ej 	dddg¡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Š  rt  rù  g
CŸTñb?r‰   rR   gBþãÎ–½Ä?)r2   rÓ  rY   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“  Z  s    zTestGamma.test_logpdfc                 C   s"   g d¢}t ttjj|ddd� d S )Nr‰  r   rS  )r�   rT  )r/  rà   r2   rÓ  r©   rT  r.   r.   r/   rŠ  `  s    z#TestGamma.test_fit_bad_keyword_argsc                 C   s@   t jtj dd¡ddd�sJ ‚t jtj dd¡dd	d�s<J ‚d S )
Nr~  r   çgªp×l’C@rè  r}   r¼  rS   gÚè1ý}ªt@ry   )rZ   Úiscloser2   rÓ  rS  re   r.   r.   r/   rU  d  s    ÿ
ÿzTestGamma.test_isfrV   r  r  c                 C   s.   t jj|d |d d|d�}t|ddd� d S )Néõ   r¶  r‰   rù  g‡áö>¹SÅ*ry   rp   )r2   rÓ  rW  r   ©rb   rV   r‹  r.   r.   r/   rX  z  s    zTestGamma.test_delta_cdfza, ref, rtol))r]  gžtí.ƒÃÀro   )rW   r”  ro   )rS   gX>k-Ö¾@ry   )r¦  gwM½7§@ro   )g ÈNgmÁ«Cg®%o�g$6@ro   )r`  çoÜ˜#]@ro   c                 C   s   t tj |¡||d� d S rÈ  )r   r2   rÓ  r>   )rb   r,   r9  rq   r.   r.   r/   r(  ˆ  s    zTestGamma.test_entropyr,   )rj   r   r¥  rU   )rj   r   r¥  rŒ  TFr™   r  c                 C   s6  t j d¡}tjj|||d|d�}i }	|r2||	d< |r>||	d< |rJ||	d< dt|	ƒ }
|
dkr¬d	}tjt	|d
��( tjj
|fddi|	¤Ž W d   ƒ n1 sž0    Y  d S tjj
|fddi|	¤Ž}tj|Ž }|
dkrêt| ¡ t  |¡ƒ |
dk�rt| d¡t  |d ¡ƒ |
dk�r2t| d¡t  |d ¡ƒ d S )Nrˆ   rS   r   r‹  r�   rœ   r‰   r   rÓ   rÔ   r2  r0  r   rW   )rZ   r   r€   r2   rÓ  r�   r×   rŸ   r   rÝ   r©   r   r½   r¡  )rb   r,   rU   rV   rŒ  r™   r  r‘   r£   r¤   r«  r$  Úthetar8   r.   r.   r/   Útest_fit_mm™  s2    ÿ6


zTestGamma.test_fit_mmN)rÂ   rÃ   rÄ   r  r“  rŠ  rU  rŸ   rÅ   rÆ   rX  r(  rÀ  r.   r.   r.   r/   r¸  Q  s"   
ÿ

r¸  c                  C   s:   d} t jd| d  d| d  ddd�}t| d¡dƒ d S )	NrÖ  gÍ;fž ö?rW   r   r   rT   r  gîV×{„¡q@)r2   rµ  r   rY   )ZjitterÚZr.   r.   r/   Útest_pdf_overflow_gh19616¼  s    "rÂ  c                   @   sj   e Zd Zdd„ Zej dg d¢¡dd„ ƒZej dg d¢¡d	d
„ ƒZej dg d¢¡dd„ ƒZ	dd„ Z
dS )Ú
TestDgammac                 C   s~   t j d¡}d}|jd|d�}|jd|d�}tj ||¡}tj t  	|¡|¡d }t
||ƒ t |¡}t
| |¡|dd� d S )Nl   ÚOÚPÚ(ë$ rR   rü  )rZ  r›   rW   r˜  rp   )rZ   r   r€   Únormalr/  r2   ÚdgammarY   rÓ  r‚   r   )rb   r‘   r›   rQ   r,   r“   r9  r8   r.   r.   r/   r  É  s    

zTestDgamma.test_pdfzx, a, expected))rH  r   ggróU†´>)rs  r   g$›I’—C<)iÎÿÿÿru   gèšè2Wj<)éçÿÿÿr‘  g~)ÎAÄ.=)ru   r   g­òÀfäï?c                 C   sx   t j ||¡}t||dd� t j ||¡}t||dd� t j | |¡}t||dd� t j ||¡}t|| dd� d S r¸  )r2   rÅ  r`   r   r¼   r»   rS  )rb   rQ   r,   rK   r`   r¼   r»   rS  r.   r.   r/   Útest_cdf_ppf_sf_isf_tailß  s    z#TestDgamma.test_cdf_ppf_sf_isf_tailrÇ  ))rj  g®m†qÖn @)çÍÌÌÌÌÌô?g®ñý£¿øþ?)rÀ  gx¹¤ú’ü?c                 C   s   t tj |¡|dd� d S r  ©r   r2   rÅ  r>   rÈ  r.   r.   r/   r(  ï  s    zTestDgamma.test_entropy))r  rJ  )rF  g¡Ý>_ Â)r  gÂíð5iøÀ)r¦  gµ”œ—oÞ@)r¤  g‰÷4F¨a3@)r`  gãÚrO]@c                 C   s   t tj |¡|dd� d S rE  rÉ  rÈ  r.   r.   r/   Útest_entropy_entreme_values  s    z&TestDgamma.test_entropy_entreme_valuesc                 C   sL   t  g d¢¡}tj |¡}tt|ƒƒD ] }|| tj || ¡ks&J ‚q&d S )N)r   ru   r¹  r  )rZ   r   r2   rÅ  r>   r¤  r×   )rb   rQ   rÀ  r¢  r.   r.   r/   Útest_entropy_array_input  s    z#TestDgamma.test_entropy_array_inputN)rÂ   rÃ   rÄ   r  rŸ   rÅ   rÆ   rÇ  r(  rÊ  rË  r.   r.   r.   r/   rÃ  È  s   ÿ

ÿ
ÿ
rÃ  c                   @   s6   e Zd Zdd„ Zdd„ Zej dg d¢¡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½  r  rS   gÑ6:˜¡Öœ?©r   r2   Úchi2rY   re   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 )Nrd  gÎ»mã:=6g'bçdé5 <rF  rp   rh   gÊQœ8ø›@r  gÜ�ÁØ†0g¸uu¿[9¦=rO   g¯“8-€*@)r2   rÎ  r¼   r   )rb   r[  rQ   r.   r.   r/   r×  #  s    zTestChi2.test_ppfrV  ))r]  gêÜ«¿>…ÓÀ)r   g±Æ¯Ê‰é?)rS   gn“ãÞ>@)éû   gÍ”vì0@)r¤  g¡9:ï3@c                 C   s   t t |¡ ¡ |dd� d S rx   )r   r2   rÎ  r>   rZ  r.   r.   r/   r(  ;  s    zTestChi2.test_entropyN)	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ej ddd	g¡d
d„ ƒZ	dS )ÚTestGumbelLc                 C   s2   t  dd¡}tj |¡}tj |¡}t||ƒ d S ©Nr´  rI  )rZ   r  r2   r
  r`   r¼   r   rÛ  r.   r.   r/   rM  G  s    zTestGumbelL.test_cdf_ppfc                 C   sH   t  dd¡}tj |¡}tj |¡}t  |¡}t |¡ }t	||ƒ d S rÑ  )
rZ   r  r2   r
  rf  rã  r�   r   Úexpm1r   )rb   rQ   rÀ  r  Úur‚  r.   r.   r/   rå  M  s    
zTestGumbelL.test_logcdf_logsfc                 C   s2   t  dd¡}tj |¡}tj |¡}t||ƒ d S )NrH  ru   )rZ   r  r2   r
  r»   rS  r   rÛ  r.   r.   r/   r  U  s    zTestGumbelL.test_sf_isfrU   r±   r   c                 C   s2   t jjd|d�}t jj||d�\}}t||ƒ d S )NrS   )r›   rU   r§   )r2   r
  r�   r©   r   )rb   rU   r£   Z
fitted_locr´   r.   r.   r/   Útest_fit_fixed_param[  s    z TestGumbelL.test_fit_fixed_paramN)
rÂ   rÃ   rÄ   rM  rå  r  rŸ   rÅ   rÆ   rÔ  r.   r.   r.   r/   rÐ  E  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û   ç?~T}%m;rè  rp   )r   r2   r	  r»   re   r.   r.   r/   rR  f  s    ÿzTestGumbelR.test_sfc                 C   s   t tj d¡ddd� d S )Nr~  rº  rè  rp   )r   r2   r	  rS  re   r.   r.   r/   rU  o  s    ÿzTestGumbelR.test_isfN)rÂ   rÃ   rÄ   rR  rU  r.   r.   r.   r/   rÕ  d  s   	rÕ  c                   @   s`  e Zd Zejdd�d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g d¢¡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 g d/¢g d0¢g d1¢¡ejg d2¢g d3¢g d4¢ej	jd�ejg d5¢e d6d7d8¡e d9dd:¡ej	jd�g¡d;d<„ ƒZej	 
d.e g d/¢g d0¢g d1¢¡ejg d2¢g d3¢g d4¢ej	jd�ejg d5¢e d6d7d8¡e d9dd:¡ej	jd�g¡d=d>„ ƒZej	 
d?d@dg¡ej	 
dAdBdCg¡dDdE„ ƒƒZej	 
dFdGdHgdIdHgg¡dJdK„ ƒZej	 
dLdMd@ejejejfgdNdOgg¡dPdQ„ ƒZej	 
dRg dS¢¡ej	 
dTej j!dUe dVd@dW¡dXfej j"dUe dVd@dW¡dXfej j!dYe d@dZdW¡dUfej j"dYe d@dZdW¡dXfg¡d[d\„ ƒƒZ#ej	 
d]g d^¢¡d_d`„ ƒZ$ej	jej	 
d]g da¢¡dbdc„ ƒƒZ%ddS )eÚTestLevyStableT)Zautousec                 C   s(   dt j_dt j_dt j_t jjt j_dS )z2Setup default parameters for levy_stable generatorÚS1Ú	piecewiseN)r2   Úlevy_stableÚparameterizationÚcdf_default_methodÚpdf_default_methodZ_levy_stableZ	_QUAD_EPSÚquad_epsre   r.   r.   r/   Úreset_levy_stable_paramsz  s    z'TestLevyStable.reset_levy_stable_paramsc                 C   s*   t  ttƒjd ¡}t 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,pctr  ©rZ   r  r   r  r  r  r  ÚTrê  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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)rZ   r  r   r  r  rê  r.   r.   r/   Únolan_loc_scale_sample_dataÐ  s    	ÿÿz*TestLevyStable.nolan_loc_scale_sample_dataÚsample_sizerû   rk  ©ZmarksrÛ  ZS0rØ  z
alpha,beta))r  r   )r  r¦   )rj  r   )rT  rh   zgamma,delta©r   r   r  c           
      C   sF   |t j_t j||||d�}t  |j|dd�|j¡\}}	|	dksBJ ‚d S )N)rã   rŠ  rV   rU   r¹   rº   rl  )r2   rÚ  rÛ  ro  r�   r`   )
rb   rÛ  rã   rŠ  rÓ  r‹  ræ  Úlsr´   r,  r.   r.   r/   r  ß  s    ÿÿzTestLevyStable.test_rvsrŠ  rh   r   c                 C   sZ   t j d¡ d}d}d}tjj||||dd�}tj|d||||fd�\}}|d	ksVJ ‚d
S )z3Additional test cases for rvs for alpha equal to 1.é±hÞ:r  rh   rj  r   ©rU   rV   r›   rÚ  rz  rj   N)rZ   r   rƒ   r2   rÚ  r�   ro  )rb   rŠ  rã   rU   rV   rQ   Ústatr,  r.   r.   r/   Útest_rvs_alpha1û  s    ÿ
ÿ
zTestLevyStable.test_rvs_alpha1c                 C   s    g d¢}t j |¡\}}}}t|dddd� t|ddƒ t|dd	ƒ t|d
dƒ |g d¢ }t j |¡\}}}	}
t|dƒ t|dƒ t|
dd	ƒ t|	dd	ƒ d S )N)çžwgí¶«¿rî  rm   rm   rm   rm   ç¾¼ ûèÔu?rï  rï  rï  rï  çÎ67¦',¡?rð  rð  rð  rð  çtA}Ëœ.«?rñ  rñ  rñ  rñ  ç®Gáz®÷?r   rj   r  ç)\�Âõ(Ì¿rW   gÛ§ã1•‘?r³   gƒú–9]c?)rñ  rñ  rñ  rñ  rñ  r±   gáî¬Ýv¡™?rð  )r2   rÚ  rå  r   r   r   ©rb   rQ   Úalpha1Úbeta1Úloc1Úscale1rä  Úalpha2Úbeta2r8  r9  r.   r.   r/   rè  	  s    ÿ

zTestLevyStable.test_fitzUnknown problem with fitstart.rŽ  zalpha,beta,delta,gamma)rj  r–  rW   r‰   )r  r–  rW   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¹   r   rj   rp   N)r2   rÚ  rû  r�   rå  r   )rb   rã   rŠ  r‹  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  g d¢¡}tj |¡\}}}}tj | ¡\}}}}	t|dƒ |dksNJ ‚t||ƒ t|| ƒ t|| ƒ t|	|ƒ d S )N©r   r   r‰   r‰   rR   rR   rR   rø   rø   rS   rS   r   r   )rZ   r   r2   rÚ  rå  r   r   )
rb   rQ   rõ  rö  r÷  rø  rù  rú  r8  r9  r.   r.   r/   Útest_fit_beta_flip:  s    

z!TestLevyStable.test_fit_beta_flipc                 C   sr   d}t  g d¢¡}tj | ¡\}}}}tj | | ¡\}}}	}
t||ƒ t||ƒ t|	|| ƒ t|
|ƒ d S )Nr   rý  )rZ   r   r2   rÚ  rå  r   )rb   ÚSHIFTrQ   rõ  rö  r÷  rø  rù  rú  r8  r9  r.   r.   r/   Útest_fit_delta_shiftF  s    

z#TestLevyStable.test_fit_delta_shiftc                 C   s°   g d¢}t j |¡\}}}}|dk s2J d|› �ƒ‚|t|ƒk sVJ dt|ƒ› d|› �ƒ‚g d¢}t j |¡\}}}	}
|dksˆJ d|› �ƒ‚|	t|ƒks¬J dt|ƒ› d|	› �ƒ‚d S )	N)r   r   r‰   r‰   rR   rR   rR   rø   rø   éŒ   r  r   zExpected alpha < 1, got zExpected loc < z, got )r   r   r‰   r‰   rR   rR   rR   rø   rø   é‚   r  zExpected alpha > 1, got zExpected loc > )r2   rÚ  rå  rW  rÚ  rô  r.   r.   r/   Útest_fit_loc_extrapQ  s    $z"TestLevyStable.test_fit_loc_extrapz pct_range,alpha_range,beta_range)rj   rh   r¦  )rO   r   rW   )r±   r   r¸   )rj   rl  rh   rb  r¦  )rO   rh   r   rj  rW   )gÍÌÌÌÌÌì¿r¦   r   r3  rC  r   )rj   rl  rO   r#  çffffffÖ?rh   çÍÌÌÌÌÌä?r¶   r·   rb  r¦  rO   rW   r•  r±   é   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 �]J\}	\}
}}|
tj_	|durè|||ƒ n|}t
ƒ ��}| td¡ tjj|d |d |d ddd�}tjdd��P t|g d¢|t ||d  ¡t ||d  ¡t |d ¡ gƒ}W d  ƒ n1 �sˆ0    Y  ||d |kt |¡B  }d |	› d!|
› d"|› d#|jj› d$|› �
}t||d ||d%d&� W d  ƒ q¼1 �sþ0    Y  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 ¡g d¢¡@ 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 ¡g d¢¡@ 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 ¡g d¢¡@ B | d dkt  | d ddg¡@ t  t  | d ¡g d¢¡@ B | d dkt  | d d	d
g¡@ t  t  | d ¡ddg¡@ B | d dkB  @ S )NÚpctrã   rŠ  r   rh   r·   rµ  r–  rj   r¦  r3  rl  rb  rt  rO   r#  r¶   )rh   rC  rD  r  r  )gš™™™™™Ù¿ç333333Ó¿r3  r–  rh   r  r  ©rO   rt  r3  r–  )r¸   r·   r  rP  rÀ  )rZ   Úisinr‚   ©r;  ©Úalpha_rangeÚ
beta_rangeÚ	pct_ranger.   r/   rE   …  s¨    ÿþ

ÿ

ÿ
þû

ÿö
ÿò
ÿî
ÿþê
ÿþå 
ÿþà%

ÿ
þÛ*

ÿ
þÖ/

ÿ
þÑ4
ÿþÌ9
ÿþÇ>
ÿþÂC
½ÿýz7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>rÙ  r°  c                    sH   t  | d ˆ¡t  | d ˆ ¡@ t  | d ˆ¡@ | d dk@ | d dk@ S )Nr  rã   rŠ  rt  r  ©rZ   r  r  r  r.   r/   rE   Ó  s    ÿþ
ý
üc                    s:   | d dkˆ @ t  | d ˆ¡@ dˆ v @ t  | d ˆ¡@ S )Nrã   r  r  rŠ  r  r  ©r  r  Úis_linux_32r  r.   r/   rE   Þ  s    
ÿþýüg•Ö&è.ñ=c                    s<   t  | d ˆ¡t  | d ˆ ¡@ t  | d ˆ¡@ | d dk@ S )Nr  rã   rŠ  rt  r  r  r  r.   r/   rE   è  s    ÿþ
ýúfft-simpsonr  c                    s<   | d dkt  | d ˆ¡@ t  | d ˆ ¡@ t  | d ˆ¡@ S )Nrã   rT  r  rŠ  r  r  r  r.   r/   rE   ñ  s    
ÿþýrŽ  c                    sH   t  | d ˆ¡t  | d ˆ ¡@ t  | d ˆ¡@ | d dk@ | d dk @ S )Nr  rã   rŠ  r   rT  r  r  r  r.   r/   rE   ù  s    ÿþ
ý
üNz2Density calculations experimental for FFT method.*rQ   rã   rŠ  r   r   ©rV   rU   r  r³  ©ÚcalcZabserrÚrelerrr,  r  z	pdf test ú failed with method 'z' [platform: z]
Ú
F©Úerr_msgÚverbose)ÚplatformÚunameÚsystemÚmachineÚjoinÚ	processorrz  r2   rÚ  rÝ  r   Úrecordr0  rY   rZ   r#  r   r‚   Úisnanr�   r  r   )rb   rã  r  r  r  r£   r"  Zplatform_descÚtestsÚixÚdefault_methodrq   Úfilter_funcÚsubdataÚsupr,  Úsubdata2ÚfailuresÚmessager.   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 �]B\}\}}	}
|tj_|
dur´||
|ƒ n|}tƒ �ü}| td¡ tjj|d |d |d ddd�}tj	dd��P t
|g d¢|t ||d  ¡t ||d  ¡t |d ¡ gƒ}W d  ƒ n1 �sR0    Y  ||d |	kt |¡B  }d|› d|› d|jj› d |› �}t||d |	|d!d"� W d  ƒ qˆ1 �sÂ0    Y  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 g d¢¡@ | d dk@ | d dkt  | d g d¢¡@ | d dk@ B  @ S ©	Nr  rã   rŠ  r  )r  rS  rP  rj   ©rO   rt  r3  r¦  r  r  r  r.   r/   rE   Q  s$    ÿþ
ÿ
þ
ÿ
þúÿýz7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>rl  c                    sˆ   t  | d ˆ¡t  | d ˆ ¡@ t  | d ˆ¡@ | d dkt  | d g d¢¡@ | d dk@ @ | d dkt  | d g d¢¡@ | d dk@ B S r3  r  r  r  r.   r/   rE   f  s"    ÿþ
ÿ
þü	
ÿ
þ÷r  r  c                    s<   t  | d ˆ¡t  | d ˆ ¡@ t  | d ˆ¡@ | d dk@ S )Nr  rã   rŠ  ç333333û?r  r  r  r.   r/   rE   x  s    ÿþ
ýr]  c                    sH   t  | d ˆ¡t  | d ˆ ¡@ t  | d ˆ¡@ | d dk@ | d dk@ S )Nr  rã   rŠ  rj  r5  r  r  r  r.   r/   rE   €  s    ÿþ
ý
ürÖ  c                    sH   t  | d ˆ¡t  | d ˆ ¡@ t  | d ˆ¡@ | d dk@ | d dk@ S )Nr  rã   rŠ  rÈ  rj  r  r  r  r.   r/   rE   ‰  s    ÿþ
ý
ürj   c                    sH   t  | d ˆ¡t  | d ˆ ¡@ t  | d ˆ¡@ | d dk@ | d dk@ S )Nr  rã   rŠ  r  rÈ  r  r  r  r.   r/   rE   ’  s    ÿþ
ý
üNz[Cumulative density calculations experimental for FFT method. Use piecewise method instead.*rQ   rã   rŠ  r   r   r  r  r³  r  r,  r  z	cdf test r  z'
r  Fr  )rz  r2   rÚ  rÜ  r   r'  r0  r`   rZ   r#  r   r‚   r(  r�   r  r   )rb   rä  r  r  r  r£   r)  r*  r+  rq   r,  r-  r.  r,  r/  r0  r1  r.   r  r/   Útest_cdf_nolan_samples4  sx    ÿÿÿ	ÿ
ÿ
ÿ½Nÿÿÿþûýý$	
ÿÿÿÿûz%TestLevyStable.test_cdf_nolan_samplesrá   r   r}  rY   r`   c           
      C   sÀ   t  ¡ }|jdko dt  ¡ d v }|r8|dkr8t d¡ |}dtj_dtj_	||d |k }d|› �tj_
|d	v svJ ‚|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   rY   z4Test unstable on some platforms; see gh-17839, 17859rÙ  rá   ÚS)rY   r`   rQ   rã   rŠ  rW   r‰   r  r  N)r!  r"  r#  ÚarchitecturerŸ   r    r2   rÚ  rÜ  rÝ  rÛ  rY   r`   r   )
rb   rå  rá   r}  r"  r  r£   r-  r   rk  r.   r.   r/   Útest_location_scaleÅ  s     
ÿÿz"TestLevyStable.test_location_scalezmethod,decimal_placesr
  r³   rÙ  c              	   C   sº   t  g d¢¡}t  g d¢¡}t  g d¢¡}t jdd��p tƒ �J}|jtdd� |tj_tjj	|d|dd	d
�}t
||||ƒ W d  ƒ n1 sŽ0    Y  W d  ƒ n1 s¬0    Y  dS )zˆ sample points extracted from Tables and Graphs of Stable
        Probability Density Functions - Donald R Holt - 1973 - p 187.
        )r   r   r   r   r   r   r   r   rW   rW   rW   rW   r‰   r‰   r‰   r‰   r³   r³   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   r#  rh   r   r   r#  rh   r   r   r#  rh   r   r   r#  rh   r   r   r#  rh   r   r  ©r¾   zDensity calculation unstable.*)Úcategoryr1  r   r   r  N)rZ   r   r#  r   rH   r0  r2   rÚ  rÝ  rY   r   )rb   r2  Zdecimal_placesZxsÚdensityZbetasr.  rY   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   )rW   r·   rR   rj  )rR   r  r   r   c                 C   s4   t jj |d |d |d |d dd�}t||ƒ d S )Nr   r   rW   r‰   rÐ  rë  )r2   rÚ  r   )rb   rD  rK   Zobservedr.   r.   r/   rÔ    s
    þzTestLevyStable.test_statsrã   )r#  rh   r¶   zfunction,beta,points,expectedr  rÆ  rR   rm   rO  r�  c                 C   s>   d|  k rdk sn J ‚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ã   rŠ  N)r   rZ   r·  r×   )rb   rã   r   rŠ  rô  rK   r.   r.   r/   Ú!test_distribution_outside_support  s
    (þz0TestLevyStable.test_distribution_outside_supportzx,alpha,beta,expected))r   çû/ƒiZü?çžs£0à?g—z5FÚÑ?)r   ç£~©¨H¿þ?ç|/m—ì¿g>m¤ÍüÑ?)r   çÖ.d5ù?çL�ç,´Ù¿gê¹ƒ¼¯\Ñ?)r   çª>½£�ßû?çôÐ€joØ¿gA]�4ÕîÑ?)r   çpö¿a2ù?ç€Õ…ÈÌ Ð¿géqQöÁíÑ?c                 C   s$   dt j_tt jj|||d�|ƒ dS )aø  Test pdf for x equal to zeta.

        With S1 parametrization: x0 = x + zeta if alpha != 1 So, for x = 0, x0
        will be close to zeta.

        When case "x equal zeta" is not handled properly and quad_eps is not
        low enough: - pdf may be less than 0 - logpdf is nan

        The points from the parametrize block are found randomly so that PDF is
        less than 0.

        Reference values taken from MATLAB
        https://www.mathworks.com/help/stats/stable-distribution.html
        çßÄAfcª=r?  N©r2   rÚ  rÞ  r   rY   ©rb   rQ   rã   rŠ  rK   r.   r.   r/   Útest_x_equal_zetaJ  s
    -þz TestLevyStable.test_x_equal_zeta)
)r]  rA  rB  gôzÂ¶ùÙÑ?)r]  rC  rD  gäV¬ÔüÑ?)r]  rE  rF  gRîE)3\Ñ?)r]  rG  rH  g�àBâîÑ?)r]  rI  rJ  gŽ/ý^ÔíÑ?)ç-Cëâ6¿rA  rB  gHÔÚÑ?)rO  rC  rD  gn²³�ÅüÑ?)rO  rE  rF  g¦üÇx“\Ñ?)rO  rG  rH  gV¿M%ÈîÑ?)rO  rI  rJ  g˜m¿‹¯íÑ?c                 C   s$   dt j_tt jj|||d�|ƒ dS )aó  Test pdf for x near zeta.

        With S1 parametrization: x0 = x + zeta if alpha != 1 So, for x = 0, x0
        will be close to zeta.

        When case "x near zeta" is not handled properly and quad_eps is not
        low enough: - pdf may be less than 0 - logpdf is nan

        The points from the parametrize block are found randomly so that PDF is
        less than 0.

        Reference values taken from MATLAB
        https://www.mathworks.com/help/stats/stable-distribution.html
        rK  r?  NrL  rM  r.   r.   r/   Útest_x_near_zeta~  s
    "þzTestLevyStable.test_x_near_zetaN)&rÂ   rÃ   rÄ   rŸ   r  rß  rã  rä  rå  rÅ   rÆ   rá   r�  r  rí  rè  r£  rü  rþ  r   r  rZ   r  rÇ   r2  r6  r:  r>  rß   rÞ   rÔ  r2   rÚ  r`   rY   r@  rN  rP  r.   r.   r.   r/   r×  y  s  


!
+
ÿÿÿþþÿýüüôÿ
 Cýüüôÿ
| þþ
 þþ
üüüüíþì
ý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ö   re   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�   rZ   rÛ   r*  r   r  ©rb   r�   r.   r.   r/   Útest_noexception¬  s    ÿz"TestArrayArgument.test_noexceptionN)rÂ   rÃ   rÄ   r÷   rS  r.   r.   r.   r/   rQ  ¨  s   rQ  c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestDocstringc                 C   sD   t jjd ur tdt jj ¡ v ƒ t jjd ur@tdt jj ¡ v ƒ d S )Nrï   rD  )r2   rï   r[  r   ÚlowerrD  re   r.   r.   r/   Útest_docstrings³  s    zTestDocstring.test_docstringsc                 C   s   t  ¡  t  ¡  d S rd   )r2   r<   r;   re   r.   r.   r/   Útest_no_name_argº  s    zTestDocstring.test_no_name_argN)rÂ   rÃ   rÄ   rV  rW  r.   r.   r.   r/   rT  ²  s   rT  c                  C   s¦   t g d¢ƒ} t| dk| dƒ\}}t|g d¢ƒ t|dgƒ tddk| dƒ\}}t|| ƒ t|dgt | ¡ ƒ t| dk| dƒ\}}t|| ƒ t|dgt | ¡ ƒ d S )N)r   r‰   rW   r   rW   r‰   r‰   r   rW   )r‰   rW   rW   r‰   r‰   r   )r   r   r   rZ   r›   ©r,   r-   rK  r.   r.   r/   Útest_args_reduceÀ  s    

rY  c                   @   s®   e Zd Zg d¢Zdd„ Zg d¢Zej de	¡dd„ ƒZ
dd	„ Zd
d„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zejjej dddg¡dd„ ƒƒZej dddg¡dd„ ƒZdS )ÚTestFitMethod)Úncfri  rj  c                 C   s   t j d¡ d S rõ   rö   re   r.   r.   r/   r÷   Ó  s    zTestFitMethod.setup_method)r4  rú  r/  z	dist,argsc                 C   sz   || j v rt d| ¡ t dddddtjg¡}t dddddtjg¡}tt|ƒ}t	t
|j|dd� t	t
|j|dd� d	S )
rZ  z"%s fit known to fail or deprecatedrK  rL  rM  rN  rO  r   ré  N)ÚfitSkipNonFiniterŸ   r    rZ   r   rÞ   rß   rð   r2   r/  rÝ   r©   )rb   r8   rò   rQ   rÀ  Zdistfuncr.   r.   r/   Ú!test_fit_w_non_finite_data_valuesÙ  s    

z/TestFitMethod.test_fit_w_non_finite_data_valuesc              	   C   sš   t j d¡ t jdd��n tjjddddd�}t  t  |¡t  d¡ d	  	¡ ¡}t
t  tjj|d
dd�¡|d
dgdd� W d   ƒ n1 sŒ0    Y  d S )Ni90  r  r;  r#  rm   ç      4@r•  rù   rW   r   r!  r  r}   )rZ   r   rƒ   r#  r2   rì   r�   rª  rF  r½   r   r   r©   )rb   rQ   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‰   rW   r§   ré  )rZ   rÛ   r2   rú  r©   r   rª  r   ©rb   rQ   rU   rV   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   r§   ru   r  rÀ  ©rž   r�   rW   r!  )rZ   rÛ   rF  r½   r2   rÓ  r©   r   r   Zdigammar   )rb   rQ   Zmeanlogr�   r,   rU   rV   rD   rž   rœ   rK  r.   r.   r/   Útest_fix_fit_gammaü  s6    






z TestFitMethod.test_fix_fit_gammac              	   C   s¶  dd„ }t  g d¢¡}tjj|ddd�\}}}}t|dƒ t|dƒ t||||ƒddgdd� t  g d¢¡}tjj|d	ddd
�\}}}}t|d	ƒ t|dƒ t|dƒ ||||ƒ\}}t|ddd� d| }	tjj|	d	ddd�\}
}}}t|d	ƒ t|dƒ t|dƒ ||
||	ƒ\}}t|ddd� t|
|ƒ tt	tjj|ddd� t  g d¢¡}tt	tjj|ddd� tt	tjj|ddd	d� tt	tjj|ddd	d� tt	tjj|ddd	dd� d S )Nc                 S   sj   t |ƒ}t |¡ ¡ }t d| ¡ ¡ }t | | ¡}||| t | ¡   ||| t |¡   g}|S r‹   )r×   rZ   rF  r$  r   Úpsi)r,   r-   rQ   r+  Ús1rÚ  ZpsiabrÍ   r.   r.   r/   Úmlefunc%  s    ÿz0TestFitMethod.test_fix_fit_beta.<locals>.mlefunc)r‘  r#  rh   r   r   r!  rŽ  r}   rW   )rž   r�   rœ   r  )rÐ   r�   rœ   rh   r~  )r�   rœ   rž   )r�   rœ   rÐ   r‰   )rž   rÐ   r�   rœ   )
rZ   r   r2   rŠ  r©   r   r   r   r/  rÝ   )rb   rf  rQ   r,   r-   rU   rV   ÚdaÚdbrä  r7  Úb2r8  r9  rÀ  r.   r.   r/   Útest_fix_fit_beta"  s:    








ÿzTestFitMethod.test_fix_fit_betac                 C   s†   t  g d¢¡}tj |¡\}}t|dƒ t|dƒ tjj|dd�\}}t|dƒ t|dƒ tjj|dd�\}}t|dƒ t|dƒ d S )N)rW   rW   r³   r³   r³   r³   r³   rÀ  rW   r‰   ré  r   r§   r³   )rZ   r   r2   r4  r©   r   r`  r.   r.   r/   Útest_expon_fitY  s    




zTestFitMethod.test_expon_fitc                 C   s   t  g d¢¡}t  |d ¡}tjj|dd�\}}}t|| ¡ dd� t|dƒ t|t  	| 
¡ ¡dd� tjj|ddd�\}}}t|t  |t  d¡ d  
¡ ¡dd� t|dƒ t|dƒ tjj|dd	d
�\}}}t|d	ƒ t|dƒ t|t  	| 
¡ ¡dd� d S )N)rj  r‰   rR   rý   é   r÷  r   r§   rY  rp   rÁ  r!  rW   r¶   )r�   Zfix_s)rZ   r   rF  r2   rì   r©   r   r1  r   r�   r½   rª  )rb   rQ   Zlnxm1r  rU   rV   r.   r.   r/   Útest_lognorm_fith  s     
ÿ



zTestFitMethod.test_lognorm_fitc                 C   s¼   t  g d¢¡}tj |¡\}}t|| ¡ ƒ t|t  |¡ƒ tjj|dd�\}}t|dƒ t|| ¡ ƒ tjj|dd�\}}t|dƒ t|dƒ t	t
tjj|dd� t	t
tjj|dd� d S )N)r  rÀ  rý  ç      "@r   r§   rR   ré  rl   r  )rZ   r   r2   r/  r©   r   rW  r°  rÚ  r/  rÝ   r`  r.   r.   r/   Útest_uniform_fit|  s    


zTestFitMethod.test_uniform_fitr2  ZMLEZMMc              
   C   sl  d\}}t jj||ddd�}t jj|d|d�}t jj|d|d�}t||ddd	� t jj|d|d
�}t||ddd	� t jj|d|d�}t jj|d|d�}t||ddd	� t jj|d|d�}t||ddd	� ttt jj|dd|d� ttt jj|dddd|d� t jj|ddd|d�}	|	\}
}}}t|
||gg d¢ƒ d}t jj|dd�}t jj|||d�\}
}}t|
|ƒ d S )N)rÏ  rÄ  rS   r¹   rº   rÏ  )rž   r2  )r‹  r2  rY  r†  )rŒ  r2  rÄ  )rÐ   r2  )r  r2  )r  r2  r   rW   )r‹  rž   r2  r   r‰   )r‹  rÐ   r�   rœ   r2  )r‹  r�   rœ   r2  )rÏ  r   r   rù   )	r2   rŠ  r�   r©   r   r/  rÝ   r   rÓ  )rb   r2  r,   r-   rQ   Zres_1Zres_2Zres_3Zres_4Zres_5ZaaZbbrž  Ússr£   r.   r.   r/   Útest_fshapesŽ  s.    ÿzTestFitMethod.test_fshapesc                 C   s@   t j}|jddd�}tdd�}tt|j|fi |¤d|i¤Ž d S )NrW   rS   )rb  r›   i›ÿÿÿ)Zenikibenikir2  )r2   ra  r�   rÙ   r/  rà   r©   )rb   r2  r8   r£   rñ   r.   r.   r/   Útest_extra_params¶  s    
zTestFitMethod.test_extra_paramsN)rÂ   rÃ   rÄ   r    r÷   r\  rŸ   rÅ   rÆ   r   r]  r_  ra  rc  rj  rk  rm  ro  r�  rq  rr  r.   r.   r.   r/   rZ  Ð  s"   

	&7&rZ  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ö   re   r.   r.   r/   r÷   À  s    zTestFrozen.setup_methodc                 C   s¬  t j}t jddd�}| d¡}|jdddd�}t||ƒ | d¡}|jdddd�}t||ƒ | d¡}|jdddd�}t||ƒ | d¡}|jdddd�}t||ƒ | d¡}|jdddd�}t||ƒ | ¡ }|jddd�}t||ƒ | 	¡ }|j	ddd�}t||ƒ | 
¡ }|j
ddd�}t||ƒ | ¡ }|jddd�}t||ƒ | ¡ }|jddd�}t||ƒ | d¡}|jdddd�}t||ƒ t|j|jƒ t|j|jƒ d S )Nr¹  rÏ  rT   r^  r#  rW   )r2   rú  rY   r   r`   r¼   rS  r»   rÌ  r½   rÈ  r1  r>   r¡  r,   r-   )rb   r8   Ú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   r^  r#  r¹  rW   )r2   rÓ  rY   r   r`   r¼   rS  r»   rÌ  r½   rÈ  r1  r>   r¡  r,   r8   r-   )rb   r,   r8   rt  ru  r´  r.   r.   r/   Ú
test_gammaû  sL    






















zTestFrozen.test_gammac                 C   s8   t  d¡}| d¡}|j dd� | d¡}t||ƒ d S )Nr   rW   rÐ  rÑ  )r2   rì   r¡  r   )rb   rt  Úm1rˆ  r.   r.   r/   Útest_regression_ticket_1293/  s
    


z&TestFrozen.test_regression_ticket_1293c                 C   sR  d}t j|d�}|j |¡\}}t||gddgƒ d}t jjd|d� t|j |¡dtjgƒ d}t j|d�}|j |¡\}}t||gddgƒ d}t j d|¡ t|jj|jj	ft j |¡ƒ t jdd�}t
|j|juƒ dD ]l}t |¡}t j|d�}|j|j	 }}t|dƒ t
t |¡ƒ t d¡}t j |¡\}}t||gdd	gƒ qàd S )
NrP  r+  rm   r¹  rO   r   r%  r&  rh   )r2   r'  r8   r(  r   rY   rZ   rß   r,   r-   r   r¨   r)  r   )rb   rK  r-  r,   r-   Zrv1r.   r.   r/   r*  >  s2    



zTestFrozen.test_abc                 C   s   t ttjdƒƒ d S )NZ	rv_frozen)r   r+   r2   r3   re   r.   r.   r/   Útest_rv_frozen_in_namespacej  s    z&TestFrozen.test_rv_frozen_in_namespacec                 C   sV   t  ¡ }tt|dƒƒ d|_t|j ¡ tj 	d¡ ¡ ƒ tj 	d¡}|j
d|d� d S )Nr|   é*   r¹   rÀ  rº   )r2   rú  r   r+   r|   r   Z	get_staterZ   r   r‘  r�   )rb   rt  Zrndmr.   r.   r/   Útest_random_staten  s    
ÿzTestFrozen.test_random_statec           
      C   sÎ   t  dd¡}t  d¡}t jg d¢g d¢fd�}|||fD ]�}d|_|jdd	� t |¡}|jdd	�}t |¡}|jdd	�}t	||ƒ | 
d
¡| 
d
¡g}	t	|	d |	d ƒ t	| |	d ¡| |	d ¡ƒ q8d S )Ng�µds’z@g@ø¯eä?rÏ  )r   r   rW   r‰   r  rõ  r¹   rÀ  rù   rh   r   r   )r2   rŠ  r8  r;   r|   r�   ÚpickleÚdumpsÚloadsr   r¼   r`   )
rb   rŠ  Zpoissrð  ÚdistfnrD   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��< |j|d	dd
d�}t jj|dddd	dd
d�}W d   ƒ n1 sh0    Y  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>.funcrW   r‰   r³   r@  r  )r  Údivider   T)r’   ÚubÚconditional©rW   ©rò   rU   rV   r’   rƒ  r„  rV  )r‰   ©rò   rU   )r2   rÓ  rZ   r#  rŽ   r   r8  )rb   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û  rv  rx  r*  ry  r{  r�  rˆ  r.   r.   r.   r/   rs  ¿  s   34,rs  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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/   rE   ­  r:   z&TestExpect.test_norm.<locals>.<lambda>ru   rW   rT   r³   r½  r  c                 S   s   | S rd   r.   rŒ   r.   r.   r/   rE   °  r:   rl  rb  c                 S   s   dS r‹   r.   rŒ   r.   r.   r/   rE   µ  r:   ©rU   rV   r’   rƒ  r·   c                 S   s   dS r‹   r.   rŒ   r.   r.   r/   rE   ¸  r:   T©rU   rV   r’   rƒ  r„  r  )r2   rú  rŽ   r   r¼   )rb   r‚  r�  r’   rƒ  Úprob90Úprob90cr.   r.   r/   rû  ¬  s    ÿzTestExpect.test_normc              	   C   sÔ   t jjdd„ dddd�}t|ddd	� t jjd
d„ dddd�}t|ddd	� t jjdddddd�}t jjdddddd�}t jjdd„ ddd||dd�}t|ddd	� t jjdd„ ddd||dd�}t|ddd	� d S )Nc                 S   s   | d | d  S )NçUUUUUU@r.   rŒ   r.   r.   r/   rE   ¾  r:   z&TestExpect.test_beta.<locals>.<lambda>r�  ru   rW   )rò   rU   rV   çÇqÇq¬?r  r  c                 S   s   | S rd   r.   rŒ   r.   r.   r/   rE   Â  r:   r  rl   rŽ  rb  rR   rT   rl  c                 S   s   dS )Nr  r.   rŒ   r.   r.   r/   rE   Ç  r:   )rR   rR   Fr†  r·   c                 S   s   dS r‹   r.   rŒ   r.   r.   r/   rE   Ë  r:   Tr  )r2   rŠ  rŽ   r   r¼   )rb   r‚  r�  rƒ  r’   rŒ  r�  r.   r.   r/   Ú	test_beta¼  s     ÿÿÿzTestExpect.test_betac           
      C   s&  t jj ddddd�\}}t jjdd„ ddd	�}t||d
d� t jjdd„ ddd	�}t||dd� t jjdd„ dddd
d�}t||dd� dt jjdd
gddddd� ¡  }t jjdd„ ddddd�}t||d
d� t jjdd„ dddddd�}t|ddd� t jjdd„ dddd�}	t|	dd
d� d S )Nr•  rR   rÀ  r  rV  c                 S   s   | S rd   r.   rŒ   r.   r.   r/   rE   Ô  r:   z+TestExpect.test_hypergeom.<locals>.<lambda>)r•  rR   rÀ  r‡  r  r  c                 S   s   | d d S ©Nrn  rW   r.   rŒ   r.   r.   r/   rE   ×  r:   r½  c                 S   s   | d d S r‘  r.   rŒ   r.   r.   r/   rE   Ü  r:   ru   )rò   rU   r’   rƒ  r   c                 S   s   dS r‹   r.   rŒ   r.   r.   r/   rE   ã  r:   rÁ  r  c                 S   s   dS r‹   r.   rŒ   r.   r.   r/   rE   è  r:   T)rò   rU   r’   rƒ  r„  c                 S   s   dS r‹   r.   rŒ   r.   r.   r/   rE   í  r:   r   )rò   r’   rƒ  )r2   r�  rŽ   r   r  r$  )
rb   Zm_trueZv_truer�  r‚  Zv_boundsZ	prob_trueÚprob_boundsZprob_bcZprob_br.   r.   r/   Útest_hypergeomÏ  s2    ÿþ"ÿÿÿzTestExpect.test_hypergeomc                 C   sb   t jjdd„ dddd�}dt j dd¡ }t||d	d
� t jjdd„ dddd�}t|dd	d
� d S )Nc                 S   s   dS r‹   r.   rŒ   r.   r.   r/   rE   ó  r:   z)TestExpect.test_poisson.<locals>.<lambda>r…  r‰   F)rò   r’   r„  r   rW   r½  r  c                 S   s   dS r‹   r.   rŒ   r.   r.   r/   rE   ø  r:   T)r2   r8  rŽ   r`   r   )rb   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)rj  rz  )rh   r½  r  )r2   ZgenhalflogisticrŽ   r   )rb   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 )	Nr”  ç®Gáz®ç?c                 S   s   dS r‹   r.   rŒ   r.   r.   r/   rE     r:   z/TestExpect.test_rice_overflow.<locals>.<lambda>)r—  rz  c                 S   s   dS r  r.   rŒ   r.   r.   r/   rE     r:   c                 S   s   dS ©Nr‰   r.   rŒ   r.   r.   r/   rE     r:   )r   rZ   rË  r2   ÚricerY   rŽ   re   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)r3  r‰   c                 S   s   | S rd   r.   ©rN   r.   r.   r/   rE     r:   z(TestExpect.test_logser.<locals>.<lambda>rz  r  ro   r}   c                 S   s   | S rd   r.   r›  r.   r.   r/   rE     r:   r‡  )r2   rû  rŽ   r   rZ   rF  )rb   r,  rU   Zres_0Zres_lr.   r.   r/   Útest_logser  s    ÿzTestExpect.test_logserc                 C   sh   d\}}t jjdd„ ||fd�}t jjdd„ ||fd�}t||| dd� t||d  || dd� d S )	N)rÄ  rÙ  c                 S   s   | S rd   r.   rŒ   r.   r.   r/   rE     r:   z)TestExpect.test_skellam.<locals>.<lambda>rz  c                 S   s   | d S r  r.   rŒ   r.   r.   r/   rE      r:   rY  r}   rW   )r2   ry  rŽ   r   )rb   r¡  Úp2rw  rˆ  r.   r.   r/   Útest_skellam  s
    zTestExpect.test_skellamc                 C   sL   d\}}t j dd„ ||f¡}t|tdd„ t||ƒD ƒƒ||  dd� d S )N)r   éq   c                 S   s   | S rd   r.   rŒ   r.   r.   r/   rE   (  r:   z)TestExpect.test_randint.<locals>.<lambda>c                 s   s   | ]
}|V  qd S rd   r.   ©r7   r´   r.   r.   r/   r
  *  r:   z*TestExpect.test_randint.<locals>.<genexpr>ro   r}   )r2   rÿ   rŽ   r   r$  r¤  )rb   ÚloÚhir“   r.   r.   r/   Útest_randint$  s
     ÿzTestExpect.test_randintc                 C   s   t ttjjdd„ dƒ d S )Nc                 S   s   | d S r  r.   rŒ   r.   r.   r/   rE   /  r:   z&TestExpect.test_zipf.<locals>.<lambda>r…  )r	   r0  r2   r  rŽ   re   r.   r.   r/   Ú	test_zipf,  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/   rE   3  r:   z/TestExpect.test_discrete_kwds.<locals>.<lambda>r…  rz  c                 S   s   dS r‹   r.   rŒ   r.   r.   r/   rE   4  r:   r\  é    r  )rò   ZmaxcountÚ	chunksizeZ	tolerancer½  r  )r2   r8  rŽ   r   )rb   Zn0Zn1r.   r.   r/   Útest_discrete_kwds1  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   rR   r³   r�  r‰   rý   rW   r.   r—  r.   r.   r/   Úpoiss_moment5;  s    z-TestExpect.test_moment.<locals>.poiss_moment5)ru   rP  ru   rF  rp   )r2   r8  r¡  r   )rb   r¨  r|  Zm5r.   r.   r/   Útest_moment8  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  rT   r–  rR   rO   )é”   rz  rª  éU   rV  )r   r2   rú  rŽ   rÓ  rÚ  re   r.   r.   r/   Útest_challenging_cases_gh8928B  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 )NrR   ru   rT   rŒ  r;  rŠ  rU  r½  rC  Tr‹  r  g433333@g433333Àr  )r2   r/  r½   r   rŽ   )rb   r8   r9  r.   r.   r/   Útest_lb_ub_gh15855K  s"    ÿÿÿÿzTestExpect.test_lb_ub_gh15855N)rÂ   rÃ   rÄ   rû  r�  r“  r”  r–  rš  rœ  rž  r£  r¤  r§  r©  r¬  r­  r.   r.   r.   r/   r‰  §  s   "
		
	r‰  c                   @   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 )ÚTestNctc                 C   s@   t  dd¡}t| d¡dƒ t  dd¡}t| d¡ddd� d S )Nru   r   rh   r±   g’ã ÑKìê?rR   r  )r2   Únctr   r`   r   r2  r.   r.   r/   Útest_nc_parameterb  s    zTestNct.test_nc_parameterc              	   C   sZ   t j dt dd¡d d …d f t ddd¡¡}tg d¢g d¢g d¢gƒ}t||d	d
� d S )Nru   r³   rP  rO   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¯  rY   rZ   rÛ   r  r   r   )rb   r“   rK   r.   r.   r/   Útest_broadcastingj  s    ÿþzTestNct.test_broadcastingc                 C   s   t  dd¡}t| ¡ dƒ d S )Nr³   r   rl   )r2   r¯  r   rÈ  r2  r.   r.   r/   Útest_variance_gh_issue_2401r  s    z#TestNct.test_variance_gh_issue_2401c                 C   sÂ   t jj dddd�\}}}}t||||gtjtjtjtjgƒ t jj dddd�\}}}}tt |¡ƒ t|||gtjtjtjgƒ t jj dddd�\}}}}tt |||g¡ ¡ ƒ t|tjƒ d S )Nr·   r3  rÐ  )r[  ÚncrÒ  rT  rÁ  )r2   r¯  r   rZ   rÞ   r   rË  r¾   r  r.   r.   r/   Útest_nct_inf_momentsz  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   rW   g‡@ @gå*‘dnð?r   rF  rp   r²   g½qIÝ  @gLºñ) ð?rÂ  )r2   r¯  r½   r   )rb   Znct_mean_df_1000Znct_stats_df_1000Zexpected_stats_df_1000Znct_meanZ	nct_statsrB  r.   r.   r/   Útest_nct_stats_large_df_values‡  s    
ÿÿz&TestNct.test_nct_stats_large_df_valuesc                 C   s   t tj ddtdƒ¡dƒ d S )NrW   i   r   )r   r2   r¯  r`   r«   re   r.   r.   r/   Útest_cdf_large_nc�  s    zTestNct.test_cdf_large_ncN)	rÂ   rÃ   rÄ   r°  r±  r²  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d„ Zd	S )
ÚTestRecipInvGaussc                 C   s   t j dd¡}|dksJ ‚d S )Nr   rC  rm   )r2   ÚrecipinvgaussrY   rA  r.   r.   r/   Útest_pdf_endpoint¤  s    z#TestRecipInvGauss.test_pdf_endpointc                 C   s"   t j dd¡}|tj ksJ ‚d S )Nr   rC  )r2   r¸  r†   rZ   rß   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 )Nrl  rh   g9V9�só;rè  rp   )r2   r¸  r`   r   ©rb   r,  rK   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<r¹  )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ô   g d¢}t t tjj|dd�¡ ¡ ƒ t t tjj|dd�¡ ¡ ƒ t t tjj|dd�¡ ¡ ƒ t t tjj	|dd�¡ ¡ ƒ g d¢}t t tjj
|dd�¡ ¡ ƒ tjjddd�}t t |¡ ¡ ƒ d}ttj |d¡tj ||¡|dd	� d S )
N)rt  r  r  rm   ©r-   )rO   rO   rh   r·   r   rÐ  rÑ  r  r†  )r   rZ   rË  r2   r™  rY   r¾   r†   r`   rf  r¼   r   )rb   rQ   r4  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  rR  r.   r.   r/   Útest_rice_rvsÝ  s    zTestRice.test_rice_rvsc                 C   s–   t j t ddd¡t ddd¡¡}g d¢}t||ƒ t ddd¡}t jj|ddd�}g d	¢}t||ƒ tj j d
t ddd¡¡}g d¢}t||ƒ d S )NrR   é    )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êß?rO   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™  r`   rZ   rÛ   r   r¼   r1   )rb   r`   Zcdf_expZprobabilitiesr¼   Zppf_expr.   r.   r/   Útest_rice_gh9836â  s    "

zTestRice.test_rice_gh9836N)rÂ   rÃ   rÄ   rÁ  rÂ  rÅ  r.   r.   r.   r/   r¿  Ç  s   r¿  c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )Ú
TestErlangc                 C   s   t j d¡ d S rõ   rö   re   r.   r.   r/   r÷     s    zTestErlang.setup_methodc              	   C   s†   t  ¡ �j t  dt¡ tttjjddddd� g d¢}tjj|dd�}tj	j|dd�}t
||d	d
� W d   ƒ n1 sx0    Y  d S )Nr)  rÈ  r   r   r³   rë  )rh   r  rl   rÄ  rŽ  rÖ  rp   )r-  r.  r/  r0  r/  r2   Úerlangr�   r©   rÓ  r   )rb   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   r±   r�  )r   r2   rÇ  rY   rÓ  re   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ö   re   r.   r.   r/   r÷   )  s    zTestRayleigh.setup_methodc                 C   s   t j d¡}t|dƒ d S )Nrû   gò)¤Zx“À)r2   rï   r†   r   ©rb   rÀ  r.   r.   r/   r“  -  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ï  1  s    zTestRayleigh.test_logsfrœ  )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¶  rà  c                 S   s"   t  | | d ¡dt| ƒ  d S )NrW   rh   )rZ   r$  r×   )r£   r�   r.   r.   r/   r�  :  s    z(TestRayleigh.test_fit.<locals>.scale_mler§   rC  ré  )r2   rï   r�   r©   r   )rb   r–   r  r£   r�  Zscale_expectrU   rV   r.   r.   r/   rè  5  s    



zTestRayleigh.test_fitr—  rj   gÌ¡=E«µ?g@1²dŽå¾?c                 C   s"   t jjd||d�}tt j|ƒ d S )Nr¶  rà  )r2   rï   r�   r¡   )rb   r–   r  r£   r.   r.   r/   Ú test_fit_comparison_super_methodN  s    z-TestRayleigh.test_fit_comparison_super_methodc                 C   s   t tjƒ d S rd   )râ   r2   rï   re   r.   r.   r/   r   V  s    zTestRayleigh.test_fit_warningsc           	      C   s‚   t j d¡}d\}}}tjj||||d�}tj |¡\}}|t  |¡k sLJ ‚tjj||d�\}}|t  |¡k srJ ‚||ks~J ‚d S )NiÈ  )rû   r²  r•  rº   ré  )rZ   r   r€   r2   rï   r�   r©   rW  )	rb   r‘   rU   rV   r›   r�   r­   r´   r®   r.   r.   r/   Útest_fit_gh17088Y  s    
zTestRayleigh.test_fit_gh17088N)rÂ   rÃ   rÄ   r÷   r“  rï  rŸ   rÅ   rÆ   rè  rÌ  r   rÍ  r.   r.   r.   r/   rÊ  (  s   
ÿ
ÿ
rÊ  c                   @   sX   e Zd Zdd„ Zdd„ Zdd„ Zej dg d¢¡d	d
„ ƒZ	ej dg d¢¡dd„ ƒZ
dS )ÚTestExponWeibc                 C   sB   d}d}d}t j |||¡}t j |||¡}t||gddgƒ d S )NrO   r  r¥  g:±2Ë3WË+gõÔ~`9ëkÀ)r2   Ú	exponweibrY   r†   r   )rb   rQ   r,   rK  r,  r’  r.   r.   r/   Útest_pdf_logpdfh  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 )NrI  r±   r³   r   rS   )rZ   rJ  r2   rÏ  rY   Úweibull_minr   r†   ©rb   rQ   r,   rK  r,  rK   r’  r.   r.   r/   Útest_a_is_1s  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   rR   )rZ   rJ  r2   rÏ  rY   r4  r   r†   rÒ  r.   r.   r/   Útest_a_is_1_c_is_1ƒ  s    
z TestExponWeib.test_a_is_1_c_is_1zx, a, c, ref))r   r›  r¶   g=J ‹�Õå?)rû   r›  r¶   g$‰�+€PR>)rµ  r›  r¶   gŠìŸ>ò¤<)r¶  r›  r¶   ggåX.‹X:)r¶  ç       ?r¶   gR„¥y‹¢ó9)r‰   rÕ  rÏ  g'�v˜Rˆ0=)g_ûðQïüšPr¹  rš  gQ:œñêù€<c                 C   s"   t j |||¡}t||dd� d S r  )r2   rÏ  r»   r   )rb   rQ   r,   rK  r9  r»   r.   r.   r/   rR  ¢  s    zTestExponWeib.test_sfzp, a, c, ref))r#  r›  r¶   gñó;y$(@)gMgâñžµ<r›  r¶   gdb÷æq^@)rY  r   rW   g³E�¤­@)g‚vIhÂ%L=rÕ  r‰   g†/ý7ž¡@)rÏ  r¹  rš  gTWìT½°Oc                 C   s"   t j |||¡}t||dd� d S rÐ  )r2   rÏ  rS  r   )rb   r,  r,   rK  r9  rS  r.   r.   r/   rU  Á  s    	zTestExponWeib.test_isfN)rÂ   rÃ   rÄ   rÐ  rÓ  rÔ  rŸ   rÅ   rÆ   rR  rU  r.   r.   r.   r/   rÎ  f  s   þ

þrÎ  c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestFatigueLifec                 C   s    t j dd¡}t|ddd� d S )Nr  r›  ç”Äì‘X·à9ry   rp   )r2   rå   r»   r   rQ  r.   r.   r/   Útest_sf_tailÐ  s    zTestFatigueLife.test_sf_tailc                 C   s$   d}t j |d¡}t|ddd� d S )Nr×  r›  r  ry   rp   )r2   rå   rS  r   )rb   r,  r4  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                   @   sX   e Z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 )Ú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 )Nrj  rl   rÏ  rù  rE  r‰   rø   rW   r´  rx  g•Ö&è.¾gC‚º¨e ¼)r2   rÑ  rY   r   rZ   r�   r†   rF  r`   r   rÒ  rf  r»   rã  Zweibull_max)
rb   rQ   r,   r-   r,  rÃ  rK  ÚlcrD   ré  r.   r.   r/   Útest_with_maxima_distribì  sH    


z$TestWeibull.test_with_maxima_distribrV   r  rO   c                 C   s*   t jj|d |d d|d�}t|dƒ d S )Nr‹  rÀ  r‰   rù  g>²¥ö“ä)r2   rÑ  rW  r   r½  r.   r.   r/   rX  @  s    ÿzTestWeibull.test_delta_cdfc                 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 J ‚||
ksˆJ ‚tjj|ddd	d
�\}}}|dks®J ‚t |||¡}|jdd�}t  |¡t |¡f}t	||ƒ d S )Nl   â£>“ )rW   r  rh   rS   rº   rj  r‰   r§   rµ  r0  r1  r3  rÑ  )
rZ   r   r€   r2   rÑ  r�   r©   r½   rÉ  r   )rb   r‘   rK  rU   rV   r8   r�   Úc2r8  r9  Úc3r;  r<  Zc4r=  r>  r?  r“   r9  r.   r.   r/   Útest_fit_minU  s    
zTestWeibull.test_fit_minr  )rû   r   rÖ  )rv   r¸   g€që®•qH)c                 C   s4   t tj ||¡|dd� t tj ||¡|dd� d S rÐ  )r   r2   rÑ  r»   rS  r  r.   r.   r/   r  s  s    zTestWeibull.test_sf_isfN)rÂ   rÃ   rÄ   r“  rÜ  rŸ   rÅ   rÆ   rX  rß  r  r.   r.   r.   r/   rÚ  å  s   T

ÿrÚ  c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestDweibullc                 C   sR   t j d¡}d|jddd� }tj |¡}tj |¡t  d¡ }t	||dd� d S )Nì   q>¤Ý~). rR   rS   rü  rh   ro   rp   )
rZ   r   r€   rÄ  r2   Údweibullr>   rÑ  rF  r   )rb   r‘   rK  r“   r9  r.   r.   r/   r(  |  s
    zTestDweibull.test_entropyc                 C   s\   t j d¡}d|jddd� }d| ¡  }tj ||¡}dtj ||¡ }t	||dd� d S )Nrá  rR   r   rü  rh   ro   rp   )
rZ   r   r€   rÄ  r/  r2   râ  r»   rÑ  r   )rb   r‘   rK  rQ   r“   r9  r.   r.   r/   rR  ‰  s    zTestDweibull.test_sfN)rÂ   rÃ   rÄ   r(  rR  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 )ÚTestTruncWeibullc                 C   s(   t j ddgddd¡}t|ddgƒ d S )NrO   rl   g)\�Âõ(¼?g×£p=
×ÿ?rm   )r2   Útruncweibull_minrY   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†   rZ   rß   r   r   rË  r.   r.   r/   r“  ›  s    
zTestTruncWeibull.test_logpdfc                 C   s(   t j ddgddd¡}t|ddgƒ d S )Nrm   r  rl   rO   )r2   rä  r¼   r   rË  r.   r.   r/   Útest_ppf_bounds£  s    z TestTruncWeibull.test_ppf_boundsc                 C   s:   g d¢}t j |ddd¡}t j |ddd¡}t||ƒ d S ©N)rm   rO   r#  rh   r¶   r·   r  rl   rm   rÏ  )r2   rä  r¼   r`   r   ©rb   r4  rQ   Zq_outr.   r.   r/   Útest_cdf_to_ppf¨  s    z TestTruncWeibull.test_cdf_to_ppfc                 C   s:   g d¢}t j |ddd¡}t j |ddd¡}t||ƒ d S rç  )r2   rä  rS  r»   r   rè  r.   r.   r/   Útest_sf_to_isf®  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ä  rY   )rQ   r+  rX  r.   r/   Úxnpdf¹  s    z)TestTruncWeibull.test_munp.<locals>.xnpdfr   r   c                    s
   ˆ | dƒS r‹   r.   rŒ   ©rë  r.   r/   rE   À  r:   z,TestTruncWeibull.test_munp.<locals>.<lambda>rW   c                    s
   ˆ | dƒS r  r.   rŒ   rì  r.   r/   rE   Ä  r:   r‰   c                    s
   ˆ | dƒS r˜  r.   rŒ   rì  r.   r/   rE   È  r:   r³   c                    s
   ˆ | dƒS )Nr³   r.   rŒ   rì  r.   r/   rE   Ì  r:   )r2   rä  r¡  r   r   r   )rb   r  rw  Zm1_expectedr´   rˆ  Zm2_expectedZm3Zm3_expectedr‰  Zm4_expectedr.   )r,   r-   rK  rë  r/   Ú	test_munp´  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   rQ  )rZ   rª  rF  r�   r2   rä  r`   r   rf  r¼   r»   rã  rS  )rb   r,   r-   rK  Zx_medr`   rÛ  r¼   r»   ré  rS  r.   r.   r/   Útest_reference_valuesÏ  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 )
Nrj  rl   rm   rÏ  rù  rø   rW   r‰   r´  )rZ   rß   r2   rÑ  rY   rä  r   r†   r`   rf  r»   rã  r�   )rb   rQ   rK  r,   r-   rV   r,  Zp_truncrÃ  Zlp_truncr`   Z	cdf_truncrÛ  Zlc_truncrD   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)r›  r#  r­  rS   )	rZ   r  r2   rä  rY   r`   rÑ  rC  r   )
rb   rK  r,   r-   rQ   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                   @   s6   e Zd Zdd„ Zdd„ Zej dg d¢¡dd„ ƒZd	S )
Ú	TestRdistc                 C   s0   t j}g d¢}t| | |d¡d¡|dd� d S )NrÕ  g     è€@ru   r  )r2   Úrdistr   r`   r¼   )rb   r  rò  r.   r.   r/   Útest_rdist_cdf_gh1285"  s
    ÿzTestRdist.test_rdist_cdf_gh1285c                 C   sN   t  ddd¡}d}tdt |d |d ¡ |d d ¡ t |¡ |¡ƒ d S )Ng®Gáz®ï¿r¦  rR   gš™™™™™@rh   rW   r   )rZ   r  r   r2   rŠ  rY   rò  )rb   rQ   rK  r.   r.   r/   Útest_rdist_beta)  s
    &ÿzTestRdist.test_rdist_betar  ))r]  i  gùçÖÍðß?)rO   éñ   g�;|bZ¹®?)rh   i¹  g¸7¦Âë9)r¸   iU  gÞ»·¬”Sæ/c                 C   s   t tj ||¡|dd� d S rÐ  )r   r2   rò  r»   r  r.   r.   r/   Útest_rdist_sf7  s    
zTestRdist.test_rdist_sfN)	rÂ   rÃ   rÄ   ró  rô  rŸ   rÅ   rÆ   rö  r.   r.   r.   r/   rñ  !  s   þ	rñ  c                   @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚTestTrapezoidc                 C   s`   g d¢}|D ]N}d|dg}t tj |||¡tj ||¡ƒ t tj |||¡tj ||¡ƒ qd S )N)r   r3  rh   r   r   r   )r   r2   r   rY   Útriangr`   )rb   ÚmodesÚmoderQ   r.   r.   r/   Útest_reduces_to_triangE  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   rR   )rZ   r  r   r2   r   rY   r/  r`   rT  r.   r.   r/   Útest_reduces_to_uniformN  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   rW   r   rh   r¸   r?  rt  r  rO   g      ä?r­  r·   rÕ  r‘  g      ï?)r   r2   r   rY   r`   re   r.   r.   r/   Ú
test_casesS  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`  r±   rW   r‰   rW   c                    sT   ˆˆ| d  ˆ| d   ˆˆ  ˆ| d  ˆ | d   ˆˆ     | d  | d  S )NrW   r   r.   )r+  ©r,   r-   rK  Údr'  r.   r/   r¡  n  s     ÿþþz6TestTrapezoid.test_moments_and_entropy.<locals>.momentr   rh   r  r  r   r`  rÁ  r±   r‰   )rZ   rF  r   r2   r   r½   rÈ  r>   )	rb   r¡  r�  rU   rV   r¡  r½   rÈ  r>   r.   rÿ  r/   Útest_moments_and_entropyg  s&    0>ÿÿÿz&TestTrapezoid.test_moments_and_entropyc                 C   sb  t  g d¢¡}t  ddg¡d d …d f }t  g d¢¡}tj |||¡}t  |||¡\}}}t j|j|jd�}t  	|j¡}	t
|	| ¡ | ¡ | ¡ ƒD ] \}
}}}tj |||¡||
< 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 )Nr4  rh   rC  )r{  r#  r·   ræ  ro   r}   rÐ  rÑ  r³   )rZ   r   r2   r   rY   Zbroadcast_arraysÚemptyr›   r�   rÛ   rÚ   Úravelr   rÆ  r  r¨   râ  )rb   rK  r   rQ   r‚  ÚccÚddrL  r“   Úindr¢  rã  Úc1Zd1r.   r.   r/   Útest_trapezoid_vect‚  s"    &z!TestTrapezoid.test_trapezoid_vectc                 C   s0   t  ddd¡}ttj |dd¡tj |¡ƒ d S rü  )rZ   r  r   r2   r?   rY   r/  rT  r.   r.   r/   Ú
test_trapzœ  s    zTestTrapezoid.test_trapzN)	rÂ   rÃ   rÄ   rû  rý  rþ  r  r  r	  r.   r.   r.   r/   r÷  D  s   	r÷  c                   @   s   e Zd Zdd„ ZdS )Ú
TestTriangc                 C   s$  t jdd���  ttj dd¡dƒ ttj dd¡dƒ ttj dd¡dƒ ttj dd¡dƒ ttj dd¡dƒ ttj dd¡d	ƒ ttj dd¡dƒ ttj dd¡d
ƒ ttj dd¡dƒ ttj dd¡dƒ ttj dd¡dƒ ttj dd¡dƒ W d   ƒ n1 �s0    Y  d S )NÚraiser;  r   rl   rh   r  r   rm   rW   r¶   r#  )rZ   r#  r   r2   rø  rY   r`   re   r.   r.   r/   Útest_edge_cases£  s    zTestTriang.test_edge_casesN)rÂ   rÃ   rÄ   r  r.   r.   r.   r/   r
  ¢  s   r
  c                   @   s@   e Zd Zej dddg¡dd„ ƒZej dg d¢¡dd	„ ƒZd
S )ÚTestMaxwellr  )r•  gCõR5&.)rj   g£Ÿ7qÿÿï?c                 C   s   t tj |¡|dd� d S r  )r   r2   Úmaxwellr»   r  r.   r.   r/   rR  »  s    zTestMaxwell.test_sfr-  ))rÖ  g1áúð!@)g    àÿï?g—úí­À£?)g      €<gÇCuìJé!@c                 C   s   t tj |¡|dd� d S rn   )r   r2   r  rS  r.  r.   r.   r/   rU  Ä  s    zTestMaxwell.test_isfNr¼  r.   r.   r.   r/   r  ¶  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   Úmielker¡  rZ   rß   r   rË  )rb   rN   rD   r.   r.   r/   rƒ  Í  s    zTestMielke.test_momentsc                 C   s@   t  ddd¡}d\}}ttj |||| ¡tj |||¡ƒ d S )Nrj   rS   rû   )gš™™™™™@gHáz®G@)rZ   r  r   r2   ÚburrrY   r  )rb   rQ   rN   rD   r.   r.   r/   Útest_burr_equivalenceÔ  s    z TestMielke.test_burr_equivalenceN)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 )
Ú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   rW   )r   r   )rW   rh   rÎ  rh   r  )r   rW   rl   c                 S   s&   g | ]\}}}|j |jg|¢R Ž ‘qS r.   rË  rÌ  r.   r.   r/   r9   ç  r:   z0TestBurr.test_endpoints_7491.<locals>.<listcomp>c                 S   s   g | ]\}}}|‘qS r.   r.   rÏ  r.   r.   r/   r9   è  r:   c                 S   s&   g | ]\}}}|j |jg|¢R Ž ‘qS r.   )r†   r,   rÌ  r.   r.   r/   r9   ë  r:   c                 S   s   g | ]\}}}t  |¡‘qS r.   )rZ   rF  rÏ  r.   r.   r/   r9   ì  r:   )r2   Zfiskr  Úburr12r   )rb   r£   rÑ  rÒ  r.   r.   r/   Útest_endpoints_7491Û  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   )rb   rK  r   r½   ÚvarianceZmean_hcZvariance_hcr.   r.   r/   Útest_burr_stats_9544ï  s
    
zTestBurr.test_burr_stats_9544c           	      C   sF  d\}}t  ||¡  ¡ \}}tt |¡ƒ tt |¡ƒ d\}}t  ||¡  ¡ \}}tt |¡ƒ tt |¡ƒ d\}}t j t g d¢¡||¡\}}}}tt |¡ƒ tt |¡ƒ tt |¡ƒ tt |¡ƒ d\}}t j g d¢||¡\}}}}tt |¡ƒ tt |¡ƒ tt |¡ƒ tt |¡ƒ d\}}t j g d¢||¡\}}}}tt |¡ƒ tt |¡ƒ tt |¡ƒ tt |¡ƒ d\}}t j g d¢||¡\}}}}tt |¡ƒ tt |¡ƒ tt |¡ƒ tt |¡ƒ d\}}t j g d¢||¡\}}}}tt |¡ƒ tt |¡ƒ tt |¡ƒ tt |¡ƒ d S )N)rh   r‰   )rj  r‰   r¦  )r›  r‰   )r  r‰   )r  r‰   )r2   r  r   rZ   r(  rË  Ú_munpr   )	rb   rK  r   r½   r  Úe1Úe2Ze3Ze4r.   r.   r/   Útest_burr_nan_mean_var_9544ú  sL    "z$TestBurr.test_burr_nan_mean_var_9544c                 C   s6   d\}}g d¢}g d¢}t tj |||¡|dd� d S )N)r  rÏ  )rO   rF  rç  r  )g+ðñšÈ&ÿ?gÑI’­$_@gýKš§TÈ@g¡Ø—V³�Arè  rp   )r   r2   r  rS  )rb   rK  r   r4  r9  r.   r.   r/   Útest_burr_isf$  s    zTestBurr.test_burr_isfN)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g¡dd„ ƒZdd„ ZdS )	Ú
TestBurr12zscale, expected)r  gØïdœ~¶)r  gRí†‡ŠT c                 C   s(   t jjdddd|d�}t||dd� d S )Ng     jAg     jAr³   rÀ  rù  ry   rp   )r2   r  rW  r   )rb   rV   rK   r‹  r.   r.   r/   rX  1  s    zTestBurr12.test_delta_cdfc           	      C   sp   d\}}t jd }dt jd d  }t jd d|d   }t j}||||g}t ||¡ d	¡}t||d
d� d S )Nr  r³   r   rW   r;  r‰   r¥  rj  rÐ  rè  rp   )rZ   r[   rÞ   r2   r  r   )	rb   rK  r   r½   rÈ  rÉ  r%  r9  r“   r.   r.   r/   Útest_moments_edgeH  s    
zTestBurr12.test_moments_edgeN)rÂ   rÃ   rÄ   rŸ   rÅ   rÆ   rX  r  r.   r.   r.   r/   r  /  s   ÿÿ
r  c                   @   sÐ  e Zd Zg d¢Zg d¢Zg d¢Ze eeef¡Zg d¢Z	ddddd	ej
gZg d
¢Zeeee	eeƒeƒƒZddddej
dfddej
dfddej
dfgZdd„ Zejjdd„ ƒZej e¡ZdZeej ee¡ƒ�Ze  !e¡Z"W d  ƒ n1 sî0    Y  ej #de"d ¡dd„ ƒZ$ej #de"d ¡dd„ ƒZ%ejjej &d¡ej #de"d ¡d d!„ ƒƒƒZ'd"d#„ Z(ejj)d$d%„ ƒZ*ej #d&e¡d'd(„ ƒZ+ejjej &d¡d)d*„ ƒƒZ,ejj)d+d,„ ƒZ-d-d.„ Z.d/d0„ Z/d1d2„ Z0dS )3ÚTestStudentizedRange)g¸…ë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¾Ÿ/Ý¤@)rb  r¦  r=  r   r‰   rR   r•  éx   )rW   rÀ  r½  r•  )rO   r‰   i)#  gupm1�f?)r   rR   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_ranger`   r   )rb   Úpvkr4  Z
p_expectedr‚  rN   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   )rb   r"  Z
q_expectedr,  r‚  rN   Zres_qr.   r.   r/   Útest_ppf_against_tablesˆ  s    
z,TestStudentizedRange.test_ppf_against_tablesz&data/studentized_range_mpmath_ref.jsonNÚ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_resultr4  rN   r‚  Úexpected_atolÚexpected_rtolr†  )r2   r!  r`   r   ©rb   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!  rY   r   r,  r.   r.   r/   Útest_pdf_against_mpŸ  s    þz(TestStudentizedRange.test_pdf_against_mpz+intermittent RuntimeWarning: invalid value.Zmoment_datac                 C   sz   |d }|d }|d |d |d f}t jdd�� tjj|Ž }W d   ƒ n1 sT0    Y  t|||d |d	 d
� d S )Nr(  r)  r�  rN   r‚  r  r  r*  r+  r†  )rZ   r#  r2   r!  r¡  r   )rb   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‰   rR   r   rz  r   )r   r2   r!  rY   rZ   rß   r   )rb   rN   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 )	Nr0  r   rR   rj   )Ústepr   r]  rp   )rZ   rÛ   r2   r!  r`   rY   r   r   )rb   rN   r‚  rQ   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   sV   |\}}}}t jdd��  tj |||¡}W d   ƒ n1 s>0    Y  t||ƒ d S )Nr  r  )rZ   r#  r2   r!  r`   r   )rb   r4  r4  rN   r‚  Zr_resr“   r.   r.   r/   Útest_cdf_against_rÑ  s    .z'TestStudentizedRange.test_cdf_against_rc                 C   sž   t jdd��, tj ddgddgddg¡}W d   ƒ n1 s>0    Y  t|jd	ƒ tjt	d
d��( tj dddgg d¢¡ W d   ƒ n1 s�0    Y  d S )Nr  r  r   rW   r³   ru   rR   rU  r…  z...could not be broadcast...rÔ   )rR   rU  r  )
rZ   r#  r2   r!  r  r   r  rŸ   r   rÝ   rü  r.   r.   r/   Útest_moment_vectorizationÙ  s
    :z.TestStudentizedRange.test_moment_vectorizationc              	   C   sŠ   t ƒ �^}tjdd��2 | t¡ tj g d¢¡\}}}}W d   ƒ n1 sL0    Y  W d   ƒ n1 sj0    Y  ttj 	||¡ƒ d S )Nr  r  rÒ   )
r   rZ   r#  rH   r   r2   r!  rå  r   Z	_argcheck)rb   r.  rN   r[  r´   r.   r.   r/   Útest_fitstart_validé  s    
T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‰   rR   éŸ† r]  r†  )r2   r!  rY   rZ   rß   r   r`   )rb   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‰   rR   r²   r8  iž† rŽ  r†  )r2   r!  rY   r/  ÚAssertionErrorr   r`   )rb   r“   r9  Z
res_sanityr.   r.   r/   Útest_df_cutoffü  s    
ÿ
ÿz#TestStudentizedRange.test_df_cutoffc                 C   s8   d\}}}t j |||¡}t|ddd� |dks4J ‚d S )N)g¯ÈúaRA@r‰   iS  r   rF  r}   )r2   r!  r»   r   )rb   r4  rN   r‚  r,  r.   r.   r/   Útest_clipping  s    
z"TestStudentizedRange.test_clipping)1rÂ   rÃ   rÄ   Zq05Zq01Zq001rZ   r<  ÚqsZpsrß   ÚvsÚksÚlistrÚ   r$   r£   Zr_datar#  rŸ   rÅ   r�  r%  ÚosÚpathÚdirnamer  Zpath_prefixÚrelative_pathÚopenr%  ÚfileÚjsonr  Zpregenerated_datarÆ   r-  r.  Zxfail_on_32bitr/  r1  rÇ   r3  r5  r6  r7  r:  r<  r=  r.   r.   r.   r/   r  W  sT   û
(








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û‘÷£?rR   Útest_540_567)r  r  gèùÿë2ü¿gk‘÷£?gÜ;úþB.ö?gæ†ÏÍ£hî?gH–ÅŽ*Ê?rT   g£û.£yï?)r   r2   rú  r`   r.   r.   r.   r/   rI    s    ÿÿÿýrI  c                   C   s   t tj dd¡ddƒ d S )Nrm   rW   rh   r½  rÍ  r.   r.   r.   r/   Útest_regression_ticket_1326'  s    rJ  c               	   C   s  t  ddd¡} t jdd��Š dddt  dgdgdgg¡fD ]6}tj | |¡}t|dk ¡ ƒ tt  	|¡ ¡  ƒ q:t  dgdgd	gg¡}tj | |¡}W d   ƒ n1 sª0    Y  tt  	|¡ ¡  ƒ t|d
 dk ¡ ƒ t|d dk ¡ ƒ t|d dk 
¡ ƒ t|d dk 
¡ ƒ d S )Nç      Àr  rP   r  ©r‚  rm   rO  r&  rl   r   r   rW   )rZ   r  r#  r   r2   r'   rY   r   r¾   r(  rË   )rQ   r^  r,  r.   r.   r/   Útest_regression_tukey_lambda,  s    ",rM  zdocstrings strippedrŽ  c                   C   s$   t dtjjvƒ t dtjjv ƒ d S )Nzpdf(x, mu, loc=0, scale=1)zpmf(x,)r   r2   r8  r[  r.   r.   r.   r/   Útest_regression_ticket_1421A  s    rN  c                   C   sÔ  t jdd���° tt  tj dt j¡¡ƒ tt  tj dt j¡¡ƒ tt  tj 	dt j¡¡ƒ tt  tj 
dt j¡¡ƒ tt  tj dt j¡¡ƒ tt  tj dt j¡¡ƒ tt  tj dt j¡¡ƒ tt  tj dt j¡¡ƒ tt  tj t jd¡¡ƒ tt  tj t jd¡¡ƒ tt  tj 	t jd¡¡ƒ tt  tj 
t jd¡¡ƒ tt  tj t jd¡¡ƒ tt  tj t jd¡¡ƒ tt  tj t jd¡¡ƒ tt  tj t jd¡¡ƒ W d   ƒ n1 �sÆ0    Y  d S )Nr  r  r   rh   )rZ   r#  r   r(  r2   r¬  rf  rÞ   r`   rã  r»   rY   r†   r¼   rS  rD  r  rc  r.   r.   r.   r/   Ú test_nan_arguments_gh_issue_1362G  s"    rO  c                  C   sj  t j d¡ t  g d¢¡} tjj| d | d | d dd�}t jdd	��& t  tjj|d
d�¡}W d   ƒ n1 sr0    Y  t	|| dd� t  tjj|ddd�¡}t	|| dd� t  tjj|ddd�¡}t	|| dd� t  tjj|ddd�¡}t	|| dd� t j d¡ d}d}tj
j|ddd�}t  tj
j||d�¡}t  |t  || d  ¡ ¡g¡}t	||dd� d S )Ni.  )r#  rm   rh   r   r   rW   rS   rù   r  rL  rm   r§   r  rh   )rœ   rU   r#  )rž   rU   rb  r·   rl   r³   )rZ   r   rƒ   r   r2   rì   r�   r#  r©   r   rú  rª  r½   )ÚtruerQ   rD  rU   r�   rK   r.   r.   r/   Útest_frozen_fit_ticket_1536\  s&     4 rQ  c                  C   s<   t j d¡ tjjdd�} tj | ¡}d}t||dd� d S )Niñû	 rS   rù   )g
×£p=
§?gƒÀÊ¡Eò?r   r  )rZ   r   rƒ   r2   r®  r�   r©   r   )r�   rD  rK   r.   r.   r/   Útest_regression_ticket_1530x  s
    rR  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¹   rz  )r¦  g   Õ6ÒAr  r}   rC  )rZ   r   rƒ   ré  r2   r®  r©   r   )rQ   ÚoffsetrU   rV   r.   r.   r/   Útest_gh_pr_4806�  s    rT  c                  C   s„   t jj ddd�} dtjd d ddg}t| |dd� t jj d	dd�} g d
¢}t| |dd� t jj ddd�} g d¢}t| |dd� d S )Nr   rÐ  rÑ  rW   r‰   rý  rR   r  g
×£p=
	@)r   gz5¯™v‘›?r   gˆ‰RTí¼ì¿gìQ¸…ëÁ?)r   gNºgãá @r   g´ôJFÙ»›¿)r2   r'   rZ   r[   r   )r„  rK   r.   r.   r/   Ú"test_tukeylambda_stats_ticket_1545‹  s    rU  c                   C   s   t t tj dd¡¡ƒ d S )Nrk  r+  )r   rZ   rË  r2   r8  rc  r.   r.   r.   r/   Útest_poisson_logpmf_ticket_1436Ÿ  s    rV  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   rA  )rl   )gUUUUUUå?r�  g^cÿQâ¿g333333ã¿rÐ  rÑ  N)r2   r®  r   )rÕ  r,   Z
exact_mvskrÐ  r.   r.   r/   Útest_powerlaw_stats£  s    ÿrW  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    rY  c                  C   sh   t j dd¡} t| dƒ t j dg d¢¡} t| tjddgƒ t j dg d¢¡} t| tjdtj gƒ d S )Nr   r   rm   )r#  r  rj  r  )r2   rw  r†   r   rY   rZ   rß   rX  r.   r.   r/   Útest_exponpow_edgeÏ  s    
rZ  c                  C   s   t j ddd¡} t| dƒ d S )Nr   r   r  )r2   ÚgengammarY   r   rX  r.   r.   r/   Útest_gengamma_edgeÛ  s    r\  za, c, ref, tol))g    `ã6Ar   g2jŒñ!@ro   )r´  r   g¿’g–úA@ro   )r`  r   r¾  ro   )rî  r   gÉ ´#°@ry   )g    `ãFArJ  g´I¬~‰mÀro   )gæl$W×Þ}Lr  gž·.­Iå#Uro   c                 C   s   t tj | |¡||d� d S rÈ  )r   r2   r[  r>   )r,   rK  r9  rÓ  r.   r.   r/   Útest_gengamma_extreme_entropyá  s    r]  c                  C   s@   t j ddd¡} | dksJ ‚t j ddd¡}|tj ks<J ‚d S )Nr   r   r±   rm   )r2   r[  rY   r†   rZ   rß   )r,  r’  r.   r.   r/   Ú!test_gengamma_endpoint_with_neg_cõ  s    r^  c                  C   s8   t j ddd¡} t| dƒ t j ddd¡} t| dƒ d S )NrÈ   r+  r  g—óîŸ¼œú>rR   gÇqÇqŒ?)r2   r[  r  r   rX  r.   r.   r/   Útest_gengamma_munpü  s    
r_  c               	   C   sˆ   t  g d¢¡} t jdd��Z tƒ �4}| td¡ | td¡ tj 	| ¡ W d   ƒ n1 s\0    Y  W d   ƒ n1 sz0    Y  d S )N)0g>öŠÙX*È¿gPixÌ#Ä?gÍ=îÇ?g&—^“ÜÑ?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*…Š»‹ÁË¿r  r  z:The maximum number of subdivisions .50. has been achieved.z-floating point number truncated to an integer)
rZ   r   r#  r   rH   r   r0  r2   ri  r©   )r   r.  r.   r.   r/   Útest_ksone_fit_freeze  s    ÿÿÿr`  c                  C   sœ   t  ttdddƒƒ¡ } g d¢}tt ¡  | ¡|dd� tt ¡  | d ¡j|dd� tj | d ¡d	 j	}t  
tj | ¡tj | ¡ ¡}t||d	d� d S )
Nr   r   r³   )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ºÀr  r}   y        ›+¡†›„=y        »½×Ùß|Û=rF  )rZ   r¨   rA  r¤  r   r2   rú  rf  ÚrealÚimagr�   r†   )rQ   rK   ZderivZderiv_expectedr.   r.   r/   Útest_norm_logcdf  s    	rc  c                  C   sT   t  g d¢¡} t  g d¢¡}tj | ¡}t||dd� tj |¡}t|| dd� d S )N)rv   r  rh   rO   rj   rÖ  )gÖ~½äV1ï?r  gÔÝûba"Ä?gÜ„4àÅ¥Y?r  g$ï%ü+I„rF  rp   ry   )rZ   r   r2   rê   r`   r   r¼   )rQ   rK   rÀ  rL  r.   r.   r/   Útest_levy_cdf_ppf6  s    rd  c                  C   s:   t  g d¢¡} t  g d¢¡}tj | ¡}t||dd� d S )N)r¤  r¸  g‚MÇraB3Grí  )gæep«ˆ[>g}XEÁQ=gÇÑ­”EG<g?_Ú%~±¸:rè  rp   )rZ   r   r2   rê   r»   r   ©rQ   rK   rÀ  r.   r.   r/   Útest_levy_sfN  s    rf  zp, expected_isf))rç  gjÖ1eµ2H)r  g¥¼ãéž6C)r¯  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ê   rS  r   )r,  Zexpected_isfrQ   r.   r.   r/   Útest_levy_isfe  s    rg  c                  C   s:   t  g d¢¡} t  g d¢¡}tj | ¡}t||dd� d S )N)gü©ñÒMb�¿ç{®Gáz„¿g{®Gázt¿gú~j¼t“X¿)g#¤]ŠËÿç<g±Oèul2;gÞ¢¨ò§Ø§6gÌ…7=“ó�!ry   rp   )rZ   r   r2   rë   r»   r   re  r.   r.   r/   Útest_levy_l_sfq  s    ri  c                  C   s8   t  g d¢¡} tj | ¡}tj |¡}t|| dd� d S )N)g [n‡ë<r#  r¦  rÏ  rp   )rZ   r   r2   rë   rS  r»   r   )r,  rQ   r4  r.   r.   r/   Útest_levy_l_isf}  s    rj  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 )Nrb  iÑÜ i¸¨  iõ  )g      c@g      h@g=
×£p=î?ç®Gázî?)g      c@g     €h@rš  rS   rÀ  r   )r   r2   r�  rd  r¼   r.   r.   r.   r/   Útest_hypergeom_interval_1802…  s    ÿÿÿrl  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¹   rO   rD  ru   ©ÚnumrW   r‰   r  rV  r³   rh   rT   rl   r„  rP  rù   rÁ  rù  )rZ   r   rƒ   r  r/  rà   r2   rÓ  rY   r�   r`   r¼   r>   r©   rÙ  r  r4  rÏ  r[  rŒ   r.   r.   r/   Útest_distribution_too_many_args”  s8    ro  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 )	Nr•  r�  rt  rW   g�ºòYÝZ@rÖ  r   r  )r2   Úncx2r`   rZ   rÛ   Z_cdfvecr   rÁ  r.   r.   r/   Útest_ncx2_tails_ticket_955¼  s    rq  c               	   C   sà   t  ¡ �R t  dt¡ ttj dt 	dd¡d¡dƒ tj 
dt 	dd¡d¡} W d   ƒ n1 s`0    Y  tt | ¡ ¡ ƒ t  ¡ �H t  dt¡ ttj ddd	¡dƒ ttj 
ddd	¡d
ƒ W d   ƒ n1 sÒ0    Y  d S )Nr)  r   iT  i^  rW   r   r]  r‰   r  gs¸¹Âq6²À)r-  r.  r/  r0  r   r2   rp  rY   rZ   rÛ   r†   r   r1  r¾   r   )Zlogvalr.   r.   r/   Útest_ncx2_tails_pdfÄ  s    
6
rr  zmethod, expectedr`   g´‹—–u%>g	;ÃQñž÷=rY   g<àÑxºŸ€>gR‰z†\R>r†   gÊŽK$êÎ/ÀgëÅÔ†Xâ1Àr¼   gf´©Hòu@ge°:˜@c                 C   s,   t tj| ƒdddgdd�}t||dd� d S )NrO   r   r³   rR   )r³  r[  ro   r}   )rð   r2   rp  r   )r2  rK   r´  r.   r.   r/   Útest_ncx2_zero_ncÕ  s    rs  c                  C   s4   t jjdddd�} t jjddd�}t| |dd� d S )NrR   r   r   )r[  r³  r|   )r[  r|   ro   r}   )r2   rp  r�   rÎ  r   )r´  rK   r.   r.   r/   Útest_ncx2_zero_nc_rvsé  s    rt  c                  C   s,   dt  dd¡ } ttjjdd| d�dƒ d S )NrR   ru   r¦  r   ©r[  r³  r   )rZ   rÛ   r   r2   rp  r`   )r³  r.   r.   r/   Útest_ncx2_gh12731ñ  s    rv  c                  C   sB   t  g d¢¡} d\}}tjj| ||d�}g d¢}t||dd� d S )N)gÑŽ]š	û@gj–Ô†%@gb	ªy/7@g†òô ÌùH@güI‚çZ@g»”Xûl@g'/2?8@gƒÝ°m±Ð�@gU‡Ü¢@gy]¿`'ƒ³@gäÉÝÅ@g*©Ð\¤Ö@g×4ï8ñcè@)r•  g¿hØ ?8@ru  )r  r  r  r  r  g›ÿÿÿÿÿï?gy[qÕDå?rm   rm   rm   rm   rm   rm   rY  r}   )rZ   r   r2   rp  r»   r   )rQ   Únur^  r»   Zsf_expectedr.   r.   r/   Útest_ncx2_gh8665÷  s
    
rx  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]  rm  rW   r³   r]  r}   )	rZ   r  r2   rp  r¼   rY   rú  rª  r   )r[  r³  rQ   Zncx2_pdfZgauss_approxr.   r.   r/   Útest_ncx2_gh11777   s    ÿ&ry  zx, c, expected))rW   r   g|1qý�Ö?)rW   rW   gè¸×Î~â?)r–  r   çV<‰3Të1=)ç €à7yÃQCr   çu	ÀlY‚<)r–  g   èvHGBg^b»!*í1=)r‘  r+  gSžôÓûÿï?c                 C   s   t j | |¡}t||dƒ d S ©Nrï  )r2   Z
foldcauchyr»   r   ©rQ   rK  rK   r»   r.   r.   r/   Útest_foldcauchy_sf/   s    r  r�  ))rW   gó�äÒ?)r–  rz  )r{  r|  )g�6“Þ°Pg«Àã8÷R#/c                 C   s   t j | ¡}t||dƒ d S r}  )r2   r(  r»   r   )rQ   rK   r»   r.   r.   r/   Útest_halfcauchy_sf=   s    r€  zp, expected))gõ…�óþÿï?g¯*wÓ„Zª>)ç333333ï?gþN9Õ¤?)rh   r  )rj   g8<,ÔO@)rè  g‹úÄ:óÌB)gl¹ ×¶w/gÁÀMb}[Pc                 C   s   t j | ¡}t||ƒ d S rd   )r2   r(  rS  r   )r,  rK   rQ   r.   r.   r/   Útest_halfcauchy_isfI   s    r‚  c                  C   s"   t jddd�} t|  d¡dƒ d S )Nr   r   rù  )r2   r  r   r`   rù  r.   r.   r/   Útest_foldnorm_zeroU   s    rƒ  ))rW   r   gw½o{Ä?)r•  r   góG§d-P/)rR   rý   goèfÿÿï?)r�  rý   g±Oèul";c                 C   s   t j | |¡}t||dƒ d S )Nrè  )r2   r  r»   r   r~  r.   r.   r/   Útest_foldnorm_sfi   s    r„  c                  C   s„   t j  g d¢dd¡} t j  ddgdd¡}tdd„ |D ƒƒ}t|| ƒ t j  g d¢¡} t j  dd	g¡}td
d„ |D ƒƒ}t|| ƒ d S )N)rm   rh   r  r   rh   r  c                 s   s   | ]}t jt j|f V  qd S rd   ©rZ   r  rÞ   r   r.   r.   r/   r
  x   r:   z-test_stats_shapes_argcheck.<locals>.<genexpr>)rW   rÅ  r±   rW   rÅ  c                 s   s   | ]}t j|t jf V  qd S rd   r…  r   r.   r.   r/   r
  ~   r:   )r2   ræ   Útupler   rì   )Zmv3Zmv2Zmv2_augmentedr.   r.   r/   Útest_stats_shapes_argchecks   s    
r‡  c                   @   s   e Zd Zdd„ ZdS )Ú
_distr_genc                 C   s   dS ©Nrz  r.   ©rb   rQ   r,   r.   r.   r/   Ú_pdf‰   s    z_distr_gen._pdfN©rÂ   rÃ   rÄ   r‹  r.   r.   r.   r/   rˆ  ˆ   s   rˆ  c                   @   s   e Zd Zdd„ ZdS )Ú_distr2_genc                 C   s   d| | S r‰  r.   rŠ  r.   r.   r/   Ú_cdfŽ   s    z_distr2_gen._cdfN)rÂ   rÃ   rÄ   rŽ  r.   r.   r.   r/   r�  �   s   r�  c                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú_distr3_genc                 C   s   || S rd   r.   ©rb   rQ   r,   r-   r.   r.   r/   r‹  “   s    z_distr3_gen._pdfc                 C   s   d| | S r‰  r.   rŠ  r.   r.   r/   rŽ  –   s    z_distr3_gen._cdfN©rÂ   rÃ   rÄ   r‹  rŽ  r.   r.   r.   r/   r�  ’   s   r�  c                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú_distr6_genc                 C   s   || | S rd   r.   r�  r.   r.   r/   r‹  ž   s    z_distr6_gen._pdfc                 C   s   d| | S r‰  r.   r�  r.   r.   r/   rŽ  ¡   s    z_distr6_gen._cdfNr‘  r.   r.   r.   r/   r’  œ   s   r’  c                   @   s”   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#S )$ÚTestSubclassingExplicitShapesc                 C   s$   t ddd�}t|jddd�dƒ d S )NÚdummyr,   ©rñ  rÖ   r   r�  rz  ©rˆ  r   rY   ©rb   Údummy_distrr.   r.   r/   Útest_correct_shapes¨   s    z1TestSubclassingExplicitShapes.test_correct_shapesc                 C   s,   t ddd�}tt|jdfi tdd�¤Ž d S )Nr”  ÚAr•  r   r�  )rˆ  r/  rà   rY   rÙ   r—  r.   r.   r/   Útest_wrong_shapes_1¬   s    z1TestSubclassingExplicitShapes.test_wrong_shapes_1c                 C   s4   t ddd�}tdddd�}tt|jdfi |¤Ž d S )Nr”  za, b, cr•  r   rW   r‰   rX  )rˆ  rÙ   r/  rà   rY   )rb   r˜  rñ   r.   r.   r/   Útest_wrong_shapes_2°   s    z1TestSubclassingExplicitShapes.test_wrong_shapes_2c                 C   s"   t ddd�}tttfi |¤Ž d S )Nr”  rz  r•  )rÙ   r/  rà   rˆ  ©rb   rñ   r.   r.   r/   Útest_shapes_stringµ   s    z0TestSubclassingExplicitShapes.test_shapes_stringc                 C   s"   t ddd�}tttfi |¤Ž d S )Nr”  z(!)r•  ©rÙ   r/  ÚSyntaxErrorrˆ  r�  r.   r.   r/   Útest_shapes_identifiers_1º   s    z7TestSubclassingExplicitShapes.test_shapes_identifiers_1c                 C   s"   t ddd�}tttfi |¤Ž d S )Nr”  Z4chanr•  rŸ  r�  r.   r.   r/   Útest_shapes_identifiers_2¿   s    z7TestSubclassingExplicitShapes.test_shapes_identifiers_2c                 C   s"   t ddd�}tttfi |¤Ž d S )Nr”  zm(fti)r•  rŸ  r�  r.   r.   r/   Útest_shapes_identifiers_3Ã   s    z7TestSubclassingExplicitShapes.test_shapes_identifiers_3c                 C   s"   t ddd�}tttfi |¤Ž d S )Nr”  za=2r•  rŸ  r�  r.   r.   r/   Ú"test_shapes_identifiers_nodefaultsÇ   s    z@TestSubclassingExplicitShapes.test_shapes_identifiers_nodefaultsc                 C   s"   t ddd�}tttfi |¤Ž d S )Nr”  z*argsr•  rŸ  r�  r.   r.   r/   Útest_shapes_argsË   s    z.TestSubclassingExplicitShapes.test_shapes_argsc                 C   s"   t ddd�}tttfi |¤Ž d S )Nr”  z**kwargsr•  rŸ  r�  r.   r.   r/   Útest_shapes_kwargsÏ   s    z0TestSubclassingExplicitShapes.test_shapes_kwargsc                 C   s"   t ddd�}tttfi |¤Ž d S )Nr”  za, b, c, lambdar•  rŸ  r�  r.   r.   r/   Útest_shapes_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ú  r‹  rŠ  r.   r.   r/   r‹  Û   s    zKTestSubclassingExplicitShapes.test_shapes_signature.<locals>._dist_gen._pdfNrŒ  r.   r.   r.   r/   Ú	_dist_genÚ   s   r©  r,   ©rÖ   rh   rW   r�  ©r2   r<   r   rY   rú  ©rb   r©  r8   r.   r.   r/   Útest_shapes_signatureØ   s    
z3TestSubclassingExplicitShapes.test_shapes_signaturec                 C   s>   G dd„ dt jƒ}|dd�}tt|jdfi tddd�¤Ž d S )	Nc                   @   s   e Zd Zdd„ ZdS )zSTestSubclassingExplicitShapes.test_shapes_signature_inconsistent.<locals>._dist_genc                 S   s   t j |¡| S rd   r¨  rŠ  r.   r.   r/   r‹  ä   s    zXTestSubclassingExplicitShapes.test_shapes_signature_inconsistent.<locals>._dist_gen._pdfNrŒ  r.   r.   r.   r/   r©  ã   s   r©  r™  rª  rh   r   rW   rÁ  )r2   r<   r/  rà   rY   rÙ   r¬  r.   r.   r/   Ú"test_shapes_signature_inconsistentá   s    
z@TestSubclassingExplicitShapes.test_shapes_signature_inconsistentc                 C   sz   G dd„ dt jƒ}|dd�}t|jddd�t j d¡d ƒ t| dd¡t j d¡d ƒ tt|jdfi tdd�¤Ž d S )	Nc                   @   s   e Zd Zdd„ ZdS )z?TestSubclassingExplicitShapes.test_star_args.<locals>._dist_genc                 W   s   |d }t j |¡| S ©Nr   r¨  )rb   rQ   rò   Úextra_kwargr.   r.   r/   r‹  î   s    zDTestSubclassingExplicitShapes.test_star_args.<locals>._dist_gen._pdfNrŒ  r.   r.   r.   r/   r©  í   s   r©  r°  rª  rh   é!   ©r°  )Zxxx)r2   r<   r   rY   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¨  )rb   rQ   rS  rò   r°  r.   r.   r/   r‹  û   s    zFTestSubclassingExplicitShapes.test_star_args_2.<locals>._dist_gen._pdfNrŒ  r.   r.   r.   r/   r©  ú   s   r©  zoffset, extra_kwargrª  rh   éo   r±  )rS  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ú  r‹  )rb   rQ   rò   Úkwargsr°  r.   r.   r/   r‹  	!  s    zGTestSubclassingExplicitShapes.test_extra_kwarg.<locals>._distr_gen._pdfNrŒ  r.   r.   r.   r/   rˆ  !  s   rˆ  r°  rª  r   r‰   r²  r«  )rb   rˆ  r8   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 )zITestSubclassingExplicitShapes.test_shapes_empty_string.<locals>._dist_genc                 S   s   t j |¡S rd   )r2   rú  rY   rT  r.   r.   r/   r‹  !  s    zNTestSubclassingExplicitShapes.test_shapes_empty_string.<locals>._dist_gen._pdfNrŒ  r.   r.   r.   r/   r©  !  s   r©  Ú rª  rh   r«  r¬  r.   r.   r/   Útest_shapes_empty_string!  s    
z6TestSubclassingExplicitShapes.test_shapes_empty_stringN)rÂ   rÃ   rÄ   r™  r›  rœ  rž  r¡  r¢  r£  r¤  r¥  r¦  r§  r­  r®  r³  rµ  r¸  rº  r.   r.   r.   r/   r“  ¥   s"   		r“  c                   @   sl   e Zd Zdd„ Zdd„ Zejjedd�dd„ ƒZ	ejjedd�d	d
„ ƒZ
dd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTestSubclassingNoShapesc                 C   s"   t dd�}t|jddd�dƒ d S )Nr”  ©rñ  r   r�  rz  r–  r—  r.   r.   r/   Útest_only__pdf !  s    
z&TestSubclassingNoShapes.test_only__pdfc                 C   s"   t dd�}t|jddd�dƒ d S )Nr”  r¼  r   r�  )r�  r   rY   r—  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 )Nr”  r¼  r   r,   zlogpdf\(x, a, loc=0, scale=1\))	rˆ  r   ÚnumargsrÖ   ÚreÚfindallr[  r   r×   ©rb   r˜  r“   r.   r.   r/   Útest_signature_inspection)!  s    
ÿz1TestSubclassingNoShapes.test_signature_inspectionc                 C   sD   t dd�}t|jdƒ t|jdƒ t d|j¡}tt|ƒdkƒ d S )Nr”  r¼  rW   r™  z!logpdf\(x, a, b, loc=0, scale=1\)r   )	r’  r   rÀ  rÖ   rÁ  rÂ  r[  r   r×   rÃ  r.   r.   r/   Útest_signature_inspection_2args4!  s    
ÿz7TestSubclassingNoShapes.test_signature_inspection_2argsc                 C   s   t ttdd� d S )Nr”  r¼  )r/  rà   r�  re   r.   r.   r/   Ú0test_signature_inspection_2args_incorrect_shapes>!  s    zHTestSubclassingNoShapes.test_signature_inspection_2args_incorrect_shapesc                 C   s.   G dd„ dt jƒ}tt|fi tdd�¤Ž d S )Nc                   @   s   e Zd Zddd„ZdS )z>TestSubclassingNoShapes.test_defaults_raise.<locals>._dist_genrz  c                 S   s   dS r‰  r.   rŠ  r.   r.   r/   r‹  E!  s    zCTestSubclassingNoShapes.test_defaults_raise.<locals>._dist_gen._pdfN)rz  rŒ  r.   r.   r.   r/   r©  D!  s   r©  r”  r¼  ©r2   r<   r/  rà   rÙ   ©rb   r©  r.   r.   r/   Útest_defaults_raiseB!  s    z+TestSubclassingNoShapes.test_defaults_raisec                 C   s.   G dd„ dt jƒ}tt|fi tdd�¤Ž d S )Nc                   @   s   e Zd Zdd„ ZdS )z>TestSubclassingNoShapes.test_starargs_raise.<locals>._dist_genc                 W   s   dS r‰  r.   )rb   rQ   r,   rò   r.   r.   r/   r‹  L!  s    zCTestSubclassingNoShapes.test_starargs_raise.<locals>._dist_gen._pdfNrŒ  r.   r.   r.   r/   r©  K!  s   r©  r”  r¼  rÇ  rÈ  r.   r.   r/   Útest_starargs_raiseI!  s    z+TestSubclassingNoShapes.test_starargs_raisec                 C   s.   G dd„ dt jƒ}tt|fi tdd�¤Ž d S )Nc                   @   s   e Zd Zdd„ ZdS )z<TestSubclassingNoShapes.test_kwargs_raise.<locals>._dist_genc                 [   s   dS r‰  r.   )rb   rQ   r,   r·  r.   r.   r/   r‹  S!  s    zATestSubclassingNoShapes.test_kwargs_raise.<locals>._dist_gen._pdfNrŒ  r.   r.   r.   r/   r©  R!  s   r©  r”  r¼  rÇ  rÈ  r.   r.   r/   Útest_kwargs_raiseP!  s    z)TestSubclassingNoShapes.test_kwargs_raiseN)rÂ   rÃ   rÄ   r½  r¾  rŸ   rÅ   r¡  ÚDOCSTRINGS_STRIPPEDrÄ  rÅ  rÆ  rÉ  rÊ  rË  r.   r.   r.   r/   r»  !  s   


	r»  r¿  c                  C   sT   g d¢} t jD ]@}tt |ƒ}t|t jt jfƒr| D ]}tt ||j	¡d u ƒ q2qd S )N)z,\s*,z\(\s*,z^\s*:)
r2   rG   rð   r  r;   r<   r   rÁ  Úsearchr[  )ZbadonesÚdistnamer8   Úregexr.   r.   r/   rV  X!  s    

rV  c                   C   s4   t tj tjdd¡dƒ t tj tjdd¡dƒ d S )NrR   rU  r   rÀ  rO   r   )r   r2   ry  r»   rZ   rß   rp  rŽ  r.   r.   r.   r/   Útest_infinite_inputb!  s    rÐ  c                  C   s&   t j t j dd¡d¡} t| dƒ d S r  )r2   Úlomaxr¼   r`   r   rX  r.   r.   r/   Útest_lomax_accuracyg!  s    rÒ  c                  C   s&   t j t j dd¡d¡} t| dƒ d S r  )r2   ru  r¼   r`   r   rX  r.   r.   r/   Útest_truncexpon_accuracym!  s    rÓ  c                  C   s*   t j t j dd¡d¡} t| ddd� d S )NrŒ  r   rn  rý   r  )r2   rï   rS  r»   r   rX  r.   r.   r/   Útest_rayleigh_accuracys!  s    rÔ  c                  C   sˆ   t jdd��h} t  d¡ tj dd¡ tj dd¡ tj dd¡ tj t	j
 d¡ t| ƒ}t|dƒ W d  ƒ n1 sz0    Y  dS )zregression test for gh-6219T)r'  Úalwaysrh   r   rm   N)r-  r.  r/  r2   rX  r`   rY   r¼   r†   rZ   rß   r×   r   )r	  Znumber_of_warnings_thrownr.   r.   r/   Ú test_genextreme_give_no_warningsy!  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â?rO  rW   r   rè  rp   r   r  r&  rR   rù  r‰   r|  r…  rU  )r2   rX  r>   r   r   rZ   rF  )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 )	Nr˜   r“  g'¡Ìbü%4gìQ¸…ë@r‘  g¼‰Ø—²Òœ;r   g‹¸. ×l6?)r2   rX  r»   r   rS  )rQ   rD   rä  r.   r.   r/   Útest_genextreme_sf_isfž!  s    




rØ  c                  C   s"   d} t j | dd¡}t|dƒ d S )Nr7  rW   r‰   g�H&‰Ì8>)r2   r  r¼   r   )Zprobr©  r.   r.   r/   Útest_burr12_ppf_small_argÊ!  s    	rÙ  c                  C   s6  t  ddd¡dd… } tjj| ddd�}t  g d	¢¡}t||d
d� tjj| ddd�}t  g d¢¡}t||d
d� tjj| ddddd�}t  g d¢¡}t||d
d� tjj| ddd�}t  g d¢¡}t||d
d� tjj| ddd�}t  g d¢¡}t||d
d� tjj| ddddd�}t  g d¢¡}t||d
d� dS )zµ
    All values are calculated using the independent implementation of the
    ROOT framework (see https://root.cern.ch/).
    Corresponding ROOT code is given in the comments.
    rK  r  r  Nr±   r  rl   )rŠ  r�  )gCÐ,d	Æ”?gH¼áã¸˜?g5”Òõé�?gM"M#w¢?gÉ«sÈ^§?gÇ� @†®?g—¦­¶Æ´?gÝ@�wòé½?çÉ«sÈ^Ç?çÌ|?q Ñ?gó ùõCÓ?rÛ  rÚ  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‡?çúuL‚Üê–?ç“ �T)«?çcAJÀ?çñGT¨nÎ?çôR±1¯#Ö?gúA]¤PÙ?rà  rß  rÞ  rÝ  gvÊþÔÓ¢‘?gK«Öq?gŽú§øL?gÒ
	¡N<!?gþÐAÎwð>rh   )rŠ  r�  rU   rV   )g=aO}€?gªI8ãê†?g#‡ãTÆ‘?çëaèW)›?çÉÇ“I²³¥?ç³æ
J°?çE?dÛ³ø¶?çñGT¨n¾?ç¥ØÑ8ÔïÂ?çôR±1¯#Æ?ç‡kµ‡½PÈ?g(*ÖTÉ?rè  rç  ræ  rå  rä  rã  râ  rá  )gåD»
)¿?g:3PÿÀ?g¡¼�£9²Â?g?S¯[ÆÄ?rÚ  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Þ«Íÿï?ç¼#cµùÿï?)gÃó%Žr?gc@‰àêv?ghtjÛî}?g³(Ë”ÿ^„?gHKŠ4–U�?rÜ  çÄŸ—@ _¤?çy›’}Dµ?ç„‚R´r/Æ?ç¨ýÖN”„Ô?çYj½ßhGà?çÈa0…Læ?ç4fõë?çÍ<¹¦@æí?ç@¢CàHï?g	Þ�FÎï?g5²+-#õï?g¨§�Àþï?g?q ý¾ÿï?ré  )g}'Áv‹’?rÜ  g*VÂÜî�?rê  g´r/0+­?rë  g[Ñæ8·	¿?rì  gÎ¥¸ªì»Î?rí  gÇõïúÌYÚ?rî  g¸å#)éaã?rï  g?«Ì”Ößè?rð  g‡ú]Øš­ì?rñ  g|c Ž½î?rò  )rZ   r  r2   ÚcrystalballrY   r   r   r`   )r&  Z
calculatedrK   r.   r.   r/   Útest_crystalball_functionØ!  s&    rô  c                  C   sœ  t  g d¢¡} t  g d¢¡}t  g d¢¡}tj d| |¡}t||dd� t  g d¢¡}t  dd	t jd
dg¡}|| }tj d| |¡}t||dd� t  t jt jt jddg¡}|| }tj d| |¡}	t||	dd� t  t jt jt jt jdg¡}|| }
tj d| |¡}t|
|dd� t  t jt jt jt jdg¡}|| }tj d| |¡}t||dd� t  t jt jt jt jdg¡}|| }tj d| |¡}t||dd� dS )zg
    All values are calculated using the pdf formula and the integrate function
    of Mathematica
    )rl   r  rÏ  rl   rÏ  )rÏ  rÏ  rl   rÄ  rn  )r  r  r  r  r  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‡†Å(@rW   g?Ò–)œ“­¿r‰   gMg'ƒ#@r³   g('ÚUHùô¿ru   N)rZ   r   r2   ró  r  r   rß   )rŠ  r�  Zexpected_0th_momentZcalculated_0th_momentrú  r,   Zexpected_1th_momentZcalculated_1th_momentZexpected_2th_momentZcalculated_2th_momentZexpected_3th_momentZcalculated_3th_momentZexpected_4th_momentZcalculated_4th_momentZexpected_5th_momentZcalculated_5th_momentr.   r.   r/   Ú!test_crystalball_function_moments"  s4    rõ  c                  C   sR   t  dd¡} |  ¡ }d\}}}t |||¡}tt|  |¡ƒ|ƒ}t||dd� d S )NrW   r‰   )ià±ÿÿrø   r!  r×  rp   )	r2   ró  r>   rZ   r  r   r   rY   r   )Úcbr•  r¡  r¢  rŸ  rQ   r«  r.   r.   r/   Útest_crystalball_entropyM"  s    
r÷  c                  C   s\   ddd„} t  g d¢¡}tjj|d| d�\}}}t|ddd	� |dksJJ ‚t|d
dd	� dS )a?  
    Test fitting invweibull to data.

    Here is a the same calculation in R:

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

    r.   r   c                 S   s   t | |||ddd�S )NrY  )rò   ÚdispZxtolZftol)r"   )rÍ   Úx0rò   rø  r.   r.   r/   rB  o"  s    z&test_invweibull_fit.<locals>.optimizer)r   r­  rW   r›  r€  r‰   r£  r³   ru   rÀ  rR   r  é@   éc   )r�   rB  g`Ç•Æð?r“  rp   g¸ [–¯Ë@N)r.   r   )rZ   r   r2   rè   r©   r   )rB  rQ   rK  rU   rV   r.   r.   r/   Útest_invweibull_fitX"  s    
rü  ))r‰   rj  g7Ô¸ŒƒhÆ?)rw   rj  gz“ªŸ]rç>)rw   g     €"@goB±ôÚ±—9)r¤  rj  g$‰ë=cC;c                 C   s    t j | |¡}t||dd� d S rn   )r2   rè   r»   r   )rQ   rK  rK   rÊ  r.   r.   r/   Útest_invweibull_sfz"  s    rý  zp, c, expected)rh   r›  g…ö9°¾†ò?)g�e»ºŒ«K<ru   gàì«‹÷¨@c                 C   s    t j | |¡}t||dd� d S rn   )r2   rè   rS  r   )r,  rK  rK   rÊ  r.   r.   r/   Útest_invweibull_isf…"  s    rþ  z	df1,df2,x)r¦   rt  r  ri  r³   rU  rP  rí  rþ  c                 C   sh   d}t j || |¡}t j || ||¡}t||dd� t j || |¡}t j || ||¡}t||dd� d S )Nr   rè  rp   rŽ  )r2   rÐ  r`   r[  r   rY   )Zdf1Zdf2rQ   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 )NrW   rÁ  r³   g     `E@rè  rp   )r2   r[  rÈ  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 )Nr•  rÁ  r±  gffffff>@g&4I,)÷ï?)Zdecimals)r2   r[  r`   r   rZ   Ú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                     sx   t  ddd¡} d| d< d‰ t t¡�6 tjj| gˆ ¢R Ž }‡ fdd„| D ƒ}W d   ƒ n1 s`0    Y  t||ƒ d S )Nr   r   r²  r7  )rO   rW   ru   r   r   c                    s    g | ]}t jj|gˆ ¢R Ž ‘qS r.   )r2   r[  r¼   )r7   Úxi©Zparr.   r/   r9   Á"  r:   z,test_ncf_ppf_issue_17026.<locals>.<listcomp>)	rZ   r  rŸ   r—  r0  r2   r[  r¼   r   )rQ   r4  Úq0r.   r  r/   Útest_ncf_ppf_issue_17026¸"  s    0r  c                   @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚTestHistogramc                 C   s\   t j d¡ t jg d¢dd�}t |¡| _tjjddddd	�}t j|d
d�}t |¡| _	d S )Nr¹   )r   rW   rW   r‰   r‰   r‰   r³   r³   r³   r³   ru   ru   ru   ru   ru   rÁ  rÁ  rÁ  rÁ  rP  rP  rP  rÀ  rÀ  rŒ  rÀ  ©Úbinsr  r›  r]  é{   r   rû   )
rZ   r   rƒ   Ú	histogramr2   r=   Útemplaterú  r�   Únorm_template)rb   r  r£   Znorm_histogramr.   r.   r/   r÷   Æ"  s    
ÿzTestHistogram.setup_methodc                 C   s¬   t  g d¢¡}t  g d¢¡}t| j |¡|ƒ t| j d¡dƒ t| j d¡dƒ t| j d¡dƒ t| j d¡dƒ t  d	d
d¡}t| j |¡t	j
j|ddd�dd� d S )N©rm   rh   r  rj  rl   r›  rÏ  r  rÄ  r  r  ç      @r]  rÓ  r®  r‹  rQ  ç      !@rn  rs  )rm   rm   r
  r
  ç{®Gáz´?r  ç¸…ëQ¸¾?r  ç{®GázÄ?r  rt  rt  r  r  r  r  r  r  rm   rm   rQ  r  r  rn  rm   r¹  rÈ   rW   rR   r  r›  rT   rO   rp   )rZ   r   r¨   r   r  rY   r   r  r  r2   rú  )rb   rò  Z
pdf_valuesrQ   r.   r.   r/   r  Ö"  s    ÿzTestHistogram.test_pdfc                 C   sÖ   t  g d¢¡}t  g d¢¡}t| j |¡|ƒ t| j |dd… ¡|dd… ƒ t  ddd¡}t| j | j |¡¡|ƒ t  ddd¡}t| j | j |¡¡|ƒ t  d	dd
¡}t| j |¡t	j
j|ddd�dd� d S )Nr  )rm   rm   rm   rš  r
  r  r  ç
×£p=
Ç?ç¸…ëQ¸Î?ç{®GázÔ?r–  rh   rC  çÃõ(\�Âå?çR¸…ëQè?ç=
×£p=ê?ç)\�Âõ(ì?rk  r  r  rW   r±   r  rn  rS   rm   rÈ   rR   r›  rT   rO   rp   )rZ   r   r¨   r   r  r`   r¼   r  r  r2   rú  )rb   rò  Z
cdf_valuesrQ   r.   r.   r/   rM  ð"  s    "ÿzTestHistogram.test_cdf_ppfc                 C   s   d}| j j|dd�}tt |dk ¡dƒ tt |dk¡d| dd	� tt |d
k¡d| dd	� tt |dk¡d| dd	� tt |dk¡d| dd	� tt |dk¡d| dd	� tt |dk¡d| dd	� tt |dk¡d| dd	� tt |dk¡d| dd	� tt |dk¡d| dd	� tt |dk¡d| dd	� tt |dk¡d| dd	� tt |d k¡d!| dd	� tt |d"k¡d#| dd	� tt |d$k¡d%| dd	� tt |d&k¡d| dd	� tt |d&k¡d| dd	� tt |d&k¡dƒ d S )'Nr]  r
  rº   r  rm   rl   r
  rt  rp   r›  r  rÏ  r  rO   r  r  rÄ  r  r  r  r  r–  rl  r  rh   r]  rC  rÓ  r  r®  r  r‹  r  rQ  r  r  rk  rn  )r  r�   r   rZ   r$  r   )rb   rŸ  rð  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  r›  rl  rp   )r¤  r   r  r  r2   rú  r¡  r5  r.   r.   r/   rí  #  s    ÿzTestHistogram.test_munpc                 C   s$   t | j ¡ tjjddd�dd� d S )Nr  r›  rT   rl  rp   )r   r  r>   r2   rú  re   r.   r.   r/   r(  !#  s    
ÿzTestHistogram.test_entropyN)	rÂ   rÃ   rÄ   r÷   r  rM  r  rí  r(  r.   r.   r.   r/   r  Å"  s   r  c                  C   s   ddgg d¢ } }t j| |fdd�}tj | ddg¡ddg¡ | ¡ dksPJ ‚t j| |fdd�}tj | ddg¡d	¡ | ¡ d
ksŠJ ‚d}tjt	|d��. t  | |f¡}| ¡ d
ks¼J ‚W d   ƒ n1 sÐ0    Y  t  | g d¢f¡}| ¡ dksüJ ‚d S )Nr   )r   r   r\  F)r=  rh   r+  r$  Tgœî£'^P?g     H@z(Bin widths are not constant. Assuming...rÔ   r`  )
r2   r=   rZ   rC  r   rY   rÌ  rŸ   r—  r0  )Úcountsr	  r8   r1  r.   r.   r/   Útest_histogram_non_uniform&#  s    .r  c                   @   s6   e Zd Zdd„ Zej dddg¡dd„ ƒZ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 J ‚t  t  |¡d
 ¡dks¶J ‚d S )Nì   0o[ rÖ  r   r]  rº   rR   r  re  iL  rv   )rZ   r   r€   r2   Ú
loguniformr�   Z
reciprocalr   r  Úlog10rW  rÚ  r‚   rÌ  )rb   r‘   r-  r�   Zrv2r„   r  r´   r.   r.   r/   Ú
test_alias>#  s    
,zTestLogUniform.test_aliasr2  r5  r0  c                 C   sn   t j d¡}tjjddd|d�}tjj||d�\}}}}|dksDJ ‚tjj|d|d�\}}}}|dksjJ ‚d S )	Nr  rO   r   rv   rº   r4  rW   r1  )rZ   r   r€   r2   r  r�   r©   )rb   r2  r‘   r�   r,   r-   rU   rV   r.   r.   r/   Útest_fit_overrideO#  s    z TestLogUniform.test_fit_overridec           
      C   sÎ   t j d¡}d\}}t ||¡}|jdddd�}t| | |¡¡|ƒ |j	dd�}t| | |¡¡|ƒ dt  
dd	¡ }| |¡}t|d d
… |dd …  dƒ || t  |¡t  |¡  }	t| ¡ |	ƒ d S )Nl   eViá
P )g¬÷N’~hgZb××çtir   r   rv   rù   r¹  i8ÿÿÿr+  r±   rR   )rZ   r   r€   r2   r  r/  r   r`   r¼   r�   rÛ   rY   rF  r½   )
rb   r‘   r,   r-   r8   r`   r�   rQ   rY   r½   r.   r.   r/   Útest_overflow\#  s    
zTestLogUniform.test_overflowN)	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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g d¢¡dd„ ƒZ	ej dg d¢¡dd„ ƒZ
ej dg d¢¡dd„ ƒZej dg d¢¡dd „ ƒZej dg d!¢¡d"d#„ ƒZej dg d$¢¡d%d&„ ƒZej dg d'¢¡d(d)„ ƒZd*S )+Ú	TestArgusc                 C   s2   t jjdddd�}tt  d¡ ¡ | ¡ dd� d S )Nrû   r•  éE  rº   r³   r  )r2   Úargusr�   r   r½   rT  r.   r.   r/   Útest_argus_rvs_large_chit#  s    z"TestArgus.test_argus_rvs_large_chizchi, random_staterO   r%  rÈ  é›   r  é‡   c                 C   s6   t jj|d|d�}t  |d|f¡\}}t|dkƒ d S )Nr•  rº   r&  rl  ©r2   r&  r�   ro  r   )rb   rO  r|   rQ   r´   r,  r.   r.   r/   r  y#  s    zTestArgus.test_rvsrO  rÂ  rŽ  c                 C   s6   t jj|ddd�}t  |dd„ ¡\}}t|dkƒ d S )Nr•  ie˜ rº   c                 S   s   dd| d  d  S )Nr   rW   rj  r.   rŒ   r.   r.   r/   rE   ‰#  r:   z.TestArgus.test_rvs_small_chi.<locals>.<lambda>rl  r*  )rb   rO  r;  r´   r,  r.   r.   r/   Útest_rvs_small_chiƒ#  s    zTestArgus.test_rvs_small_chizchi, expected_mean))r   g Ñ‰iÌã?)rR   g.ý¬æ†ƒï?)r–  g\ØpaPøï?)r—  g²ê	â•üï?)rû  g,6Èÿ¾þï?c                 C   s"   t jj|dd�}t||dd� d S )Nr   rù  ry   rp   )r2   r&  r½   r   )rb   rO  Zexpected_meanr�  r.   r.   r/   r\  �#  s    zTestArgus.test_meanzchi, expected_var, rtol))r   g¡LH'B´ª?ry   )rR   gšüµo·$?r°  )r–  g
=‹Ìõ¸£>r  )r—  g2WÍëµ>r  )rû  góâb~ÆP>r  c                 C   s"   t jj|dd�}t|||d� d S )Nr   rù  rp   )r2   r&  rÈ  r   )rb   rO  Zexpected_varrq   r‚  r.   r.   r/   rC  ˜#  s    zTestArgus.test_varzchi, expected, rtol))r·   gwM€Ç“³?rè  )rh   gõ²¢j¨™�?rè  )rO   gH‘EA»`!?rè  )rj   gc¬Ù�>ro   )rÖ  gÁéØ×Fâ=rè  )r]  gß¹Q#·B=rè  )rŽ  gÅ0ÙþÞŸ<rè  )rÂ  g¸ŽŠ*W%:ro   c                 C   s   t t|ƒ||d� d S rÈ  )r   r    )rb   rO  rK   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Ï¦\Ïó?)rt  )g
ÃÄfôÒ?gi{?Ù¸ô?gæZ@Ü7üò?)rO   )gB	àÓ?g]®ÊÝÄô?gãÛÁR{Þò?)rj   )g§lÍ…wÓ?g,ñíöÑÈô?g[Z=±Ôò?)rÖ  )gØz,±�Ó?g]ÜÈô?g‚Ñª1˜Ôò?)r]  )g8<ï�Ó?gÏEÿ-ÜÈô?gI�ñ—Ôò?)rŽ  )g~7¬ï�Ó?gÉ7B.ÜÈô?g¼9çð—Ôò?)rÂ  )g–;¬ï�Ó?g€9B.ÜÈô?g}5çð—Ôò?c                 C   s*   t  g d¢¡}ttj ||¡|dd� d S )N©rO   rh   r·   ry   rp   )rZ   r   r   r2   r&  rY   ©rb   rO  rK   rQ   r.   r.   r/   Útest_pdf_small_chi°#  s    zTestArgus.test_pdf_small_chi))rh   )gQß¹?e‹ï?g¥†rJ,å?g’òº—„¶?)rt  )góÎŽÖd†ï?g¡�‚ˆÐØä?gõ•‘’hµ?)rO   )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µ?)rŽ  )gü¨~m…ï?g7;B.ÜÈä?g¼ÄÅ—¡3µ?)rÂ  )gëû¨~m…ï?g€9B.ÜÈä?g¿Å—¡3µ?c                 C   s*   t  g d¢¡}ttj ||¡|dd� d S )Nr-  rè  rp   )rZ   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/í?)rt  )g?CL\ÊfŽ?g¾äúî^NÖ?g]AÍ­íRí?)rO   )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í?)rŽ  )g�þÀU ¤Ž?g“‰{£GnÖ?giGÍ‹Yí?)rÂ  )gDÁU ¤Ž?g �{£GnÖ?gHÍ‹Yí?c                 C   s*   t  g d¢¡}ttj ||¡|dd� d S )Nr-  rY  rp   )rZ   r   r   r2   r&  r`   r.  r.   r.   r/   Útest_cdf_small_chiÎ#  s    zTestArgus.test_cdf_small_chi))rh   )gQ)ñã?gÇ6É{«?rY  )gB`åÐ"Û¹?)g­£òÛâ?g©¯8%«?r°  )rO   )gæ388æÛâ?g–üVí%«?ry   )rj   )g*©j¬‚Ùâ?gRÅS¨%«?ry   )rÖ  )g!�|Ùâ?gZ’±©%«?ry   )r]  )gyœ[|Ùâ?gýGµ©%«?ry   )rŽ  )gÛ"3|Ùâ?gÀWµ©%«?ry   )rÂ  )gÒ!3|Ùâ?güWµ©%«?ry   c                 C   s"   t jj |dd�}t|||d� d S )Nr„  rÑ  rp   )r2   r&  r   )rb   rO  rK   rq   r  r.   r.   r/   Útest_stats_small_chiÝ#  s    zTestArgus.test_stats_small_chiN)rÂ   rÃ   rÄ   r'  rŸ   rÅ   rÆ   r  r+  r\  rC  r,  r/  r0  r1  r2  r.   r.   r.   r/   r$  s#  sR   ý

	ÿ
ÿ
ÿ	
þ

þ

þ

þ
r$  c                   @   sê   e Zd Zdd„ Zdd„ Zej dg d¢¡dd„ ƒZej dg d	¢¡d
d„ ƒZ	dd„ Z
ej dg d¢¡dd„ ƒZejjdd�ej dg d¢¡ej dg d¢¡ej dg d¢¡dd„ ƒƒƒƒZej dg d¢¡ej dg d¢¡dd„ ƒƒZdS )ÚTestNakagamic                 C   s$   d}d}t j ||¡}t|dƒ d S )Nr›  r�  gÿMƒ³+˜À)r2   Únakagamir†   r   )rb   rw  rQ   r’  r.   r.   r/   r“  î#  s    zTestNakagami.test_logpdfc                 C   sD   d}d}t j ||¡}t|ddd� t j ||¡}t||dd� d S )Nr›  r  gŠÂ"S¿+Õ:ry   rp   )r2   r4  r»   r   rS  )rb   rw  rù  r»   rã  r.   r.   r/   r  ÿ#  s    zTestNakagami.test_sf_isfzm, ref))ru   g|þB¥dë¸¿)rh   r^  )rR   g¥Šƒ/òÊÛ¿c                 C   s   t tj |¡|dd� d S )Ng^~zÅ=rp   ©r   r2   r4  r>   ©rb   r�  r9  r.   r.   r/   r(  $  s    zTestNakagami.test_entropy))r  g}Ã”%­I¢Ô)rF  gq×_ òÁ)g    ScAgóÈB4UÀ)g    ²cAgu†‰1ÄUÀ)r_  gb>“%À)r`  gè¸WÒ™\Àc                 C   s   t tj |¡|ƒ d S rd   r5  r6  r.   r.   r/   Útest_extreme_nu$$  s    zTestNakagami.test_extreme_nuc                 C   s0   t  tj d¡¡sJ ‚t  tj d¡¡s,J ‚d S )Nr`  r  )rZ   rË  r2   r4  Z_entropyre   r.   r.   r/   Útest_entropy_overflow+$  s    z"TestNakagami.test_entropy_overflowznu, ref))r_  g2Hþÿÿÿï?)rW  g”:Ußùþï?)rF  gü õå•ò>c                 C   s   t tj |¡|dd� d S rX  )r   r2   r4  r½   )rb   rw  r9  r.   r.   r/   r\  /$  s    
zTestNakagami.test_meanz+Fit of nakagami not reliable, see gh-10908.rŽ  rw  )rµ  r›  r¤  rU   )rk   rR   é#   rV   )r  ru   r•  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 )NrS   é9  ©r›   rw  rU   rV   r|   rt  rp   c                    s<   d|  d t  dˆ |  ¡ d|  |d  t  ˆ | ¡  S )NrÈ   r   rW   ©rZ   r$  ©rw  rU   rV   )rô  r.   r/   Ú	dlogl_dnuJ$  s    ÿz(TestNakagami.test_fit.<locals>.dlogl_dnuc                    sN   ˆ dt  | ¡ td| ƒ  dt  t  ˆ| | ¡¡  t  ˆ| | d ¡ S )Nr   r   rW   )rZ   rF  r   r$  r=  ©rŸ  rô  r.   r/   Ú
dlogl_dlocN$  s
    ÿþz)TestNakagami.test_fit.<locals>.dlogl_dlocc                    s2   dˆ  |  | d|  |d  t  ˆ| d ¡  S )NrÈ   rW   r‰   r<  r=  r?  r.   r/   Údlogl_dscaleS$  s     ÿz+TestNakagami.test_fit.<locals>.dlogl_dscaler   rÖ  r}   )r2   r4  r�   r©   r   )
rb   rw  rU   rV   Únu_estÚloc_estÚ	scale_estr>  r@  rA  r.   r?  r/   rè  ;$  s    ÿzTestNakagami.test_fitc                 C   s„   d}d}t jj||||dd�}t jj||d�\}}}t |¡}	t t || d ¡¡}
t||dd� t||	dd� t||
dd� d S )	Nrh   rS   r:  r;  rŽ  rW   r×  rp   )	r2   r4  r�   r©   rZ   rW  rª  r½   r   )rb   rU   rV   rw  r+  rô  rB  rC  rD  Zloc_theoZ
scale_theor.   r.   r/   Útest_fit_nu[$  s    ÿ
zTestNakagami.test_fit_nuN)rÂ   rÃ   rÄ   r“  r  rŸ   rÅ   rÆ   r(  r7  r8  r\  r£  rè  rE  r.   r.   r.   r/   r3  ì#  s.   ÿ
ÿ
ÿ
r3  c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestWrapCauchyc                 C   sr   t  ddgddgg¡}t  dgdgg¡}tj ||¡}|jdksDJ ‚dd	„ t  ||f¡D ƒ}t| ¡ |d
d� d S )Nç¸…ëQ¸ž?r#  rh   r¶   r  rÄ  r  c                 S   s   g | ]\}}t j ||¡‘qS r.   )r2   Ú
wrapcauchyr`   )r7   rã  r  r.   r.   r/   r9   y$  s   ÿz>TestWrapCauchy.test_cdf_shape_broadcasting.<locals>.<listcomp>ry   rp   )	rZ   r   r2   rH  r`   r  Znditerr   r  )rb   rK  rQ   r,  Zscalar_valuesr.   r.   r/   Útest_cdf_shape_broadcastingq$  s    ÿz*TestWrapCauchy.test_cdf_shape_broadcastingc                 C   s"   t j tjd¡}t|ddd� d S )NrG  rh   rè  rp   )r2   rH  r`   rZ   r[   r   rA  r.   r.   r/   Útest_cdf_center}$  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   rW   )r2   rH  r`   r   rZ   ZarctanÚtanr[   )rb   rã  rä  rK  r,  Úcrr.   r.   r/   r  �$  s    (zTestWrapCauchy.test_cdfN)rÂ   rÃ   rÄ   rI  rJ  r  r.   r.   r.   r/   rF  o$  s   rF  c                  C   sT   G dd„ dt jƒ} | dd�}ttdd�� | ¡  W d   ƒ n1 sF0    Y  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.   re   r.   r.   r/   Ú_rvsŽ$  s    z4test_rvs_no_size_error.<locals>.rvs_no_size_gen._rvsN)rÂ   rÃ   rÄ   rM  r.   r.   r.   r/   Úrvs_no_size_gen�$  s   rN  Úrvs_no_sizer¼  z_rvs\(\) got (an|\d) unexpectedrÔ   )r2   r<   r/  rà   r�   )rN  rO  r.   r.   r/   Útest_rvs_no_size_error‹$  s    
rP  zdistname, argsc                 C   sÊ   | t v rt d| › d�¡ tt| ƒ}t|tjƒr t|ƒdkrb|j|Ž \}}t	|t
jƒ t	|t
jƒ d\}}|jg |¢|‘|‘R Ž \}}t	|t
jƒ t	|t
jƒ n&|j|Ž \}	}
t	|	t
jƒ t	|
t
jƒ d S )Nz6skipping test for the support method for distribution Ú.r   r4  )Ú$skip_test_support_gh13294_regressionrŸ   r    rð   r2   r  r<   r×   Úsupportr   rZ   rÞ   )rÎ  rò   r8   Úa0Úb0r÷  rø  Úa1Úb1r,   r-   r.   r.   r/   Útest_support_gh13294_regression—$  s"    ÿ

rX  c                  C   s\  t j g d¢g d¢¡\} }t tj tj tj tjg¡}t tjtjtjtjg¡}t| |ƒ t||ƒ | j|jksxJ ‚|j|jksˆJ ‚t j g g ¡\}}t g ¡t g ¡ }}t||ƒ t||ƒ |j|jksÔJ ‚|j|jksäJ ‚t j g d¢dg¡\}}	t dtjg ¡}
t dtjg ¡}t||
ƒ t|	|ƒ |j|
jk�sFJ ‚|	j|jk�sXJ ‚d S )N)r   r   r   r   )r   r   r   r±   r±   r³   )	r2   rú  rS  rZ   r   rß   rÞ   r   r  )rT  rU  Zex_a0Zex_b0rV  rW  Zex_a1Zex_b1r7  ri  Zex_a2Zex_b2r.   r.   r/   Ú,test_support_broadcasting_gh13294_regression²$  s(     





rY  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sjJ ‚d S )	Nrm   r  rl   rÏ  rÄ  rn  r5   rè  )r   r2   rú  rÈ  rZ   r  r  rT   r.   r.   r/   Ú*test_stats_broadcasting_gh14953_regressionË$  s    &

rZ  )gn†ðù!	ÀgŸ½:I"<)g…ëQ¸	@g¤Eñÿÿÿï?c                 C   s*   t tj | ¡|ƒ t tj |  ¡|ƒ d S rd   )r   r2   Úcosiner`   r»   )rQ   rK   r.   r.   r/   Útest_cosine_cdf_sfÙ$  s    r\  ))rŽ  gÃkM6OÝÀ)r~  g0Ó­Š÷!	À)r�  gÁ’;'u(@c                 C   s*   t tj | ¡|ƒ t tj | ¡| ƒ d S rd   )r   r2   r[  r¼   rS  )r,  rK   r.   r.   r/   Útest_cosine_ppf_isfá$  s    r]  c                  C   s$   t j tj tjg¡} t| dƒ d S )NgŒrñ˜BÀ)r2   r[  r†   rZ   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(J ‚dd„ tD ƒ}dd„ tD ƒ}||ksPJ ‚d S )Nc                 S   s   h | ]\}}t |tƒr|’qS r.   )r  rA   ©r7   rñ  r´   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`  ÷$  r:   c                 S   s   h | ]\}}|’qS r.   r.   r_  r.   r.   r/   r`  ú$  r:   c                 S   s   h | ]\}}|’qS r.   r.   r_  r.   r.   r/   r`  û$  r:   )r   r   r   r   )Zdiscrete_distnamesZinvdiscrete_distnamesZcont_distnamesZinvcont_distnamesr.   r.   r/   Útest_distr_params_listsñ$  s    ra  c                   C   sB   t jjddd� t jjddd�dks(J ‚t j dd¡dks>J ‚d S )Nr   rN   rƒ  r³   )r.  r,   rÏ  )r2   r#  Z_statsr¡  r  r.   r.   r.   r/   Útest_moment_order_4ÿ$  s    rb  c                
   @   sš   e Zd Zejdd„ ƒZej dg d¢¡dd„ ƒZej dg d¢¡d	d
„ ƒZ	ej dej
ddejjd�ej
ddejjd�ej
ddejjd�g¡dd„ ƒZdS )ÚTestRelativisticBWc                 C   s*   t  ttƒjd ¡}t jj|jdd�}|S )a&  Sample data points for pdf computed with CERN's ROOT

        See - https://root.cern/

        Uses ROOT.TMath.BreitWignerRelativistic, available in ROOT
        versions 6.27+

        pdf calculated for Z0 Boson, W Boson, and Higgs Boson for
        x in `np.linspace(0, 200, 401)`.
        z-data/rel_breitwigner_pdf_sample_data_ROOT.npyzx,pdf,rho,gammar  rá  rê  r.   r.   r/   ÚROOT_pdf_sample_data%  s    ÿÿz'TestRelativisticBW.ROOT_pdf_sample_datazrho,gamma,rtol))ç­qVÉEB@çgÕçj+ö@rÏ  )çÌÚÂ‰FC@ç®Gáz® @rè  )çíÄNìD‚÷@ç”ö_˜LU?rk  c                 C   sN   ||d |k|d |k@  }|d |d  }}t |tjj|||d�|d� d S )NÚrhorÓ  rQ   rY   rù  rp   )r   r2   Úrel_breitwignerrY   )rb   rd  rk  rÓ  rq   r£   rQ   rY   r.   r.   r/   Útest_pdf_against_ROOT'%  s    

ÿÿÿz(TestRelativisticBW.test_pdf_against_ROOTzrho, Gamma, rtol))re  rf  rk  )rg  rh  rk  )ri  rj  g•Ö&è.>c           	      C   s\   dd„ }t  ddd¡}tjj|||d�}tjj|||d�}|||| |ƒ}t|||d� d S )Nc                 S   sx   t  |d |d |d   ¡}dt  d¡ | | | t jt  |d | ¡  }|| d |d  d |d |d    S r  )rZ   rª  r[   )ÚErž  ÚGammarÓ  rN   r.   r.   r/   rY   @%  s
    ÿzFTestRelativisticBW.test_pdf_against_simple_implementation.<locals>.pdfrl  rb  rR   rù  rp   )rZ   r  r2   rl  r¼   rY   r   )	rb   rk  ro  rq   rY   r,  rQ   r“   r9  r.   r.   r/   Ú&test_pdf_against_simple_implementation8%  s    z9TestRelativisticBW.test_pdf_against_simple_implementationz	rho,gammare  rf  rç  rg  rh  ri  rj  c                 C   s¦   d}t j |¡}tjj||d|d�}tjj|dd�}t|d |d f||fdd� |d	 dksbJ ‚tjj|d|d
�}t|d |dd� |d	 |d fd|fks¢J ‚dS )zpTests fit for cases where floc is set.

        `rel_breitwigner` has special handling for these cases.
        l   s;
rl# rv   )rV   r›   r|   r   r§   rW   rt  rp   r   r!  rj   N)rZ   r   r€   r2   rl  r�   r©   r   )rb   rk  rÓ  rƒ   r‘   r£   r©   r.   r.   r/   Útest_fit_flocL%  s    ÿz TestRelativisticBW.test_fit_flocN)rÂ   rÃ   rÄ   rŸ   r  rd  rÅ   rÆ   rm  rp  rá   r�  rÇ   rq  r.   r.   r.   r/   rc  %  s,   
ÿ



ÿ
ÿ
ÿùÿrc  c                   @   s&   e Zd Zej dddg¡dd„ ƒZdS )ÚTestJohnsonSUr}  )rh  rÀ  rš  r]  g¾õ��={”?g›€?5m«V>g¡n…íª®?g\ˆ}�ý\1@)gï�`òfo@g$Úº_ü@r   r   gvUœˆ©¬ø¿gÆN<fjè?gÉÑwCô¿gü»~ä©l
@c                 C   s4   t jj |d d… ddiŽ}t||dd … dd� d S )Nr³   rÒ  rÐ  rè  rp   )r2   rÑ  r   )rb   r}  r“   r.   r.   r/   Útest_moment_gh18071m%  s    z!TestJohnsonSU.test_moment_gh18071N)rÂ   rÃ   rÄ   rŸ   rÅ   rÆ   rs  r.   r.   r.   r/   rr  l%  s
   ýrr  c                   @   sd   e Zd Z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g¡d	d
„ ƒƒƒƒZdS )ÚTestTruncParetoc                 C   sT   d\}}t  dd¡}t ||¡ |¡}t |¡ |¡t |¡ |¡ }t||ƒ d S )N)çÍÌÌÌÌÌü?ç333333@ru  rv  )rZ   r  r2   ÚtruncparetorY   r  r`   r   )rb   r-   rK  rQ   r“   r9  r.   r.   r/   r  }%  s
     zTestTruncPareto.test_pdfr™   TFr  r  r©  c                 C   sÜ   t j d¡}d\}}}}	tj||||	d�}
|
jd|d�}i }|rH||d< |rT|	|d< |r`||d< |rl||d	< |rÄ|rÄ|rÄ|rÄd
}tjt|d��$ tjj	|fi |¤Ž W d   ƒ qØ1 s¸0    Y  nt
tj|fi |¤Ž d S )Nl   óZü#Lm )ru  rv  r   r›  rT   r•  rº   r�   rœ   rž   rÐ   rÓ   rÔ   )rZ   r   r€   r2   rw  r�   rŸ   r   rÜ   r©   r¡   )rb   r™   r  r  r©  r‘   r-   rK  rU   rV   r8   r£   r¤   r1  r.   r.   r/   rè  …%  s$    4zTestTruncPareto.test_fitN)rÂ   rÃ   rÄ   r  rŸ   rÅ   rÆ   rè  r.   r.   r.   r/   rt  |%  s   rt  c                   @   s   e Zd Zdd„ ZdS )Ú
TestKappa3c                 C   s.   dt j dd¡ }t j dd¡}t||ƒ d S )Nr   rh   g     jø@)r2   Úkappa3r`   r»   r   )rb   Zsf0r>  r.   r.   r/   rR  £%  s    zTestKappa3.test_sfN)rÂ   rÃ   rÄ   rR  r.   r.   r.   r/   rx  ¢%  s   rx  r}  ))ry  NNNN)r¥  NNNN)rì   NNNN)rÑ  NNNN)r  NNNNc                 C   s¸   | \}}}}}t  d¡}|pd}|p&d}|p.d}|p6d}tt|ƒ}ttƒ| }||Ž }	t  ||¡}
|	 |	 |
¡¡}t	||
||d� dt  ||d¡ }
|	 |	 |
¡¡}t	||
||d� d S )	Nrh   iÞþÿÿiòÿÿÿr   rY  r†  r   r•  )
rZ   r   rð   r2   rÙ   r   rJ  r»   rS  r   )r}  rÎ  Zlp1Zlp2r~   rq   Zlpmr8   rD  Zdist_frozenr9  r“   r.   r.   r/   Útest_sf_isf_overrides¯%  s    	

rz  )N)NF(  r[  r-  rÁ  rÅ  r|  Úpathlibr   rB  rH  r!  Znumpy.testingr   r   r   r   r   r   r	   r
   r   rŸ   r   r/  r   rZ   r   r   Znumpy.lib.recfunctionsr   r1   r   Zscipy._lib._utilr   ro  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"   r#   Ú	itertoolsr$   ÚflagsÚoptimizerÌ  r$  r¢  rR  r0   r4   rL   rM   r¡   râ   rÅ   rÆ   ró   rô   r  r?  rC  rG  rN  ra  rh  r‚  r·  r½  rØ  rë  rð  rþ  r  r  r  r'  r)  r2  r8  rA  r�  rœ  r¼  rÎ  rÖ  rØ  rú  rÿ  r  r$  rD  rR  r_  rf  r~  r„  rŒ  r›  r£  r­  rµ  rº  r¿  rÊ  rÜ  rï  r  r  rª  r[   rF  r"  rG  rR  rY  r\  rm  rt  rv  rx  r}  rƒ  r¤  r¸  rÂ  rÃ  rÌ  rÐ  rÕ  r×  rQ  rT  rY  rZ  rs  r‰  r®  r·  r¿  rÆ  rÊ  rÎ  rÖ  rÚ  rà  rã  rñ  r÷  r
  r  r  r  r  r  rI  rJ  rM  r¡  rN  rO  rQ  rR  rT  rU  rV  rW  rY  rZ  r\  r]  r^  r_  r`  rc  rd  rf  rg  ri  rj  rl  ro  rq  rr  rs  rt  rv  rx  ry  r  r€  r‚  rƒ  r„  r‡  r<   rˆ  r�  r�  r’  r“  r»  rV  rÐ  rÒ  rÓ  rÔ  rÖ  r×  rØ  rÙ  rô  rõ  r÷  rü  rý  rþ  rÿ  r   r  rÆ  r  r  r  r  r$  r3  rF  rP  rX  rY  rZ  r\  r]  r^  ra  rb  rc  rr  rt  rx  rz  r.   r.   r.   r/   Ú<module>   sš  , J"ÿ
J	
2H KFD**D">#  @ $[X(% wX?* $ p9W<37+f %-5ø	ø	óí$ v22: 3 kS*      5
 p i ;A%E>h  #^U( E	
&
ÿ	
ÿ(
ü
ÿ
ÿ
ÿ
ÿ
	x;	,G."
ÿ
ÿÿþþ
ÿa6y 
ÿÿ
ÿY&