o
    Ö­jÞI ã                   @   sN  d Z ddlZddlZddlZddlZddlmZ ddlZddlZddl	Z	ddl
mZmZmZmZmZmZmZmZmZmZmZ ddlZddlm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,m-Z- ddl.Zddl/m0Z0m1Z1m2Z2 ddl3m4Z4m5Z5 ddl6m7Z7m8Z8 ddl9m:Z:m;Z; ddl<m=Z=m>Z>m?Z? ddl@mAZA ejBjCdkZDej	dkoÊe	 E¡ dkZFddgZG�d×dd„ZHdd„ ZIdd„ ZJG dd„ dƒZK�dØd!d"„ZLd#d$„ ZMejN Od%g d&¢¡d'd(„ ƒZPG d)d*„ d*ƒZQG d+d,„ d,ƒZRG d-d.„ d.ƒZSG d/d0„ d0ƒZTG d1d2„ d2ƒZUG d3d4„ d4ƒZVG d5d6„ d6ƒZWG d7d8„ d8ƒZXG d9d:„ d:ƒZYG d;d<„ d<ƒZZG d=d>„ d>ƒZ[G d?d@„ d@ƒZ\G dAdB„ dBƒZ]G dCdD„ dDƒZ^G dEdF„ dFƒZ_G dGdH„ dHƒZ`G dIdJ„ dJƒZaG dKdL„ dLƒZbG dMdN„ dNƒZcG dOdP„ dPƒZdG dQdR„ dRƒZeG dSdT„ dTƒZfG dUdV„ dVƒZgG dWdX„ dXƒZhG dYdZ„ dZƒZiG d[d\„ d\ƒZjG d]d^„ d^ƒZkG d_d`„ d`ƒZlG dadb„ dbƒZmG dcdd„ ddƒZnG dedf„ dfƒZoG dgdh„ dhƒZpG didj„ djƒZqG dkdl„ dlƒZrG dmdn„ dnƒZsG dodp„ dpƒZtG dqdr„ drƒZuG dsdt„ dtƒZvG dudv„ dvƒZwG dwdx„ dxƒZxG dydz„ dzƒ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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•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´G �d�d„ �dƒZµG �d�d„ �dƒZ¶�d�d„ Z·ejNj¸eD�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ÂejN O�d)g �d*¢¡�d+�d,„ ƒZÃ�d-�d.„ ZÄ�d/�d0„ ZÅ�d1�d2„ ZÆ�d3�d4„ ZÇ�d5�d6„ ZÈ�d7�d8„ ZÉ�d9�d:„ ZÊ�d;�d<„ ZË�d=�d>„ ZÌ�d?�d@„ ZÍejN O�dA�dBe �dC�dDg¡f�dEe �dF�dGg¡f�dHe �dI�dJg¡f�dKe �dL�dMg¡fg¡�dN�dO„ ƒZÎ�dP�dQ„ ZÏ�dR�dS„ ZÐ�dT�dU„ ZÑ�dV�dW„ ZÒejN O�dXg �dY¢¡�dZ�d[„ ƒZÓejN O�d\g �d]¢¡�d^�d_„ ƒZÔejN O�d`g �da¢¡�db�dc„ ƒZÕ�dd�de„ ZÖejN O�dXg �df¢¡�dg�dh„ ƒZ×�di�dj„ ZØG �dk�dl„ �dle)jÙƒZÚG �dm�dn„ �dne)jÙƒZÛG �do�dp„ �dpe)jÙƒZÜG �dq�dr„ �dre)jÙƒZÝG �ds�dt„ �dtƒZÞG �du�dv„ �dvƒZßejNj¸eD�dw�d��dx�dy„ ƒZà�dz�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jN O�dXg �dŽ¢¡�d��d�„ ƒZëejN O�d‘�d’�d“g¡�d”�d•„ ƒZìejN O�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ï�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jN O�d³e8e5 ¡�d´�dµ„ ƒZø�d¶�d·„ Zù�d¸�d¹„ ZúejN O�d\�dº�d»g¡�d¼�d½„ ƒZûejN O�d`g �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G �dÏ�dÐ„ �dÐƒ�ZG �dÑ�dÒ„ �dÒƒ�ZejN O�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Úassert_array_max_ulpÚIS_PYPY)Úraises)Ú	typecodesÚarray)Úrec_append_fields)Úspecial)Úcheck_random_state)ÚIntegrationWarningÚquadÚ	trapezoidÚcumulative_trapezoid)Ú
argsreduce)Ú_XMAX)Ú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-   © r1   úa/var/www/html/CropPilot/venv/lib/python3.10/site-packages/scipy/stats/tests/test_distributions.pyÚ_assert_hasattr5   s   r3   c                   C   s   t tjjdƒ d S )NÚf_gen)r3   ÚscipyÚstatsÚdistributionsr1   r1   r1   r2   Útest_api_regression;   ó   r8   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   ó   g | ]}|d  ‘qS ©r   r1   ©Ú.0Údistr1   r1   r2   Ú
<listcomp>B   ó    z0test_distributions_submodule.<locals>.<listcomp>c                 S   r:   r;   r1   r<   r1   r1   r2   r?   C   r@   )Úrv_discreteÚrv_continuousÚrv_histogramÚentropyÚtrapzc                 S   s   t | ƒ d¡ S )Nú<)ÚstrÚ
startswith©Úsr1   r1   r2   Ú<lambda>J   ó    z.test_distributions_submodule.<locals>.<lambda>)Úsetr5   r6   r7   Ú__all__r   r    Úfilter)ÚactualÚ
continuousÚdiscreteÚotherÚexpectedr1   r1   r2   Útest_distributions_submodule@   s   rU   c                	   @   sH  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ejj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é   )r6   Úvonmisesr   ÚpdfÚnpÚpi©rW   ÚLrJ   rZ   Úvmr1   r1   r2   Úcheck_vonmises_pdf_periodicS   s   (zHTestVonMises.test_vonmises_periodic.<locals>.check_vonmises_pdf_periodicc                 S   s@   t j| ||d�}t| |¡d | |dtj |  ¡d ƒ d S )Nr]   r   r`   )r6   ra   r   Úcdfrc   rd   re   r1   r1   r2   Úcheck_vonmises_cdf_periodicW   s   ÿzHTestVonMises.test_vonmises_periodic.<locals>.check_vonmises_cdf_periodicr   r   r[   r1   )ÚselfrW   rZ   rh   rj   r1   r1   r2   Útest_vonmises_periodicP   s   z#TestVonMises.test_vonmises_periodicc                 C   s&   t tjjtj ƒ t tjjtjƒ d S ©N)r   r6   Úvonmises_liner/   rc   rd   r0   ©rk   r1   r1   r2   Útest_vonmises_line_supportd   s   z'TestVonMises.test_vonmises_line_supportc                 C   s   t  d¡}t| d¡dƒ d S )Né   r   ç      à?)r6   ra   r   ri   )rk   rg   r1   r1   r2   Útest_vonmises_numericalh   s   
z$TestVonMises.test_vonmises_numericalzx, kappa, expected_pdf))rX   ç{®Gáz„?g¿˜|65“Ä?)rX   ç      9@g¿õ?‡Uü?)rX   rq   g"µ³‰Ê?)ç       @rt   g™D˜ÎfIÄ?)rv   ru   g¾‹‰1ÝÎ<)rv   rq   ç        c                 C   ó    t j ||¡}t||dd� d S ©NçVçž¯Ò<©Úrtol)r6   ra   rb   r   )rk   rZ   ÚkappaÚexpected_pdfrb   r1   r1   r2   Útest_vonmises_pdfv   ó   zTestVonMises.test_vonmises_pdfzkappa, expected_entropy))r   g³A¿Ö	ú?)é   g,äeÞžå?)r\   gBb9d22ì¿)éè  gÔÍÔû
G À)éÐ  gòÓ÷Àc                 C   ó   t j |¡}t||dd� d S ©Nç‚vIhÂ%<=r{   )r6   ra   rD   r   )rk   r}   Úexpected_entropyrD   r1   r1   r2   Ú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   r]   ©Úrandom_stater`   rz   ©Úatol)	rc   ÚrandomÚdefault_rngr6   ra   Úrvsrd   Úabsr   )rk   ÚseedÚrng1Úrng2Úrng3Úrvs1Úrvs2Úrvs3r1   r1   r2   Útest_vonmises_rvs_gh4598•   s   ÿÿz%TestVonMises.test_vonmises_rvs_gh4598zx, kappa, expected_logpdf))rX   rt   g«EŸJ?ý¿)rX   ru   goðÎ¹›ïá?)rX   rq   g¢Î0á,ù¿)rv   rt   gdtåœyý¿)rv   ru   gÊ¹¬wð[AÀ)rv   rq   gÀÖú©‘Àc                 C   rx   ry   )r6   ra   Úlogpdfr   )rk   rZ   r}   Úexpected_logpdfr™   r1   r1   r2   Útest_vonmises_logpdf¥   r€   z!TestVonMises.test_vonmises_logpdfc                 C   s  t j d¡}| d¡d \}}}tj||d� dd„ ¡}t|dƒ t  |jt j	¡s+J ‚||dt j
  f}tj||d�jd	d„ g|¢R Ž }t|dƒ t  |jt j	¡sSJ ‚||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 é   r[   ©r^   r}   c                 S   ó   dS ©Nr   r1   ©rZ   r1   r1   r2   rK   »   ó    z3TestVonMises.test_vonmises_expect.<locals>.<lambda>r   r`   c                 S   rŸ   r    r1   r¡   r1   r1   r2   rK   À   r¢   c                 S   s   t  d|  ¡S )Ny              ð?)rc   Úexpr¡   r1   r1   r2   rK   Å   s    Úcomplex_funcN)rc   r�   rŽ   r6   ra   Úexpectr   Ú
issubdtypeÚdtypeÚfloatingrd   ÚangleÚcomplexfloating)rk   Úrngr^   r}   ÚlbÚresÚboundsr1   r1   r2   Útest_vonmises_expect°   s"   
 
ÿÿz!TestVonMises.test_vonmises_expectÚrvs_locr`   Ú	rvs_shape)r   r\   ç    „×—AÚfix_locTFÚ	fix_shapec                 C   sp   |r	|r	t  d¡ tj d¡}tjj|d||d�}ddi}|r#||d< |r)||d< ttj|tjj	fi |¤Ž d S )	NzNothing to fit.rœ   r‚   )Úsizer^   rŠ   Úfscaler   ÚflocÚf0)
ÚpytestÚskiprc   r�   rŽ   r6   ra   r�   Ú_assert_less_or_close_loglikeÚnnlf)rk   r°   r±   r³   r´   r«   ÚdataÚkwdsr1   r1   r2   Ú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s#J ‚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·   )rc   Úasarrayrd   r6   ra   ÚfitÚfinfoÚfloatÚtinyr»   r¼   )rk   r½   r^   Ú	kappa_fitÚloc_fitÚ	scale_fitr1   r1   r2   Ú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 rNt jk sQJ ‚ J ‚d S )	Nrœ   rr   r[   rž   é † r‰   é   r   )	rc   r�   rŽ   r6   ra   rd   r�   rÃ   r   )rk   rË   r«   r½   Úshifted_datarÇ   rÈ   rÉ   Úkappa_fit_shiftedÚloc_fit_shiftedÚ_r1   r1   r2   Ú 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   r`   rz   r{   ç      è?çÍÌÌÌÌÌì?çš™™™™™é?r‹   r[   éÒ  ©rµ   rŠ   )r6   ra   r   rb   rc   rd   ri   ÚsfÚppfÚmeanr¥   Úallr�   r�   )rk   r>   r1   r1   r2   Ú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sJ ‚d S )Nr   g €à7yÃACr   )r6   ra   rÃ   )rk   r}   r^   r_   r1   r1   r2   Ú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Á   r`   gôdýÿÿï?)r5   r6   ra   rÃ   rc   rd   ro   r1   r1   r2   Útest_vonmises_fit_bounds  s   "z%TestVonMises.test_vonmises_fit_boundsN)Ú__name__Ú
__module__Ú__qualname__r¹   ÚmarkÚparametrizerc   rd   rl   rp   rs   r   rˆ   r˜   r›   r¯   Úxslowr¿   ÚslowrÊ   rÓ   rÝ   rÞ   rß   r1   r1   r1   r2   rV   O   sB    ÿ
ÿ
ÿ


rV   Fc           	      K   sÂ   |du r| j }| j|fi |¤Ž}tt| ƒ| ƒj|fi |¤Ž}|s)t ||k¡s)J ‚|||ƒ}|||ƒ}||ksAtj||dd�sAJ ‚d|v rO|d |d ksOJ ‚d|v r]|d |d ks_J ‚dS 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.
    Nrz   r{   r·   éþÿÿÿr¶   rÌ   )r¼   rÃ   ÚsuperÚtyperc   ÚanyÚallclose)	r>   r½   ÚfuncÚmaybe_identicalr¾   Úmle_analyticalÚnumerical_optÚll_mle_analyticalÚll_numerical_optr1   r1   r2   r»     s"   	

ÿÿr»   c                 C   sš  ddg}| j rt| j  d¡ƒ}|g d¢d |… 7 }tt|t t|ƒ¡ƒƒ}g d¢}tjt	dd�� | j
|fi |¤Ž W d   ƒ n1 sDw   Y  tjtdd�� |  
tjg¡ W d   ƒ n1 sbw   Y  tjtdd�� |  
tjg¡ W d   ƒ n1 s€w   Y  tjtd	d�� | j
|d
d� W d   ƒ n1 sžw   Y  tjtdd�� | j
|gdgt|ƒd  ¢R Ž  W d   ƒ d S 1 sÆw   Y  d S )Nr·   r¶   ú,)r¸   Úf1Úf2©r   r`   r�   ú3All parameters fixed. There is nothing to optimize.©Úmatchz#The data contains non-finite valueszUnknown keyword arguments:r`   )Úextra_keywordzToo many positional arguments.r   )ÚshapesÚlenÚsplitÚdictÚziprc   Úaranger¹   r   ÚRuntimeErrorrÃ   Ú
ValueErrorÚnanÚinfÚ	TypeError)r>   ÚparamÚnshapesÚ	all_fixedr½   r1   r1   r2   Úassert_fit_warnings;  s6   ÿýÿþÿþÿ""ÿr  r>   )ÚalphaÚ	betaprimeÚfatiguelifeÚinvgammaÚinvgaussÚ
invweibullÚ	johnsonsbÚlevyÚlevy_lÚlognormÚgibratÚpowerlognormÚrayleighÚ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   Úgetattrr6   r   rb   r/   r   r™   rc   r  r0   )r>   ÚdctÚargsr1   r1   r2   Útest_supportR  s   
"r  c                   @   ó,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestRandIntc                 C   ó   t j d¡ d S ©Nr×   ©rc   r�   r‘   ro   r1   r1   r2   Úsetup_methode  ó   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 )Nr�   é   r\   ©rµ   ©r`   é2   Ú
AllIntegeré   é.   r,   r�   )r6   Úrandintr�   r   rc   rÜ   rû   Úshaper§   Úcharr   Ú
isinstanceÚ
ScalarTypeÚreprré   ©rk   ÚvalsÚvalr1   r1   r2   Útest_rvsh  s    zTestRandInt.test_rvsc                 C   sF   t jdd… }t  |dk|dk @ dd¡}tj |dd¡}t||ƒ d S )Nr   é$   r�   r"  ç{®Gáz¤?)rc   Úr_Úwherer6   r)  Úpmfr   )rk   rW   Úoutr0  r1   r1   r2   Útest_pdfu  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   r3  r\   r"  r�   ç      ð?ç      @r   ru   é   ©Údecimal)rc   ÚlinspaceÚfloorÚselectr6   r)  ri   r   )rk   rZ   rW   r8  r0  r1   r1   r2   Útest_cdf{  s
   
*zTestRandInt.test_cdfN)rà   rá   râ   r   r2  r9  rB  r1   r1   r1   r2   r  d  s
    r  c                   @   óT   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   r  r  r  ro   r1   r1   r2   r   „  r!  zTestBinom.setup_methodc                 C   s®   t jjdddd�}tt |dk¡t |dk¡@ ƒ tt |¡dkƒ t|jjt	d v ƒ t j dd¡}tt
|tƒƒ t  dd¡ d¡}tt
|tjƒƒ t|jjt	d v ƒ d S ©Nr[   rÔ   r$  r#  r   r&  r�   )r6   Úbinomr�   r   rc   rÜ   r*  r§   r+  r   r,  ÚintÚndarrayr/  r1   r1   r2   r2  ‡  s    zTestBinom.test_rvsc                 C   sD   t j ddd¡}t j ddd¡}t|dddd� t|dddd� d S )Nr\   r   r   r:  rz   ©r|   rŒ   ©r6   rF  r7  r   )rk   Úvals1Úvals2r1   r1   r2   Ú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 )Nr`   rr   )ç      Ð?rr   rN  rw   r:  )	r6   rF  rc   r   Úsumr   rD   r   r   )rk   r0   Ú
expected_pÚ
expected_hÚhr1   r1   r2   Útest_entropy™  s   

zTestBinom.test_entropyc                 C   sj   t  ¡ �' t  dt¡ ttjddd� ¡ dƒ ttjddd� ¡ dƒ W d   ƒ d S 1 s.w   Y  d S )NÚerrorr`   r   ©ÚnÚp)	ÚwarningsÚcatch_warningsÚsimplefilterÚRuntimeWarningr   r6   rF  rÛ   Ústdro   r1   r1   r2   Ú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:  )ÚqrV  rW  )r6   rF  rÚ   ©rk   rV  r1   r1   r2   Ú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�   rU  ç¼‰Ø—²Òœ<r‹   )rc   rÿ   r6   rF  r7  Úpoissonr   )rk   rV  rW  rZ   r­   Úrefr1   r1   r2   Ú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   rb  r‹   )r6   rF  r7  ri   r   )rk   rV  rW  Úrr­   rd  r1   r1   r2   Útest_pmf_cdf¾  s   zTestBinom.test_pmf_cdfc                 C   s"   t j ddd¡}t|ddd� d S )Nr�   rƒ   ç+‡ÙÎ÷ï?r   rb  r‹   rJ  )rk   r­   r1   r1   r2   Útest_pmf_gh15101Ç  s   zTestBinom.test_pmf_gh15101N)rà   rá   râ   r   r2  rM  rS  r]  ra  re  rg  ri  r1   r1   r1   r2   rD  ƒ  s    		rD  c                   @   ó   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   )r6   Úarcsinerb   r   rc   r  ©rk   rW  r1   r1   r2   Útest_endpointsÏ  s   zTestArcsine.test_endpointsN)rà   rá   râ   ro  r1   r1   r1   r2   rk  Í  ó    rk  c                   @   ó$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestBernoullic                 C   r  r  r  ro   r1   r1   r2   r   ×  r!  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�   )r6   Ú	bernoullir�   r   rc   rÜ   r*  r§   r+  r   r,  rG  rH  r/  r1   r1   r2   r2  Ú  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 )NrN  ç      Ð¿rÔ   rw   r:  )r6   rs  rc   ÚlogrD   r   r   )rk   r0   rQ  rR  r1   r1   r2   rS  å  s   




zTestBernoulli.test_entropyN)rà   rá   râ   r   r2  rS  r1   r1   r1   r2   rr  Ö  ó    rr  c                   @   rj  )ÚTestBradfordc                 C   s:   d}t  dd¡}tj ||¡}tj ||¡}t||ƒ d S )NrX   éìÿÿÿéüÿÿÿ)rc   Úlogspacer6   Úbradfordri   rÚ   r   )rk   ÚcrZ   r_  Úxxr1   r1   r2   Útest_cdf_ppf÷  s
   zTestBradford.test_cdf_ppfN)rà   rá   râ   r~  r1   r1   r1   r2   rw  õ  rp  rw  c                   @   sÖ   e Zd Zdd„ Zej ddddddd	d
dddedfg¡dd„ ƒZej dg d¢¡ej de	j
jdfe	j
jdfg¡dd„ ƒƒZej dg d¢¡dd„ ƒZej dg d¢¡ej de	j
jdfe	j
jdfg¡dd„ ƒƒZdS )Ú
TestCauchyc                 C   s   t j d¡}|dksJ ‚d S )NçZb××çtirw   )r6   Úcauchyrb   rn  r1   r1   r2   Útest_pdf_no_overflow_warning  ó   z'TestCauchy.test_pdf_no_overflow_warningúx, ref)rw   ç½¡çHÐPò¿)g       r…  )gILû’‡�à8r…  )gOd¡@‘´¯<r…  )ç:Œ0âŽyU>g¿¡çHÐPò¿)çü©ñÒMb@?g³ŒÐPò¿)rX   g*6�ö‘yò¿)ç      ø?g8@(ÐJ–À)g ÈNgmÁ»Cg'‡K@$[UÀ)r€  gÂÈonÑŒÀgØs3×2–Àc                 C   s(   t j || g¡}t|||gdd� d S ry   )r6   r�  r™   r   )rk   rZ   rd  Úlogpr1   r1   r2   Útest_logpdf	  s   zTestCauchy.test_logpdf))g €à7yÃ1Ãgu	ÀlY’<)éûÿÿÿg»^ˆÒ°?)rÌ   rN  )r   rr   )r   rÔ   )r�   g)ôn¼Eýí?)g €à7yÃ1Cçÿÿÿÿÿÿï?zmethod, sgnr   rÌ   c                 C   s   ||| ƒ}t ||dd� d S ry   ©r   )rk   rZ   rd  ÚmethodÚsgnrW  r1   r1   r2   Útest_cdf_sf  s   zTestCauchy.test_cdf_sf))gRy«ãXösg¥!;vÝ+Í‹)ç‘(,*‹ EgöjLÒ³£º)ç      $@gœ
 ¸� ¿)rw   çï9úþB.æ¿)g      $ÀgCÄ¯ùåšÀ)gñ:ò@žsÉg—gÓû>­ZÀ)g ¡ü±­5Àîg*\“™B€Àc                 C   s:   t j |¡}t||dd� t j | ¡}t||dd� d S ©Nç›+¡†›„ö<r{   )r6   r�  Úlogcdfr   Úlogsf©rk   rZ   rd  r–  r—  r1   r1   r2   Útest_logcdf_logsf/  s   	zTestCauchy.test_logcdf_logsfzp, ref))ç#B’¡œÇ;gÈ8æ›ûÃ)ç•Ö&è.>gç/þù²Á)rN  ç      ð¿)rr   rw   )rÔ   r:  )çé!çýÿï?góq‹—mA)gÑÜÿÿÿÿï?gæqç¶J‡RBc                 C   s   |||ƒ }t ||dd� d S ry   r�  )rk   rW  rd  rŽ  r�  rZ   r1   r1   r2   Útest_ppf_isf>  s   zTestCauchy.test_ppf_isfN)rà   rá   râ   r‚  r¹   rã   rä   r   rŠ  r6   r�  ri   rÙ   r�  r™  rÚ   Úisfrž  r1   r1   r1   r2   r  ÿ  sX    öþ
þ


ÿþÿ
þ


ÿþr  c                   @   sl   e Zd ZdZdZdd„ Zd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 )Nr[   rÎ   rz   r{   )r6   ÚchirÙ   r   ÚCHI_SF_10_4©rk   rJ   r1   r1   r2   Útest_sfZ  ó   zTestChi.test_sfc                 C   s"   t j | jd¡}t|ddd� d S )NrÎ   r[   rz   r{   )r6   r¡  rŸ  r¢  r   ©rk   rZ   r1   r1   r2   Útest_isf^  ó   zTestChi.test_isfc                 C   ó(   d}d}t j ||¡}t|ddd� d S )Nr’  r'  g�¾ýÄa½r•  r{   )r6   r¡  r–  r   )rk   rZ   Údfr–  r1   r1   r2   Útest_logcdfb  ó   zTestChi.test_logcdfc                 C   r©  )Nrt   r'  ç@y…›ý½`¸r•  r{   )r6   r¡  r—  r   )rk   rZ   rª  r—  r1   r1   r2   Ú
test_logsfi  r¬  zTestChi.test_logsfúdf, refç     @�@)g  �Ä¼ÖBgóÿÿÿÏcAc                 C   ó   t tj |¡|dd� d S ©Nçê-�™—q=r{   )r   r6   r¡  rÛ   ©rk   rª  rd  r1   r1   r2   Ú	test_meanv  ó   zTestChi.test_mean))ç-Cëâ6?gQ¯(¥Ý‚ÃÀ)r   çÅ„jÉ®9ç?)r°  gãWr4¹'ñ?)ç    _ Bg««r$h(ñ?)ç}Ã”%­I²TgßÐs$h(ñ?c                 C   ó   t t |¡ ¡ |dd� d S ry   )r   r6   r¡  rD   r´  r1   r1   r2   rS  †  ó   zTestChi.test_entropyN)rà   rá   râ   r¢  ÚCHI_MEAN_1000r¤  r§  r«  r®  r¹   rã   rä   rµ  rS  r1   r1   r1   r2   r   Q  s"    ÿÿ
ÿr   c                   @   óF   e Zd Zdd„ Zdd„ Zej dg d¢¡dd„ ƒZd	d
„ Z	dd„ Z
dS )ÚTestCrystalBallc                 C   ó¨   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� dS )úÅ
        All values are calculated using the independent implementation of the
        ROOT framework (see https://root.cern.ch/).
        Corresponding ROOT code is given in the comments.
        ç      Àr;  é   NrÌ   r:  rv   ©ÚbetaÚm)gF6ÄýÆ”?g9ÌnZä¸˜?g°9b–õé�?g"i®¨"w¢?g½|ÝÇ^§?gœŽ„>†®?gG6ÄýÆ´?g­9b–õé½?ç½|ÝÇ^Ç?çßˆÜ�r Ñ?gTøCÓ?rÈ  rÇ  gŠìm´¹?g°ÊFZÁÛ¤?gº
HB‹?gøT„Xek?g?übÈ“E?gLZ;ÒËx?güªî©ûJé>ç›+¡†›„=r{   ç      @)g2c˜ø}`?g>ùt\ßêf?gË‚ÆÆq?gg'�“T){?g„m­w‡?g>ùt\ßê–?çh'�“T)«?ç7-h	JÀ?çu²8‹ªnÎ?çAâ÷­#Ö?g:‹QÙ?rÎ  rÍ  rÌ  rË  gZrùëÔ¢‘?gß„øçÖq?g)a±÷L?gør–'O<!?g99{-Íwð>rr   ©rÅ  rÆ  r^   r_   )g3c˜ø}€?g>ùt\ßê†?gË‚ÆÆ‘?çf'�“T)›?çÁ#nõ±³¥?ç5-h	J°?çÉë¤´ø¶?çu²8‹ªn¾?çvL1ÒïÂ?ç?â÷­#Æ?çÅ|¸|¹PÈ?g:‹QÉ?r×  rÖ  rÕ  rÔ  rÓ  rÒ  rÑ  rÐ  )rc   r?  r6   Úcrystalballrb   r   r   ©rk   ÚXÚ
calculatedrT   r1   r1   r2   r9  ’  ó   


zTestCrystalBall.test_pdfc                 C   rÀ  )rÁ  rÂ  r;  rÃ  NrÌ   r:  rv   rÄ  )ghQ¦|
)¿?gj,,þÿÀ?gdý}9²Â?gH6ÄýÆÄ?g½|ÝÇ^Ç?gÉEü³vµÊ?glQ¦|
)Ï?gdý}9²Ò?g½|ÝÇ^×?go€[¥·›Þ?g‚sÝÈXíã?gÎ&¿ÕŒè?g~ˆü¢M+ì?gZRcî?gtEçÜ_sï?gÕi¼�Ùï?gõBáæ§÷ï?gñEgâ�þï?gvP
âÍÿï?gxí›Ÿúÿï?r†   r{   rÊ  )g p«·�r?g ùt\ßêv?g€e˜Úî}?gÀÝ nÿ^„?gÀÎCÈ˜U�?çaùt\ßê–?çŸÝ nÿ^¤?ç~[n|Dµ?çgS�4s/Æ?ç‚2s³•„Ô?ç`qf hGà?ç€Ig†Læ?çè�©sôë?çýr³Aæí?ççÔâIáHï?guÌkÎï?gh™ i"õï?gžPŒ¥ þï?g.q½¾ÿï?gÉs°ÿøÿï?rr   rÏ  )g¡o«·�’?rÝ  ge˜Úî�?rÞ  gPŽU,­?rß  gjÎÝ—±	¿?rà  göšçéí»Î?rá  g_!’ÎYÚ?râ  gÒÉ÷éaã?rã  güRÆÕßè?rä  gõ(Ñ›­ì?rå  gÜ‰×xŽ½î?ræ  )rc   r?  r6   rØ  ri   r   r   rÙ  r1   r1   r2   rB  Ð  rÜ  zTestCrystalBall.test_cdfzx, beta, m, rootref))ç      (@r:  rv   gµ©ƒI×9)ç      "@ç      @ç      ô?gy
�¹§ <)é   rX   gj¼t“ð?g›”+èÌ,)g      Àrv   rÊ  gGA*Òï?)g      >Àrr   r;  g^ƒv'íï?)gšd~ÅQÊrˆ  çš™™™™™ñ?gçœ­¾õÿï?c                 C   s$   t jj|||d�}t||dd� d S )NrÄ  r†   r{   )r6   rØ  rÙ   r   )rk   rZ   rÅ  rÆ  ÚrootrefrÙ   r1   r1   r2   r¤    s   
zTestCrystalBall.test_sfc                 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 )zs
        All values are calculated using the pdf formula and the integrate function
        of Mathematica
        )rv   r:  rÊ  rv   rÊ  )rÊ  rÊ  rv   ré  rè  )r:  r:  r:  r:  r:  r   çü©ñÒMbP?r{   )gÔšæ§h@gõ¡ê[&@g„žÍªÏ@g‹2d’Q@gãün6-@g¼?Þ«V&Ì¿g·Ñ ÞBÀgQˆ€C¨RÁ¿géóQF\ j¿r   g�¥½Á
@gn‡†Å(@r`   g?Ò–)œ“­¿r�   gMg'ƒ#@rÎ   g('ÚUHùô¿r�   N)rc   r   r6   rØ  Ú_munpr   r  )rk   rÅ  rÆ  Úexpected_0th_momentÚcalculated_0th_momentÚnormr/   Úexpected_1th_momentÚcalculated_1th_momentÚexpected_2th_momentÚcalculated_2th_momentÚexpected_3th_momentÚcalculated_3th_momentÚexpected_4th_momentÚcalculated_4th_momentÚexpected_5th_momentÚcalculated_5th_momentr1   r1   r2   Útest_moments  s4   zTestCrystalBall.test_momentsc                 C   sR   t  dd¡}| ¡ }d\}}}t |||¡}tt| |¡ƒ|ƒ}t||dd� d S )Nr`   r�   )ià±ÿÿr"  é@ çH¯¼šò×z>r{   )	r6   rØ  rD   rc   r?  r   r   rb   r   )rk   ÚcbÚres1ÚloÚhiÚNrZ   Úres2r1   r1   r2   rS  L  s   
zTestCrystalBall.test_entropyN)rà   rá   râ   r9  rB  r¹   rã   rä   r¤  rý  rS  r1   r1   r1   r2   r¿  �  s    >Bþ
	-r¿  c                   @   r  )
Ú
TestNBinomc                 C   r  r  r  ro   r1   r1   r2   r   X  r!  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 rE  )r6   Únbinomr�   r   rc   rÜ   r*  r§   r+  r   r,  rG  rH  r/  r1   r1   r2   r2  [  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   rc   r£   r6   r  Úlogpmfr7  r5   r   )rk   r1  r1   r1   r2   rM  f  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   r�   r   r�   ç333333@çÍÌÌÌÌÌÜ?rU  )r6   r  r–  rc   ru  ri   r   ©rk   r0  rd  r1   r1   r2   Útest_logcdf_gh16159n  s   zTestNBinom.test_logcdf_gh16159N)rà   rá   râ   r   r2  rM  r  r1   r1   r1   r2   r  W  s
    r  c                   @   st   e Zd Zdd„ Zejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZ	ejjd	d
„ ƒZ
dd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTestGenInvGaussc                 C   r  r  r  ro   r1   r1   r2   r   v  r!  zTestGenInvGauss.setup_methodc                 C   ó:   t  dd¡}t  |jddd�|j¡\}}t|dkdƒ d S )Nçffffff@rˆ  éÜ  r×   rØ   çš™™™™™©?T©r6   ÚgeninvgaussÚkstestr�   ri   r   ©rk   ÚgigrÒ   rW  r1   r1   r2   Útest_rvs_with_mode_shifty  ó   z(TestGenInvGauss.test_rvs_with_mode_shiftc                 C   r  )NrÕ   rÔ   r  r×   rØ   r  Tr  r  r1   r1   r2   Útest_rvs_without_mode_shift€  r  z+TestGenInvGauss.test_rvs_without_mode_shiftc                 C   r  )NrX   çš™™™™™É?r  r×   rØ   r  Tr  r  r1   r1   r2   Útest_rvs_new_method‡  r  z#TestGenInvGauss.test_rvs_new_methodc                 C   s<   dd„ }t |ddƒdƒ t |ddƒdƒ t |ddƒdƒ d S )Nc                 S   s0   t  | |¡}|jddd�}t  ||j¡d dkS )Nr  r×   rØ   r   r  )r6   r  r�   r  ri   )rW  r0   r  r�   r1   r1   r2   Úmy_ks_check�  s   z4TestGenInvGauss.test_rvs_p_zero.<locals>.my_ks_checkr   r  TrÕ   rˆ  )r   )rk   r  r1   r1   r2   Útest_rvs_p_zeroŽ  s   zTestGenInvGauss.test_rvs_p_zeroc                 C   s6   t t dd¡jddd�dt dd¡jddd� ƒ d S )Nç      ø¿r`   r[   r×   rØ   r   rˆ  )r   r6   r  r�   ro   r1   r1   r2   Útest_rvs_negative_p™  s   þz#TestGenInvGauss.test_rvs_negative_pc                 C   s¨   t jjddddd�}tt j|ddgd�d dkd	ƒ d
t ddd¡}}t jj|dd| |d�}t|t  	|¡ |¡ƒ t jj
|dd| |d�}t|t  	|¡ 
|¡ƒ d S )Nr  rÀ   r   r×   )rµ   rW  r0   rŠ   r  ©r  ç333333Ã?Tr\   rt   r[   )rW  r0   r_   )r6   r  r�   r   r  rc   r?  rb   r   r  ri   )rk   ÚigÚmurZ   Úpdf_igÚcdf_igr1   r1   r2   Útest_invgaussŸ  s    zTestGenInvGauss.test_invgaussc                 C   s6   t  g d¢¡}t  ddd¡}t|tj |dd¡ƒ d S )N)
g»¡ú§£;gé8y8ºÜ?g›É\}Zü×?g¯hÜ²<Ñ?g&KµhddÈ?g7·!…LÁ?g	C³õf«¸?g_ñ—è¯±?g>ó0èÅ|©?gÑô©ûRq¢?rt   r�   r[   rr   r   )rc   r   r?  r   r6   r  rb   )rk   Úvals_RrZ   r1   r1   r2   Ú
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   rr   g    €„>Ar%  r`   )r   r6   r  rb   ro   r1   r1   r2   Útest_pdf_zeroµ  s   zTestGenInvGauss.test_pdf_zeroN)rà   rá   râ   r   r¹   rã   ræ   r  r  r  r  r  r&  r(  r)  r1   r1   r1   r2   r  u  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	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   r  r  r  ro   r1   r1   r2   r   ¾  r!  zTestGenHyperbolic.setup_methodc           
      C   ól   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?©r`   r`   r   ©rr   rˆ  r]   éöÿÿÿr[   r   r†   ©rŒ   r|   )rc   r   r6   Úgenhyperbolicr?  r   rb   ©
rk   r'  Úlmbdar	  rÅ  r#  Údeltar  ÚghrZ   r1   r1   r2   Ú
test_pdf_rÁ  ó   
zTestGenHyperbolic.test_pdf_rc           
      C   r+  )
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-  r]   r.  r[   r   ç�íµ ÷Æ°>r/  )rc   r   r6   r0  r?  r   ri   r1  r1   r1   r2   Ú
test_cdf_r×  r6  zTestGenHyperbolic.test_cdf_rzx, p, a, b, loc, scale, ref)
)éñÿÿÿr`   r�   rˆ  rr   rˆ  g8É¹vF(ì;)r9  r[   rˆ  rN  r   r�   g[¿­Ï ?)r9  r[   rˆ  g      ö?r   r   g âœ�Œ`D;)r9  ç      À?rˆ  çÇ):’Ëÿ÷?r   r   gÎìd–L;)rÌ   r:  rˆ  r;  r   r   gzžK^7?)r�   ç      À¿rˆ  r;  r   r   g�îjè¤Ð?)r�   r<  r‚   éç  r   r   ga=„ôèvG:)rë  r<  r‚   r=  r   r   g¾ø‰üØÎ?)é(   r<  r‚   r=  r   r   g1½bV¶ÿï?)é<   r<  r‚   r=  r   r   g¶©ÿÿÿÿï?c           	      C   ó*   t jj||||||d�}t||dd� d S ©Nr]   ç•dyáý•=r{   )r6   r0  ri   r   )	rk   rZ   rW  r/   r0   r^   r_   rd  ri   r1   r1   r2   Útest_cdf_mpmathñ  s   z!TestGenHyperbolic.test_cdf_mpmath))r   r7  r<  rÌ   r   r   gC!Ïñ,§Ø?)rÌ   r�   ç      @ç      @r   r�   g,Ð‹fëÿï?)rx  r�   rD  rE  r   r�   r:  )é   r`   r�   rˆ  rr   rˆ  gÕmþ"Ú†>)é,  r[   rˆ  rN  r   r�   g´¥:¥À­;)r?  r<  r‚   r=  r   r   gýãw…’…=)éK   r<  r‚   r=  r   r   gé3ìZ0&K<c           	      C   r@  rA  )r6   r0  rÙ   r   )	rk   rZ   rW  r/   r0   r^   r_   rd  rÙ   r1   r1   r2   Ú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 )r]   )r6   r0  Úmoment)r=   Úi©r  r3  r#  r1   r2   r?   $  s    ÿÿz4TestGenHyperbolic.test_moments_r.<locals>.<listcomp>r   r�   r   r†   r/  )Úranger   )rk   r'  r2  r	  rÅ  Úvals_usr1   rL  r2   Ú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-  r]   r  r×   rØ   r  T)r6   r0  r  r�   ri   r   )
rk   r2  r	  rÅ  r#  r3  r  r4  rÒ   rW  r1   r1   r2   r2  +  s   
zTestGenHyperbolic.test_rvsc           	      C   s¬   t  ddd¡}t  |d¡t  t j¡j d}}dt  |¡}}| d ||f}tj|||dœŽ}t  | 	d¡| 	d¡d	¡d d …t j
f }t| |¡tj ||¡dd
d� d S )Nr   r"  r[   r`   r   r]   rt   ç®Gáz®ï?r%  r7  r/  )rc   r?  Úfloat_powerrÄ   Úfloat32ÚepsÚsqrtr6   r0  rÚ   Únewaxisr   rb   Út)	rk   rª  r	  rÅ  r#  r3  r  r4  rZ   r1   r1   r2   Ú
test_pdf_t8  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   r]   rt   rP  r%  r7  r/  )rc   rÄ   rR  rS  r6   r0  r?  rÚ   rU  r   rb   r�  )	rk   r2  r	  rÅ  r#  r3  r  r4  rZ   r1   r1   r2   Útest_pdf_cauchyJ  s   
(
þz!TestGenHyperbolic.test_pdf_cauchyc           	      C   sŽ   t  ddd¡}t  t j¡j}d\}}}||| || f}tj|||dœŽ}t  ddd¡d d …t jf }t| 	|¡tj
j	||dd�d	d
d� d S )Nr.  r[   )r   r   r   r]   rx  rë  r%  r   r   ç•dyáý¥=r/  )rc   r?  rÄ   rR  rS  r6   r0  rU  r   rb   Úlaplace)	rk   r^   r3  r2  r	  rÅ  r  r4  rZ   r1   r1   r2   Útest_pdf_laplace[  s   

þz"TestGenHyperbolic.test_pdf_laplacec           	   	   C   sÈ   t  ddd¡t  ddd¡t  dtdƒ¡ t  ddd¡t  ddd¡f\}}}}d	}||| || f}tj|||d
œŽ}t  | d¡| d¡d¡d d …t jf }t| 	|¡tj
j	|||||d�ddd� d S )Nr   rë  r[   r   é   rÌ   éœÿÿÿr\   rÀ   r]   rt   rP  r%  )r/   r0   r^   r_   r†   r/  )rc   r?  rQ  rM  r6   r0  rÚ   rU  r   rb   Únorminvgauss)	rk   r	  rÅ  r3  r#  r2  r  r4  rZ   r1   r1   r2   Útest_pdf_norminvgaussp  s   ü(
ÿ
ýz'TestGenHyperbolic.test_pdf_norminvgaussN)rà   rá   râ   r   r5  r8  r¹   rã   rä   rC  rI  rO  r2  rW  rX  r[  r_  r1   r1   r1   r2   r*  ½  s(    þ
þ

r*  c                   @   sH   e Zd Zej dddg¡dd„ ƒZej dddg¡d	d
„ ƒZdd„ ZdS )ÚTestHypSecantzx, reference)r"  gèœA¦Ä0=)r%  g½!Žb;c                 C   r„   r”  )r6   Ú	hypsecantrÙ   r   )rk   rZ   Ú	referencerÙ   r1   r1   r2   r¤  Œ  ó   zTestHypSecant.test_sfzp, reference)r7  g9­bÀTº*@)r³  gTWù¬ï-;@c                 C   r„   r”  )r6   ra  rŸ  r   )rk   rW  rb  rZ   r1   r1   r2   r§  –  rc  zTestHypSecant.test_isfc                 C   sB   d}d}t j |¡}t||dd� t j | ¡}t||dd� d S )Nç      I@g½!Žb»r•  r{   )r6   ra  r–  r   r—  r˜  r1   r1   r2   r™  �  s   zTestHypSecant.test_logcdf_logsfN)	rà   rá   râ   r¹   rã   rä   r¤  r§  r™  r1   r1   r1   r2   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   r  r  r  ro   r1   r1   r2   r   ¨  r!  zTestNormInvGauss.setup_methodc                 C   ó@   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'  r   rr   ©r/   r0   r›  r‹   )rc   r   r6   r^  ri   r   )rk   Úr_cdfÚx_testÚvals_cdfr1   r1   r2   Ú
test_cdf_R«  s   zTestNormInvGauss.test_cdf_Rc                 C   rf  )N)g»ÞpÏ¶>g\H“55$?geÐ¡tï&Ý?go N‹ëiH?g‹]”uÁ³â>rg  r   rr   ri  r›  r‹   )rc   r   r6   r^  rb   r   )rk   Úr_pdfrk  Úvals_pdfr1   r1   r2   r(  ·  s   zTestNormInvGauss.test_pdf_Rzx, a, b, sf, rtol))rÌ   r   r   çí!7èì?r†   )rF  r   r   çÌ�ÏùÛ?=r·  )r   r�   r  gœÈy5î`?r³  )r[   r�   r  gí²MöLCý9r›  c                 C   s@   t j |||¡}t|||d� t j |||¡}t|||d� d S ©Nr{   ©r6   r^  rÙ   r   rŸ  )rk   rZ   r/   r0   rÙ   r|   rJ   rK  r1   r1   r2   Ú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Ì   rF  r   r   rp  rq  r†   rb  rI  r7  r{   rs  )rk   rZ   r/   r0   rÙ   rJ   rK  r1   r1   r2   Ú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ë  r`   )r6   r^  rc   rÿ   rÙ   rŸ  r   )rk   ÚdstrZ   rÙ   rŸ  r1   r1   r2   Ú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   rr   r`   r�   rÊ  r   rÎ   Úmvsk©Úmoments)rc   rT  r   r6   r^  )rk   r/   r0   ÚgammaÚv_statsr1   r1   r2   Ú
test_statsß  s   (ÿzTestNormInvGauss.test_statsc                 C   s@   d\}}t  g d¢¡}tj |||¡}t|tj |||¡ƒ d S )Nrx  ©rî  rr   rh  )rc   r   r6   r^  rÚ   r   ri   )rk   r/   r0   rk  r0  r1   r1   r2   Útest_ppfæ  s   zTestNormInvGauss.test_ppfN)rà   rá   râ   r   rm  r(  r¹   rã   rä   rt  ru  rw  r~  r€  r1   r1   r1   r2   re  §  s    ÿ
re  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 )ÚTestGeomc                 C   r  r  r  ro   r1   r1   r2   r   î  r!  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�   )r6   Úgeomr�   r   rc   rÜ   r*  r§   r+  r   r,  rG  rH  r/  r1   r1   r2   r2  ñ  ó   zTestGeom.test_rvsc                 C   sT   t j d¡}tjjt  d¡d|d�}|jt jksJ ‚t  	|t  
t j¡jk¡s(J ‚d S )Nl   à¦AÚ: iÝÿÿÿr�   rØ   )rc   r�   rŽ   r6   r‚  r�   r£   r§   Úint64rÜ   ÚiinfoÚint32Úmax)rk   r«   r�   r1   r1   r2   Útest_rvs_9313ü  s    zTestGeom.test_rvs_9313c                 C   s$   t j g d¢d¡}t|g d¢ƒ d S )Nrõ   rr   )rr   rN  r:  )r6   r‚  r7  r   ©rk   r0  r1   r1   r2   rM    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õ   rr   rz   r   rI  r   rw   )rc   ru  r6   r‚  r7  r  r   r   )rk   rK  rL  r1  r1   r1   r2   Ú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õ   rr   ©rr   rÔ   ç      ì?r   )r6   r‚  ri   rÙ   r   r   ©rk   r0  Úvals_sfrT   r1   r1   r2   r�    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õ   rr   r‹  )	r6   r‚  r–  r—  r   r   rc   ru  Úlog1pr�  r1   r1   r2   r™    s
   zTestGeom.test_logcdf_logsfc                 C   ó,   t j g d¢d¡}tg d¢ƒ}t||ƒ d S )Nr‹  rr   )r:  rv   rÊ  )r6   r‚  rÚ   r   r   ©rk   r0  rT   r1   r1   r2   r€  !  ó   zTestGeom.test_ppfc                 C   s   t tj dd¡ddd� d S )Nrš  r:  rÉ  r‹   )r   r6   r‚  rÚ   ro   r1   r1   r2   Útest_ppf_underflow&  s   zTestGeom.test_ppf_underflowc                 C   s    t  d¡ ¡ }t|ddd� d S )NgŸ<,Ôšæ�?g¨¿ýÛ©à@rz   r{   )r6   r‚  rD   r   )rk   rR  r1   r1   r2   Útest_entropy_gh18226*  s   zTestGeom.test_entropy_gh18226c                 C   s.   t j d¡}tjjdd|d�dk ¡ sJ ‚d S )Ni—úŽç ÂëþKH´9r[   rØ   r   )rc   r�   ÚRandomStater6   r‚  r�   rÜ   )rk   rŠ   r1   r1   r2   Útest_rvs_gh183720  s   "zTestGeom.test_rvs_gh18372N)rà   rá   râ   r   r2  rˆ  rM  rŠ  r�  r™  r€  r“  r”  r—  r1   r1   r1   r2   r�  í  s    	
r�  c                   @   rq  )Ú
TestPlanckc                 C   r  r  r  ro   r1   r1   r2   r   8  r!  zTestPlanck.setup_methodc                 C   r�  )Nrõ   r;  )g›|dµyÍ?g8ì'¢\‡”>ggróU†´!>)r6   ÚplanckrÙ   r   r   r‘  r1   r1   r2   r¤  ;  s   zTestPlanck.test_sfc                 C   r�  )N)r°  ç     @Ÿ@ç     p§@r°  )g    PŒ.Ág    hˆ>Ág    TåFÁ)r6   r™  r—  r   r   r‘  r1   r1   r2   r®  B  r’  zTestPlanck.test_logsfN)rà   rá   râ   r   r¤  r®  r1   r1   r1   r2   r˜  7  s    r˜  c                   @   r  )
ÚTestGennormc                 C   ó0   g d¢}t j |d¡}t j |¡}t||ƒ d S ©Nrõ   r   )r6   Úgennormrb   rZ  r   ©rk   ÚpointsÚpdf1Úpdf2r1   r1   r2   Útest_laplaceI  ó   zTestGennorm.test_laplacec                 C   ó4   g d¢}t j |d¡}t jj|dd�}t||ƒ d S ©Nrõ   r`   gÍ;fž æ?©r_   )r6   rŸ  rb   rò  r   r   r1   r1   r2   Ú	test_normP  ó   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s:J ‚t d¡}|jdd�}tjjddd	�}t 
||¡jdksXJ ‚d S )
Nr   rr   r‚   r#  rX   r   r`   gÌ;fž æ?©r_   rµ   )rc   r�   r‘   r6   rŸ  r�   r  ri   ÚpvaluerZ  Úks_2samprò  )rk   r>   r�   Úrvs_laplaceÚrvs_normr1   r1   r2   r2  W  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s0J ‚t |d d …ddf t d¡j¡d d	ksGJ ‚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suJ ‚d S )
Nr   rr   r:  rv   r;  )r‚   r`   r`   r#  r   rX   )rc   r�   r‘   r6   rŸ  r�   r  ri   )rk   r>   r�   r1   r1   r2   Útest_rvs_broadcastingh  s   ...2z!TestGennorm.test_rvs_broadcastingN)rà   rá   râ   r¤  r©  r2  r°  r1   r1   r1   r2   rœ  H  s
    rœ  c                   @   ó&   e Zd Zej dddg¡dd„ ƒZdS )Ú
TestGibratúx, sfx)rˆ  g�D.Ÿ¡ìÕ?)éˆ  gJ¢Ë]¯Øb<c                 C   ó0   t tj |¡|dd� t tj |¡|dd� d S ©Nç›+¡†›„=r{   )r   r6   r  rÙ   rŸ  ©rk   rZ   Úsfxr1   r1   r2   Útest_sf_isf€  ó   zTestGibrat.test_sf_isfN)rà   rá   râ   r¹   rã   rä   rº  r1   r1   r1   r2   r²  r  s
    
ÿr²  c                   @   sX   e Zd Zdd„ Zej dg d¢¡dd„ ƒZdd„ Z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   )r6   ÚgompertzrÚ   ri   r   rn  r1   r1   r2   Útest_gompertz_accuracy‰  ó   z#TestGompertz.test_gompertz_accuracyz	x, c, sfx))r   rD  g|å‘tè‹?)r�   rD  g(fMàrë¡;)r  r�   g¼–´[„Ãè?)ç      @r�   gøgùÔ[<c                 C   ó4   t tj ||¡|dd� t tj ||¡|dd� d S ©NrÉ  r{   )r   r6   r¿  rÙ   rŸ  )rk   rZ   r|  r¹  r1   r1   r2   rº  š  s   zTestGompertz.test_sf_isfc                 C   ó,   d}d}d}t j ||¡}t||dd� d S )Nç       @rX   g¯Ž÷_ò¥r•  r{   )r6   r¿  r–  r   )rk   rZ   r|  rd  r–  r1   r1   r2   r«  ¢  ó
   zTestGompertz.test_logcdfc                 C   rÅ  )Ngµô"ul/r<  gH7šÁW¥¯r•  r{   )r6   r¿  r—  r   )rk   rZ   r|  rd  r—  r1   r1   r2   r®  ª  rÇ  zTestGompertz.test_logsfúc, ref))r·  g±eUT8ù?)r   gtqßqÕÙ?)r‚   g’s{�¢À)r¹  gN£*ž6Àc                 C   r±  rÄ  )r   r6   r¿  rD   ©rk   r|  rd  r1   r1   r2   rS  ¹  ó   zTestGompertz.test_entropyN)rà   rá   râ   rÀ  r¹   rã   rä   rº  r«  r®  rS  r1   r1   r1   r2   r¼  ‡  s    
r¼  c                   @   r±  )ÚTestFoldNormú	x, c, ref)r·  ç:Œ0âŽyE>g:0N<ƒê?)r·  r·  gò�:ƒê?c                 C   ó   t tj ||¡|dd� d S ry   )r   r6   Úfoldnormri   ©rk   rZ   r|  rd  r1   r1   r2   rB  È  ó   zTestFoldNorm.test_cdfN)rà   rá   râ   r¹   rã   rä   rB  r1   r1   r1   r2   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 )ÚTestHalfNormr³  )r   ç²|»ÐNÔ?)r[   ç±Oèul2;c                 C   rµ  rÄ  )r   r6   ÚhalfnormrÙ   rŸ  r¸  r1   r1   r2   rº  Ü  r»  zTestHalfNorm.test_sf_isfr„  ))çœWw'&l¡7g;GÎ<^Í›7)ç¬CÒÑ]r2<gÝÒE~Îo-<)rh  gõÿÿÿÿÿï?c                 C   r±  ry   )r   r6   rÕ  ri   ©rk   rZ   rd  r1   r1   r2   rB  é  r¶  zTestHalfNorm.test_cdfr°   çñhãˆµøä>r¹  Ú	rvs_scale©rt   r\   r²   r³   TFÚ	fix_scalec           	      C   s®   t j d¡}tjj||d|d�}|r9|r9d}tjt|d�� tj	j
|||d� W d   ƒ d S 1 s2w   Y  d S i }|rA||d< |rG||d< ttj|fi |¤d	d
i¤Ž d S ©Nrœ   r‚   ©r^   r_   rµ   rŠ   rö   r÷   ©r·   r¶   r·   r¶   rí   T)rc   r�   rŽ   r6   rÕ  r�   r¹   r   r   ÚhalflogisticrÃ   r»   ©	rk   r°   rÚ  r³   rÜ  r«   r½   Ú	error_msgr¾   r1   r1   r2   r¿   ï  s(   ÿ
ÿþÿz(TestHalfNorm.test_fit_MLE_comp_optimizerc                 C   óD   t  t¡� tjjg d¢dd� W d   ƒ d S 1 sw   Y  d S ©Nrõ   r`   rÁ   )r¹   r   r"   r6   rÕ  rÃ   ro   r1   r1   r2   Útest_fit_error  ó   "ÿzTestHalfNorm.test_fit_errorN)
rà   rá   râ   r¹   rã   rä   rº  rB  r¿   rå  r1   r1   r1   r2   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Ú  rt   r²   r³   TFrÜ  c           	      C   s¦   t j d¡}tjj||d|d�}|r9|r9d}tjt|d�� tj	j
|||d� W d   ƒ d S 1 s2w   Y  d S i }|rA||d< |rG||d< ttj	|fi |¤Ž d S )	Nrœ   r‚   rÞ  rö   r÷   rß  r·   r¶   )rc   r�   rŽ   r6   rÕ  r�   r¹   r   r   Ú
halfcauchyrÃ   r»   rá  r1   r1   r2   r¿     s$   ÿ
ÿþz*TestHalfCauchy.test_fit_MLE_comp_optimizerc                 C   rã  rä  )r¹   r   r"   r6   rè  rÃ   ro   r1   r1   r2   rå  .  ræ  zTestHalfCauchy.test_fit_errorN)rà   rá   râ   r¹   rã   rä   r¿   rå  r1   r1   r1   r2   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
d„ Z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„  )r\   ç]¯âŒú6)éÈ   çúLö-c                 C   r±  ry   )r   r6   rà  rÙ   rØ  r1   r1   r2   r¤  <  s   zTestHalfLogistic.test_sfúq, ref))rê  r\   )rì  rë  )ç¡�vÿÿÿï?g   à.!>)g÷ÿÿÿÿÿï?g      â<c                 C   r±  ry   )r   r6   rà  rŸ  ©rk   r_  rd  r1   r1   r2   r§  H  rÊ  zTestHalfLogistic.test_isfc                 C   ó&   d}d}t j |¡}t||dd� d S )Ng      >@gu¬ÂàVJ½r•  r{   )r6   rà  r–  r   ©rk   rZ   rd  r–  r1   r1   r2   r«  O  ó   zTestHalfLogistic.test_logcdfc                 C   rð  )Nr·  g»+¡†›„½r•  r{   )r6   rà  r—  r   ©rk   rZ   rd  r—  r1   r1   r2   r®  V  rò  zTestHalfLogistic.test_logsfr°   rÙ  r¹  rÚ  rÛ  r³   TFrÜ  c           	      C   s®   t j d¡}tjj||d|d�}i }|r;|r;d}tjt|d�� tjj	|||d� W d   ƒ d S 1 s4w   Y  d S |rA||d< |rG||d< t
tj|fi |¤d	d
i¤Ž d S rÝ  )rc   r�   rŽ   r6   rà  r�   r¹   r   r   rÃ   r»   )	rk   r°   rÚ  r³   rÜ  r«   r½   r¾   râ  r1   r1   r2   r¿   ]  s(   ÿ
ÿþÿz,TestHalfLogistic.test_fit_MLE_comp_optimizerc                 C   sJ   d}t t|d�� tjjg d¢dd� W d   ƒ d S 1 sw   Y  d S )Nz; Maximum likelihood estimation with 'halflogistic' requiresr÷   )r   r`   rÎ   r   rÁ   )Úassert_raisesr"   r6   rà  rÃ   ©rk   r-   r1   r1   r2   Útest_fit_bad_flocz  s   "ÿz"TestHalfLogistic.test_fit_bad_flocN)rà   rá   râ   r¹   rã   rä   r¤  r§  r«  r®  r¿   rö  r1   r1   r1   r2   ré  4  s    
ÿ


ré  c                   @   rq  )ÚTestHalfgennormc                 C   r�  rž  )r6   Úhalfgennormrb   Úexponr   r   r1   r1   r2   Ú
test_expon�  r¥  zTestHalfgennorm.test_exponc                 C   r¦  r§  )r6   rø  rb   rÕ  r   r   r1   r1   r2   Útest_halfnormˆ  rª  zTestHalfgennorm.test_halfnormc                 C   s6   g d¢}t j |d¡}t j |d¡}t|d| ƒ d S )Nrõ   g’á
(Ôß?r`   )r6   rø  rb   rŸ  r   r   r1   r1   r2   Útest_gennorm�  s   zTestHalfgennorm.test_gennormN)rà   rá   râ   rú  rû  rü  r1   r1   r1   r2   r÷  €  s    r÷  c                   @   rq  )ÚTestLaplaceasymmetricc                 C   s6   t  g d¢¡}tj |d¡}tj |¡}t||ƒ d S rž  )rc   r   r6   Úlaplace_asymmetricrb   rZ  r   r   r1   r1   r2   r¤  ˜  s   z"TestLaplaceasymmetric.test_laplacec                 C   sL   t  g d¢¡}d}d| }tj ||¡}tj ||d  |¡}t||ƒ d S )Nrõ   r`   r   )rc   r   r6   rþ  rb   r   )rk   r¡  r}   Úkapinvr¢  r£  r1   r1   r2   Útest_asymmetric_laplace_pdfŸ  s   z1TestLaplaceasymmetric.test_asymmetric_laplace_pdfc              	   C   sÆ   t  t  d¡ t  d¡g¡}d}tj ||¡}tj ||¡}tj ||¡}t  ddg¡}t  ddg¡}t  dd	g¡}tj ||¡}	|}
tj 	||¡}|}t
t  ||||	|f¡t  ||||
|f¡ƒ d S )
Né   r[   r`   rX   gü©ñÒMbp?r  çV-²�ïï?rÖ   gü©ñÒMb`?)rc   r   ru  r6   rþ  rb   ri   rÙ   rÚ   rŸ  r   Úconcatenate)rk   r¡  r}   r¢  Úcdf1Úsf1r£  Úcdf2Úsf2Úppf1Úppf2Úisf1Úisf2r1   r1   r2   Ú!test_asymmetric_laplace_log_10_16¨  s   ÿz7TestLaplaceasymmetric.test_asymmetric_laplace_log_10_16N)rà   rá   râ   r¤  r   r  r1   r1   r1   r2   rý  —  s    	rý  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   r  r  r  ro   r1   r1   r2   r   »  r!  zTestTruncnorm.setup_methodú	a, b, ref))r   r\   r¸  )ç333333ã?çffffffæ?g•Ü²þlÀ)r7  g�íµ ÷ÆÀ>g ÿ�™Š¡+Àc                 C   rÎ  ©Nç»½×Ùß|Û=r{   ©r   r6   Ú	truncnormrD   ©rk   r/   r0   rd  r1   r1   r2   rS  ¾  s   zTestTruncnorm.test_entropy))rY  r¹  ghøiÉ®9ç?)r¾  rº  r¸  )g0Žä.ÿ+«rº  r¸  )ç}Ã”%­I²Ôrº  çZ_2äø³ö?c                 C   rÎ  rÄ  r  r  r1   r1   r2   Útest_extreme_entropyÒ  s   z"TestTruncnorm.test_extreme_entropyc              	   C   óJ   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·  rr   ç§èH.ÿï?r   r`   rœ  r:  r�   é   r`   r]   r   çf”™˜Oð?çæšÙlÿ@r�   )r6   r  rÚ   rc   r   r  r   r‘  r1   r1   r2   Útest_ppf_ticket1131ä  ó
   
ÿz!TestTruncnorm.test_ppf_ticket1131c              	   C   r  )Nr  rœ  r:  r�   r  r`   r]   r�   r  r  r   )r6   r  rŸ  rc   r   r  r   r‘  r1   r1   r2   Útest_isf_ticket1131ê  r   z!TestTruncnorm.test_isf_ticket1131c                 C   s¢   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 oK| ¡   k oK|k ƒ d S   ƒ d S )N)iõÿÿÿr.  r   r   r[   r#  )r[   é   ©r6   r  r�   r   Úminr‡  ©rk   ÚlowÚhighrZ   r1   r1   r2   Útest_gh_2477_small_valuesð  s   .8z'TestTruncnorm.test_gh_2477_small_valuesc                 C   sH  d\}}t jj||dddd�}t|| ¡   ko"| ¡   ko"|kn  ƒt|||gƒf d\}}t jj||dddd�}t|| ¡   k oO| ¡   k oO|k n  ƒ d\}}t jj||dddd�}t|| ¡   k ou| ¡   k ou|k n  ƒ d\}}t jj||dddd�}t|| ¡   k ož| ¡   k ož|k ƒ d S   ƒ d S )	N)r\   rY   r   r   r[   r#  )r‚   éé  )é'  i'  )iïØÿÿéðØÿÿ)r6   r  r�   r   r$  r‡  rG   r%  r1   r1   r2   Útest_gh_2477_large_valuesú  s   <..8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 rVt  g d
¢¡}
t||ƒ t||	ƒ t||
ƒ tt  	|
d |
d  ¡|d ƒ t  g d¢¡}tj 
|||¡}t  |t  |¡d |g¡}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 ƒ qd S )Nr�   rÎ   ry  éýÿÿÿrv   ©r   r   r   r   ©r:  r:  rw   rw   )r   çd._MTå
@çBŠKŸgý¹?r   r   )r   r1  r0  r   r   r`   rr   ©r   rr   r:  gÓÄ–y–	@g¶d¥v*ë?g,mj%VƒÃ?rN  )rc   r   r  r6   r  ri   rÙ   rb   r   ru  rÚ   rË   )rk   r&  r'  ÚxvalsÚxmidÚcdfsÚsfsÚpdfsÚexpected_cdfsÚexpected_sfsÚexpected_pdfsÚpvalsÚppfsÚexpected_ppfsrb   r1   r1   r2   Útest_gh_9403_nontail_values  sJ   


ÿ
ÿÿÿÿ"àz)TestTruncnorm.test_gh_9403_nontail_valuesc                 C   sŽ  ddgddgfD �];\}}t  t j ||t jg¡}|| d }tj |||¡}tj |||¡}tj |||¡}t  g d¢¡}t  g d¢¡}	t  g d¢¡}
|d	k rWt  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Ùÿÿÿrv   r.  r/  )r   çŽÄpGƒC@ç˜F—f²³<r   r   )r   rB  rA  r   r   r`   rr   r2  gƒÛßE‚C@g iþÿÿï?gspXäio)>rN  r"  rÌ   )rc   r   r  r6   r  ri   rÙ   rb   r   ru  rÚ   rË   r?  )rk   r&  r'  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  rb   Úxvals2r1   r1   r2   Útest_gh_9403_medium_tail_values0  sd   


ÿ

ÿÿÿÿ ÿÿÿÕ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³Í Týÿï?rh  gš™™™™™ @g±•‰´‚Rí?)r   r6   r  ri   rc   r  ro   r1   r1   r2   Útest_cdf_tail_15110_14753_  s   ÿÿz'TestTruncnorm.test_cdf_tail_15110_14753)éâÿÿÿr"  rw   r:  rw   rw   )r.  r[   rw   r:  rw   g“LúFu¼)r-  r�   rw   gMFmz“%ï?rw   gÔîçÅ¿)rç   r`   rw   ghöI}Âè?rw   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ê*Ò¿rI  gìn»óõAá¿rJ  )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 )Nry  rz  ç—ÔFFõg<r‹   )r6   r  r   )rk   rL  r/   r0   Úm0Úv0Ús0Úk0rÆ  ÚvrJ   rW   r1   r1   r2   rý  ’  s   "zTestTruncnorm.test_momentsc                 C   s0   t jj dtjdd�\}}t|dƒ t|dƒ d S )Nr   Úmvrz  g Þe3Eˆé?gµ:÷&ŸA×?)r6   r  rc   r  r   )rk   rÆ  rR  r1   r1   r2   Útest_9902_moments˜  s   
zTestTruncnorm.test_9902_momentsc                 C   sV   d\}}t jj||dddd�}t|| ¡   k o%| ¡   k o%|k ƒ d S   ƒ d S )N)r[   r'  r   r   r[   r#  r#  r%  r1   r1   r2   Útest_gh_1489_trac_962_rvs�  s   8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s=J ‚tt  ||j	dd�k¡ƒ tt  |j
dd�|k¡ƒ d S )Nr.  r[   r‹  iÓÿÿÿr>  r"  r�   r@  é-   r#  r   )Úaxis)rc   r  r6   r  r�   rû   r*  r   rÜ   r$  r‡  r%  r1   r1   r2   Útest_gh_11299_rvs£  s   & zTestTruncnorm.test_gh_11299_rvsc                 C   s.   t tjdƒrtjjdddtj ¡ d� d S d S )NrŽ   r.  r‹  r�   rØ   )r.   rc   r�   r6   r  r�   rŽ   ro   r1   r1   r2   Útest_rvs_Generator­  s
   
ÿÿz TestTruncnorm.test_rvs_Generatorc                 C   sŠ   t  t j t j dt j dg¡}t  t jt jddt jg¡}t  g d¢¡}g d¢}tt ||¡ |¡|ƒ tt | | ¡ | ¡|ƒ d S )Néøÿÿÿr[   rh  )r[   ç      @r[  é	   rë  )g±Oèul"»gÚ�»=�ö!½g†L—òçœ!½g>EG	f§ ¼gõ^½K[X²)rc   r   r  r   r6   r  r–  r—  )rk   r/   r0   rZ   rT   r1   r1   r2   Útest_logcdf_gh17064³  s    "z!TestTruncnorm.test_logcdf_gh17064c                 C   s$   t  dd¡ d¡}d}t||ƒ d S )Nrç   r�   r�   gël).0Sú?)r6   r  rJ  r   )rk   r­   rd  r1   r1   r2   Útest_moments_gh18634¾  s   z"TestTruncnorm.test_moments_gh18634N)rà   rá   râ   r   r¹   rã   rä   rS  r  r  r!  r(  r,  r>  rD  rG  rc   r  Ú_truncnorm_stats_datar   rý  rT  rU  rX  rY  r]  r^  r1   r1   r1   r2   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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âˆÃ
=õ¿)r\   gh@ÜæXÀ)r‚   gh‚›Á<�Àc                 C   s$   d}t j ||¡}t||dd� d S )Nrˆ  r†   r{   )r6   Úgenlogisticr™   r   )rk   rZ   rT   r|  r‰  r1   r1   r2   rŠ  Ë  s   zTestGenLogistic.test_logpdfrÈ  ))r¾  gòTKµEèl@)r·  g£°ÉJÇk$@)r²   gûs�F<ù?)rº  çÛ7~F<ù?c                 C   r±  r”  )r   r6   rb  rD   rÉ  r1   r1   r2   rS  Ü  rÊ  zTestGenLogistic.test_entropyrÌ  )rë  r[   g8 †ž‡.)éô  rë  gpT	öoc                 C   rÎ  rÄ  )r   r6   rb  rÙ   rÐ  r1   r1   r2   r¤  ó  rÑ  zTestGenLogistic.test_sfú	q, c, ref)rt   rë  g^ˆ… Ì#@)rî  r`   gG´FŽf@c                 C   rÎ  ©NçVçž¯Â<r{   )r   r6   rb  rŸ  ©rk   r_  r|  rd  r1   r1   r2   r§  ø  rÑ  zTestGenLogistic.test_isf)rr   rë  gÄ°ïà§@)rP  rë  gˆ³1äìa@c                 C   rÎ  rf  )r   r6   rb  rÚ   rh  r1   r1   r2   r€  ý  rÑ  zTestGenLogistic.test_ppf)r\   ç{®Gáz”?g�(?ˆ„ý�¶)r%  rë  g'ÅÎTn7²»c                 C   rÎ  ry   )r   r6   rb  r–  rÐ  r1   r1   r2   r«    rÑ  zTestGenLogistic.test_logcdfN)rà   rá   râ   r¹   rã   rä   rŠ  rS  r¤  r§  r€  r«  r1   r1   r1   r2   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ejjdd„ ƒZdS )ÚTestHypergeomc                 C   r  r  r  ro   r1   r1   r2   r   	  r!  zTestHypergeom.setup_methodc                 C   s´   t jjddddd�}t |dk¡t |dk¡@ sJ ‚t |¡dks#J ‚|jjtd v s-J ‚t j ddd¡}t	|t
ƒs<J ‚t  ddd¡ d¡}t	|tjƒsNJ ‚|jjtd v sXJ ‚d S )Nrë  r[   r�   r$  r#  r   r&  )r6   Ú	hypergeomr�   rc   rÜ   r*  r§   r+  r   r,  rG  rH  r/  r1   r1   r2   r2    s    zTestHypergeom.test_rvsc                 C   s6   d}d}d}|}|}t j d|||¡}t|ddƒ d S )NiÄ	  r%  rd  r`   gÐk¸ã…’P?r"  )r6   rk  r7  r   )rk   ÚMrV  r  ÚtotÚgoodÚhgpmfr1   r1   r2   Ú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   r`   r   r:  r"  rw   )r   r6   rk  r7  ro   r1   r1   r2   Ú	test_args!  s   zTestHypergeom.test_argsc                 C   s4   t dtj dddd¡  kodkƒ d S   ƒ d S )Nr   r"  i¾oÌ i  if0  r:  )r   r6   rk  ri   ro   r1   r1   r2   Útest_cdf_above_one*  s   4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@çÍÌÌÌÌÌ@r�   ç     ˆÃ@ç     ˆÓ@c                    s"   g | ]}t j ˆˆ ˆ ˆ |¡‘qS r1   )r6   rk  rÙ   )r=   Úeaten©ÚorangesÚpearsÚquantiler1   r2   r?   5  s    ÿz1TestHypergeom.test_precision2.<locals>.<listcomp>)r   gpóˆ¶ÁÁR(gá»ã˜�R2gJÏÞ± p9g?ï§Mf¸Ö=çÊ
�Gº°¿?r   r   g�íµ ÷Æ >r/  )g     ŽÒ@rw  g     ‚Ô@g     ÿÔ@g     ‚ä@)r   r}  gò‘ÃÖ)9g­Áå"Ÿ¶1)rc   r   r   r6   rk  rÙ   )rk   Úfruits_eatenr­   rT   Ú	quantilesr  Ú	expected2r1   ry  r2   Ú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Ô   rN  rw   )	r6   rk  rD   rc   r   rO  r   r   r   )rk   ÚhgrR  rP  rQ  r1   r1   r2   rS  A  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 )Nrv  ç    ÐcAç    €„.Aç     jè@goƒÀŠ¡Àr�   r=  r   é@  éX  rG  g_7ß	j$æ±r'  )r6   rk  r—  r   ©rk   rW   rl  rV  r  ÚresultrT   r1   r1   r2   r®  M  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%  rG  g*ì³@ÝV»r'  é}   éú   rd  g›äáŽ×¨’½)r>  r>  r>  )r6   rk  r–  r   rc   r   Úfullrˆ  r1   r1   r2   r«  e  s8   zTestHypergeom.test_logcdfc                 C   s6   d}d}d}t j |||¡}|| | }t||ƒ d S )Nipó iP¥ ià.  )r6   rk  rÛ   r   )rk   rl  rV  r  ÚhmÚrmr1   r1   r2   Útest_mean_gh18511“  s   zTestHypergeom.test_mean_gh18511c                 C   s`   d}d}t  dd¡}d| }tj |d |||¡}t  |dk¡s"J ‚t  t  |¡dk ¡s.J ‚d S )Nr[   rÍ   r�   r'  r’  r   r   )rc   rÿ   r6   rk  rÙ   rÜ   Údiff)rk   rV  r  rK  Úpopulation_sizerW  r1   r1   r2   Útest_sf_gh18506ž  s   zTestHypergeom.test_sf_gh18506N)rà   rá   râ   r   r2  rp  rq  rr  r�  rS  r®  r«  r�  r¹   rã   rå   r’  r1   r1   r1   r2   rj    s    
	.rj  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	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   r`   g;ŠÆYþ%è?)rÌ   é   gRÙ²®a6_<)gÍÌÌÌÌH‡Àrî  gi|ØÈÀeÞ?)éàüÿÿrî  g6ãlÞÆÜ?)i+ýÿÿrX   g“Ö¬ðCCf9)iýÿÿrÔ   g Öºlåc                 C   ó<   t j ||¡}t||dd� t j ||¡}t||dd� d S r…   )r6   Úloggammari   r   rÚ   )rk   rZ   r|  ri   rW  Úyr1   r1   r2   r~  ²  s   zTestLoggamma.test_cdf_ppfzx, c, sf))rÎ   rˆ  gQOuÁ3;)é   r\   g\Z{°¡Â0)r•  rî  geŽÉ�ùœá?)iýÿÿg{®Gázd?gr0T±²ÿê?c                 C   r–  r…   )r6   r—  rÙ   r   rŸ  )rk   rZ   r|  rÙ   rJ   r˜  r1   r1   r2   rº  Ä  s   zTestLoggamma.test_sf_isfc                 C   ó    t j dd¡}t|ddd� d S )Néþÿÿr`   g     @�ÀrÉ  r{   )r6   r—  r™   r   )rk   Úlpr1   r1   r2   rŠ  Ï  s   zTestLoggamma.test_logpdfc                 C   ó,   d}d}t j ||¡}d}t||dd� d S )Nré  ç      @gI.¬öíŸ¼r•  r{   )r6   r—  r–  r   )rk   rZ   r|  r–  rd  r1   r1   r2   r«  ×  ó
   zTestLoggamma.test_logcdfc                 C   r�  )Ng      9Àç      @g!{1+ °Ò·r•  r{   )r6   r—  r—  r   )rk   rZ   r|  r—  rd  r1   r1   r2   r®  ß  rŸ  zTestLoggamma.test_logsfc                 C   sT   t  g d¢¡ dd¡}|D ]\}}}}}tjj|dd�}t|||||gdd� qd S )N)rr   gÑ"Ûù~jÿ¿g46<½@g o�Å�ø¿ré  r:  gÕ	h"lxâ¿gá“©‚Qú?g¬Zd;ò¿ç333333@rç  g{ƒ/L¦Š@g¼?¶?gÐ³Yõ¹ÚÒ¿gh‘í|?5Æ?rÌ   r�   Úmsvkrz  rÎ   r=  )rc   r   Úreshaper6   r—  r   )rk   Útabler|  rÛ   ÚvarÚskewÚkurtÚcomputedr1   r1   r2   r~  ç  s   ûÿþzTestLoggamma.test_statsr|  rX   rî  c                 C   sx   t jj|dd�}t |¡ ¡ sJ ‚t j |¡}t  t ||k ¡t	|ƒ¡}|j
dd�}|jd  k r7|jk s:J ‚ J ‚d S )NrÍ   r#  rh  )Úconfidence_levelrr   )r6   r—  r�   rc   ÚisfiniterÜ   ÚmedianÚ	binomtestÚcount_nonzerorû   Úproportion_cir&  r'  )rk   r|  rZ   ÚmedÚbtestÚcir1   r1   r2   r2  ö  s   $zTestLoggamma.test_rvsrÈ  ))rÍ  g3Hà»±k3@)r   rc  )rv  g8,[H^}	À)r¹  gÉ90$À)rº  gt‹ºÑum\Àc                 C   r±  rÄ  )r   r6   r—  rD   rÉ  r1   r1   r2   rS  	  ó   zTestLoggamma.test_entropyN)rà   rá   râ   r¹   rã   rä   r~  rº  rŠ  r«  r®  r~  r2  rS  r1   r1   r1   r2   r“  «  s&    ÿ
ÿ

ÿr“  c                   @   ó*   e Zd Zg d¢Zej de¡dd„ ƒZdS )ÚTestJohnsonsu))r›  r   r   g�®ÿÿÿï?rÍ  )rƒ   r   r   gHû'ôˆÁ;ç‚vIhÂ%,=)rÍ   r   r   g?Ä•x Á7rµ  rL  c                 C   sF   |\}}}}}t tj |||¡|dd� t tj |||¡||d� d S ©Nrµ  r{   )r   r6   Ú	johnsonsurÙ   rŸ  ©rk   rL  rZ   r/   r0   rÙ   Útolr1   r1   r2   rº  %	  ó   zTestJohnsonsu.test_sf_isfN©rà   rá   râ   Úcasesr¹   rã   rä   rº  r1   r1   r1   r2   r´  	  ó    r´  c                   @   r³  )ÚTestJohnsonb))r·  r   r   rŒ  rÿ  )r  r   r   g0új—…Añ:rµ  )r�  r   r   g�QbFÚÁµ5rµ  rL  c                 C   sF   |\}}}}}t tj |||¡|dd� t tj |||¡||d� d S )Nrµ  r{   r‹   )r   r6   r  rÙ   rŸ  r¸  r1   r1   r2   rº  ;	  rº  zTestJohnsonb.test_sf_isfNr»  r1   r1   r1   r2   r¾  ,	  r½  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   ó2   t  dd¡}tj |¡}tj |¡}t||ƒ d S ©Nrx  rë  )rc   r?  r6   Úlogisticri   rÚ   r   ©rk   rZ   r˜  r}  r1   r1   r2   r~  D	  ó   zTestLogistic.test_cdf_ppfc                 C   rÀ  rÁ  )rc   r?  r6   rÂ  rÙ   rŸ  r   rÃ  r1   r1   r2   rº  J	  rÄ  zTestLogistic.test_sf_isfc                 C   s4   d}d}t tj d| ¡|ƒ t tj |¡|ƒ d S )Ng      Ò<gÉg|ÓEA@r   )r   r6   rÂ  rÚ   rŸ  )rk   rW  Údesiredr1   r1   r2   Útest_extreme_valuesP	  s   z TestLogistic.test_extreme_valuesc                 C   s*   t j g d¢¡}g d¢}t||dd� d S )N)r9  r   r[   )gm\‡  .Àgï9úþB.ö¿gO&«æ $Àr†   r{   )r6   rÂ  r™   r   )rk   r‰  rT   r1   r1   r2   Útest_logpdf_basicW	  s   zTestLogistic.test_logpdf_basicc                 C   s"   t j ddg¡}t|ddgƒ d S )Nrq   r•  )r6   rÂ  r™   r   ©rk   r‰  r1   r1   r2   Ú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 )Nr\   ©rµ   r^   r_   c                 S   s�   | \}}t |ƒ}t t || | ¡dt || | ¡  ¡|d  }t || | t || | ¡d t || | ¡d   ¡| }||fS ©Nr   r`   )rû   rc   rO  r£   )Úinputr½   r/   r0   rV  Úx1Úx2r1   r1   r2   rì   k	  s   ÿÿÿÿþz#TestLogistic.test_fit.<locals>.funcr   r•  r‹   )r6   rÂ  r�   r$   Ú	_fitstartrZ   rÃ   r   )rk   Úloc_rvsÚ	scale_rvsr½   rì   Úexpected_solutionÚ
fit_methodr1   r1   r2   Útest_fite	  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 )Nr\   rr   r`   rÊ  r   rÁ   ©r¶   )r6   rÂ  r�   r»   ©rk   r½   r1   r1   r2   Ú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%  rd  )ç     ˆÃÀg      ‰Àg%h¢ã9f¾g?~T}%m»g�CÔx^&Ù’çVçž¯â<r{   )rc   r   r6   rÂ  r–  r—  r   )rk   rØ  rZ   r˜  rT   r1   r1   r2   Ú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þÿÿé%   é+   rV  rV  é0   é6   é7   é:   é;   r�   é=   r\  )rc   r   r»   r6   rÂ  rÖ  r1   r1   r2   Útest_fit_gh_18176‘	  s   
ÿÿzTestLogistic.test_fit_gh_18176N)rà   rá   râ   r~  rº  rÆ  rÇ  rÉ  r¹   rã   rä   rÔ  r×  rÜ  rå  r1   r1   r1   r2   r¿  B	  s    
ÿ

r¿  c                   @   r  )
Ú
TestLogserc                 C   r  r  r  ro   r1   r1   r2   r   ›	  r!  zTestLogser.setup_methodc                 C   óš   t jjddd�}t |dk¡sJ ‚t |¡dksJ ‚|jjtd v s$J ‚t j d¡}t	|t
ƒs1J ‚t  d¡ d¡}t	|tjƒsAJ ‚|jjtd v sKJ ‚d S )NrÔ   r$  r#  r   r&  r�   )r6   Úlogserr�   rc   rÜ   r*  r§   r+  r   r,  rG  rH  r/  r1   r1   r2   r2  ž	  rƒ  zTestLogser.test_rvsc                 C   s   t j dd¡}t|dƒ d S )NrÎ   rš  g&¦¬ª¶Y3)r6   rè  r7  r   ©rk   rÆ  r1   r1   r2   Útest_pmf_small_p©	  s   zTestLogser.test_pmf_small_pc                 C   ó   t j d¡}t|dƒ d S )NrÍ  gî˜W  ð?)r6   rè  rÛ   r   ré  r1   r1   r2   Útest_mean_small_p·	  s   zTestLogser.test_mean_small_pN)rà   rá   râ   r   r2  rê  rì  r1   r1   r1   r2   ræ  š	  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   ó   t j d¡S r  ©rc   r�   rŽ   ro   r1   r1   r2   r«   Ã	  ó   zTestGumbel_r_l.rngr>   rÐ  ©rÌ   r   r   rÑ  ©rX   r   r�   zfix_loc, fix_scaleTFc           	      C   sN   |j d|||d�}tƒ }|r|d |d< |r|d |d< t||fi |¤Ž d S )Nr\   ©rµ   r^   r_   rŠ   r`   r·   r¶   )r�   rý   r»   )	rk   r>   rÐ  rÑ  r³   rÜ  r«   r½   r¾   r1   r1   r2   r×  Ç	  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>r7  r{   )rc   r   rÃ   r   )rk   r>   r�  Úzr^   r_   r1   r1   r2   rÔ  Ü	  s   zTestGumbel_r_l.test_fitN)rà   rá   râ   r¹   Úfixturer«   rã   rä   r6   Úgumbel_rÚgumbel_lr×  rÔ  r1   r1   r1   r2   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  ¡ ��R 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   ƒ d S 1 �s[w   Y  d S )NrT  rr   ry  rz  r:  rˆ  rÊ  rv   rD  g«ªªªªªú?grÇqÇ@rÔ   r   gffffffö?gåK~±ä×?g      2@gÛ¶mÛ¶mÛ?ré  çUUUUUUõ?gÇqÇqÌ?r’  rž  g%I’$I’ô?g�QªÉãÎÂ?gUUUUUU@grÇqÇá?gä8Žã8Nb@)rX  rY  rZ  r[  r6   Úparetor   rc   r  r  r   rT  ©rk   rÆ  rR  rJ   rW   r1   r1   r2   r~  è	  s`   











$ÉzTestPareto.test_statsc                 C   s:   d}d}d}t jj||d|d�}|| | }t||ƒ d S )Ng    eÍÍAr`   rˆ  r   r]   )r6   rý  rÙ   r   )rk   rZ   r0   r_   rW  rT   r1   r1   r2   r¤  $
  s   zTestPareto.test_sfrî  rï  c                 C   rñ  r  rò  ro   r1   r1   r2   r«   ,
  ró  zTestPareto.rngz2ignore:invalid value encountered in double_scalarsr±   r   r`   r°   r   rÚ  r�   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r<|  kr<dks?J ‚ J ‚t jjd|||d |d�}t jj|dd	�\}	}
}t|d | ¡ ƒ |d }|jd }t|	|t t 	|| ¡  ¡¡ ƒ t|
dƒ d S )
Nr\   ©rµ   r0   r_   r^   rŠ   r   ç¤p=
×£ð?)r·   r¸   )r·   Úfix_b)r·   Úfbr`   rÁ   )
r6   rý  r�   rÃ   r   r$  r*  rc   rO  ru  )rk   r±   r°   rÚ  r«   r½   Úshape_mle_analytical1Úshape_mle_analytical2Úshape_mle_analytical3Úshape_mle_aÚ	loc_mle_aÚscale_mle_aÚ
data_shiftÚndatar1   r1   r2   rÔ  0
  s,   ÿÿÿÿ
ÿzTestPareto.test_fitrX   úfix_shape, fix_loc, fix_scalec                 C   ó   g | ]}d |v r|‘qS ©Fr1   ©r=   rW  r1   r1   r2   r?   P
  ó    ÿzTestPareto.<listcomp>TFr�   ©ÚrepeatÚignore©Úinvalidc           
      C   sV   t jjd||||d�}i }	|r||	d< |r||	d< |r||	d< tt j|fi |	¤Ž d S )Nr\   rÿ  r¸   r·   r¶   )r6   rý  r�   r»   ©
rk   r±   r°   rÚ  r´   r³   rÜ  r«   r½   r¾   r1   r1   r2   r¿   L
  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   r\   iÃ°& rØ   )r6   rý  r�   rc   r�   rŽ   r»   )rk   r*  Úlocationr_   r½   r1   r1   r2   Útest_fit_known_bad_seedb
  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õ   r`   rÁ   )r�   r`   r�   r   r�   rß  )r  r6   rý  rô  r"   rÃ   ro   r1   r1   r2   Útest_fit_warningsl
  s
   

ÿzTestPareto.test_fit_warningsc                 C   s.   t jjddd|d�}t|dƒ t j |¡}d S )Ni~ÿÿÿr   r\   )r^   r0   rµ   rŠ   r   )r6   rý  r�   r
   rÃ   )rk   r«   r½   rÒ   r1   r1   r2   Útest_negative_datat
  s   
zTestPareto.test_negative_dataN)rà   rá   râ   r~  r¤  r¹   rø  r«   rã   Úfilterwarningsrä   rÔ  r'   rc   Úerrstater¿   r  r  r  r1   r1   r1   r2   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 ]}t  |¡}tj |¡\}}t|dƒ tt  |¡ƒ qt  d¡}tj |¡\}}t||gddgƒ d S )N©r:  rw   rw   ç       Àrr   )	rc   rÂ   r6   Ú	genparetoÚ_get_supportr   r   Úisposinfr   )rk   r|  r/   r0   r1   r1   r2   Ú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 )Nrw   ©r|  r   r’  r"  r:  r[   )
r6   r  rc   r?  r   rb   rù  ri   rÙ   rÚ   ©rk   ÚrvrZ   r_  r1   r1   r2   Útest_c0Œ
  s   zTestGenpareto.test_c0c                 C   sœ   t jdd�}t ddd¡}t| |¡t j |¡ƒ t| |¡t j |¡ƒ t| |¡t j |¡ƒ t ddd¡}t| 	|¡t j 	|¡ƒ t| 
d	¡dƒ d S )
Nrœ  r#  r   r’  r"  rw   r:  r[   r   )r6   r  rc   r?  r   rb   Úuniformri   rÙ   rÚ   r™   r$  r1   r1   r2   Útest_cm1˜
  s   zTestGenpareto.test_cm1c                 C   sÐ   t jdd�}t| tj¡| tj¡gddgƒ tt | 	tj¡¡ƒ t jdd�}t| tj¡| tj¡gddgƒ tt | 	tj¡¡ƒ t jdd�}t| tj¡| tj¡gddgƒ tt | 	tj¡¡ƒ d S )NrX   r#  rw   r:  rœ  )
r6   r  r   rb   rc   r  ri   r   Úisneginfr™   ©rk   r%  r1   r1   r2   Ú
test_x_inf¦
  s   """zTestGenpareto.test_x_infc                 C   sŒ   t  ddd¡}dD ]:}tj ||¡}dD ]}tj ||| ¡}t||dd� qtj ||¡}dD ]}tj ||| ¡}t||dd� q0q	d S )	Nr   r[   r"  ©r   rÌ   ©rÉ  g›+¡†›„½r³  r‹   )rÉ  rÉ  )rc   r?  r6   r  rb   r   ri   )rk   rZ   r|  Úpdf0ÚdcÚpdfcÚcdf0Úcdfcr1   r1   r2   Útest_c_continuity´
  s   þùzTestGenpareto.test_c_continuityc              	   C   ó€   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� q*qd S ©Nr³  rt   rX   ©Úbaser   r"  F©Úendpointr:  )rw   rœ  r-  r‹   )rc   r5  rz  r?  r6   r  rÚ   r   )rk   r_  r|  Úppf0r/  Úppfcr1   r1   r2   Útest_c_continuity_ppfÂ
  ó   þþþz#TestGenpareto.test_c_continuity_ppfc              	   C   r4  r5  )rc   r5  rz  r?  r6   r  rŸ  r   )rk   r_  r|  Úisf0r/  Úisfcr1   r1   r2   Útest_c_continuity_isfÌ
  r=  z#TestGenpareto.test_c_continuity_isfc              	   C   sj   t jt jdddd�t jddddd�d	t jdddd� f }d
D ]}ttj tj ||¡|¡|dd� qd S )Nr³  rt   rX   r6  r   r"  Fr8  r:  )rÍ  g¬CÒÑ]r2¼rz   gVçž¯Ò¼rz   r‹   )	rc   r5  rz  r?  r   r6   r  ri   rÚ   )rk   r_  r|  r1   r1   r2   Útest_cdf_ppf_roundtripÖ
  s   þÿÿz$TestGenpareto.test_cdf_ppf_roundtripc                 C   s    t j dddd¡}t|dƒ d S )Nr¹  rt   r   r   gÐpŽµEÈœÀ)r6   r  r—  r   rÈ  r1   r1   r2   r®  ß
  s   zTestGenpareto.test_logsfzc, expected_statsr   )r   r   r`   r™  rN  rü  gÇqÇq@r[   r`   gÇqÇq¼?g      ò?g“$I’$	ú?çrÇqÇñ?r  glÁlÁ0@rÌ   )rr   çUUUUUUµ?r   ç333333ó¿c                 C   s$   t jj |dd�}t||ddd� d S )Nry  rz  r†   rz   rI  )r6   r  r   )rk   r|  Úexpected_statsr‰  r1   r1   r2   r~  å
  s   zTestGenpareto.test_statsc                 C   s   t j d¡}t|ddd� d S )NrÍ  gvÇ¼
  ð?r†   r{   )r6   r  r¥  r   )rk   rR  r1   r1   r2   Útest_varï
  s   zTestGenpareto.test_varN)rà   rá   râ   r"  r&  r(  r+  r3  r<  r@  rA  r®  r¹   rã   rä   rc   rT  r  r~  rF  r1   r1   r1   r2   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   r  r  r  ro   r1   r1   r2   r   ö
  r!  zTestPearson3.setup_methodc                 C   s˜   t jjddd�}t |¡dksJ ‚|jjtd v sJ ‚t j d¡}t|t	ƒs(J ‚t  d¡ d¡}t|tj
ƒs8J ‚|jjtd v sBJ ‚t|ƒdksJJ ‚d S )NrX   r$  r#  ÚAllFloatrr   r�   )r6   r+   r�   rc   r*  r§   r+  r   r,  rÅ   rH  rû   r/  r1   r1   r2   r2  ù
  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 )Nr`   ©rw   rX   r  )gtÏÛT´¤«?g×Å+®q¬?gÏ›Ö­?r7  r‹   r-  rX   çND}š¬´i?©r-  rç   rÌ   r   r   )rJ  gëôj¨•ª?gdž�CšÐ?gÖÌs§è†Ù?gÍ'§MøÍ?)r6   r+   rb   r   rc   r   r‰  r1   r1   r2   r9    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 )Nr`   rI  )g³rõ„¡Eï?gTpº]0ï?g‡•~€½ï?r7  r‹   r-  rX   g �E&"ôJ?rK  )gi€ãZ*ôJ?gƒh+Ã8w”?gý‘ÁcKÄ?g³|<x6à?gG‡íê?)r6   r+   ri   r   rc   r   r‰  r1   r1   r2   rB    s   ÿ

ÿzTestPearson3.test_cdfc                    s@   g d¢}d‰d‰ t j ˆ|¡}‡ ‡fdd„|D ƒ}t||ƒ d S )N©r-  rÌ   r   rr   rr   rH  c                    s$   g | ]}t t |¡jˆ ˆƒd  ‘qS r;   )r   r6   r+   rb   )r=   r¦  ©Úneg_infÚx_evalr1   r2   r?     s    ÿz<TestPearson3.test_negative_cdf_bug_11186.<locals>.<listcomp>)r6   r+   ri   r   )rk   Úskewsr5  Úint_pdfsr1   rM  r2   Ú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ƒs(J ‚d S )Nr   r`   r   r7  )r6   r+   rJ  r   r,  rc   Únumber)rk   rJ  r1   r1   r2   Ú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 )NrL  rr   rÀ   rˆ  rç   r`   )r6   r+   rÚ   ri   r   rc   r   r?  rb   rÙ   rŸ  )rk   rP  rO  r­   r¦  rZ   r1   r1   r2   Ú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)rX   rr   r:  çš™™™™™¹¿)r;  r’  rd  rÆ  )gÃ7¼À¢»>g¯Ž~×¼Ö=gp'ž+àè¦7güªªª;r·  r{   r   )r   r6   r+   rÙ   rò  )rk   r¦  rZ   rd  r1   r1   r2   r¤  A  s
   $zTestPearson3.test_sfN)rà   rá   râ   r   r2  r9  rB  rR  rT  rU  r¤  r1   r1   r1   r2   rG  õ
  s    

rG  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)rw   rX   r  rr   r:  )
gffffffþ¿rœ  rÀ   çš™™™™™É¿rV  rX   r  rr   r:  çffffffþ?)r6   Úkappa4ri   r  r   ©rk   rZ   rR  rW   r0  Ú	vals_compr1   r1   r2   Útest_cdf_genparetoN  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‹  r�   r[   rw   r-  r�   )rc   r?  r6   rZ  ri   Ú
genextremer   r[  r1   r1   r2   Útest_cdf_genextremeY  s   zTestKappa4.test_cdf_genextremec                 C   s@   t  ddd¡}d}d}tj |||¡}tj |¡}t||ƒ d S )Nr   r[   r:  rw   )rc   r?  r6   rZ  ri   rù  r   r[  r1   r1   r2   Útest_cdf_exponb  ó   zTestKappa4.test_cdf_exponc                 C   ó@   t  ddd¡}d}d}tj |||¡}tj |¡}t||ƒ d S )Nr‹  r�   r[   rw   )rc   r?  r6   rZ  ri   rù  r   r[  r1   r1   r2   Útest_cdf_gumbel_rk  ra  zTestKappa4.test_cdf_gumbel_rc                 C   s@   t  ddd¡}d}d}tj |||¡}tj |¡}t||ƒ d S )Nr‹  r�   r[   rœ  rw   )rc   r?  r6   rZ  ri   rÂ  r   r[  r1   r1   r2   Útest_cdf_logistict  ra  zTestKappa4.test_cdf_logisticc                 C   rb  )Nr‹  r�   r[   r:  )rc   r?  r6   rZ  ri   r'  r   r[  r1   r1   r2   Útest_cdf_uniform}  ra  zTestKappa4.test_cdf_uniformc                 C   s   t  dd¡ d S rË  )r6   rZ  ro   r1   r1   r2   Útest_integers_ctor†  s   zTestKappa4.test_integers_ctorN)
rà   rá   râ   r]  r_  r`  rc  rd  re  rf  r1   r1   r1   r2   rW  M  s    					rW  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   r  r  r  ro   r1   r1   r2   r   �  r!  zTestPoisson.setup_methodc                 C   s@   t  d¡}tj g d¢|¡}d|d |d d g}t||ƒ d S )Nr`   ©r   r   r`   rr   rÎ   )rc   ru  r6   rc  r7  r   )rk   Úln2r0  rT   r1   r1   r2   Ú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 )Nrh  r   )r   r   r   çffffffî?©r   r   )r6   rc  r7  r   Úintervalr   )rk   r0  rT   rm  r1   r1   r2   Útest_mu0—  s
   
zTestPoisson.test_mu0c                 C   rç  )Nrr   r$  r#  r   r&  r�   )r6   rc  r�   rc   rÜ   r*  r§   r+  r   r,  rG  rH  r/  r1   r1   r2   r2     rƒ  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@ry  rz  r:  )rw   r:  rv   r   r`   rr   )r6   rc  r   rc   rT  r   r  )rk   r#  r‰  rT   r1   r1   r2   r~  «  s    &zTestPoisson.test_statsN)rà   rá   râ   r   rj  rn  r2  r~  r1   r1   r1   r2   rg  Œ  s    	rg  c                   @   ól   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   r  r  r  ro   r1   r1   r2   r   ·  r!  zTestKSTwo.setup_methodc                 C   s¸   dD ]W}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   r`   r�   r[   r\   r‚   r   rr   r   r:  r`   rw   )rc   r   r5   r   Úgammalnr£   r6   ÚksonerÙ   r‡  Úkstwori   r   )rk   rV  rZ   Úv1ÚlgÚelgrT   rl  r1   r1   r2   rB  º  s   &ýïzTestKSTwo.test_cdfc                 C   sÂ   t  ddd¡}dD ]U}t  dd| d| ddd|  dg¡}d| | }tj |d ¡}|dkr5t  |¡nd}t  ddd||  dtj 	d|¡ t
d| dƒdg¡}tj 	||¡}t||ƒ q	d S )Nr   r   r"  rq  rr   r:  r`   )rc   r?  r   r5   r   rr  r£   r6   rs  rÙ   r$  rt  r   )rk   rZ   rV  ru  rv  rw  rT   rŽ  r1   r1   r2   r¤  Î  s   &
ýõzTestKSTwo.test_sfc                 C   s\   t  ddd¡dd … }g d¢}|D ]}|t  |¡ }tj ||¡}t  |¡}t|dƒ qd S )Nr   r`   r"  r   )r%  r\   rë  i�  r‚   rƒ   rÍ  )rc   r?  rT  r6   rt  ri   r�  r
   )rk   rZ   ÚnsÚ_xÚxnÚprobsÚdiffsr1   r1   r2   Útest_cdf_sqrtnÝ  s   
üzTestKSTwo.test_cdf_sqrtnc                 C   sF   t  ddd¡}dD ]}tj ||¡}tj ||¡}t|d| ƒ q	d S ©Nr   r   r"  rq  )rc   r?  r6   rt  ri   rÙ   r   )rk   rZ   rV  rl  rŽ  r1   r1   r2   r�  ê  s   ýzTestKSTwo.test_cdf_sfc                 C   sT   t  ddd¡}dD ]}|t  |¡ }tj ||¡}tj ||¡}t|d| ƒ q	d S r~  )rc   r?  rT  r6   rt  ri   rÙ   r   )rk   rZ   rV  rz  rl  rŽ  r1   r1   r2   Útest_cdf_sf_sqrtnñ  s   üzTestKSTwo.test_cdf_sf_sqrtnc                 C   ón   t  ddd¡}dD ]+}||d| k }tj ||¡}d|k |dk @ }tj ||¡}t|| || dd� q	d S )	Nr   r   r"  rq  rr   rP  r·  r{   )rc   r?  r6   rt  ri   rÚ   r   ©rk   rZ   rV  rz  rl  Úcondr0  r1   r1   r2   Útest_ppf_of_cdfù  s   úzTestKSTwo.test_ppf_of_cdfc                 C   r€  )	Nr   r   r"  rq  rr   r:  r·  r{   )rc   r?  r6   rt  rŸ  rÙ   r   )rk   rZ   rV  rz  Úvals_isfr‚  r0  r1   r1   r2   Útest_isf_of_sf  s   ûzTestKSTwo.test_isf_of_sfc                 C   ót   t  ddd¡}dD ].}|t  |¡ |d| k }tj ||¡}d|k |dk @ }tj ||¡}t|| || ƒ q	d S )Nr   r   r"  rq  rr   r:  )rc   r?  rT  r6   rt  ri   rÚ   r   r�  r1   r1   r2   Útest_ppf_of_cdf_sqrtn  s   ûzTestKSTwo.test_ppf_of_cdf_sqrtnc                 C   r†  )Nr   r   r"  rq  rr   rk  )rc   r?  rT  r6   rt  rÙ   rŸ  r   )rk   rZ   rV  rz  rŽ  r‚  r0  r1   r1   r2   Útest_isf_of_sf_sqrtn  s   úzTestKSTwo.test_isf_of_sf_sqrtnc                 C   sJ   t  ddd¡dd … }dD ]}tj ||¡}tj ||¡}t||ƒ qd S r~  )rc   r?  r6   rt  rÚ   ri   r   )rk   r{  rV  rz  rl  r1   r1   r2   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 ]%\}}|t  d	¡ t  t jd	 | ¡ }tj ||¡}t	||| d
d� q&d S )N)r[   r%  r\   rë  rd  r‚   )rN  gUUUUUUÕ?rr   r   r`   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ˆûÿï?r`   rÙ  r{   )
rc   r   Ú	enumerateru  rT  rd   r6   rt  ri   r   )rk   rx  ÚratiosrT   ÚidxrV  rZ   rl  r1   r1   r2   Útest_simard_lecuyer_table1&  s   õ"ýz$TestKSTwo.test_simard_lecuyer_table1N)rà   rá   râ   r   rB  r¤  r}  r�  r  rƒ  r…  r‡  rˆ  r€  rŒ  r1   r1   r1   r2   rp  ¶  s    
		
rp  c                   @   rq  )ÚTestZipfc                 C   r  r  r  ro   r1   r1   r2   r   I  r!  zTestZipf.setup_methodc                 C   rç  )Nrˆ  r$  r#  r   r&  r�   )r6   Úzipfr�   rc   rÜ   r*  r§   r+  r   r,  rG  rH  r/  r1   r1   r2   r2  L  rƒ  zTestZipf.test_rvsc                 C   s\   t jj dd�\}}tt |¡ƒ t|tjƒ t jj ddd�\}}tt ||g¡ ¡  ƒ d S )Nçffffff@©r/   r	  Úsk©r/   r{  )r6   rŽ  r   rc   rª  r   r  rÜ   rþ  r1   r1   r2   rý  W  s
   zTestZipf.test_momentsN)rà   rá   râ   r   r2  rý  r1   r1   r1   r2   r�  H  rv  r�  c                   @   r  )
ÚTestDLaplacec                 C   r  r  r  ro   r1   r1   r2   r   b  r!  zTestDLaplace.setup_methodc                 C   sœ   t jjddd�}t |¡dksJ ‚|jjtd v sJ ‚t j d¡}t|t	ƒs(J ‚t  d¡ d¡}t|tj
ƒs8J ‚|jjtd v sBJ ‚t j d¡d usLJ ‚d S )Nrˆ  r$  r#  r&  r�   rÖ   )r6   Údlaplacer�   rc   r*  r§   r+  r   r,  rG  rH  r/  r1   r1   r2   r2  e  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:  ry  rÝ  r   r`   rÎ   rl  rÊ  rÉ  rÍ  r/  )r6   r”  rc   rÿ   r7  rO  r   r   )rk   r/   ÚdlrÆ  rR  rJ   rW   r  r}  ÚppÚm2Úm4r1   r1   r2   r~  p  s   

&(zTestDLaplace.test_statsc                 C   sF   t  d¡}t |¡}| d¡\}}}}t||fdƒ t||fdƒ d S )Nrv   ry  )rw   rw   )ré  ç      
@)rc   ru  r6   r”  r   r   )rk   r/   r•  rÆ  rR  rJ   rW   r1   r1   r2   Útest_stats2}  s
   

zTestDLaplace.test_stats2N)rà   rá   râ   r   r2  r~  rš  r1   r1   r1   r2   r“  a  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   r  r  r  ro   r1   r1   r2   r   †  r!  zTestInvgauss.setup_methodzrvs_mu,rvs_loc,rvs_scale)r`   r   r   )g
×£p=Š@g¦›Ä °r@gƒÀÊ¡E6@c                 C   sB  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sŸJ ‚ J ‚d S )Nr\   )rµ   r#  r^   r_   rÁ   rÌ   rz   r/  r   rß  r   )Úfmur   )Úfix_mu©r¸   )
r6   r  r�   rÃ   rc   rÛ   rû   rO  r   r   )rk   Úrvs_mur°   rÚ  r½   r#  r^   r_   Úmu_tempÚ	scale_mleÚmu_mleÚ
shape_mle1Ú
shape_mle2Ú
shape_mle3r1   r1   r2   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¡sTJ ‚t
tj||d d� t
tj|dd� t
tj||t j d¡d d	� d S )
Nr×   r\   )rµ   r#  r^   r_   rŠ   r   r`   )r·   rœ  rÁ   r   rß  )rc   r�   r–  r6   r  r�   rè   ré   rÃ   r   r»   rÜ   Úrand)	rk   rŸ  r°   rÚ  r«   r½   Ú	super_fitÚsuper_fittedÚinvgauss_fit©Ú	__class__r1   r2   r¿   ¨  s$   
ÿ



ÿz(TestInvgauss.test_fit_MLE_comp_optimizerc                 C   sN   t tjƒ t t¡� tjjg d¢dd� W d   ƒ d S 1 s w   Y  d S rä  )r  r6   r  r¹   r   r"   rÃ   ro   r1   r1   r2   Útest_fit_raise_errorsÌ  s   
"ÿz"TestInvgauss.test_fit_raise_errorsc                 C   s’   g d¢}g d¢}t jjd|d�}t||ƒ t jjddd�}t|dƒ t jjddd�}t|d	ƒ t j d
d¡}t|dƒ t j dd¡}t|dƒ d S )N)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ƒÏÙ·
?ï?)r6   r  ri   r   r   rÙ   )rk   r#  rT   rP   Ú
cdf_actualÚ	sf_actualr1   r1   r2   r�  Ò  s   



zTestInvgauss.test_cdf_sfc                 C   sh   t jjddd�}t|dƒ t j dd¡}t|dƒ t jjddd�}t|dƒ t j dd¡}t|d	ƒ d S )
Nr·  r¯  r®  giJ.ôà‹³Àr°  göŒr^ñßºrî  gpg¨úFš’gpQ^ÇLÀ)r6   r  r–  r   r—  )rk   r–  r—  r1   r1   r2   r™  õ  s   	


zTestInvgauss.test_logcdf_logsfzmu, ref))r†  g ‹™ç,9À)rî  g%£æã!À)rt   gä4¹0üÀ)r²   gµK'Š˜
@)rº  g°é`pŠ˜
@c                 C   r±  r¶  )r   r6   r  rD   )rk   r#  rd  r1   r1   r2   rS    ó   zTestInvgauss.test_entropy)rà   rá   râ   r   r¹   rã   rä   rÔ  r¿   r¬  r�  r™  rS  Ú__classcell__r1   r1   rª  r2   r›  …  s    ÿ
ÿ"#r›  c                   @   s.   e Zd Zej dg d¢¡dd„ ƒZdd„ ZdS )Ú
TestLandauÚname)rb   ri   rÙ   rÚ   rŸ  c                 C   sr   |dv rt  ddd¡f}nt  ddd¡f}ttj|ƒ}ttj|ƒ}||Ž }|g |¢d‘d‘R Ž }t||dd	� d S )
N>   rŸ  rÚ   rX   rÕ   r�   rç   r[   r   rÉ  r{   )rc   r?  r  r6   ÚlandauÚlevy_stabler   )rk   r¶  rZ   Úlandau_methodÚlevy_methodr­   rd  r1   r1   r2   Útest_landau_levy_agreement  s   z%TestLandau.test_landau_levy_agreementc                 C   s4   t tjjdd�tjfd ƒ t tj d¡tjƒ d S )Nry  rz  rÎ   r�   )r   r6   r·  rc   r  rJ  ro   r1   r1   r2   rý  &  s   zTestLandau.test_momentsN)rà   rá   râ   r¹   rã   rä   r»  rý  r1   r1   r1   r2   rµ    s    
rµ  c                       s‚   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dd„ Z‡  ZS )ÚTestLaplacer°   )r‹  r   r   r`   rÚ  )r   r`   r�   r[   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×   r\   rö  rz   r/  rÁ   rÕ  r`   rß  )rc   r�   r–  r6   rZ  r�   r«  rO  r�   rû   rÃ   r   r   rô  r   r  r  r  )	rk   r°   rÚ  r«   r½   Úloc_mler¡  r^   r_   r1   r1   r2   rÔ  -  s0   ÿ



ÿzTestLaplace.test_fitúrvs_loc,rvs_scale))r‹  r[   ©r[   r�   )rr   r  c                    s’   t j d¡}tjjd|||d�}dd„ }tj |¡\}}tttjƒtjƒ |¡\}}	||||ƒ}
|||	|ƒ}|
|k sEt j	|
|ddd�sGJ ‚d S d S )Nr×   r‚   rö  c              	   S   s8   dt |ƒ t d| ¡ d| t t ||  ¡¡   S )NrÌ   r`   r   )rû   rc   ru  rO  r�   )r^   r_   r½   r1   r1   r2   Úlle  s   ÿz3TestLaplace.test_fit_MLE_comp_optimizer.<locals>.llrz   r/  )
rc   r�   r–  r6   rZ  r�   rÃ   rè   ré   rë   )rk   r°   rÚ  r«   r½   rÀ  r^   r_   Úloc_optÚ	scale_optÚll_mleÚll_optrª  r1   r2   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;  rÆ  rF  r™  rÁ   rÎ   rz   r/  rÕ  )rc   r   r6   rZ  rÃ   r   )rk   r½   r^   r_   r1   r1   r2   Útest_fit_simple_non_random_datas  s
   z+TestLaplace.test_fit_simple_non_random_datac                 C   sl   d}t j | ¡}|dksJ ‚t j |¡}|dksJ ‚t j |¡}|dks'J ‚t j | ¡}|dks4J ‚d S )Nr‚   rw   r:  )r6   rZ  ri   rÙ   )rk   rZ   Úp0Úp1r1   r1   r2   Útest_sf_cdf_extremes|  s   z TestLaplace.test_sf_cdf_extremesc                 C   s.   d}t j |¡}t|t | ¡d dd� d S )Nrë  r`   r†   r{   )r6   rZ  rÙ   r   rc   r£   )rk   rZ   rW  r1   r1   r2   r¤  ‘  ó   zTestLaplace.test_sfc                 C   s.   d}t j |¡}t|t d| ¡ dd� d S )NgÙ}ÚõÐò¾:r`   r†   r{   )r6   rZ  rŸ  r   rc   ru  )rk   rW  rZ   r1   r1   r2   r§  –  rÉ  zTestLaplace.test_isfc                 C   s>   d}d}t j |¡}t||ƒ t j | ¡}t||dd� d S )Nr>  g$›I’—C¼r•  r{   )r6   rZ  r–  r   r—  r˜  r1   r1   r2   r™  ›  s   
zTestLaplace.test_logcdf_logsf)rà   rá   râ   r¹   rã   rä   rÔ  r¿   rÅ  rÈ  r¤  r§  r™  r´  r1   r1   rª  r2   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)rv   rÊ  r;  )rÙ  r¹  ç  4&õkC)gÈ ùÿÿÿï?g ÂëþKH¤9gXr—±òL0rz   r{   )rc   r   r   r6   Ú
loglaplacerÙ   )rk   r|  rZ   rd  r1   r1   r2   r¤  §  s   zTestLogLaplace.test_sfc                 C   ó0   d}g d¢}g d¢}t tj ||¡|dd� d S )Nr™  )rÖ   rX   r  rš  rÖ  )gHhlh#è?g”H]9ç@ú?g"fjÛî#Ž@g1”›‘1Ags!ñ8 àwBrÉ  r{   )r   r6   rÌ  rŸ  )rk   r|  r_  rd  r1   r1   r2   r§  ¯  s   zTestLogLaplace.test_isfrf  ©r   r`   r�   rÎ   c                 C   sX   d|d  }t  d|d d¡}ttj ||¡t jƒ t  t  tjj||d�¡¡r*J ‚d S )Nry  r   rr   rz  )	rc   rÿ   r   r6   rÌ  rJ  r  rê   rª  )rk   rf  Úmomr|  r1   r1   r2   Útest_moments_stats¸  s   $z!TestLogLaplace.test_moments_statsr|  )rr   r:  rv   z
loc, scale)rD  gš™™™™™@Úfix_cTFrÜ  c                 C   s¾   t j d¡}tjj|||d|d�}d|i}|r||d< |r!||d< dt|ƒ }	|	dkrSd	}
tjt	t
f|
d
�� tjj|fi |¤Ž W d   ƒ d S 1 sLw   Y  d S ttj|fi |¤Ž d S )Nrœ   r\   rÞ  r·   Úfcr¶   r�   r   rö   r÷   )rc   r�   rŽ   r6   rÌ  r�   rû   r¹   r   r   r  rÃ   r»   )rk   r|  r^   r_   rÑ  rÜ  r«   r½   r¾   Únfreerâ  r1   r1   r2   Útest_fit_analytic_mleÃ  s&   ÿ
ÿþz$TestLogLaplace.test_fit_analytic_mleN)
rà   rá   râ   r¤  r§  r¹   rã   rä   rÐ  rÔ  r1   r1   r1   r2   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)rN  rv   g      î?)g     àï?g      p?gÞÝSQýð>c                 C   rÎ  ry   )r   r6   ÚpowerlawrÙ   )rk   rZ   r/   rÙ   r1   r1   r2   r¤  â  ó   zTestPowerlaw.test_sfrî  rï  c                 C   rñ  r  rò  ro   r1   r1   r2   r«   è  ró  zTestPowerlaw.rngr±   )rX   rr   rÔ   r   r`   r°   rô  rÚ  rõ  r  c                 C   r  r  r1   r  r1   r1   r2   r?   ð  r  zTestPowerlaw.<listcomp>TFr�   r  c           
      C   sp   t jjd||||d�}tƒ }	|r||	d< |r"t | ¡ tj ¡|	d< |r(||	d< tt j|fi |	¤ddi¤Ž d S )Nr‹  )rµ   r/   r^   r_   rŠ   r¸   r·   r¶   rí   T)	r6   rÖ  r�   rý   rc   Ú	nextafterr$  r  r»   r  r1   r1   r2   r¿   ì  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•`- @rw   gÏrØþßŸA@r\   r�   )r/   r^   r_   rµ   rŠ   r¶   r`   )r6   rÖ  r�   rc   r�   rŽ   Úptpr»   )rk   r/   r  r_   r½   r¾   r1   r1   r2   Útest_problem_case  s   
ÿzTestPowerlaw.test_problem_casec                 C   sf  t tjƒ d}tt|d�� tjjg d¢ddd� W d   ƒ n1 s#w   Y  d}tt|d�� tjjg d¢dd� W d   ƒ n1 sEw   Y  d}tt|d�� tjjg d¢d	d� W d   ƒ n1 sgw   Y  d
}tt|d�� tjjg d¢dd� W d   ƒ n1 s‰w   Y  d}tt|d�� tjjg d¢dd� W d   ƒ d S 1 s¬w   Y  d S )Nz7 Maximum likelihood estimation with 'powerlaw' requiresr÷   ©r   r`   rÎ   r   r�   rß  r`   rÁ   r   z$Negative or zero `fscale` is outsider-  rÕ  z0`fscale` must be greater than the range of data.)r  r6   rÖ  rô  r"   rÃ   r  rõ  r1   r1   r2   r    s*   
ÿÿÿÿ"ÿzTestPowerlaw.test_fit_warningsc                 C   sJ   g d¢}t j}tjdd�� t||ƒ W d   ƒ d S 1 sw   Y  d S )N)r   r   r`   r`   r�   r�   r�   r�   rÎ   rÎ   r�   r™  r  ©Úover)r6   rÖ  rc   r  r»   )rk   r½   r>   r1   r1   r2   Útest_minimum_data_zero_gh17801-  s
   "ÿz+TestPowerlaw.test_minimum_data_zero_gh17801N)rà   rá   râ   r¹   rã   rä   r¤  rø  r«   r'   r¿   rÚ  r  rÞ  r1   r1   r1   r2   rÕ  ß  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))r\   rë  r   gaº!è®ÅR()rî  rë  r   g•;ùÿÿÿï?)rî  ri  r   gEþÿÿÿÿï?)ç’ÕMÏð€Dri  r   gÌìñºžœ=c                 C   ó   t tj |||¡|dd� d S r…   )r   r6   r  rÙ   ©rk   rZ   r|  rJ   rd  r1   r1   r2   r¤  G  ó   zTestPowerLogNorm.test_sfzq, c, s, ref)g¨½ßéÿÿï?ri  r   rt   )gR4Ó-—ºrë  r   r‚   c                 C   rá  )Ng»½×Ùß|Ë=r{   )r   r6   r  rŸ  )rk   r_  r|  rJ   rd  r1   r1   r2   r§  Q  s   zTestPowerLogNorm.test_isf))r‘  ri  r   gßÿÿÿÿÿï?)r7  ri  r   g°¹��Šv§6)r7  rë  r   g+	94¤|7)r^  rë  r   g�üÿÿÿï?c                 C   rá  )Ng´àø¤tã =r{   )r   r6   r  ri   râ  r1   r1   r2   rB  W  rã  zTestPowerLogNorm.test_cdf))rà  ri  r   gS^ÕŒ‰e9)ç@Œµx¯Drî  r   g0Ÿ�ÿg;)g¥\Ãñ)c=Hrî  r   g±ó�7Hƒ7c                 C   rá  )NgßÄAfcŠ=r{   )r   r6   r  rb   râ  r1   r1   r2   r9  j  s   zTestPowerLogNorm.test_pdfN)
rà   rá   râ   r¹   rã   rä   r¤  r§  rB  r9  r1   r1   r1   r2   rß  6  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ë  r`   g²e¨²”()r\   ri  g%Ó!@Åç6)rë  rt   g©¼T€;²ä-c                 C   rÎ  r…   )r   r6   Ú	powernormrÙ   rÐ  r1   r1   r2   r¤  z  s   zTestPowerNorm.test_sfre  ))rÙ  rë  g½�Â�Ä¿)gwJëÿï?r\   g!XñèÌÀ)r  ri  gç¼‚U�À)r  ri  gäÍ«¨ê1@)r×  r`   g§µDÁý@)ç¸ÔJzî�5r�   gU!zYr@c                 C   rÎ  ©NrB  r{   )r   r6   ræ  rŸ  rh  r1   r1   r2   r§  Š  ó   zTestPowerNorm.test_isf))iôÿÿÿr\  g€.Óu	ÁT9)r`   r\  çñÿÿÿÿÿï?)rx  r\  gs¹K�¿-)r‹  ri  gkö‰Ÿ8>)rx  ri  g^Çuó1-c                 C   rÎ  r¶  )r   r6   ræ  ri   rÐ  r1   r1   r2   rB  ›  r¼  zTestPowerNorm.test_cdfN)	rà   rá   râ   r¹   rã   rä   r¤  r§  rB  r1   r1   r1   r2   rå  r  s    ÿ
ÿ

ÿrå  c                   @   sN   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S )ÚTestInvGammac                 C   s¼   t  ¡ �P 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||ƒ qBW d   ƒ d S 1 sWw   Y  d S )NrT  g�Âõ(\O3@ry  r’  )gœ¥Ì~ö«?g×C‰Xù•&?g*ª7ÐgSð?gBqFçq @)rì  çÍÌÌÌÌÌ@gffffff@)r’  gŒEžçyÞ?gÑž3ozÓË?g¥á^YåbÊ?g,žÓr–âŠ?gO¶»æùD@g2á*Z@gøF�Nì„8@)rX  rY  rZ  r[  r6   r  r   rc   r  r  rþ   r   )rk   ry  rT   r/   rZ   r˜  r1   r1   r2   Ú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   )rc   rz  r6   r  ri   rÚ   r   rÃ  r1   r1   r2   r~  ¹  s   zTestInvGamma.test_cdf_ppfc                 C   sR   t jdkrt dd¡}nt dd¡}tj |d¡}tj |d¡}t||dd� d S )Nl        r`   r\   é   r   r:  r{   )	ÚsysÚmaxsizerc   rz  r6   r  rÙ   rŸ  r   rÃ  r1   r1   r2   rº  À  s   
zTestInvGamma.test_sf_isfc                 C   rÅ  )Nrƒ  rÂ  gç“M$”¼r•  r{   )r6   r  r–  r   ©rk   rZ   r/   rd  r–  r1   r1   r2   r«  Í  rÇ  zTestInvGamma.test_logcdfc                 C   rÅ  )Nrt   r   gârŒÿØ·r•  r{   )r6   r  r—  r   ©rk   rZ   r/   rd  r—  r1   r1   r2   r®  Õ  rÇ  zTestInvGamma.test_logsfúa, ref)r²   g—70K6:À)rº  gVMO€uÀc                 C   r±  ry   )r   r6   r  rD   ©rk   r/   rd  r1   r1   r2   Útest_large_entropyÝ  s   zTestInvGamma.test_large_entropyN)rà   rá   râ   rí  r~  rº  r«  r®  r¹   rã   rä   rõ  r1   r1   r1   r2   rë  ¥  s    ÿÿrë  c                   @   r  )
Ú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)r`   r   r:  c                 S   ó&   g | ]\}}}|j |jg|¢R Ž ‘qS r1   ©rb   r/   ©r=   Ú_fÚ_argsrÒ   r1   r1   r2   r?   ó  ó   & z(TestF.test_endpoints.<locals>.<listcomp>c                 S   ó   g | ]\}}}|‘qS r1   r1   ©r=   rú  rû  Ú	_correct_r1   r1   r2   r?   ô  ó    )r6   Úfrb   r/   r   )rk   r½   rú  rû  Ú_correctÚansÚcorrectr1   r1   r2   ro  í  s   zTestF.test_endpointsc                 C   sX   t jj dddd�\}}}}tt |¡ƒ tt |¡ƒ tt |¡ƒ tt |¡ ƒ d S )Nr"  ç      @ry  rz  )r6   r  r   rc   rª  rþ  r1   r1   r2   Útest_f_moments÷  s
   zTestF.test_f_momentsc                 C   sV   t  ¡ � t  dt¡ tjjdgd g d¢dd� W d   ƒ d S 1 s$w   Y  d S )NrT  r"  rÎ   )r`   rÎ   r™  rh  ry  ©ÚdfnÚdfdr{  )rX  rY  rZ  r[  r6   r  ro   r1   r1   r2   Útest_moments_warningsÿ  s   
"þzTestF.test_moments_warningsc                 C   sD  t  dgdgg¡}t  ddg¡}tjj||dd�\}}}}||d  gd }t||ƒ d|d  || d  | |d d  |d  }t||ƒ d| | d t  d|d  ¡ |d	 t  ||| d  ¡  }	t||	ƒ d|d
| d  || d  |d |d d    }
||d	  |d  || d  }|
| }t||ƒ d S )Nr�   r"  r<  ry  r  r`   rÎ   rh  r™  r�   é   )rc   r   r6   r  r   rT  )rk   r  r	  rÆ  rR  rJ   rW   r—  Úv2Ús2Úk2numÚk2denÚk2r1   r1   r2   Útest_stats_broadcast  s"   
0
 ÿ
ÿ zTestF.test_stats_broadcastN)rà   rá   râ   ro  r  r
  r  r1   r1   r1   r2   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	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ej dg d¢¡dd„ ƒZdS )ÚTestStudentTc                 C   s   t tj ddg¡ddgƒ d S )Nr�   r™  g‚áËé§ô?g€©Ž˜ó?)r   r6   rV  r\  ro   r1   r1   r2   Útest_rvgeneric_std  ó   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   ry  )rª  r{  ç)\�Âõ(ð?rw   r`   g®Gáz @g–     i@r�   r‘  g®Gáz@rÎ   g
×£p=
@)rw   gq    À‚@)r   r6   rV  rc   r  r  ro   r1   r1   r2   Útest_moments_t  s    ÿÿÿÿzTestStudentT.test_moments_tc                 C   s*   g d¢}g d¢}t tj |¡|dd� d S )N)r   r`   rF  r\   )gÖíð£‰?@g�TÄÀM]ÿ?gößßgY÷?çU•“°Ýö?r†   r{   ©r   r6   rV  rD   )rk   rª  rT   r1   r1   r2   Útest_t_entropy+  s   zTestStudentT.test_t_entropyzv, ref)r\   r  )rº  r  c                 C   r±  rÄ  r  )rk   rR  rd  r1   r1   r2   Útest_t_extreme_entropy2  r²  z#TestStudentT.test_t_extreme_entropyÚmethname)rb   r™   ri   rÚ   rÙ   rŸ  Ú
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§   r[   r#  r�   r   ©rª  r^   r_   r]   )rc   r�   r‘   rÂ   Úboolr'  r*  Úrandnr  r6   rV  rò  r  r   )rk   r  r  rª  rZ   Út_distÚ
t_dist_refÚ	norm_distÚt_methÚ
t_meth_refÚ	norm_methr­   r1   r1   r2   Útest_t_inf_dfC  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 ]}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  r[   r#  r�   r   ry  )rª  r^   r_   r{  ©r^   r_   r{  rÎ   r  r]   )rc   r�   r‘   rÂ   r  r'  r*  r  r6   rV  rò  rM  r   rD   )rk   r  rª  r­   Ú
res_ex_infÚres_ex_noinfrK  r1   r1   r2   Útest_t_inf_df_stats_entropyY  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   r°  r[   r   )rº  çšd~ÅQJrä  r   )gZ_2äø³ö¿g9þ¬ƒ„Ágû’!ÇŸuIÀgµ¾dÈñgý¿)g73ŽåøÎ?r   gÚÕ´FhAW;gƒÈÉm0_Ä?rÉ  r{   )r   r6   rV  r™   rb   )rk   rZ   rª  Ú
logpdf_refÚpdf_refr1   r1   r2   Útest_logpdf_pdfp  s   zTestStudentT.test_logpdf_pdfú
x, df, ref))g     ÀRÀr'  gµ´u‰SaGÀ)r   r'  r“  )ç     ÀR@r'  gGnï`•?·»c                 C   s>   t j ||¡}t||dd� t j | |¡}t||dd� d S r”  )r6   rV  r–  r   r—  )rk   rZ   rª  rd  r–  r—  r1   r1   r2   r™  ~  s   zTestStudentT.test_logcdf_logsfN)rà   rá   râ   r  r  r  r¹   rã   rä   r  r'  r+  r/  r™  r1   r1   r1   r2   r    s8    ÿÿ

ý
ý
ÿr  c                   @   ro  )ÚTestRvDiscretec                 C   r  r  r  ro   r1   r1   r2   r   ‹  r!  zTestRvDiscrete.setup_methodc                 C   sœ   g d¢}g d¢}d}t jd||fd�}|j|d�}t|tjƒs!J ‚t||ƒD ]\}}tt||kƒt	|ƒ | ƒdk s<J ‚q&| ¡ }t 
t|ƒtj¡sLJ ‚d S )N)rÌ   r   r   r`   r�   rÎ   )rw   r^  r­  rw   r^  rw   r‚   Úsample)r¶  Úvaluesr#  r  )r6   rA   r�   r,  rc   rH  rþ   r�   rO  rÅ   r¦   ré   Úinteger)rk   ÚstatesÚprobabilityÚsamplesrf  rZ   rJ   rW  r1   r1   r2   r2  Ž  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)rN  r
  r^  rh  ©r4  )r:  r   r   rw   )	rc   r   r6   rA   rO  r   rD   r   r   )rk   r;  rW  rQ  rR  r1   r1   r2   rS  œ  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Û  ©rr   r^  r  r9  r:  ré  rÊ  r`   rr   r  rw   r^  rÉ  r‹   )r6   rA   r   r7  )rk   ÚxkÚpkr%  rZ   r1   r1   r2   rM  ¨  s   ÿ
ÿ
þzTestRvDiscrete.test_pmfc                    ód   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:  r9  )rç   r:  rì  rˆ  rv   rÊ  rÎ   r�   )r   rr   rr   rr   rÖ   rÖ   r   r   rÉ  r‹   c                    ó   g | ]}ˆ   |¡‘qS r1   )ri   )r=   r}  ©r%  r1   r2   r?   ½  r   z+TestRvDiscrete.test_cdf.<locals>.<listcomp>)r6   rA   r   ri   )rk   r;  r<  Úx_valuesrT   r1   r?  r2   rB  ³  ó   
ÿzTestRvDiscrete.test_cdfc                    r=  )
NrÛ  r:  r9  )rX   rr   r  rÖ   rÕ   r:  )r   r   r`   r`   rÎ   rÎ   rÉ  r‹   c                    r>  r1   )rÚ   )r=   r_  r?  r1   r2   r?   Ê  r   z+TestRvDiscrete.test_ppf.<locals>.<listcomp>)r6   rA   r   rÚ   )rk   r;  r<  Úq_valuesrT   r1   r?  r2   r€  À  rA  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   r`   rÎ   r  rh  )rX   r  r^  r^  rX   r9  rÌ   rÍ  r   )r6   rA   r   rÚ   ri   r;  )rk   r0  r%  r1   r1   r2   Ú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Î   )rX   rX   r!  r  )rX   rX   r  r  r9  rÉ  r‹   )rc   rÿ   r£  r   r6   rA   r   r¥   rO  r;  r<  ©rk   r;  r<  r%  r1   r1   r2   Útest_multidimensionÕ  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õ   rr   r9  )rr   ç333333ó?gffffffæ¿©r   r`   r�   rÎ   r�   )r^  r^  r^  r^  rX  r   )rô  r  r6   rA   rý   ©rk   r;  r<  r1   r1   r2   Ú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Î   ©r`   r`   ©r`   r�   gUUUUUUÅ?r9  r™  ©r�   r`   r   )rc   rÿ   r£  rŒ  rô  r  r6   rA   rý   r   r7  rH  r1   r1   r2   Útest_shape_rv_sampleò  s    z#TestRvDiscrete.test_shape_rv_samplec                 C   sD   g d¢}g d¢}t j||fd�}t| ¡ t |j|j ¡dd� d S )N)r   r`   rÎ   r™  r  r"  )rX   r  r  r  r  rX   r9  rÉ  r‹   )r6   rA   r   r¥   rc   rO  r;  r<  rD  r1   r1   r2   Ú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      Œ@r°  g     0‘@g     À’@g     P”@g     à•@g     p—@g      ™@g     �š@g      œ@g     °�@rš  g     h @g     0¡@g     ø¡@g     À¢@g     ˆ£@g     P¤@g     ¥@g     à¥@g     ¨¦@r›  g     8¨@g      ©@g     È©@g     �ª@g     X«@g      ¬@g     è¬@g     °­@g     x®@g     @¯@g     °@g     h°@g     Ì°@g     0±@g     ”±@g     ø±@g     \²@g     À²@)/g-Cëâ6:?rw   gF%ušk?g:´Èv¾Ÿz?rw   rw   g.n£¼r?g…|Ð³Yõå?rw   rw   rw   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?rw   g€ž^)Ëp?g€~j¼t“x?g€ŒJê4q?g€®Gázt?g ŒJê4q?g ¨ñÒMb@?g@Püs×‚?g@ž^)Ë€?rw   rw   g Á¨¤N@s?g �1w-!_?rP  gàµ„|Ð³™?rw   g€ËH¿}}?rw   g€
F%uŠ?rw   rw   g ž^)Ë€?g »¸�ðv?rw   r9  rÉ  r‹   c                 s   s   � | ]	\}}|| V  qd S rm   r1   ©r=   rR  Úwr1   r1   r2   Ú	<genexpr>'  s   € z.TestRvDiscrete.test_expect2.<locals>.<genexpr>c                 S   ó   | d S ©Nr`   r1   r¡   r1   r1   r2   rK   *  ó    z-TestRvDiscrete.test_expect2.<locals>.<lambda>c                 s   s    � | ]\}}|d  | V  qdS )r`   Nr1   rQ  r1   r1   r2   rS  +  ó   € )r6   rA   r   r¥   rÛ   rO  rþ   )rk   r˜  Úpyr%  r1   r1   r2   Útest_expect2  s   ÿ
ÿzTestRvDiscrete.test_expect2N)rà   rá   râ   r   r2  rS  rM  rB  r€  rC  rE  rI  rM  rN  rY  r1   r1   r1   r2   r2  Š  s    	r2  c                   @   ó   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‹  r�   r\   r   r�  )	rc   r?  r   r6   Ú
skewcauchyrb   r�  ri   rÚ   r¦  r1   r1   r2   Útest_cauchy/  s   
ÿ
ÿ
ÿzTestSkewCauchy.test_cauchyc                 C   s„   t j d¡ t j d¡d d }t j d¡d d }g d¢}g d¢}ttj ||¡|ƒ ttj ||¡|ƒ ttj 	||¡|ƒ d S )Nr   r[   r`   r   r�   )
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î?)
rc   r�   r‘   r¦  r   r6   r]  rb   ri   rÚ   )rk   r/   rZ   rb   ri   r1   r1   r2   Útest_skewcauchy_R8  s   z TestSkewCauchy.test_skewcauchy_RN)rà   rá   râ   r^  r_  r1   r1   r1   r2   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 )Nr�   r`   )rœ  rw   r:  rv   )rw   rX   rN  rÔ   rÕ   r:  ry  )r6   Ú	jf_skew_trV  r   rb   ri   rÚ   )rk   r/   r0   rª  rZ   r_  ÚjfrV  r1   r1   r2   Ú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)rc   Úloadr   Ú__file__ÚparentÚrecÚ
fromarraysrÖ  r1   r1   r2   Úgamlss_pdf_datal  s   ÿzTestJFSkewT.gamlss_pdf_dataza,b)rK  )rh  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/   r0   rZ   rb   r³  r{   N)r   r6   ra  rb   )rk   rk  r/   r0   r½   rZ   rb   r1   r1   r2   Útest_compare_with_gamlss_r|  s
   ÿ z&TestJFSkewT.test_compare_with_gamlss_rN)
rà   rá   râ   rc  r¹   rø  rk  rã   rä   rm  r1   r1   r1   r2   r`  [  s    
r`  r`   r�   gš™™™™™@r�   g×£p=
×1@r'  gR¸…ëÑZ@éi   gøSã¥›ÔŠ@rX   rY   g&�š¹ë@iÈQ iÙ'  i0ybi�¸ l   €HO1Z iñÕ3r-  iÁÿÿÿr[   iöÿÿr\   ik‰ÿÿrë  i1ñÚÿrƒ   i±  ií4†ñi N  i›(  lýÿÿÿEI. rþ  iß c                   @   sr   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d„ ZdS )ÚTestSkewNormc                 C   s   t dƒ| _d S r  )r   r«   ro   r1   r1   r2   r   µ  ó   zTestSkewNorm.setup_methodc                 C   s0   t  ddd¡}ttjj|dd�tj |¡ƒ d S r\  )rc   r?  r   r6   Úskewnormrb   rò  r¦  r1   r1   r2   Útest_normal¸  s   
ÿzTestSkewNorm.test_normalc                 C   sH   d}t jjd|| jd�}t||jƒ t jjd|| jd�}t||jƒ d S )N)r�   rÎ   r�   rÔ   )r/   rµ   rŠ   r-  )r6   rq  r�   r«   r   r*  )rk   r*  rZ   r1   r1   r2   r2  ¾  s
   zTestSkewNorm.test_rvsc                 C   sÈ   t jjdtdƒdd| jd�}t |¡t |¡t  |¡t  	|¡g}t jj ddddd�}t
||dd� t jjd	tdƒdd| jd�}t |¡t |¡t  |¡t  	|¡g}t jj d	dddd�}t
||dd� d S )
NrÎ   r„  r�   r`   )r/   rµ   r^   r_   rŠ   ry  )r/   r^   r_   r{  r=  ry  )r6   rq  r�   rG  r«   rc   rÛ   r¥  r¦  Úkurtosisr   )rk   rÚ  rT   r¨  r1   r1   r2   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	� qd S )
N)r>  rÌ   g¨‡EAV™À)r>  rÀ   gV|@Á$a�À)r>  r   g0rüY‰À)r>  rr   ç¡Z²kÎ‰À)r@  rÀ   rt  )rç   rƒ  ç�Ä¼æÂ)r`   g    ÐcÁru  rÍ  r{   )r6   rq  r™   r   )rk   Ú
logpdfvalsrZ   r/   Ú	logpdfvalr‰  r1   r1   r2   Ú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)r[   rë  r"  rÌ   r�   rÉ  r{   rF  rD  r:  )r6   rq  ri   r   rc   Úonesrn  r1   r1   r2   Ú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 ]#\}}}t j ||¡}t||dd� t j | | ¡}t||dd� qd S )N)rZ  r   gzbL’¿eŸ9)ry  r`   gÊn'Ë/2Ã;)rç   r�   g¾èí€:“:)rK  rÌ   g|æ»¯§<)r.  ry  rÔ  rÍ  r{   )r6   rq  ri   r   rÙ   )rk   ÚcdfvalsrZ   r/   ÚcdfvalrW  r1   r1   r2   Útest_cdf_sf_small_valuesì  s   ûûz%TestSkewNorm.test_cdf_sf_small_valuesz
a, momentsc                 C   s6   t |dd�D ]\}}tj ||¡}t||dd� qd S )Nr   )ÚstartrÉ  r{   )r‰  r6   rq  rJ  r   )rk   r/   r{  ÚorderrT   rÏ  r1   r1   r2   Útest_noncentral_momentsý  s   þz$TestSkewNorm.test_noncentral_momentsc           %      C   s"  t j d¡}d\}}}t |||¡}|jd|d�}tjj|ddd�\}}}	tjj|ddd�\}
}}||  kr<dks?J ‚ J ‚||
ksEJ ‚tjj|ddd	d
�\}}}|dksXJ ‚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   rr   r\   rØ   r  r�   rÁ   gš™™™™™ù¿Úmm©r¶   rŽ  Úmsrz  r   ©rŽ  r`   Úmle)rc   r�   rŽ   r6   rq  r�   rÃ   rÛ   r¦  r   rý  rÜ   rª  Úisinfr¥  rT  rd   )%rk   r«   r/   r^   r_   r>   r�   Úa2Úloc2Úscale2Úa3Úloc3Úscale3Úa4Úloc4Úscale4Údist4r­   rd  r–   Úa5Úloc5Úscale5rÆ  rR  Úa6pÚloc6pÚscale6pÚa6mÚloc6mÚscale6mÚa7pÚloc7pÚscale7pÚa7mÚloc7mÚscale7mr1   r1   r2   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 s3J ‚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   r�   T)Úsuperfitrr   l   Åy™
N¸D )r‹  r�   )r.  r[   )rb  r[   ©r/   r^   r_   c                    s   t | |ˆ d�S )N©r«   )r&   )Úfunr®   r¢  r1   r2   Ú	optimizerH  rp  z0TestSkewNorm.test_fit_gh19332.<locals>.optimizer)r¤  r·  r{   )rc   r   r6   rq  rÃ   r¼   r�   rŽ   Útestingr   Úparams)	rk   rZ   r¦  r­   Úparams_superrd  r®   r¤  Ú
fit_resultr1   r¢  r2   Útest_fit_gh193323  s   zTestSkewNorm.test_fit_gh19332c                 C   s   t tj dd¡ddd� d S )Nrt   rd  gi}#Í%«‰?r†   r{   )r   r6   rq  rÚ   ro   r1   r1   r2   r€  N  r×  zTestSkewNorm.test_ppfN)rà   rá   râ   r   rr  r2  rý  rx  rz  r}  r¹   rã   rä   Ú_skewnorm_noncentral_momentsr€  rÔ  r©  r€  r1   r1   r1   r2   ro  ´  s    	
0ro  c                   @   r  )
Ú	TestExponc                 C   s   t tj d¡dƒ d S rl  )r   r6   rù  rb   ro   r1   r1   r2   Ú	test_zeroV  s   zTestExpon.test_zeroc                 C   s0   t tj d¡dƒ t tj tj d¡¡dƒ d S )Nr×  r>  )r   r6   rù  ri   rŸ  rÙ   ro   r1   r1   r2   Ú	test_tailY  s   zTestExpon.test_tailc                 C   ó,   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@)rc   r   r  rô  r  r6   rù  rÃ   r¦  r1   r1   r2   Útest_nan_raises_error]  ó   zTestExpon.test_nan_raises_errorc                 C   r®  r¯  )rc   r   r  rô  r  r6   rù  rÃ   r¦  r1   r1   r2   Útest_inf_raises_errorb  r¶  zTestExpon.test_inf_raises_errorN)rà   rá   râ   r¬  r­  rµ  r·  r1   r1   r1   r2   r«  U  s
    r«  c                   @   ó>   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   r®  r¯  )rc   r   r  rô  r  r6   rò  rÃ   r¦  r1   r1   r2   rµ  i  r¶  zTestNorm.test_nan_raises_errorc                 C   r®  r¯  )rc   r   r  rô  r  r6   rò  rÃ   r¦  r1   r1   r2   r·  n  r¶  zTestNorm.test_inf_raises_errorc                 C   s    g d¢}t ttjj|dd� d S )Nrõ   Úshrimp)Úplate)rô  r  r6   rò  rÃ   r¦  r1   r1   r2   Útest_bad_keyword_args  s   zTestNorm.test_bad_keyword_argr^   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.:r"  r<  ©r^   r†   r{   )r6   rò  Ú
_delta_cdfr   )rk   r^   rT   r3  r1   r1   r2   Útest_delta_cdfw  s
    zTestNorm.test_delta_cdfN)
rà   rá   râ   rµ  r·  r¼  r¹   rã   rä   r¿  r1   r1   r1   r2   r¹  h  s    r¹  c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )ÚTestUniformúgh-10300c                 C   r®  r¯  )rc   r   r  rô  r  r6   r'  rÃ   r¦  r1   r1   r2   rµ  ‡  r¶  z!TestUniform.test_nan_raises_errorc                 C   r®  r¯  )rc   r   r  rô  r  r6   r'  rÃ   r¦  r1   r1   r2   r·  Œ  r¶  z!TestUniform.test_inf_raises_errorN)rà   rá   râ   Ú__doc__rµ  r·  r1   r1   r1   r2   rÀ  …  s    rÀ  c                
   @   s´   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zej 	d	g d
¢¡dd„ ƒZ
ej 	dg d¢g d¢g d¢g d¢g d¢g¡dd„ ƒZej 	dg d¢g d¢g d¢g d¢g d¢g d¢g¡dd„ ƒZdS )ÚTestExponNormc                 C   sü   dd„ }d\}}}d||  }t jj |||dd�}t|||||ƒƒ d\}}}d||  }t jj |||dd�}t|||||ƒƒ d\}}}d||  }t jj |||dd�}t|||||ƒƒ d	\}}}d||  }t jj |||dd�}t|||||ƒƒ d S )
Nc                 S   sh   dd| | d   }d| | d  |d  }dd| | d  d  }|d|   || d| |    ||gS )Nr:  r   r`   r�   r  ç      @rç   r1   )ÚlamÚsigr#  ÚopK2Úexp_skewÚexp_kurtr1   r1   r2   Úget_moms•  s   $z,TestExponNorm.test_moments.<locals>.get_moms)r   r   r   r:  ry  r(  )r-  r`   rX   )r   r�   r   )r‹  r"  r   )r6   Ú	exponnormr   )rk   rÊ  r#  rÆ  rÅ  ÚKÚstsr1   r1   r2   rý  “  s"   



zTestExponNorm.test_momentsc                 C   ó2   t  dddddt jg¡}tttjj|ddd� d S ©	Nr°  r±  r²  r³  r´  r   r   rß  )rc   r   r  rô  r  r6   rË  rÃ   r¦  r1   r1   r2   rµ  ®  ó   z#TestExponNorm.test_nan_raises_errorc                 C   rÎ  rÏ  )rc   r   r  rô  r  r6   rË  rÃ   r¦  r1   r1   r2   r·  ³  rÐ  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   rw   é„  rt   )r   r6   rË  rb   ro   r1   r1   r2   Útest_extremes_x¸  s   zTestExponNorm.test_extremes_xzx, K, expected))rë  rt   gç6
˜NöÕ-)r   rt   gÈÕœn+HÏ?)rÌ   rt   gi›™Ÿ©Î?)rx  rt   g¦bÄJIÍ-)r[   r   gâ�I¥8Ÿ?)r[   r*  gQ3|Ì-0?c                 C   rÎ  rè  )r   r6   rË  rb   )rk   rZ   rÌ  rT   r1   r1   r2   Útest_std_pdfÊ  ré  zTestExponNorm.test_std_pdfzx, K, scale, expected)r   rt   r   gVAÒ¤¾ß?)r‹  ç{®Gázt?r   gš'^ËÀ’>)rÚ  rt   r\   rw   )rÚ  rt   r‚   gbr…» ;)r�   rî  r   gVŒMeÿÿï?c                 C   ó<   t jj|||d�}|dkr|dksJ ‚d S t||dd� d S )Nr¨  rw   r†   r{   )r6   rË  ri   r   ©rk   rZ   rÌ  r_   rT   rW  r1   r1   r2   Útest_cdf_small_Kà  s   zTestExponNorm.test_cdf_small_K)r[   rt   r   gh¡G–}$;)r`   rÔ  r   g]fJ“—?)r�   rÔ  rr   g31"˜g#;)r[   rÔ  rr   gf¯
�ˆ+�-)rë  rÔ  rr   rw   )r-  rî  r   gôa9Súôï?c                 C   rÕ  )Nr¨  rw   çê-�™—a=r{   )r6   rË  rÙ   r   rÖ  r1   r1   r2   Útest_sf_small_Kù  s   zTestExponNorm.test_sf_small_KN)rà   rá   râ   rý  rµ  r·  rÒ  r¹   rã   rä   rÓ  r×  rÙ  r1   r1   r1   r2   rÃ  ’  s8    ÿ
üÿ
ûÿ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   )Úsimpsonr[   rt   rr   rv   )Údxr   )Úscipy.integraterÛ  r6   Úgenexponrb   rc   rÿ   r   )rk   rÛ  rW  r1   r1   r2   Útest_pdf_unity_area	  s   z TestGenExpon.test_pdf_unity_areac                 C   s:   t j t ddd¡ddd¡}t d|k|dk@ ¡sJ ‚d S )Nr   r[   rt   rr   rv   r   )r6   rÞ  ri   rc   rÿ   rÜ   )rk   ri   r1   r1   r2   Útest_cdf_bounds  s   zTestGenExpon.test_cdf_boundszx, p, a, b, c))r'  g®M• <r   r`   rˆ  )rN  gñ¨%DYYè?rr   r`   r�   )rN  gS4òz¶·?ç      #@r`   rr   )rt   g�aÐ^°5ï?rD  rN  rr   )r™  gàás%º)?rD  rN  rr   )r:  gÂd¥‡�mî?rN  r�   rr   c                 C   óD   t j ||||¡}t||dd� t j ||||¡}t||dd� d S r¶  )r6   rÞ  rÙ   r   rŸ  )rk   rZ   rW  r/   r0   r|  rÙ   rŸ  r1   r1   r2   rº    s   zTestGenExpon.test_sf_isf))rN  g;\iïššÎ?rr   r`   r�   )rN  gu¹¡0‰í?rá  r`   rr   )rt   g-Îó%ôI™?rD  rN  rr   )r™  gâÁ¨]dþï?rD  rN  rr   )r:  gæ³©…ç'©?rN  r�   rr   c                 C   râ  r¶  )r6   rÞ  ri   r   rÚ   )rk   rZ   rW  r/   r0   r|  ri   rÚ   r1   r1   r2   r~  -  s   zTestGenExpon.test_cdf_ppfN)
rà   rá   râ   rß  rà  r¹   rã   rä   rº  r~  r1   r1   r1   r2   rÚ    s    ÿ
ÿrÚ  c                   @   rj  )Ú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ë  r\   g_9ïÿÿ3@gBÎûÿÿX@g,M¾õ²�â<gÇƒ¡Û@Ö«5gLÎaã§�ä=r{   r³  )r   r6   Ú
truncexponrÙ   rŸ  )rk   r0   rZ   rd  r1   r1   r2   rº  <  s
   zTestTruncexpon.test_sf_isfN)rà   rá   râ   rº  r1   r1   r1   r2   rã  :  rp  rã  c                   @   rj  )ÚTestExponpowc                 C   s6   t tj dd¡dƒ t tj tj dd¡d¡dƒ d S )Nr  rv   rš  r�   rÖ   )r   r6   Úexponpowri   rŸ  rÙ   ro   r1   r1   r2   r­  G  s   ÿzTestExponpow.test_tailN)rà   rá   râ   r­  r1   r1   r1   r2   rå  F  ó    rå  c                   @   rq  )Ú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=  )rc   rÿ   r   r   r6   Úskellamr7  )rk   rW   Úmu1Úmu2ÚskpmfRr1   r1   r2   rM  N  ó   ÿ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Ã±ªÙÝ¸ï?r�   r=  )rc   rÿ   r   r   r6   ré  ri   )rk   rW   rê  rë  ÚskcdfRr1   r1   r2   rB  c  rí  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   rb  r‹   r   )r   r6   ré  r7  ri   )rk   rZ   rê  rë  r1   r1   r2   Útest_extreme_mu2x  s   
zTestSkellam.test_extreme_mu2N)rà   rá   râ   rM  rB  rï  r1   r1   r1   r2   rè  M  s    rè  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   sZ   t  ¡ � t  dt¡ tj g d¢d¡}t|g d¢ƒ W d   ƒ d S 1 s&w   Y  d S )NrT  ©r   rr   r   r   )rw   g~û¾¨rä?g Þe3EˆÙ?)rX  rY  rZ  r[  r6   r  rb   r   ©rk   rb   r1   r1   r2   r9  €  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Ã?rI   )r   r6   r  rÙ   rò  rc   ru  r—  )rk   rÎ  r#  Úsigmar1   r1   r2   r«  ˆ  s   
ÿÿzTestLognorm.test_logcdfrî  rï  c                 C   rñ  r  rò  ro   r1   r1   r2   r«   �  ró  zTestLognorm.rngr±   rX   r`   r°   )rç   r   r`   rÚ  )r  r   r�   r  c                 C   r  r  r1   )r=   Úer1   r1   r2   r?   ˜  r  zTestLognorm.<listcomp>)FTr�   r  r  r  c           
      C   s^   t jjd||||d�}i }	|r||	d< |r||	d< |r||	d< tt j|fi |	¤ddi¤Ž d S )Nr\   )rµ   rJ   r_   r^   rŠ   r¸   r·   r¶   rí   T)r6   r  r�   r»   r  r1   r1   r2   r¿   ”  s   	ÿÿz'TestLognorm.test_fit_MLE_comp_optimizerc                 C   rÍ  )NgºI+‡î?)rX   ç»½×Ùß|ë=g¬Ò¶OÉƒí;gk3;9"Ê7)g¼?¿y+@g~K¤£8ax@gÍˆ€Æ¶@gÄ9]’ArÉ  r{   )r   r6   r  rŸ  )rk   rJ   r_  rd  r1   r1   r2   r§  ­  s   zTestLognorm.test_isfN)rà   rá   râ   r9  r«  r¹   rø  r«   rã   rä   r'   rc   r  r¿   r§  r1   r1   r1   r2   rð    s    

ÿ
rð  c                   @   s0  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zejj	e
d	d
�dd„ ƒZejj	e
d	d
�dd„ ƒZejj	e
d	d
�dd„ ƒZdd„ Zejjedd
�dd„ ƒZej dejjejjg¡ej dddg¡dd„ ƒƒZej ddd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d-S ).ÚTestBetac                 C   s:   t j ddd¡}t|dƒ t j ddd¡}t|tjƒ d S )Nr   r   rr   gÜ;úþB.æ¿)r6   rÅ  r™   r   rc   r  ©rk   r™   r1   r1   r2   rŠ  º  s   
zTestBeta.test_logpdfc                 C   sV   d\}}t  g d¢¡}t ||¡}t| |¡ ¡ dƒ t| |¡t  | |¡¡ƒ d S )N©i  iÀ  ©r  rr   r  gêàÜÖËÆ’À)	rc   r   r6   rÅ  r   r™   rO  rb   r£   ©rk   r	  rÅ  rZ   r0   r1   r1   r2   Ú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©rX   rr   r  r   r   rº  )r·   r¶   r»  )rô  r  r6   rÅ  rÃ   r¦  r1   r1   r2   Ú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ý  rr   )ÚfaÚfix_a)rô  r  r6   rÅ  rÃ   r¦  r1   r1   r2   Ú#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¾öÿÿÿÿï?r1  g   0x¡�Agðx)ã¨Ã>)r   r6   rÅ  rÚ   )rk   rW  r/   r0   r1   r1   r2   Ú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‰?)r[   r\   r‚   rY  r   rÍ   )rc   r   r6   rÅ  rŸ  r   rÙ   )rk   Úinv_RÚ
count_listrW  Úinvr­   r1   r1   r2   Útest_issue_12794ß  s   
zTestBeta.test_issue_12794c           	      C   sb   d}t  dd¡}d}d| |d || }}}tj |||¡}tj |||¡}t|d| ƒ d S )NçñhãˆµøÔ>r   rë  rÍ   )rc   rÿ   r6   rÅ  rÚ   ri   r   )	rk   Úalpha_2Úcount_Únobsr_  r/   r0   r  r­   r1   r1   r2   Útest_issue_12796ñ  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 )
Nrx  r   )r  r�   r   )r   r�   r�   ç+æp‹h  )r�   r   r:  )r   r6   rÅ  rb   rc   r  )rk   r/   r0   r1   r1   r2   ro  ý  s   zTestBeta.test_endpointszDoes not convert boost warningc                 C   sJ   d\}}}t  t¡� tj |||¡ W d   ƒ d S 1 sw   Y  d S )N)g×£p=
×ï?g   èvH7Bç  @åœ0¢B)r¹   Úwarnsr[  r6   rÅ  rÚ   )rk   r_  r/   r0   r1   r1   r2   Útest_boost_eval_issue_14606  s   
"ÿz$TestBeta.test_boost_eval_issue_14606rŽ  úa, b)r  ç      )@)r  r  c                 C   s,   d}z	||||ƒ W d S  t y   Y d S w )NrÕ   )ÚOverflowError)rk   rŽ  r/   r0   rW  r1   r1   r2   Ú test_beta_ppf_with_subnormal_a_b  s   øz)TestBeta.test_beta_ppf_with_subnormal_a_bzx, a, b, ref)rh  rˆ  rD  g>×µNlIq¾)ç•Ö&è.!>r™  rD  g'ërú­�OÀc                 C   ó"   t j |||¡}t||dd� d S r”  )r6   rÅ  r–  r   ©rk   rZ   r/   r0   rd  r–  r1   r1   r2   r«  3  ó   zTestBeta.test_logcdf)r  rˆ  rD  gpÆ}µ^U½)r  r™  rD  g
¥1—�ž*Àc                 C   s    t j |||¡}t||dƒ d S )Nr•  )r6   rÅ  r—  r   ©rk   rZ   r/   r0   rd  r—  r1   r1   r2   r®  ;  s   zTestBeta.test_logsfr  ))rr   rr   g‘Á”°•ëÎ¿)rî  r   gàÌê¼ �À)r   r*  g¤Ê&×¾k À)rÍ   rÍ   g¢à*)M‚Àc                 C   s   t t ||¡ ¡ |ƒ d S rm   ©r   r6   rÅ  rD   r  r1   r1   r2   rS  L  r³  zTestBeta.test_entropyza, b, ref, tol))r   r[   gÅCýpö¿rÉ  )r[   rë  g8EO›èð¿r†   )g    €„NAg    Š„NAg(4F¨ãÀr›  )g    ÐSAg   €ÒSAgÉò8TAUÀrÍ  )r¹  g    _ Bg[VVuD&ÀrY  )r,  r,  gRŸ#€»—LÀrz   )r`   r¹  g‹?ÀÂÙr5ÀrY  )r`   rä  ç‚ë°ö»<FÀrÉ  )r`   r,  g…uR›Tc\ÀrÉ  )r�   r¹  göÄÚðLß4Àr  )r�   rä  çÔ6½�õòEÀrÉ  )r�   r,  g.›Øfq>\ÀrÉ  )r[   r¹  gænëQc}4Àr›  )r[   rä  g{ïC¾ ÂEÀrÉ  )r[   r,  ç‚÷ÿö%\ÀrÉ  )rä  r`   r  rÉ  )rä  r�   r  rÉ  )r,  r[   r  rÉ  c                 C   s   t t ||¡ ¡ ||d� d S rr  r  )rk   r/   r0   rd  r¹  r1   r1   r2   r  T  s   $zTestBeta.test_extreme_entropyN)rà   rá   râ   rŠ  rü  rþ  r  r¹   rã   ÚskipifÚMACOS_INTELr  r  r  ro  Úxfailr   r  rä   r6   rÅ  rÚ   rŸ  r  r«  r®  rS  r  r1   r1   r1   r2   r÷  ¹  sL    



ÿÿ
ÿÿ
ÿ
þ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
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d„ Zdd „ Zd!S )"ÚTestBetaPrime))rà  ç      Y@r  ç½D>´¶ì?)r¹  r#  r  ç�må—½êâ?)r²   r  rX   gPÊóàþKî?)r²   r#  r  g%pšß?)r  r  rX   gð#’|‹/Ë?)r  rˆ  rˆ  gãsM•
•Þ<)r  r  r#  çà$5Ð„*Ú?)çæ^ 9^;r  rX   gomžp¢P«?)r'  rˆ  rˆ  gú7j“"¡!9)r'  r  r#  çzß^Jº?)r¾  r  rX   gÜ·"ö•+Ü>)r¾  rˆ  rˆ  gßrÓNs:Ö )r¾  r  r#  g‘ÚKë>c                 C   sZ   d\}}t  g d¢¡}t ||¡}tt  | |¡¡ ¡ ƒ t| 	|¡t  
| |¡¡ƒ d S )Nrù  rú  )rc   r   r6   r
  r   rª  r™   rÜ   r   rb   r£   rû  r1   r1   r2   rŠ  ˜  s
    zTestBetaPrime.test_logpdfc                    s„   t j ddd¡}t|dƒ d\‰ ‰t g d¢¡}t j |ˆ ˆ¡}tt |¡ ¡ ƒ t j	j
‰‡ ‡‡fdd„|D ƒ}t||dd	d
� d S )Nr   r  r^  rw   rù  rú  c                    s   g | ]
}ˆt j|ˆ ˆƒ‘qS r1   )r6   r
  )r=   r1  ©r	  rÅ  Úgen_cdfr1   r2   r?   ¬  ó    z*TestBetaPrime.test_cdf.<locals>.<listcomp>çê-�™—�=r/  )r6   r
  ri   r   rc   r   r   rª  rÜ   rB   Ú_cdf_singler   )rk   rZ   r5  Úcdfs_gr1   r)  r2   rB  Ÿ  s   
zTestBetaPrime.test_cdfzp, a, b, expected))rt   rê  rD  g”VÿÕ)†?)r³  rê  rD  gWJúB9*Ý=)r×  rê  rD  gOG üJÞ<)rM  rN  ç      @gÎ£0œ1)ç      Ø?rN  r/  g8ÒÇ˜…¯`?)çèÞ>q¤îï?r  rX   g××MÏð€Dc                 C   r  rÄ  )r6   r
  rÚ   r   )rk   rW  r/   r0   rT   rZ   r1   r1   r2   r€  ¾  s   
zTestBetaPrime.test_ppfz
x, a, b, pc                 C   s   t tj |||¡|dd� d S r¶  )r   r6   r
  rÚ   )rk   rZ   r/   r0   rW  r1   r1   r2   Útest_ppf_gh_17631Ë  r  zTestBetaPrime.test_ppf_gh_17631c                 C   s<   t  d¡}t  d¡}t  d¡}ttj |||¡ddd� d S )Nr:  rr   rg  r{   )rc   r   r   r6   r
  Ú_ppf)rk   r/   r0   rW  r1   r1   r2   Ú	test__ppfÏ  s   


zTestBetaPrime.test__ppfzx, a, b, expected))r¹  rˆ  rˆ  rê  )r¹  r  rX   g‘Vˆ[æìî?)rà  r  rX   r1  c                 C   rá  rÄ  )r   r6   r
  ri   )rk   rZ   r/   r0   rT   r1   r1   r2   Útest_cdf_gh_17631Ö  s   zTestBetaPrime.test_cdf_gh_17631)r,  r  rX   g£%ùÿï?)r,  r#  r  gÖoXržÞï?c                 C   s.   t j |||¡}|dk sJ ‚t||dd� d S )Nr:  gñhãˆµøô>r{   )r6   r
  ri   r   )rk   rZ   r/   r0   rT   r˜  r1   r1   r2   Ú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)r�   rÎ   r`   r  r  r  r  r#  r#  r  r  r  rˆ  rˆ  )r�   r`   r   rX   rX   rX   rX   r  r  r#  r#  r#  rˆ  rˆ  )r¹  rä  çêŒ 9Y>)Frà  r  r'  r¾  rà  r¹  r  r'  r¾  r¹  r  )g²˜/:g  U±/ÇÕ7gŸÂëþKHÄ9g<!ÁŽ[a?gwÛ 4é?g)öØõJî?gï5êñÿï?r(  r&  r%  r$  g%´äâäÿï?gâsM•
•Þ<rê  r³  r{   )r6   r
  rÙ   r   )rk   r/   r0   rZ   rd  Ú	sf_valuesr1   r1   r2   r¤  ë  s   zTestBetaPrime.test_sfc                 C   ó2   d}d}d}d}t j |||¡}t||dd� d S )Nrq   rr   r;  gÓög%`çÊ¼r•  r{   )r6   r
  r–  r   r  r1   r1   r2   r«     ó   zTestBetaPrime.test_logcdfc                 C   r9  )NrÍ  rž  rr   g9;Ð‹ÄV¸r•  r{   )r6   r
  r—  r   r  r1   r1   r2   r®    r:  zTestBetaPrime.test_logsfc                 C   s.   t jjg d¢ddd� t jddd�  d¡ d S )N)rX   rN  r^  rF  çš™™™™™ù?r   r   rß  ri  ry  )r6   r
  rÃ   ro   r1   r1   r2   Ú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¿ë?r`   ru  gffffff@r�   )rc   r  r6   r
  rJ  r   )rk   rd  r­   r1   r1   r2   Útest_moment_gh18634  s   
z!TestBetaPrime.test_moment_gh18634N)rà   rá   râ   Úcdf_valsrŠ  rB  r¹   rã   rä   r€  r2  r4  r5  r6  r¤  r«  r®  r<  r=  r1   r1   r1   r2   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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Š  r  r¨  g
CŸTñb?r�   r[   gBþãÎ–½Ä?)r6   r|  rb   r   rò  r1   r1   r2   r9  %  s   
zTestGamma.test_pdfc                 C   ó   t j dd¡}t|dƒ d S rl  )r6   r|  r™   r   rø  r1   r1   r2   rŠ  -  s   zTestGamma.test_logpdfc                 C   s"   g d¢}t ttjj|ddd� d S )Nrý  r   rº  )r·   r»  )rô  r  r6   r|  rÃ   r¦  r1   r1   r2   rþ  3  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 )
NrM  r   çgªp×l’C@rÉ  r‹   rç  r\   gÚè1ý}ªt@r†   )rc   Úiscloser6   r|  rŸ  ro   r1   r1   r2   r§  7  s   
ÿÿzTestGamma.test_isfc                 C   rÅ  )NéP   r  g‰æÞŸò‘�ºr•  r{   )r6   r|  r–  r   rñ  r1   r1   r2   r«  M  ó
   zTestGamma.test_logcdfc                 C   rÅ  )Nrî  rÊ  gùDmªãæ½r•  r{   )r6   r|  r—  r   rò  r1   r1   r2   r®  T  rE  zTestGamma.test_logsfr_   r:  r;  c                 C   s.   t jj|d |d d|d�}t|ddd� d S )Néõ   r‹  r�   r¨  g‡áö>¹SÅ*r†   r{   )r6   r|  r¾  r   ©rk   r_   r3  r1   r1   r2   r¿  [  s   zTestGamma.test_delta_cdfza, ref, rtol))r·  gžtí.ƒÃÀrz   )r`   rc  rz   )r\   gX>k-Ö¾@r†   )rv  gwM½7§@rz   )g ÈNgmÁ«Cg®%o�g$6@rz   )rº  çoÜ˜#]@rz   c                 C   s   t tj |¡||d� d S rr  )r   r6   r|  rD   )rk   r/   rd  r|   r1   r1   r2   rS  i  r²  zTestGamma.test_entropyr/   )rt   r   r#  r^   )rt   r   r#  r   TFr³   rÜ  c                 C   s8  t j d¡}tjj|||d|d�}i }	|r||	d< |r||	d< |r%||	d< dt|	ƒ }
|
dkrWd	}tjt	|d
�� tjj
|fddi|	¤Ž W d   ƒ d S 1 sPw   Y  d S tjj
|fddi|	¤Ž}tj|Ž }|
dkrvt| ¡ t  |¡ƒ |
dkr‡t| d¡t  |d ¡ƒ |
dkršt| d¡t  |d ¡ƒ d S d S )Nrœ   r\   rÞ  rÿ  r·   r¶   r�   r   rö   r÷   rŽ  r�  r   r`   )rc   r�   rŽ   r6   r|  r�   rû   r¹   r   r  rÃ   r   rÛ   rJ  )rk   r/   r^   r_   r   r³   rÜ  r«   r½   r¾   rÓ  râ  Úthetar>   r1   r1   r2   Útest_fit_mmz  s:   ÿ
ÿþ
ÿzTestGamma.test_fit_mmN)rà   rá   râ   r9  rŠ  rþ  r§  r«  r®  r¹   rã   rä   r¿  rS  rJ  r1   r1   r1   r2   r?  $  s(    
ÿ

r?  c                  C   s:   d} t jd| d  d| d  ddd�}t| d¡dƒ d S )	Nrî  gÍ;fž ö?r`   r   r   r]   r:  gîV×{„¡q@)r6   r^  r   rb   )ÚjitterÚZr1   r1   r2   Útest_pdf_overflow_gh19616ž  s   "rM  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Ú(ë$ r[   r«  )r'  rµ   r`   rg  r{   )rc   r�   rŽ   Únormalr'  r6   Údgammarb   r|  r�   r   )rk   r«   rµ   rZ   r/   r­   rd  r>   r1   r1   r2   r9  «  s   

zTestDgamma.test_pdfzx, a, expected))rx  r   ggróU†´>)r@  r   g$›I’—C<)iÎÿÿÿr�   gèšè2Wj<)éçÿÿÿr:  g~)ÎAÄ.=)r�   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”  )r6   rP  ri   r   rÚ   rÙ   rŸ  )rk   rZ   r/   rT   ri   rÚ   rÙ   rŸ  r1   r1   r2   Útest_cdf_ppf_sf_isf_tailÁ  s   z#TestDgamma.test_cdf_ppf_sf_isf_tailró  ))rˆ  g®m†qÖn @)çÍÌÌÌÌÌô?g®ñý£¿øþ?)rì  gx¹¤ú’ü?c                 C   r±  rÄ  ©r   r6   rP  rD   rô  r1   r1   r2   rS  Ñ  ó   zTestDgamma.test_entropy))r¾  r  )r  g¡Ý>_ Â)rÙ  gÂíð5iøÀ)rv  gµ”œ—oÞ@)rË  g‰÷4F¨a3@)rº  gãÚrO]@c                 C   r±  r  rT  rô  r1   r1   r2   Ú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   r�   rä  rÙ  )rc   r   r6   rP  rD   rM  rû   )rk   rZ   r˜  rK  r1   r1   r2   Útest_entropy_array_inputö  s
   ÿz#TestDgamma.test_entropy_array_inputN)rà   rá   râ   r9  r¹   rã   rä   rR  rS  rV  rW  r1   r1   r1   r2   rN  ª  s    ÿ

ÿ
ÿ
rN  c                   @   sr   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	ej dg d¢¡dd„ ƒZ
dd„ ZdS )ÚTestChi2c                 C   s4   t tj dd¡ddd� t tj dd¡ddd� d S )Nr‚   gÞžwä1D‚?r”  r=  r\   gÑ6:˜¡Öœ?©r   r6   Úchi2rb   ro   r1   r1   r2   rp     s   ÿ
ÿzTestChi2.test_precisionr0  ))g     p‡@r�   g‡~„#¸ež)g      ^@r'  g«ï÷€tA¼)rE  rl  g¼zêúÄ€×¿c                 C   rx   r”  )r6   rZ  r–  r   )rk   rZ   rª  rd  r–  r1   r1   r2   r«    ó   zTestChi2.test_logcdf))r·  r'  r­  )rˆ  r>  gØÅcÿˆ»)rÊ  r[   gŠãÐÝ]3“¿c                 C   rx   r”  )r6   rZ  r—  r   )rk   rZ   rª  rd  r—  r1   r1   r2   r®    r[  zTestChi2.test_logsfc                 C   s|   d}t j d|¡}t|ddd� t j d|¡}t|ddd� d}t j d	|¡}t|d
dd� t j d|¡}t|ddd� d S )Nr	  gÎ»mã:=6g'bçdé5 <r  r{   rr   gÊQœ8ø›@rl  gÜ�ÁØ†0g¸uu¿[9¦=rX   g¯“8-€*@)r6   rZ  rÚ   r   )rk   rª  rZ   r1   r1   r2   r€    s   zTestChi2.test_ppfr¯  ))r·  gêÜ«¿>…ÓÀ)r   g±Æ¯Ê‰é?)r\   gn“ãÞ>@)éû   gÍ”vì0@)rË  g¡9:ï3@c                 C   r»  r…   )r   r6   rZ  rD   r´  r1   r1   r2   rS  4  r¼  zTestChi2.test_entropyc                 C   s   t tj dd¡ddƒ d S )Nrw   r`   rr   r”  rY  ro   r1   r1   r2   Útest_regression_ticket_1326=  s   z$TestChi2.test_regression_ticket_1326N)rà   rá   râ   rp  r¹   rã   rä   r«  r®  r€  rS  r]  r1   r1   r1   r2   rX  ý  s$    þ
þ
ÿ
rX  c                   @   r¸  )ÚTestGumbelLc                 C   rÀ  ©Nr]  ry  )rc   r?  r6   rú  ri   rÚ   r   rÃ  r1   r1   r2   r~  D  rÄ  zTestGumbelL.test_cdf_ppfc                 C   sH   t  dd¡}tj |¡}tj |¡}t  |¡}t |¡ }t	||ƒ d S r_  )
rc   r?  r6   rú  r–  r—  r£   r   Úexpm1r   )rk   rZ   r˜  r÷  ÚurR  r1   r1   r2   r™  J  s   
zTestGumbelL.test_logcdf_logsfc                 C   rÀ  )Nrx  r�   )rc   r?  r6   rú  rÙ   rŸ  r   rÃ  r1   r1   r2   rº  R  rÄ  zTestGumbelL.test_sf_isfr^   rÌ   r   c                 C   s2   t jjd|d�}t jj||d�\}}t||ƒ d S )Nr\   )rµ   r^   rÁ   )r6   rú  r�   rÃ   r   )rk   r^   r½   Ú
fitted_locrÒ   r1   r1   r2   Útest_fit_fixed_paramX  s   z TestGumbelL.test_fit_fixed_paramN)
rà   rá   râ   r~  r™  rº  r¹   rã   rä   rc  r1   r1   r1   r2   r^  B  s    r^  c                   @   rZ  )ÚTestGumbelRc                 C   ó   t tj d¡ddd� d S )Nr%  ç?~T}%m;rÉ  r{   )r   r6   rù  rÙ   ro   r1   r1   r2   r¤  c  ó   
ÿzTestGumbelR.test_sfc                 C   re  )NrM  rB  rÉ  r{   )r   r6   rù  rŸ  ro   r1   r1   r2   r§  l  rg  zTestGumbelR.test_isfN)rà   rá   râ   r¤  r§  r1   r1   r1   r2   rd  a  s    	rd  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	j
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	j
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%ddde„ Z&dfdg„ Z'dhS )iÚTestLevyStableT)Ú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)r6   r¸  ÚparameterizationÚcdf_default_methodÚpdf_default_methodÚ_levy_stableÚ	_QUAD_EPSÚquad_epsro   r1   r1   r2   Úreset_levy_stable_paramsw  s   z'TestLevyStable.reset_levy_stable_paramsc                 C   ó*   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,pctrd  ©rc   rf  r   rg  rh  ri  rj  ÚTrÖ  r1   r1   r2   Únolan_pdf_sample_data  s   ÿÿz$TestLevyStable.nolan_pdf_sample_datac                 C   rs  )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.npyrt  rd  ru  rÖ  r1   r1   r2   Ú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)rc   rf  r   rg  rh  rÖ  r1   r1   r2   Únolan_loc_scale_sample_dataÍ  s   	ÿÿz*TestLevyStable.nolan_loc_scale_sample_dataÚsample_sizer%  r  ©Úmarksrl  ÚS0rj  z
alpha,beta))r:  r   )r:  rÀ   )rˆ  r   )rY  rr   zgamma,delta©r   r   rL  c           
      C   sF   |t j_t j||||d�}t  |j|dd�|j¡\}}	|	dks!J ‚d S )N)r	  rÅ  r_   r^   r×   rØ   r  )r6   r¸  rl  r  r�   ri   )
rk   rl  r	  rÅ  r|  r3  rz  ÚlsrÒ   rW  r1   r1   r2   r2  Ü  s   ÿÿzTestLevyStable.test_rvsrÅ  rr   r   c                 C   sZ   t j d¡ d}d}d}tjj||||dd�}tj|d||||fd�\}}|d	ks+J ‚d
S )z3Additional test cases for rvs for alpha equal to 1.é±hÞ:r:  rr   rˆ  r´  ©r^   r_   rµ   r¸  r   rt   N)rc   r�   r‘   r6   r¸  r�   r  )rk   rÅ  r	  r^   r_   rZ   ÚstatrW  r1   r1   r2   Ú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„  rw   rw   rw   rw   ç¾¼ ûèÔu?r…  r…  r…  r…  çÎ67¦',¡?r†  r†  r†  r†  çtA}Ëœ.«?r‡  r‡  r‡  r‡  ç®Gáz®÷?r   rt   rI  ç)\�Âõ(Ì¿r`   gÛ§ã1•‘?rÎ   gƒú–9]c?)r‡  r‡  r‡  r‡  r‡  rÌ   gáî¬Ýv¡™?r†  )r6   r¸  rÏ  r   r   r   ©rk   rZ   Úalpha1Úbeta1Úloc1Úscale1rÎ  Úalpha2Úbeta2rˆ  r‰  r1   r1   r2   rÔ    s   ÿ

zTestLevyStable.test_fitzUnknown problem with fitstart.r  zalpha,beta,delta,gamma)rˆ  r­  r`   r�   )r:  r­  r`   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Þ  rt   r{   N)r6   r¸  r‘  r�   rÏ  r   )rk   r	  rÅ  r3  r|  r‘  r½   rÃ   Ú	alpha_obsÚbeta_obsÚ	delta_obsÚ	gamma_obsr1   r1   r2   Útest_fit_rvs  s   ÿ


ýzTestLevyStable.test_fit_rvsc           
      C   s~   t  g d¢¡}tj |¡\}}}}tj | ¡\}}}}	t|dƒ |dks'J ‚t||ƒ t|| ƒ t|| ƒ t|	|ƒ d S )N©r   r   r�   r�   r[   r[   r[   r"  r"  r\   r\   r   r   )rc   r   r6   r¸  rÏ  r   r   )
rk   rZ   r‹  rŒ  r�  rŽ  r�  r�  rˆ  r‰  r1   r1   r2   Útest_fit_beta_flip8  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—  )rc   r   r6   r¸  rÏ  r   )rk   ÚSHIFTrZ   r‹  rŒ  r�  rŽ  r�  r�  rˆ  r‰  r1   r1   r2   Útest_fit_delta_shiftD  s   

z#TestLevyStable.test_fit_delta_shiftc                 C   s°   g d¢}t j |¡\}}}}|dk sJ d|› �ƒ‚|t|ƒk s+J dt|ƒ› d|› �ƒ‚g d¢}t j |¡\}}}	}
|dksDJ d|› �ƒ‚|	t|ƒksVJ dt|ƒ› d|	› �ƒ‚d S )	N)r   r   r�   r�   r[   r[   r[   r"  r"  éŒ   r›  r   zExpected alpha < 1, got zExpected loc < z, got )r   r   r�   r�   r[   r[   r[   r"  r"  é‚   rœ  zExpected alpha > 1, got zExpected loc > )r6   r¸  rÏ  r$  r‡  rŠ  r1   r1   r2   Útest_fit_loc_extrapO  s   $(z"TestLevyStable.test_fit_loc_extrapz pct_range,alpha_range,beta_range)rt   rr   rP  )rX   r   r`   )rÌ   r   rÖ   )rt   r  rr   rk  rP  )rX   rr   r   rˆ  r`   )gÍÌÌÌÌÌì¿rÀ   r   r^  r  r   )rt   r  rX   rN  çffffffÖ?rr   çÍÌÌÌÌÌä?rÔ   rÕ   rk  rP  rX   r`   rë  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 ]¢\}	\}
}}|
tj_	|durs|||ƒ n|}t
ƒ �€}| td¡ tjj|d |d |d ddd�}tjdd��( t|g d¢|t ||d  ¡t ||d  ¡t |d ¡ gƒ}W d  ƒ n1 sÁw   Y  ||d |kt |¡B  }d |	› d!|
› d"|› d#|jj› d$|› �
}t||d ||d%d&� W d  ƒ n1 sûw   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   rr   rÕ   r;  r­  rt   rP  r^  r  rk  r  rX   rN  rÔ   )rr   r  r  rž  rŸ  )gš™™™™™Ù¿ç333333Ó¿r^  r­  rr   r¥  r:  ©rX   r  r^  r­  )rÖ   rÕ   r:  rV  rì  )rc   Úisinr�   ©rf  ©Úalpha_rangeÚ
beta_rangeÚ	pct_ranger1   r2   rK   „  s¨   ÿþ

ÿ

ÿ
þû

ÿö
ÿò
ÿî
ÿþê
ÿþå
 ÿþà
%
ÿ
þÛ
*
ÿ
þÖ
/
ÿ
þÑ
4ÿþÌ
9ÿþÇ
>ÿþÂ
C½ÿýz7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>rk  rY  c                    sH   t  | d ˆ¡t  | d ˆ ¡@ t  | d ˆ¡@ | d dk@ | d dk@ S )Nr¤  r	  rÅ  r  r:  ©rc   r§  r¨  r©  r1   r2   rK   Ò  ó   ÿþ
ý
üc                    s:   | d dkˆ @ t  | d ˆ¡@ dˆ v @ t  | d ˆ¡@ S )Nr	  r:  r¤  rÅ  r­  r¨  ©rª  r«  Úis_linux_32r¬  r1   r2   rK   Ý  s   
ÿþýüg•Ö&è.ñ=c                    s<   t  | d ˆ¡t  | d ˆ ¡@ t  | d ˆ¡@ | d dk@ S )Nr¤  r	  rÅ  r  r­  r¨  r©  r1   r2   rK   ç  ó   ÿþ
ýúfft-simpsonrÙ  c                    s<   | d dkt  | d ˆ¡@ t  | d ˆ ¡@ t  | d ˆ¡@ S )Nr	  rY  r¤  rÅ  r­  r¨  r©  r1   r2   rK   ð  s   
ÿþýr7  c                    sH   t  | d ˆ¡t  | d ˆ ¡@ t  | d ˆ¡@ | d dk@ | d dk @ S )Nr¤  r	  rÅ  r   rY  r­  r¨  r©  r1   r2   rK   ø  r®  Nz2Density calculations experimental for FFT method.*rZ   r	  rÅ  r   r   ©r_   r^   r  rÜ  ©ÚcalcÚabserrÚrelerrrW  r·  z	pdf test ú failed with method 'z' [platform: z]
Ú
F©Úerr_msgÚverbose)ÚplatformÚunameÚsystemÚmachineÚjoinÚ	processorr‰  r6   r¸  rn  r   Úrecordr[  rb   rc   r  r   r�   Úisnanr§   re  r   )rk   rw  r¬  rª  r«  r½   r¾  Úplatform_descÚtestsÚixÚdefault_methodr|   Úfilter_funcÚsubdataÚsuprW  Úsubdata2ÚfailuresÚmessager1   r¯  r2   Útest_pdf_nolan_samples[  s’   ÿ
ÿOÿÿÿ
ÿ	ÿ‹ ÿÿÿþûýýÿ

ÿÿÿÿÿÿûá€ûz%TestLevyStable.test_pdf_nolan_samplesc                    sÌ  |}dd‡ ‡‡fdd„gdd‡ ‡‡fdd„gdd‡ ‡‡fd	d„gdd
‡ ‡‡fdd„gdd‡ ‡‡fdd„gdd‡ ‡‡fdd„gg}t |ƒD ]Ÿ\}\}}	}
|tj_|
durY||
|ƒ n|}tƒ �}}| td¡ tjj|d |d |d ddd�}tj	dd��( t
|g d¢|t ||d  ¡t ||d  ¡t |d ¡ gƒ}W d  ƒ n1 s§w   Y  ||d |	kt |¡B  }d|› d|› d|jj› d |› �}t||d |	|d!d"� W d  ƒ n1 sÞw   Y  qDdS )#z4 Test cdf values against Nolan's stablec.exe output.rk  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¥  rX  rV  rt   ©rX   r  r^  rP  r­  r¨  r©  r1   r2   rK   P  s$   ÿþ
ÿ
þ
ÿ
þúÿýz7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>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 rÐ  r­  r¨  r©  r1   r2   rK   e  s"   ÿþ
ÿ
þü
	ÿ
þ÷r²  rÙ  c                    s<   t  | d ˆ¡t  | d ˆ ¡@ t  | d ˆ¡@ | d dk@ S )Nr¤  r	  rÅ  ç333333û?r­  r¨  r©  r1   r2   rK   w  r±  r·  c                    óH   t  | d ˆ¡t  | d ˆ ¡@ t  | d ˆ¡@ | d dk@ | d dk@ S )Nr¤  r	  rÅ  rˆ  rÒ  r­  r¨  r©  r1   r2   rK     r®  rî  c                    rÓ  )Nr¤  r	  rÅ  rS  rˆ  r­  r¨  r©  r1   r2   rK   ˆ  r®  rt   c                    rÓ  )Nr¤  r	  rÅ  r:  rS  r­  r¨  r©  r1   r2   rK   ‘  r®  Nz[Cumulative density calculations experimental for FFT method. Use piecewise method instead.*rZ   r	  rÅ  r   r   r³  r  rÜ  r´  rW  r·  z	cdf test r¸  z'
r¹  Frº  )r‰  r6   r¸  rm  r   rÃ  r[  ri   rc   r  r   r�   rÄ  r§   re  r   )rk   rx  r¬  rª  r«  r½   rÆ  rÇ  rÈ  r|   rÉ  rÊ  rË  rW  rÌ  rÍ  rÎ  r1   r©  r2   Útest_cdf_nolan_samples3  s€   ÿÿÿ	ÿ
ÿ
ÿ½Nÿÿÿþûýýÿ

ÿÿÿÿûã€ûz%TestLevyStable.test_cdf_nolan_samplesr  r   rL  rb   ri   c           
      C   sÀ   t  ¡ }|jdkodt  ¡ d v }|r|dkrt d¡ |}dtj_dtj_	||d |k }d|› �tj_
|d	v s;J ‚|dkrCt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   rb   z4Test unstable on some platforms; see gh-17839, 17859rk  r  ÚS)rb   ri   rZ   r	  rÅ  r`   r�   r³  rÙ  N)r½  r¾  r¿  Úarchitecturer¹   rº   r6   r¸  rm  rn  rl  rb   ri   r   )
rk   ry  r  rL  r¾  r°  r½   rÊ  rî  ru  r1   r1   r2   Útest_location_scaleÄ  s    
ÿÿz"TestLevyStable.test_location_scalezmethod,decimal_placesr£  rÎ   rk  c              	   C   sÌ   t  g d¢¡}t  g d¢¡}t  g d¢¡}t jdd��A tƒ �%}|jtdd� |tj_tjj	|d|dd	d
�}t
||||ƒ W d  ƒ n1 sGw   Y  W d  ƒ dS W d  ƒ dS 1 s_w   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   r`   r`   r`   r`   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   rN  rr   r   r   rN  rr   r   r   rN  rr   r   r   rN  rr   r   r   rN  rr   r   r  ©rÜ   zDensity calculation unstable.*)ÚcategoryrÎ  r   r   r³  N)rc   r   r  r   rO   r[  r6   r¸  rn  rb   r   )rk   rŽ  Údecimal_placesÚxsÚdensityÚbetasrË  rb   r1   r1   r2   Ú'test_pdf_alpha_equals_one_beta_non_zeroæ  s(   ÿÿÿþÿPøz6TestLevyStable.test_pdf_alpha_equals_one_beta_non_zerozparams,expected)rˆ  r‰  r   r   )r`   rÕ   r[   rˆ  )r[   rž  r   r   c                 C   s4   t jj |d |d |d |d dd�}t||ƒ d S )Nr   r   r`   r�   ry  r(  )r6   r¸  r   )rk   r¦  rT   Úobservedr1   r1   r2   r~    s
   þzTestLevyStable.test_statsr	  )rN  rr   rÔ   zfunction,beta,points,expectedr:  rQ  r[   rw   rœ  rF  c                 C   s@   d|  k rdk sJ ‚ 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   rc   rŒ  rû   )rk   r	  rî  rÅ  r¡  rT   r1   r1   r2   Ú!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   ó$   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©r6   r¸  rq  r   rb   ©rk   rZ   r	  rÅ  rT   r1   r1   r2   Útest_x_equal_zetaI  s
   -þz TestLevyStable.test_x_equal_zeta)
)r·  rã  rä  gôzÂ¶ùÙÑ?)r·  rå  ræ  gäV¬ÔüÑ?)r·  rç  rè  gRîE)3\Ñ?)r·  ré  rê  g�àBâîÑ?)r·  rë  rì  gŽ/ý^ÔíÑ?)ç-Cëâ6¿rã  rä  gHÔÚÑ?)rò  rå  ræ  gn²³�ÅüÑ?)rò  rç  rè  g¦üÇx“\Ñ?)rò  ré  rê  gV¿M%ÈîÑ?)rò  rë  rì  g˜m¿‹¯íÑ?c                 C   rí  )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
        rî  rá  Nrï  rð  r1   r1   r2   Útest_x_near_zeta}  s
   "þzTestLevyStable.test_x_near_zetac           	      C   sÐ   t jj}tddddd�}tj}tjdi |¤Ž}d|_d|_|jdi |¤d|d	ƒd
œ¤Ž}|jd|d	ƒd
�}t  ||k¡r>J ‚d|_d|_|jdi |¤d|d	ƒd
œ¤Ž}|jd|d	ƒd
�}t	||ƒ t	||ƒ d S )NrY  rX   rw   r:  ©r	  rÅ  r^   r_   r}  rj  r[   é
µ¨rØ   r1   )
rc   r�   rŽ   rý   r6   r¸  rl  r�   rê   r   ©	rk   r«   rú   ÚunfrozenÚfrozenÚ
unfrozen_aÚfrozen_aÚ
unfrozen_bÚfrozen_br1   r1   r2   Ú$test_frozen_parameterization_gh20821¦  s   
z3TestLevyStable.test_frozen_parameterization_gh20821c           	      C   sÂ   t jj}tddddd�}tj}d|_tjdi |¤Ž}|jdi |¤d|dƒd	œ¤Ž}|jd|dƒd	�}t||ƒ d
|_tjdi |¤Ž}|jdi |¤d|dƒd	œ¤Ž}|jd|dƒd	�}t||ƒ d S )NrY  rX   rw   r:  rô  r}  r[   rõ  rØ   rj  r1   )	rc   r�   rŽ   rý   r6   r¸  rl  r�   r   rö  r1   r1   r2   Ú%test_frozen_parameterization_gh20821b¼  s   
z4TestLevyStable.test_frozen_parameterization_gh20821bN)(rà   rá   râ   r¹   rø  rr  rw  rx  ry  rã   ræ   rä   r  r2  rå   rƒ  rÔ  r!  r–  r˜  rš  r�  rc   r?  rÏ  rÔ  rØ  rß  r  r  r~  r6   r¸  ri   rb   râ  rñ  ró  rý  rþ  r1   r1   r1   r2   rh  v  s   


!
+
ÿÿÿþþÿýüüôÿ Cýüüôÿ
| þþ
 þþ
üüüüíþì
ýrh  c                   @   rZ  )ÚTestArrayArgumentc                 C   r  r  r  ro   r1   r1   r2   r   Ñ  r!  zTestArrayArgument.setup_methodc                 C   s.   t jjt d¡t d¡dd�}t|jdƒ d S )Nr�   r¿  r�  )r6   rò  r�   rc   rÿ   ry  r   r*  ©rk   r�   r1   r1   r2   Útest_noexceptionÔ  s   ÿz"TestArrayArgument.test_noexceptionN)rà   rá   râ   r   r  r1   r1   r1   r2   rÿ  Ð  ó    rÿ  c                   @   rZ  )ÚTestDocstringc                 C   sH   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 d S )Nr  rs  )r6   r  rÂ  r   Úlowerrs  ro   r1   r1   r2   Útest_docstringsÛ  s
   ÿzTestDocstring.test_docstringsc                 C   s   t  ¡  t  ¡  d S rm   )r6   rB   rA   ro   r1   r1   r2   Útest_no_name_argâ  s   zTestDocstring.test_no_name_argN)rà   rá   râ   r  r  r1   r1   r1   r2   r  Ú  ó    r  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�   r`   r   r`   r�   r�   r   r`   )r�   r`   r`   r�   r�   r   )r   r   r   rc   rµ   ©r/   r0   r|  r1   r1   r2   Útest_args_reduceè  s   

r	  c                   @   s®   e Zd Zg d¢Zdd„ Zg d¢Zej de	¡dd„ ƒZ
dd	„ Zd
d„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zejjej dddg¡dd„ ƒƒZej dddg¡dd„ ƒZdS )ÚTestFitMethod)Úncfrs  rt  Ú	irwinhallc                 C   r  r  r  ro   r1   r1   r2   r   ü  r!  zTestFitMethod.setup_method)rù  rò  r'  r  z	dist,argsc                 C   s|   || j v rt |› d�¡ t dddddtjg¡}t dddddtjg¡}tt|ƒ}t	t
|j|dd� t	t
|j|dd� d	S )
rÁ  z  fit known to fail or deprecatedr°  r±  r²  r³  r´  r   rÕ  N)ÚfitSkipNonFiniter¹   rº   rc   r   r  r  r  r6   rô  r  rÃ   )rk   r>   r  rZ   r˜  Údistfuncr1   r1   r2   Ú!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��8 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   ƒ d S 1 sGw   Y  d S )Ni90  r  rÙ  rN  rw   ç      4@rë  r#  r`   r   rß  rÍ  r‹   )rc   r�   r‘   r  r6   r  r�   rT  ru  rÛ   r   r   rÃ   )rk   rZ   Úexpected_shaper1   r1   r2   Ú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�   r`   rÁ   rÕ  )rc   rÿ   r6   rò  rÃ   r   rT  r   ©rk   rZ   r^   r_   r1   r1   r2   Ú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Á   r�   r=  rh  ©r¸   r·   r`   rß  )rc   rÿ   ru  rÛ   r6   r|  rÃ   r   r   Údigammar   )rk   rZ   Úmeanlogr·   r/   r^   r_   rJ   r¸   r¶   r|  r1   r1   r2   Ú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û   rc   ru  rO  r   Úpsi)r/   r0   rZ   rV  Ús1r  Úpsiabrì   r1   r1   r2   ÚmlefuncN  s   ÿz0TestFitMethod.test_fix_fit_beta.<locals>.mlefunc)r:  rN  rr   r   r   rß  r7  r‹   r`   )r¸   r·   r¶   rÙ  )ró   r·   r¶   rr   rñ  )r·   r¶   r¸   )r·   r¶   ró   r�   )r¸   ró   r·   r¶   )
rc   r   r6   rÅ  rÃ   r   r   r   rô  r  )rk   r  rZ   r/   r0   r^   r_   ÚdaÚdbrÎ  r‡  Úb2rˆ  r‰  r˜  r1   r1   r2   Útest_fix_fit_betaK  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)r`   r`   rÎ   rÎ   rÎ   rÎ   rÎ   rh  r`   r�   rÕ  r   rÁ   rÎ   )rc   r   r6   rù  rÃ   r   r  r1   r1   r2   Útest_expon_fit‚  s   




zTestFitMethod.test_expon_fitc                 C   s   t  g d¢¡}t  |d ¡}tjj|dd�\}}}t|| ¡ dd� t|dƒ t|t  	| 
¡ ¡dd� tjj|ddd�\}}}t|t  |t  d¡ d  
¡ ¡dd� t|dƒ t|dƒ tjj|dd	d
�\}}}t|d	ƒ t|dƒ t|t  	| 
¡ ¡dd� d S )N)rˆ  r�   r[   r'  é   rã  r   rÁ   r³  r{   r™  rß  r`   rÔ   )r·   Úfix_s)rc   r   ru  r6   r  rÃ   r   r\  r   r£   rÛ   rT  )rk   rZ   Úlnxm1r*  r^   r_   r1   r1   r2   Útest_lognorm_fit‘  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ì  rF  rè  r   rÁ   r[   rÕ  rv   r;  )rc   r   r6   r'  rÃ   r   r$  rÙ  r‡  rô  r  r  r1   r1   r2   Útest_uniform_fit¥  s   


zTestFitMethod.test_uniform_fitrŽ  ÚMLEÚ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é  r\   r×   rØ   rÊ  )r¸   rŽ  )rÿ  rŽ  r³  r/  )r   rŽ  ré  )ró   rŽ  )r  rŽ  )r  rŽ  r   r`   )rÿ  r¸   rŽ  r   r�   )rÿ  ró   r·   r¶   rŽ  )rÿ  r·   r¶   rŽ  )rÊ  r   r   r#  )	r6   rÅ  r�   rÃ   r   rô  r  r   r|  )rk   rŽ  r/   r0   rZ   Úres_1Úres_2Úres_3Úres_4Úres_5ÚaaÚbbrÀ  Ússr½   r1   r1   r2   Ú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 )Nr`   r\   )rÌ  rµ   i›ÿÿÿ)ÚenikibenikirŽ  )r6   rË  r�   rý   rô  r  rÃ   )rk   rŽ  r>   r½   r  r1   r1   r2   Útest_extra_paramsß  s   
"zTestFitMethod.test_extra_paramsN)rà   rá   râ   rº   r   r  r¹   rã   rä   r   r  r  r  r  r   r!  r%  r&  rå   r1  r3  r1   r1   r1   r2   r
  ø  s$    

	&7&r
  c                   @   rC  )Ú
TestFrozenc                 C   r  r  r  ro   r1   r1   r2   r   é  r!  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Ê  r]   r  rN  r`   )r6   rò  rb   r   ri   rÚ   rŸ  rÙ   r«  rÛ   r¥  r\  rD   rJ  r/   r0   )rk   r>   rø  Úresult_fr‰  r1   r1   r2   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 )Nrv   r  rN  r’  r`   )r6   r|  rb   r   ri   rÚ   rŸ  rÙ   r«  rÛ   r¥  r\  rD   rJ  r/   r>   r0   )rk   r/   r>   rø  r5  r‰  r1   r1   r2   Ú
test_gamma$  sL   






















zTestFrozen.test_gammac                 C   s8   t  d¡}| d¡}|j dd� | d¡}t||ƒ d S )Nr   r`   ry  rz  )r6   r  rJ  r   )rk   rø  Úm1r—  r1   r1   r2   Útest_regression_ticket_1293X  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 ]6}t |¡}t j|d�}|j|j	}}t|dƒ t
t |¡ƒ t d¡}t j |¡\}}t||gdd	gƒ qpd S )
NrV  r#  rw   r’  rX   r   r  r  rr   )r6   r  r>   r   r   rb   rc   r  r/   r0   r   rÂ   r!  r   )rk   r|  r%  r/   r0   Úrv1r1   r1   r2   r"  g  s4   



özTestFrozen.test_abc                 C   s   t ttjdƒƒ d S )NÚ	rv_frozen)r   r.   r6   r7   ro   r1   r1   r2   Útest_rv_frozen_in_namespace“  s   z&TestFrozen.test_rv_frozen_in_namespacec                 C   sV   t  ¡ }tt|dƒƒ d|_t|j ¡ tj 	d¡ ¡ ƒ tj 	d¡}|j
d|d� d S )NrŠ   é*   r×   rh  rØ   )r6   rò  r   r.   rŠ   r   Ú	get_staterc   r�   r–  r�   )rk   rø  Úrndmr1   r1   r2   Útest_random_state—  s   
ÿzTestFrozen.test_random_statec           
      C   sÎ   t  dd¡}t  d¡}t jg d¢g d¢fd�}|||fD ]H}d|_|jdd	� t |¡}|jdd	�}t |¡}|jdd	�}t	||ƒ | 
d
¡| 
d
¡g}	t	|	d |	d ƒ t	| |	d ¡| |	d ¡ƒ qd S )Ng�µds’z@g@ø¯eä?rÊ  )r   r   r`   r�   r¦  r9  r×   rh  r#  rr   r   r   )r6   rÅ  rc  rA   rŠ   r�   ÚpickleÚdumpsÚloadsr   rÚ   ri   )
rk   rÅ  Úpoissr3  ÚdistfnrJ   Úr0Ú	unpickledÚr1Úmediansr1   r1   r2   Ú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 s4w   Y  t||ƒ t jddd�}| |¡}t jj|ddd�}t||ƒ d S )Nc                 S   ó   | S rm   r1   r¡   r1   r1   r2   rì   À  ó   z$TestFrozen.test_expect.<locals>.funcr`   r�   rÎ   r¡  r  )r  Údivider   T)r¬   ÚubÚconditional©r`   ©r  r^   r_   r¬   rM  rN  r½  )r�   ©r  r^   )r6   r|  rc   r  r¥   r   rc  )rk   rì   ÚgmÚgm_valÚ	gamma_valrW  Úp_valÚpoisson_valr1   r1   r2   Útest_expect½  s   ÿþ

zTestFrozen.test_expectN)rà   rá   râ   r   r©  r6  r8  r"  r;  r?  rI  rW  r1   r1   r1   r2   r4  è  s    34,r4  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   ó   | d | d  S )Nr�   r1   r¡   r1   r1   r2   rK   Ö  rL   z&TestExpect.test_norm.<locals>.<lambda>r�   r`   r]   rÎ   r”  r=  c                 S   rJ  rm   r1   r¡   r1   r1   r2   rK   Ù  r¢   r  rk  c                 S   rŸ   r    r1   r¡   r1   r1   r2   rK   Þ  r¢   ©r^   r_   r¬   rM  rÕ   c                 S   rŸ   r    r1   r¡   r1   r1   r2   rK   á  r¢   T©r^   r_   r¬   rM  rN  r:  )r6   rò  r¥   r   rÚ   )rk   rR  rÆ  r¬   rM  Úprob90Úprob90cr1   r1   r2   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   rY  )NçUUUUUU@r1   r¡   r1   r1   r2   rK   ç  rL   z&TestExpect.test_beta.<locals>.<lambda>r¿  r�   r`   )r  r^   r_   çÇqÇq¬?rl  r=  c                 S   rJ  rm   r1   r¡   r1   r1   r2   rK   ë  r¢   r;  rv   r^  rk  r[   r]   r  c                 S   rŸ   )Nr:  r1   r¡   r1   r1   r2   rK   ð  r¢   )r[   r[   FrP  rÕ   c                 S   rŸ   r    r1   r¡   r1   r1   r2   rK   ô  r¢   Tr:  )r6   rÅ  r¥   r   rÚ   )rk   rR  rÆ  rM  r¬   r\  r]  r1   r1   r2   Ú	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ë  r[   rh  r;  r½  c                 S   rJ  rm   r1   r¡   r1   r1   r2   rK   ý  r¢   z+TestExpect.test_hypergeom.<locals>.<lambda>)rë  r[   rh  rQ  rl  r=  c                 S   ó   | d d S ©Nrè  r`   r1   r¡   r1   r1   r2   rK      ó    r”  c                 S   ra  rb  r1   r¡   r1   r1   r2   rK     rc  r�   )r  r^   r¬   rM  r   c                 S   rŸ   r    r1   r¡   r1   r1   r2   rK     r¢   r™  r<  c                 S   rŸ   r    r1   r¡   r1   r1   r2   rK     r¢   T)r  r^   r¬   rM  rN  c                 S   rŸ   r    r1   r¡   r1   r1   r2   rK     r¢   r   )r  r¬   rM  )r6   rk  r¥   r   r7  rO  )
rk   Úm_trueÚv_truerÆ  rR  Úv_boundsÚ	prob_trueÚprob_boundsÚprob_bcÚprob_br1   r1   r2   Ú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   rŸ   r    r1   r¡   r1   r1   r2   rK     r¢   z)TestExpect.test_poisson.<locals>.<lambda>rO  r�   F)r  r¬   rN  r   r`   r”  r=  c                 S   rŸ   r    r1   r¡   r1   r1   r2   rK   !  r¢   T)r6   rc  r¥   ri   r   )rk   rh  Úprob_b_trueÚprob_lbr1   r1   r2   Útest_poisson  s   ÿÿzTestExpect.test_poissonc                 C   s<   t j}|jdd�}|jdd� |jdd�}t||dd� d S )N)rˆ  r   )rr   r”  r=  )r6   Úgenhalflogisticr¥   r   )rk   Úhalflogr  r  r1   r1   r2   Ú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   rŸ   r    r1   r¡   r1   r1   r2   rK   4  r¢   z/TestExpect.test_rice_overflow.<locals>.<lambda>)rr  r   c                 S   rŸ   rU  r1   r¡   r1   r1   r2   rK   5  r¢   c                 S   rŸ   ©Nr�   r1   r¡   r1   r1   r2   rK   6  r¢   )r   rc   rª  r6   Úricerb   r¥   ro   r1   r1   r2   Útest_rice_overflow/  s   "zTestExpect.test_rice_overflowc                 C   sp   d\}}t jjdd„ |fd�}t|||d  t d| ¡ dd� t jjdd„ |f|d	�}t||| dd� d S )
N)r^  r�   c                 S   rJ  rm   r1   ©rW   r1   r1   r2   rK   ;  r¢   z(TestExpect.test_logser.<locals>.<lambda>r   r:  rz   r‹   c                 S   rJ  rm   r1   rv  r1   r1   r2   rK   A  r¢   rQ  )r6   rè  r¥   r   rc   ru  )rk   rW  r^   Úres_0Úres_lr1   r1   r2   Útest_logser8  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   rJ  rm   r1   r¡   r1   r1   r2   rK   H  r¢   z)TestExpect.test_skellam.<locals>.<lambda>r   c                 S   rT  rU  r1   r¡   r1   r1   r2   rK   I  rV  r³  r‹   r`   )r6   ré  r¥   r   )rk   rÇ  Úp2r7  r—  r1   r1   r2   Útest_skellamD  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   rJ  rm   r1   r¡   r1   r1   r2   rK   Q  r¢   z)TestExpect.test_randint.<locals>.<lambda>c                 s   s   � | ]}|V  qd S rm   r1   ©r=   rÒ   r1   r1   r2   rS  S  s   € z*TestExpect.test_randint.<locals>.<genexpr>rz   r‹   )r6   r)  r¥   r   rO  rM  )rk   r  r  r­   r1   r1   r2   Útest_randintM  s
    
ÿzTestExpect.test_randintc                 C   s   t ttjjdd„ dƒ d S )Nc                 S   rT  rU  r1   r¡   r1   r1   r2   rK   X  rV  z&TestExpect.test_zipf.<locals>.<lambda>rO  )r	   r[  r6   rŽ  r¥   ro   r1   r1   r2   Ú	test_zipfU  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   rŸ   r    r1   r¡   r1   r1   r2   rK   \  r¢   z/TestExpect.test_discrete_kwds.<locals>.<lambda>rO  r   c                 S   rŸ   r    r1   r¡   r1   r1   r2   rK   ]  r¢   r)  é    rÍ  )r  ÚmaxcountÚ	chunksizeÚ	tolerancer”  r=  )r6   rc  r¥   r   )rk   Ún0Ún1r1   r1   r2   Útest_discrete_kwdsZ  s
   ÿzTestExpect.test_discrete_kwdsc                 C   s6   dd„ }dD ]}t j d|¡}t|||ƒdd� qd S )Nc                 S   s0   | d d| d   d| d   d| d   |  S )Nr�   r[   rÎ   rF  r�   r'  r`   r1   r®  r1   r1   r2   Úpoiss_moment5d  s   0z-TestExpect.test_moment.<locals>.poiss_moment5)r�   r  r�   r  r{   )r6   rc  rJ  r   )rk   r‡  r#  Úm5r1   r1   r2   Útest_momenta  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 )Nr3  r:  r]   r>  r[   rX   )é”   r   rŠ  éU   r½  )r   r6   rò  r¥   r|  rÂ  ro   r1   r1   r2   Útest_challenging_cases_gh8928k  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 )Nr[   r�   r]   r\  r  rZ  r"  r”  r  Tr[  rl  g433333@g433333Àr<  )r6   r'  rÛ   r   r¥   )rk   r>   rd  r1   r1   r2   Útest_lb_ub_gh15855t  s"   ÿÿÿÿzTestExpect.test_lb_ub_gh15855N)rà   rá   râ   r©  r`  rk  rn  rq  ru  ry  r{  r~  r  r†  r‰  rŒ  r�  r1   r1   r1   r2   rX  Ð  s    "
		
	rX  c                   @   sV   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Ze	j
 dddg¡dd„ ƒZdS )ÚTestNctc                 C   s@   t  dd¡}t| d¡dƒ t  dd¡}t| d¡ddd� d S )Nr�   r   rr   rÌ   g’ã ÑKìê?r[   r=  )r6   Únctr   ri   r   r*  r1   r1   r2   Útest_nc_parameter‹  s   zTestNct.test_nc_parameterc              	   C   sZ   t j dt dd¡d d …d f t ddd¡¡}tg d¢g d¢g d¢gƒ}t||d	d
� d S )Nr�   rÎ   r  rX   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Ù  r{   )r6   r�  rb   rc   rÿ   r?  r   r   )rk   r­   rT   r1   r1   r2   Útest_broadcasting“  s   ÿþzTestNct.test_broadcastingc                 C   s   t  dd¡}t| ¡ dƒ d S )NrÎ   r   rv   )r6   r�  r   r¥  r*  r1   r1   r2   Útest_variance_gh_issue_2401›  s   z#TestNct.test_variance_gh_issue_2401c                 C   sÂ   t jj dddd�\}}}}t||||gtjtjtjtjgƒ t jj dddd�\}}}}tt |¡ƒ t|||gtjtjtjgƒ t jj dddd�\}}}}tt |||g¡ ¡ ƒ t|tjƒ d S )NrÕ   r^  ry  )rª  Úncr{  rY  rì  )r6   r�  r   rc   r  r   rª  rÜ   rþ  r1   r1   r2   Útest_nct_inf_moments£  s   "zTestNct.test_nct_inf_momentsc                 C   sŒ   t j dd¡}t j  dd¡}ddg}t||d dd� t||dd� t j dd¡}t j  dd¡}d	d
g}t||d dd� t||dd� d S )Nr‚   r`   g‡@ @gå*‘dnð?r   r  r{   rÍ   g½qIÝ  @gLºñ) ð?r›  )r6   r�  rÛ   r   )rk   Únct_mean_df_1000Únct_stats_df_1000Úexpected_stats_df_1000Únct_meanÚ	nct_statsrE  r1   r1   r2   Ú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 )Nr`   i   r   )r   r6   r�  ri   rÅ   ro   r1   r1   r2   Útest_cdf_large_ncÆ  r  zTestNct.test_cdf_large_nczx, df, nc, expected)r*  r[   r  gúAsî€6Ñ9)r.  rh  r  gú¤†V™¥‡1c                 C   rá  r²  )r   r6   r�  rb   )rk   rZ   rª  r“  rT   r1   r1   r2   Útest_pdf_large_ncá  rã  zTestNct.test_pdf_large_ncN)rà   rá   râ   r�  r‘  r’  r”  rš  r›  r¹   rã   rä   rœ  r1   r1   r1   r2   rŽ  Š  s    þrŽ  c                   @   r  )
ÚTestRecipInvGaussc                 C   s   t j dd¡}|dksJ ‚d S )Nr   r  rw   )r6   Úrecipinvgaussrb   rn  r1   r1   r2   Útest_pdf_endpointì  s   z#TestRecipInvGauss.test_pdf_endpointc                 C   s"   t j dd¡}|tj ksJ ‚d S )Nr   r  )r6   rž  r™   rc   r  rÈ  r1   r1   r2   Útest_logpdf_endpointð  r¥  z&TestRecipInvGauss.test_logpdf_endpointc                 C   s$   t j dd¡}d}t||dd� d S )Nr  rr   g9V9�só;rÉ  r{   )r6   rž  ri   r   ©rk   rW  rT   r1   r1   r2   Útest_cdf_small_xô  s   z"TestRecipInvGauss.test_cdf_small_xc                 C   s"   t j dd¡}d}t||dƒ d S )NrD  rr   glæ‘ÄæH<r•  )r6   rž  rÙ   r   r¡  r1   r1   r2   Útest_sf_large_x  s   z!TestRecipInvGauss.test_sf_large_xN)rà   rá   râ   rŸ  r   r¢  r£  r1   r1   r1   r2   r�  ê  s
    r�  c                   @   rq  )ÚTestRicec                 C   sô   g d¢}t t tjj|dd�¡ ¡ ƒ t t tjj|dd�¡ ¡ ƒ t t tjj|dd�¡ ¡ ƒ t t tjj	|dd�¡ ¡ ƒ g d¢}t t tjj
|dd�¡ ¡ ƒ tjjddd�}t t |¡ ¡ ƒ d}ttj |d¡tj ||¡|dd	� d S )
N)r  r:  r;  rw   ©r0   )rX   rX   rr   rÕ   r   ry  rz  rÍ  r/  )r   rc   rª  r6   rt  rb   rÜ   r™   ri   r–  rÚ   r   )rk   rZ   r_  ry  r0   r1   r1   r2   Ú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�   r�   )r0   rµ   )r6   rt  r�   r   rµ   r*  r   r1   r1   r2   Útest_rice_rvs%  s   zTestRice.test_rice_rvsc                 C   s–   t j t ddd¡t ddd¡¡}g d¢}t||ƒ t ddd¡}t jj|ddd�}g d	¢}t||ƒ tj j d
t ddd¡¡}g d¢}t||ƒ d S )Nr[   é    )g/¨�Æ¸Þ?g�[jÇŠ\ß?gÅ ›	“ß?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êß?rX   r   g     @_@rÎ   r¨  )	gÞÚÜî<î~@gwÂ�¢d
@gCŽ?å±@gçbÃ
0@gÚ` ‰A@@g'†êNxP@g3™3-Ña@g»Ñ4pv@gÎã�$F’@rr   é–   )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@)r6   rt  ri   rc   rÿ   r   rÚ   r5   )rk   ri   Úcdf_expÚprobabilitiesrÚ   Úppf_expr1   r1   r2   Útest_rice_gh9836*  s   "

zTestRice.test_rice_gh9836N)rà   rá   râ   r¦  r§  r­  r1   r1   r1   r2   r¤    s    r¤  c                   @   rq  )Ú
TestErlangc                 C   r  r  r  ro   r1   r1   r2   r   U  r!  zTestErlang.setup_methodc              	   C   sˆ   t  ¡ �6 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   ƒ d S 1 s=w   Y  d S )NrT  rS  r   r   rÎ   r�  )rr   r:  rv   ré  rž  rî  r{   )rX  rY  rZ  r[  rô  r6   Úerlangr�   rÃ   r|  r   )rk   r½   Úresult_erlangÚresult_gammar1   r1   r2   Útest_erlang_runtimewarningX  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 )Nrr   r   rÌ   r�  )r   r6   r¯  rb   r|  ro   r1   r1   r2   Útest_gh_pr_10949_argcheckk  s   ÿz$TestErlang.test_gh_pr_10949_argcheckN)rà   rá   râ   r   r²  r³  r1   r1   r1   r2   r®  T  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   r  )Nr€  r  ro   r1   r1   r2   r   q  r!  zTestRayleigh.setup_methodc                 C   rë  )Nr%  gò)¤Zx“À)r6   r  r™   r   ©rk   r˜  r1   r1   r2   rŠ  u  ó   zTestRayleigh.test_logpdfc                 C   rë  )Nr%  iûÿÿ)r6   r  r—  r   rµ  r1   r1   r2   r®  y  r¶  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 )Nr`   rr   )rc   rO  rû   )r½   r·   r1   r1   r2   r¡  ‚  s   "z(TestRayleigh.test_fit.<locals>.scale_mlerÁ   r  rÕ  )r6   r  r�   rÃ   r   )rk   r°   rÚ  r½   r¡  Úscale_expectr^   r_   r1   r1   r2   rÔ  }  s   



zTestRayleigh.test_fitrr  rt   gÌ¡=E«µ?g@1²dŽå¾?c                 C   s"   t jjd||d�}tt j|ƒ d S )Nr‹  rÊ  )r6   r  r�   r»   )rk   r°   rÚ  r½   r1   r1   r2   Ú test_fit_comparison_super_method–  s   z-TestRayleigh.test_fit_comparison_super_methodc                 C   s   t tjƒ d S rm   )r  r6   r  ro   r1   r1   r2   r  ž  rp  zTestRayleigh.test_fit_warningsc           	      C   s‚   t j d¡}d\}}}tjj||||d�}tj |¡\}}|t  |¡k s&J ‚tjj||d�\}}|t  |¡k s9J ‚||ks?J ‚d S )NiÈ  )r%  r‡  rd  rØ   rÕ  )rc   r�   rŽ   r6   r  r�   rÃ   r$  )	rk   r«   r^   r_   rµ   r�   rÈ   rÒ   rÉ   r1   r1   r2   Útest_fit_gh17088¡  s   
zTestRayleigh.test_fit_gh17088N)rà   rá   râ   r   rŠ  r®  r¹   rã   rä   rÔ  r¸  r  r¹  r1   r1   r1   r2   r´  p  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	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dS )ÚTestExponWeibc                 C   sB   d}d}d}t j |||¡}t j |||¡}t||gddgƒ d S )NrX   r:  r#  g:±2Ë3WË+gõÔ~`9ëkÀ)r6   Ú	exponweibrb   r™   r   )rk   rZ   r/   r|  rW  r‰  r1   r1   r2   Útest_pdf_logpdf°  s   ÿzTestExponWeib.test_pdf_logpdfc                 C   sj   t  ddd¡}d}d}tj |||¡}tj ||¡}t||ƒ tj |||¡}tj ||¡}t||ƒ d S )Nry  rÌ   rÎ   r   r\   )rc   rz  r6   r»  rb   Úweibull_minr   r™   ©rk   rZ   r/   r|  rW  rT   r‰  r1   r1   r2   Útest_a_is_1»  s   
zTestExponWeib.test_a_is_1c                 C   sf   t  ddd¡}d}d}tj |||¡}tj |¡}t||ƒ tj |||¡}tj |¡}t||ƒ d S )NrZ  r   r[   )rc   rz  r6   r»  rb   rù  r   r™   r¾  r1   r1   r2   Útest_a_is_1_c_is_1Ë  s   
z TestExponWeib.test_a_is_1_c_is_1zx, a, c, ref))r   rD  rÔ   g=J ‹�Õå?)r%  rD  rÔ   g$‰�+€PR>)rŠ  rD  rÔ   gŠìŸ>ò¤<)r‹  rD  rÔ   ggåX.‹X:)r‹  ç       ?rÔ   gR„¥y‹¢ó9)r�   rÁ  rÊ  g'�v˜Rˆ0=)g_ûðQïüšPr’  ri  gQ:œñêù€<c                 C   r  rÄ  )r6   r»  rÙ   r   )rk   rZ   r/   r|  rd  rÙ   r1   r1   r2   r¤  ê  ó   zTestExponWeib.test_sfzp, a, c, ref))rN  rD  rÔ   gñó;y$(@)gMgâñžµ<rD  rÔ   gdb÷æq^@)r³  r   r`   g³E�¤­@)g‚vIhÂ%L=rÁ  r�   g†/ý7ž¡@)rµ  r’  ri  gTWìT½°Oc                 C   r  r¶  )r6   r»  rŸ  r   )rk   rW  r/   r|  rd  rŸ  r1   r1   r2   r§  	  s   	zTestExponWeib.test_isf)r`   r�   rh  gõúó¨)r‚   rr   rÔ   glÌ‡ÕÕ¯c                 C   r  r”  )r6   r»  r–  r   )rk   rZ   r/   r|  rd  r–  r1   r1   r2   r«    r  zTestExponWeib.test_logcdf)g—R]j—Ùp2rˆ  rê  gÒàér¡¡¦)rö  r`   r[   g±÷N’~¨—c                 C   r  r”  )r6   r»  r—  r   )rk   rZ   r/   r|  rd  r—  r1   r1   r2   r®    r  zTestExponWeib.test_logsfN)rà   rá   râ   r¼  r¿  rÀ  r¹   rã   rä   r¤  r§  r«  r®  r1   r1   r1   r2   rº  ®  s4    þ

þ
ÿÿ
ÿÿrº  c                   @   rZ  )ÚTestFatigueLifec                 C   rš  )NrO  rD  ç”Äì‘X·à9r†   r{   )r6   r  rÙ   r   r£  r1   r1   r2   Útest_sf_tail(  s   zTestFatigueLife.test_sf_tailc                 C   s$   d}t j |d¡}t|ddd� d S )NrÄ  rD  rO  r†   r{   )r6   r  rŸ  r   )rk   rW  r_  r1   r1   r2   Útest_isf_tail6  s   zTestFatigueLife.test_isf_tailN)rà   rá   râ   rÅ  rÆ  r1   r1   r1   r2   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   rA  rl  )r6   r½  r™   r   rµ  r1   r1   r2   rŠ  ?  ó   zTestWeibull.test_logpdfc           
      C   sP  d}d}d}t jj|||d�}t|t d¡d ƒ t jj|||d�}t|dt d¡ ƒ t jj|||d�}t|t	 
d¡ ƒ t jj|||d�}t|t t	 
d¡ ¡ƒ t jj|||d�}t|t d¡ƒ t jj|||d�}	t|	dƒ t jjdddd�}t|t d	¡ƒ t jjdddd�}	t|	d	ƒ d
}t jj|||d�}t|t d¡d ƒ t jj|||d�}t|dt d¡ ƒ t jj|||d�}t|t d¡ƒ t jj|||d�}t|dƒ t jj|||d�}t|t	 
d¡ ƒ t jj|||d�}	t|	t t	 
d¡ ¡ƒ t jjdddd�}t|t	 
d¡ ƒ t jjdddd�}	t|	t t	 
d¡ ¡ƒ d S )Nrˆ  rv   rÊ  r¨  rt  r�   r"  r`   r]  r  g•Ö&è.¾gC‚º¨e ¼)r6   r½  rb   r   rc   r£   r™   ru  ri   r   r`  r–  rÙ   r—  Úweibull_max)
rk   rZ   r/   r0   rW  rœ  r|  ÚlcrJ   r  r1   r1   r2   Útest_with_maxima_distribD  sH   


z$TestWeibull.test_with_maxima_distribr_   r:  rX   c                 C   s*   t jj|d |d d|d�}t|dƒ d S )Nr[  rh  r�   r¨  g>²¥ö“ä)r6   r½  r¾  r   rG  r1   r1   r2   r¿  ˜  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r<dks?J ‚ J ‚||
ksEJ ‚tjj|ddd	d
�\}}}|dksXJ ‚t |||¡}|jdd�}t  |¡t |¡f}t	||ƒ d S )Nl   â£>“ )r`   r   rr   r\   rØ   rˆ  r�   rÁ   r;  r�  r‚  rƒ  rz  )
rc   r�   rŽ   r6   r½  r�   rÃ   rÛ   r¦  r   )rk   r«   r|  r^   r_   r>   r�   Úc2rˆ  r‰  Úc3r‹  rŒ  Úc4rŽ  r�  r�  r­   rd  r1   r1   r2   Útest_fit_min­  s   
zTestWeibull.test_fit_minrÌ  )r%  r   rf  )r‚   rÖ   g€që®•qH)c                 C   rÃ  r¶  )r   r6   r½  rÙ   rŸ  rÐ  r1   r1   r2   rº  Ë  s   zTestWeibull.test_sf_isfN)rà   rá   râ   rŠ  rË  r¹   rã   rä   r¿  rÏ  rº  r1   r1   r1   r2   rÇ  =  s    T

ÿrÇ  c                   @   rZ  )ÚTestDweibullc                 C   sR   t j d¡}d|jddd� }tj |¡}tj |¡t  d¡ }t	||dd� d S )Nì   q>¤Ý~). r[   r\   r«  rr   rz   r{   )
rc   r�   rŽ   rO  r6   ÚdweibullrD   r½  ru  r   )rk   r«   r|  r­   rd  r1   r1   r2   rS  Ô  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Ñ  r[   r   r«  rr   rz   r{   )
rc   r�   rŽ   rO  r'  r6   rÒ  rÙ   r½  r   )rk   r«   r|  rZ   r­   rd  r1   r1   r2   r¤  á  s   zTestDweibull.test_sfN)rà   rá   râ   rS  r¤  r1   r1   r1   r2   rÐ  Ó  s    rÐ  c                   @   rC  )ÚTestTruncWeibullc                 C   s(   t j ddgddd¡}t|ddgƒ d S )NrX   rv   g)\�Âõ(¼?g×£p=
×ÿ?rw   )r6   Útruncweibull_minrb   r   rµ  r1   r1   r2   Útest_pdf_boundsî  ó   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 )Nrv   r:  rw   ré  g€öø~èœÂ?)r6   rÔ  r™   rc   r  r   r   rµ  r1   r1   r2   rŠ  ó  s   
zTestTruncWeibull.test_logpdfc                 C   s(   t j ddgddd¡}t|ddgƒ d S )Nrw   r:  rv   rX   )r6   rÔ  rÚ   r   rµ  r1   r1   r2   Útest_ppf_boundsû  rÖ  z TestTruncWeibull.test_ppf_boundsc                 C   ó:   g d¢}t j |ddd¡}t j |ddd¡}t||ƒ d S ©N)rw   rX   rN  rr   rÔ   rÕ   r:  rv   rw   rÊ  )r6   rÔ  rÚ   ri   r   ©rk   r_  rZ   Úq_outr1   r1   r2   Útest_cdf_to_ppf   ó   z TestTruncWeibull.test_cdf_to_ppfc                 C   rØ  rÙ  )r6   rÔ  rŸ  rÙ   r   rÚ  r1   r1   r2   Útest_sf_to_isf  rÝ  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 )Nrv   r:  rÊ  c                    s   | | t j | ˆˆ ˆ¡ S rm   )r6   rÔ  rb   )rZ   rV  r  r1   r2   Úxnpdf  s   z)TestTruncWeibull.test_munp.<locals>.xnpdfr   r   c                    ó
   ˆ | dƒS r    r1   r¡   ©rß  r1   r2   rK     ó   
 z,TestTruncWeibull.test_munp.<locals>.<lambda>r`   c                    rà  rU  r1   r¡   rá  r1   r2   rK     râ  r�   c                    rà  rs  r1   r¡   rá  r1   r2   rK      râ  rÎ   c                    rà  )NrÎ   r1   r¡   rá  r1   r2   rK   $  râ  )r6   rÔ  rJ  r   r   r   )rk   rN  r7  Úm1_expectedrÒ   r—  Úm2_expectedÚm3Úm3_expectedr˜  Úm4_expectedr1   )r/   r0   r|  rß  r2   Ú	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Ê  rv   r   rr   rÆ  )rc   rT  ru  r£   r6   rÔ  ri   r   r–  rÚ   rÙ   r—  rŸ  )rk   r/   r0   r|  Úx_medri   rÊ  rÚ   rÙ   r  rŸ  r1   r1   r2   Ú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 )
Nrˆ  rv   rw   rÊ  r¨  r"  r`   r�   r]  )rc   r  r6   r½  rb   rÔ  r   r™   ri   r–  rÙ   r—  r£   )rk   rZ   r|  r/   r0   r_   rW  Úp_truncrœ  Úlp_truncri   Ú	cdf_truncrÊ  Úlc_truncrJ   Ús_truncr  Úls_truncr1   r1   r2   Útest_compare_weibull_min?  s6   





z)TestTruncWeibull.test_compare_weibull_minc           
      C   sª   d\}}}t  ||d¡}tj ||||¡}tj ||||¡}tj ||¡tj ||¡ }tj ||¡| }tj ||¡tj ||¡ | }	t j ||¡ t j ||	¡ d S )N)rD  rN  rê  r\   )	rc   r?  r6   rÔ  rb   ri   r½  r¥  r   )
rk   r|  r/   r0   rZ   r¢  r  rò  r£  r  r1   r1   r2   Útest_compare_weibull_min2h  s   
 z*TestTruncWeibull.test_compare_weibull_min2N)rà   rá   râ   rÕ  rŠ  r×  rÜ  rÞ  rè  rê  rñ  rò  r1   r1   r1   r2   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     è€@r�   r=  )r6   Úrdistr   ri   rÚ   )rk   rD  r4  r1   r1   r2   Útest_rdist_cdf_gh1285z  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®ï¿rP  r[   gš™™™™™@rr   r`   r   )rc   r?  r   r6   rÅ  rb   rô  )rk   rZ   r|  r1   r1   r2   Útest_rdist_beta�  s
   &ÿzTestRdist.test_rdist_betarÌ  ))r·  i  gùçÖÍðß?)rX   éñ   g�;|bZ¹®?)rr   i¹  g¸7¦Âë9)rÖ   iU  gÞ»·¬”Sæ/c                 C   rÎ  r¶  )r   r6   rô  rÙ   rÐ  r1   r1   r2   Útest_rdist_sf�  s   
zTestRdist.test_rdist_sfN)	rà   rá   râ   rõ  rö  r¹   rã   rä   rø  r1   r1   r1   r2   ró  y  s    þ	ró  c                   @   sV   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Ze	j
 dg d¢¡dd„ ƒZdS )ÚTestTrapezoidc                 C   s`   g d¢}|D ]'}d|dg}t tj |||¡tj ||¡ƒ t tj |||¡tj ||¡ƒ qd S )N)r   r^  rr   r   r   r   )r   r6   r   rb   Útriangri   )rk   ÚmodesÚmoderZ   r1   r1   r2   Útest_reduces_to_triang�  s   
ÿÿüz$TestTrapezoid.test_reduces_to_triangc                 C   sN   t  ddd¡}ttj |dd¡tj |¡ƒ ttj |dd¡tj |¡ƒ d S )Nr   r   r[   )rc   r?  r   r6   r   rb   r'  ri   r¦  r1   r1   r2   Útest_reduces_to_uniform¦  s   "z%TestTrapezoid.test_reduces_to_uniformc                 C   s  t tj ddd¡dƒ t tj ddd¡dƒ t tj ddd¡dƒ t tj ddd¡dƒ t tj d	dd¡d
ƒ t tj ddd¡dƒ t tj ddd¡d
ƒ t tj d	dd¡dƒ t tj ddd¡dƒ t tj ddd¡dƒ t tj ddd¡dƒ t tj ddd¡dƒ d S )Nr   r`   r   rr   rÖ   rB  r  r:  rX   g      ä?rê  rÕ   rÁ  r:  g      ï?)r   r6   r   rb   ri   ro   r1   r1   r2   Ú
test_cases«  s    ÿÿzTestTrapezoid.test_casesc           	         sf  d\‰ ‰‰‰ˆˆ  ˆˆ   ˆˆ  ˆˆ   ˆ ˆˆ  f\}}}}dˆˆ ˆ ˆ   ‰‡ ‡‡‡‡fdd„}|dƒ}|dƒ|d  }dˆˆ ˆ ˆ   ˆˆ ˆ ˆ   t  dˆˆ ˆ ˆ   ¡ }ttj ||||¡|dd� ttj ||||¡|dd� ttj ||||¡|dd� ttj d	d	d
d¡ddd� ttj d	dd
d¡d	dd� ttj d	dd
d¡ddd� d S )N)r-  rÌ   r`   r�   r`   c                    sT   ˆˆ| d  ˆ| d   ˆˆ  ˆ| d  ˆ | d   ˆˆ     | d  | d  S )Nr`   r   r1   )rV  ©r/   r0   r|  ÚdrR  r1   r2   rJ  Æ  s    ÿþþz6TestTrapezoid.test_moments_and_entropy.<locals>.momentr   rr   rl  r=  r   r-  r™  rÌ   r�   )rc   ru  r   r6   r   rÛ   r¥  rD   )	rk   rÇ  rz  r^   r_   rJ  rÛ   r¥  rD   r1   r   r2   Útest_moments_and_entropy¿  s&   0>ÿÿÿ z&TestTrapezoid.test_moments_and_entropyc                 C   s`  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 |||¡||
< qIt|| |j¡dd� t  tjj||dd	�¡}t  ||¡\}}t  |jd
f¡}t  	|j¡}	t
|	| ¡ | ¡ ƒD ]\}
}}tjj||dd	�||
< q‘t||j |j¡dd� d S )NrÑ  rr   r  )r!  rN  rÕ   r  rz   r‹   ry  rz  rÎ   )rc   r   r6   r   rb   Úbroadcast_arraysÚemptyrµ   r§   rÿ   rþ   Úravelr   r£  r*  rÂ   rv  )rk   r|  r  rZ   rR  ÚccÚddr}  r­   ÚindrK  rÍ  Úc1Úd1r1   r1   r2   Útest_trapezoid_vectÚ  s"   &z!TestTrapezoid.test_trapezoid_vectc                 C   s`   t  ddd¡}tjdd�� tj |dd¡}W d   ƒ n1 s w   Y  t|tj |¡ƒ d S )Nr   r   r[   z`trapz.pdf` is deprecatedr÷   )	rc   r?  r¹   Údeprecated_callr6   rE   rb   r   r'  )rk   rZ   r‰  r1   r1   r2   Ú
test_trapzô  s
   ÿzTestTrapezoid.test_trapzrŽ  )rb   r™   ri   r–  rÙ   r—  rÚ   rŸ  c                 C   st   d\}}t tj|ƒd||ƒ}tjd|› d�d�� t tj|ƒd||ƒ}W d   ƒ n1 s-w   Y  ||ks8J ‚d S )N)r  rÖ   r   z`trapz.z` is deprecatedr÷   )r  r6   r   r¹   r  rE   )rk   rŽ  r|  r  rT   r‰  r1   r1   r2   Útest_trapz_deprecationû  s   
ÿýz$TestTrapezoid.test_trapz_deprecationN)rà   rá   râ   rý  rþ  rÿ  r  r  r  r¹   rã   rä   r  r1   r1   r1   r2   rù  œ  s    	rù  c                   @   rj  )Ú
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   ƒ d S 1 sŠw   Y  d S )NÚraiserÙ  r   rv   rr   r:  r   rw   r`   rÔ   rN  )rc   r  r   r6   rú  rb   ri   ro   r1   r1   r2   Útest_edge_cases  s   "ñzTestTriang.test_edge_casesN)rà   rá   râ   r  r1   r1   r1   r2   r    rç  r  c                   @   sP   e Zd Zej dddg¡dd„ ƒZej dg d¢¡dd	„ ƒZd
d„ Zdd„ Z	dS )ÚTestMaxwellr„  )rë  gCõR5&.)rt   g£Ÿ7qÿÿï?c                 C   r±  rÄ  )r   r6   ÚmaxwellrÙ   rØ  r1   r1   r2   r¤     r¶  zTestMaxwell.test_sfrí  ))rî  g1áúð!@)g    àÿï?g—úí­À£?)g      €<gÇCuìJé!@c                 C   r±  ry   )r   r6   r  rŸ  rï  r1   r1   r2   r§  )  rÊ  zTestMaxwell.test_isfc                 C   ó"   d}t j d¡}t||dd� d S )Ngi6©ê—u¼r\  r•  r{   )r6   r  r–  r   )rk   rd  r–  r1   r1   r2   r«  0  ó   zTestMaxwell.test_logcdfc                 C   r  )Ng_O‹é“ÔºrÍ  r•  r{   )r6   r  r—  r   )rk   rd  r—  r1   r1   r2   r®  6  r  zTestMaxwell.test_logsfN)
rà   rá   râ   r¹   rã   rä   r¤  r§  r«  r®  r1   r1   r1   r2   r    s    ÿÿ
ÿ
r  c                   @   rZ  )Ú
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   r6   ÚmielkerJ  rc   r  r   rª  )rk   rW   rJ   r1   r1   r2   rý  >  s    zTestMielke.test_momentsc                 C   s@   t  ddd¡}d\}}ttj |||| ¡tj |||¡ƒ d S )Nrt   r\   r%  )gš™™™™™@gHáz®G@)rc   r?  r   r6   Úburrrb   r  )rk   rZ   rW   rJ   r1   r1   r2   Útest_burr_equivalenceE  s   *z TestMielke.test_burr_equivalenceN)rà   rá   râ   rý  r  r1   r1   r1   r2   r  =  r  r  c                   @   r  )
Ú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   )rr   r`   )r   r   )r`   rr   rx  rr   r:  )r   r`   rv   c                 S   r÷  r1   rø  rù  r1   r1   r2   r?   X  rü  z0TestBurr.test_endpoints_7491.<locals>.<listcomp>c                 S   rý  r1   r1   rþ  r1   r1   r2   r?   Y  r   c                 S   r÷  r1   )r™   r/   rù  r1   r1   r2   r?   \  rü  c                 S   s   g | ]
\}}}t  |¡‘qS r1   )rc   ru  rþ  r1   r1   r2   r?   ]  r+  )r6   Úfiskr  Úburr12r   )rk   r½   r  r  r1   r1   r2   Útest_endpoints_7491L  s   






ù	
zTestBurr.test_endpoints_7491c                 C   s<   d\}}t  ||¡  ¡ \}}d\}}t||ƒ t||ƒ d S )N)r;  r�   )g¼©4U�“ö?g�Šˆ&MIÍ?)r6   r  r   )rk   r|  r  rÛ   ÚvarianceÚmean_hcÚvariance_hcr1   r1   r2   Ú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)rr   r�   )rˆ  r�   rÎ  )rD  r�   )r   r�   )rž  r�   )r6   r  r   rc   rÄ  rª  rï  r   )	rk   r|  r  rÛ   r  Úe1Úe2Úe3Úe4r1   r1   r2   Útest_burr_nan_mean_var_9544k  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Ê  )rX   r  rš  rÖ  )g+ðñšÈ&ÿ?gÑI’­$_@gýKš§TÈ@g¡Ø—V³�ArÉ  r{   )r   r6   r  rŸ  )rk   r|  r  r_  rd  r1   r1   r2   Útest_burr_isf•  s   zTestBurr.test_burr_isfN)rà   rá   râ   r  r"  r'  r(  r1   r1   r1   r2   r  K  s
    *r  c                   @   sH   e Zd Zej dddg¡dd„ ƒZdd„ Zej dg d	¢¡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Î   rh  r¨  r†   r{   )r6   r  r¾  r   )rk   r_   rT   r3  r1   r1   r2   r¿  ¢  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 )NrJ  rÎ   r   r`   r  r�   r€  rˆ  ry  rÉ  r{   )rc   rd   r  r6   r  r   )	rk   r|  r  rÛ   r¥  r¦  rs  rd  r­   r1   r1   r2   Útest_moments_edge¹  s   
zTestBurr12.test_moments_edgezp, c, d, ref))r³  rë  rr   ggx‰4§²/@)g¬Ò¶OÉƒý;rë  rr   gIÁ8a³ÛS@)r³  rN  é#   gj\Ä/ýµ @)g#aM¬øR/rN  r+  g¢ó!ŠGÔAc                 C   r  rÄ  )r6   r  rŸ  r   )rk   rW  r|  r  rd  rZ   r1   r1   r2   Útest_isf_near_zeroÉ  s   zTestBurr12.test_isf_near_zeroN)	rà   rá   râ   r¹   rã   rä   r¿  r*  r,  r1   r1   r1   r2   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ejj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{w   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(ejj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¾Ÿ/Ý¤@)rk  rP  rh  r   r�   r[   rë  éx   )r`   rh  r”  rë  )rX   r�   i)#  gupm1�f?)r   r[   r‚   g?¿<-š=A?gv"èü«ÏÎ?rÎ   gÒdæš•ï?gaâý-ûA?c                 C   s<   | j D ]\}}|\}}}tj |||¡}t||dd� qd S )Nr·  r{   )r½   r6   Ústudentized_rangeri   r   )rk   Úpvkr_  Ú
p_expectedrR  rW   Úres_pr1   r1   r2   Útest_cdf_against_tables    ó
   
ýz,TestStudentizedRange.test_cdf_against_tablesc                 C   s<   | j D ]\}}|\}}}tj |||¡}t||dd� qd S )Nr‡  r{   )r½   r6   r/  rÚ   r   )rk   r0  Ú
q_expectedrW  rR  rW   Úres_qr1   r1   r2   Útest_ppf_against_tables   r4  z,TestStudentizedRange.test_ppf_against_tablesz&data/studentized_range_mpmath_ref.jsonNÚcase_resultÚcdf_datac                 C   óN   |d }|d }|d |d |d f}t jj|Ž }t|||d |d d� d S ©	NÚsrc_caseÚ	mp_resultr_  rW   rR  Úexpected_atolÚexpected_rtolr/  )r6   r/  ri   r   ©rk   r8  r<  r=  Úqkvr­   r1   r1   r2   Útest_cdf_against_mp   ó   
þz(TestStudentizedRange.test_cdf_against_mpÚpdf_datac                 C   r:  r;  )r6   r/  rb   r   r@  r1   r1   r2   Útest_pdf_against_mp   rC  z(TestStudentizedRange.test_pdf_against_mpz+intermittent RuntimeWarning: invalid value.Úmoment_datac                 C   sz   |d }|d }|d |d |d f}t jdd�� tjj|Ž }W d   ƒ n1 s*w   Y  t|||d |d	 d
� d S )Nr<  r=  rÆ  rW   rR  r  r  r>  r?  r/  )rc   r  r6   r/  rJ  r   )rk   r8  r<  r=  Úmkvr­   r1   r1   r2   Útest_moment_against_mp)   s   ÿ
þz+TestStudentizedRange.test_moment_against_mpc                 C   s4   d\}}t tjjdtj||fd�}t|d dƒ d S )N©r�   r[   r   r   r   )r   r6   r/  rb   rc   r  r   )rk   rW   rR  r­   r1   r1   r2   Ú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 )	NrI  r   r[   rt   )Ústepr   r·  r{   )rc   rÿ   r6   r/  ri   rb   r   r   )rk   rW   rR  rZ   Úy_cdfÚ	y_pdf_rawÚy_pdf_cumulativer1   r1   r2   Útest_pdf_against_cdfA   s   
z)TestStudentizedRange.test_pdf_against_cdfÚr_case_resultc                 C   sV   |\}}}}t jdd�� tj |||¡}W d   ƒ n1 sw   Y  t||ƒ d S )Nr  r  )rc   r  r6   r/  ri   r   )rk   rP  r_  rW   rR  Úr_resr­   r1   r1   r2   Útest_cdf_against_rQ   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w   Y  t|jd	ƒ tjt	d
d�� tj dddgg d¢¡ W d   ƒ d S 1 sIw   Y  d S )Nr  r  r   r`   rÎ   r�   r[   r"  rO  z...could not be broadcast...r÷   )r[   r"  r<  )
rc   r  r6   r/  rï  r   r*  r¹   r   r  ré  r1   r1   r2   Útest_moment_vectorizationY   s   ÿ"ÿz.TestStudentizedRange.test_moment_vectorizationc              	   C   sŠ   t ƒ �/}tjdd�� | t¡ tj g d¢¡\}}}}W d   ƒ n1 s&w   Y  W d   ƒ n1 s5w   Y  ttj 	||¡ƒ d S )Nr  r  rõ   )
r   rc   r  rO   r   r6   r/  rÏ  r   Ú	_argcheck)rk   rË  rW   rª  rÒ   r1   r1   r2   Útest_fitstart_validi   s   
ý€ z(TestStudentizedRange.test_fitstart_validc                 C   sh   t j ddtj¡}t j ddd¡}t||ddd� t j ddtj¡}t j ddd¡}t||ddd� d S )Nr�   r[   éŸ† r·  r/  )r6   r/  rb   rc   r  r   ri   )rk   r­   Ú
res_finiter1   r1   r2   Útest_infinite_dfq   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�   r[   rÍ   rV  iž† r7  r/  )r6   r/  rb   rô  ÚAssertionErrorr   ri   )rk   r­   rW  Ú
res_sanityr1   r1   r2   Útest_df_cutoff|   s   
ÿ
ÿz#TestStudentizedRange.test_df_cutoffc                 C   s8   d\}}}t j |||¡}t|ddd� |dksJ ‚d S )N)g¯ÈúaRA@r�   iS  r   r  r‹   )r6   r/  rÙ   r   )rk   r_  rW   rR  rW  r1   r1   r2   Útest_clipping‘   s   
z"TestStudentizedRange.test_clipping)1rà   rá   râ   Úq05Úq01Úq001rc   r  ÚqsÚpsr  ÚvsÚksÚlistrþ   r'   r½   Úr_datar¹   rã   ræ   r3  rå   r7  ÚosÚpathÚdirnamerg  Úpath_prefixÚrelative_pathÚopenrÁ  ÚfileÚjsonrf  Úpregenerated_datarä   rB  rE  Úxfail_on_32bitrH  rJ  rO  rR  rS  rU  rX  r[  r\  r1   r1   r1   r2   r-  Õ  s\    û

ÿ









r-  c                   @   s\   e Zd Zej dddde dgdgdgg¡g¡dd„ ƒZdd„ Z	d	d
„ Z
dd„ Zdd„ ZdS )ÚTestTukeyLambdarÅ  rw   rœ  r  c                 C   sB   t  ddd¡}tj ||¡}t  |¡ ¡ sJ ‚|dk ¡ sJ ‚d S )NrÂ  r;  rY   rw   )rc   r?  r6   r*   rb   rª  rÜ   )rk   rÅ  rZ   rW  r1   r1   r2   Útest_pdf_nonpositive_lambda�   s   	z+TestTukeyLambda.test_pdf_nonpositive_lambdac                 C   sˆ   t  ddd¡}t  dgdgdgg¡}tj ||¡}t  |¡ ¡ s"J ‚|d d… dk ¡ s.J ‚|d dk ¡ s8J ‚|d dk ¡ sBJ ‚d S )NrÂ  r;  rY   rœ  rw   rv   r`   )	rc   r?  r   r6   r*   rb   rª  rÜ   rê   )rk   rZ   rÅ  rW  r1   r1   r2   Útest_pdf_mixed_lambda«   s   z%TestTukeyLambda.test_pdf_mixed_lambdac                 C   sT   t  g d¢¡}tj |¡\}}t  t jt jt jdddg¡}t||ƒ t|| ƒ d S )N)g      ü¿rÀ   rw   rN  rr   rv   rÎ   r`   rr   )rc   r   r6   r*   Úsupportr  r   )rk   rÅ  r/   r0   Ú
expected_br1   r1   r2   r  º   s
   
zTestTukeyLambda.test_supportc                 C   s$   t j ddgd¡}t|ddgƒ d S )Nr  rv   rr   rw   )r6   r*   rb   r   rn  r1   r1   r2   Útest_pdf_support_boundaryÁ   s   z)TestTukeyLambda.test_pdf_support_boundaryc                 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   ry  rz  r`   r�   rF  r[   r=  g
×£p=
	@)r   gz5¯™v‘›?r   gˆ‰RTí¼ì¿gìQ¸…ëÁ?)r   gNºgãá @r   g´ôJFÙ»›¿)r6   r*   rc   rd   r   )rk   rS  rT   r1   r1   r2   Ú"test_tukeylambda_stats_ticket_1545È   s   z2TestTukeyLambda.test_tukeylambda_stats_ticket_1545N)rà   rá   râ   r¹   rã   rä   rc   r   rq  rr  r  ru  rv  r1   r1   r1   r2   rp  ›   s    þ

rp  c                   @   r¾  )ÚTestLevyc                 C   sT   t  g d¢¡}t  g d¢¡}tj |¡}t||dd� tj |¡}t||dd� d S )N)r‚   r:  rr   rX   rt   rî  )gÖ~½äV1ï?rÓ  gÔÝûba"Ä?gÜ„4àÅ¥Y?rÔ  g$ï%ü+I„r  r{   r†   )rc   r   r6   r  ri   r   rÚ   )rk   rZ   rT   r˜  r}  r1   r1   r2   Útest_levy_cdf_ppfÞ   s   zTestLevy.test_levy_cdf_ppfc                 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É  r{   )rc   r   r6   r  rÙ   r   )rk   rZ   rT   r˜  r1   r1   r2   Útest_levy_sfõ   ó   zTestLevy.test_levy_sfzp, expected_isf))rš  gjÖ1eµ2H)rÍ  g¥¼ãéž6C)r0  g²nE¾@)rŒ  gøÑ!^x1Û?)rh  gÑZø²¤·?)g   þÿÿï?g:}!Nu�?c                 C   r„   )Nr•  r‹   )r6   r  rŸ  r   )rk   rW  Úexpected_isfrZ   r1   r1   r2   Útest_levy_isf!  s   zTestLevy.test_levy_isfc                 C   rð  )Nr,  g?_Ú%~±¸ºr•  r{   )r6   r  r–  r   rñ  r1   r1   r2   Útest_levy_logcdf!  ó   zTestLevy.test_levy_logcdfc                 C   rð  )NrÔ  gÞ¢¨ò§Ø§¶r•  r{   )r6   r  r—  r   ró  r1   r1   r2   Útest_levy_logsf!  r~  zTestLevy.test_levy_logsfN)rà   rá   râ   rx  ry  r¹   rã   rä   r|  r}  r  r1   r1   r1   r2   rw  Ü   s    ÿ
rw  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û‘÷£?r[   Útest_540_567)r>  r»  gèùÿë2ü¿gk‘÷£?gÜ;úþB.ö?gæ†ÏÍ£hî?gH–ÅŽ*Ê?r]   g£û.£yï?)r   r6   rò  ri   r1   r1   r1   r2   r€  #!  s   ÿÿÿ
ýr€  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   r6   rc  rÂ  r1   r1   r1   r2   Útest_regression_ticket_1421/!  s   r�  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   ƒ d S 1 sâw   Y  d S )Nr  r  r   rr   )rc   r  r   rÄ  r6   rV  r–  r  ri   r—  rÙ   rb   r™   rÚ   rŸ  rs  r7  r  r1   r1   r1   r2   Ú test_nan_arguments_gh_issue_13625!  s$   "ïr‚  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 s9w   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.  )rN  rw   rr   r   r   r`   r\   r#  r  )rL  rw   rÁ   r=  rr   )r¶   r^   rN  )r¸   r^   r  rÕ   rv   rÎ   )rc   r�   r‘   r   r6   r  r�   r  rÃ   r   rò  rT  rÛ   )ÚtruerZ   r¦  r^   r·   rT   r1   r1   r2   Útest_frozen_fit_ticket_1536J!  s(    ÿ r„  c                  C   s<   t j d¡ tjjdd�} tj | ¡}d}t||dd� d S )Niñû	 r\   r#  )g
×£p=
§?gƒÀÊ¡Eò?r   r=  )rc   r�   r‘   r6   r�  r�   rÃ   r   )r�   r¦  rT   r1   r1   r2   Útest_regression_ticket_1530f!  s
   r…  c                  C   sV   t j d¡ t j d¡} dD ]}tj | | ¡\}}t||dd� t|ddd� qd S )Nr×   r<  )rv  g   Õ6ÒAr:  r‹   r  )rc   r�   r‘   r   r6   r�  rÃ   r   )rZ   Úoffsetr^   r_   r1   r1   r2   Útest_gh_pr_4806o!  s   ýr‡  c                   C   s   t t tj dd¡¡ƒ d S )Nr  rë  )r   rc   rª  r6   rc  r  r1   r1   r1   r2   Útest_poisson_logpmf_ticket_1436y!  s   rˆ  c                  C   s4   ddg} | D ]\}}t jj |dd�}t||ƒ qdS )aí  Test the powerlaw stats function.

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

    The exact values are:
    mean:
        mu = a / (a + 1)
    variance:
        sigma**2 = a / ((a + 2) * (a + 1) ** 2)
    skewness:
        One formula (see https://en.wikipedia.org/wiki/Skewness) is
            gamma_1 = (E[X**3] - 3*mu*E[X**2] + 2*mu**3) / sigma**3
        A short calculation shows that E[X**k] is a / (a + k), so gamma_1
        can be implemented as
            n = a/(a+3) - 3*(a/(a+1))*a/(a+2) + 2*(a/(a+1))**3
            d = sqrt(a/((a+2)*(a+1)**2)) ** 3
            gamma_1 = n/d
        Either by simplifying, or by a direct calculation of mu_3 / sigma**3,
        one gets the more concise formula:
            gamma_1 = -2.0 * ((a - 1) / (a + 3)) * sqrt((a + 2) / a)
    kurtosis: (See https://en.wikipedia.org/wiki/Kurtosis)
        The excess kurtosis is
            gamma_2 = mu_4 / sigma**4 - 3
        A bit of calculus and algebra (sympy helps) shows that
            mu_4 = 3*a*(3*a**2 - a + 2) / ((a+1)**4 * (a+2) * (a+3) * (a+4))
        so
            gamma_2 = 3*(3*a**2 - a + 2) * (a+2) / (a*(a+3)*(a+4)) - 3
        which can be rearranged to
            gamma_2 = 6 * (a**3 - a**2 - 6*a + 2) / (a*(a+3)*(a+4))
    )r:  )rr   rC  rw   rD  )rv   )gUUUUUUå?r_  g^cÿQâ¿g333333ã¿ry  rz  N)r6   rÖ  r   )r¼  r/   Ú
exact_mvskry  r1   r1   r2   Útest_powerlaw_stats}!  s   ÿþrŠ  c                  C   s   t j dd¡} t| dƒ d S )Nr   r   rw   )r6   rÖ  r™   r   ©rW  r1   r1   r2   Útest_powerlaw_edge£!  rÈ  rŒ  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   rw   )rN  r:  rˆ  r:  )r6   ræ  r™   r   rb   rc   r  r‹  r1   r1   r2   Útest_exponpow_edge©!  s   
r�  c                  C   s   t j ddd¡} t| dƒ d S )Nr   r   r:  )r6   Úgengammarb   r   r‹  r1   r1   r2   Útest_gengamma_edgeµ!  s   r�  za, c, ref, tol))g    `ã6Ar   g2jŒñ!@rz   )r7  r   g¿’g–úA@rz   )rº  r   rH  rz   )r›  r   gÉ ´#°@r†   )g    `ãFAr  g´I¬~‰mÀrz   )gæl$W×Þ}Lr¾  gž·.­Iå#Urz   c                 C   s   t tj | |¡||d� d S rr  )r   r6   rŽ  rD   )r/   r|  rd  r¹  r1   r1   r2   Ú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Ì   rw   )r6   rŽ  rb   r™   rc   r  )rW  r‰  r1   r1   r2   Ú!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—óîŸ¼œú>r[   gÇqÇqŒ?)r6   rŽ  rï  r   r‹  r1   r1   r2   Útest_gengamma_munpÖ!  s   
r’  c               	   C   sš   t  g d¢¡} t jdd��6 tƒ �}| td¡ | td¡ tj 	| ¡ W d   ƒ n1 s.w   Y  W d   ƒ d S W d   ƒ d S 1 sFw   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)
rc   r   r  r   rO   r   r[  r6   rs  rÃ   )r  rË  r1   r1   r2   Ú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        »½×Ùß|Û=r  )rc   rÂ   rd  rM  r   r6   rò  r–  ÚrealÚimagr£   r™   )rZ   rT   ÚderivÚderiv_expectedr1   r1   r2   Útest_norm_logcdf÷!  s   	r˜  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=“ó�!r†   r{   )rc   r   r6   r  rÙ   r   )rZ   rT   r˜  r1   r1   r2   Útest_levy_l_sf"  rz  rš  c                  C   s8   t  g d¢¡} tj | ¡}tj |¡}t|| dd� d S )N)g [n‡ë<rN  rP  rµ  r{   )rc   r   r6   r  rŸ  rÙ   r   )rW  rZ   r_  r1   r1   r2   Útest_levy_l_isf"  s   r›  c                   C   s|   t tj dddd¡dƒ t tj dddd¡dƒ t tj dddd¡dƒ t tj d	d
d
d¡dƒ t tj dd
d
d¡dƒ d S )Nrk  iÑÜ i¸¨  iõ  )g      c@g      h@g=
×£p=î?ç®Gázî?)g      c@g     €h@ri  r\   rh  r   )r   r6   rk  rm  rÚ   r1   r1   r1   r2   Útest_hypergeom_interval_1802$"  s   ÿÿÿr�  c                  C   sr  t j d¡ t jdddd�} tttjj| dddd	� tttjj| ddd
dd	� tttjj| ddd
dƒ tttjj| ddddd� tttjj	ddddd� tttjj
| ddddd� tttjj| ddddd� tttjjddddd� tttjjddddd� tttjj| ddddd� tj | dd¡ tj | ddd
¡ tj dd¡ tj ddd
¡ tj ddd
d¡ tj 	ddd
d¡ tj tjj	ddd�d¡ tjj| ddd	� tttjj| ddd
ƒ tttjj| ddd
d	� tttjj| ddd	� tttjj| dd
ddd	� tttjj| dd
dddƒ tttjj| dd
dddd	� tttjj| dd
ddddd�	 tj | dd
ddd¡ d S )Nr×   rX   r  r�   ©Únumr`   r�   r:  r½  rÎ   rr   r]   rv   rS  r  r#  r™  r¨  )rc   r�   r‘   r?  rô  r  r6   r|  rb   r�   ri   rÚ   rD   rÃ   r‚  r7  rù  r»  r  r¡   r1   r1   r2   Útest_distribution_too_many_args3"  s8   r   c                  C   sH   t j t ddd¡dd¡} t j t ddd¡dd¡}t| |ddd� d S )	Nrë  rF  r  r`   g�ºòYÝZ@rî  r   rI  )r6   Úncx2ri   rc   rÿ   Ú_cdfvecr   ri  r1   r1   r2   Útest_ncx2_tails_ticket_955["  s   r£  c               	   C   sâ   t  ¡ �) t  dt¡ ttj dt 	dd¡d¡dƒ tj 
dt 	dd¡d¡} W d   ƒ n1 s0w   Y  tt | ¡ ¡ ƒ t  ¡ �% t  dt¡ ttj ddd	¡dƒ ttj 
ddd	¡d
ƒ W d   ƒ d S 1 sjw   Y  d S )NrT  r   iT  i^  r`   r   r*  r�   r<  gs¸¹Âq6²À)rX  rY  rZ  r[  r   r6   r¡  rb   rc   rÿ   r™   r   r)  rÜ   r   )Úlogvalr1   r1   r2   Útest_ncx2_tails_pdfc"  s   
ý
"ýr¥  zmethod, expectedri   g´‹—–u%>g	;ÃQñž÷=rb   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 )NrX   r   rÎ   r[   )r“  rª  rz   r‹   )r  r6   r¡  r   )rŽ  rT   r‰  r1   r1   r2   Útest_ncx2_zero_nct"  s   r¦  c                  C   s4   t jjdddd�} t jjddd�}t| |dd� d S )Nr[   r   r   )rª  r“  rŠ   )rª  rŠ   rz   r‹   )r6   r¡  r�   rZ  r   )r‰  rT   r1   r1   r2   Útest_ncx2_zero_nc_rvsˆ"  s   r§  c                  C   s,   dt  dd¡ } ttjjdd| d�dƒ d S )Nr[   r�   rv  r   ©rª  r“  r   )rc   rÿ   r   r6   r¡  ri   )r“  r1   r1   r2   Útest_ncx2_gh12731�"  s   r©  c                  C   sB   t  g d¢¡} d\}}tjj| ||d�}g d¢}t||dd� d S )N)gÑŽ]š	û@gj–Ô†%@gb	ªy/7@g†òô ÌùH@güI‚çZ@g»”Xûl@g'/2?8@gƒÝ°m±Ð�@gU‡Ü¢@gy]¿`'ƒ³@gäÉÝÅ@g*©Ð\¤Ö@g×4ï8ñcè@)rë  g¿hØ ?8@r¨  )r:  r:  r:  r:  r:  g›ÿÿÿÿÿï?gy[qÕDå?rw   rw   rw   rw   rw   rw   r³  r‹   )rc   r   r6   r¡  rÙ   r   )rZ   ÚnurÅ  rÙ   Úsf_expectedr1   r1   r2   Útest_ncx2_gh8665–"  s
   
r¬  c               	   C   sx   d} d}t jtj d| |¡tj d| |¡dd�}tj || |¡}tj || | t  d|  d|  ¡¡}t||d	d
� d S )Ni,  i´  rî  rh  r*  rž  r`   rÎ   r·  r‹   )	rc   r?  r6   r¡  rÚ   rb   rò  rT  r   )rª  r“  rZ   Úncx2_pdfÚgauss_approxr1   r1   r2   Útest_ncx2_gh11777±"  s   ÿ&r¯  zx, c, expected))r`   r   g|1qý�Ö?)r`   r`   gè¸×Î~â?)r  r   çV<‰3Të1=)ç €à7yÃQCr   çu	ÀlY‚<)r  g   èvHGBg^b»!*í1=)r:  rë  gSžôÓûÿï?c                 C   ó   t j | |¡}t||dƒ d S ©NrÛ  )r6   Ú
foldcauchyrÙ   r   ©rZ   r|  rT   rÙ   r1   r1   r2   Útest_foldcauchy_sfÎ"  s   r·  ra  ))r`   gó�äÒ?)r  r°  )r±  r²  )g�6“Þ°Pg«Àã8÷R#/c                 C   s   t j | ¡}t||dƒ d S r´  )r6   rè  rÙ   r   )rZ   rT   rÙ   r1   r1   r2   Útest_halfcauchy_sfÜ"  s   r¸  zp, expected))gõ…�óþÿï?g¯*wÓ„Zª>)ç333333ï?gþN9Õ¤?)rr   r:  )rt   g8<,ÔO@)rÉ  g‹úÄ:óÌB)gl¹ ×¶w/gÁÀMb}[Pc                 C   s   t j | ¡}t||ƒ d S rm   )r6   rè  rŸ  r   )rW  rT   rZ   r1   r1   r2   Útest_halfcauchy_isfè"  s   rº  c                  C   s"   t jddd�} t|  d¡dƒ d S )Nr   r   r¨  )r6   rÏ  r   ri   r?  r1   r1   r2   Útest_foldnorm_zeroô"  s   r»  ))r`   r   gw½o{Ä?)rë  r   góG§d-P/)r[   r'  goèfÿÿï?)rF  r'  g±Oèul";c                 C   r³  )NrÉ  )r6   rÏ  rÙ   r   r¶  r1   r1   r2   Útest_foldnorm_sf#  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)rw   rr   r:  r   rr   r:  c                 s   s    � | ]}t jt j|f V  qd S rm   ©rc   r5  r  r}  r1   r1   r2   rS  #  rW  z-test_stats_shapes_argcheck.<locals>.<genexpr>)r`   r¡  rÌ   r`   r¡  c                 s   s    � | ]}t j|t jf V  qd S rm   r½  r}  r1   r1   r2   rS  #  rW  )r6   r  Útupler   r  )Úmv3Úmv2Úmv2_augmentedr1   r1   r2   Útest_stats_shapes_argcheck#  s   
rÂ  c                   @   rj  )Ú
_distr_genc                 C   rŸ   ©Nr<  r1   ©rk   rZ   r/   r1   r1   r2   Ú_pdf(#  rK  z_distr_gen._pdfN©rà   rá   râ   rÆ  r1   r1   r1   r2   rÃ  '#  rç  rÃ  c                   @   rj  )Ú_distr2_genc                 C   ó   d| | S rÄ  r1   rÅ  r1   r1   r2   Ú_cdf-#  ó   z_distr2_gen._cdfN)rà   rá   râ   rÊ  r1   r1   r1   r2   rÈ  ,#  rç  rÈ  c                   @   rZ  )Ú_distr3_genc                 C   s   || S rm   r1   ©rk   rZ   r/   r0   r1   r1   r2   rÆ  2#  s   z_distr3_gen._pdfc                 C   rÉ  rÄ  r1   rÅ  r1   r1   r2   rÊ  5#  s   z_distr3_gen._cdfN©rà   rá   râ   rÆ  rÊ  r1   r1   r1   r2   rÌ  1#  r  rÌ  c                   @   rZ  )Ú_distr6_genc                 C   s   || | S rm   r1   rÍ  r1   r1   r2   rÆ  =#  rË  z_distr6_gen._pdfc                 C   rÉ  rÄ  r1   rÍ  r1   r1   r2   rÊ  @#  rË  z_distr6_gen._cdfNrÎ  r1   r1   r1   r2   rÏ  ;#  s    rÏ  c                   @   s”   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#S )$ÚTestSubclassingExplicitShapesc                 C   s$   t ddd�}t|jddd�dƒ d S )NÚdummyr/   ©r¶  rú   r   r�  r<  ©rÃ  r   rb   ©rk   Údummy_distrr1   r1   r2   Útest_correct_shapesG#  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  rb   rý   rÔ  r1   r1   r2   Útest_wrong_shapes_1K#  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   r`   r�   r  )rÃ  rý   rô  r  rb   )rk   rÕ  r  r1   r1   r2   Útest_wrong_shapes_2O#  s   z1TestSubclassingExplicitShapes.test_wrong_shapes_2c                 C   ó"   t ddd�}tttfi |¤Ž d S )NrÑ  r<  rÒ  )rý   rô  r  rÃ  ©rk   r  r1   r1   r2   Útest_shapes_stringT#  ó   z0TestSubclassingExplicitShapes.test_shapes_stringc                 C   rÚ  )NrÑ  z(!)rÒ  ©rý   rô  ÚSyntaxErrorrÃ  rÛ  r1   r1   r2   Útest_shapes_identifiers_1Y#  rÝ  z7TestSubclassingExplicitShapes.test_shapes_identifiers_1c                 C   rÚ  )NrÑ  Ú4chanrÒ  rÞ  rÛ  r1   r1   r2   Útest_shapes_identifiers_2^#  ó   z7TestSubclassingExplicitShapes.test_shapes_identifiers_2c                 C   rÚ  )NrÑ  zm(fti)rÒ  rÞ  rÛ  r1   r1   r2   Útest_shapes_identifiers_3b#  rã  z7TestSubclassingExplicitShapes.test_shapes_identifiers_3c                 C   rÚ  )NrÑ  za=2rÒ  rÞ  rÛ  r1   r1   r2   Ú"test_shapes_identifiers_nodefaultsf#  rã  z@TestSubclassingExplicitShapes.test_shapes_identifiers_nodefaultsc                 C   rÚ  )NrÑ  z*argsrÒ  rÞ  rÛ  r1   r1   r2   Útest_shapes_argsj#  rã  z.TestSubclassingExplicitShapes.test_shapes_argsc                 C   rÚ  )NrÑ  z**kwargsrÒ  rÞ  rÛ  r1   r1   r2   Útest_shapes_kwargsn#  rã  z0TestSubclassingExplicitShapes.test_shapes_kwargsc                 C   rÚ  )NrÑ  za, b, c, lambdarÒ  rÞ  rÛ  r1   r1   r2   Útest_shapes_keywordsr#  rÝ  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                   @   rj  )zFTestSubclassingExplicitShapes.test_shapes_signature.<locals>._dist_genc                 S   ó   t j |¡| S rm   ©r6   rò  rÆ  rÅ  r1   r1   r2   rÆ  z#  r!  zKTestSubclassingExplicitShapes.test_shapes_signature.<locals>._dist_gen._pdfNrÇ  r1   r1   r1   r2   Ú	_dist_geny#  rç  rë  r/   ©rú   rr   r`   r�  ©r6   rB   r   rb   rò  ©rk   rë  r>   r1   r1   r2   Útest_shapes_signaturew#  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                   @   rj  )zSTestSubclassingExplicitShapes.test_shapes_signature_inconsistent.<locals>._dist_genc                 S   ré  rm   rê  rÅ  r1   r1   r2   rÆ  ƒ#  r!  zXTestSubclassingExplicitShapes.test_shapes_signature_inconsistent.<locals>._dist_gen._pdfNrÇ  r1   r1   r1   r2   rë  ‚#  rç  rë  r  rì  rr   r   r`   ri  )r6   rB   rô  r  rb   rý   rî  r1   r1   r2   Ú"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                   @   rj  )z?TestSubclassingExplicitShapes.test_star_args.<locals>._dist_genc                 W   s   |d }t j |¡| S ©Nr   rê  )rk   rZ   r  Úextra_kwargr1   r1   r2   rÆ  �#  s   zDTestSubclassingExplicitShapes.test_star_args.<locals>._dist_gen._pdfNrÇ  r1   r1   r1   r2   rë  Œ#  rç  rë  rò  rì  rr   é!   ©rò  )Úxxx)r6   rB   r   rb   rò  rô  r  rý   rî  r1   r1   r2   Ú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                   @   rj  )zATestSubclassingExplicitShapes.test_star_args_2.<locals>._dist_genc                 W   s   |d }t j |¡| | S rñ  rê  )rk   rZ   r†  r  rò  r1   r1   r2   rÆ  š#  s   zFTestSubclassingExplicitShapes.test_star_args_2.<locals>._dist_gen._pdfNrÇ  r1   r1   r1   r2   rë  ™#  rç  rë  zoffset, extra_kwargrì  rr   éo   ró  )r†  rò  rí  rî  r1   r1   r2   Ú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                   @   rj  )zBTestSubclassingExplicitShapes.test_extra_kwarg.<locals>._distr_genc                 _   s   |  dd¡}tj |¡| S )Nrò  r   )Úpopr6   rò  rÆ  )rk   rZ   r  Úkwargsrò  r1   r1   r2   rÆ  ¨#  rƒ  zGTestSubclassingExplicitShapes.test_extra_kwarg.<locals>._distr_gen._pdfNrÇ  r1   r1   r1   r2   rÃ  §#  rç  rÃ  rò  rì  r   r�   rô  rí  )rk   rÃ  r>   r1   r1   r2   Ú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                   @   rj  )zITestSubclassingExplicitShapes.test_shapes_empty_string.<locals>._dist_genc                 S   s   t j |¡S rm   )r6   rò  rb   r¦  r1   r1   r2   rÆ  µ#  rË  zNTestSubclassingExplicitShapes.test_shapes_empty_string.<locals>._dist_gen._pdfNrÇ  r1   r1   r1   r2   rë  ´#  rç  rë  Ú rì  rr   rí  rî  r1   r1   r2   Ú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ý  r1   r1   r1   r2   rÐ  D#  s$    		rÐ  c                   @   sl   e Zd Zdd„ Zdd„ Zejjedd�dd„ ƒZ	ejjedd�d	d
„ ƒZ
dd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTestSubclassingNoShapesc                 C   s"   t dd�}t|jddd�dƒ d S )NrÑ  ©r¶  r   r�  r<  rÓ  rÔ  r1   r1   r2   Ú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   rb   rÔ  r1   r1   r2   Ú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û   ©rk   rÕ  r­   r1   r1   r2   Ú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ÿ  r`   r  z!logpdf\(x, a, b, loc=0, scale=1\)r   )	rÏ  r   r	  rú   r	  r	  rÂ  r   rû   r	  r1   r1   r2   Útest_signature_inspection_2argsÓ#  s   
ÿz7TestSubclassingNoShapes.test_signature_inspection_2argsc                 C   s   t ttdd� d S )NrÑ  rÿ  )rô  r  rÌ  ro   r1   r1   r2   Ú0test_signature_inspection_2args_incorrect_shapesÝ#  r9   zHTestSubclassingNoShapes.test_signature_inspection_2args_incorrect_shapesc                 C   ó.   G dd„ dt jƒ}tt|fi tdd�¤Ž d S )Nc                   @   s   e Zd Zddd„ZdS )z>TestSubclassingNoShapes.test_defaults_raise.<locals>._dist_genr<  c                 S   rŸ   rÄ  r1   rÅ  r1   r1   r2   rÆ  ä#  rK  zCTestSubclassingNoShapes.test_defaults_raise.<locals>._dist_gen._pdfN)r<  rÇ  r1   r1   r1   r2   rë  ã#  s    rë  rÑ  rÿ  ©r6   rB   rô  r  rý   ©rk   rë  r1   r1   r2   Útest_defaults_raiseá#  ó   z+TestSubclassingNoShapes.test_defaults_raisec                 C   r
	  )Nc                   @   rj  )z>TestSubclassingNoShapes.test_starargs_raise.<locals>._dist_genc                 W   rŸ   rÄ  r1   )rk   rZ   r/   r  r1   r1   r2   rÆ  ë#  rK  zCTestSubclassingNoShapes.test_starargs_raise.<locals>._dist_gen._pdfNrÇ  r1   r1   r1   r2   rë  ê#  rç  rë  rÑ  rÿ  r	  r	  r1   r1   r2   Útest_starargs_raiseè#  r	  z+TestSubclassingNoShapes.test_starargs_raisec                 C   r
	  )Nc                   @   rj  )z<TestSubclassingNoShapes.test_kwargs_raise.<locals>._dist_genc                 [   rŸ   rÄ  r1   )rk   rZ   r/   rú  r1   r1   r2   rÆ  ò#  rK  zATestSubclassingNoShapes.test_kwargs_raise.<locals>._dist_gen._pdfNrÇ  r1   r1   r1   r2   rë  ñ#  rç  rë  rÑ  rÿ  r	  r	  r1   r1   r2   Útest_kwargs_raiseï#  r	  z)TestSubclassingNoShapes.test_kwargs_raiseN)rà   rá   râ   r 	  r	  r¹   rã   r  ÚDOCSTRINGS_STRIPPEDr	  r	  r		  r	  r	  r	  r1   r1   r1   r2   rþ  ¼#  s    


	rþ  r	  c                  C   sT   g d¢} t jD ] }tt |ƒ}t|t jt jB ƒr'| D ]}tt ||j	¡d u ƒ qqd S )N)z,\s*,z\(\s*,z^\s*:)
r6   rN   r  r,  rA   rB   r   r	  ÚsearchrÂ  )ÚbadonesÚdistnamer>   Úregexr1   r1   r2   r  ÷#  s   

€ür  c                   C   s4   t tj tjdd¡dƒ t tj tjdd¡dƒ d S )Nr[   r"  r   rh  rX   r   )r   r6   ré  rÙ   rc   r  r¡  rÊ  r1   r1   r1   r2   Útest_infinite_input$  s   r	  c                  C   ó&   t j t j dd¡d¡} t| dƒ d S r½  )r6   ÚlomaxrÚ   ri   r   r‹  r1   r1   r2   Útest_lomax_accuracy$  rÁ  r	  c                  C   r	  r½  )r6   rä  rÚ   ri   r   r‹  r1   r1   r2   Útest_truncexpon_accuracy$  rÁ  r	  c                  C   s*   t j t j dd¡d¡} t| ddd� d S )Nr\  r   rè  r'  r=  )r6   r  rŸ  rÙ   r   r‹  r1   r1   r2   Útest_rayleigh_accuracy$  s   r	  c                  C   sŠ   t jdd��5} t  d¡ tj dd¡ tj dd¡ tj dd¡ tj t	j
 d¡ t| ƒ}t|dƒ W d  ƒ dS 1 s>w   Y  dS )zregression test for gh-6219T)rÃ  Úalwaysrr   r   rw   N)rX  rY  rZ  r6   r^  ri   rb   rÚ   r™   rc   r  rû   r   )rR  Únumber_of_warnings_thrownr1   r1   r2   Ú test_genextreme_give_no_warnings$  s   
"ør	  c            	      C   sâ   t  tjjdt jddgdd�¡} t j}t jd d }dt  d¡ t 	d	¡ t jd	  }d
}||||g}t jgd  }}g d¢}t
| d d …df |dd� t| d d …df |ƒ t
| d d …df |dd� t| d d …d	f |ƒ d S )Nrw   r   r  ry  rz  r`   r™  r<  r�   r¡  rÎ   )r   r   rç   r™  r   rÉ  r{   )rc   rÂ   r6   r^  r  Úeuler_gammard   rT  r   Úzetar   r   )	r­   rÛ   r¥  r¦  r§  Úref_0Úref_1Úref_3Úref_2r1   r1   r2   Útest_moments_gh22400&$  s    "r%	  c                  C   sÒ   d} t j d¡}t|d|  d dd� t j d¡}t|| d dd� t j d¡}t|dƒ t jjd	d
d�}t|| d t d
¡ d dd� t j d
¡}t|d|  d dd� t j d¡}t|d|  d dd� d S )Ng¶oüŒxâ?rœ  r`   r   rÉ  r{   r   r:  r  r[   r¨  r�   rK  r.  r"  )r6   r^  rD   r   r   rc   ru  )r	  rR  r1   r1   r2   Ú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?)r6   r^  rÙ   r   rŸ  )rZ   rJ   rÎ  r1   r1   r2   Útest_genextreme_sf_isfS$  s   




r'	  c                  C   s"   d} t j | dd¡}t|dƒ d S )Nrb  r`   r�   g�H&‰Ì8>)r6   r  rÚ   r   )Úprobr|  r1   r1   r2   Útest_burr12_ppf_small_arg$  s   	r)	  c                  C   s\   ddd„} t  g d¢¡}tjj|d| d�\}}}t|ddd	� |dks%J ‚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

    r1   r   c                 S   s   t | |||ddd�S )Nr³  )r  ÚdispÚxtolÚftol)r%   )rì   Úx0r  r*	  r1   r1   r2   r¤  ¤$  s   z&test_invweibull_fit.<locals>.optimizer)r   rê  r`   rD  r�  r�   rs  rÎ   r�   rh  r[   r<  é@   éc   )r·   r¤  g`Ç•Æð?r	  r{   g¸ [–¯Ë@N)r1   r   )rc   r   r6   r  rÃ   r   )r¤  rZ   r|  r^   r_   r1   r1   r2   Útest_invweibull_fit�$  s   
r0	  ))r�   rˆ  g7Ô¸ŒƒhÆ?)rƒ   rˆ  gz“ªŸ]rç>)rƒ   g     €"@goB±ôÚ±—9)rË  rˆ  g$‰ë=cC;c                 C   ó    t j | |¡}t||dd� d S ry   )r6   r  rÙ   r   )rZ   r|  rT   r¨  r1   r1   r2   Útest_invweibull_sf¯$  s   r2	  zp, c, expected)rr   rD  g…ö9°¾†ò?)g�e»ºŒ«K<r�   gàì«‹÷¨@c                 C   r1	  ry   )r6   r  rŸ  r   )rW  r|  rT   r¨  r1   r1   r2   Útest_invweibull_isfº$  s   r3	  z	df1,df2,x)rÀ   r  r:  r  rÎ   r"  r  rÙ  rG  c                 C   sh   d}t j || |¡}t j || ||¡}t||dd� t j || |¡}t j || ||¡}t||dd� d S )Nr   rÉ  r{   r7  )r6   r  ri   r  r   rb   )Údf1Údf2rZ   r“  Úexpected_cdfÚcalculated_cdfr~   Úcalculated_pdfr1   r1   r2   Útest_ncf_edge_caseÂ$  s   
r9	  c                  C   s"   t j ddd¡} t| ddd� d S )Nr`   r™  rÎ   g     `E@rÉ  r{   )r6   r  r¥  r   )rR  r1   r1   r2   Útest_ncf_varianceØ$  ó   r:	  c                  C   s.   t j dddd¡} d}t|tj| dd�ƒ d S )Nrë  r™  ró  gffffff>@g&4I,)÷ï?)Údecimals)r6   r  ri   r   rc   Úround)Ú	scipy_valÚ	check_valr1   r1   r2   Útest_ncf_cdf_spotcheckã$  s   r@	  c                     sN   t  ddd¡} d| d< d‰ tjj| gˆ ¢R Ž }‡ fdd„| D ƒ}t||ƒ d S )Nr   r   r‡  rb  )rX   r`   r�   r   r   c                    s    g | ]}t jj|gˆ ¢R Ž ‘qS r1   )r6   r  rÚ   )r=   Úxi©Úparr1   r2   r?   ó$  s     z,test_ncf_ppf_issue_17026.<locals>.<listcomp>)rc   r?  r6   r  rÚ   r   )rZ   r_  Úq0r1   rB	  r2   Útest_ncf_ppf_issue_17026í$  s   rE	  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   r`   r`   r�   r�   r�   rÎ   rÎ   rÎ   rÎ   r�   r�   r�   r�   r�   r™  r™  r™  r™  r  r  r  rh  rh  r\  rh  ©Úbinsr:  rD  r*  é{   rÞ  r%  )
rc   r�   r‘   Ú	histogramr6   rC   Útemplaterò  r�   Únorm_template)rk   rJ	  r½   Únorm_histogramr1   r1   r2   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©rw   rr   r:  rˆ  rv   rD  rÊ  r   ré  rž  r;  ç      @rÄ  r  r/  r[  rÆ  ç      !@rè  rá  )rw   rw   r4  r4  ç{®Gáz´?rQ	  ç¸…ëQ¸¾?rR	  ç{®GázÄ?rS	  r  r  rS	  rS	  rR	  rR	  rR	  rR	  rw   rw   rÆ  rR	  rP	  rè  rw   r’  rç   r`   r[   r:  rD  r]   rX   r{   )rc   r   rÂ   r   rK	  rb   r   r?  rL	  r6   rò  )rk   r4  Ú
pdf_valuesrZ   r1   r1   r2   r9  %  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 )NrN	  )rw   rw   rw   ri  r4  rQ	  rR	  ç
×£p=
Ç?ç¸…ëQ¸Î?ç{®GázÔ?r­  rr   r  çÃõ(\�Âå?çR¸…ëQè?ç=
×£p=ê?ç)\�Âõ(ì?rœ  r:  r:  r`   rÌ   r:  rè  r\   rw   rç   r[   rD  r]   rX   r{   )rc   r   rÂ   r   rK	  ri   rÚ   r?  rL	  r6   rò  )rk   r4  Ú
cdf_valuesrZ   r1   r1   r2   r~  "%  s   "
ÿzTestHistogram.test_cdf_ppfc                 C   s   d}| j j|dd�}tt |dk ¡dƒ tt |dk¡d| dd	� tt |d
k¡d| dd	� tt |dk¡d| dd	� tt |dk¡d| dd	� tt |dk¡d| dd	� tt |dk¡d| dd	� tt |dk¡d| dd	� tt |dk¡d| dd	� tt |dk¡d| dd	� tt |dk¡d| dd	� tt |dk¡d| dd	� tt |d k¡d!| dd	� tt |d"k¡d#| dd	� tt |d$k¡d%| dd	� tt |d&k¡d| dd	� tt |d&k¡d| dd	� tt |d&k¡dƒ d S )'Nr*  rI	  rØ   r:  rw   rv   r4  r  r{   rD  rQ	  rÊ  rR	  rX   r   rU	  ré  rV	  rž  rW	  r;  r­  r  rO	  rr   rÄ  r  r  rX	  r/  rY	  r[  rZ	  rÆ  r[	  rP	  rœ  rè  )rK	  r�   r   rc   rO  r   )rk   r  r3  r1   r1   r2   r2  8%  s(   zTestHistogram.test_rvsc                 C   s6   t dƒD ]}t| j |¡t dd¡ |¡dd� qd S )NrÎ   r:  rD  r  r{   )rM  r   rL	  rï  r6   rò  rJ  r`  r1   r1   r2   rè  N%  s
   ÿÿzTestHistogram.test_munpc                 C   s$   t | j ¡ tjjddd�dd� d S )Nr:  rD  r]   r  r{   )r   rL	  rD   r6   rò  ro   r1   r1   r2   rS  S%  s   

ÿzTestHistogram.test_entropyN)	rà   rá   râ   r   r9  r~  r2  rè  rS  r1   r1   r1   r2   rF	  ÷$  s    rF	  c                  C   s   ddgg d¢} }t j| |fdd�}tj | ddg¡ddg¡ | ¡ dks(J ‚t j| |fdd�}tj | ddg¡d	¡ | ¡ d
ksEJ ‚d}tjt	|d�� t  | |f¡}| ¡ d
ks^J ‚W d   ƒ n1 shw   Y  t  | g d¢f¡}| ¡ dks~J ‚d S )Nr   )r   r   r)  F)rÝ  rr   rë  r‡  Tgœî£'^P?g     H@z(Bin widths are not constant. Assuming...r÷   rh  )
r6   rC   rc   r¥  r   rb   r«  r¹   r  r[  )ÚcountsrH	  r>   rÎ  r1   r1   r2   Útest_histogram_non_uniformX%  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rK| ¡   krKd	ksNJ ‚ J ‚t  t  |¡d
 ¡dks\J ‚d S )Nì   0o[ rî  r   r*  rØ   r[   rG	  rÑ  iL  r‚   )rc   r�   rŽ   r6   Ú
loguniformr�   Ú
reciprocalr   rJ	  Úlog10r$  r‡  r�   r«  )rk   r«   r%  r�   Úrv2r–   r0  rÒ   r1   r1   r2   Ú
test_aliasp%  s   
. zTestLogUniform.test_aliasrŽ  r…  r�  c                 C   sn   t j d¡}tjjddd|d�}tjj||d�\}}}}|dks"J ‚tjj|d|d�\}}}}|dks5J ‚d S )	Nr`	  rX   r   r‚   rØ   r„  r`   r‚  )rc   r�   rŽ   r6   ra	  r�   rÃ   )rk   rŽ  r«   r�   r/   r0   r^   r_   r1   r1   r2   Útest_fit_override�%  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r€  r   r   r‚   r#  r’  i8ÿÿÿrë  rÌ   r[   )rc   r�   rŽ   r6   ra	  r'  r   ri   rÚ   r�   rÿ   rb   ru  rÛ   )
rk   r«   r/   r0   r>   ri   r�   rZ   rb   rÛ   r1   r1   r2   Útest_overflowŽ%  s   
zTestLogUniform.test_overflowN)	rà   rá   râ   re	  r¹   rã   rä   rf	  rg	  r1   r1   r1   r2   r_	  o%  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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%  rd  éE  rØ   rÎ   r=  )r6   Úargusr�   r   rÛ   r¦  r1   r1   r2   Útest_argus_rvs_large_chi¦%  s    z"TestArgus.test_argus_rvs_large_chizchi, random_staterX   ri	  rS  é›   r   é‡   c                 C   s6   t jj|d|d�}t  |d|f¡\}}t|dkƒ d S )Nrd  rØ   rj	  r  ©r6   rj	  r�   r  r   )rk   r¡  rŠ   rZ   rÒ   rW  r1   r1   r2   r2  «%  s   zTestArgus.test_rvsr¡  r›  r7  c                 C   s6   t jj|ddd�}t  |dd„ ¡\}}t|dkƒ d S )Nrd  ie˜ rØ   c                 S   s   dd| d  d  S )Nr   r`   rˆ  r1   r¡   r1   r1   r2   rK   »%  r@   z.TestArgus.test_rvs_small_chi.<locals>.<lambda>r  rn	  )rk   r¡  rf  rÒ   rW  r1   r1   r2   Útest_rvs_small_chiµ%  s   zTestArgus.test_rvs_small_chizchi, expected_mean))r   g Ñ‰iÌã?)r[   g.ý¬æ†ƒï?)r>  g\ØpaPøï?)r?  g²ê	â•üï?)r/	  g,6Èÿ¾þï?c                 C   s"   t jj|dd�}t||dd� d S )Nr   r¨  r†   r{   )r6   rj	  rÛ   r   )rk   r¡  Úexpected_meanrÆ  r1   r1   r2   rµ  ¿%  r;	  zTestArgus.test_meanzchi, expected_var, rtol))r   g¡LH'B´ª?r†   )r[   gšüµo·$?rY  )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¨  r{   )r6   rj	  r¥  r   )rk   r¡  Úexpected_varr|   rR  r1   r1   r2   rF  Ê%  r;	  zTestArgus.test_varzchi, expected, rtol))rÕ   gwM€Ç“³?rÉ  )rr   gõ²¢j¨™�?rÉ  )rX   gH‘EA»`!?rÉ  )rt   gc¬Ù�>rz   )rî  gÁéØ×Fâ=rÉ  )r·  gß¹Q#·B=rÉ  )r7  gÅ0ÙþÞŸ<rÉ  )r›  g¸ŽŠ*W%:rz   c                 C   s   t t|ƒ||d� d S rr  )r   r#   )rk   r¡  rT   r|   r1   r1   r2   Útest_argus_phi_small_chiÕ%  s   
z"TestArgus.test_argus_phi_small_chizchi, expected))rr   )g-¨ôœ\/Ò?g+·Àp7cô?gŽ5Ï¦\Ïó?)r  )g
ÃÄfôÒ?gi{?Ù¸ô?gæZ@Ü7üò?)rX   )gB	àÓ?g]®ÊÝÄô?gãÛÁR{Þò?)rt   )g§lÍ…wÓ?g,ñíöÑÈô?g[Z=±Ôò?)rî  )gØz,±�Ó?g]ÜÈô?g‚Ñª1˜Ôò?)r·  )g8<ï�Ó?gÏEÿ-ÜÈô?gI�ñ—Ôò?)r7  )g~7¬ï�Ó?gÉ7B.ÜÈô?g¼9çð—Ôò?)r›  )g–;¬ï�Ó?g€9B.ÜÈô?g}5çð—Ôò?c                 C   ó*   t  g d¢¡}ttj ||¡|dd� d S )N©rX   rr   rÕ   r†   r{   )rc   r   r   r6   rj	  rb   ©rk   r¡  rT   rZ   r1   r1   r2   Útest_pdf_small_chiâ%  ó   zTestArgus.test_pdf_small_chi))rr   )gQß¹?e‹ï?g¥†rJ,å?g’òº—„¶?)r  )góÎŽÖd†ï?g¡�‚ˆÐØä?gõ•‘’hµ?)rX   )g|
o«…ï?gvb¨ÙÌä?g¹+ê÷Ô@µ?)rt   )gÍ„On…ï?g€‡�eæÈä?g‚C|[Ã3µ?)rî  )g²!?€m…ï?g{jiHÜÈä?g¹u5î¡3µ?)r·  )g¨­~m…ï?g0-….ÜÈä?g£˜¡3µ?)r7  )gü¨~m…ï?g7;B.ÜÈä?g¼ÄÅ—¡3µ?)r›  )gëû¨~m…ï?g€9B.ÜÈä?g¿Å—¡3µ?c                 C   rs	  )Nrt	  rÉ  r{   )rc   r   r   r6   rj	  rÙ   ru	  r1   r1   r2   Útest_sf_small_chiñ%  rw	  zTestArgus.test_sf_small_chizx, chi, expected))çËPÊÿÿï?rN  gí½;µáÙ=)ry	  rÊ  g[$Þ7¼>)rî  rD  g=‡~¬L]=)rî  r’  gD,G
Ñ'º=c                 C   rx   r”  )r6   rj	  rÙ   r   )rk   rZ   r¡  rT   rÙ   r1   r1   r2   Útest_sf_near_1 &  r[  zTestArgus.test_sf_near_1))rr   )gÆ+ˆ°&�?gµÔók§Õ?gÎ¼¡m/í?)r  )g?CL\ÊfŽ?g¾äúî^NÖ?g]AÍ­íRí?)rX   )gaý>$•Ž?gù;¯LfÖ?g‰ºaåWí?)rt   )gØÌ¬x¤Ž?g ñÞ43nÖ?g�w�”‡Yí?)rî  )go“7ðŸ¤Ž?g
+-oGnÖ?gIQ9Â‹Yí?)r·  )g½T ¤Ž?gŸ¥õ¢GnÖ?g@ŸëÌ‹Yí?)r7  )g�þÀU ¤Ž?g“‰{£GnÖ?giGÍ‹Yí?)r›  )gDÁU ¤Ž?g �{£GnÖ?gHÍ‹Yí?c                 C   rs	  )Nrt	  r³  r{   )rc   r   r   r6   rj	  ri   ru	  r1   r1   r2   Útest_cdf_small_chi&  rw	  zTestArgus.test_cdf_small_chi))rr   )gQ)ñã?gÇ6É{«?r³  )gB`åÐ"Û¹?)g­£òÛâ?g©¯8%«?rY  )rX   )gæ388æÛâ?g–üVí%«?r†   )rt   )g*©j¬‚Ùâ?gRÅS¨%«?r†   )rî  )g!�|Ùâ?gZ’±©%«?r†   )r·  )gyœ[|Ùâ?gýGµ©%«?r†   )r7  )gÛ"3|Ùâ?gÀWµ©%«?r†   )r›  )gÒ!3|Ùâ?güWµ©%«?r†   c                 C   s"   t jj |dd�}t|||d� d S )NrS  rz  r{   )r6   rj	  r   )rk   r¡  rT   r|   r1  r1   r1   r2   Útest_stats_small_chi&  rÂ  zTestArgus.test_stats_small_chiN)rà   rá   râ   rk	  r¹   rã   rä   r2  ro	  rµ  rF  rr	  rv	  rx	  rz	  r{	  r|	  r1   r1   r1   r2   rh	  ¥%  s^    ý

	ÿ
ÿ
ÿ
	þ

þ

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

þ
rh	  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¢¡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 )NrD  rF  gÿMƒ³+˜À)r6   Únakagamir™   r   )rk   rª  rZ   r‰  r1   r1   r2   rŠ  +&  s   zTestNakagami.test_logpdfc                 C   sD   d}d}t j ||¡}t|ddd� t j ||¡}t||dd� d S )NrD  r;  gŠÂ"S¿+Õ:r†   r{   )r6   r~	  rÙ   r   rŸ  )rk   rª  r-	  rÙ   rÍ  r1   r1   r2   rº  <&  s   zTestNakagami.test_sf_isfc                 C   rÅ  )Nrh  rr   gÒUÉÒiÖ¼r•  r{   )r6   r~	  r–  r   )rk   rZ   rª  rd  r–  r1   r1   r2   r«  O&  rÇ  zTestNakagami.test_logcdfc                 C   rÅ  )Nr  r<  g³DÒ&`Uºr•  r{   )r6   r~	  r—  r   )rk   rZ   rª  rd  r—  r1   r1   r2   r®  W&  rÇ  zTestNakagami.test_logsfzm, ref))r�   g|þB¥dë¸¿)rr   r¸  )r[   g¥Šƒ/òÊÛ¿c                 C   r±  )Ng^~zÅ=r{   ©r   r6   r~	  rD   ©rk   rÆ  rd  r1   r1   r2   rS  _&  rU  zTestNakagami.test_entropy))r¾  g}Ã”%­I¢Ô)r  gq×_ òÁ)g    ScAgóÈB4UÀ)g    ²cAgu†‰1ÄUÀ)r¹  gb>“%À)rº  gè¸WÒ™\Àc                 C   s   t tj |¡|ƒ d S rm   r	  r€	  r1   r1   r2   Útest_extreme_nuq&  s   zTestNakagami.test_extreme_nuc                 C   s0   t  tj d¡¡sJ ‚t  tj d¡¡sJ ‚d S )Nrº  r¾  )rc   rª  r6   r~	  Ú_entropyro   r1   r1   r2   Útest_entropy_overflowx&  s   z"TestNakagami.test_entropy_overflowznu, ref))r¹  g2Hþÿÿÿï?)r°  g”:Ußùþï?)r  gü õå•ò>c                 C   r±  r²  )r   r6   r~	  rÛ   )rk   rª  rd  r1   r1   r2   rµ  |&  s   
zTestNakagami.test_meanz+Fit of nakagami not reliable, see gh-10908.r  rª  )r;  rD  rt  r^   )ru   r[   r+  r_   )rl  r�   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 )Nr\   é9  ©rµ   rª  r^   r_   rŠ   r  r{   c                    s<   d|  d t  dˆ |  ¡ d|  |d  t  ˆ | ¡  S )Nrç   r   r`   ©rc   rO  ©rª  r^   r_   )r8  r1   r2   Ú	dlogl_dnu—&  s   ÿz(TestNakagami.test_fit.<locals>.dlogl_dnuc                    sN   ˆ dt  | ¡ td| ƒ  dt  t  ˆ| | ¡¡  t  ˆ| | d ¡ S )Nr   r   r`   )rc   ru  r   rO  r‡	  ©r  r8  r1   r2   Ú
dlogl_dloc›&  s
   ÿþz)TestNakagami.test_fit.<locals>.dlogl_dlocc                    s2   dˆ  |  | d|  |d  t  ˆ| d ¡  S )Nrç   r`   r�   r†	  r‡	  r‰	  r1   r2   Údlogl_dscale &  s    ÿz+TestNakagami.test_fit.<locals>.dlogl_dscaler   rî  r‹   )r6   r~	  r�   rÃ   r   )
rk   rª  r^   r_   Únu_estÚloc_estÚ	scale_estrˆ	  rŠ	  r‹	  r1   r‰	  r2   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 )	Nrr   r\   r„	  r…	  rž  r`   rÿ  r{   )	r6   r~	  r�   rÃ   rc   r$  rT  rÛ   r   )rk   r^   r_   rª  rV  r8  rŒ	  r�	  rŽ	  Úloc_theoÚ
scale_theor1   r1   r2   Útest_fit_nu¨&  s   ÿ
zTestNakagami.test_fit_nuN)rà   rá   râ   rŠ  rº  r«  r®  r¹   rã   rä   rS  r�	  rƒ	  rµ  r!  rÔ  r‘	  r1   r1   r1   r2   r}	  )&  s4    ÿ
ÿ
ÿ
r}	  c                   @   rq  )ÚTestWrapCauchyc                 C   sr   t  ddgddgg¡}t  dgdgg¡}tj ||¡}|jdks"J ‚dd	„ t  ||f¡D ƒ}t| ¡ |d
d� d S )Nç¸…ëQ¸ž?rN  rr   rÔ   r:  ré  rJ  c                 S   s   g | ]\}}t j ||¡‘qS r1   )r6   Ú
wrapcauchyri   )r=   rÍ  r	  r1   r1   r2   r?   Æ&  s    ÿz>TestWrapCauchy.test_cdf_shape_broadcasting.<locals>.<listcomp>r†   r{   )	rc   r   r6   r”	  ri   r*  Únditerr   r  )rk   r|  rZ   rW  Úscalar_valuesr1   r1   r2   Útest_cdf_shape_broadcasting¾&  s   ÿz*TestWrapCauchy.test_cdf_shape_broadcastingc                 C   s"   t j tjd¡}t|ddd� d S )Nr“	  rr   rÉ  r{   )r6   r”	  ri   rc   rd   r   rn  r1   r1   r2   Útest_cdf_centerÊ&  r¨  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   r`   )r6   r”	  ri   r   rc   ÚarctanÚtanrd   )rk   rÍ  rÎ  r|  rW  Úcrr1   r1   r2   rB  Î&  s   (6zTestWrapCauchy.test_cdfN)rà   rá   râ   r—	  r˜	  rB  r1   r1   r1   r2   r’	  ¼&  s    r’	  c                  C   sV   G dd„ dt jƒ} | dd�}ttdd�� | ¡  W d   ƒ d S 1 s$w   Y  d S )Nc                   @   rj  )z/test_rvs_no_size_error.<locals>.rvs_no_size_genc                 S   rŸ   r    r1   ro   r1   r1   r2   Ú_rvsÛ&  rK  z4test_rvs_no_size_error.<locals>.rvs_no_size_gen._rvsN)rà   rá   râ   rœ	  r1   r1   r1   r2   Úrvs_no_size_genÚ&  rç  r�	  Úrvs_no_sizerÿ  z_rvs\(\) got (an|\d) unexpectedr÷   )r6   rB   rô  r  r�   )r�	  rž	  r1   r1   r2   Útest_rvs_no_size_errorØ&  s
   

"ÿrŸ	  zdistname, argsc                 C   sÌ   | t v rt d| › d�¡ tt| ƒ}t|tjƒrQt|ƒdkr1|j|Ž \}}t	|t
jƒ t	|t
jƒ d\}}|jg |¢|‘|‘R Ž \}}t	|t
jƒ t	|t
jƒ d S |j|Ž \}	}
t	|	t
jƒ t	|
t
jƒ d S )Nz6skipping test for the support method for distribution Ú.r   r,  )Ú$skip_test_support_gh13294_regressionr¹   rº   r  r6   r,  rB   rû   rs  r   rc   r  )r	  r  r>   Úa0Úb0r�  rŽ  Úa1Úb1r/   r0   r1   r1   r2   Útest_support_gh13294_regressionä&  s"   
ÿ
r¦	  c                  C   sX  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s<J ‚|j|jksDJ ‚t j g g ¡\}}t g ¡t g ¡}}t||ƒ t||ƒ |j|jksjJ ‚|j|jksrJ ‚t j g d¢dg¡\}}	t dtjg ¡}
t dtjg ¡}t||
ƒ t|	|ƒ |j|
jks¢J ‚|	j|jksªJ ‚d S )N)r   r   r   r   )r   r   r   rÌ   rÌ   rÎ   )	r6   rò  rs  rc   r   r  r  r   r*  )r¢	  r£	  Úex_a0Úex_b0r¤	  r¥	  Úex_a1Úex_b1r‡  r  Úex_a2Úex_b2r1   r1   r2   Ú,test_support_broadcasting_gh13294_regressionÿ&  s(    





r­	  c                  C   sn   ddg} dgdgdgg}t tj | |¡ddgddgddggƒ t d¡} t d¡}tj | |¡jdks5J ‚d S )	Nrw   r:  rv   rÊ  ré  rè  r;   r~  )r   r6   rò  r¥  rc   r  r*  r]   r1   r1   r2   Ú*test_stats_broadcasting_gh14953_regression'  s   &

r®	  )gn†ðù!	ÀgŸ½:I"<)g…ëQ¸	@g¤Eñÿÿÿï?c                 C   s*   t tj | ¡|ƒ t tj |  ¡|ƒ d S rm   )r   r6   Úcosineri   rÙ   )rZ   rT   r1   r1   r2   Útest_cosine_cdf_sf&'  s   r°	  ))r7  gÃkM6OÝÀ)rM  g0Ó­Š÷!	À)r¹  gÁ’;'u(@c                 C   s*   t tj | ¡|ƒ t tj | ¡| ƒ d S rm   )r   r6   r¯	  rÚ   rŸ  )rW  rT   r1   r1   r2   Útest_cosine_ppf_isf.'  s   r±	  c                  C   s$   t j tj tjg¡} t| dƒ d S )NgŒrñ˜BÀ)r6   r¯	  r™   rc   rd   r
   )r‰  r1   r1   r2   Útest_cosine_logpdf_endpoints7'  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s(J ‚d S )Nc                 S   s   h | ]\}}t |tƒr|’qS r1   )r,  rG   ©r=   r¶  rÒ   r1   r1   r2   Ú	<setcomp>B'  s    
ÿz*test_distr_params_lists.<locals>.<setcomp>c                 S   ó   h | ]\}}|’qS r1   r1   r³	  r1   r1   r2   r´	  D'  r@   c                 S   rµ	  r1   r1   r³	  r1   r1   r2   r´	  G'  r@   c                 S   rµ	  r1   r1   r³	  r1   r1   r2   r´	  H'  r@   )r    r!   r   r   )Údiscrete_distnamesÚinvdiscrete_distnamesÚcont_distnamesÚinvcont_distnamesr1   r1   r2   Útest_distr_params_lists>'  s   rº	  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   rW   r’  rÎ   )r  r/   rÊ  )r6   rq  Ú_statsrJ  rï  r1   r1   r1   r2   Útest_moment_order_4L'  s   r¼	  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j
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   rs  )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,gammard  ru  rÖ  r1   r1   r2   ÚROOT_pdf_sample_dataa'  s   ÿÿz'TestRelativisticBW.ROOT_pdf_sample_datazrho,gamma,rtol))ç­qVÉEB@çgÕçj+ö@rµ  )çÌÚÂ‰FC@ç®Gáz® @rÉ  )çíÄNìD‚÷@ç”ö_˜LU?rØ  c                 C   sN   ||d |k|d |k@  }|d |d }}t |tjj|||d�|d� d S )NÚrhor|  rZ   rb   r¨  r{   )r   r6   Úrel_breitwignerrb   )rk   r¾	  rÅ	  r|  r|   r½   rZ   rb   r1   r1   r2   Útest_pdf_against_ROOTt'  s   

ÿÿ
ÿz(TestRelativisticBW.test_pdf_against_ROOTzrho, Gamma, rtol))r¿	  rÀ	  rØ  )rÁ	  rÂ	  rØ  )rÃ	  rÄ	  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 rU  )rc   rT  rd   )ÚErl  ÚGammar|  rW   r1   r1   r2   rb   �'  s
   ÿ(zFTestRelativisticBW.test_pdf_against_simple_implementation.<locals>.pdfr  rk  r[   r¨  r{   )rc   r?  r6   rÆ	  rÚ   rb   r   )	rk   rÅ	  rÉ	  r|   rb   rW  rZ   r­   rd  r1   r1   r2   Ú&test_pdf_against_simple_implementation…'  s   z9TestRelativisticBW.test_pdf_against_simple_implementationz	rho,gammar¿	  rÀ	  r{  rÁ	  rÂ	  rÃ	  rÄ	  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s1J ‚tjj|d|d
�}t|d |dd� |d	 |d fd|fksQJ ‚dS )zpTests fit for cases where floc is set.

        `rel_breitwigner` has special handling for these cases.
        l   s;
rl# r‚   )r_   rµ   rŠ   r   rÁ   r`   r  r{   r   rß  rt   N)rc   r�   rŽ   r6   rÆ	  r�   rÃ   r   )rk   rÅ	  r|  r‘   r«   r½   rÃ   r1   r1   r2   Útest_fit_floc™'  s   ÿ z TestRelativisticBW.test_fit_flocN)rà   rá   râ   r¹   rø  r¾	  rã   rä   rÇ	  rÊ	  rå   r  ræ   rË	  r1   r1   r1   r2   r½	  `'  s0    
ÿ



ÿ
ÿ
ÿùÿr½	  c                   @   r±  )ÚTestJohnsonSUrL  )r™  rì  ri  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{  ry  rÉ  r{   )r6   r·  r   )rk   rL  r­   r1   r1   r2   Útest_moment_gh18071»'  s   z!TestJohnsonSU.test_moment_gh18071N)rà   rá   râ   r¹   rã   rä   rÍ	  r1   r1   r1   r2   rÌ	  º'  s    ýrÌ	  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@rÏ	  rÐ	  )rc   r?  r6   Útruncparetorb   rý  ri   r   )rk   r0   r|  rZ   r­   rd  r1   r1   r2   r9  Ë'  s
    zTestTruncPareto.test_pdfr³   TFrÜ  r  rÑ  c                 C   sà   t j d¡}d\}}}}	tj||||	d�}
|
jd|d�}i }|r$||d< |r*|	|d< |r0||d< |r6||d	< |rd|rd|rd|rdd
}tjt|d�� tjj	|fi |¤Ž W d   ƒ d S 1 s]w   Y  d S t
tj|fi |¤Ž d S )Nl   óZü#Lm )rÏ	  rÐ	  r   rD  r]   rd  rØ   r·   r¶   r¸   ró   rö   r÷   )rc   r�   rŽ   r6   rÑ	  r�   r¹   r   r   rÃ   r»   )rk   r³   rÜ  r  rÑ  r«   r0   r|  r^   r_   r>   r½   r¾   rÎ  r1   r1   r2   rÔ  Ó'  s&   "ÿzTestTruncPareto.test_fitN)rà   rá   râ   r9  r¹   rã   rä   rÔ  r1   r1   r1   r2   rÎ	  Ê'  s    rÎ	  c                   @   rj  )Ú
TestKappa3c                 C   s.   dt j dd¡ }t j dd¡}t||ƒ d S )Nr   rr   g     jø@)r6   Úkappa3ri   rÙ   r   )rk   Úsf0r  r1   r1   r2   r¤  ñ'  s   zTestKappa3.test_sfN)rà   rá   râ   r¤  r1   r1   r1   r2   rÒ	  ð'  rç  rÒ	  c                   @   st   e Zd Ze dd¡Ze d¡Ze 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 )ÚTestIrwinHallr   r   r[   c                 C   s   t | j d¡dƒ d S )Nry  )r�   g«ªªªªªê?r   g¸…ëQ¸¾¿)r   Úih10r6   ro   r1   r1   r2   Útest_stats_ih10ÿ'  s   zTestIrwinHall.test_stats_ih10c                    sJ   g d¢}‡ fdd„t t|ƒƒD ƒ}t||ƒ ˆ j d¡}d}t||ƒ d S )N)	r�   gUUUUUÕ9@g     0a@ið  g«ªªªªx°@gnÛ¶mË ×@g    :PAgä8Žãõá)Ag    ¯µSAc                    s   g | ]
}ˆ j  |d  ¡‘qS r  )rÖ	  rJ  )r=   rV  ro   r1   r2   r?   (  r+  z3TestIrwinHall.test_moments_ih10.<locals>.<listcomp>r%  gêø2â�šÄH)rM  rû   r   rÖ	  rJ  )rk   r0  r{  Úm50Ú	m50_exactr1   ro   r2   Útest_moments_ih10(  s   
zTestIrwinHall.test_moments_ih10c                 C   ó8   t  ddd¡}| j |¡}| j |¡}t||dd� d S ©Nr   r   r\   r[   ©Úmaxulp)rc   r?  Úunifrb   Úih1r   )rk   ÚptsÚpdf_unifÚpdf_ih1r1   r1   r2   Útest_pdf_ih1_unif(  s   zTestIrwinHall.test_pdf_ih1_unifc                 C   sn   t  d¡}d}t dd|¡}t dd|¡}d||d d d …  ||d d d …< | |¡}t||dd� d S )Nr`   rY   r   r   r[   rÝ	  )r6   r  rc   r?  rb   r   )rk   Úih2Únptsrá	  rT   Úpdf_ih2r1   r1   r2   Útest_pdf_ih2_triangle(  s   
(
z#TestIrwinHall.test_pdf_ih2_trianglec                 C   rÛ	  rÜ	  )rc   r?  rß	  ri   rà	  r   )rk   rá	  Úcdf_unifÚcdf_ih1r1   r1   r2   Útest_cdf_ih1_unif)(  s   zTestIrwinHall.test_cdf_ih1_unifc                 C   sF   t  dd¡}t |¡}| |d ¡}t  dt|ƒ¡}t||dd� d S )Nr   r[   r`   rr   rÝ	  )rc   rÿ   r6   r  ri   r  rû   r   )rk   rV  ÚihÚih_cdfÚexactr1   r1   r2   rB  1(  s
   
zTestIrwinHall.test_cdfc                 C   sX   g d¢}t | j t d¡¡|dd� t | j d¡ddd� d}t | j d¡|dd� d S )	N)r   g\Ÿx·O~’>gÎñ-ðP2?g8Ê��i’‹?gg{È†ÇÁ?rr   g&¡ûMŽë?g×ˆùY¶‘ï?gBú�ýµýï?gD‚lÿÿï?r   r"  r[   rÝ	  rX   g¤öª+|Å<r:  gÍÌÌÌÌÌ#@)r   rÖ	  ri   rc   rÿ   r  r1   r1   r2   Útest_cdf_ih10_exact:(  s
   z!TestIrwinHall.test_cdf_ih10_exactc                 C   s@   g d¢}|dg|d d d…  7 }t | j t d¡¡|dd� d S )N)r   g4ÇV¥ãÇ>gP3NªV?gŸ*8fœ¤?gNgX¿ƒÏ?gjSøö‹Û?rÌ   r"  r[   rÝ	  )r   rÖ	  rb   rc   rÿ   r‰  r1   r1   r2   Útest_pdf_ih10_exactJ(  s    z!TestIrwinHall.test_pdf_ih10_exactc                 C   sH   t | j t d¡¡d| j t d¡¡ ƒ d}t| j d¡|dd� d S )Nr"  r   r:  rX   r[   rÝ	  )r   rÖ	  rÙ   rc   rÿ   ri   r   )rk   rd  r1   r1   r2   Útest_sf_ih10_exactQ(  s   *z TestIrwinHall.test_sf_ih10_exactN)rà   rá   râ   r6   r'  rß	  r  rà	  rÖ	  r×	  rÚ	  rä	  rè	  rë	  rB  rï	  rð	  rñ	  r1   r1   r1   r2   rÕ	  ú'  s    


	rÕ	  c                   @   rj  )ÚTestDParetoLognormc                 C   sJ   d\}}}}}t  ||||¡}tj | |¡d¡ tj | |¡d¡ d S )N)rì  r�   rF  rˆ  r`   g6÷¬Zà™?g›½@¸#
‘?)r6   Údpareto_lognormrc   r¥  r   rb   ri   )rk   rZ   rÆ  rJ   r/   r0   r>   r1   r1   r2   Útest_against_R[(  s   z!TestDParetoLognorm.test_against_RN)rà   rá   râ   rô	  r1   r1   r1   r2   rò	  Z(  rç  rò	  rL  ))rÓ	  NNNN)rÌ  NNNN)r  NNNN)r	  NNNN)rý  NNNNc                 C   s¸   | \}}}}}t  d¡}|pd}|pd}|pd}|pd}tt|ƒ}ttƒ| }||Ž }	t  ||¡}
|	 |	 |
¡¡}t	||
||d� dt  ||d¡ }
|	 |	 |
¡¡}t	||
||d� d S )	Nrr   iÞþÿÿiòÿÿÿr   r³  r/  r   rë  )
rc   rc	  r  r6   rý   r   rz  rÙ   rŸ  r   )rL  r	  Úlp1Úlp2rŒ   r|   Úlpmr>   r¦  Údist_frozenrd  r­   r1   r1   r2   Útest_sf_isf_overrideso(  s   	

rù	  rm   )NF(  rÂ  rX  r	  rï  r@  Úpathlibr   rf  rm  r½  Únumpy.testingr   r   r   r   r   r   r	   r
   r   r   r   r¹   r   rô  Únumpyrc   r   r   Únumpy.lib.recfunctionsr   r5   r   Úscipy._lib._utilr   rÝ  r   r   r   r   Úscipy.statsr6   Ú!scipy.stats._distn_infrastructurer   Úscipy.stats._constantsr   Úscipy.stats.distributionsÚscipy.specialr   r   r   Úscipy.stats._distr_paramsr   r   Útest_discrete_basicr    r!   Úscipy.stats._continuous_distnsr"   r#   Úscipy.optimizer$   r%   r&   Ú	itertoolsr'   ÚflagsÚoptimizer	  rÀ  r   r¡	  r3   r8   rU   rV   r»   r  rã   rä   r  r  rD  rk  rr  rw  r  r   r¿  r  r  r*  r`  re  r�  r˜  rœ  r²  r¼  rË  rÒ  rç  ré  r÷  rý  r  r`  rj  r“  r´  r¾  r¿  ræ  rí  rû  r  rG  rW  rg  rp  r�  r“  r›  rµ  r¼  rÊ  rÕ  rß  rå  rë  rö  r  r2  r[  r`  rT  rd   rª  ro  r«  r¹  rÀ  rÃ  rÚ  rã  rå  rè  rð  r÷  r"  r?  rM  rN  rX  r^  rd  rh  rÿ  r  r	  r
  r4  rX  rŽ  r�  r¤  r®  r´  rº  rÃ  rÇ  rÐ  rÓ  ró  rù  r  r  r  r  r)  r-  rp  rw  r€  r  r�  r‚  r„  r…  r‡  rˆ  rŠ  rŒ  r�  r�  r�  r‘  r’  r“  r˜  rš  r›  r�  r   r£  r¥  r¦  r§  r©  r¬  r¯  r·  r¸  rº  r»  r¼  rÂ  rB   rÃ  rÈ  rÌ  rÏ  rÐ  rþ  r  r	  r	  r	  r	  r	  r%	  r&	  r'	  r)	  r0	  r2	  r3	  r9	  r:	  r@	  rE	  rF	  r^	  r_	  rh	  r}	  r’	  rŸ	  r¦	  r­	  r®	  r°	  r±	  r²	  rº	  r¼	  r½	  rÌ	  rÎ	  rÒ	  rÕ	  rò	  rù	  r1   r1   r1   r2   Ú<module>   s’   4 K"ÿ
J	
R? HH K FJ*:D"L#  @ $kX(% wX?* $ y:W<3G+s %-6ø	ø	óí$ "v22: C *zSE      `
 q i ;`%E>x  #k"U5 GAG	
&
ÿ	(
ü
ÿ
ÿ
ÿ
ÿ
	x;	,
"ÿ
ÿÿþþ

a6  
ÿÿ
ÿZ&
`