Ë
    âQ(hÕ  ã            	       ó   — 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
mZ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Úsuppress_warnings)Ú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     ú]/var/www/skyplay_api_hub/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   ÚmodeÚpypy)é   é   é
   z.unsupported operand type for float\(\): 'list'z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?   B   ó   € ˆr€ r(   c                 ó   — t         S r,   ©Úfoor>   s    r&   r?   r?   D   ó   € Œs€ r(   úname 'foo' is not definedc                 ó"   — t         j                  S r,   ©r   Úinfr>   s    r&   r?   r?   F   ó
   € Œr�v‰v€ r(   c                 ó"   — t         j                  S r,   ©r   Únanr>   s    r&   r?   r?   H   rJ   r(   c                   ó   — y©Nr   r3   r3   r(   r&   r?   r?   J   ó   � r(   ú,takes 0 positional arguments but 1 was givenc                 ó"   — t         j                  S r,   rH   r>   s    r&   r?   r?   Q   rJ   r(   c                 ó"   — t         j                  S r,   rL   r>   s    r&   r?   r?   S   rJ   r(   c                 ó   — g S r,   r3   r>   s    r&   r?   r?   U   rA   r(   c                 ó   — t         S r,   rC   r>   s    r&   r?   r?   W   rE   r(   c                   ó   — yrO   r3   r3   r(   r&   r?   r?   Y   rP   r(   c                 ó   — g S r,   r3   r>   s    r&   r?   r?   `   rA   r(   c                 ó   — t         S r,   rC   r>   s    r&   r?   r?   b   rE   r(   c                 ó"   — t         j                  S r,   rH   r>   s    r&   r?   r?   d   rJ   r(   c                 ó"   — t         j                  S r,   rL   r>   s    r&   r?   r?   f   rJ   r(   c                   ó   — yrO   r3   r3   r(   r&   r?   r?   h   rP   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)é   é   r;   zmust be a length 2 tupler3   )rb   ra   zleft >= right)ra   ra   )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   )rg   ÚerrÚmsgÚmethodÚkwargsÚMethods         r&   Útest_bad_domainrp   ™   sG   € ô
 ”U—^‘^ VÓ,€FÜ	�‰�s #Ô	&ñ (ÙÑ'�Ñ' Ó'÷(÷ (ñ (ús   ²AÁAc                 ó4  — 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   r3   )rh   r   ri   r   Úrvsr   ÚrandomÚseedÚRandomStateÚMT19937Ú	Generator)
rm   rn   ro   rw   Úrng1Úrng2Úrvs1Úrvs2Úseed1Úseed2s
             r&   Útest_random_stater�   £   sB  € ä”U—^‘^ VÓ,€Fð €DÙÑ.�FÑ.¨Ò.€DÙÑ.�FÑ.¨Ò.€DÜ�—‘˜#“ §¡¨£Ô.ô ‡I�I‡N�N�3ÔÙÑ�FÑ€DØ�8‰8�C‹=€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 )Nrr   ©rs   rt   )r   r   Úset_random_stater   ru   )r{   r|   Úrngr}   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©Nra   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)NrD   ©r<   rt   é   ©rg   rs   é † r   rˆ   ©r   ru   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•   rb   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ˆ   rD   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 )Nrs   rr   rt   r3   )rh   r   ri   ÚpickleÚdumpsÚloadsr   ru   )rm   rn   ro   r{   Úobjr|   s         r&   Útest_pickler°   ý   sZ   € ä”U—^‘^ VÓ,€FÙÑ-�FÑ-¨Ò-€DÜ
�,‰,�tÓ
€CÜ�<‰<˜Ó€DÜ�—‘˜#“ §¡¨£Õ.r(   Úsize)Nr   )r   ra   )r<   r;   )rb   r;   é   é   )r   r   )r   ra   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   rƒ   ra   rt   ©Únumç      $@ç      @)ÚlocÚscaler<   r]   )r   Únormr   rv   Údefault_rngr   ÚlinspaceÚcheck_cont_samplesr   ÚppfÚbinomr   ÚsupportÚpmfÚarangeÚcheck_discr_samples)r4   Úurngr…   Úurg   Ú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˜   ra   ©ÚrtolÚatoliô  çš™™™™™¹?)
ru   ÚmeanÚvarr   Úisfiniter   Ú	vectorizer.   r   Úpvalue)r…   r4   Ú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È   6  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 distributionre   r   ©r;   r³   )Úcenterrg   ©rg   )rj   ÚwarnsÚRuntimeWarningr
   r   )rl   s    r&   Ú!test_warning_center_not_in_domainrè   F  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rm   )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 domainre   r   rã   )r8   rg   )rh   r   ri   rj   r   r   r   )rm   ro   rl   s      r&   Útest_error_mode_not_in_domainrê   P  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«      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...re   r   )Ú
qmc_engineú6`d` must be consistent with dimension of `qmc_engine`.r;   rb   ©Údrî   )
rj   r   r�   rh   r   ri   r   ÚqrvsÚqmcÚHalton)r$   rm   rf   ro   Úgens        r&   Útest_input_validationzTestQRVS.test_input_validationa  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Nra   r   ©rw   r;   )ra   ©ra   )r²   ©r²   )rù   rù   )©rb   r²   rú   )r;   ©r;   Úqrngúsize_in, size_outzd_in, d_outc                 ó"  — 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ï   re   rð   ra   ©r±   rñ   rî   çê-�™—q=©rÐ   )ÚsysÚplatformÚarchitecturerj   Úxfailr   rh   r   ri   rñ   r   r�   rò   r   r¶   rv   r   Úprodr¿   rÃ   Úreshaper   )r$   rü   Úsize_inÚsize_outÚd_inÚd_outrm   Úw32r4   ro   rõ   rf   Úshape_expectedÚqrng2rò   ÚuniformÚqrvs2s                    r&   Útest_QRVS_shape_consistencyz$TestQRVS.test_QRVS_shape_consistencyw  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   rh   r   ri   ró   rô   rv   r   r  rò   r¿   rÃ   Úranger	  r   )r$   rm   r4   ro   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Údsrj   ÚmarkÚparametrizer  r  r3   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Ó/ñ 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«      «      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ç      è?ra   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)éÿÿÿÿra   r3   ©r$   s    r&   rÅ   z-TestTransformedDensityRejection.dist0.supportÇ  ó   € Ør(   N©r0   r1   r2   r'   r*   r.   rÅ   r3   r(   r&   Údist0r$  ½  s   „ ò	!ò	 ò	,ó	r(   r4  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Ñ   r9  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 r8  ©r   r¿   Ú_cdfr#   s     r&   r.   z)TestTransformedDensityRejection.dist1.cdfÒ  r;  r(   Nr/   r3   r(   r&   Údist1r6  Ë  s   „ ò	,ò	8ó	,r(   rA  c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ú%TestTransformedDensityRejection.dist2c                 ó   — || _         y r,   ©Úshift©r$   rF  s     r&   rŽ   z.TestTransformedDensityRejection.dist2.__init__Ù  s	   € ØˆD�Jr(   c                 óR   — || j                   z  }dt        |«      dz   z  }d|z  |z  S ©Nr   ç      à?©rF  Ú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\   rK  rM  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\   rJ  r   rE  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&   Údist2rC  Ø  s   „ ò	ò	ò
	)ó	+r(   rT  r\   ç     ˆÃ@çÑ?r=  údist, mv_exc                 ó    — t        «       5 }|j                  t        «       t        |d¬«      }d d d «       t	        ||«       y # 1 sw Y   ŒxY w©Né*   rƒ   )r   Úfilterrç   r   rÂ   )r$   r4   r×   Úsupr…   s        r&   Ú
test_basicz*TestTransformedDensityRejection.test_basic÷  sK   € ô Ó ð 	E Cà�J‰J”~Ô&Ü-¨dÀÔDˆC÷	Eô 	˜3  eÕ,÷		Eð 	Eús   ‹#AÁAc                  ó   — y)Nr   r3   r>   s    r&   r?   z(TestTransformedDensityRejection.<lambda>  rP   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   rc    ó   „ Ør(   r4   c                  ó   — yr’   r3   r>   s    r&   r?   z>TestTransformedDensityRejection.test_bad_pdf.<locals>.<lambda>	  rP   r(   re   ©r'   r*   rj   r   r   ©r$   r'   rk   rl   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>.distNrd  r3   r(   r&   r4   rl    re  r(   r4   c                 ó   — | S r,   r3   r>   s    r&   r?   z?TestTransformedDensityRejection.test_bad_dpdf.<locals>.<lambda>  s   € ˜Q€ r(   re   ©ra   r<   rå   rg  )r$   r*   rk   rl   r4   s        r&   Útest_bad_dpdfz-TestTransformedDensityRejection.test_bad_dpdf  sG   € ÷	ñ 	áˆŒØˆŒ	Ü�]‰]˜3 cÔ*ñ 	>Ü'¨°WÕ=÷	>÷ 	>ñ 	>ús   ±AÁArc   c                 ó†   — t        j                  ||¬«      5  t        t        «       |¬«       d d d «       y # 1 sw Y   y xY w©Nre   rå   )rj   r   r   r   ©r$   rg   rk   rl   s       r&   Útest_inf_nan_domainsz4TestTransformedDensityRejection.test_inf_nan_domains  s6   € ä�]‰]˜3 cÔ*ñ 	IÜ'¬Ó(8ÀÕH÷	I÷ 	Iñ 	Iúó	   ˜7·A Úconstruction_points)r0  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.re   ©ru  ©rj   r   r�   r   r   ©r$   ru  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.re   rw  )ra   ra   ra   ra   ra   ra   z:33 : starting points not strictly monotonically increasingr_  éöÿÿÿr<   z!50 : starting point out of domain)éýÿÿÿr;   )rg   ru  )
rj   r   r�   r   r   ræ   rç   r   rM   r   ry  s     r&   Ú"test_bad_construction_points_arrayzBTestTransformedDensityRejection.test_bad_construction_points_array%  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.re   r€  )r  rx  )r$   r  rl   s      r&   Ú
test_bad_cz*TestTransformedDensityRejection.test_bad_cI  s;   € à.ˆÜ�]‰]œ:¨SÔ1ñ 	AÜ'¬Ó(8¸CÕ@÷	A÷ 	Añ 	Aúó	   ž=½Ar   ra   éè  r¹   rJ  r]   r^   ©r*  r;   r²   rÊ   c                 óÐ  — t        t        «       d¬«      }t        «       5 }|j                  t        d«       |j                  t        d«       |j                  t        d«       |j                  t        d«       |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 greaterú*invalid value encountered in greater_equalú!invalid value encountered in lessú'invalid value encountered in less_equalçü©ñÒMbP?çñhãˆµøä>rÎ   )r   r   r   r[  rç   Úppf_hatr   r¿   rÃ   r   r¶   )r$   rÊ   r…   r\  ÚresÚexpecteds         r&   Útest_ppf_hatz,TestTransformedDensityRejection.test_ppf_hatS  s¿   € ô *¬.Ó*:Ø@FôHˆô Ó ð 	) CØ�J‰J”~Ð'MÔNØ�J‰J”~ð (7ô 8à�J‰J”~Ð'JÔKØ�J‰J”~ð (4ô 5à—+‘+˜a“.ˆCÜ—z‘z—~‘~ aÓ(ˆH÷	)ô 	˜˜X¨D°tÕ<Ø�y‰y˜HŸN™NÒ*Ð*Ñ*÷	)ð 	)ús    B	CÃC%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>.distNrd  r3   r(   r&   r4   r”  i  s   „ Ør(   r4   z`pdf` required but not found.re   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>r  s   € ˜A˜a ™c™E€ r(   N©r0   r1   r2   r'   r3   r(   r&   r4   z;TestTransformedDensityRejection.test_bad_dist.<locals>.distq  s   „ Ù!‰Cr(   z`dpdf` required but not found.)rj   r   r�   r   )r$   r4   rl   s      r&   Útest_bad_distz-TestTransformedDensityRejection.test_bad_distg  s   € ÷	ñ 	ð /ˆÜ�]‰]œ:¨SÔ1ñ 	.Ü'¨Ô-÷	.÷	"ñ 	"ð 0ˆÜ�]‰]œ:¨SÔ1ñ 	.Ü'¨Ô-÷	.ð 	.÷	.ð 	.ú÷	.ð 	.ús   ¨A8Á#BÁ8BÂBN)#r0   r1   r2   r4  rA  rT  ÚdistsÚmv0Úmv1r   rI   Úmv2Úmv3Úmvsrj   r  r   Úzipr]  r   Úbad_pdfsÚbad_pdfs_commonri  Úbad_dpdf_commonro  Úinf_nan_domainsrs  rz  r~  rM   r‚  rÁ   rÊ   r‘  r˜  r3   r(   r&   r"  r"  »  s)  „ ÷ñ ÷,ñ ,÷+ñ +ñ, ‹W‘e“g™u R›y©%°«-Ð8€Eð ˆvˆ,€CØˆtˆ*€CØˆr�v‰vˆ,€CØ�2—6‘6Ð
€CØ��S˜#Ð
€Cà‡[�[×Ñ˜]Ù  ¨›_ó.ñ-ó.ð-ñ ˜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.ra   r   z$DAU only works with a finite domain.rØ   rZ  rƒ   )Úbasic_fail_distsrj   ÚskipÚ
isinstanceÚstrrh   r   rÅ   r   rÔ   rÇ   rÆ   r   rÈ   ©
r$   ÚdistnameÚparamsrl   r4   rg   ÚkrË   r×   r…   s
             r&   r]  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,   rH   r>   s    r&   r?   zTestDiscreteAliasUrn.<lambda>œ  ó
   € ”2—6‘6€ r(   r_   c                 ó"   — t         j                  S r,   rL   r>   s    r&   r?   zTestDiscreteAliasUrn.<lambda>Ÿ  r´  r(   c                  ó   — y)Nr\   r3   r>   s    r&   r?   zTestDiscreteAliasUrn.<lambda>¢  rP   r(   r`   c                 ó   — t         S r,   rC   r>   s    r&   r?   zTestDiscreteAliasUrn.<lambda>¥  s   € ”3€ r(   rF   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rO   r3   r3   r(   r&   r?   zTestDiscreteAliasUrn.<lambda>®  rP   r(   rQ   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>.distNrd  r3   r(   r&   r4   r½  ´  re  r(   r4   re   rn  rå   )rÆ   rj   r   r   )r$   rÆ   rk   rl   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)Údtyperr   rƒ   r˜   r   )Úweightsrb   )
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©Nre   ©rj   r   r�   r   ©r$   rË   rl   s      r&   Útest_bad_pvz TestDiscreteAliasUrn.test_bad_pvÈ  s-   € ä�]‰]œ:¨SÔ1ñ 	!Ü˜RÔ ÷	!÷ 	!ñ 	!úó   œ1±:r   rg   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 finitere   r<   r]   rå   )rj   r   r�   r   r   rÄ   ©r$   rg   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.re   rJ  r0  )Ú
urn_factor)rj   ræ   rç   r   r1  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   re   rÏ  )r$   rl   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ý  rZ  rƒ   )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«  rj   r  r   r   r]  r�   Ú	NameErrorr   Ú	TypeErrorÚbad_pmfr¾  rË  Úbad_pv_commonrÑ  r   rI   Ú
inf_domainrÖ  rÚ  rß  rã  r3   r(   r&   r¥  r¥  y  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                   óJ  — 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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                   jH                  d,„ «       Z%dd-d.e
j>                  e
j<                  gZ&d/d e
j>                  e
j<                  gZ'ej                   j#                  d0e&«      d1„ «       Z(ej                   j#                  d2e'«      d3„ «       Z)d4„ Z*d5„ Z+y6)7Ú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ô  r-  r(   c                  ó   — yr/  r3   r1  s    r&   rÅ   z,TestNumericalInversePolynomial.dist0.support÷  r2  r(   N©r0   r1   r2   r'   r.   rÅ   r3   r(   r&   r4  rì  ð  s   „ ò	!ò	,ó	r(   r4  c                   ó   — e Zd Zd„ Zd„ Zy)ú$TestNumericalInversePolynomial.dist1c                 óF   — t         j                  j                  |dz  «      S r8  r9  r#   s     r&   r'   z(TestNumericalInversePolynomial.dist1.pdfü  r;  r(   c                 óF   — t         j                  j                  |dz  «      S r8  r?  r#   s     r&   r.   z(TestNumericalInversePolynomial.dist1.cdfÿ  r;  r(   N)r0   r1   r2   r'   r.   r3   r(   r&   rA  rò  û  s   „ ò	,ó	,r(   rA  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çš™™™™™©?çÍÌÌÌÌÌÜ?ra   rb   ©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ø  ra   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r/  r3   r1  s    r&   rÅ   z,TestNumericalInversePolynomial.dist2.support  r2  r(   Nrð  r3   r(   r&   rT  rö    s   „ ò	9ò	 ó
	r(   rT  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ù  ra   rb   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»   rJ  g
×£p=
·?rb   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   r1  s    r&   rÅ   z,TestNumericalInversePolynomial.dist3.support   r2  r(   Nrð  r3   r(   r&   Údist3r    s   „ ò	Aò	Fó	r(   r  r\   rV  r=  gÍÌÌÌÌÌÜ¿çUUUUUUÕ?gìQ¸…ëÉ?rb   g«ªªªªª @rW  c                 ó8   — t        |d¬«      }t        |||«       y rY  )r
   rÂ   ©r$   r4   r×   r…   s       r&   r]  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        «       5 }|j                  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 rZ  rƒ   )rj   r¬  r­  r®  rh   r   r   r[  rç   r
   rÂ   rÒ   rÓ   )	r$   r°  r±  Úvery_slow_distsÚ
fail_distsÚskip_sample_moment_checkr4   r\  r…   s	            r&   Útest_basic_all_scipy_distsz9TestNumericalInversePolynomial.test_basic_all_scipy_dists2  sß   € ò>ˆò-ˆ
ð %6Ð#6Ð à�Ñ&Ü�K‰KÐ,¨X¨JÐ7Ô8Ø�zÑ!Ü�K‰K˜/¨(¨Ð4Ô5ä˜h¬Ô,ô œ˜xÔ(àð 	ñ �Vˆ}ˆÜÓ ð 	D CØ�J‰J”~Ô&Ü,¨TÀÔCˆC÷	Dð Ð/Ñ/ØÜ˜3  t§y¡y£{°D·H±H³JÐ&?Õ@÷	Dð 	Dús   Á5#CÃCr`  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>.distNrd  r3   r(   r&   r4   r&  V  re  r(   r4   re   r   r³   rå   )r'   rj   r   r
   rh  s        r&   ri  z+TestNumericalInversePolynomial.test_bad_pdfT  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>.distNrd  r3   r(   r&   r4   r*  ^  re  r(   r4   re   r   r³   rå   )Úlogpdfrj   r   r
   )r$   r+  rk   rl   r4   s        r&   Útest_bad_logpdfz.TestNumericalInversePolynomial.test_bad_logpdf\  sD   € ÷	ñ 	àˆŒÜ�]‰]˜3 cÔ*ñ 	<Ü& t°Q¸°FÕ;÷	<÷ 	<ñ 	<úr'  rc   c                 ó†   — t        j                  ||¬«      5  t        t        «       |¬«       d d d «       y # 1 sw Y   y xY wrq  )rj   r   r
   r   rr  s       r&   rs  z3TestNumericalInversePolynomial.test_inf_nan_domainsf  s6   € ä�]‰]˜3 cÔ*ñ 	HÜ&¤~Ó'7ÀÕG÷	H÷ 	Hñ 	Húrt  r   ra   é'  r¹   rJ  rÑ   r]   r^   r…  rÊ   c                 óÔ  — t        «       }t        |d¬«      }t        «       5 }|j                  t        d«       |j                  t        d«       |j                  t        d«       |j                  t        d«       |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‹  g•dyáý¥=rÎ   )
r   r
   r   r[  rç   rÃ   r   r¿   r   r¶   ©r$   rÊ   r4   r…   r\  r�  r�  s          r&   Útest_ppfz'TestNumericalInversePolynomial.test_ppfz  ó¾   € äÓˆÜ(¨¸EÔBˆô Ó ð 	) CØ�J‰J”~Ð'MÔNØ�J‰J”~ð (7ô 8à�J‰J”~Ð'JÔKØ�J‰J”~ð (4ô 5à—'‘'˜!“*ˆCÜ—z‘z—~‘~ aÓ(ˆH÷	)ô 	˜˜X¨E¸Õ>Ø�y‰y˜HŸN™NÒ*Ð*Ñ*÷	)ð 	)úó   ¢B	CÃC'r|  r<   r;   r²   r%   c                 óÔ  — t        «       }t        |d¬«      }t        «       5 }|j                  t        d«       |j                  t        d«       |j                  t        d«       |j                  t        d«       |j                  |«      }t        j                  j                  |«      }d d d «       t        dd¬«       |j                  |j                  k(  sJ ‚y # 1 sw Y   Œ4xY wr0  )
r   r
   r   r[  rç   r.   r   r¿   r   r¶   )r$   r%   r4   r…   r\  r�  r�  s          r&   Útest_cdfz'TestNumericalInversePolynomial.test_cdf�  r6  r7  c                 óÐ   — t        «       }t        |d¬«      }|j                  «       \  }}|dk  sJ ‚||k  sJ ‚t        |d¬«      }|j                  «       \  }}|dk  sJ ‚||k  sJ ‚y ©Ng»½×Ùß|Û=r2  r1  )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\].re   ©rA  )r   rj   r   r�   r
   )r$   rA  r4   rl   s       r&   Útest_bad_ordersz.TestNumericalInversePolynomial.test_bad_orders±  s<   € äÓˆàCˆÜ�]‰]œ:¨SÔ1ñ 	:Ü& t°5Õ9÷	:÷ 	:ñ 	:ús	   ¨?¿Ar3  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.re   r2  )rj   r   r�   r
   r   )r$   r3  rl   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,   r?  r#   s     r&   r.   zATestNumericalInversePolynomial.test_bad_args.<locals>.BadDist.cdfÃ  s   € Ü—z‘z—‘ qÓ)Ð)r(   N)r0   r1   r2   r.   r3   r(   r&   ÚBadDistrI  Â  ó   „ ó*r(   rK  z9Either of the methods `pdf` or `logpdf` must be specifiedre   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“   rN  Ñ  rL  r(   r“   z!Exact CDF required but not found.)rj   r   r�   r
   r   r<  )r$   rK  r4   rl   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>.MyDistNrd  r3   r(   r&   ÚMyDistrS  ß  re  r(   rT  c                 ó:   — t        j                  |  | z  dz  «      S ©Nrb   )Úmathr"   r>   s    r&   r?   zLTestNumericalInversePolynomial.test_logpdf_pdf_consistency.<locals>.<lambda>ä  s   € ¤§¡¨1¨"¨Q©$¨q©&Ó!1€ r(   c                 ó   — |  | z  dz  S rV  r3   r>   s    r&   r?   zLTestNumericalInversePolynomial.test_logpdf_pdf_consistency.<locals>.<lambda>é  s   € ¨ r¨!¡t¨A¡v€ r(   r�  gwJëÿï?rt   r¹   )r'   r
   r+  r   rÁ   r   rÃ   )r$   rT  Ú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),r0   r1   r2   r4  rA  rT  r  r™  rš  r›  r   r!   rœ  r�  rž  rj   r  r   rŸ  r]  Úxslowr   r#  r¡  ri  Úbad_logpdfs_commonr,  r£  rs  rÁ   rM   rI   rÊ   r5  r%   r9  Úslowr?  Ú
bad_ordersÚbad_u_resolutionrD  rF  rß  r\  r3   r(   r&   rê  rê  î  sO  „ ÷ñ ÷,ñ ,÷
ñ 
÷"	ñ 	ñ ‹W‘e“g™u›w©«Ð0€Eð ˆvˆ,€CØˆtˆ*€CØ�—‘‰;˜ '¨"¯%©%°©(Ñ"2Ñ2Ð
3€CØ�—‘‰;Ð)¨G°B·E±E¸1±HÑ,<Ñ<Ð
=€CØ��S˜#Ð
€Cà‡[�[×Ñ˜]Ù  ¨›_ó.ñ-ó.ð-ð ‡[�[×ÑØ‡[�[×ÑÐ/°Ó:ñ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            
       ó¦  — 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«      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                  j/                  d«      ej                  j'                  d«      d„ «       «       Zd„ Zddej4                  j7                  d«      gZej;                  ej4                  j=                  d«      «       d e«       fddgZ ej                  j                  de«      ej                  j                  de «      d „ «       «       Z!d!„ Z"d"„ Z# ejH                  d#d$d%¬&«      g g gejJ                  gejL                   ejJ                  ejL                  gdejJ                  d'd(gd)d*ejL                  gg d+¢ggZ'ej                  j                  d,e'«      d-„ «       Z(ej                  jR                  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 )NrJ  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   ra   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r/  r3   r1  s    r&   rÅ   z)TestNumericalInverseHermite.dist0.supportÿ  r2  r(   Nr3  r3   r(   r&   r4  re  õ  s   „ ò	1ò	,ò	Mó	r(   r4  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   rJ  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\   rJ  ©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   ç      Ð?ra   r   r\   rJ  r'  rn  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)r0  rJ  r3   r1  s    r&   rÅ   z)TestNumericalInverseHermite.dist1.support  s   € Ør(   Nr3  r3   r(   r&   rA  rk    s   „ ò	>ò	@ò	>ó	r(   rA  r0  rb   r  ra   r²   g      Ð¿g      Ø?g      °?rW  rA  r;   r³   c                 ó:   — t        ||d¬«      }t        |||«       y )NrZ  )rA  rs   )r   rÂ   )r$   r4   r×   rA  r…   s        r&   r]  z&TestNumericalInverseHermite.test_basic)  s   € ô & d°%ÀbÔIˆÜ˜3  eÕ,r(   rc   c                 ó†   — t        j                  ||¬«      5  t        t        «       |¬«       d d d «       y # 1 sw Y   y xY wrq  )rj   r   r   r   rr  s       r&   rs  z0TestNumericalInverseHermite.test_inf_nan_domains2  s6   € ä�]‰]˜3 cÔ*ñ 	EÜ#¤NÓ$4¸VÕD÷	E÷ 	Eñ 	Eúrt  c           	      óº  — h d£}h d£}||v rt        j                  d«       ||v rt        j                  d«       t        j                  j                  d«        t        t        |«      |Ž }t        |«      }t        j                  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  )rj   r¬  r  r   rv   rw   rh   r   r   ÚrandÚmaxrL  rÃ   r.   )
r$   r°  ÚshapesÚ
slow_distsr!  r4   Úfnir%   Úp_tolÚu_tols
             r&   Úbasic_test_all_scipy_distsz6TestNumericalInverseHermite.basic_test_all_scipy_dists7  s  € ÚBˆ
ò@ˆ
ð �zÑ!Ü�K‰KÐ2Ô3Ø�zÑ!ô �L‰LÐDÔEä
�	‰	�‰�qÔà'Œw”u˜hÓ'¨Ð0ˆÜ% dÓ+ˆä�I‰I�N‰N˜2ÓˆÜ—‘”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_distsP  s   € ð 	×'Ñ'¨°&Õ9r(   c                 ó(   — | j                  dd«       y )NÚ	truncnorm)rÑ   rb   r‡  r1  s    r&   Útest_basic_truncnorm_gh17155z8TestNumericalInverseHermite.test_basic_truncnorm_gh17155X  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.re   rb   rC  z`cdf` required but not foundr¿   z!could not convert string to floatÚekkir2  )rj   r   r�   r   r   )r$   rf   s     r&   rö   z1TestNumericalInverseHermite.test_input_validation]  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±   rs   ©r±   )r   r   r   ru   r¶   r   r  r   r¿   rÃ   r   )
r$   r…   r
  r  r4   r‚  r|   ru   r  r~   s
             r&   Útest_RVSz$TestNumericalInverseHermite.test_RVSo  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 tailre   r}  r2  )rj   ræ   rç   r   r   rw  )r$   r€  rf   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   rƒ   )r   r   r   r¿   r   ru   )r$   rA  Úfni1rT  Úfni2s        r&   Útest_custom_distributionz4TestNumericalInverseHermite.test_custom_distributionŽ  sI   € ÜÓ ˆÜ& uÓ-ˆä—
‘
“ˆÜ& uÓ-ˆä˜Ÿ™¨a˜Ó0°$·(±(È°(Ó2JÕKr(   r\   r   r.  r¹   rJ  rÑ   r]   r^   r…  rÊ   c                 óÔ  — t        «       }t        |d¬«      }t        «       5 }|j                  t        d«       |j                  t        d«       |j                  t        d«       |j                  t        d«       |j                  |«      }t        j                  j                  |«      }d d d «       t        dd¬	«       |j                  |j                  k(  sJ ‚y # 1 sw Y   Œ4xY w)
Nr  r2  rˆ  r‰  rŠ  r‹  g•Ö&è.>gLÎaã§�ô=rÎ   )
r   r   r   r[  rç   rÃ   r   r¿   r   r¶   r4  s          r&   r5  z$TestNumericalInverseHermite.test_ppf¦  s¾   € äÓˆÜ% d¸Ô?ˆô Ó ð 	) CØ�J‰J”~Ð'MÔNØ�J‰J”~ð (7ô 8à�J‰J”~Ð'JÔKØ�J‰J”~ð (4ô 5à—'‘'˜!“*ˆCÜ—z‘z—~‘~ aÓ(ˆH÷	)ô 	˜˜X¨D°uÕ=Ø�y‰y˜HŸN™NÒ*Ð*Ñ*÷	)ð 	)úr7  c                 ó8  — t        «       }t        |d¬«      }|j                  «       \  }}|dk  sJ ‚||k  sJ ‚t        «       5 }|j	                  t
        «       t        |d¬«      }d d d «       |j                  «       \  }}|dk  sJ ‚||k  sJ ‚y # 1 sw Y   Œ+xY wr;  )r   r   r<  r   r[  rç   )r$   r4   r…   r=  r>  r\  s         r&   r?  z(TestNumericalInverseHermite.test_u_error¸  s§   € äÓˆÜ% d¸Ô?ˆØŸ™›‰ˆ	�3Ø˜5Ò Ð Ð Ø�iÒÐÐÜÓ ð 	D Cà�J‰J”~Ô&Ü)¨$¸UÔCˆC÷	Dð Ÿ™›‰ˆ	�3Ø˜5Ò Ð Ð Ø�iÒÐÑ÷	Dð 	Dús   Á#BÂB)+r0   r1   r2   r4  rA  r™  r   r!   rš  r›  rž  rj   r  r   rŸ  r]  r£  rs  r…  Úfilterwarningsr]  r   r#  Ú	fail_slowrŠ  rö   rv   rx   ÚrngsÚappendrÀ   r  r  r’  r”  r˜  rÁ   rM   rI   rÊ   r5  r_  r?  r3   r(   r&   rc  rc  ð  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(   rc  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ã?r:   ©rs   Úguide_factor©r   rv   rÀ   rj   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¢  r0  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.ra   r   z$DGT only works with a finite domain.rØ   rZ  rƒ   )r«  rj   r¬  r­  r®  rh   r   rÅ   r   rÔ   rÇ   rÆ   r	   rÈ   r¯  s
             r&   r]  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   ra   r.  r¹   rJ  rÑ   r]   r^   r…  rÊ   c                 óþ  — d\  }}t        j                  ||«      }t        |d¬«      }t        «       5 }|j	                  t
        d«       |j	                  t
        d«       |j	                  t
        d«       |j	                  t
        d«       |j                  |«      }t         j                  j                  |||«      }d d d «       t        j                  j                  «       t        ||«       y # 1 sw Y   Œ6xY w)N)r²   rÑ   rZ  rƒ   rˆ  r‰  rŠ  r‹  )	r   rÄ   r	   r   r[  rç   rÃ   r   r¶   )	r$   rÊ   ÚnÚpr4   r…   r\  r�  r�  s	            r&   r5  zTestDiscreteGuideTable.test_ppf  sÍ   € à‰ˆˆ1Ü�{‰{˜1˜aÓ ˆÜ  °BÔ7ˆô Ó ð 		0 CØ�J‰J”~Ð'MÔNØ�J‰J”~ð (7ô 8à�J‰J”~Ð'JÔKØ�J‰J”~ð (4ô 5ð —'‘'˜!“*ˆCÜ—{‘{—‘ q¨!¨QÓ/ˆH÷		0ô 	�S—Y‘Y §¡Ô/Ü�S˜(Õ#÷		0ð 		0ús   ³BC3Ã3C<rÌ  c                 óz   — t        j                  t        |¬«      5  t        |«       d d d «       y # 1 sw Y   y xY wrÎ  )rj   r   r�   r	   rÐ  s      r&   rÑ  z"TestDiscreteGuideTable.test_bad_pv!  s-   € ä�]‰]œ:¨SÔ1ñ 	#Ü˜rÔ"÷	#÷ 	#ñ 	#úrÒ  rg   c                 ó¦   — t        j                  t        d¬«      5  t        t	        j
                  dd«      |¬«       d d d «       y # 1 sw Y   y xY wrÔ  )rj   r   r�   r	   r   rÄ   rÕ  s     r&   rÖ  z&TestDiscreteGuideTable.test_inf_domain+  s?   € ä�]‰]œ:Ð->Ô?ñ 	DÜœuŸ{™{¨2¨sÓ3¸FÕC÷	D÷ 	Dñ 	Dúr×  N)r0   r1   r2   r«  r§  r«  r­  rj   r  r   r   r]  r   rÁ   rM   rI   rÊ   r5  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                   ó  — 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	«      «      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,   )rF  r8   rG  s     r&   rŽ   z%TestSimpleRatioUniforms.dist.__init__6  s   € ØˆDŒJØˆD�Ir(   c                 óR   — || j                   z  }dt        |«      dz   z  }d|z  |z  S rI  rK  rM  s      r&   r'   z TestSimpleRatioUniforms.dist.pdf:  rO  r(   c                 óP   — || j                   z  }|dk  rdd|z
  z  S ddd|z   z  z
  S rR  rE  r#   s     r&   r.   z TestSimpleRatioUniforms.dist.cdf?  rS  r(   N)r0   r1   r2   rŽ   r'   r.   r3   r(   r&   r4   r·  5  s   „ ò	ò	ó
	+r(   r4   r\   rU  rW  c                 óÌ   — t        ||j                  d¬«      }t        |||«       t        ||j                  |j                  |j                  «      d¬«      }t        |||«       y )NrZ  )r8   rs   )r8   Úcdf_at_moders   )r   r8   rÂ   r.   r	  s       r&   r]  z"TestSimpleRatioUniforms.test_basicM  sU   € ô " $¨T¯Y©YÀRÔHˆÜ˜3  eÔ,Ü! $¨T¯Y©YØ.2¯h©h°t·y±yÓ.AØ/1ô3ˆô 	˜3  eÕ,r(   rc   c                 ó†   — t        j                  ||¬«      5  t        t        «       |¬«       d d d «       y # 1 sw Y   y xY wrq  )rj   r   r   r   rr  s       r&   rs  z,TestSimpleRatioUniforms.test_inf_nan_domainsY  s6   € ä�]‰]˜3 cÔ*ñ 	AÜ¤Ó 0¸Õ@÷	A÷ 	Añ 	Aúrt  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 > 0re   r   r0  )r8   Úpdf_area)rj   r   r�   r   r   r1  s    r&   rß  z%TestSimpleRatioUniforms.test_bad_args^  s9   € ä�]‰]œ:Ð-FÔGñ 	GÜ¤Ó 0°qÀ2ÕF÷	G÷ 	Gñ 	Gús	   œ<¼AN)r0   r1   r2   r4   r™  r   rI   r›  rœ  rž  rj   r  r   rŸ  r]  r£  rs  rß  r3   r(   r&   rµ  rµ  1  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 )Nrb   r   i90  ©ÚumaxÚvminÚvmaxrs   iÄ	  r¿   ra   rp  Tc                 ó.   — t        j                  |  «      S r,   rP  r>   s    r&   r?   z6TestRatioUniforms.test_rv_generation.<locals>.<lambda>o  s   € ¤b§f¡f¨a¨R£j€ r(   r0  r„  Úexpon)
r   r¿   r'   r   r    r   r   Úkstestru   r"   )r$   ÚfÚvrÊ   rõ   s        r&   Útest_rv_generationz$TestRatioUniforms.test_rv_generatione  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 )Nrb   r   éÒ  rÃ  r;   rû   )r;   ra   r–   )r;   r;   r;   r‘  é   ra   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_shapes  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 )Nrb   r   rÎ  rÃ  r<   )rÄ  rÅ  rÆ  )
r   r¿   r'   r   r    r   ru   rv   rw   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‹\ˆÜ
�	‰	�‰�tÔÜ˜Q T°°¸Ô;ˆØ�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 vmaxre   ra   r;   )r'   rÄ  rÅ  rÆ  zumax must be positiver0  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Á  d  s   „ òKòò8	ó9r(   rÁ  )gH¯¼šò×z>rÑ   )rŒ  rÑ   )Lr¤   r¬   rj   Úcopyr   r  r  rW  Únumpyr   Únumpy.testingr   r   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¢  r^  rM   rI   rç  r�   Úbad_sized_domainsÚbad_domainsr£  Únan_domainsr  r   rp   r�   r†   rª   r°   r·   rÌ   rÂ   rÈ   rè   rê   rì   r"  r¥  rê  rc  r   rµ  rÁ  r3   r(   r&   ú<module>rö     sº  ðÛ Û Û Ý Û Û 
Û Û ß JÑ J÷	÷ 	ó 	õ +Ý Ý ß 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÷X9ð X9óCðX9÷v{.ñ {.÷|r'ñ r'÷j2ñ 2÷DU ñ U ÷pfDñ fD÷R0Gñ 0G÷fA9ò A9r(   