Ë
    qw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#  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%ejL                  jN                  dk(  rejL                  jP                  dk  rdZ)n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d0fd1d2e
j^                  d3gd4fd1d2e
j`                  d3gd4fd/d/gd5fgZ1d6e2d7fd8e2d7fgZ3d9ed:fd;ed:fgZ4d<ed:fe
j`                  e
j`                  fed:fe
j`                   e
j`                   fed:fe
j`                  e
j`                   fed:fe
j`                   e
j^                  fe2d=fe
j^                  e
j`                  fe2d=fgZ5d e
j^                  fe2d=fe
j^                  e
j^                  fe2d=fgZ6ejn                  jq                  d>e4e3z   e6z   «      ejn                  jq                  d?e%«      d@„ «       «       Z9ejn                  jq                  d?e%«      dA„ «       Z:dB„ Z;dC„ Z<ejn                  jq                  d?e%«      dD„ «       Z=ejn                  jq                  dEg dF¢«      dG„ «       Z>dH„ Z?d_dI„Z@d`dJ„ZAdK„ ZBejn                  jq                  dLg dM¢«      dN„ «       ZCejn                  jq                  dLddg«       G dO„ dP«      «       ZD G dQ„ dR«      ZE G dS„ dT«      ZF G dU„ dV«      ZG G dW„ dX«      ZH G dY„ dZ«      ZI G d[„ d\«      ZJ G d]„ d^«      ZKy)aé    N)Údeepcopy)Úassert_allcloseÚassert_equal)ÚTransformedDensityRejectionÚDiscreteAliasUrnÚDiscreteGuideTableÚNumericalInversePolynomialÚNumericalInverseHermiteÚRatioUniformsÚSimpleRatioUniformsÚUNURANError)Úraises)Ústats)Úspecial)Ú	chisquareÚcramervonmises)ÚdistdiscreteÚdistcont)Úcheck_random_statec                   ó   — 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     úd/var/www/html/newmanjeet/manjet/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   )r3   ÚmodeÚpypy)é   é   é
   z.unsupported operand type for float\(\): 'list'zmust be real number, not listc                 ó   — |  S r+   r2   ©r$   s    r%   Ú<lambda>r>   B   s   € �‰rr'   z...c                 ó   — g S r+   r2   r=   s    r%   r>   r>   D   ó   € ‰rr'   c                 ó   — t         S r+   ©Úfoor=   s    r%   r>   r>   F   ó   € �sr'   úname 'foo' is not definedc                 ó"   — t         j                  S r+   ©r   Úinfr=   s    r%   r>   r>   H   ó   € Œr�vŠvr'   c                 ó"   — t         j                  S r+   ©r   Únanr=   s    r%   r>   r>   J   rI   r'   c                   ó   — y©Nr   r2   r2   r'   r%   r>   r>   L   ó   € ˆSr'   ú,takes 0 positional arguments but 1 was givenc                 ó"   — t         j                  S r+   rG   r=   s    r%   r>   r>   S   rI   r'   c                 ó"   — t         j                  S r+   rK   r=   s    r%   r>   r>   U   rI   r'   c                 ó   — g S r+   r2   r=   s    r%   r>   r>   W   r@   r'   c                 ó   — t         S r+   rB   r=   s    r%   r>   r>   Y   rD   r'   c                   ó   — yrN   r2   r2   r'   r%   r>   r>   [   rO   r'   c                 ó   — g S r+   r2   r=   s    r%   r>   r>   b   r@   r'   c                 ó   — t         S r+   rB   r=   s    r%   r>   r>   d   rD   r'   c                 ó"   — t         j                  S r+   rG   r=   s    r%   r>   r>   f   rI   r'   c                 ó"   — t         j                  S r+   rK   r=   s    r%   r>   r>   h   rI   r'   c                   ó   — yrN   r2   r2   r'   r%   r>   r>   j   rO   r'   z!must contain at least one elementr   ç        z0wrong number of dimensions \(expected 1, got 2\)çš™™™™™É?çš™™™™™Ù?r6   ú)must contain only finite / non-nan valuesú(must contain at least one non-zero value)é   é   r:   zmust be a length 2 tupler2   )ra   r`   zleft >= right)r`   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Údomainr2   )Úgetattrr   ÚsamplingÚpytestr   )rf   ÚerrÚmsgÚmethodÚkwargsÚMethods         r%   Útest_bad_domainro   ›   s>   € ô
 ”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   ©rr   r2   )rg   r   rh   r   Úrvsr   ÚrandomÚRandomStateÚseedÚMT19937Ú	Generator)rl   rm   rn   rx   Ú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 )Nrq   rt   rs   )r   r   Úset_random_stater   ru   )r{   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`   r2   r"   s     r%   r)   z3test_threading_behaviour.<locals>.Distribution.dpdfÝ   s   € Ør'   N)r/   r0   r1   r�   r&   r)   r2   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)NrC   ©r;   rs   é   ©rf   rr   é † r   r‡   ©r   ru   r�   Úargs©r3   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”   ra   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‡   rC   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 )Nrr   rq   rs   r2   )rg   r   rh   ÚpickleÚdumpsÚloadsr   ru   )rl   rm   rn   r{   Úobjr|   s         r%   Útest_pickler¯   ÿ   sZ   € ä”U—^‘^ VÓ,€FÙÑ-�FÑ-¨Ò-€DÜ
�,‰,�tÓ
€CÜ�<‰<˜Ó€DÜ�—‘˜#“ §¡¨£Õ.r'   Úsize)Nr   )r   r`   )r;   r:   )ra   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   Úisscalarru   Ú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   rt   r`   rs   ©Únumç      $@ç      @)ÚlocÚscaler;   r\   )r   Únormr   rv   Údefault_rngr
   ÚlinspaceÚcheck_cont_samplesr   ÚppfÚbinomr   ÚsupportÚpmfÚarangeÚcheck_discr_samples)r3   Úurngr}   Úurf   Ú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                 ó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ô  çš™™™™™¹?)
ru   ÚmeanÚvarr   Úisfiniter   Ú	vectorizer-   r   Úpvalue)r}   r3   Úmv_exrÎ   rÏ   ru   ÚmvÚpvals           r%   rÁ   rÁ   +  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Ð   )ru   rÑ   rÒ   r   Úsumr   Ú
zeros_likeÚuniquer°   r   rÕ   )r}   rÊ   rÖ   rÎ   rÏ   ru   r×   Ú	obs_freqsÚ_ÚfreqsrØ   s              r%   rÇ   rÇ   8  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 distributionrd   r   ©r:   r²   )Úcenterrf   ©rf   )ri   ÚwarnsÚRuntimeWarningr	   r   )rk   s    r%   Ú!test_warning_center_not_in_domainrç   H  s^   € ð ;€CÜ	�‰”n¨CÖ	0Ü"¤>Ó#3¸AÀfÕM÷ 
1ä	�‰”n¨CÖ	0Ü"¤>Ó#3¸FÕC÷ 
1Ð	0÷ 
1Ð	0úç	0Ð	0ús   žA7ÁBÁ7B ÂBrl   )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 domainrd   r   râ   )r7   rf   )rg   r   rh   ri   r   r   r   )rl   rn   rk   s      r%   Útest_error_mode_not_in_domainré   R  sB   € ô ”U—^‘^ VÓ,€FØ
#€CÜ	�‰”{¨#Ö	.ÙŒ~Ó a°Õ7÷ 
/×	.Ñ	.ú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...rd   r   )Ú
qmc_engineú6`d` must be consistent with dimension of `qmc_engine`.r:   ra   ©Údrí   )
ri   r   r�   rg   r   rh   r   ÚqrvsÚqmcÚHalton)r#   rl   re   rn   Úgens        r%   Útest_input_validationzTestQRVS.test_input_validationc  s°   € Ø8ˆÜ�]‰]œ:¨UÖ3ÜœUŸ^™^¨VÓ4ˆFÙœÓ)Ó*ˆCØ�H‰H ˆHÔ"÷ 4ô œŸ™¨Ó0ˆÙ”^Ó%Ó&ˆàHˆÜ�]‰]œ:¨UÖ3Ø�H‰H�q¤U§Y¡Y×%5Ñ%5°aÓ%8ˆHÔ9÷ 4Ð3÷ 4Ð3ú÷ 4Ð3ús   ž=C$Â*1C0Ã$C-Ã0C9Nr`   r   ©rx   r:   )r`   ©r`   )r±   ©r±   )rø   rø   )©ra   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î   rd   rï   r`   ©r°   rð   rí   çê-�™—q=©rÏ   )ÚsysÚplatformÚarchitectureri   Úxfailr   rg   r   rh   rð   r   r�   rñ   r   rµ   rv   r   Úprodr¾   rÂ   Úreshaper   )r#   rû   Úsize_inÚsize_outÚd_inÚd_outrl   Úw32r3   rn   rô   re   Úshape_expectedÚqrng2rñ   ÚuniformÚqrvs2s                    r%   Útest_QRVS_shape_consistencyz$TestQRVS.test_QRVS_shape_consistencyy  sf  € ô �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�Ô:÷ 8àð ˆ<˜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ð ÷ 8àú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   rg   r   rh   rò   ró   rv   r   r	  rñ   r¾   rÂ   Úranger
  r   )r#   rl   r3   rn   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–ˆAØ˜#˜q˜&‘\ˆFØšA˜q˜D‘k×)Ñ)¨$Ó/ˆGÜ˜F G°%Ö8ñ r'   )r/   r0   r1   rõ   r   rò   ÚSobolró   ÚqrngsÚtupleÚsizesÚdsri   ÚmarkÚparametrizeÚthread_unsafer  r  r2   r'   r%   rë   rë   `  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            
       ó(  — 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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	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"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`   r2   r"   s     r%   r&   z)TestTransformedDensityRejection.dist0.pdfÁ  ó   € Ø˜!˜A˜a™C™%‘=Ð r'   c                 ó   — dd|z  z  S )Nr)  éþÿÿÿr2   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å?r2   r"   s     r%   r-   z)TestTransformedDensityRejection.dist0.cdfÇ  ó   € Ø˜!˜a ™d 1™f™* sÑ*Ñ+Ð+r'   c                  ó   — y©N)éÿÿÿÿr`   r2   ©r#   s    r%   rÄ   z-TestTransformedDensityRejection.dist0.supportÊ  ó   € Ør'   N©r/   r0   r1   r&   r)   r-   rÄ   r2   r'   r%   Údist0r&  À  s   „ ò	!ò	 ò	,ó	r'   r6  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.   r2   r'   r%   Údist1r8  Î  s   „ ò	,ò	8ó	,r'   rC  c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ú%TestTransformedDensityRejection.dist2c                 ó   — || _         y r+   ©Úshift©r#   rH  s     r%   r�   z.TestTransformedDensityRejection.dist2.__init__Ü  s	   € ØˆD�Jr'   c                 óR   — || j                   z  }dt        |«      dz   z  }d|z  |z  S ©Nr   ç      à?©rH  Ú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   r[   rM  rO  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 ©Nr[   rL  r   rG  r"   s     r%   r-   z)TestTransformedDensityRejection.dist2.cdfê  ó7   € Ø�—‘‰OˆAØ�BŠwØ˜b 1™f‘~Ð%à˜C 2¨¡6™NÑ*Ð*r'   N)r/   r0   r1   r�   r&   r)   r-   r2   r'   r%   Údist2rE  Û  s   „ ò	ò	ò
	)ó	+r'   rV  r[   ç     ˆÃ@çÑ?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é*   rt   )ÚwarningsÚcatch_warningsÚsimplefilterræ   r   rÁ   ©r#   r3   rÖ   r}   s       r%   Ú
test_basicz*TestTransformedDensityRejection.test_basicú  sH   € ô ×$Ñ$Õ&ä×!Ñ! (¬NÔ;Ü-¨dÀÔDˆC÷ 'ô 	˜3  eÕ,÷	 'Ð&ús   •(AÁAc                  ó   — y)Nr   r2   r=   s    r%   r>   z(TestTransformedDensityRejection.<lambda>  s   € ˜1r'   ú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©r/   r0   r1   r2   r'   r%   r3   rh  
  ó   „ Ør'   r3   c                  ó   — yr‘   r2   r=   s    r%   r>   z>TestTransformedDensityRejection.test_bad_pdf.<locals>.<lambda>  s   € ˜ar'   rd   ©r&   r)   ri   r   r   ©r#   r&   rj   rk   r3   s        r%   Útest_bad_pdfz,TestTransformedDensityRejection.test_bad_pdf  s<   € ÷	ñ 	àˆŒÙˆŒ	Ü�]‰]˜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>.distNri  r2   r'   r%   r3   rq    rj  r'   r3   c                 ó   — | S r+   r2   r=   s    r%   r>   z?TestTransformedDensityRejection.test_bad_dpdf.<locals>.<lambda>  s   € ™Qr'   rd   ©r`   r;   rä   rl  )r#   r)   rj   rk   r3   s        r%   Útest_bad_dpdfz-TestTransformedDensityRejection.test_bad_dpdf  s>   € ÷	ñ 	áˆŒØˆŒ	Ü�]‰]˜3 cÖ*Ü'¨°WÕ=÷ +×*Ñ*ús   ±AÁArb   c                 ó†   — t        j                  ||¬«      5  t        t        «       |¬«       d d d «       y # 1 sw Y   y xY w©Nrd   rä   )ri   r   r   r   ©r#   rf   rj   rk   s       r%   Útest_inf_nan_domainsz4TestTransformedDensityRejection.test_inf_nan_domains  s)   € ä�]‰]˜3 cÖ*Ü'¬Ó(8ÀÕH÷ +×*Ñ*úó	   ˜7·A Úconstruction_points)r2  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.rd   ©rz  ©ri   r   r�   r   r   ©r#   rz  s     r%   Ú#test_bad_construction_points_scalarzCTestTransformedDensityRejection.test_bad_construction_points_scalar!  s;   € ä�]‰]œ:ð .Dö Eä'ÜÓ Ð6Iõ÷E÷ Eñ Eú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.rd   r|  )r`   r`   r`   r`   r`   r`   z:33 : starting points not strictly monotonically increasingrd  éöÿÿÿr;   z!50 : starting point out of domain)éýÿÿÿr:   )rf   rz  )
ri   r   r�   r   r   rå   ræ   r   rL   r   r~  s     r%   Ú"test_bad_construction_points_arrayzBTestTransformedDensityRejection.test_bad_construction_points_array)  s  € à ÐÜ�]‰]œ:ð .Mö Nô (ÜÓ Ð6Iõ÷Nò 1ÐÜ�\‰\œ.ð 1>ö ?ô (ÜÓ Ð6Iõ÷?ô  "Ÿv™v¤r§v¡v¬r¯v©vÐ6ÐÜ�]‰]œ;ð /9ö :ä'ÜÓ Ð6Iõ÷:ð  # B˜iÐÜ�\‰\œ.ð 1:ö ;ä'ÜÓ ¨Ø$7õ÷;ð ;÷5Nð Nú÷?ð ?ú÷:ð :ú÷;ð ;ú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.rd   r…  )r„  r}  )r#   r„  rk   s      r%   Ú
test_bad_cz*TestTransformedDensityRejection.test_bad_cM  s.   € à.ˆÜ�]‰]œ:¨SÖ1Ü'¬Ó(8¸CÕ@÷ 2×1Ñ1úó	   ž=½Ar   r`   éè  r¸   rL  r\   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)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}   rk   ÚresÚexpecteds         r%   Útest_ppf_hatz,TestTransformedDensityRejection.test_ppf_hatW  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>.distNri  r2   r'   r%   r3   r›  l  s   „ Ør'   r3   z`pdf` required but not found.rd   c                   ó   — e Zd Zd„ Zy)r›  c                 ó   — d| | z  z
  S r‘   r2   r=   s    r%   r>   zDTestTransformedDensityRejection.test_bad_dist.<locals>.dist.<lambda>u  s   € ˜A˜a ™cšEr'   N©r/   r0   r1   r&   r2   r'   r%   r3   z;TestTransformedDensityRejection.test_bad_dist.<locals>.distt  s   „ Ù!‰Cr'   z`dpdf` required but not found.)ri   r   r�   r   )r#   r3   rk   s      r%   Útest_bad_distz-TestTransformedDensityRejection.test_bad_distj  so   € ÷	ñ 	ð /ˆÜ�]‰]œ:¨SÖ1Ü'¨Ô-÷ 2÷	"ñ 	"ð 0ˆÜ�]‰]œ:¨SÖ1Ü'¨Ô-÷ 2Ð1÷ 2Ð1ú÷ 2Ð1ús   ¨A8Á#BÁ8BÂBN)$r/   r0   r1   r6  rC  rV  ÚdistsÚmv0Úmv1r   rH   Úmv2Úmv3Úmvsri   r   r!  Úzipr"  rb  r   Úbad_pdfsÚbad_pdfs_commonrn  Úbad_dpdf_commonrt  Úinf_nan_domainsrx  r  rƒ  rL   r‡  rÀ   rÉ   r˜  rŸ  r2   r'   r%   r$  r$  ¾  sE  „ ÷ñ ÷,ñ ,÷+ñ +ñ, ‹W‘e“g™u R›y©%°«-Ð8€Eð ˆvˆ,€CØˆtˆ*€CØˆr�v‰vˆ,€CØ�2—6‘6Ð
€CØ��S˜#Ð
€Cà‡[�[×Ñ˜]Ù  ¨›_ó.à‡[�[×ÑÐ&EÐÓFñ-ó Gó.ð-ñ ˜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]  rt   )Úbasic_fail_distsri   ÚskipÚ
isinstanceÚstrrg   r   rÄ   r   rÓ   rÆ   rÅ   r   rÇ   ©
r#   ÚdistnameÚparamsrk   r3   rf   ÚkrÊ   rÖ   r}   s
             r%   rb  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+   rG   r=   s    r%   r>   zTestDiscreteAliasUrn.<lambda>Ÿ  ó   € ”2—6’6r'   r^   c                 ó"   — t         j                  S r+   rK   r=   s    r%   r>   zTestDiscreteAliasUrn.<lambda>¢  r»  r'   c                  ó   — y)Nr[   r2   r=   s    r%   r>   zTestDiscreteAliasUrn.<lambda>¥  s   € �3r'   r_   c                 ó   — t         S r+   rB   r=   s    r%   r>   zTestDiscreteAliasUrn.<lambda>¨  s   € •3r'   rE   c                 ó   — g S r+   r2   r=   s    r%   r>   zTestDiscreteAliasUrn.<lambda>«  s   € ‘2r'   z)setting an array element with a sequence.c                 ó   — |  S r+   r2   r=   s    r%   r>   zTestDiscreteAliasUrn.<lambda>®  s   € �A‘2r'   z50 : probability < 0c                   ó   — yrN   r2   r2   r'   r%   r>   zTestDiscreteAliasUrn.<lambda>±  s   € �r'   rP   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>.distNri  r2   r'   r%   r3   rÄ  ·  rj  r'   r3   rd   rs  rä   )rÅ   ri   r   r   )r#   rÅ   rj   rk   r3   s        r%   Útest_bad_pmfz!TestDiscreteAliasUrn.test_bad_pmfµ  s7   € ÷	ñ 	àˆŒÜ�]‰]˜3 cÖ*Ü˜T¨'Õ2÷ +×*Ñ*ús   ©A Á A	rÊ   )r5   r4   r6   )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)Údtyperq   rt   r—   r   )Úweightsra   )
r   ÚasarrayÚfloat64r   ru   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©Nrd   ©ri   r   r�   r   ©r#   rÊ   rk   s      r%   Útest_bad_pvz TestDiscreteAliasUrn.test_bad_pvË  s$   € ä�]‰]œ:¨SÖ1Ü˜RÔ ÷ 2×1Ñ1úó   œ1±:r   rf   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 finiterd   r;   r\   rä   )ri   r   r�   r   r   rÃ   ©r#   rf   s     r%   Útest_inf_domainz$TestDiscreteAliasUrn.test_inf_domainÕ  s3   € ä�]‰]œ:Ð->Ö?ÜœUŸ[™[¨¨SÓ1¸&ÕA÷ @×?Ñ?úó   œ"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.rd   rL  r2  )Ú
urn_factor)ri   rå   ræ   r   r3  s    r%   Útest_bad_urn_factorz(TestDiscreteAliasUrn.test_bad_urn_factorÚ  s,   € Ü�\‰\œ.Ð0IÖJÜ˜c 3˜Z°BÕ7÷ K×JÑJú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+   r2   r"   s     r%   rÅ   z4TestDiscreteAliasUrn.test_bad_args.<locals>.dist.pmfã  s   € Ø�r'   N)r/   r0   r1   rÅ   r2   r'   r%   r3   rä  â  s   „ ór'   r3   rd   rÖ  )r#   rk   r3   s      r%   Útest_bad_argsz"TestDiscreteAliasUrn.test_bad_argsÞ  s7   € ð7ˆ÷	ñ 	ô �]‰]œ:¨SÖ1Ü˜TÔ"÷ 2×1Ñ1ús	   ¨=½Ac                 óŒ   — t        j                  t        j                  d«      «      }t	        |d¬«      }t        ||dd¬«       y )N)iý  r]  rt   )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)r/   r0   r1   r²  ri   r   r!  r   rb  r�   Ú	NameErrorr   Ú	TypeErrorÚbad_pmfrÅ  rÒ  Úbad_pv_commonrØ  r   rH   Ú
inf_domainrÝ  rá  ræ  rê  r2   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«      «      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
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<                  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e
j@                   d*d+gggZ#ej                   j%                  d,e#«      d-„ «       Z$ej                   jJ                  d.„ «       Z&dd/d0e
j@                  e
j>                  gZ'd1d"e
j@                  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(  r2   r"   s     r%   r&   z(TestNumericalInversePolynomial.dist0.pdfô  r*  r'   c                 ó$   — d||dz  dz  z
  dz   z  S r.  r2   r"   s     r%   r-   z(TestNumericalInversePolynomial.dist0.cdf÷  r/  r'   c                  ó   — yr1  r2   r3  s    r%   rÄ   z,TestNumericalInversePolynomial.dist0.supportú  r4  r'   N©r/   r0   r1   r&   r-   rÄ   r2   r'   r%   r6  ró  ó  s   „ ò	!ò	,ó	r'   r6  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:  rA  r"   s     r%   r-   z(TestNumericalInversePolynomial.dist1.cdf  r=  r'   N)r/   r0   r1   r&   r-   r2   r'   r%   rC  rù  þ  s   „ ò	,ó	,r'   rC  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`   ra   ©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r1  r2   r3  s    r%   rÄ   z,TestNumericalInversePolynomial.dist2.support  r4  r'   Nr÷  r2   r'   r%   rV  rý  
  s   „ ò	9ò	 ó
	r'   rV  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 )Nr\   rÿ  r   r`   ra   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º   rL  g
×£p=
·?ra   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²   r2   r3  s    r%   rÄ   z,TestNumericalInversePolynomial.dist3.support#  r4  r'   Nr÷  r2   r'   r%   Údist3r    s   „ ò	Aò	Fó	r'   r  r[   rX  r?  gÍÌÌÌÌÌÜ¿çUUUUUUÕ?gìQ¸…ëÉ?ra   g«ªªªªª @rZ  rý   rY  c                 ó8   — t        |d¬«      }t        |||«       y )Nr]  rt   )r	   rÁ   ra  s       r%   rb  z)TestNumericalInversePolynomial.test_basic/  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]  rt   )ri   r³  r´  rµ  rg   r   r^  r_  r`  ræ   r	   rÁ   rÑ   rÒ   )r#   r·  r¸  Úvery_slow_distsÚ
fail_distsÚskip_sample_moment_checkr3   r}   s           r%   Útest_basic_all_scipy_distsz9TestNumericalInversePolynomial.test_basic_all_scipy_dists6  sÜ   € ò>ˆò-ˆ
ð %6Ð#6Ð à�Ñ&Ü�K‰KÐ,¨X¨JÐ7Ô8Ø�zÑ!Ü�K‰K˜/¨(¨Ð4Ô5ä˜h¬Ô,ô œ˜xÔ(àð 	ñ �Vˆ}ˆÜ×$Ñ$Õ&Ü×!Ñ! (¬NÔ;Ü,¨TÀÔCˆC÷ 'ð Ð/Ñ/ØÜ˜3  t§y¡y£{°D·H±H³JÐ&?Õ@÷ 'Ð&ús   Á?(C Ã C)re  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>.distNri  r2   r'   r%   r3   r,  Z  rj  r'   r3   rd   r   r²   rä   )r&   ri   r   r	   rm  s        r%   rn  z+TestNumericalInversePolynomial.test_bad_pdfX  s;   € ÷	ñ 	àˆŒÜ�]‰]˜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>.distNri  r2   r'   r%   r3   r0  b  rj  r'   r3   rd   r   r²   rä   )Úlogpdfri   r   r	   )r#   r1  rj   rk   r3   s        r%   Útest_bad_logpdfz.TestNumericalInversePolynomial.test_bad_logpdf`  s;   € ÷	ñ 	àˆŒÜ�]‰]˜3 cÖ*Ü& t°Q¸°FÕ;÷ +×*Ñ*úr-  rb   c                 ó†   — t        j                  ||¬«      5  t        t        «       |¬«       d d d «       y # 1 sw Y   y xY wrv  )ri   r   r	   r   rw  s       r%   rx  z3TestNumericalInversePolynomial.test_inf_nan_domainsj  s)   € ä�]‰]˜3 cÖ*Ü&¤~Ó'7ÀÕG÷ +×*Ñ*úry  r   r`   é'  r¸   rL  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©Nç›+¡†›„=©Úu_resolutionr�  r\  rŽ  r�  r�  r‘  g•dyáý¥=rÍ   )r   r	   r^  r_  r”  ræ   rÂ   r   r¾   r   rµ   ©r#   rÉ   r3   r}   rk   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r6  )r   r	   r^  r_  r”  ræ   r-   r   r¾   r   rµ   )r#   r$   r3   r}   rk   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ç»½×Ùß|Û=r8  r7  )r   r	   Úu_error©r#   r3   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\].rd   ©rH  )r   ri   r   r�   r	   )r#   rH  r3   rk   s       r%   Útest_bad_ordersz.TestNumericalInversePolynomial.test_bad_orders³  s3   € äÓˆàCˆÜ�]‰]œ:¨SÖ1Ü& t°5Õ9÷ 2×1Ñ1ús	   ¨?¿Ar9  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.rd   r8  )ri   r   r�   r	   r   )r#   r9  rk   s      r%   Útest_bad_u_resolutionz4TestNumericalInversePolynomial.test_bad_u_resolution»  s2   € à?ˆÜ�]‰]œ:¨SÖ1Ü&¤~Ó'7Ø4@õB÷ 2×1Ñ1ú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+   rA  r"   s     r%   r-   zATestNumericalInversePolynomial.test_bad_args.<locals>.BadDist.cdfÅ  s   € Ü—z‘z—‘ qÓ)Ð)r'   N)r/   r0   r1   r-   r2   r'   r%   ÚBadDistrP  Ä  ó   „ ó*r'   rR  z9Either of the methods `pdf` or `logpdf` must be specifiedrd   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ž  r2   r'   r%   r’   rU  Ó  rS  r'   r’   z!Exact CDF required but not found.)ri   r   r�   r	   r   rB  )r#   rR  r3   rk   r}   r’   s         r%   ræ  z,TestNumericalInversePolynomial.test_bad_argsÂ  sÊ   € ÷	*ñ 	*ñ ‹yˆØJˆÜ�]‰]œ:¨SÖ1Ü,¨TÓ2ˆC÷ 2ô ÓˆÜ(¨Ó.ˆØEˆÜ�]‰]œ:¨SÖ1Ø�K‰K˜ŒO÷ 2÷	*ñ 	*ñ ‹~ˆÜ(¨Ó.ˆØ2ˆÜ�]‰]œ:¨SÖ1Ø�K‰KŒM÷ 2Ð1÷! 2Ð1ú÷ 2Ð1ú÷ 2Ð1ú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>.MyDistNri  r2   r'   r%   ÚMyDistrZ  á  rj  r'   r[  c                 ó:   — t        j                  |  | z  dz  «      S ©Nra   )Úmathr!   r=   s    r%   r>   zLTestNumericalInversePolynomial.test_logpdf_pdf_consistency.<locals>.<lambda>æ  s   € ¤§¡¨1¨"¨Q©$¨q©&Ô!1r'   c                 ó   — |  | z  dz  S r]  r2   r=   s    r%   r>   zLTestNumericalInversePolynomial.test_logpdf_pdf_consistency.<locals>.<lambda>ë  s   € ¨ r¨!¡t¨A¢vr'   r“  gwJëÿï?rs   r¸   )r&   r	   r1  r   rÀ   r   rÂ   )r#   r[  Údist_pdfr{   Ú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)-r/   r0   r1   r6  rC  rV  r  r   r¡  r¢  r   r    r£  r¤  r¥  ri   r   r"  r!  r¦  rb  Úxslowr   r)  r¨  rn  Úbad_logpdfs_commonr2  rª  rx  rÀ   rL   rH   rÉ   r;  r$   r?  ÚslowrF  Ú
bad_ordersÚbad_u_resolutionrK  rM  ræ  rc  r2   r'   r%   rñ  rñ  ñ  sk  „ ÷ñ ÷,ñ ,÷
ñ 
÷"	ñ 	ñ ‹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Ø‡[�[×Ñ˜]Ù  ¨›_ó.ñ-ó.ó 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            
       óF  — 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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                  j1                  d«      ej                  j)                  d«      ej                  j3                  d	«      d„ «       «       «       Zd„ Zddej8                  j;                  d«      gZej?                  ej8                  jA                  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jL                  d#d$d%¬&«      g g gejN                  gejP                   ejN                  ejP                  gdejN                  d'd(gd)d*ejP                  gg d+¢ggZ)ej                  j                  d,e)«      d-„ «       Z*ej                  jV                  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 )NrL  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r1  r2   r3  s    r%   rÄ   z)TestNumericalInverseHermite.dist0.support  r4  r'   Nr5  r2   r'   r%   r6  rl  ÷  s   „ ò	1ò	,ò	Mó	r'   r6  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   rL  r[   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   r[   rL  ©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   r[   rL  r)  ru  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)r2  rL  r2   r3  s    r%   rÄ   z)TestNumericalInverseHermite.dist1.support!  s   € Ør'   Nr5  r2   r'   r%   rC  rr    s   „ ò	>ò	@ò	>ó	r'   rC  r2  ra   r  r`   r±   g      Ð¿g      Ø?g      °?rY  rH  r:   r²   c                 ó:   — t        ||d¬«      }t        |||«       y )Nr]  )rH  rr   )r
   rÁ   )r#   r3   rÖ   rH  r}   s        r%   rb  z&TestNumericalInverseHermite.test_basic+  s   € ô
 & d°%ÀbÔIˆÜ˜3  eÕ,r'   rb   c                 ó†   — t        j                  ||¬«      5  t        t        «       |¬«       d d d «       y # 1 sw Y   y xY wrv  )ri   r   r
   r   rw  s       r%   rx  z0TestNumericalInverseHermite.test_inf_nan_domains5  s)   € ä�]‰]˜3 cÖ*Ü#¤NÓ$4¸VÕD÷ +×*Ñ*úry  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  )ri   r³  r  r   rv   r¿   rg   r   r
   ÚmaxrN  rÂ   r-   )r#   r·  ÚshapesÚ
slow_distsr'  r}   r3   Úfnir$   Úp_tolÚu_tols              r%   Úbasic_test_all_scipy_distsz6TestNumericalInverseHermite.basic_test_all_scipy_dists:  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_distsS  s   € ð 	×'Ñ'¨°&Õ9r'   c                 ó(   — | j                  dd«       y )NÚ	truncnorm)rÐ   ra   r�  r3  s    r%   Útest_basic_truncnorm_gh17155z8TestNumericalInverseHermite.test_basic_truncnorm_gh17155[  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.rd   ra   rJ  z`cdf` required but not foundr¾   z!could not convert string to floatÚekkir8  )ri   r   r�   r
   r   )r#   re   s     r%   rõ   z1TestNumericalInverseHermite.test_input_validationa  s‘   € Ø5ˆÜ�]‰]œ:¨UÖ3Ü#¤NÓ$4¸AÕ>÷ 4ð /ˆÜ�]‰]œ:¨UÖ3Ü# FÔ+÷ 4ð 4ˆÜ�]‰]œ:¨UÖ3Ü#¤NÓ$4Ø17õ9÷ 4Ð3÷ 4Ð3ú÷ 4Ð3ú÷ 4Ð3ú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°   rr   ©r°   )r   r
   r   ru   rµ   r   r  r   r¾   rÂ   r   )
r#   r}   r  r  r3   rˆ  r|   ru   r  r   s
             r%   Útest_RVSz$TestNumericalInverseHermite.test_RVSs  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 tailrd   r„  r8  )ri   rå   ræ   r
   r   r~  )r#   r†  re   s      r%   Útest_inaccurate_CDFz/TestNumericalInverseHermite.test_inaccurate_CDF…  sU   € ð :ˆðDˆô �\‰\œ.°Ö6Ü#¤E§J¡J°Ð$7Ô8÷ 7ô 	 ¤§
¡
¨FÐ 3À$ÖG÷	 7Ð6ús    A"Á"A+c                 óÄ   — t        «       }t        |«      }t        j                  «       }t        |«      }t	        |j                  d¬«      |j                  d¬«      «       y )Nr   rt   )r   r
   r   r¾   r   ru   )r#   rC  Úfni1rV  Úfni2s        r%   Útest_custom_distributionz4TestNumericalInverseHermite.test_custom_distribution“  sI   € ÜÓ ˆÜ& uÓ-ˆä—
‘
“ˆÜ& uÓ-ˆä˜Ÿ™¨a˜Ó0°$·(±(È°(Ó2JÕKr'   r[   r   r4  r¸   rL  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)Nr  r8  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)NrA  r8  r\  r7  )r   r
   rB  r^  r_  r`  ræ   rC  s        r%   rF  z(TestNumericalInverseHermite.test_u_error¼  s¤   € äÓˆÜ% d¸Ô?ˆØŸ™›‰ˆ	�3Ø˜5Ò Ð Ð Ø�iÒÐÐÜ×$Ñ$Õ&ä×!Ñ! (¬NÔ;Ü)¨$¸UÔCˆC÷ 'ð Ÿ™›‰ˆ	�3Ø˜5Ò Ð Ð Ø�iÒÐÑ÷ 'Ð&ús   Á(BÂB()-r/   r0   r1   r6  rC  r   r   r    r¡  r¢  r¥  ri   r   r!  r¦  r"  rb  rª  rx  r‹  r”  rd  r   r)  Ú	fail_slowÚparallel_threads_limitr�  rõ   rv   rw   ÚrngsÚappendr¿   r  r  r˜  rš  rž  rÀ   rL   rH   rÉ   r;  rf  rF  r2   r'   r%   rj  rj  ò  s
  „ ÷
ñ ÷"ñ ñ8 ‹W‘e“gÐ€Eð ˆq�—‘‰w‰<˜˜q ! B§E¡E¡'¨"¯%©%¡-Ñ0Ñ0Ð
1€CØ��Q˜˜"Ÿ%™%™ §¡™Ñ&Ñ&¨Ñ-Ð
.€CØ�ˆ*€Cà‡[�[×Ñ˜]Ù  ¨›_ó.à‡[�[×Ñ˜W q¨! fÓ-Ø‡[�[×Ññ-ó ó .ó.ð-ð ‡[�[×ÑÐ/°Ó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'   rj  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ã?r9   ©rr   Úguide_factor©r   rv   r¿   ri   rå   ræ   r   ©r#   rÊ   rÈ   s      r%   Ú$test_guide_factor_gt3_raises_warningz;TestDiscreteGuideTable.test_guide_factor_gt3_raises_warningÓ  ó=   € ÚˆÜ�y‰y×$Ñ$Ó&ˆÜ�\‰\œ.Õ)Ü˜r°À1ÕE÷ *×)Ñ)úó   ¼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¨  r2  r©  r«  r¬  s      r%   Ú)test_negative_guide_factor_raises_warningz@TestDiscreteGuideTable.test_negative_guide_factor_raises_warningß  s?   € ò ˆÜ�y‰y×$Ñ$Ó&ˆÜ�\‰\œ.Õ)Ü˜r°À2ÕF÷ *×)Ñ)ú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]  rt   )r²  ri   r³  r´  rµ  rg   r   rÄ   r   rÓ   rÆ   rÅ   r   rÇ   r¶  s
             r%   rb  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`   r4  r¸   rL  rÐ   r\   r]   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]  rt   r�  r\  rŽ  r�  r�  r‘  )
r   rÃ   r   r^  r_  r”  ræ   rÂ   r   rµ   )	r#   rÉ   ÚnÚpr3   r}   rk   r–  r—  s	            r%   r;  zTestDiscreteGuideTable.test_ppf  sã   € à‰ˆˆ1Ü�{‰{˜1˜aÓ ˆÜ  °BÔ7ˆô ×$Ñ$Õ&Ø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÷ 'ô 	�S—Y‘Y §¡Ô/Ü�S˜(Õ#÷ 'Ð&ú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Õ  )ri   r   r�   r   r×  s      r%   rØ  z"TestDiscreteGuideTable.test_bad_pv#  s$   € ä�]‰]œ:¨SÖ1Ü˜rÔ"÷ 2×1Ñ1úrÙ  rf   c                 ó¦   — t        j                  t        d¬«      5  t        t	        j
                  dd«      |¬«       d d d «       y # 1 sw Y   y xY wrÛ  )ri   r   r�   r   r   rÃ   rÜ  s     r%   rÝ  z&TestDiscreteGuideTable.test_inf_domain-  s3   € ä�]‰]œ:Ð->Ö?ÜœuŸ{™{¨2¨sÓ3¸FÕC÷ @×?Ñ?úrÞ  N)r/   r0   r1   r²  r­  r±  r³  ri   r   r!  r   rb  r   rÀ   rL   rH   rÉ   r;  rî  rØ  rï  rÝ  r2   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                   óN  — 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
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+   )rH  r7   rI  s     r%   r�   z%TestSimpleRatioUniforms.dist.__init__8  s   € ØˆDŒJØˆD�Ir'   c                 óR   — || j                   z  }dt        |«      dz   z  }d|z  |z  S rK  rM  rO  s      r%   r&   z TestSimpleRatioUniforms.dist.pdf<  rQ  r'   c                 óP   — || j                   z  }|dk  rdd|z
  z  S ddd|z   z  z
  S rT  rG  r"   s     r%   r-   z TestSimpleRatioUniforms.dist.cdfA  rU  r'   N)r/   r0   r1   r�   r&   r-   r2   r'   r%   r3   r½  7  s   „ ò	ò	ó
	+r'   r3   r[   rW  rY  c                 óÌ   — t        ||j                  d¬«      }t        |||«       t        ||j                  |j                  |j                  «      d¬«      }t        |||«       y )Nr]  )r7   rr   )r7   Úcdf_at_moderr   )r   r7   rÁ   r-   ra  s       r%   rb  z"TestSimpleRatioUniforms.test_basicO  sU   € ô " $¨T¯Y©YÀRÔHˆÜ˜3  eÔ,Ü! $¨T¯Y©YØ.2¯h©h°t·y±yÓ.AØ/1ô3ˆô 	˜3  eÕ,r'   rb   c                 ó†   — t        j                  ||¬«      5  t        t        «       |¬«       d d d «       y # 1 sw Y   y xY wrv  )ri   r   r   r   rw  s       r%   rx  z,TestSimpleRatioUniforms.test_inf_nan_domains\  s)   € ä�]‰]˜3 cÖ*Ü¤Ó 0¸Õ@÷ +×*Ñ*úry  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 > 0rd   r   r2  )r7   Úpdf_area)ri   r   r�   r   r   r3  s    r%   ræ  z%TestSimpleRatioUniforms.test_bad_argsa  s-   € ä�]‰]œ:Ð-FÖGÜ¤Ó 0°qÀ2ÕF÷ H×GÑGús	   œ<¼AN)r/   r0   r1   r3   r   r   rH   r¢  r£  r¥  ri   r   r!  r¦  r"  rb  rª  rx  ræ  r2   r'   r%   r»  r»  3  s³   „ ÷+ñ +ñ" �"‹X‘t˜F“|Ð$€Eð ˆr�v‰vˆ,€CØ�2—6‘6Ð
€CØ�ˆ*€Cà‡[�[×Ñ˜]Ù  ¨›_ó.à‡[�[×Ññ-ó ó.ð-ð ‡[�[×ÑÐ/°Ó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 )Nra   r   i90  ©ÚumaxÚvminÚvmaxrr   iÄ	  r¾   r`   rw  Tc                 ó.   — t        j                  |  «      S r+   rW  r=   s    r%   r>   z6TestRatioUniforms.test_rv_generation.<locals>.<lambda>r  s   € ¤b§f¡f¨a¨R¤jr'   r2  r‰  Úexpon)
r   r¾   r&   r   r   r   r   Úkstestru   r!   )r#   ÚfÚvrÉ   rô   s        r%   Útest_rv_generationz$TestRatioUniforms.test_rv_generationh  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 )Nra   r   éÒ  rÉ  r:   rú   )r:   r`   r•   )r:   r:   r:   r—  é   r`   r÷   )
r   r¾   r&   r   r   r   ru   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_shapev  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 )Nra   r   rÔ  rÉ  r;   )
r   r¾   r&   r   r   r   ru   rv   rw   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 vmaxrd   r`   r:   )r&   rÊ  rË  rÌ  zumax must be positiver2  r   )r   r¾   r&   Úassert_raisesr�   r   )r#   rÐ  s     r%   Útest_exceptionsz!TestRatioUniforms.test_exceptions�  s²   € Ü�J‰J�N‰Nˆäœ:Ð-MÖNÜ˜a a¨a°aÕ8÷ Oäœ:Ð-MÖNÜ˜a a¨a°aÕ8÷ Oô œ:Ð-DÖEÜ˜a b¨q°qÕ9÷ Fäœ:Ð-DÖEÜ˜a a¨a°aÕ8÷ FÐE÷ OÐNúçNÐNú÷ FÐEúçEÐEús/   ¬C ÁCÁ>CÂ'C$Ã C	ÃCÃC!Ã$C-N)r/   r0   r1   rÒ  rç  r‚   rë  r2   r'   r%   rÇ  rÇ  g  s   „ òKòò8	ó9r'   rÇ  )gH¯¼šò×z>rÐ   )r’  rÐ   )Lr£   r«   ri   Ú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   r   Úall_methodsÚimplementationÚnameÚversionÚfloaterrrì  rë  r¨  r©  re  rL   rH   rî  r�   Úbad_sized_domainsÚbad_domainsrª  Únan_domainsr   r!  ro   r‚   r…   r©   r¯   r¶   rË   rÁ   rÇ   rç   ré   rë   r$  r¬  rñ  rj  r¦  r»  rÇ  r2   r'   r%   Ú<module>rü     sº  ðÛ Û Û Ý Û Û 
Û Û ã ß 7÷	÷ 	ó 	õ +Ý Ý ß 1ß <Ý /÷	ñ 	ð # V©^Ó-=Ð$>Ð?Ø˜&Ò"3Ð4Ð5Ø˜FÒ$5Ð6Ð7Ø! F©NÓ,<Ð#=Ð>Ø ©Ó)9Ð :Ð;Ø¡^Ó%5¸qÑAÐBð€ð ×Ñ×Ñ˜vÒ%Ø×Ñ×&Ñ&¨Ò3à@�Hà/€Hñ �; Ð'á�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'   