Ë
    ÏÍ:jz×  ã            	       óÌ  — 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Zd dl	Z
d dlmZmZ d dlmZmZmZmZ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mZmZ d d	lm Z m!Z! d d
l"m#Z# d dl$m%Z%  G d„ d«      Z&dd e&«       ifddg d¢ifddg d¢ifdd e&«       ifdd e&«       ifd e&«       d dœfgZ'dZ(d„ edfd„ e)e(fd„ e*dfd„ edfd„ edfd„ e)d fgZ+d!„ edfd"„ edfd#„ e)e(fd$„ e*dfd%„ e)d fgZ,d&„ e)e(fd'„ e*dfd(„ edfd)„ edfd*„ e)d fgZ-g d+fd,d-ggd.fd/d0e
j\                  d1gd2fd/d0e
j^                  d1gd2fd-d-gd3fgZ0d4e1d5fd6e1d5fgZ2d7ed8fd9ed8fgZ3d:ed8fe
j^                  e
j^                  fed8fe
j^                   e
j^                   fed8fe
j^                  e
j^                   fed8fe
j^                   e
j\                  fe1d;fe
j\                  e
j^                  fe1d;fgZ4d e
j\                  fe1d;fe
j\                  e
j\                  fe1d;fgZ5ejl                  jo                  d<e3e2z   e5z   «      ejl                  jo                  d=e'«      d>„ «       «       Z8ejl                  jo                  d=e'«      d?„ «       Z9d@„ Z:dA„ Z;ejl                  jo                  d=e'«      dB„ «       Z<ejl                  jo                  dCg dD¢«      dE„ «       Z=dF„ Z>dG„ Z?d^dH„Z@d_dI„ZAdJ„ ZBejl                  jo                  dKg dL¢«      dM„ «       ZCejl                  jo                  dKddg«       G dN„ dO«      «       ZD G dP„ dQ«      ZE G dR„ dS«      ZF G dT„ dU«      ZG G dV„ dW«      ZH G dX„ dY«      ZI G dZ„ d[«      ZJ G d\„ d]«      ZKy)`é    N)Údeepcopy)Úassert_allcloseÚassert_equal)ÚTransformedDensityRejectionÚDiscreteAliasUrnÚDiscreteGuideTableÚNumericalInversePolynomialÚNumericalInverseHermiteÚRatioUniformsÚSimpleRatioUniformsÚUNURANError)Úraises)Ústats)Úspecial)Ú	chisquareÚcramervonmises)ÚdistdiscreteÚdistcont)Úcheck_random_state)Úassert_deallocatedc                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚStandardNormalc                 óŒ   — dt        j                  dt         j                  z  «      z  t        j                  d|z  |z  «      z  S ©Nç      ð?ç       @ç      à¿©ÚnpÚsqrtÚpiÚexp©ÚselfÚxs     út/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/scipy/stats/tests/test_sampling.pyÚpdfzStandardNormal.pdf$   s4   € à”"—'‘'˜"œRŸU™U™(Ó#Ñ#¤b§f¡f¨T°A©X°a©ZÓ&8Ñ8Ð8ó    c                 ó”   — dt        j                  dt         j                  z  «      z  | z  t        j                  d|z  |z  «      z  S r   r   r#   s     r&   ÚdpdfzStandardNormal.dpdf(   s;   € Ø”"—'‘'˜"œRŸU™U™(Ó#Ñ# q bÑ(¬2¯6©6°$¸±(¸1±*Ó+=Ñ=Ð=r(   c                 ó,   — t        j                  |«      S ©N)r   Úndtrr#   s     r&   ÚcdfzStandardNormal.cdf+   s   € Ü�|‰|˜A‹Ðr(   N©Ú__name__Ú
__module__Ú__qualname__r'   r*   r.   © r(   r&   r   r   #   s   „ ò9ò>ór(   r   r   Údistr   )ç{®Gáz”?ç
×£p=
Ç?çš™™™™™é?r   r	   r
   r   )r4   Úmodezmust be real number, not listc                 ó   — |  S r,   r3   ©r%   s    r&   ú<lambda>r;   >   s   € �ˆr€ r(   z...c                 ó   — g S r,   r3   r:   s    r&   r;   r;   @   ó   € ˆr€ r(   c                 ó   — t         S r,   ©Úfoor:   s    r&   r;   r;   B   ó   € Œs€ r(   úname 'foo' is not definedc                 ó"   — t         j                  S r,   ©r   Úinfr:   s    r&   r;   r;   D   ó
   € Œr�v‰v€ r(   c                 ó"   — t         j                  S r,   ©r   Únanr:   s    r&   r;   r;   F   rF   r(   c                   ó   — y©Nr   r3   r3   r(   r&   r;   r;   H   ó   � r(   ú,takes 0 positional arguments but 1 was givenc                 ó"   — t         j                  S r,   rD   r:   s    r&   r;   r;   O   rF   r(   c                 ó"   — t         j                  S r,   rH   r:   s    r&   r;   r;   Q   rF   r(   c                 ó   — g S r,   r3   r:   s    r&   r;   r;   S   r=   r(   c                 ó   — t         S r,   r?   r:   s    r&   r;   r;   U   rA   r(   c                   ó   — yrK   r3   r3   r(   r&   r;   r;   W   rL   r(   c                 ó   — g S r,   r3   r:   s    r&   r;   r;   ^   r=   r(   c                 ó   — t         S r,   r?   r:   s    r&   r;   r;   `   rA   r(   c                 ó"   — t         j                  S r,   rD   r:   s    r&   r;   r;   b   rF   r(   c                 ó"   — t         j                  S r,   rH   r:   s    r&   r;   r;   d   rF   r(   c                   ó   — yrK   r3   r3   r(   r&   r;   r;   f   rL   r(   z!must contain at least one elementr   ç        z0wrong number of dimensions \(expected 1, got 2\)çš™™™™™É?çš™™™™™Ù?r7   ú)must contain only finite / non-nan valuesú(must contain at least one non-zero value)é   é   é   zmust be a length 2 tupler3   )r^   r]   zleft >= right)r]   r]   )é
   r`   zonly non-nan valuesúdomain, err, msgzmethod, kwargsc                 ó¨   — t        t        j                  |«      }t        j                  ||¬«      5   |di |¤d| i¤Ž d d d «       y # 1 sw Y   y xY w)N©ÚmatchÚdomainr3   )Úgetattrr   ÚsamplingÚpytestr   )re   ÚerrÚmsgÚmethodÚkwargsÚMethods         r&   Útest_bad_domainrn   —   sG   € ô
 ”U—^‘^ VÓ,€FÜ	�‰�s #Ô	&ñ (ÙÑ'�Ñ' Ó'÷(÷ (ñ (ús   ²AÁAc                 ó8  — t        t        j                  | «      }d} |di |¤d|i¤Ž} |di |¤d|i¤Ž}t        |j	                  d«      |j	                  d«      «       t
        j                  j                  d«      } |di |¤Ž}|j	                  d|¬«      }t
        j                  j                  d «        |di |¤ddi¤Ž}|j	                  d«      }t        ||«       t
        j                  j                  t
        j                  j                  d«      «      }	t
        j                  j                  t
        j                  j                  d«      «      }
 |di |¤d|	i¤Ž} |di |¤d|
i¤Ž}t        |j	                  d«      |j	                  d«      «       y )Né{   Úrandom_stateéd   ©rq   r3   )rf   r   rg   r   Úrvsr   ÚrandomÚRandomStateÚseedÚMT19937Ú	Generator)rk   rl   rm   rw   Úrng1Úrng2ÚrngÚrvs1Úrvs2Úseed1Úseed2s              r&   Útest_random_stater�   ¡   sK  € ä”U—^‘^ VÓ,€Fð €DÙÑ.�FÑ.¨Ò.€DÙÑ.�FÑ.¨Ò.€DÜ�—‘˜#“ §¡¨£Ô.ô �)‰)×
Ñ
 Ó
$€CÙÑ�FÑ€DØ�8‰8�C cˆ8Ó*€DÜ‡I�I‡N�N�4ÔÙÑ-�FÑ-¨Ò-€DØ�8‰8�C‹=€DÜ��tÔô
 �I‰I×!Ñ!¤"§)¡)×"3Ñ"3°CÓ"8Ó9€EÜ�I‰I×Ñ¤§	¡	× 1Ñ 1°#Ó 6Ó7€EÙÑ/�FÑ/¨Ò/€DÙÑ/�FÑ/¨Ò/€DÜ�—‘˜#“ §¡¨£Õ.r(   c                  ór  — t        t        «       d¬«      } t        t        «       «      }|j                  d«       t        | j	                  d«      |j	                  d«      «       t        t        «       d¬«      }|j	                  d«      }|j                  d«       |j	                  d«      }t        ||«       y )Nrp   rs   rr   )r   r   Úset_random_stater   rt   )rz   r{   r|   r}   r~   s        r&   Útest_set_random_stater„   ¾   s‡   € Ü&¤~Ó'7ÀcÔJ€DÜ&¤~Ó'7Ó8€DØ×Ñ˜#ÔÜ�—‘˜#“ §¡¨£Ô.Ü
%¤nÓ&6ÀSÔ
I€CØ�7‰7�3‹<€DØ×Ñ˜ÔØ�7‰7�3‹<€DÜ��tÕr(   c                  ó>  ‡‡— d d dœŠ G d„ d«      Šˆˆfd„} ˆˆfd„}t        j                  | ¬«      }t        j                  |¬«      }|j                  «        |j                  «        |j                  «        |j                  «        ‰d   dk(  sJ ‚‰d	   d
k(  sJ ‚y )N)Úerr1Úerr2c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ú.test_threading_behaviour.<locals>.Distributionc                 ó   — || _         y r,   )Úpdf_msg)r$   r‹   s     r&   Ú__init__z7test_threading_behaviour.<locals>.Distribution.__init__Ñ   s	   € Ø"ˆD�Lr(   c                 óN   — d|cxk  rdk  rn |S t        | j                  «      ‚|S )Ng33333óH@g      I@)Ú
ValueErrorr‹   r#   s     r&   r'   z2test_threading_behaviour.<locals>.Distribution.pdfÔ   s(   € Ø�aŒ˜$ŒàˆHô ! §¡Ó.Ð.ØˆHr(   c                  ó   — y©Nr]   r3   r#   s     r&   r*   z3test_threading_behaviour.<locals>.Distribution.dpdfÙ   s   € Ør(   N)r0   r1   r2   rŒ   r'   r*   r3   r(   r&   ÚDistributionr‰   Ð   s   „ ò	#ò	ó
	r(   r‘   c                  ó¦   •—  ‰d«      } t        | dd¬«      }	 |j                  d«       y # t        $ r}|j                  d   ‰d<   Y d }~y d }~ww xY w)Nr@   ©r`   rr   é   ©re   rq   é † r   r†   ©r   rt   rŽ   Úargs©r4   r|   Úer‘   Úerrorss      €€r&   Úfunc1z'test_threading_behaviour.<locals>.func1Ü   sO   ø€ Ù˜EÓ"ˆÜ)¨$°yØ79ô;ˆð	'Ø�G‰G�F�OøÜò 	'ØŸV™V A™YˆF�6ŽNûð	'úó   ™+ «	A´AÁAc                  ó¦   •—  ‰d«      } t        | dd¬«      }	 |j                  d«       y # t        $ r}|j                  d   ‰d<   Y d }~y d }~ww xY w)NÚbarr“   r^   r•   r–   r   r‡   r—   r™   s      €€r&   Úfunc2z'test_threading_behaviour.<locals>.func2å   sO   ø€ Ù˜EÓ"ˆÜ)¨$°yØ78ô:ˆð	'Ø�G‰G�F�OøÜò 	'ØŸV™V A™YˆF�6ŽNûð	'úr�   )Útargetr†   r@   r‡   rŸ   )Ú	threadingÚThreadÚstartÚjoin)rœ   r    Út1Út2r‘   r›   s       @@r&   Útest_threading_behaviourr¨   Ê   s�   ù€ ð  DÑ)€F÷
ñ 
õ'õ'ô 
×	Ñ	 Ô	'€BÜ	×	Ñ	 Ô	'€Bà‡H�H„JØ‡H�H„Jà‡G�G„IØ‡G�G„Ià�&‰>˜UÒ"Ð"Ð"Ø�&‰>˜UÒ"Ð"Ñ"r(   c                 óø   — t        t        j                  | «      } |di |¤ddi¤Ž}t        j                  |«      }t        j
                  |«      }t        |j                  d«      |j                  d«      «       y )Nrq   rp   rr   r3   )rf   r   rg   ÚpickleÚdumpsÚloadsr   rt   )rk   rl   rm   rz   Úobjr{   s         r&   Útest_pickler®   û   sZ   € ä”U—^‘^ VÓ,€FÙÑ-�FÑ-¨Ò-€DÜ
�,‰,�tÓ
€CÜ�<‰<˜Ó€DÜ�—‘˜#“ §¡¨£Õ.r(   Úsize)Nr   )r   r]   )r`   r_   )r^   r_   é   é   )r   r   )r   r]   c                 óì   — t        t        «       «      }| €'t        j                  |j	                  | «      «      sJ ‚y t        j                  | «      r| f} |j	                  | «      j
                  | k(  sJ ‚y r,   )r   r   r   Úisscalarrt   Úshape)r¯   r|   s     r&   Útest_rvs_sizerµ     s_   € ô
 &¤nÓ&6Ó
7€CØ€|Ü�{‰{˜3Ÿ7™7 4›=Ô)Ð)Ñ)ä�;‰;�tÔØ�8ˆDØ�w‰w�t‹}×"Ñ" dÒ*Ð*Ñ*r(   c                  ó  — t        j                  «       } t        j                  j	                  d«      }t        | |¬«      }t        j                  ddd¬«      }t        || | j                  «       «       t        | j                  |«      |j                  |«      «       t        j                  dd¬«      } t        | |¬«      }t        || | j                  «       «       t        | j                  |«      |j                  |«      «       t        j                  d	d
«      } t        | |¬«      }| j                  «       }| j                  t        j                  |d   |d   dz   «      «      }t        ||| j                  «       «       y )Nr   rs   r]   rr   ©Únumç      $@ç      @)ÚlocÚscaler`   rY   )r   Únormr   ru   Údefault_rngr
   ÚlinspaceÚcheck_cont_samplesr   ÚppfÚbinomr   ÚsupportÚpmfÚarangeÚcheck_discr_samples)r4   Úurngr|   Úure   Úpvs         r&   Útest_with_scipy_distributionrÊ     s  € ä�:‰:‹<€DÜ�9‰9× Ñ  Ó#€DÜ
! $°TÔ
:€CÜ
�‰�A�q˜cÔ"€AÜ�s˜D $§*¡*£,Ô/Ü�D—H‘H˜Q“K §¡¨£Ô,ä�:‰:˜# RÔ(€DÜ
! $°TÔ
:€CÜ�s˜D $§*¡*£,Ô/Ü�D—H‘H˜Q“K §¡¨£Ô,ä�;‰;�r˜3Ó€DÜ
˜4¨dÔ
3€CØ�\‰\‹^€FØ	�‰”"—)‘)˜F 1™I v¨a¡y°¡{Ó3Ó	4€BÜ˜˜R §¡£Õ.r(   c                  ót  — t        j                  «       } t        j                  j	                  d«      }t        t        | |¬«      5 }t        j                  ddd¬«      }t        || | j                  «       «       t        | j                  |«      |j                  |«      «       ~d d d «       y # 1 sw Y   y xY w)Nr   rs   r]   rr   r·   )r   r½   r   ru   r¾   r   r
   r¿   rÀ   r   rÁ   )r4   rÇ   r|   rÈ   s       r&   Ú%test_NumericalInverseHermite_refcyclerÌ   '  s‡   € ä�:‰:‹<€DÜ�9‰9× Ñ  Ó#€DÜ	Ô3°TÈÔ	Mð ÐQTÜ�K‰K˜˜1 #Ô&ˆÜ˜3  d§j¡j£lÔ3Ü˜Ÿ™ › S§W¡W¨Q£ZÔ0Ø÷	÷ ñ ús   ÁAB.Â.B7c                 ól  — | j                  d«      }|j                  «       |j                  «       f}t        j                  |d   «      rt        ||||¬«       | j                  d«      }t        j                  |j                  «      |_        t        ||j                  «      j                  }|dkD  sJ ‚y )Nr–   r]   ©ÚrtolÚatoliô  çš™™™™™¹?)
rt   ÚmeanÚvarr   Úisfiniter   Ú	vectorizer.   r   Úpvalue)r|   r4   Úmv_exrÏ   rÐ   rt   ÚmvÚpvals           r&   rÀ   rÀ   2  s†   € Ø
�'‰'�&‹/€CØ	�‰‹�S—W‘W“YÐ	€Bä	‡{�{�5˜‘8ÔÜ˜˜E¨°4Õ8à
�'‰'�#‹,€CÜ�|‰|˜DŸH™HÓ%€D„HÜ˜#˜tŸx™xÓ(×/Ñ/€DØ�#Š:Ð‰:r(   c                 ó†  — | j                  d«      }|j                  «       |j                  «       f}t        ||||¬«       ||j	                  «       z  }t        j                  |«      }t        j                  |d¬«      \  }}	|	|	j	                  «       z  }	|	|d |	j                   t        ||«      j                  }
|
dkD  sJ ‚y )Nr–   rÎ   T)Úreturn_countsrÑ   )rt   rÒ   rÓ   r   Úsumr   Ú
zeros_likeÚuniquer¯   r   rÖ   )r|   rÉ   r×   rÏ   rÐ   rt   rØ   Ú	obs_freqsÚ_ÚfreqsrÙ   s              r&   rÆ   rÆ   ?  s¢   € Ø
�'‰'�&‹/€Cà	�‰‹�S—W‘W“YÐ	€BÜ�B˜ D¨tÕ4à	ˆb�f‰f‹h‰€Bä—‘˜bÓ!€IÜ�y‰y˜¨DÔ1�H€A€uØ�E—I‘I“KÑ€EØ"€Iˆkˆu�z‰zÐÜ�Y Ó#×*Ñ*€DØ�#Š:Ð‰:r(   c                  ó  — d} t        j                  t        | ¬«      5  t        t	        «       dd¬«       d d d «       t        j                  t        | ¬«      5  t        t	        «       d¬«       d d d «       y # 1 sw Y   ŒCxY w# 1 sw Y   y xY w)Nz.102 : center moved into domain of distributionrc   r   ©r_   r±   )Úcenterre   ©re   )rh   ÚwarnsÚRuntimeWarningr	   r   )rj   s    r&   Ú!test_warning_center_not_in_domainrè   O  sy   € ð ;€CÜ	�‰”n¨CÔ	0ñ NÜ"¤>Ó#3¸AÀfÕM÷Nä	�‰”n¨CÔ	0ñ DÜ"¤>Ó#3¸FÕC÷Dð D÷Nð Nú÷Dð Dús   žA7ÁBÁ7B ÂBrk   )r   r	   r   c                 óÂ   — t        t        j                  | «      }d}t        j                  t
        |¬«      5   |t        «       dd¬«       d d d «       y # 1 sw Y   y xY w)Nz17 : mode not in domainrc   r   rã   )r8   re   )rf   r   rg   rh   r   r   r   )rk   rm   rj   s      r&   Útest_error_mode_not_in_domainrê   Y  sK   € ô ”U—^‘^ VÓ,€FØ
#€CÜ	�‰”{¨#Ô	.ñ 8ÙŒ~Ó a°Õ7÷8÷ 8ñ 8ús   ¸AÁAc                   óÎ  — e Zd Zd„ Zdej
                  j                  dd¬«      ej
                  j                  dd¬«      gZd e	«       fddd	d
gZ
d e	«       fd e	«       fdgZej                  j                  de«      ej                  j                  de
«      ej                  j                  de«      ej                  j                  d¬«      d„ «       «       «       «       Zd„ Zy)ÚTestQRVSc                 óø  — d}t        j                  t        |¬«      5  t        t        j
                  |«      } |t        «       «      }|j                  d¬«       d d d «       t        t        j
                  |«      } |t        «       «      }d}t        j                  t        |¬«      5  |j                  dt        j                  j                  d«      ¬«       d d d «       y # 1 sw Y   ŒŠxY w# 1 sw Y   y xY w)	Nz&`qmc_engine` must be an instance of...rc   r   )Ú
qmc_engineú6`d` must be consistent with dimension of `qmc_engine`.r_   r^   ©Údrî   )
rh   r   rŽ   rf   r   rg   r   ÚqrvsÚqmcÚHalton)r$   rk   rd   rm   Úgens        r&   Útest_input_validationzTestQRVS.test_input_validationj  sÀ   € Ø8ˆÜ�]‰]œ:¨UÔ3ñ 	#ÜœUŸ^™^¨VÓ4ˆFÙœÓ)Ó*ˆCØ�H‰H ˆHÔ"÷	#ô œŸ™¨Ó0ˆÙ”^Ó%Ó&ˆàHˆÜ�]‰]œ:¨UÔ3ñ 	:Ø�H‰H�q¤U§Y¡Y×%5Ñ%5°aÓ%8ˆHÔ9÷	:ð 	:÷	#ð 	#ú÷	:ð 	:ús   ž=C$Â*1C0Ã$C-Ã0C9Nr]   r   ©rw   r_   )r]   ©r]   )r°   ©r°   )rù   rù   )©r^   r°   rú   )r_   ©r_   Úqrngúsize_in, size_outzd_in, d_outzfails in parallel©Úreasonc                 ó"  — t         j                  dk(  xr t        j                  «       d   dk(  }|r|dk(  rt        j                  d«       t        «       }t        t        j                  |«      }	 |	|«      }
|�L|�J|j                  |k7  r;d}t        j                  t        |¬«      5  |
j                  |||¬«       d d d «       y |€|�|j                  d	k7  r|j                  f}||z   }t        |«      }|
j                  |||¬
«      }|�|j                  |k(  sJ ‚|�e|j                  t!        j"                  |«      xs d	«      }t        j$                  j'                  |«      j)                  |«      }t+        ||d¬«       y y # 1 sw Y   y xY w)NÚwin32r   Ú32bitr	   z4NumericalInversePolynomial.qrvs fails for Win 32-bitrï   rc   rð   r]   ©r¯   rñ   rî   çê-�™—q=©rÐ   )ÚsysÚplatformÚarchitecturerh   Úxfailr   rf   r   rg   rñ   r   rŽ   rò   r   r´   ru   r   Úprodr½   rÁ   Úreshaper   )r$   rü   Úsize_inÚsize_outÚd_inÚd_outrk   Úw32r4   rm   rõ   rd   Úshape_expectedÚqrng2rò   ÚuniformÚqrvs2s                    r&   Útest_QRVS_shape_consistencyz$TestQRVS.test_QRVS_shape_consistency€  sk  € ô �l‰l˜gÑ%ÒO¬(×*?Ñ*?Ó*AÀ!Ñ*DÈÑ*OˆÙ�6Ð9Ò9Ü�L‰Lð "ô #ô ÓˆÜœŸ™¨Ó0ˆÙ�T‹lˆð Ð Ð 0°T·V±V¸t²^ØLˆEÜ—‘œz°Ô7ñ ;Ø—‘˜ D°T�Ô:÷;àð ˆ<˜DÐ,°·±¸1²Ø—V‘V�IˆEà! EÑ)ˆä˜“ˆØ�x‰x˜W¨¸ˆxÓ>ˆØÐØ—:‘: Ò/Ð/Ð/àÐØ—l‘l¤2§7¡7¨7Ó#3Ò#8°qÓ9ˆGÜ—J‘J—N‘N 7Ó+×3Ñ3°NÓCˆEÜ˜D %¨eÖ4ð ÷;àús   Â(FÆFc                 ó  — t        «       }t        t        j                  |«      } ||«      }d}d}t        j                  j                  |d¬«      }t        j                  j                  |d¬«      }|j                  t        j                  |«      «      }	|j                  |||¬«      }
t        j                  j                  |	«      }t        |«      D ]/  }|
d|f   }|d d …|f   j                  |«      }t        ||d¬«       Œ1 y )	N)r_   r°   r±   r   r÷   r  .r  r  )r   rf   r   rg   ró   rô   ru   r   r
  rò   r½   rÁ   Úranger  r   )r$   rk   r4   rm   rõ   r¯   rñ   rü   r  r  rò   r  ÚiÚsampleÚsample2s                  r&   Útest_QRVS_size_tuplezTestQRVS.test_QRVS_size_tuple¦  sá   € ô ÓˆÜœŸ™¨Ó0ˆÙ�T‹lˆàˆØˆÜ�y‰y×Ñ ¨ÐÓ*ˆÜ—	‘	× Ñ  ¨Ð Ó+ˆà—,‘,œrŸw™w t›}Ó-ˆà�x‰x˜T Q°4ˆxÓ8ˆÜ—
‘
—‘˜wÓ'ˆä�q“ò 	9ˆAØ˜#˜q˜&‘\ˆFØšA˜q˜D‘k×)Ñ)¨$Ó/ˆGÜ˜F G°%Ö8ñ	9r(   )r0   r1   r2   rö   r   ró   ÚSobolrô   ÚqrngsÚtupleÚsizesÚdsrh   ÚmarkÚparametrizeÚthread_unsafer  r  r3   r(   r&   rì   rì   g  så   „ ò:ð �5—9‘9—?‘? 1¨1�?Ó-¨u¯y©y×/?Ñ/?ÀÈÐ/?Ó/JÐK€Eà‘E“Gˆ_˜i¨ØÐ+ð-€Eð ‘“ˆ/˜A™u›w˜<¨Ð	3€Bà‡[�[×Ñ˜V UÓ+Ø‡[�[×ÑÐ0°%Ó8Ø‡[�[×Ñ˜]¨BÓ/Ø‡[�[×ÑÐ&9ÐÓ:ñ 5ó ;ó 0ó 9ó ,ð 5óD9r(   rì   c            
       ó4  — e Zd Z G d„ d«      Z G d„ d«      Z G d„ d«      Z e«        e«        ed«       ed«      gZdd	gZdd
gZde	j                  gZde	j                  gZeeeegZej                  j!                  d e eee«      «      «      ej                  j'                  d¬«      d„ «       «       Zd„ edfgZeez  Zej                  j!                  de«      d„ «       Zej                  j!                  de«      d„ «       Zej                  j!                  de«      d„ «       Zej                  j!                  dg d¢«      d„ «       Zd„ Zej                  j!                  dde	j>                  e	j                  ddg«      d„ «       Z  e	jB                  d d!d"¬#«      g g ge	j>                  ge	j                   e	j>                  e	j                  gd e	j>                  d$dgd%d&e	j                  gg d'¢ggZ"ej                  j!                  d(e"«      d)„ «       Z#d*„ Z$y+),ÚTestTransformedDensityRejectionc                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ú%TestTransformedDensityRejection.dist0c                 ó   — dd||z  z
  z  S ©Nç      è?r]   r3   r#   s     r&   r'   z)TestTransformedDensityRejection.dist0.pdfÈ  ó   € Ø˜!˜A˜a™C™%‘=Ð r(   c                 ó   — dd|z  z  S )Nr*  éþÿÿÿr3   r#   s     r&   r*   z*TestTransformedDensityRejection.dist0.dpdfË  s   € Ø˜"˜Q™$‘<Ðr(   c                 ó$   — d||dz  dz  z
  dz   z  S ©Nr*  r_   gUUUUUUå?r3   r#   s     r&   r.   z)TestTransformedDensityRejection.dist0.cdfÎ  ó   € Ø˜!˜a ™d 1™f™* sÑ*Ñ+Ð+r(   c                  ó   — y©N)éÿÿÿÿr]   r3   ©r$   s    r&   rÃ   z-TestTransformedDensityRejection.dist0.supportÑ  ó   € Ør(   N©r0   r1   r2   r'   r*   r.   rÃ   r3   r(   r&   Údist0r'  Ç  s   „ ò	!ò	 ò	,ó	r(   r7  c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ú%TestTransformedDensityRejection.dist1c                 óF   — t         j                  j                  |dz  «      S ©NrÑ   ©r   r½   Ú_pdfr#   s     r&   r'   z)TestTransformedDensityRejection.dist1.pdfÖ  ó   € Ü—:‘:—?‘? 1 s¡7Ó+Ð+r(   c                 óT   — | dz  t         j                  j                  |dz  «      z  S )Nç{®Gáz„?rÑ   r<  r#   s     r&   r*   z*TestTransformedDensityRejection.dist1.dpdfÙ  s$   € Ø�2˜‘9œuŸz™zŸ™¨q°3©wÓ7Ñ7Ð7r(   c                 óF   — t         j                  j                  |dz  «      S r;  ©r   r½   Ú_cdfr#   s     r&   r.   z)TestTransformedDensityRejection.dist1.cdfÜ  r>  r(   Nr/   r3   r(   r&   Údist1r9  Õ  s   „ ò	,ò	8ó	,r(   rD  c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ú%TestTransformedDensityRejection.dist2c                 ó   — || _         y r,   ©Úshift©r$   rI  s     r&   rŒ   z.TestTransformedDensityRejection.dist2.__init__ã  s	   € ØˆD�Jr(   c                 óR   — || j                   z  }dt        |«      dz   z  }d|z  |z  S ©Nr   ç      à?©rI  Úabs©r$   r%   Úys      r&   r'   z)TestTransformedDensityRejection.dist2.pdfæ  ó/   € Ø�—‘‰OˆAØ”c˜!“f˜r‘kÑ"ˆAØ˜‘7˜Q‘;Ðr(   c                 óf   — || j                   z  }dt        |«      dz   z  }||z  |z  }|dk  r|S | S )Nr   rX   rN  rP  s      r&   r*   z*TestTransformedDensityRejection.dist2.dpdfë  sA   € Ø�—‘‰OˆAØ”c˜!“f˜r‘kÑ"ˆAØ�A‘˜‘	ˆAØ˜Rš�1Ð( q bÐ(r(   c                 óP   — || j                   z  }|dk  rdd|z
  z  S ddd|z   z  z
  S ©NrX   rM  r   rH  r#   s     r&   r.   z)TestTransformedDensityRejection.dist2.cdfñ  ó7   € Ø�—‘‰OˆAØ�BŠwØ˜b 1™f‘~Ð%à˜C 2¨¡6™NÑ*Ð*r(   N)r0   r1   r2   rŒ   r'   r*   r.   r3   r(   r&   Údist2rF  â  s   „ ò	ò	ò
	)ó	+r(   rW  rX   ç     ˆÃ@çÑ?r@  údist, mv_exúdeadlocks for unknown reasonsrþ   c                 ó¾   — t        j                  «       5  t        j                  dt        «       t	        |d¬«      }d d d «       t        ||«       y # 1 sw Y   ŒxY w)NÚignoreé*   rs   )ÚwarningsÚcatch_warningsÚsimplefilterrç   r   rÀ   ©r$   r4   r×   r|   s       r&   Ú
test_basicz*TestTransformedDensityRejection.test_basic  sS   € ô ×$Ñ$Ó&ñ 	Eä×!Ñ! (¬NÔ;Ü-¨dÀÔDˆC÷	Eô 	˜3  eÕ,÷		Eð 	Eús   •(AÁAc                  ó   — y)Nr   r3   r:   s    r&   r;   z(TestTransformedDensityRejection.<lambda>  rL   r(   ú50 : bad construction points.úpdf, err, msgc                 ó¤   —  G d„ d«      }||_         d„ |_        t        j                  ||¬«      5  t	        |«       d d d «       y # 1 sw Y   y xY w)Nc                   ó   — e Zd Zy)ú:TestTransformedDensityRejection.test_bad_pdf.<locals>.distN©r0   r1   r2   r3   r(   r&   r4   ri    ó   „ Ør(   r4   c                  ó   — yr�   r3   r:   s    r&   r;   z>TestTransformedDensityRejection.test_bad_pdf.<locals>.<lambda>  rL   r(   rc   ©r'   r*   rh   r   r   ©r$   r'   ri   rj   r4   s        r&   Útest_bad_pdfz,TestTransformedDensityRejection.test_bad_pdf  sE   € ÷	ñ 	àˆŒÙˆŒ	Ü�]‰]˜3 cÔ*ñ 	.Ü'¨Ô-÷	.÷ 	.ñ 	.ús   ±AÁAzdpdf, err, msgc                 ó¨   —  G d„ d«      }d„ |_         ||_        t        j                  ||¬«      5  t	        |d¬«       d d d «       y # 1 sw Y   y xY w)Nc                   ó   — e Zd Zy)ú;TestTransformedDensityRejection.test_bad_dpdf.<locals>.distNrj  r3   r(   r&   r4   rr    rk  r(   r4   c                 ó   — | S r,   r3   r:   s    r&   r;   z?TestTransformedDensityRejection.test_bad_dpdf.<locals>.<lambda>  s   € ˜Q€ r(   rc   ©r]   r`   rå   rm  )r$   r*   ri   rj   r4   s        r&   Útest_bad_dpdfz-TestTransformedDensityRejection.test_bad_dpdf  sG   € ÷	ñ 	áˆŒØˆŒ	Ü�]‰]˜3 cÔ*ñ 	>Ü'¨°WÕ=÷	>÷ 	>ñ 	>ús   ±AÁAra   c                 ó†   — t        j                  ||¬«      5  t        t        «       |¬«       d d d «       y # 1 sw Y   y xY w©Nrc   rå   )rh   r   r   r   ©r$   re   ri   rj   s       r&   Útest_inf_nan_domainsz4TestTransformedDensityRejection.test_inf_nan_domains#  s6   € ä�]‰]˜3 cÔ*ñ 	IÜ'¬Ó(8ÀÕH÷	I÷ 	Iñ 	Iúó	   ˜7·A Úconstruction_points)r3  r   rÑ   c                 óŽ   — t        j                  t        d¬«      5  t        t	        «       |¬«       d d d «       y # 1 sw Y   y xY w)Nz1`construction_points` must be a positive integer.rc   ©r{  ©rh   r   rŽ   r   r   ©r$   r{  s     r&   Ú#test_bad_construction_points_scalarzCTestTransformedDensityRejection.test_bad_construction_points_scalar(  s=   € ä�]‰]œ:ð .Dô Eñ 	ä'ÜÓ Ð6Iõ÷	÷ 	ñ 	ús	   œ;»Ac                 ó   — g }t        j                  t        d¬«      5  t        t	        «       |¬«       d d d «       g d¢}t        j
                  t        d¬«      5  t        t	        «       |¬«       d d d «       t        j                  t        j                  t        j                  g}t        j                  t        d¬«      5  t        t	        «       |¬«       d d d «       ddg}t        j
                  t        d	¬«      5  t        t	        «       d
|¬«       d d d «       y # 1 sw Y   ŒíxY w# 1 sw Y   Œ¼xY w# 1 sw Y   Œ`xY w# 1 sw Y   y xY w)NzC`construction_points` must either be a scalar or a non-empty array.rc   r}  )r]   r]   r]   r]   r]   r]   z:33 : starting points not strictly monotonically increasingre  éöÿÿÿr`   z!50 : starting point out of domain)éýÿÿÿr_   )re   r{  )
rh   r   rŽ   r   r   ræ   rç   r   rI   r   r  s     r&   Ú"test_bad_construction_points_arrayzBTestTransformedDensityRejection.test_bad_construction_points_array0  s(  € à ÐÜ�]‰]œ:ð .Mô Nñ 	ô (ÜÓ Ð6Iõ÷	ò 1ÐÜ�\‰\œ.ð 1>ô ?ñ 	ô (ÜÓ Ð6Iõ÷	ô  "Ÿv™v¤r§v¡v¬r¯v©vÐ6ÐÜ�]‰]œ;ð /9ô :ñ 	ä'ÜÓ Ð6Iõ÷	ð  # B˜iÐÜ�\‰\œ.ð 1:ô ;ñ 	ä'ÜÓ ¨Ø$7õ÷	ð 	÷5	ð 	ú÷	ð 	ú÷	ð 	ú÷	ð 	ús/   žD ÁD,ÃD8Ä EÄ D)Ä,D5Ä8EÅEÚcç      ð¿rÑ   r   c                 ó’   — d}t        j                  t        |¬«      5  t        t	        «       d¬«       d d d «       y # 1 sw Y   y xY w)Nz`c` must either be -0.5 or 0.rc   r†  )r…  r~  )r$   r…  rj   s      r&   Ú
test_bad_cz*TestTransformedDensityRejection.test_bad_cT  s;   € à.ˆÜ�]‰]œ:¨SÔ1ñ 	AÜ'¬Ó(8¸CÕ@÷	A÷ 	Añ 	Aúó	   ž=½Ar   r]   éè  r·   rM  rY   rZ   ©r-  r_   r°   rÈ   c                 ó(  — t        t        «       d¬«      }t        j                  «       5  d}t        j                  d|dz   t
        «       t        j                  d|dz   t
        «       t        j                  d|dz   t
        «       t        j                  d|dz   t
        «       |j                  |«      }t        j                  j                  |«      }d d d «       t        d	d
¬«       |j                  |j                  k(  sJ ‚y # 1 sw Y   Œ4xY w)Ng§èH.ÿï?)Úmax_squeeze_hat_ratioúinvalid value encountered in r]  ÚgreaterÚgreater_equalÚlessÚ
less_equalçü©ñÒMbP?çñhãˆµøä>rÎ   )r   r   r_  r`  Úfilterwarningsrç   Úppf_hatr   r½   rÁ   r   r´   )r$   rÈ   r|   rj   ÚresÚexpecteds         r&   Útest_ppf_hatz,TestTransformedDensityRejection.test_ppf_hat^  sÞ   € ô *¬.Ó*:Ø@FôHˆô ×$Ñ$Ó&ñ 	)Ø1ˆCÜ×#Ñ# H¨c°I©o¼~ÔNÜ×#Ñ# H¨c°OÑ.CÄ^ÔTÜ×#Ñ# H¨c°F©l¼NÔKÜ×#Ñ# H¨c°LÑ.@Ä.ÔQØ—+‘+˜a“.ˆCÜ—z‘z—~‘~ aÓ(ˆH÷	)ô 	˜˜X¨D°tÕ<Ø�y‰y˜HŸN™NÒ*Ð*Ñ*÷	)ð 	)ús   ªB+DÄDc                 ó   —  G d„ d«      }d}t        j                  t        |¬«      5  t        |«       d d d «        G d„ d«      }d}t        j                  t        |¬«      5  t        |«       d d d «       y # 1 sw Y   ŒExY w# 1 sw Y   y xY w)Nc                   ó   — e Zd Zy)ú;TestTransformedDensityRejection.test_bad_dist.<locals>.distNrj  r3   r(   r&   r4   rœ  s  s   „ Ør(   r4   z`pdf` required but not found.rc   c                   ó   — e Zd Zd„ Zy)rœ  c                 ó   — d| | z  z
  S r�   r3   r:   s    r&   r;   zDTestTransformedDensityRejection.test_bad_dist.<locals>.dist.<lambda>|  s   € ˜A˜a ™c™E€ r(   N©r0   r1   r2   r'   r3   r(   r&   r4   z;TestTransformedDensityRejection.test_bad_dist.<locals>.dist{  s   „ Ù!‰Cr(   z`dpdf` required but not found.)rh   r   rŽ   r   )r$   r4   rj   s      r&   Útest_bad_distz-TestTransformedDensityRejection.test_bad_distq  s   € ÷	ñ 	ð /ˆÜ�]‰]œ:¨SÔ1ñ 	.Ü'¨Ô-÷	.÷	"ñ 	"ð 0ˆÜ�]‰]œ:¨SÔ1ñ 	.Ü'¨Ô-÷	.ð 	.÷	.ð 	.ú÷	.ð 	.ús   ¨A8Á#BÁ8BÂBN)%r0   r1   r2   r7  rD  rW  ÚdistsÚmv0Úmv1r   rE   Úmv2Úmv3Úmvsrh   r!  r"  ÚlistÚzipr#  rc  r   Úbad_pdfsÚbad_pdfs_commonro  Úbad_dpdf_commonru  Úinf_nan_domainsry  r€  r„  rI   rˆ  r¿   rÈ   r™  r   r3   r(   r&   r%  r%  Å  sJ  „ ÷ñ ÷,ñ ,÷+ñ +ñ, ‹W‘e“g™u R›y©%°«-Ð8€Eð ˆvˆ,€CØˆtˆ*€CØˆr�v‰vˆ,€CØ�2—6‘6Ð
€CØ��S˜#Ð
€Cà‡[�[×Ñ˜]Ù!¡# e¨S£/Ó2ó4à‡[�[×ÑÐ&EÐÓFñ-ó Gó4ð-ñ ˜kÐ+KÐLÐM€HØ�Ñ€Hà‡[�[×Ñ˜_¨hÓ7ñ.ó 8ð.ð ‡[�[×ÑÐ-¨Ó?ñ>ó @ð>ð ‡[�[×ÑÐ/°ÓAñIó BðIð ‡[�[×ÑÐ2²LÓAñó Bðò"ðH ‡[�[×Ñ˜S 3¨¯©°·±¸¸RÐ"@ÓAñAó BðAð
 
ˆ�‰�Q˜˜tÔ	$ b¨2¨$°·±°Ø�6‰6ˆ'�2—6‘6˜2Ÿ6™6Ð	" AØ�6‰6�3˜Ð
˜s C¨¯©Ð0²*Ð	=ð	?€Að ‡[�[×Ñ˜S !Ó$ñ+ó %ð+ó$.r(   r%  c            	       óš  — e Zd Zh d£Zej
                  j                  de«      d„ «       Zd„ e	dfd„ e	dfd„ e	dfd	„ e
d
fd„ e	dfd„ edfd„ edfgZej
                  j                  de«      d„ «       Zej
                  j                  dg d¢g d¢g«      d„ «       Zej
                  j                  de«      d„ «       Zej&                   ej&                  fej&                  ej&                  fej&                   ej&                   fdej&                  fej&                   dfgZej
                  j                  de«      d„ «       Zd„ Zd„ Zd„ Zy) ÚTestDiscreteAliasUrn>   ÚrandintÚnchypergeom_fisherÚnchypergeom_walleniusúdistname, paramsc                 óÚ  — || j                   v rd}t        j                  |«       t        |t        «      s|}nt        t        |«      } ||Ž }|j                  «       }t        j                  |d   |d   z
  «      st        j                  d«       t        j                  |d   |d   dz   «      }|j                  |«      }|j                  d«      }t        |d¬«      }	t        |	||«       y )NzYDAU fails on these probably because of large domains and small computation errors in PMF.r]   r   z$DAU only works with a finite domain.rØ   r^  rs   )Úbasic_fail_distsrh   ÚskipÚ
isinstanceÚstrrf   r   rÃ   r   rÔ   rÅ   rÄ   r   rÆ   ©
r$   ÚdistnameÚparamsrj   r4   re   ÚkrÉ   r×   r|   s
             r&   rc  zTestDiscreteAliasUrn.test_basicŒ  sÉ   € à�t×,Ñ,Ñ,ð:ˆCä�K‰K˜ÔÜ˜(¤CÔ(Ø‰Däœ5 (Ó+ˆDÙ�Vˆ}ˆØ—‘“ˆÜ�{‰{˜6 !™9 v¨a¡yÑ0Ô1ô �K‰KÐ>Ô?Ü�I‰I�f˜Q‘i ¨¡¨1¡Ó-ˆØ�X‰X�a‹[ˆØ—
‘
˜4Ó ˆÜ˜t°"Ô5ˆÜ˜C  UÕ+r(   c                 ó"   — t         j                  S r,   rD   r:   s    r&   r;   zTestDiscreteAliasUrn.<lambda>¦  ó
   € ”2—6‘6€ r(   r[   c                 ó"   — t         j                  S r,   rH   r:   s    r&   r;   zTestDiscreteAliasUrn.<lambda>©  r½  r(   c                  ó   — y)NrX   r3   r:   s    r&   r;   zTestDiscreteAliasUrn.<lambda>¬  rL   r(   r\   c                 ó   — t         S r,   r?   r:   s    r&   r;   zTestDiscreteAliasUrn.<lambda>¯  s   € ”3€ r(   rB   c                 ó   — g S r,   r3   r:   s    r&   r;   zTestDiscreteAliasUrn.<lambda>²  s   € �2€ r(   z)setting an array element with a sequence.c                 ó   — |  S r,   r3   r:   s    r&   r;   zTestDiscreteAliasUrn.<lambda>µ  s   € �A�2€ r(   z50 : probability < 0c                   ó   — yrK   r3   r3   r(   r&   r;   zTestDiscreteAliasUrn.<lambda>¸  rL   r(   rM   zpmf, err, msgc                 ó˜   —  G d„ d«      }||_         t        j                  ||¬«      5  t        |d¬«       d d d «       y # 1 sw Y   y xY w)Nc                   ó   — e Zd Zy)ú/TestDiscreteAliasUrn.test_bad_pmf.<locals>.distNrj  r3   r(   r&   r4   rÆ  ¾  rk  r(   r4   rc   rt  rå   )rÄ   rh   r   r   )r$   rÄ   ri   rj   r4   s        r&   Útest_bad_pmfz!TestDiscreteAliasUrn.test_bad_pmf¼  s@   € ÷	ñ 	àˆŒÜ�]‰]˜3 cÔ*ñ 	3Ü˜T¨'Õ2÷	3÷ 	3ñ 	3ús   ©A Á A	rÉ   )r6   r5   r7   )r   r   g      @ç      @rº   g      @c                 óx  — t        j                  |t         j                  ¬«      }t        |d¬«      }|j	                  d«       ||j                  «       z  }t        j                  dt        |«      «      }t        j                  ||¬«      }t        j                  ||z
  dz  |¬«      }||f}t        |||«       y )N)Údtyperp   rs   r–   r   )Úweightsr^   )
r   ÚasarrayÚfloat64r   rt   rÜ   rÅ   ÚlenÚaveragerÆ   )r$   rÉ   r|   ÚvariatesÚ
m_expectedÚ
v_expectedÚmv_expecteds          r&   Útest_sampling_with_pvz*TestDiscreteAliasUrn.test_sampling_with_pvÄ  s“   € ô �Z‰Z˜¤"§*¡*Ô-ˆÜ˜r°Ô4ˆØ�‰�ÔØ�"—&‘&“(‰]ˆÜ—9‘9˜Q¤ B£Ó(ˆä—Z‘Z °"Ô5ˆ
Ü—Z‘Z ¨JÑ!6¸1Ñ <ÀbÔIˆ
Ø  *Ð,ˆÜ˜C  [Õ1r(   úpv, msgc                 óz   — t        j                  t        |¬«      5  t        |«       d d d «       y # 1 sw Y   y xY w©Nrc   ©rh   r   rŽ   r   ©r$   rÉ   rj   s      r&   Útest_bad_pvz TestDiscreteAliasUrn.test_bad_pvÒ  s-   € ä�]‰]œ:¨SÔ1ñ 	!Ü˜RÔ ÷	!÷ 	!ñ 	!úó   œ1±:r   re   c                 ó¦   — t        j                  t        d¬«      5  t        t	        j
                  dd«      |¬«       d d d «       y # 1 sw Y   y xY w©Nzmust be finiterc   r`   rY   rå   )rh   r   rŽ   r   r   rÂ   ©r$   re   s     r&   Útest_inf_domainz$TestDiscreteAliasUrn.test_inf_domainÜ  s?   € ä�]‰]œ:Ð->Ô?ñ 	BÜœUŸ[™[¨¨SÓ1¸&ÕA÷	B÷ 	Bñ 	Búó   œ"AÁAc                 ó‚   — t        j                  t        d¬«      5  t        ddgd¬«       d d d «       y # 1 sw Y   y xY w)Nzrelative urn size < 1.rc   rM  r3  )Ú
urn_factor)rh   ræ   rç   r   r4  s    r&   Útest_bad_urn_factorz(TestDiscreteAliasUrn.test_bad_urn_factorá  s4   € Ü�\‰\œ.Ð0IÔJñ 	8Ü˜c 3˜Z°BÕ7÷	8÷ 	8ñ 	8ús   œ5µ>c                 ó’   — d} G d„ d«      }t        j                  t        |¬«      5  t        |«       d d d «       y # 1 sw Y   y xY w)NzG`domain` must be provided when the probability vector is not available.c                   ó   — e Zd Zd„ Zy)ú0TestDiscreteAliasUrn.test_bad_args.<locals>.distc                 ó   — |S r,   r3   r#   s     r&   rÄ   z4TestDiscreteAliasUrn.test_bad_args.<locals>.dist.pmfê  s   € Ø�r(   N)r0   r1   r2   rÄ   r3   r(   r&   r4   ræ  é  s   „ ór(   r4   rc   rØ  )r$   rj   r4   s      r&   Útest_bad_argsz"TestDiscreteAliasUrn.test_bad_argså  s@   € ð7ˆ÷	ñ 	ô �]‰]œ:¨SÔ1ñ 	#Ü˜TÔ"÷	#÷ 	#ñ 	#ús	   ¨=½Ac                 óŒ   — t        j                  t        j                  d«      «      }t	        |d¬«      }t        ||dd¬«       y )N)iý  r^  rs   )g     ð‡@g    
àAg{®Gázt?)rÏ   )r   Úsoftmaxr   Úonesr   rÆ   )r$   rÉ   r|   s      r&   Útest_gh19359z!TestDiscreteAliasUrn.test_gh19359ð  s7   € Ü�_‰_œRŸW™W WÓ-Ó.ˆÜ˜r°Ô3ˆä˜C Ð%CØ!%ö	'r(   N)r0   r1   r2   r´  rh   r!  r"  r   rc  rŽ   Ú	NameErrorr   Ú	TypeErrorÚbad_pmfrÇ  rÔ  Úbad_pv_commonrÚ  r   rE   Ú
inf_domainrß  rã  rè  rì  r3   r(   r&   r®  r®  ƒ  s§  „ òÐð ‡[�[×ÑÐ/°Ó>ñ,ó ?ð,ñ2 
˜:Ø	5ð	7ñ 
˜:Ø	5ð	7ñ 
˜
Ø	4ð	6ñ 
˜	Ø	%ð	'ñ 
�zØ	5ð	7ñ 
�{Ø	 ð	"ñ 
�iØ	8ð	:ð)€Gð0 ‡[�[×Ñ˜_¨gÓ6ñ3ó 7ð3ð ‡[�[×Ñ˜TÒ$5Ú$Bð$Dó Eñ
2óEð
2ð ‡[�[×Ñ˜Y¨Ó6ñ!ó 7ð!ð —F‘F�7˜BŸF™FÐ# b§f¡f¨b¯f©fÐ%5¸¿¹¸À"Ç&Á&ÀÐ7IØ�b—f‘f�+ §¡ ¨˜|ð-€Jð ‡[�[×Ñ˜X zÓ2ñBó 3ðBò8ò	#ó'r(   r®  c                   ó”  — e Zd Z G d„ d«      Z G d„ d«      Z G d„ d«      Z G d„ d«      Z e«        e«        e«        e«       gZd	d
gZd	dgZ	de
j                  z  dde
j                  dz  z  z
  gZde
j                  z  dde
j                  dz  z  z
  gZee	eegZej                   j#                  d¬«      ej                   j%                  d e eee«      «      «      d„ «       «       Zej                   j,                  ej                   j%                  de«      d„ «       «       Zej                   j%                  de«      d„ «       Zej                   j%                  de«      d„ «       Zej                   j%                  de«      d„ «       Z e
j>                  ddd¬ «      g g ge
j@                  ge
jB                   e
j@                  e
jB                  gde
j@                  d!d"gd#d$e
jB                  gg d%¢ggZ"ej                   j%                  d&e"«      d'„ «       Z# e
j>                  d(d)d¬ «      g g ge
j@                  ge
jB                   e
j@                  e
jB                  gde
j@                  d!d"gd#d$e
jB                  ge
jB                   d*d+gggZ$ej                   j%                  d,e$«      d-„ «       Z%ej                   jL                  d.„ «       Z'dd/d0e
jB                  e
j@                  gZ(d1d"e
jB                  e
j@                  gZ)ej                   j%                  d2e(«      d3„ «       Z*ej                   j%                  d4e)«      d5„ «       Z+d6„ Z,d7„ Z-y8)9ÚTestNumericalInversePolynomialc                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ú$TestNumericalInversePolynomial.dist0c                 ó   — dd||z  z
  z  S r)  r3   r#   s     r&   r'   z(TestNumericalInversePolynomial.dist0.pdfû  r+  r(   c                 ó$   — d||dz  dz  z
  dz   z  S r/  r3   r#   s     r&   r.   z(TestNumericalInversePolynomial.dist0.cdfþ  r0  r(   c                  ó   — yr2  r3   r4  s    r&   rÃ   z,TestNumericalInversePolynomial.dist0.support  r5  r(   N©r0   r1   r2   r'   r.   rÃ   r3   r(   r&   r7  rõ  ú  s   „ ò	!ò	,ó	r(   r7  c                   ó   — e Zd Zd„ Zd„ Zy)ú$TestNumericalInversePolynomial.dist1c                 óF   — t         j                  j                  |dz  «      S r;  r<  r#   s     r&   r'   z(TestNumericalInversePolynomial.dist1.pdf  r>  r(   c                 óF   — t         j                  j                  |dz  «      S r;  rB  r#   s     r&   r.   z(TestNumericalInversePolynomial.dist1.cdf	  r>  r(   N)r0   r1   r2   r'   r.   r3   r(   r&   rD  rû    s   „ ò	,ó	,r(   rD  c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ú$TestNumericalInversePolynomial.dist2c                 óf   — dddt        j                  dt         j                  z  |z  «      z   z  z   S )Nçš™™™™™©?çÍÌÌÌÌÌÜ?r]   r^   ©r   Úsinr!   r#   s     r&   r'   z(TestNumericalInversePolynomial.dist2.pdf  s,   € Ø˜$ !¤b§f¡f¨Q¬r¯u©u©W°Q©YÓ&7Ñ"7Ñ8Ñ8Ð8r(   c                 óÎ   — d|dz   z  dddt         j                  z  d|z   z  z   t        j                  dt         j                  z  |z  «      z
  z  dt         j                  z  z  z   S )Nr  r]   gÍÌÌÌÌÌì?r   r   rÈ  ©r   r!   Úcosr#   s     r&   r.   z(TestNumericalInversePolynomial.dist2.cdf  s_   € Ø˜!˜a™%‘LØ˜˜b¤§¡™h¨¨A©Ñ.Ñ.´·±¸¼2¿5¹5¹À¹
Ó1CÑCÑDØœŸ™‘Xññð  r(   c                  ó   — yr2  r3   r4  s    r&   rÃ   z,TestNumericalInversePolynomial.dist2.support  r5  r(   Nrù  r3   r(   r&   rW  rÿ    s   „ ò	9ò	 ó
	r(   rW  c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ú$TestNumericalInversePolynomial.dist3c                 ól   — ddddt        j                  dt         j                  z  |z  «      z   z  z   z  S )NrY   r  r  r]   r^   r  r#   s     r&   r'   z(TestNumericalInversePolynomial.dist3.pdf#  s1   € Ø˜$ ¨¬R¯V©V°A´b·e±e±G¸A±IÓ->Ñ)>Ñ!?Ñ?Ñ@Ð@r(   c                 óâ   — |dz  dz   ddt         j                  z  z  t        j                  dt         j                  z  «      t        j                  dt         j                  z  |z  «      z
  z  z   S )Nr¹   rM  g
×£p=
·?r^   r`   r  r#   s     r&   r.   z(TestNumericalInversePolynomial.dist3.cdf&  s^   € Ø�S‘5˜3‘;  q¬¯©¡w¡´2·6±6¸"¼R¿U¹U¹(Ó3CÜ35·6±6¸!¼B¿E¹E¹'À!¹)Ó3Dñ4Eñ "Fñ Fð Fr(   c                  ó   — y)N)éûÿÿÿr±   r3   r4  s    r&   rÃ   z,TestNumericalInversePolynomial.dist3.support*  r5  r(   Nrù  r3   r(   r&   Údist3r
  "  s   „ ò	Aò	Fó	r(   r  rX   rY  r@  gÍÌÌÌÌÌÜ¿çUUUUUUÕ?gìQ¸…ëÉ?r^   g«ªªªªª @r[  rþ   rZ  c                 ó8   — t        |d¬«      }t        |||«       y )Nr^  rs   )r	   rÀ   rb  s       r&   rc  z)TestNumericalInversePolynomial.test_basic6  s   € ô )¨¸BÔ?ˆÜ˜3  eÕ,r(   r²  c                 óØ  — g d¢}g d¢}dg}||v rt        j                  d|› �«       ||v rt        j                  d|› �«       t        |t        «      rt	        t
        |«      n|} ||Ž }t        j                  «       5  t        j                  dt        «       t        |d¬«      }d d d «       ||v ry t        ||j                  «       |j                  «       g«       y # 1 sw Y   Œ:xY w)	N)ÚanglitÚ
gausshyperÚkappa4ÚksoneÚkstwoÚlevy_lÚlevy_stableÚstudentized_rangeÚ	trapezoidÚtriangÚvonmises)	Úchi2ÚfatiguelifeÚgibratÚhalfgennormÚlognormÚncfÚncx2ÚparetoÚtÚrel_breitwignerzPINV too slow for zPINV fails for r]  r^  rs   )rh   rµ  r¶  r·  rf   r   r_  r`  ra  rç   r	   rÀ   rÒ   rÓ   )r$   r¹  rº  Úvery_slow_distsÚ
fail_distsÚskip_sample_moment_checkr4   r|   s           r&   Útest_basic_all_scipy_distsz9TestNumericalInversePolynomial.test_basic_all_scipy_dists=  sç   € ò>ˆò-ˆ
ð %6Ð#6Ð à�Ñ&Ü�K‰KÐ,¨X¨JÐ7Ô8Ø�zÑ!Ü�K‰K˜/¨(¨Ð4Ô5ä˜h¬Ô,ô œ˜xÔ(àð 	ñ �Vˆ}ˆÜ×$Ñ$Ó&ñ 	DÜ×!Ñ! (¬NÔ;Ü,¨TÀÔCˆC÷	Dð Ð/Ñ/ØÜ˜3  t§y¡y£{°D·H±H³JÐ&?Õ@÷	Dð 	Dús   Á?(C Ã C)rf  c                 óœ   —  G d„ d«      }||_         t        j                  ||¬«      5  t        |ddg¬«       d d d «       y # 1 sw Y   y xY w)Nc                   ó   — e Zd Zy)ú9TestNumericalInversePolynomial.test_bad_pdf.<locals>.distNrj  r3   r(   r&   r4   r.  a  rk  r(   r4   rc   r   r±   rå   )r'   rh   r   r	   rn  s        r&   ro  z+TestNumericalInversePolynomial.test_bad_pdf_  sD   € ÷	ñ 	àˆŒÜ�]‰]˜3 cÔ*ñ 	<Ü& t°Q¸°FÕ;÷	<÷ 	<ñ 	<úó   ©AÁAzlogpdf, err, msgc                 óœ   —  G d„ d«      }||_         t        j                  ||¬«      5  t        |ddg¬«       d d d «       y # 1 sw Y   y xY w)Nc                   ó   — e Zd Zy)ú<TestNumericalInversePolynomial.test_bad_logpdf.<locals>.distNrj  r3   r(   r&   r4   r2  i  rk  r(   r4   rc   r   r±   rå   )Úlogpdfrh   r   r	   )r$   r3  ri   rj   r4   s        r&   Útest_bad_logpdfz.TestNumericalInversePolynomial.test_bad_logpdfg  sD   € ÷	ñ 	àˆŒÜ�]‰]˜3 cÔ*ñ 	<Ü& t°Q¸°FÕ;÷	<÷ 	<ñ 	<úr/  ra   c                 ó†   — t        j                  ||¬«      5  t        t        «       |¬«       d d d «       y # 1 sw Y   y xY wrw  )rh   r   r	   r   rx  s       r&   ry  z3TestNumericalInversePolynomial.test_inf_nan_domainsq  s6   € ä�]‰]˜3 cÔ*ñ 	HÜ&¤~Ó'7ÀÕG÷	H÷ 	Hñ 	Húrz  r   r]   é'  r·   rM  rÑ   rY   rZ   r‹  rÈ   c                 ó,  — t        «       }t        |d¬«      }t        j                  «       5  d}t        j                  d|dz   t
        «       t        j                  d|dz   t
        «       t        j                  d|dz   t
        «       t        j                  d|dz   t
        «       |j                  |«      }t        j                  j                  |«      }d d d «       t        d	d	¬
«       |j                  |j                  k(  sJ ‚y # 1 sw Y   Œ4xY w©Nç›+¡†›„=©Úu_resolutionrŽ  r]  r�  r�  r‘  r’  g•dyáý¥=rÎ   )r   r	   r_  r`  r•  rç   rÁ   r   r½   r   r´   ©r$   rÈ   r4   r|   rj   r—  r˜  s          r&   Útest_ppfz'TestNumericalInversePolynomial.test_ppf…  óÝ   € äÓˆÜ(¨¸EÔBˆô ×$Ñ$Ó&ñ 	)Ø1ˆCÜ×#Ñ# H¨c°I©o¼~ÔNÜ×#Ñ# H¨c°OÑ.CÄ^ÔTÜ×#Ñ# H¨c°F©l¼NÔKÜ×#Ñ# H¨c°LÑ.@Ä.ÔQØ—'‘'˜!“*ˆCÜ—z‘z—~‘~ aÓ(ˆH÷	)ô 	˜˜X¨E¸Õ>Ø�y‰y˜HŸN™NÒ*Ð*Ñ*÷	)ð 	)úó   ¬B+D
Ä
Dr‚  r`   r_   r°   r%   c                 ó,  — t        «       }t        |d¬«      }t        j                  «       5  d}t        j                  d|dz   t
        «       t        j                  d|dz   t
        «       t        j                  d|dz   t
        «       t        j                  d|dz   t
        «       |j                  |«      }t        j                  j                  |«      }d d d «       t        d	d	¬
«       |j                  |j                  k(  sJ ‚y # 1 sw Y   Œ4xY wr8  )r   r	   r_  r`  r•  rç   r.   r   r½   r   r´   )r$   r%   r4   r|   rj   r—  r˜  s          r&   Útest_cdfz'TestNumericalInversePolynomial.test_cdfš  r>  r?  c                 óÐ   — t        «       }t        |d¬«      }|j                  «       \  }}|dk  sJ ‚||k  sJ ‚t        |d¬«      }|j                  «       \  }}|dk  sJ ‚||k  sJ ‚y )Nç»½×Ùß|Û=r:  r9  )r   r	   Úu_error©r$   r4   r|   Ú	max_errorÚmaes        r&   Útest_u_errorz+TestNumericalInversePolynomial.test_u_error«  sx   € äÓˆÜ(¨¸EÔBˆØŸ™›‰ˆ	�3Ø˜5Ò Ð Ð Ø�iÒÐÐÜ(¨¸EÔBˆØŸ™›‰ˆ	�3Ø˜5Ò Ð Ð Ø�iÒÐÑr(   g      @é   g#B’¡œÇ;Úorderc                 ó–   — t        «       }d}t        j                  t        |¬«      5  t	        ||¬«       d d d «       y # 1 sw Y   y xY w)Nz2`order` must be an integer in the range \[3, 17\].rc   ©rJ  )r   rh   r   rŽ   r	   )r$   rJ  r4   rj   s       r&   Útest_bad_ordersz.TestNumericalInversePolynomial.test_bad_ordersº  s<   € äÓˆàCˆÜ�]‰]œ:¨SÔ1ñ 	:Ü& t°5Õ9÷	:÷ 	:ñ 	:ús	   ¨?¿Ar;  c                 ó’   — d}t        j                  t        |¬«      5  t        t	        «       |¬«       d d d «       y # 1 sw Y   y xY w)Nz.`u_resolution` must be between 1e-15 and 1e-5.rc   r:  )rh   r   rŽ   r	   r   )r$   r;  rj   s      r&   Útest_bad_u_resolutionz4TestNumericalInversePolynomial.test_bad_u_resolutionÂ  s?   € à?ˆÜ�]‰]œ:¨SÔ1ñ 	BÜ&¤~Ó'7Ø4@õB÷	B÷ 	Bñ 	Búr‰  c                 ó  —  G d„ d«      } |«       }d}t        j                  t        |¬«      5  t        |«      }d d d «       t	        «       }t        |«      }d}t        j                  t        |¬«      5  |j                  d«       d d d «        G d„ d«      } |«       }t        |«      }d	}t        j                  t        |¬«      5  |j                  «        d d d «       y # 1 sw Y   Œ¨xY w# 1 sw Y   ŒhxY w# 1 sw Y   y xY w)
Nc                   ó   — e Zd Zd„ Zy)ú=TestNumericalInversePolynomial.test_bad_args.<locals>.BadDistc                 ó@   — t         j                  j                  |«      S r,   rB  r#   s     r&   r.   zATestNumericalInversePolynomial.test_bad_args.<locals>.BadDist.cdfÌ  s   € Ü—z‘z—‘ qÓ)Ð)r(   N)r0   r1   r2   r.   r3   r(   r&   ÚBadDistrR  Ë  ó   „ ó*r(   rT  z9Either of the methods `pdf` or `logpdf` must be specifiedrc   z4`sample_size` must be greater than or equal to 1000.r`   c                   ó   — e Zd Zd„ Zy)úBTestNumericalInversePolynomial.test_bad_args.<locals>.Distributionc                 ó8   — t        j                  d|z  |z  «      S )Nr   ©r   r"   r#   s     r&   r'   zFTestNumericalInversePolynomial.test_bad_args.<locals>.Distribution.pdfÛ  s   € Ü—v‘v˜d Q™h q™jÓ)Ð)r(   NrŸ  r3   r(   r&   r‘   rW  Ú  rU  r(   r‘   z!Exact CDF required but not found.)rh   r   rŽ   r	   r   rD  )r$   rT  r4   rj   r|   r‘   s         r&   rè  z,TestNumericalInversePolynomial.test_bad_argsÉ  sá   € ÷	*ñ 	*ñ ‹yˆØJˆÜ�]‰]œ:¨SÔ1ñ 	3Ü,¨TÓ2ˆC÷	3ô ÓˆÜ(¨Ó.ˆØEˆÜ�]‰]œ:¨SÔ1ñ 	Ø�K‰K˜ŒO÷	÷	*ñ 	*ñ ‹~ˆÜ(¨Ó.ˆØ2ˆÜ�]‰]œ:¨SÔ1ñ 	Ø�K‰KŒM÷	ð 	÷!	3ð 	3ú÷	ð 	ú÷	ð 	ús#   ¯C"Á5C.ÃC:Ã"C+Ã.C7Ã:Dc                 ó  —  G d„ d«      } |«       }d„ |_         t        |«      } |«       }d„ |_        t        |«      }t        j                  ddd¬«      }t        |j                  |«      |j                  |«      «       y )	Nc                   ó   — e Zd Zy)úJTestNumericalInversePolynomial.test_logpdf_pdf_consistency.<locals>.MyDistNrj  r3   r(   r&   ÚMyDistr\  è  rk  r(   r]  c                 ó:   — t        j                  |  | z  dz  «      S ©Nr^   )Úmathr"   r:   s    r&   r;   zLTestNumericalInversePolynomial.test_logpdf_pdf_consistency.<locals>.<lambda>í  s   € ¤§¡¨1¨"¨Q©$¨q©&Ó!1€ r(   c                 ó   — |  | z  dz  S r_  r3   r:   s    r&   r;   zLTestNumericalInversePolynomial.test_logpdf_pdf_consistency.<locals>.<lambda>ò  s   € ¨ r¨!¡t¨A¡v€ r(   r”  gwJëÿï?rr   r·   )r'   r	   r3  r   r¿   r   rÁ   )r$   r]  Údist_pdfrz   Údist_logpdfr{   Úqs          r&   Útest_logpdf_pdf_consistencyz:TestNumericalInversePolynomial.test_logpdf_pdf_consistencyä  sm   € ÷	ñ 	ñ “8ˆÙ1ˆŒÜ)¨(Ó3ˆñ “hˆÙ-ˆÔÜ)¨+Ó6ˆä�K‰K˜˜f¨#Ô.ˆÜ˜Ÿ™ › T§X¡X¨a£[Õ1r(   N).r0   r1   r2   r7  rD  rW  r  r¡  r¢  r£  r   r!   r¤  r¥  r¦  rh   r!  r#  r"  r§  r¨  rc  Úxslowr   r+  rª  ro  Úbad_logpdfs_commonr4  r¬  ry  r¿   rI   rE   rÈ   r=  r%   rA  ÚslowrH  Ú
bad_ordersÚbad_u_resolutionrM  rO  rè  re  r3   r(   r&   ró  ró  ø  sp  „ ÷ñ ÷,ñ ,÷
ñ 
÷"	ñ 	ñ ‹W‘e“g™u›w©«Ð0€Eð ˆvˆ,€CØˆtˆ*€CØ�—‘‰;˜ '¨"¯%©%°©(Ñ"2Ñ2Ð
3€CØ�—‘‰;Ð)¨G°B·E±E¸1±HÑ,<Ñ<Ð
=€CØ��S˜#Ð
€Cà‡[�[×ÑÐ&EÐÓFØ‡[�[×Ñ˜]Ù!¡# e¨S£/Ó2ó4ñ-ó4ó Gð-ð ‡[�[×ÑØ‡[�[×ÑÐ/°Ó:ñAó ;ó ðAð@ ‡[�[×Ñ˜_¨oÓ>ñ<ó ?ð<ð ‡[�[×ÑÐ/Ð1CÓDñ<ó Eð<ð ‡[�[×ÑÐ/°ÓAñHó BðHð 	ˆ�‰�A�q˜eÔ$à
ˆRˆDà	�‰ˆ�B—F‘F�7˜BŸF™F B§F¡FÐ+à	ð �&‰&�#�sÐ	˜c 3¨¯©Ð/²Ð<ð	€Að ‡[�[×Ñ˜S !Ó$ñ+ó %ð+ð  
ˆ�‰�S˜" %Ô	(¨"¨r¨d°R·V±V°HØ�6‰6ˆ'�2—6‘6˜2Ÿ6™6Ð	" AØ�6‰6�3˜Ð
˜s C¨¯©Ð0°B·F±F°7¸A¸q°/Ð	Bð	D€Að ‡[�[×Ñ˜S !Ó$ñ+ó %ð+ð  ‡[�[×Ññ	 ó ð	 ð �S˜"˜bŸf™f b§f¡fÐ-€JØ˜t R§V¡V¨R¯V©VÐ4Ðà‡[�[×Ñ˜W jÓ1ñ:ó 2ð:ð ‡[�[×Ñ˜^Ð-=Ó>ñBó ?ðBòó62r(   ró  c            
       óR  — e Zd Z G d„ d«      Z G d„ d«      Z e«        e«       gZddej                  z  z  ddd	ej                  z  ej                  z  z  z
  gZd
dddej                  z  ej                  z  z  z
  dz
  gZ	ee	gZ
ej                  j                  d e eee
«      «      «      ej                  j                  dddg«      ej                  j                   d„ «       «       «       Zej                  j                  de«      d„ «       Zd„ Zej                  j+                  d«      ej                  j,                  ej                  j                  de«      d„ «       «       «       Zej                  j3                  d«      ej                  j+                  d«      ej                  j5                  d	«      d„ «       «       «       Zd„ Zddej:                  j=                  d«      gZejA                  ej:                  jC                  d«      «       d e"«       fddgZ#ej                  j                  de«      ej                  j                  de#«      ej                  j                   d „ «       «       «       Z$d!„ Z%d"„ Z& ejN                  d#d$d%¬&«      g g gejP                  gejR                   ejP                  ejR                  gdejP                  d'd(gd)d*ejR                  gg d+¢ggZ*ej                  j                  d,e*«      d-„ «       Z+ej                  jX                  d.„ «       Z-y)/ÚTestNumericalInverseHermitec                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ú!TestNumericalInverseHermite.dist0c                 ó`   — ddt        j                  dt         j                  z  |z  «      z   z  S )NrM  r   r   r  r#   s     r&   r'   z%TestNumericalInverseHermite.dist0.pdfÿ  s'   € Ø˜œRŸV™V B¤r§u¡u¡H¨Q¡JÓ/Ñ/Ñ0Ð0r(   c                 óv   — t         j                  t        j                  dt         j                  z  |z  «      z  S )Nr   r  r#   s     r&   r*   z&TestNumericalInverseHermite.dist0.dpdf  s&   € Ü—5‘5œŸ™ ¤2§5¡5¡¨¡
Ó+Ñ+Ð+r(   c                 ó¶   — ddt         j                  z  d|z   z  z   t        j                  dt         j                  z  |z  «      z
  dt         j                  z  z  S )Nr   r   r]   rÈ  r  r#   s     r&   r.   z%TestNumericalInverseHermite.dist0.cdf  sE   € Ø˜œBŸE™E™ 1 q¡5Ñ)Ñ)¬B¯F©F°2´b·e±e±8¸A±:Ó,>Ñ>À2ÄbÇeÁeÁ8ÑLÐLr(   c                  ó   — yr2  r3   r4  s    r&   rÃ   z)TestNumericalInverseHermite.dist0.support  r5  r(   Nr6  r3   r(   r&   r7  rn  þ  s   „ ò	1ò	,ò	Mó	r(   r7  c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ú!TestNumericalInverseHermite.dist1c                 ó  — |dk  r=t        j                  dt         j                  z  |z  «      dz  t         j                  z  S |dk  ry|dk  r=t        j                  dt         j                  z  |z  «      dz  t         j                  z  S y )Nr   r   rM  rX   r  r#   s     r&   r'   z%TestNumericalInverseHermite.dist1.pdf  ss   € Ø�T’	Ü—v‘v˜r¤B§E¡E™z¨QÑ.Ó/°#Ñ5¼¿¹Ñ=Ð=Ø�B’ØØ�S’Ü—v‘v˜r¤B§E¡E™z¨QÑ.Ó/°#Ñ5¼¿¹Ñ=Ð=ð r(   c                 óP  — |dk  rKt        j                  dt         j                  z  |z  «      t         j                  z  t         j                  z  S |dk  ry|dk  rKt        j                  dt         j                  z  |z  «      t         j                  z  t         j                  z  S y )Nr   r   rX   rM  ©r   r  r!   r#   s     r&   r*   z&TestNumericalInverseHermite.dist1.dpdf  s{   € Ø�T’	Ü—v‘v˜r¤B§E¡E™z¨QÑ.Ó/´"·%±%Ñ7¼"¿%¹%Ñ?Ð?Ø�B’ØØ�S’Ü—v‘v˜r¤B§E¡E™z¨QÑ.Ó/´"·%±%Ñ7¼"¿%¹%Ñ?Ð?ð r(   c                 óà   — |dk  r/ddt        j                  dt         j                  z  |z  «      z
  z  S |dk  ry|dk  r/ddt        j                  dt         j                  z  |z  «      z  z
  S y )Nr   ç      Ð?r]   r   rX   rM  r*  rw  r#   s     r&   r.   z%TestNumericalInverseHermite.dist1.cdf   sk   € Ø�T’	Ø˜q¤2§6¡6¨2´·±©:¸Ñ*:Ó#;Ñ;Ñ<Ð<Ø�B’ØØ�S’Ø˜d¤R§V¡V¨R´"·%±%©Z¸1Ñ,<Ó%=Ñ=Ñ=Ð=ð r(   c                  ó   — y)N)r3  rM  r3   r4  s    r&   rÃ   z)TestNumericalInverseHermite.dist1.support(  s   € Ør(   Nr6  r3   r(   r&   rD  rt    s   „ ò	>ò	@ò	>ó	r(   rD  r3  r^   r  r]   r°   g      Ð¿g      Ø?g      °?rZ  rJ  r_   r±   c                 ó:   — t        ||d¬«      }t        |||«       y )Nr^  )rJ  rq   )r
   rÀ   )r$   r4   r×   rJ  r|   s        r&   rc  z&TestNumericalInverseHermite.test_basic2  s   € ô
 & d°%ÀbÔIˆÜ˜3  eÕ,r(   ra   c                 ó†   — t        j                  ||¬«      5  t        t        «       |¬«       d d d «       y # 1 sw Y   y xY wrw  )rh   r   r
   r   rx  s       r&   ry  z0TestNumericalInverseHermite.test_inf_nan_domains<  s6   € ä�]‰]˜3 cÔ*ñ 	EÜ#¤NÓ$4¸VÕD÷	E÷ 	Eñ 	Eúrz  c           	      óž  — h d£}h d£}||v rt        j                  d«       ||v rt        j                  d«       t        j                  j                  d«      } t        t        |«      |Ž }t        |«      }|j	                  d«      }t        j                  t        j                  |j                  |«      |j                  |«      z
  «      t        j                  |j                  |«      «      z  «      }	t        j                  t        j                  |j                  |j                  |«      «      |z
  «      «      }
|	dk  sJ ‚|
dk  sJ ‚y )	N>   r  r  Úskewnormr  >   r#  ÚnctÚbetaÚwaldr  Úinvgaussr  r  ÚgeninvgaussÚnorminvgaussÚgenhyperbolicr  zDistribution is too slowz)Fails - usually due to inaccurate CDF/PDFr   r`   ç:Œ0âŽyE>r  )rh   rµ  r	  r   ru   r¾   rf   r   r
   ÚmaxrO  rÁ   r.   )r$   r¹  ÚshapesÚ
slow_distsr)  r|   r4   Úfnir%   Úp_tolÚu_tols              r&   Úbasic_test_all_scipy_distsz6TestNumericalInverseHermite.basic_test_all_scipy_distsA  s  € ÚBˆ
ò@ˆ
ð �zÑ!Ü�K‰KÐ2Ô3Ø�zÑ!ô �L‰LÐDÔEä�i‰i×#Ñ# AÓ&ˆà'Œw”u˜hÓ'¨Ð0ˆÜ% dÓ+ˆà�J‰J�r‹NˆÜ—‘”r—v‘v˜dŸh™h q›k¨#¯'©'°!«*Ñ4Ó5´b·f±f¸T¿X¹XÀa»[Ó6IÑIÓJˆÜ—‘”r—v‘v˜dŸh™h s§w¡w¨q£zÓ2°QÑ6Ó7Ó8ˆà�tŠ|Ðˆ|Ø�uŠ}Ð‰}r(   zignore::RuntimeWarning)r¹  rˆ  c                 ó(   — | j                  ||«       y r,   ©r�  )r$   r¹  rˆ  s      r&   r+  z6TestNumericalInverseHermite.test_basic_all_scipy_distsZ  s   € ð 	×'Ñ'¨°&Õ9r(   c                 ó(   — | j                  dd«       y )NÚ	truncnorm)rÑ   r^   r�  r4  s    r&   Útest_basic_truncnorm_gh17155z8TestNumericalInverseHermite.test_basic_truncnorm_gh17155b  s   € ð 	×'Ñ'¨°XÕ>r(   c                 óš  — d}t        j                  t        |¬«      5  t        t	        «       d¬«       d d d «       d}t        j                  t        |¬«      5  t        d«       d d d «       d}t        j                  t        |¬«      5  t        t	        «       d¬	«       d d d «       y # 1 sw Y   ŒvxY w# 1 sw Y   ŒQxY w# 1 sw Y   y xY w)
Nz"`order` must be either 1, 3, or 5.rc   r^   rL  z`cdf` required but not foundr½   z!could not convert string to floatÚekkir:  )rh   r   rŽ   r
   r   )r$   rd   s     r&   rö   z1TestNumericalInverseHermite.test_input_validationh  s¨   € Ø5ˆÜ�]‰]œ:¨UÔ3ñ 	?Ü#¤NÓ$4¸AÕ>÷	?ð /ˆÜ�]‰]œ:¨UÔ3ñ 	,Ü# FÔ+÷	,ð 4ˆÜ�]‰]œ:¨UÔ3ñ 	9Ü#¤NÓ$4Ø17õ9÷	9ð 	9÷	?ð 	?ú÷	,ð 	,ú÷	9ð 	9ús#   žB)ÁB5Â
CÂ)B2Â5B>ÃC
Nr   )é   )r•  )©r°   r±   é   r–  r|   rý   c                 ó&  — t        «       }t        |«      }t        |«      }|j                  ||¬«      }|�|j                  |k(  sJ ‚|�It        |«      }|j                  |¬«      }t        j                  j                  |«      }	t        ||	«       y y )N)r¯   rq   ©r¯   )r   r
   r   rt   r´   r   r  r   r½   rÁ   r   )
r$   r|   r  r  r4   rŠ  r{   rt   r  r~   s
             r&   Útest_RVSz$TestNumericalInverseHermite.test_RVSz  sŠ   € ô ÓˆÜ% dÓ+ˆä˜‹}ˆØ�g‰g˜7°ˆgÓ5ˆØÐØ—9‘9 Ò(Ð(Ð(àÐÜ% dÓ+ˆDØ—l‘l¨�lÓ0ˆGÜ—:‘:—>‘> 'Ó*ˆDÜ˜C Õ&ð	 r(   c                 óÜ   — d}d}t        j                  t        |¬«      5  t        t	        j
                  |Ž «       d d d «       t        t	        j
                  |Ž d¬«       y # 1 sw Y   Œ'xY w)N)g�µds’z@g@ø¯eä?zg98 : one or more intervals very short; possibly due to numerical problems with a pole or very flat tailrc   r†  r:  )rh   ræ   rç   r
   r   r€  )r$   rˆ  rd   s      r&   Útest_inaccurate_CDFz/TestNumericalInverseHermite.test_inaccurate_CDFŒ  s\   € ð :ˆðDˆô �\‰\œ.°Ô6ñ 	9Ü#¤E§J¡J°Ð$7Ô8÷	9ô 	 ¤§
¡
¨FÐ 3À$ÖG÷		9ð 	9ús    A"Á"A+c                 óÄ   — t        «       }t        |«      }t        j                  «       }t        |«      }t	        |j                  d¬«      |j                  d¬«      «       y )Nr   rs   )r   r
   r   r½   r   rt   )r$   rD  Úfni1rW  Úfni2s        r&   Útest_custom_distributionz4TestNumericalInverseHermite.test_custom_distributionš  sI   € ÜÓ ˆÜ& uÓ-ˆä—
‘
“ˆÜ& uÓ-ˆä˜Ÿ™¨a˜Ó0°$·(±(È°(Ó2JÕKr(   rX   r   r6  r·   rM  rÑ   rY   rZ   r‹  rÈ   c                 ó,  — t        «       }t        |d¬«      }t        j                  «       5  d}t        j                  d|dz   t
        «       t        j                  d|dz   t
        «       t        j                  d|dz   t
        «       t        j                  d|dz   t
        «       |j                  |«      }t        j                  j                  |«      }d d d «       t        d	d
¬«       |j                  |j                  k(  sJ ‚y # 1 sw Y   Œ4xY w)Nr  r:  rŽ  r]  r�  r�  r‘  r’  g•Ö&è.>gLÎaã§�ô=rÎ   )r   r
   r_  r`  r•  rç   rÁ   r   r½   r   r´   r<  s          r&   r=  z$TestNumericalInverseHermite.test_ppf²  sÝ   € äÓˆÜ% d¸Ô?ˆô ×$Ñ$Ó&ñ 	)Ø1ˆCÜ×#Ñ# H¨c°I©o¼~ÔNÜ×#Ñ# H¨c°OÑ.CÄ^ÔTÜ×#Ñ# H¨c°F©l¼NÔKÜ×#Ñ# H¨c°LÑ.@Ä.ÔQØ—'‘'˜!“*ˆCÜ—z‘z—~‘~ aÓ(ˆH÷	)ô 	˜˜X¨D°uÕ=Ø�y‰y˜HŸN™NÒ*Ð*Ñ*÷	)ð 	)úr?  c                 óV  — t        «       }t        |d¬«      }|j                  «       \  }}|dk  sJ ‚||k  sJ ‚t        j                  «       5  t        j
                  dt        «       t        |d¬«      }d d d «       |j                  «       \  }}|dk  sJ ‚||k  sJ ‚y # 1 sw Y   Œ+xY w)NrC  r:  r]  r9  )r   r
   rD  r_  r`  ra  rç   rE  s        r&   rH  z(TestNumericalInverseHermite.test_u_errorÃ  s¯   € äÓˆÜ% d¸Ô?ˆØŸ™›‰ˆ	�3Ø˜5Ò Ð Ð Ø�iÒÐÐÜ×$Ñ$Ó&ñ 	Dä×!Ñ! (¬NÔ;Ü)¨$¸UÔCˆC÷	Dð Ÿ™›‰ˆ	�3Ø˜5Ò Ð Ð Ø�iÒÐÑ÷	Dð 	Dús   Á(BÂB().r0   r1   r2   r7  rD  r¡  r   r!   r¢  r£  r¦  rh   r!  r"  r§  r¨  r#  rc  r¬  ry  r�  r•  rf  r   r+  Ú	fail_slowÚparallel_threads_limitr’  rö   ru   rv   ÚrngsÚappendr¾   r  r  rš  rœ  r   r¿   rI   rE   rÈ   r=  rh  rH  r3   r(   r&   rl  rl  ù  s  „ ÷
ñ ÷"ñ ñ8 ‹W‘e“gÐ€Eð ˆq�—‘‰w‰<˜˜q ! B§E¡E¡'¨"¯%©%¡-Ñ0Ñ0Ð
1€CØ��Q˜˜"Ÿ%™%™ §¡™Ñ&Ñ&¨Ñ-Ð
.€CØ�ˆ*€Cà‡[�[×Ñ˜]Ù!¡# e¨S£/Ó2ó4à‡[�[×Ñ˜W q¨! fÓ-Ø‡[�[×Ññ-ó ó .ó4ð-ð ‡[�[×ÑÐ/°ÓAñEó BðEòð2 ‡[�[×ÑÐ 8Ó9Ø‡[�[×ÑØ‡[�[×ÑÐ3°XÓ>ñ:ó ?ó ó :ð:ð
 ‡[�[×Ñ˜1ÓØ‡[�[×ÑÐ 8Ó9Ø‡[�[×'Ñ'¨Ó*ñ?ó +ó :ó ð?ò9ð �!�R—Y‘Y×*Ñ*¨1Ó-Ð.€DØ‡K�K�—	‘	×%Ñ% aÓ(Ô)Ø‘E“Gˆ_˜iÐ)?Ð@€Eà‡[�[×Ñ˜U DÓ)Ø‡[�[×ÑÐ0°%Ó8Ø‡[�[×Ññ'ó ó 9ó *ð'òHòLð 	ˆ�‰�B˜ Ô&à
ˆRˆDà	�‰ˆ�B—F‘F�7˜BŸF™F B§F¡FÐ+à	ð �&‰&�#�sÐ	˜c 3¨¯©Ð/²Ð<ð	€Að ‡[�[×Ñ˜S !Ó$ñ+ó %ð+ð  ‡[�[×Ññ ó ñ r(   rl  c            
       óÒ  — e Zd Zh d£Zd„ Zd„ Zd„ Zej                  j                  de
«      d„ «       Z ej                  ddd	¬
«      g g gej                  gej                   ej                  ej                  gdej                  ddgddej                  gg d¢ggZej                  j                  de«      d„ «       Zej                  j                  de«      d„ «       Zej                   ej                  fej                  ej                  fej                   ej                   fdej                  fej                   dfgZej                  j                  de«      d„ «       Zy)ÚTestDiscreteGuideTable>   r¯  r°  r±  c                 óÀ   — g d¢}t         j                  j                  «       }t        j                  t
        «      5  t        ||d¬«       d d d «       y # 1 sw Y   y xY w)N©rÑ   g333333Ó?g333333ã?é   ©rq   Úguide_factor©r   ru   r¾   rh   ræ   rç   r   ©r$   rÉ   rÇ   s      r&   Ú$test_guide_factor_gt3_raises_warningz;TestDiscreteGuideTable.test_guide_factor_gt3_raises_warningÚ  óJ   € ÚˆÜ�y‰y×$Ñ$Ó&ˆÜ�\‰\œ.Ó)ñ 	FÜ˜r°À1ÕE÷	F÷ 	Fñ 	Fúó   ¼AÁAc                 óÀ   — g d¢}t         j                  j                  «       }t        j                  t
        «      5  t        ||d¬«       d d d «       y # 1 sw Y   y xY w)Nrª  r   r¬  r®  r¯  s      r&   Ú%test_guide_factor_zero_raises_warningz<TestDiscreteGuideTable.test_guide_factor_zero_raises_warningà  r±  r²  c                 óÀ   — g d¢}t         j                  j                  «       }t        j                  t
        «      5  t        ||d¬«       d d d «       y # 1 sw Y   y xY w)Nrª  r3  r¬  r®  r¯  s      r&   Ú)test_negative_guide_factor_raises_warningz@TestDiscreteGuideTable.test_negative_guide_factor_raises_warningæ  sL   € ò ˆÜ�y‰y×$Ñ$Ó&ˆÜ�\‰\œ.Ó)ñ 	GÜ˜r°À2ÕF÷	G÷ 	Gñ 	Gúr²  r²  c                 óÚ  — || j                   v rd}t        j                  |«       t        |t        «      s|}nt        t        |«      } ||Ž }|j                  «       }t        j                  |d   |d   z
  «      st        j                  d«       t        j                  |d   |d   dz   «      }|j                  |«      }|j                  d«      }t        |d¬«      }	t        |	||«       y )NzYDGT fails on these probably because of large domains and small computation errors in PMF.r]   r   z$DGT only works with a finite domain.rØ   r^  rs   )r´  rh   rµ  r¶  r·  rf   r   rÃ   r   rÔ   rÅ   rÄ   r   rÆ   r¸  s
             r&   rc  z!TestDiscreteGuideTable.test_basicï  sÉ   € à�t×,Ñ,Ñ,ð:ˆCä�K‰K˜Ôä˜(¤CÔ(Ø‰Däœ5 (Ó+ˆDá�Vˆ}ˆØ—‘“ˆä�{‰{˜6 !™9 v¨a¡yÑ0Ô1ô �K‰KÐ>Ô?ä�I‰I�f˜Q‘i ¨¡¨1¡Ó-ˆØ�X‰X�a‹[ˆØ—
‘
˜4Ó ˆÜ  °BÔ7ˆÜ˜C  UÕ+r(   r   r]   r6  r·   rM  rÑ   rY   rZ   r‹  rÈ   c                 óV  — d\  }}t        j                  ||«      }t        |d¬«      }t        j                  «       5  d}t        j
                  d|dz   t        «       t        j
                  d|dz   t        «       t        j
                  d|dz   t        «       t        j
                  d|d	z   t        «       |j                  |«      }t         j                  j                  |||«      }d d d «       t        j                  j                  «       t        ||«       y # 1 sw Y   Œ6xY w)
N)r°   rÑ   r^  rs   rŽ  r]  r�  r�  r‘  r’  )
r   rÂ   r   r_  r`  r•  rç   rÁ   r   r´   )	r$   rÈ   ÚnÚpr4   r|   rj   r—  r˜  s	            r&   r=  zTestDiscreteGuideTable.test_ppf  sê   € à‰ˆˆ1Ü�{‰{˜1˜aÓ ˆÜ  °BÔ7ˆô ×$Ñ$Ó&ñ 	0Ø1ˆCÜ×#Ñ# H¨c°I©o¼~ÔNÜ×#Ñ# H¨c°OÑ.CÄ^ÔTÜ×#Ñ# H¨c°F©l¼NÔKÜ×#Ñ# H¨c°LÑ.@Ä.ÔQØ—'‘'˜!“*ˆCÜ—{‘{—‘ q¨!¨QÓ/ˆH÷	0ô 	�S—Y‘Y §¡Ô/Ü�S˜(Õ#÷	0ð 	0ús   ½B-DÄD(rÕ  c                 óz   — t        j                  t        |¬«      5  t        |«       d d d «       y # 1 sw Y   y xY wr×  )rh   r   rŽ   r   rÙ  s      r&   rÚ  z"TestDiscreteGuideTable.test_bad_pv*  s-   € ä�]‰]œ:¨SÔ1ñ 	#Ü˜rÔ"÷	#÷ 	#ñ 	#úrÛ  re   c                 ó¦   — t        j                  t        d¬«      5  t        t	        j
                  dd«      |¬«       d d d «       y # 1 sw Y   y xY wrÝ  )rh   r   rŽ   r   r   rÂ   rÞ  s     r&   rß  z&TestDiscreteGuideTable.test_inf_domain4  s?   € ä�]‰]œ:Ð->Ô?ñ 	DÜœuŸ{™{¨2¨sÓ3¸FÕC÷	D÷ 	Dñ 	Dúrà  N)r0   r1   r2   r´  r°  r´  r¶  rh   r!  r"  r   rc  r   r¿   rI   rE   rÈ   r=  rð  rÚ  rñ  rß  r3   r(   r&   r¨  r¨  Ó  sn  „ òÐòFòFòGð ‡[�[×ÑÐ/°Ó>ñ,ó ?ð,ð6 	ˆ�‰�A�q˜eÔ$à
ˆRˆDà	�‰ˆ�B—F‘F�7˜BŸF™F B§F¡FÐ+à	ð �&‰&�#�sÐ	˜c 3¨¯©Ð/²Ð<ð	€Að ‡[�[×Ñ˜S !Ó$ñ$ó %ð$ð$ ‡[�[×Ñ˜Y¨Ó6ñ#ó 7ð#ð —F‘F�7˜BŸF™FÐ# b§f¡f¨b¯f©fÐ%5¸¿¹¸À"Ç&Á&ÀÐ7IØ�b—f‘f�+ §¡ ¨˜|ð-€Jð ‡[�[×Ñ˜X zÓ2ñDó 3ñDr(   r¨  c            	       óZ  — e Zd Z G d„ d«      Z ed«       ed«      gZdej                  gZdej                  gZeegZ	e
j                  j                  d e eee	«      «      «      e
j                  j                  d„ «       «       Ze
j                  j                  de«      d„ «       Zd	„ Zy
)ÚTestSimpleRatioUniformsc                   ó   — e Zd Zd„ Zd„ Zd„ Zy)úTestSimpleRatioUniforms.distc                 ó    — || _         || _        y r,   )rI  r8   rJ  s     r&   rŒ   z%TestSimpleRatioUniforms.dist.__init__?  s   € ØˆDŒJØˆD�Ir(   c                 óR   — || j                   z  }dt        |«      dz   z  }d|z  |z  S rL  rN  rP  s      r&   r'   z TestSimpleRatioUniforms.dist.pdfC  rR  r(   c                 óP   — || j                   z  }|dk  rdd|z
  z  S ddd|z   z  z
  S rU  rH  r#   s     r&   r.   z TestSimpleRatioUniforms.dist.cdfH  rV  r(   N)r0   r1   r2   rŒ   r'   r.   r3   r(   r&   r4   rÀ  >  s   „ ò	ò	ó
	+r(   r4   rX   rX  rZ  c                 óÌ   — t        ||j                  d¬«      }t        |||«       t        ||j                  |j                  |j                  «      d¬«      }t        |||«       y )Nr^  )r8   rq   )r8   Úcdf_at_moderq   )r   r8   rÀ   r.   rb  s       r&   rc  z"TestSimpleRatioUniforms.test_basicV  sU   € ô " $¨T¯Y©YÀRÔHˆÜ˜3  eÔ,Ü! $¨T¯Y©YØ.2¯h©h°t·y±yÓ.AØ/1ô3ˆô 	˜3  eÕ,r(   ra   c                 ó†   — t        j                  ||¬«      5  t        t        «       |¬«       d d d «       y # 1 sw Y   y xY wrw  )rh   r   r   r   rx  s       r&   ry  z,TestSimpleRatioUniforms.test_inf_nan_domainsc  s6   € ä�]‰]˜3 cÔ*ñ 	AÜ¤Ó 0¸Õ@÷	A÷ 	Añ 	Aúrz  c                 ó�   — t        j                  t        d¬«      5  t        t	        «       dd¬«       d d d «       y # 1 sw Y   y xY w)Nz`pdf_area` must be > 0rc   r   r3  )r8   Úpdf_area)rh   r   rŽ   r   r   r4  s    r&   rè  z%TestSimpleRatioUniforms.test_bad_argsh  s9   € ä�]‰]œ:Ð-FÔGñ 	GÜ¤Ó 0°qÀ2ÕF÷	G÷ 	Gñ 	Gús	   œ<¼AN)r0   r1   r2   r4   r¡  r   rE   r£  r¤  r¦  rh   r!  r"  r§  r¨  r#  rc  r¬  ry  rè  r3   r(   r&   r¾  r¾  :  s¸   „ ÷+ñ +ñ" �"‹X‘t˜F“|Ð$€Eð ˆr�v‰vˆ,€CØ�2—6‘6Ð
€CØ�ˆ*€Cà‡[�[×Ñ˜]Ù!¡# e¨S£/Ó2ó4à‡[�[×Ññ-ó ó4ð-ð ‡[�[×ÑÐ/°ÓAñAó BðAóGr(   r¾  c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚTestRatioUniformsc           	      ó:  — t         j                  j                  }t        j                   |t        j                  d«      «      «      t        j                  d«      z  }t        j                   |d«      «      }t        ||| |d¬«      }t        t        j                  |j                  d«      d«      d   dkD  d	«       t        d
„ dddt        j                  d«      z  d¬«      }t        t        j                  |j                  d«      d«      d   dkD  d	«       y )Nr^   r   i90  ©ÚumaxÚvminÚvmaxrq   iÄ	  r½   r]   ry  Tc                 ó.   — t        j                  |  «      S r,   rY  r:   s    r&   r;   z6TestRatioUniforms.test_rv_generation.<locals>.<lambda>y  s   € ¤b§f¡f¨a¨R£j€ r(   r3  rŠ  Úexpon)
r   r½   r'   r   r    r   r   Úkstestrt   r"   )r$   ÚfÚvrÈ   rõ   s        r&   Útest_rv_generationz$TestRatioUniforms.test_rv_generationo  sÐ   € ô �J‰J�N‰NˆÜ�G‰G‘A”b—g‘g˜a“j“MÓ"¤R§W¡W¨Q£ZÑ/ˆÜ�G‰G‘A�a“D‹MˆÜ˜A A¨Q¨B°QÀUÔKˆÜ”U—\‘\ #§'¡'¨$£-°Ó8¸Ñ;¸dÑBÀDÔIô Ñ0°qØ!"¨¬2¯6©6°"«:©ÀEôKˆä”U—\‘\ #§'¡'¨$£-°Ó9¸!Ñ<¸tÑCÀTÕJr(   c                 óL  — t         j                  j                  }t        j                   |t        j                  d«      «      «      t        j                  d«      z  }t        j                   |d«      «      }t        ||| |d¬«      }t        ||| |d¬«      }t        ||| |d¬«      }|j                  d«      |j                  d«      |j                  d«      }	}}t        ||«       t        ||	j                  «       «       t        |j                  d«       t        |	j                  d«       t        ||| |d¬«      }
t        ||| |d¬«      }|
j                  d	¬
«      |j                  d¬
«      }}t        |j                  «       |«       t        |j                  d	«       t        ||| |d¬«      }t        ||| |d¬«      }t        ||| |d¬«      }|j                  «       |j                  d«      |j                  d«      }}}t        ||«       t        ||«       y )Nr^   r   éÒ  rÌ  r_   rû   )r_   r]   r”   )r_   r_   r_   r™  é   r]   rø   )
r   r½   r'   r   r    r   rt   r   Úflattenr´   )r$   rÓ  rÔ  rÈ   Úgen1Úgen2Úgen3Úr1Úr2Úr3Úgen4Úgen5Úr4Úr5Úgen6Úgen7Úgen8Úr6Úr7Úr8s                       r&   Ú
test_shapezTestRatioUniforms.test_shape}  s·  € ä�J‰J�N‰NˆÜ�G‰G‘A”b—g‘g˜a“j“MÓ"¤R§W¡W¨Q£ZÑ/ˆÜ�G‰G‘A�a“D‹Mˆä˜Q Q¨a¨R°aÀdÔKˆÜ˜Q Q¨a¨R°aÀdÔKˆÜ˜Q Q¨a¨R°aÀdÔKˆØ—X‘X˜a“[ $§(¡(¨4£.°$·(±(¸6Ó2B�ˆBˆÜ�R˜ÔÜ�R˜Ÿ™›Ô&Ü�R—X‘X˜tÔ$Ü�R—X‘X˜vÔ&ä˜Q Q¨a¨R°aÀbÔIˆÜ˜Q Q¨a¨R°aÀbÔIˆØ—‘˜y�Ó)¨4¯8©8¸¨8Ó+<ˆBˆÜ�R—Z‘Z“\ 2Ô&Ü�R—X‘X˜yÔ)ä˜Q Q¨a¨R°aÀdÔKˆÜ˜Q Q¨a¨R°aÀdÔKˆÜ˜Q Q¨a¨R°aÀdÔKˆØ—X‘X“Z §¡¨!£¨d¯h©h°t«n�ˆBˆÜ�R˜ÔÜ�R˜Õr(   c                 óÔ  — t         j                  j                  }t        j                   |t        j                  d«      «      «      t        j                  d«      z  }t        j                   |d«      «      }t        ||| |d¬«      }|j                  d«      }t        j                  j                  d«      }t        ||| ||¬«      }|j                  d«      }t        ||«       y )Nr^   r   r×  rÌ  r`   )
r   r½   r'   r   r    r   rt   ru   rv   r   )	r$   rÓ  rÔ  rÍ  rÚ  rÝ  r|   rÛ  rÞ  s	            r&   r�   z#TestRatioUniforms.test_random_state™  s§   € Ü�J‰J�N‰NˆÜ�G‰G‘A”b—g‘g˜a“j“MÓ"¤R§W¡W¨Q£ZÑ/ˆÜ�w‰w‘q˜“t‹}ˆÜ˜Q T°°¸ÈÔNˆØ�X‰X�b‹\ˆÜ�i‰i×#Ñ# DÓ)ˆÜ˜Q T°°¸ÈÔMˆØ�X‰X�b‹\ˆÜ�R˜Õr(   c                 óà  — t         j                  j                  }t        t        d¬«      5  t        |ddd¬«       d d d «       t        t        d¬«      5  t        |ddd¬«       d d d «       t        t        d¬«      5  t        |ddd¬«       d d d «       t        t        d¬«      5  t        |ddd¬«       d d d «       y # 1 sw Y   Œ…xY w# 1 sw Y   ŒhxY w# 1 sw Y   ŒKxY w# 1 sw Y   y xY w)	Nzvmin must be smaller than vmaxrc   r]   r_   )r'   rÍ  rÎ  rÏ  zumax must be positiver3  r   )r   r½   r'   Úassert_raisesrŽ   r   )r$   rÓ  s     r&   Útest_exceptionsz!TestRatioUniforms.test_exceptions¤  sÎ   € Ü�J‰J�N‰Nˆäœ:Ð-MÔNñ 	9Ü˜a a¨a°aÕ8÷	9äœ:Ð-MÔNñ 	9Ü˜a a¨a°aÕ8÷	9ô œ:Ð-DÔEñ 	:Ü˜a b¨q°qÕ9÷	:äœ:Ð-DÔEñ 	9Ü˜a a¨a°aÕ8÷	9ð 	9÷	9ð 	9ú÷	9ð 	9ú÷	:ð 	:ú÷	9ð 	9ús/   ¬C ÁCÁ>CÂ'C$Ã C	ÃCÃC!Ã$C-N)r0   r1   r2   rÕ  rê  r�   rî  r3   r(   r&   rÊ  rÊ  n  s   „ òKòò8	ó9r(   rÊ  )gH¯¼šò×z>rÑ   )r“  rÑ   )Lr¢   rª   rh   Úcopyr   r  r  r`  r_  Únumpyr   Únumpy.testingr   r   Úscipy.stats.samplingr   r   r   r	   r
   r   r   r   r   rí  Úscipyr   r   Úscipy.statsr   r   Úscipy.stats._distr_paramsr   r   Úscipy._lib._utilr   Úscipy._lib._gcutilsr   r   Úall_methodsÚfloaterrrî  rí  rª  r«  rg  rI   rE   rð  rŽ   Úbad_sized_domainsÚbad_domainsr¬  Únan_domainsr!  r"  rn   r�   r„   r¨   r®   rµ   rÊ   rÌ   rÀ   rÆ   rè   rê   rì   r%  r®  ró  rl  r¨  r¾  rÊ  r3   r(   r&   ú<module>rý     s•  ðÛ Û Û Ý Û Û 
Û Û ã ß 7÷	÷ 	ó 	õ +Ý Ý ß 1ß <Ý /Ý 2÷	ñ 	ð # V©^Ó-=Ð$>Ð?Ø˜&Ò"3Ð4Ð5Ø˜FÒ$5Ð6Ð7Ø! F©NÓ,<Ð#=Ð>Ø ©Ó)9Ð :Ð;Ø¡^Ó%5¸qÑAÐBð€ð ,€ñ �; Ð'á�9˜hÐ'á�IÐ;Ð<á�{ FÐ+á�{ FÐ+á�)ÐLÐMð€ñ& �{ FÐ+á�{ FÐ+á�9˜hÐ'á�IÐ;Ð<á�)ÐLÐMð€ñ" �9˜hÐ'á�IÐ;Ð<á�{ FÐ+á�{ FÐ+á�)ÐLÐMðÐ ð Ð	-Ð.Ø
ˆC€j€\ÐFÐGØ	ˆ3�—‘˜ÐÐJÐKØ	ˆ3�—‘˜ÐÐJÐKØ	ˆ3€ZÐ<Ð=ð€ð �
Ð7Ð8àˆÐ0Ð1ð	Ð ð ˆ[Ð*Ð+Øˆ[Ð*Ð+ð€ð ˆ{Ð,Ð-Ø‡f�fˆb�f‰fÐ�{Ð$4Ð5Ø	‡v�v€g�—‘ˆwÐ˜Ð&6Ð7Ø‡f�fˆr�v‰vˆgÐ˜Ð%5Ð6à	‡v�v€gˆr�v‰vÐ˜
Ð$:Ð;Ø‡f�fˆb�f‰fÐ�zÐ#9Ð:ð	€ð ˆ�‰€[�*Ð4Ð5Ø‡f�fˆb�f‰fÐ�zÐ#9Ð:ð€ð ‡�×ÑÐ+Ø$Ð'8Ñ8Ø$ñ%ó&ð ‡�×ÑÐ)¨;Ó7ñ(ó 8ó&ð(ð ‡�×ÑÐ)¨;Ó7ñ/ó 8ð/ò8	ò.#ðb ‡�×ÑÐ)¨;Ó7ñ/ó 8ð/ð ‡�×Ñ˜ò "2ó 3ñ	+ó3ð	+ò/ò*ó
óò Dð ‡�×Ñ˜ò $Có Dñ8óDð8ð ‡�×Ñ˜Ð$=Ø$@ð$Bó C÷Y9ð Y9óCðY9÷x{.ñ {.÷|r'ñ r'÷j~2ñ ~2÷BW ñ W ÷tdDñ dD÷N1Gñ 1G÷hA9ò A9r(   