§
    2@Äj7) ã                   ó  — d dl Z d dlZd dlZd dlZd dl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 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 d dlmZmZmZ d dlmZ dZd„ Zd	„ Zd
„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+d„ Z,d„ Z-d„ Z.d„ Z/d„ Z0d„ Z1d„ Z2d„ Z3d „ Z4 e3d!¦  «        Z5 e1d"¦  «        Z6 e2d#¦  «        Z7 e3d$¦  «        Z8 e1d%¦  «        Z9 e2d&¦  «        Z:d'„ Z;d(„ Z<d)„ Z=d*„ Z>d+„ Z? G d,„ d-e¦  «        Z@ G d.„ d/e@¦  «        ZA G d0„ d1e@¦  «        ZB G d2„ d3e@¦  «        ZC G d4„ d5e@¦  «        ZD G d6„ d7e@¦  «        ZE G d8„ d9e@¦  «        ZF G d:„ d;e@¦  «        ZG ed<d<¬=¦  «        d>„ ¦   «         ZHd?ZI ed<d<¬=¦  «        d@„ ¦   «         ZJ G dA„ dBe¦  «        ZK G dC„ dDeK¦  «        ZL ejM        ejN        dEk    dF¦  «         G dG„ dHeK¦  «        ¦   «         ZO G dI„ dJe¦  «        ZPeQdKk    r ejR        ¦   «          dS dS )Lé    N)Údedent)ÚjitÚ
_helperlibÚnjit)Útypes)ÚTestCaseÚcompile_functionÚtag)ÚTypingErrorép  c                  ó(   — t          j        ¦   «         S ©N)r   Úrnd_get_py_state_ptr© ó    úHC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_random.pyÚget_py_state_ptrr      ó   € ÝÔ*Ñ,Ô,Ð,r   c                  ó(   — t          j        ¦   «         S r   )r   Úrnd_get_np_state_ptrr   r   r   Úget_np_state_ptrr      r   r   c                 ó@   — t           j                             | ¦  «        S r   ©ÚnpÚrandomÚrandint©Úas    r   Únumpy_randint1r   #   s   € ÝŒ9×Ò˜QÑÔÐr   c                 óB   — t           j                             | |¦  «        S r   r   ©r   Úbs     r   Únumpy_randint2r#   &   s   € ÝŒ9×Ò˜Q Ñ"Ô"Ð"r   c                 ó,   — t          j        | |¦  «        S r   )r   r   r!   s     r   Úrandom_randintr%   )   s   € ÝŒ>˜!˜QÑÔÐr   c                 ó*   — t          j        | ¦  «        S r   ©r   Ú	randranger   s    r   Úrandom_randrange1r)   ,   s   € ÝÔ˜AÑÔÐr   c                 ó,   — t          j        | |¦  «        S r   r'   r!   s     r   Úrandom_randrange2r+   /   s   € ÝÔ˜A˜qÑ!Ô!Ð!r   c                 ó.   — t          j        | ||¦  «        S r   r'   )r   r"   Úcs      r   Úrandom_randrange3r.   2   s   € ÝÔ˜A˜q !Ñ$Ô$Ð$r   c                 ó@   — t           j                             | ¦  «        S r   ©r   r   Úchoicer   s    r   Únumpy_choice1r2   5   s   € ÝŒ9×Ò˜AÑÔÐr   c                 óD   — t           j                             | |¬¦  «        S ©N©Úsizer0   ©r   r6   s     r   Únumpy_choice2r8   8   s   € ÝŒ9×Ò˜A DÐÑ)Ô)Ð)r   c                 óF   — t           j                             | ||¬¦  «        S )N)r6   Úreplacer0   )r   r6   r:   s      r   Únumpy_choice3r;   ;   s   € ÝŒ9×Ò˜A D°'ÐÑ:Ô:Ð:r   c                 óB   — t           j                             | |¦  «        S r   ©r   r   Úmultinomial)ÚnÚpvalss     r   Únumpy_multinomial2rA   >   s   € ÝŒ9× Ò   EÑ*Ô*Ð*r   c                 óF   — t           j                             | ||¬¦  «        S )N)r@   r6   r=   ©r?   r@   r6   s      r   Únumpy_multinomial3rD   A   s   € ÝŒ9× Ò  ¨%°dÐ Ñ;Ô;Ð;r   c                 óD   — t           j                             | |¬¦  «        S r4   ©r   r   Ú	dirichlet©Úalphar6   s     r   Únumpy_dirichletrJ   D   s   € ÝŒ9×Ò˜u¨4ÐÑ0Ô0Ð0r   c                 ó@   — t           j                             | ¦  «        S r   rF   )rI   s    r   Únumpy_dirichlet_defaultrL   G   s   € ÝŒ9×Ò˜uÑ%Ô%Ð%r   c                 óF   — t           j                             | ||¬¦  «        S r4   ©r   r   Únoncentral_chisquare©ÚdfÚnoncr6   s      r   Únumpy_noncentral_chisquarerS   J   s   € ÝŒ9×)Ò)¨"¨d¸Ð)Ñ>Ô>Ð>r   c                 óB   — t           j                             | |¦  «        S r   rN   )rQ   rR   s     r   Ú"numpy_noncentral_chisquare_defaultrU   M   s   € ÝŒ9×)Ò)¨"¨dÑ3Ô3Ð3r   c                 ó  — t           j                             | ¦  «         t           j                             ||f¦  «        }t           j                             | ¦  «         t           j                             ||¦  «        }||fS r   )r   r   ÚseedÚrand©rW   r   r"   ÚexpectedÚgots        r   Únumpy_check_randr\   P   sb   € Ý„I‡N‚N�4ÑÔÐÝŒy×Ò  A Ñ'Ô'€HÝ„I‡N‚N�4ÑÔÐÝ
Œ)�.Š.˜˜AÑ
Ô
€CØ�Sˆ=Ðr   c                 ó  — t           j                             | ¦  «         t           j                             ||f¦  «        }t           j                             | ¦  «         t           j                             ||¦  «        }||fS r   )r   r   rW   Ústandard_normalÚrandnrY   s        r   Únumpy_check_randnr`   W   sb   € Ý„I‡N‚N�4ÑÔÐÝŒy×(Ò(¨!¨Q¨Ñ0Ô0€HÝ„I‡N‚N�4ÑÔÐÝ
Œ)�/Š/˜!˜QÑ
Ô
€CØ�Sˆ=Ðr   c                 ó�   — dt          ¦   «         z  }t          d|t          ¦   «         ¦  «        } t          d¬¦  «        |¦  «        S )Nz@def func(%(argstring)s):
        return %(name)s(%(argstring)s)
ÚfuncT©Únopython)Úlocalsr	   Úglobalsr   )ÚnameÚ	argstringÚcodeÚpyfuncs       r   Újit_with_argsrk   ^   sG   € ðå�h„hñ€Dõ ˜f d­G©I¬IÑ6Ô6€FØ�3˜ÐÑÔ˜fÑ%Ô%Ð%r   c                 óî   — d                      d„ |D ¦   «         ¦  «        }d                      |¦  «        }d|› d| › d|› d�}t          d|t          ¦   «         ¦  «        } t          d¬	¦  «        |¦  «        S )
Nú,c                 ó   — g | ]	}|› d |› �‘Œ
S ©ú=r   )Ú.0Úkws     r   ú
<listcomp>z#jit_with_kwargs.<locals>.<listcomp>g   s"   € Ð%HÐ%HÐ%H°r¨ l l¨b l lÐ%HÐ%HÐ%Hr   z	def func(z):
        return ú(z)
rb   Trc   )Újoinr	   rf   r   )rg   Ú
kwarg_listÚcall_args_with_kwargsÚ	signatureri   rj   s         r   Újit_with_kwargsry   e   s˜   € àŸHšHÐ%HÐ%H¸ZÐ%HÑ%HÔ%HÑIÔIÐØ—’˜Ñ$Ô$€Ið˜ð ð Øðð Ø,ðð ð €Dõ ˜f d­G©I¬IÑ6Ô6€FØ�3˜ÐÑÔ˜fÑ%Ô%Ð%r   c                 ó"   — t          | d¦  «        S )NÚ ©rk   ©rg   s    r   Újit_nullaryr~   o   s   € Ý˜˜rÑ"Ô"Ð"r   c                 ó"   — t          | d¦  «        S )Nr   r|   r}   s    r   Ú	jit_unaryr€   r   s   € Ý˜˜sÑ#Ô#Ð#r   c                 ó"   — t          | d¦  «        S )Nza, br|   r}   s    r   Ú
jit_binaryr‚   u   s   € Ý˜˜vÑ&Ô&Ð&r   c                 ó"   — t          | d¦  «        S )Nza, b, cr|   r}   s    r   Újit_ternaryr„   x   s   € Ý˜˜yÑ)Ô)Ð)r   úrandom.gausszrandom.randomzrandom.seedúnp.random.normalúnp.random.randomúnp.random.seedc                 óª   — |                       ¦   «         d         }|dd…         |d         }}t          j        ||t          |¦  «        f¦  «         ||fS )z?
    Copy state of Python random *r* to Numba state *ptr*.
    é   Néÿÿÿÿ)Úgetstater   Úrnd_set_stateÚlist)ÚrÚptrÚmtÚintsÚindexs        r   Ú_copy_py_stater”   …   sR   € ð 
�Š‰Œ�aŒ€BØ�S�b�S”'˜2˜bœ6ˆ%€DÝÔ˜S 5­$¨t©*¬*Ð"5Ñ6Ô6Ð6Ø�ˆ;Ðr   c                 óŠ   — |                       ¦   «         dd…         \  }}t          j        ||d„ |D ¦   «         f¦  «         ||fS )z>
    Copy state of Numpy random *r* to Numba state *ptr*.
    rŠ   é   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r   )Úint©rq   Úxs     r   rs   z"_copy_np_state.<locals>.<listcomp>“   s   € Ð*@Ð*@Ð*@°a­3¨q©6¬6Ð*@Ð*@Ð*@r   )Ú	get_stater   r�   )r�   r�   r’   r“   s       r   Ú_copy_np_staterœ   Ž   sO   € ð —+’+‘-”-  ! Ô$�K€Dˆ%ÝÔ˜S 5Ð*@Ð*@¸4Ð*@Ñ*@Ô*@Ð"AÑBÔBÐBØ�ˆ;Ðr   c                 ó  — |                       ¦   «         \  }}}|d         }|d d…         }t          |¦  «        dk    sJ ‚dt          j        |d¬¦  «        |f}|€|dz  }n|d|fz  }t          j                             |¦  «         d S )Nr‹   r   ÚMT19937Úuint32©Údtype)r   ç        rŠ   )rŒ   Úlenr   Úarrayr   Ú	set_state)r�   Ú_verÚmt_stÚ_gauss_nextÚmt_posÚmt_intsÚnp_sts          r   Úsync_to_numpyr¬   –   s›   € Ø Ÿzšz™|œ|Ñ€Dˆ%�Ø�2ŒY€FØ�C�R�CŒj€GÝˆw‰<Œ<˜3ÒÐÐÐà�œ °Ð9Ñ9Ô9¸6ÐB€EØÐØ�Ñˆˆà�!�[Ð!Ñ!ˆå„I×Ò˜ÑÔÐÐÐr   c                 ó:   — d|                       |dz  d¦  «        z  S )Nç       @ç      ð?)Úgammavariate)r�   rQ   s     r   Úpy_chisquarer±   §   s   € Ø�—’  S¡¨#Ñ.Ô.Ñ.Ð.r   c                 óP   — t          | |¦  «        |z  t          | |¦  «        |z  z  S r   )r±   )r�   ÚnumÚdenoms      r   Úpy_frµ   ª   s0   € Ý˜!˜SÑ!Ô! EÑ)Ý˜!˜UÑ#Ô# cÑ)ñ+ð ,r   c                   ó   — e Zd Zdd„Zdd„ZdS )ÚBaseTesté   c                 óN   — t          j        |¦  «        }t          ||¦  «         |S r   )r   ÚRandomr”   ©Úselfr�   rW   r�   s       r   Ú_follow_cpythonzBaseTest._follow_cpython±   s&   € ÝŒM˜$ÑÔˆÝ�q˜#ÑÔÐØˆr   c                 ód   — t           j                             |¦  «        }t          ||¦  «         |S r   )r   r   ÚRandomStaterœ   r»   s       r   Ú_follow_numpyzBaseTest._follow_numpy¶   s,   € ÝŒI×!Ò! $Ñ'Ô'ˆÝ�q˜#ÑÔÐØˆr   N©r¸   )Ú__name__Ú
__module__Ú__qualname__r½   rÀ   r   r   r   r·   r·   ¯   s<   € € € € € ðð ð ð ð
ð ð ð ð ð r   r·   c                   óB   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
S )ÚTestInternalsz9
    Test low-level internals of the implementation.
    c                 óÌ  — t          j        |¦  «        }|\  }}|                      |t          ¦  «         |                      |t          ¦  «         |                      t          |¦  «        t          ¦  «         |dz  t          z  }d„ t          t          ¦  «        D ¦   «         }t          j	        |||f¦  «         |                      t          j        |¦  «        ||f¦  «         d S )Ni§† c                 ó   — g | ]}|d z  ‘ŒS )r–   r   ©rq   Úis     r   rs   z6TestInternals._check_get_set_state.<locals>.<listcomp>È   s   € Ð(Ð(Ð(˜!��A‘Ð(Ð(Ð(r   )
r   Úrnd_get_stateÚassertIsInstancer˜   rŽ   ÚassertEqualr£   ÚNÚranger�   )r¼   r�   ÚstaterÊ   r’   Újs         r   Ú_check_get_set_statez"TestInternals._check_get_set_stateÁ   sÌ   € ÝÔ(¨Ñ-Ô-ˆØ‰ˆˆ4Ø×Ò˜a¥Ñ%Ô%Ð%Ø×Ò˜d¥DÑ)Ô)Ð)Ø×Ò�˜T™œ¥AÑ&Ô&Ð&Ø�‰Z�1ÑˆØ(Ð(�u¥Q™xœxÐ(Ñ(Ô(ˆåÔ   q¨$ iÑ0Ô0Ð0Ø×Ò�Ô1°#Ñ6Ô6¸¸D¸	ÑBÔBÐBÐBÐBr   c                 ó¨  — t          j        ¦   «         }t          ||¦  «        \  }}t          |t          dz   d¦  «        D ]}|                      ¦   «          Œt          j        |¦  «         |                     ¦   «         d         }|d d…         |d         }}|                      t          j	        |¦  «        d         t          |¦  «        ¦  «         d S )NrŠ   r¸   r‹   )r   rº   r”   rÏ   rÎ   r   Úrnd_shufflerŒ   rÍ   rË   rŽ   )r¼   r�   r�   r’   r“   rÊ   r‘   s          r   Ú_check_shufflezTestInternals._check_shuffleÍ   s·   € åŒM‰OŒOˆÝ$ Q¨Ñ,Ô,‰ˆˆeå�u�a !™e QÑ'Ô'ð 	ð 	ˆAØ�HŠH‰JŒJˆJˆJÝÔ˜sÑ#Ô#Ð#à�ZŠZ‰\Œ\˜!Œ_ˆØ˜˜"˜”g˜r "œvˆeˆØ×Ò�Ô1°#Ñ6Ô6°qÔ9½4À¹:¼:ÑFÔFÐFÐFÐFr   c                 ó”  — t           j                             ¦   «         }dD ]¦}|                     t          j        |¦  «        ¦  «         |                     ¦   «         }t          |d         ¦  «        }|d         }|t          k    sJ ‚t          j	        ||¦  «         |  
                    t          j        |¦  «        ||f¦  «         Œ§d S )N)r   rŠ   é}   l   ûÿ rŠ   r¸   )r   r   r¿   rW   rŸ   r›   rŽ   rÎ   r   Úrnd_seedrÍ   rË   )r¼   r�   r�   rÊ   Ústr’   r“   s          r   Ú_check_initzTestInternals._check_initÚ   s»   € õ ŒI×!Ò!Ñ#Ô#ˆØ'ð 	Kð 	KˆAà�FŠF•2”9˜Q‘<”<Ñ Ô Ð Ø—’‘”ˆBÝ˜˜1œ‘;”;ˆDØ�q”EˆEØ�A’:�:�:�:ÝÔ  QÑ'Ô'Ð'Ø×Ò�ZÔ5°cÑ:Ô:¸UÀD¸MÑJÔJÐJÐJð	Kð 	Kr   c                 ó”  — g }t          d¦  «        D ]x}t          j        |d¦  «         t          j        |t          j        d¦  «        ¦  «         |                     t          t          j        |¦  «        d         ¦  «        ¦  «         Œy|                      t          t          |¦  «        ¦  «        t          |¦  «        ¦  «         d S )Né
   r   i   rŠ   )rÏ   r   rØ   ÚosÚurandomÚappendÚtuplerË   rÍ   r£   Úset)r¼   r�   ÚstatesrÊ   s       r   Ú_check_perturbzTestInternals._check_perturbè   s©   € ØˆÝ�r‘”ð 	Cð 	CˆAåÔ  QÑ'Ô'Ð'åÔ ¥R¤Z°¡_¤_Ñ5Ô5Ð5Ø�MŠM�%¥
Ô 8¸Ñ =Ô =¸aÔ @ÑAÔAÑBÔBÐBÐBà×Ò��S ™[œ[Ñ)Ô)­3¨v©;¬;Ñ7Ô7Ð7Ð7Ð7r   c                 óH   — |                       t          ¦   «         ¦  «         d S r   )rÒ   r   ©r¼   s    r   Útest_get_set_statez TestInternals.test_get_set_stateó   s#   € Ø×!Ò!Õ"2Ñ"4Ô"4Ñ5Ô5Ð5Ð5Ð5r   c                 óH   — |                       t          ¦   «         ¦  «         d S r   )rÕ   r   rå   s    r   Útest_shufflezTestInternals.test_shuffleö   ó#   € Ø×ÒÕ,Ñ.Ô.Ñ/Ô/Ð/Ð/Ð/r   c                 óH   — |                       t          ¦   «         ¦  «         d S r   )rÚ   r   rå   s    r   Ú	test_initzTestInternals.test_initù   s#   € Ø×ÒÕ)Ñ+Ô+Ñ,Ô,Ð,Ð,Ð,r   c                 óH   — |                       t          ¦   «         ¦  «         d S r   )rã   r   rå   s    r   Útest_perturbzTestInternals.test_perturbü   ré   r   N)rÂ   rÃ   rÄ   Ú__doc__rÒ   rÕ   rÚ   rã   ræ   rè   rë   rí   r   r   r   rÆ   rÆ   ¼   sŸ   € € € € € ðð ð
Cð 
Cð 
CðGð Gð GðKð Kð Kð	8ð 	8ð 	8ð6ð 6ð 6ð0ð 0ð 0ð-ð -ð -ð0ð 0ð 0ð 0ð 0r   rÆ   c                   ó  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
	 	 dVd„Z	 	 dVd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdWd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd „ Zd!„ Zd"„ Z d#„ Z!d$„ Z"d%„ Z#d&„ Z$d'„ Z%d(„ Z&d)„ Z'd*„ Z(d+„ Z)d,„ Z*d-„ Z+d.„ Z,d/„ Z-d0„ Z.d1„ Z/d2„ Z0d3„ Z1d4„ Z2d5„ Z3d6„ Z4d7„ Z5d8„ Z6d9„ Z7d:„ Z8d;„ Z9d<„ Z:d=„ Z;d>„ Z<d?„ Z=d@„ Z>dA„ Z?dB„ Z@dC„ ZAdD„ ZBdE„ ZCdF„ ZDdG„ ZEdH„ ZFdI„ ZGdJ„ ZHdK„ ZIdL„ ZJdM„ ZKdN„ ZLdO„ ZMdP„ ZNdQ„ ZOdR„ ZPdS„ ZQdT„ ZRdU„ ZSdS )XÚ
TestRandomc           	      óH  — t           j                             ¦   «         }dD ]€}|                     t          j        |¦  «        ¦  «          ||¦  «         t          t          dz   ¦  «        D ]4}|                       |¦   «         |                     dd¦  «        ¦  «         Œ5Œ�dS )z<
        Check seed()- and random()-like functions.
        ©r   rŠ   r×   l   ÿÿ rÜ   r¢   r¯   N)	r   r   r¿   rW   rŸ   rÏ   rÎ   ÚassertPreciseEqualÚuniform)r¼   ÚseedfuncÚ
randomfuncr�   rÊ   rÑ   s         r   Ú_check_random_seedzTestRandom._check_random_seed  s©   € õ
 ŒI×!Ò!Ñ#Ô#ˆØ'ð 	Kð 	KˆAà�FŠF•2”9˜Q‘<”<Ñ Ô Ð ØˆH�Q‰KŒKˆKå�1˜r™6‘]”]ð Kð K�Ø×'Ò'¨
¨
©¬°a·i²iÀÀSÑ6IÔ6IÑJÔJÐJÐJðKð	Kð 	Kr   c                 óF   — |                       t          t          ¦  «         d S r   )r÷   Úrandom_seedÚrandom_randområ   s    r   Útest_random_randomzTestRandom.test_random_random  s   € Ø×Ò¥­]Ñ;Ô;Ð;Ð;Ð;r   c                 ó†  — |                       t          t          ¦  «         |                       t          t          d¦  «        ¦  «         |                       t          t          d¦  «        ¦  «         |                       t          t          d¦  «        ¦  «         |                       t          t          d¦  «        ¦  «         d S ©Núnp.random.random_sampleúnp.random.ranfúnp.random.sampleznp.random.rand)r÷   Ú
numpy_seedÚnumpy_randomr~   rå   s    r   Útest_numpy_randomzTestRandom.test_numpy_random  sš   € Ø×Ò¥
­LÑ9Ô9Ð9à×Ò¥
­KÐ8QÑ,RÔ,RÑSÔSÐSØ×Ò¥
­KÐ8HÑ,IÔ,IÑJÔJÐJØ×Ò¥
­KÐ8JÑ,KÔ,KÑLÔLÐLØ×Ò¥
­KÐ8HÑ,IÔ,IÑJÔJÐJÐJÐJr   c           
      ó<  — t           j                             ¦   «         }dD ]z}|                     t          j        |¦  «        ¦  «          ||¦  «         t          d¦  «        D ]6}|                       ||¦  «        |                     dd|¦  «        ¦  «         Œ7Œ{d S )Nrò   rÜ   r¢   r¯   )r   r   r¿   rW   rŸ   rÏ   ró   rô   )r¼   rõ   rö   r�   rÊ   r?   s         r   Ú_check_random_sizedzTestRandom._check_random_sized   s§   € åŒI×!Ò!Ñ#Ô#ˆØ'ð 	Oð 	OˆAà�FŠF•2”9˜Q‘<”<Ñ Ô Ð ØˆH�Q‰KŒKˆKÝ˜2‘Y”Yð Oð O�Ø×'Ò'¨
¨
°1©¬°q·y²yÀÀcÈ1Ñ7MÔ7MÑNÔNÐNÐNðOð		Oð 	Or   c                 óF  — |                       t          t          d¦  «        ¦  «         |                       t          t          d¦  «        ¦  «         |                       t          t          d¦  «        ¦  «         |                       t          t          d¦  «        ¦  «         d S rý   )r  r  r€   rå   s    r   Útest_numpy_random_sizedz"TestRandom.test_numpy_random_sized*  s„   € Ø× Ò ¥­YÐ7PÑ-QÔ-QÑRÔRÐRØ× Ò ¥­YÐ7GÑ-HÔ-HÑIÔIÐIØ× Ò ¥­YÐ7IÑ-JÔ-JÑKÔKÐKØ× Ò ¥­YÐ7GÑ-HÔ-HÑIÔIÐIÐIÐIr   c                 ó˜  — d}t          d¦  «         d„ t          |¦  «        D ¦   «         }t          d¦  «         d„ t          |¦  «        D ¦   «         }t          d¦  «         t          d¦  «         d„ t          |¦  «        D ¦   «         }|                      d„ |D ¦   «         |¦  «         |                      d„ |D ¦   «         |¦  «         d S )	NrÜ   rŠ   c                 ó*   — g | ]}t          ¦   «         ‘ŒS r   )rú   rÉ   s     r   rs   z:TestRandom.test_independent_generators.<locals>.<listcomp>4  s   € Ð8Ð8Ð8¨!•m‘o”oÐ8Ð8Ð8r   r¸   c                 ó*   — g | ]}t          ¦   «         ‘ŒS r   )r  rÉ   s     r   rs   z:TestRandom.test_independent_generators.<locals>.<listcomp>6  s   € Ð7Ð7Ð7¨•l‘n”nÐ7Ð7Ð7r   c                 óF   — g | ]}t          ¦   «         t          ¦   «         f‘ŒS r   )rú   r  rÉ   s     r   rs   z:TestRandom.test_independent_generators.<locals>.<listcomp>9  s%   € ÐEÐEÐE°q•-‘/”/¥<¡>¤>Ð2ÐEÐEÐEr   c                 ó   — g | ]
}|d          ‘ŒS )r   r   ©rq   Úps     r   rs   z:TestRandom.test_independent_generators.<locals>.<listcomp>:  ó   € Ð 5Ð 5Ð 5¨!  1¤Ð 5Ð 5Ð 5r   c                 ó   — g | ]
}|d          ‘ŒS ©rŠ   r   r  s     r   rs   z:TestRandom.test_independent_generators.<locals>.<listcomp>;  r  r   )rù   rÏ   r  ró   )r¼   rÎ   Ú
py_numbersÚ
np_numbersÚpairss        r   Útest_independent_generatorsz&TestRandom.test_independent_generators0  sÎ   € àˆÝ�A‰ŒˆØ8Ð8­u°Q©x¬xÐ8Ñ8Ô8ˆ
Ý�1‰ŒˆØ7Ð7­e°A©h¬hÐ7Ñ7Ô7ˆ
Ý�A‰ŒˆÝ�1‰ŒˆØEÐE½EÀ!¹H¼HÐEÑEÔEˆØ×ÒÐ 5Ð 5¨uÐ 5Ñ 5Ô 5°zÑBÔBÐBØ×ÒÐ 5Ð 5¨uÐ 5Ñ 5Ô 5°zÑBÔBÐBÐBÐBr   c                 ój  — |                       |¦  «        }t          dd¦  «        D ]8}|                     |¦  «        } ||¦  «        }|                      ||¦  «         Œ9|                      t
          |d¦  «         |                      t
          |d¦  «         |                      t
          |d¦  «         dS )z6
        Check a getrandbits()-like function.
        rŠ   éA   i–˜ r‹   N)r½   rÏ   Úgetrandbitsró   ÚassertRaisesÚOverflowError)r¼   rb   r�   r�   ÚnbitsrZ   r[   s          r   Ú_check_getrandbitszTestRandom._check_getrandbits=  s³   € ð
 × Ò  Ñ%Ô%ˆÝ˜1˜b‘\”\ð 	3ð 	3ˆEØ—}’} UÑ+Ô+ˆHØ�$�u‘+”+ˆCØ×#Ò# H¨cÑ2Ô2Ð2Ð2Ø×Ò�-¨¨rÑ2Ô2Ð2Ø×Ò�-¨¨wÑ7Ô7Ð7Ø×Ò�-¨¨rÑ2Ô2Ð2Ð2Ð2r   c                 ód   — |                       t          d¦  «        t          ¦   «         ¦  «         d S )Nzrandom.getrandbits)r  r€   r   rå   s    r   Útest_random_getrandbitsz"TestRandom.test_random_getrandbitsK  ó.   € Ø×Ò¥	Ð*>Ñ ?Ô ?ÕAQÑASÔASÑTÔTÐTÐTÐTr   r–   Údoubleé   Nc           	      óæ   ‡‡‡‡
— t          |¦  «        sJ ‚|D ]XŠ
ˆ
ˆfd„t          |¦  «        D ¦   «         }ˆ
ˆˆfd„t          |¦  «        D ¦   «         }	|                      ||	||d‰
›�¬¦  «         ŒYd S )Nc                 ó   •— g | ]} ‰‰Ž ‘ŒS r   r   )rq   rÊ   Úargsrb   s     €€r   rs   z*TestRandom._check_dist.<locals>.<listcomp>W  s   ø€ Ð:Ð:Ð: q�t�t˜T�{Ð:Ð:Ð:r   c                 ó.   •— g | ]}‰r ‰‰d ‰iŽn ‰‰Ž ‘ŒS r    r   )rq   rÊ   r$  Úpydtyperj   s     €€€r   rs   z*TestRandom._check_dist.<locals>.<listcomp>X  sI   ø€ ð 1ð 1ð 1Øð ;BÐT˜&˜& $Ð6¨gÐ6Ð6Ð6ÀvÀvÈtÀ}ð 1ð 1ð 1r   úfor arguments ©ÚprecÚulpsÚmsg©r£   rÏ   ró   )r¼   rb   rj   ÚargslistÚnitersr)  r*  r&  ÚresultsÚ	pyresultsr$  s    ``    `  @r   Ú_check_distzTestRandom._check_distS  sÆ   øøøø€ å�8‰}Œ}ÐÐˆ}Øð 	Fð 	FˆDØ:Ð:Ð:Ð:Ð:­E°&©M¬MÐ:Ñ:Ô:ˆGð1ð 1ð 1ð 1ð 1ð 1Ý"'¨¡-¤-ð1ñ 1ô 1ˆIà×#Ò# G¨Y¸TÈÈØ>B¸dÐ(Dð $ñ Fô Fð Fð Fð		Fð 	Fr   c           	      óæ   ‡‡‡‡
— t          |¦  «        sJ ‚|D ]XŠ
ˆˆ
fd„t          |¦  «        D ¦   «         }ˆ
ˆˆfd„t          |¦  «        D ¦   «         }	|                      ||	||d‰
›�¬¦  «         ŒYd S )Nc                 ó    •— g | ]
} ‰d i ‰¤Ž‘ŒS )r   r   )rq   rÊ   rb   Úkwargss     €€r   rs   z1TestRandom._check_dist_kwargs.<locals>.<listcomp>a  s%   ø€ Ð=Ð=Ð=¨!�t�t�~�~˜f�~�~Ð=Ð=Ð=r   c                 ó<   •— g | ]}‰r ‰di ‰¤d ‰i¤Žn ‰di ‰¤Ž‘ŒS )r¡   r   r   )rq   rÊ   r4  r&  rj   s     €€€r   rs   z1TestRandom._check_dist_kwargs.<locals>.<listcomp>b  s`   ø€ ð 1ð 1ð 1Øð >EÐZ˜&˜&Ð9Ð9 6Ð9Ð9°Ð9Ð9Ð9Ð9È&È&ÐJZÐJZÐSYÐJZÐJZð 1ð 1ð 1r   r'  r(  r,  )r¼   rb   rj   Ú
kwargslistr.  r)  r*  r&  r/  r0  r4  s    ``    `  @r   Ú_check_dist_kwargszTestRandom._check_dist_kwargs]  sÆ   øøøø€ å�:‰ŒÐÐˆØ ð 	Hð 	HˆFØ=Ð=Ð=Ð=Ð=­u°V©}¬}Ð=Ñ=Ô=ˆGð1ð 1ð 1ð 1ð 1ð 1Ý"'¨¡-¤-ð1ñ 1ô 1ˆIà×#Ò# G¨Y¸TÈÈØ>D¸fÐ(Fð $ñ Hô Hð Hð Hð		Hð 	Hr   c                 ó
  — |                       |¦  «        }|�+|                      ||j        g d¢t          dz  dz   ¬¦  «         |�|                      ||j        dg¦  «         |�|                      ||j        dg¦  «         dS dS )z0
        Check a gauss()-like function.
        N©©r¯   r¯   )r®   ç      à?)g       Àr;  r¸   rÜ   ©r.  ©r;  r   )rÀ   r1  ÚnormalrÎ   ©r¼   Úfunc2Úfunc1Úfunc0r�   r�   s         r   Ú_check_gausszTestRandom._check_gaussg  s¨   € ð
 ×Ò˜sÑ#Ô#ˆØÐØ×Ò˜U A¤HØBÐBÐBÝ$%¨¡F¨R¡Kð ñ 1ô 1ð 1ð ÐØ×Ò˜U A¤H¨v¨hÑ7Ô7Ð7ØÐØ×Ò˜U A¤H¨r¨dÑ3Ô3Ð3Ð3Ð3ð Ðr   c                 óh   — |                       t          d¦  «        d d t          ¦   «         ¦  «         d S )Nr…   ©rC  r‚   r   rå   s    r   Útest_random_gausszTestRandom.test_random_gaussv  s1   € Ø×Ò�* ^Ñ4Ô4°d¸DÕBRÑBTÔBTÑUÔUÐUÐUÐUr   c                 óh   — |                       t          d¦  «        d d t          ¦   «         ¦  «         d S )Nzrandom.normalvariaterE  rå   s    r   Útest_random_normalvariatez$TestRandom.test_random_normalvariatey  s>   € ð 	×Ò�*Ð%;Ñ<Ô<¸dÀDÝ*Ñ,Ô,ñ	.ô 	.ð 	.ð 	.ð 	.r   c                 óœ   — |                       t          d¦  «        t          d¦  «        t          d¦  «        t	          ¦   «         ¦  «         d S )Nr†   )rC  r‚   r€   r~   r   rå   s    r   Útest_numpy_normalzTestRandom.test_numpy_normal  sP   € Ø×Ò�*Ð%7Ñ8Ô8Ý#Ð$6Ñ7Ô7Ý%Ð&8Ñ9Ô9Ý*Ñ,Ô,ñ	.ô 	.ð 	.ð 	.ð 	.r   c                 óh   — |                       d d t          d¦  «        t          ¦   «         ¦  «         d S )Núnp.random.standard_normal©rC  r~   r   rå   s    r   Útest_numpy_standard_normalz%TestRandom.test_numpy_standard_normal…  s<   € Ø×Ò˜$ ¥kÐ2MÑ&NÔ&NÝ*Ñ,Ô,ñ	.ô 	.ð 	.ð 	.ð 	.r   c                 óh   — |                       d d t          d¦  «        t          ¦   «         ¦  «         d S )Nznp.random.randnrM  rå   s    r   Útest_numpy_randnzTestRandom.test_numpy_randn‰  s<   € Ø×Ò˜$ ¥kÐ2CÑ&DÔ&DÝ*Ñ,Ô,ñ	.ô 	.ð 	.ð 	.ð 	.r   c                 ó
  — |                       |¦  «        }|�+|                      ||j        g d¢t          dz  dz   ¬¦  «         |�|                      ||j        dg¦  «         |�|                      ||j        dg¦  «         dS dS )z9
        Check a lognormvariate()-like function.
        Nr9  r¸   rÜ   r<  r=  r   )rÀ   r1  Ú	lognormalrÎ   r?  s         r   Ú_check_lognormvariatez TestRandom._check_lognormvariate�  s¨   € ð
 ×Ò˜sÑ#Ô#ˆØÐØ×Ò˜U A¤KØBÐBÐBÝ$%¨¡F¨R¡Kð ñ 1ô 1ð 1ð ÐØ×Ò˜U A¤K°&°Ñ:Ô:Ð:ØÐØ×Ò˜U A¤K°"°Ñ6Ô6Ð6Ð6Ð6ð Ðr   c                 óh   — |                       t          d¦  «        d d t          ¦   «         ¦  «         d S )Nzrandom.lognormvariate)rS  r‚   r   rå   s    r   Útest_random_lognormvariatez%TestRandom.test_random_lognormvariateœ  sB   € Ø×"Ò"¥:Ð.EÑ#FÔ#FØ#'¨Õ/?Ñ/AÔ/Añ	Cô 	Cð 	Cð 	Cð 	Cr   c                 óœ   — |                       t          d¦  «        t          d¦  «        t          d¦  «        t	          ¦   «         ¦  «         d S )Núnp.random.lognormal)rS  r‚   r€   r~   r   rå   s    r   Útest_numpy_lognormalzTestRandom.test_numpy_lognormal   sP   € Ø×"Ò"¥:Ð.CÑ#DÔ#DÝ#,Ð-BÑ#CÔ#CÝ#.Ð/DÑ#EÔ#EÝ#3Ñ#5Ô#5ñ	7ô 	7ð 	7ð 	7ð 	7r   c           	      ó6  ‡— g }t          d¦  «        D ]a}	|                      |d¦  «        ¦  «         |                      |dd¦  «        ¦  «         |� |                      |ddd¦  «        ¦  «         Œb|r|                      |¦  «        j        }
n|                      |¦  «        j        }
ˆfd„dD ¦   «         }|r|nd}|D ]¤}|                      ||
|fgd|¬¦  «         |                      ||
d	d
|z   fgd|¬¦  «         |�d|                       |d	d
|z   d¦  «         |
d	d
|z   d¦  «        ¦  «         |                       |d
|z   d
d¦  «         |
d
|z   d
d¦  «        ¦  «         Œ¥|                      t          |d¦  «         |                      t          |d¦  «         |                      t          |dd¦  «         |                      t          |dd
¦  «         |�>|                      t          |ddd¦  «         |                      t          |ddd¦  «         dS dS )z4
        Check a randrange()-like function.
        rÜ   é eÍé   Nr–   c                 ó    •— g | ]
}|‰k     ¯|‘ŒS r   r   )rq   ÚwÚ	max_widths     €r   rs   z/TestRandom._check_randrange.<locals>.<listcomp>µ  s   ø€ ÐTÐTÐT˜ÀaÈ)ÂmÀm�!ÀmÀmÀmr   )rŠ   r[  é   éˆ  l        ì            )r.  r&  éþÿÿÿr¸   é   éýÿÿÿr   éûÿÿÿé   r‹   rŠ   )
rÏ   rß   rÀ   r   r½   r(   r1  ró   r  Ú
ValueError)r¼   rA  r@  Úfunc3r�   r^  Úis_numpyÚtpr’   rÊ   ÚrrÚwidthsr&  Úwidths        `        r   Ú_check_randrangezTestRandom._check_randrange¦  s‡  ø€ ð
 ˆÝ�r‘”ð 	4ð 	4ˆAØ�KŠK˜˜˜iÑ(Ô(Ñ)Ô)Ð)Ø�KŠK˜˜˜a Ñ+Ô+Ñ,Ô,Ð,ØÐ Ø—’˜E˜E ! Y°Ñ2Ô2Ñ3Ô3Ð3øØð 	5Ø×#Ò# CÑ(Ô(Ô0ˆBˆBà×%Ò% cÑ*Ô*Ô4ˆBØTÐTÐTÐTÐBÐTÑTÔTˆØ Ð*�"�" dˆØð 		>ð 		>ˆEØ×Ò˜U B¨%¨¨
¸2Ø$+ð ñ -ô -ð -à×Ò˜U B¨"¨a°©h¨Ð(8ÀØ$+ð ñ -ô -ð -àÐ Ø×'Ò'¨¨¨b°!°e±)¸QÑ(?Ô(?Ø(*¨¨2¨q°5©y¸!Ñ(<Ô(<ñ>ô >ð >à×'Ò'¨¨¨a°%©i¸¸BÑ(?Ô(?Ø(*¨¨1¨u©9°a¸Ñ(<Ô(<ñ>ô >ð >øð 	×Ò�* e¨QÑ/Ô/Ð/Ø×Ò�* e¨RÑ0Ô0Ð0Ø×Ò�* e¨Q°Ñ2Ô2Ð2Ø×Ò�* e¨Q°Ñ2Ô2Ð2ØÐØ×Ò�j¨%°°A°rÑ:Ô:Ð:Ø×Ò�j¨%°°A°qÑ9Ô9Ð9Ð9Ð9ð Ðr   c           	      óP  — t           j        dft           j        dffD ]ˆ\  }} t          |f¦  «        t          ¦  «        } t          ||f¦  «        t
          ¦  «        } t          |||f¦  «        t          ¦  «        }|                      |||t          ¦   «         |d¦  «         Œ‰d S )Nì            ì        F)	r   Úint64Úint32r   r)   r+   r.   rn  r   )r¼   rj  r^  Úcf1Úcf2Úcf3s         r   Útest_random_randrangez TestRandom.test_random_randrangeÊ  sµ   € Ý$œ{¨EÐ2µU´[À%Ð4HÐIð 	4ð 	4‰MˆB�	Ø•$˜�u‘+”+Õ/Ñ0Ô0ˆCØ"•$˜˜B�yÑ"Ô"Õ#4Ñ5Ô5ˆCØ%•$˜˜B �}Ñ%Ô%Õ&7Ñ8Ô8ˆCØ×!Ò! # s¨CÕ1AÑ1CÔ1CØ"+¨Uñ4ô 4ð 4ð 4ð		4ð 	4r   c           
      ó@  — t           j        t          j        dft           j        t          j        dffD ]j\  }}} t	          |f¦  «        t
          ¦  «        } t	          ||f¦  «        t          ¦  «        }|                      ||d t          ¦   «         |d|¦  «         Œkd S )Nrp  rq  T)	r   rr  r   rs  r   r   r#   rn  r   )r¼   rj  Únp_tpr^  rt  ru  s         r   Útest_numpy_randintzTestRandom.test_numpy_randintÒ  s¤   € Ý&+¤kµ2´8¸UÐ%CÝ&+¤kµ2´8¸UÐ%Cð%Eð 	/ð 	/Ñ ˆB��yà•$˜�u‘+”+�nÑ-Ô-ˆCØ!•$˜˜B�y‘/”/¥.Ñ1Ô1ˆCØ×!Ò! # s¨DÕ2BÑ2DÔ2DÀiØ"&¨ñ/ô /ð /ð /ð		/ð 	/r   c                 óè  — g }t          d¦  «        D ]!}|                      |dd¦  «        ¦  «         Œ"|                      t          |¦  «        t          t	          |¦  «        ¦  «        |¦  «         |                      |¦  «        }dD ].}|d         |k    rŒ|                      ||j        |gd¬¦  «         Œ/|                      t          |dd¦  «         |                      t          |dd¦  «         d	S )
z2
        Check a randint()-like function.
        rÜ   r[  rZ  )©rŠ   r[  )é   r`  )é   ra  rŠ   r<  é   r¸   N)
rÏ   rß   rÍ   r£   rá   r½   r1  r   r  rg  )r¼   rb   r�   r^  r’   rÊ   r�   r$  s           r   Ú_check_randintzTestRandom._check_randintÚ  sý   € ð
 ˆÝ�r‘”ð 	,ð 	,ˆAØ�KŠK˜˜˜Q 	Ñ*Ô*Ñ+Ô+Ð+Ð+Ø×Ò�˜T™œ¥C­¨D©	¬	¡N¤N°DÑ9Ô9Ð9à× Ò  Ñ%Ô%ˆØ=ð 	Að 	AˆDØ�AŒw˜Ò"Ð"ØØ×Ò˜T 1¤9¨t¨f¸RÐÑ@Ô@Ð@Ð@à×Ò�* d¨A¨qÑ1Ô1Ð1Ø×Ò�* d¨A¨qÑ1Ô1Ð1Ð1Ð1r   c                 óÎ   — t           j        dft           j        dffD ]G\  }} t          ||f¦  «        t          ¦  «        }|                      |t          ¦   «         |¦  «         ŒHd S )Nrp  rq  )r   rr  rs  r   r%   r€  r   )r¼   rj  r^  Úcfs       r   Útest_random_randintzTestRandom.test_random_randintí  sq   € Ý$œ{¨EÐ2µU´[À%Ð4HÐIð 	Cð 	C‰MˆB�	Ø •�r˜2�i‘”¥Ñ0Ô0ˆBØ×Ò Õ$4Ñ$6Ô$6¸	ÑBÔBÐBÐBð	Cð 	Cr   c                 ól   — |                       |¦  «        }|                      ||j        g d¢¦  «         dS )z2
        Check a uniform()-like function.
        ))ç      ø?ç    €„.A)ç      Àç     @�@)r…  r‡  N)r½   r1  rô   ©r¼   rb   r�   r�   s       r   Ú_check_uniformzTestRandom._check_uniformò  sM   € ð
 × Ò  Ñ%Ô%ˆØ×Ò˜˜qœyØ?Ð?Ð?ñ	Aô 	Að 	Að 	Að 	Ar   c                 ó~   — |                       |¦  «        }t          ||¦  «        }|                      |||¦  «         dS )z¿
        Check any numpy distribution function. Does Numba use the same keyword
        argument names as Numpy?
        And given a fixed seed, do they both return the same samples?
        N)rÀ   Úgetattrr7  )r¼   rb   r�   ÚdistribÚ	paramlistr�   Údistrib_method_of_numpys          r   Ú_check_any_distrib_kwargsz$TestRandom._check_any_distrib_kwargsû  sF   € ð ×Ò˜sÑ#Ô#ˆÝ")¨!¨WÑ"5Ô"5ÐØ×Ò Ð&=¸yÑIÔIÐIÐIÐIr   c                 ód   — |                       t          d¦  «        t          ¦   «         ¦  «         d S )Nzrandom.uniform)rŠ  r‚   r   rå   s    r   Útest_random_uniformzTestRandom.test_random_uniform  s.   € Ø×Ò�JÐ'7Ñ8Ô8Õ:JÑ:LÔ:LÑMÔMÐMÐMÐMr   c                 ód   — |                       t          d¦  «        t          ¦   «         ¦  «         d S )Núnp.random.uniform)rŠ  r‚   r   rå   s    r   Útest_numpy_uniformzTestRandom.test_numpy_uniform
  s.   € Ø×Ò�JÐ':Ñ;Ô;Õ=MÑ=OÔ=OÑPÔPÐPÐPÐPr   c           
      óˆ   — |                       t          dddg¦  «        t          ¦   «         ddddœdd	dœdddœg¬
¦  «         d S )Nr”  ÚlowÚhighrô   r…  r†  )r—  r˜  r‡  rˆ  ©rŽ  ©r�  ry   r   rå   s    r   Útest_numpy_uniform_kwargsz$TestRandom.test_numpy_uniform_kwargs  sm   € Ø×&Ò&ÝÐ/°%¸°ÑAÔAÝÑÔØØ"¨CÐ0Ð0Ø#¨SÐ1Ð1Ø"¨DÐ1Ð1ð3ð	 	'ñ 	4ô 	4ð 	4ð 	4ð 	4r   c                 ó¬   — |                       t          dg d¢¦  «        t          ¦   «         dddddœddddœddddœddd dœddd dœddd dœg¬	¦  «         d S )
Nr”  ©r—  r˜  r6   rô   r…  r†  r   r‡  rˆ  r™  rš  rå   s    r   Útest_numpy_uniform_empty_sizez(TestRandom.test_numpy_uniform_empty_size  s£   € Ø×&Ò&ÝÐ/Ð1HÐ1HÐ1HÑIÔIÝÑÔØØ"¨C¸Ð<Ð<Ø#¨S¸"Ð=Ð=Ø"¨D¸"Ð=Ð=Ø"¨C¸Ð>Ð>Ø#¨S¸$Ð?Ð?Ø"¨D¸$Ð?Ð?ðBð	 	'ñ 		Cô 		Cð 		Cð 		Cð 		Cr   c                 óª   — |                       |¦  «        }|�|                      ||j        g d¢¦  «         |                      ||j        dg¦  «         dS )z5
        Check a triangular()-like function.
        N)©r…  ç      @)r‡  r…  )r…  r…  )r…  r¡  çš™™™™™@)r½   r1  Ú
triangular)r¼   r@  rh  r�   r�   s        r   Ú_check_triangularzTestRandom._check_triangular"  sj   € ð
 × Ò  Ñ%Ô%ˆØÐØ×Ò˜U A¤LØBÐBÐBñDô Dð Dà×Ò˜ ¤¨Ð.?Ñ@Ô@Ð@Ð@Ð@r   c                 ó€   — |                       t          d¦  «        t          d¦  «        t          ¦   «         ¦  «         d S )Nzrandom.triangular)r¤  r‚   r„   r   rå   s    r   Útest_random_triangularz!TestRandom.test_random_triangular-  sD   € Ø×Ò�zÐ*=Ñ>Ô>Ý*Ð+>Ñ?Ô?Ý/Ñ1Ô1ñ	3ô 	3ð 	3ð 	3ð 	3r   c                 óv   ‡— t          d¦  «        Šˆfd„}|                      d |t          ¦   «         ¦  «         d S )Núnp.random.triangularc                 ó   •—  ‰| ||¦  «        S r   r   )Úlr�   Úmr£  s      €r   ú<lambda>z2TestRandom.test_numpy_triangular.<locals>.<lambda>4  s   ø€ ¨:¨:°a¸¸AÑ+>Ô+>€ r   )r„   r¤  r   )r¼   Úfixed_triangularr£  s     @r   Útest_numpy_triangularz TestRandom.test_numpy_triangular2  sF   ø€ Ý Ð!7Ñ8Ô8ˆ
Ø>Ð>Ð>Ð>ÐØ×Ò˜tÐ%5Õ7GÑ7IÔ7IÑJÔJÐJÐJÐJr   c                 ó>  — |                       |¦  «        }|�|                      ||j        g d¢¦  «         |�3|                       |d¦  «        |                     dd¦  «        ¦  «         |�t|                      t
          |dd¦  «         |                      t
          |dd¦  «         |                      t
          |dd¦  «         |                      t
          |dd¦  «         |�:|                      t
          |d¦  «         |                      t
          |d¦  «         dS dS )z7
        Check a gammavariate()-like function.
        N)©r;  ç      @)r¯   r…  r   r…  r¯   r¢   ç      à¿)r½   r1  r°   ró   r  rg  )r¼   r@  rA  r�   r�   s        r   Ú_check_gammavariatezTestRandom._check_gammavariate7  s+  € ð
 × Ò  Ñ%Ô%ˆØÐØ×Ò˜U A¤NØAÐAÐAñCô Cð CàÐØ×#Ò# E E¨#¡J¤J°·²¸sÀCÑ0HÔ0HÑIÔIÐIàÐØ×Ò�j¨%°°cÑ:Ô:Ð:Ø×Ò�j¨%°°cÑ:Ô:Ð:Ø×Ò�j¨%°°sÑ;Ô;Ð;Ø×Ò�j¨%°°dÑ;Ô;Ð;ØÐØ×Ò�j¨%°Ñ5Ô5Ð5Ø×Ò�j¨%°Ñ6Ô6Ð6Ð6Ð6ð Ðr   c                 óf   — |                       t          d¦  «        d t          ¦   «         ¦  «         d S )Nzrandom.gammavariate)r³  r‚   r   rå   s    r   Útest_random_gammavariatez#TestRandom.test_random_gammavariateL  s:   € Ø× Ò ¥Ð,AÑ!BÔ!BÀDÝ!1Ñ!3Ô!3ñ	5ô 	5ð 	5ð 	5ð 	5r   c                 óà   — |                       t          d¦  «        t          d¦  «        t          ¦   «         ¦  «         |                       d t          d¦  «        t          ¦   «         ¦  «         d S )Núnp.random.gammaúnp.random.standard_gamma)r³  r‚   r€   r   rå   s    r   Útest_numpy_gammazTestRandom.test_numpy_gammaP  su   € Ø× Ò ¥Ð,=Ñ!>Ô!>Ý!*Ð+<Ñ!=Ô!=Ý!1Ñ!3Ô!3ñ	5ô 	5ð 	5ð 	× Ò  Ý!*Ð+EÑ!FÔ!FÝ!1Ñ!3Ô!3ñ	5ô 	5ð 	5ð 	5ð 	5r   c                 óR  — |                       |¦  «        }|                      ||j        dg¦  «         |                      t          |dd¦  «         |                      t          |dd¦  «         |                      t          |dd¦  «         |                      t          |dd¦  «         dS )z6
        Check a betavariate()-like function.
        r°  r¢   r¯   r²  N)r½   r1  Úbetavariater  rg  r‰  s       r   Ú_check_betavariatezTestRandom._check_betavariateX  s¡   € ð
 × Ò  Ñ%Ô%ˆØ×Ò˜˜qœ}¨z¨lÑ;Ô;Ð;à×Ò�* d¨C°Ñ5Ô5Ð5Ø×Ò�* d¨C°Ñ5Ô5Ð5Ø×Ò�* d¨D°#Ñ6Ô6Ð6Ø×Ò�* d¨C°Ñ6Ô6Ð6Ð6Ð6r   c                 ód   — |                       t          d¦  «        t          ¦   «         ¦  «         d S )Nzrandom.betavariate)r¼  r‚   r   rå   s    r   Útest_random_betavariatez"TestRandom.test_random_betavariatee  s.   € Ø×Ò¥
Ð+?Ñ @Ô @ÕBRÑBTÔBTÑUÔUÐUÐUÐUr   c                 ód   — |                       t          d¦  «        t          ¦   «         ¦  «         d S )Núnp.random.beta)r¼  r‚   r   rå   s    r   Útest_numpy_betazTestRandom.test_numpy_betah  s.   € Ø×Ò¥
Ð+;Ñ <Ô <Õ>NÑ>PÔ>PÑQÔQÐQÐQÐQr   c                 ój   — |                       |¦  «        }|                      ||j        dg¦  «         dS )z:
        Check a vonmisesvariate()-like function.
        r°  N)r½   r1  Úvonmisesvariater‰  s       r   Ú_check_vonmisesvariatez!TestRandom._check_vonmisesvariatek  s:   € ð × Ò  Ñ%Ô%ˆØ×Ò˜˜qÔ0°:°,Ñ?Ô?Ð?Ð?Ð?r   c                 ód   — |                       t          d¦  «        t          ¦   «         ¦  «         d S )Nzrandom.vonmisesvariate)rÄ  r‚   r   rå   s    r   Útest_random_vonmisesvariatez&TestRandom.test_random_vonmisesvariater  s8   € Ø×#Ò#¥JÐ/GÑ$HÔ$HÝ$4Ñ$6Ô$6ñ	8ô 	8ð 	8ð 	8ð 	8r   c                 ód   — |                       t          d¦  «        t          ¦   «         ¦  «         d S )Núnp.random.vonmises)rÄ  r‚   r   rå   s    r   Útest_numpy_vonmiseszTestRandom.test_numpy_vonmisesv  s8   € Ø×#Ò#¥JÐ/CÑ$DÔ$DÝ$4Ñ$6Ô$6ñ	8ô 	8ð 	8ð 	8ð 	8r   c           	      óÌ   — |                       |¦  «        }dD ]K}t          d¦  «        D ]9}|                       ||¦  «        |                     d|z  ¦  «        d¬¦  «         Œ:ŒLdS )z‰
        Check a expovariate()-like function.  Note the second argument
        is inversed compared to np.random.exponential().
        )gš™™™™™É?r;  r…  r–   rŠ   r   )r)  N)rÀ   rÏ   ró   Úexponential)r¼   rb   r�   r�   ÚlambdrÊ   s         r   Ú_check_expovariatezTestRandom._check_expovariatez  s‹   € ð
 ×Ò˜sÑ#Ô#ˆØ$ð 	7ð 	7ˆEÝ˜1‘X”Xð 7ð 7�Ø×'Ò'¨¨¨U©¬°Q·]²]À1ÀuÁ9Ñ5MÔ5MØ-5ð (ñ 7ô 7ð 7ð 7ð7ð	7ð 	7r   c                 ód   — |                       t          d¦  «        t          ¦   «         ¦  «         d S )Nzrandom.expovariate)rÍ  r€   r   rå   s    r   Útest_random_expovariatez"TestRandom.test_random_expovariate…  r  r   c                 ó²   — |                       |¦  «        }|�|                      ||j        g d¢¦  «         |�|                      ||j        dg¦  «         dS dS )z6
        Check a exponential()-like function.
        N)r=  ©r¯   ©r…  r   )rÀ   r1  rË  )r¼   rA  rB  r�   r�   s        r   Ú_check_exponentialzTestRandom._check_exponentialˆ  sn   € ð ×Ò˜sÑ#Ô#ˆØÐØ×Ò˜U A¤MÐ3KÐ3KÐ3KÑLÔLÐLØÐØ×Ò˜U A¤M°B°4Ñ8Ô8Ð8Ð8Ð8ð Ðr   c                 ó€   — |                       t          d¦  «        t          d¦  «        t          ¦   «         ¦  «         d S )Núnp.random.exponential)rÓ  r€   r~   r   rå   s    r   Útest_numpy_exponentialz!TestRandom.test_numpy_exponential’  sD   € Ø×Ò¥	Ð*AÑ BÔ BÝ +Ð,CÑ DÔ DÝ 0Ñ 2Ô 2ñ	4ô 	4ð 	4ð 	4ð 	4r   c                 óf   — |                       d t          d¦  «        t          ¦   «         ¦  «         d S )Núnp.random.standard_exponential)rÓ  r~   r   rå   s    r   Útest_numpy_standard_exponentialz*TestRandom.test_numpy_standard_exponential—  s;   € Ø×Ò Ý +Ð,LÑ MÔ MÝ 0Ñ 2Ô 2ñ	4ô 	4ð 	4ð 	4ð 	4r   c                 ól   — |                       |¦  «        }|                      ||j        ddg¦  «         dS )z8
        Check a paretovariate()-like function.
        r=  )r¡  N)r½   r1  Úparetovariater‰  s       r   Ú_check_paretovariatezTestRandom._check_paretovariateœ  s<   € ð
 × Ò  Ñ%Ô%ˆØ×Ò˜˜qœ°¸Ð0@ÑAÔAÐAÐAÐAr   c                 ód   — |                       t          d¦  «        t          ¦   «         ¦  «         d S )Nzrandom.paretovariate)rÜ  r€   r   rå   s    r   Útest_random_paretovariatez$TestRandom.test_random_paretovariate¤  s.   € Ø×!Ò!¥)Ð,BÑ"CÔ"CÕEUÑEWÔEWÑXÔXÐXÐXÐXr   c                 ót   ‡— t          d¦  «        Šˆfd„}|                      |t          ¦   «         ¦  «         d S )Núnp.random.paretoc                 ó    •—  ‰| ¦  «        dz   S )Nr¯   r   )r   Úparetos    €r   r¬  z.TestRandom.test_numpy_pareto.<locals>.<lambda>©  s   ø€   ¨¡¤¨S¡€ r   )r€   rÜ  r   )r¼   Úfixed_paretorâ  s     @r   Útest_numpy_paretozTestRandom.test_numpy_pareto§  sB   ø€ ÝÐ-Ñ.Ô.ˆØ0Ð0Ð0Ð0ˆØ×!Ò! ,Õ0@Ñ0BÔ0BÑCÔCÐCÐCÐCr   c                 ó   — |                       |¦  «        }|�|                      ||j        dg¦  «         |�Et          d¦  «        D ]7}|                       |d¦  «        |                     dd¦  «        ¦  «         Œ6dS dS )z9
        Check a weibullvariate()-like function.
        Nr°  r–   r±  r¯   )r½   r1  ÚweibullvariaterÏ   ró   )r¼   r@  rA  r�   r�   rÊ   s         r   Ú_check_weibullvariatez TestRandom._check_weibullvariate¬  s©   € ð
 × Ò  Ñ%Ô%ˆØÐØ×Ò˜U AÔ$4°z°lÑCÔCÐCØÐÝ˜1‘X”Xð Dð D�Ø×'Ò'¨¨¨c©
¬
Ø()×(8Ò(8¸¸cÑ(BÔ(BñDô Dð Dð Dð ÐðDð Dr   c                 óf   — |                       t          d¦  «        d t          ¦   «         ¦  «         d S )Nzrandom.weibullvariate)rç  r‚   r   rå   s    r   Útest_random_weibullvariatez%TestRandom.test_random_weibullvariate¹  s;   € Ø×"Ò"¥:Ð.EÑ#FÔ#FØ#'Õ)9Ñ);Ô);ñ	=ô 	=ð 	=ð 	=ð 	=r   c                 óf   — |                       d t          d¦  «        t          ¦   «         ¦  «         d S )Núnp.random.weibull)rç  r€   r   rå   s    r   Útest_numpy_weibullzTestRandom.test_numpy_weibull½  s:   € Ø×"Ò" 4­Ð3FÑ)GÔ)GÝ#3Ñ#5Ô#5ñ	7ô 	7ð 	7ð 	7ð 	7r   c           	      ó(  — t          d¦  «        }|                      t          ¦   «         d¦  «        }|                      ||j        g d¢¦  «         dD ]è}|                       ||d¦  «        d¦  «         |                       ||d¦  «        |¦  «         dD ]£} |||¦  «        }|dk    r
||z
  }d	|z
  }|                      |d¦  «         |                      ||¦  «         ||z  }d
|z  t          j	        |¦  «        z  }|                      |||z
  |||f¦  «         |                      |||z   |||f¦  «         Œ¤Œé|  
                    t          |dd¦  «         |  
                    t          |dd¦  «         |  
                    t          |dd¦  «         d S )Núnp.random.binomialr   ))é   g      Ð?)é<   r;  )é=   r;  )éd   çš™™™™™Ù?)rò  g333333ã?)rò  éè  é'  r¢   r¯   )	g-Cëâ6?çš™™™™™¹?ró  g9î”Öÿß?r;  gãˆµø à?çš™™™™™é?çÍÌÌÌÌÌì?ç§èH.ÿï?r;  rŠ   r–   r‹   rÜ   çš™™™™™¹¿çš™™™™™ñ?)r‚   rÀ   r   r1  ÚbinomialrÍ   ÚassertGreaterEqualÚassertLessEqualÚmathÚsqrtr  rg  )r¼   rü  r�   r?   r  rZ   Útols          r   Útest_numpy_binomialzTestRandom.test_numpy_binomialÁ  sÙ  € ÝÐ2Ñ3Ô3ˆØ×ÒÕ/Ñ1Ô1°1Ñ5Ô5ˆØ×Ò˜ 1¤:ð 0<ð 0<ð 0<ñ 	=ô 	=ð 	=ð $ð 	Cð 	CˆAØ×Ò˜X˜X a¨Ñ-Ô-¨qÑ1Ô1Ð1Ø×Ò˜X˜X a¨Ñ-Ô-¨qÑ1Ô1Ð1ØPð 
Cð 
C�Ø�H˜Q ‘N”N�Ø�s’7�7Ø˜A™�AØ˜A™�AØ×'Ò'¨¨1Ñ-Ô-Ð-Ø×$Ò$ Q¨Ñ*Ô*Ð*Ø˜q™5�Ø˜!‘e�dœi¨™lœlÑ*�Ø×'Ò'¨¨8°c©>¸A¸qÀ!¸9ÑEÔEÐEØ×$Ò$ Q¨°3©¸¸A¸q¸	ÑBÔBÐBÐBð
Cð 	×Ò�* h°°CÑ8Ô8Ð8Ø×Ò�* h°°DÑ9Ô9Ð9Ø×Ò�* h°°CÑ8Ô8Ð8Ð8Ð8r   c                 óÈ   — t          d¦  «        }|                      t          ¦   «         ¦  «        }|                      |t	          j        t          |¦  «        ddg¦  «         d S )Núnp.random.chisquarerÒ  ©r±  )r€   r½   r   r1  Ú	functoolsÚpartialr±   )r¼   Ú	chisquarer�   s      r   Útest_numpy_chisquarezTestRandom.test_numpy_chisquareÛ  sf   € ÝÐ3Ñ4Ô4ˆ	Ø× Ò Õ!1Ñ!3Ô!3Ñ4Ô4ˆØ×Ò˜Ý"Ô*­<¸Ñ;Ô;Ø  &Ð)ñ	+ô 	+ð 	+ð 	+ð 	+r   c                 óÈ   — t          d¦  «        }|                      t          ¦   «         ¦  «        }|                      |t	          j        t          |¦  «        ddg¦  «         d S )Núnp.random.f©r;  r…  )r…  r÷  )r‚   r½   r   r1  r  r  rµ   )r¼   Úfr�   s      r   Útest_numpy_fzTestRandom.test_numpy_fâ  sd   € Ý�}Ñ%Ô%ˆØ× Ò Õ!1Ñ!3Ô!3Ñ4Ô4ˆØ×Ò˜�IÔ-­d°AÑ6Ô6Ø$ jÐ1ñ	3ô 	3ð 	3ð 	3ð 	3r   c                 ó”  ‡— t          d¦  «        Š|                      t          ‰d¦  «         |                      t          ‰d¦  «         |                      t          ‰d¦  «         d}ˆfd„t          |¦  «        D ¦   «         }|                      |dg|z  ¦  «         ˆfd„t          |¦  «        D ¦   «         }|                     d¦  «        }|                      ||d	z  ¦  «         |                      ||¦  «         |                      d
„ |D ¦   «         ¦  «         ˆfd„t          |¦  «        D ¦   «         }|  	                    d„ |D ¦   «         ¦  «         ˆfd„t          |¦  «        D ¦   «         }|  	                    d„ |D ¦   «         ¦  «         ˆfd„t          |¦  «        D ¦   «         }|  	                    d„ |D ¦   «         ¦  «         d S )Núnp.random.geometricg      ð¿r¢   gj¼t“ð?éÈ   c                 ó&   •— g | ]} ‰d ¦  «        ‘ŒS rÑ  r   ©rq   rÊ   Úgeoms     €r   rs   z3TestRandom.test_numpy_geometric.<locals>.<listcomp>ð  ó!   ø€ Ð)Ð)Ð)˜1ˆTˆT�#‰YŒYÐ)Ð)Ð)r   rŠ   c                 ó&   •— g | ]} ‰d ¦  «        ‘ŒS ©rø  r   r  s     €r   rs   z3TestRandom.test_numpy_geometric.<locals>.<listcomp>ò  r  r   r¸   c                 ó   — g | ]
}|d k    ¯|‘ŒS )rô  r   rÉ   s     r   rs   z3TestRandom.test_numpy_geometric.<locals>.<listcomp>ö  s   € Ð3Ð3Ð3 ¨!¨dª(¨(˜!¨(¨(¨(r   c                 ó&   •— g | ]} ‰d ¦  «        ‘ŒS )ró  r   r  s     €r   rs   z3TestRandom.test_numpy_geometric.<locals>.<listcomp>÷  r  r   c                 ó   — g | ]
}|d k    ¯|‘ŒS )r  r   rÉ   s     r   rs   z3TestRandom.test_numpy_geometric.<locals>.<listcomp>ø  s   € Ð/Ð/Ð/˜q¨¨Qª¨˜¨¨¨r   c                 ó&   •— g | ]} ‰d ¦  «        ‘ŒS )g{®Gáz„?r   r  s     €r   rs   z3TestRandom.test_numpy_geometric.<locals>.<listcomp>ù  s!   ø€ Ð*Ð*Ð*˜AˆTˆT�$‰ZŒZÐ*Ð*Ð*r   c                 ó   — g | ]
}|d k    ¯|‘ŒS )é2   r   rÉ   s     r   rs   z3TestRandom.test_numpy_geometric.<locals>.<listcomp>ú  s   € Ð0Ð0Ð0˜q¨¨Rª¨˜¨¨¨r   c                 ó&   •— g | ]} ‰d ¦  «        ‘ŒS )gVçž¯Ò<r   r  s     €r   rs   z3TestRandom.test_numpy_geometric.<locals>.<listcomp>û  s!   ø€ Ð+Ð+Ð+˜QˆTˆT�%‰[Œ[Ð+Ð+Ð+r   c                 ó   — g | ]
}|d k    ¯|‘ŒS )ì        r   rÉ   s     r   rs   z3TestRandom.test_numpy_geometric.<locals>.<listcomp>ü  s   € Ð3Ð3Ð3˜q¨¨Uª¨˜¨¨¨r   )
r€   r  rg  rÏ   ró   Úcountrý  Ú
assertLessÚassertFalseÚ
assertTrue)r¼   rÎ   r�   r?   r  s       @r   Útest_numpy_geometriczTestRandom.test_numpy_geometricè  sÞ  ø€ ÝÐ.Ñ/Ô/ˆà×Ò�* d¨DÑ1Ô1Ð1Ø×Ò�* d¨CÑ0Ô0Ð0Ø×Ò�* d¨EÑ2Ô2Ð2àˆØ)Ð)Ð)Ð)¥ a¡¤Ð)Ñ)Ô)ˆØ×Ò  A 3¨¡7Ñ+Ô+Ð+Ø)Ð)Ð)Ð)¥ a¡¤Ð)Ñ)Ô)ˆØ�GŠG�A‰JŒJˆØ×Ò  1¨¡6Ñ*Ô*Ð*Ø�Š˜˜1ÑÔÐØ×ÒÐ3Ð3 QÐ3Ñ3Ô3Ñ4Ô4Ð4Ø)Ð)Ð)Ð)¥ a¡¤Ð)Ñ)Ô)ˆØ�ŠÐ/Ð/ AÐ/Ñ/Ô/Ñ0Ô0Ð0Ø*Ð*Ð*Ð*¥ q¡¤Ð*Ñ*Ô*ˆØ�ŠÐ0Ð0 AÐ0Ñ0Ô0Ñ1Ô1Ð1Ø+Ð+Ð+Ð+¥%¨¡(¤(Ð+Ñ+Ô+ˆØ�ŠÐ3Ð3 AÐ3Ñ3Ô3Ñ4Ô4Ð4Ð4Ð4r   c                 ó¢   — t          d¦  «        }|                      t          ¦   «         ¦  «        }|                      ||j        ddg¦  «         d S )Núnp.random.gumbel©r¢   r¯   ©ç      ø¿r¡  )r‚   rÀ   r   r1  Úgumbel)r¼   r+  r�   s      r   Útest_numpy_gumbelzTestRandom.test_numpy_gumbelþ  sO   € ÝÐ.Ñ/Ô/ˆØ×ÒÕ/Ñ1Ô1Ñ2Ô2ˆØ×Ò˜ ¤¨J¸Ð+DÑEÔEÐEÐEÐEr   c           	      ó€   — |                       t          dddg¦  «        t          ¦   «         ddddœdd	dœg¬
¦  «         d S )Nr'  ÚlocÚscaler+  r¢   r¯   )r.  r/  r*  r¡  ©r�  rŽ  rš  rå   s    r   Útest_numpy_gumbel_kwargsz#TestRandom.test_numpy_gumbel_kwargs  sc   € Ø×&Ò&ÝÐ.°¸Ð0@ÑAÔAÝÑÔØØ"¨SÐ1Ð1Ø#¨cÐ2Ð2ð4ð	 	'ñ 	5ô 	5ð 	5ð 	5ð 	5r   c                 ó˜  ‡— t          d¦  «        Š|                      t          ¦   «         ¦  «        }|                      ‰|j        ddgd¬¦  «         ˆfd„t          d¦  «        D ¦   «         }|                      t          d„ |D ¦   «         ¦  «        |¦  «         |                      t          j
        |¦  «        d	¦  «         |                      t          j
        |¦  «        d
¦  «         ˆfd„t          d¦  «        D ¦   «         }|                      t          d„ |D ¦   «         ¦  «        |¦  «         |                      t          j
        |¦  «        d¦  «         ˆfd„t          d¦  «        D ¦   «         }|                      t          d„ |D ¦   «         ¦  «        |¦  «         |                      t          j
        |¦  «        d¦  «         d S )Núnp.random.hypergeometric©rô  r`  rÜ   )r`  rô  rÜ   é   r<  c                 ó*   •— g | ]} ‰d d d¦  «        ‘ŒS )rô  rò  r   ©rq   rÊ   Úhgs     €r   rs   z8TestRandom.test_numpy_hypergeometric.<locals>.<listcomp>  s'   ø€ Ð5Ð5Ð5 QˆRˆR��d˜CÑ Ô Ð5Ð5Ð5r   rò  c              3   ó.   K  — | ]}|d k    o|dk    V — ŒdS ©r   rò  Nr   r™   s     r   ú	<genexpr>z7TestRandom.test_numpy_hypergeometric.<locals>.<genexpr>  ó/   è è € Ð;Ð;°A˜A šFÐ/ q¨C¢xÐ;Ð;Ð;Ð;Ð;Ð;r   g      D@g      N@c                 ó*   •— g | ]} ‰d dd¦  «        ‘ŒS )rô  é † rò  r   r7  s     €r   rs   z8TestRandom.test_numpy_hypergeometric.<locals>.<listcomp>  s'   ø€ Ð7Ð7Ð7 qˆRˆR��f˜cÑ"Ô"Ð7Ð7Ð7r   c              3   ó.   K  — | ]}|d k    o|dk    V — ŒdS r:  r   r™   s     r   r;  z7TestRandom.test_numpy_hypergeometric.<locals>.<genexpr>  r<  r   ç      $@c                 ó*   •— g | ]} ‰d dd¦  «        ‘ŒS )r>  rô  rò  r   r7  s     €r   rs   z8TestRandom.test_numpy_hypergeometric.<locals>.<listcomp>  s'   ø€ Ð7Ð7Ð7 qˆRˆR�˜˜cÑ"Ô"Ð7Ð7Ð7r   c              3   ó.   K  — | ]}|d k    o|dk    V — ŒdS r:  r   r™   s     r   r;  z7TestRandom.test_numpy_hypergeometric.<locals>.<genexpr>  r<  r   g     €V@)r„   rÀ   r   r1  ÚhypergeometricrÏ   r$  Úallrý  r   Úmeanrþ  )r¼   r�   r8  s     @r   Útest_numpy_hypergeometricz$TestRandom.test_numpy_hypergeometric  s¹  ø€ åÐ3Ñ4Ô4ˆØ×ÒÕ/Ñ1Ô1Ñ2Ô2ˆØ×Ò˜˜QÔ-Ø*Ð,<Ð=Ø "ð 	ñ 	$ô 	$ð 	$ð 6Ð5Ð5Ð5­%°©*¬*Ð5Ñ5Ô5ˆØ�Š�Ð;Ð;¸Ð;Ñ;Ô;Ñ;Ô;¸QÑ?Ô?Ð?Ø×Ò¥¤¨¡
¤
¨DÑ1Ô1Ð1Ø×Ò�RœW Q™ZœZ¨Ñ.Ô.Ð.Ø7Ð7Ð7Ð7­E°#©J¬JÐ7Ñ7Ô7ˆØ�Š�Ð;Ð;¸Ð;Ñ;Ô;Ñ;Ô;¸QÑ?Ô?Ð?Ø×Ò�RœW Q™ZœZ¨Ñ.Ô.Ð.Ø7Ð7Ð7Ð7­E°#©J¬JÐ7Ñ7Ô7ˆØ�Š�Ð;Ð;¸Ð;Ñ;Ô;Ñ;Ô;¸QÑ?Ô?Ð?Ø×Ò¥¤¨¡
¤
¨DÑ1Ô1Ð1Ð1Ð1r   c                 óH  — |                       t          ¦   «         ¦  «        }|                      t          d¦  «        |j        ddg¦  «         |                      t          d¦  «        |j        ddg¦  «         |                      t          d¦  «        |j        dg¦  «         d S )Núnp.random.laplacer(  r)  ©r¢   ©r*  r   )rÀ   r   r1  r‚   Úlaplacer€   r~   ©r¼   r�   s     r   Útest_numpy_laplacezTestRandom.test_numpy_laplace  s¥   € Ø×ÒÕ/Ñ1Ô1Ñ2Ô2ˆØ×Ò�Ð$7Ñ8Ô8¸!¼)Ø$ kÐ2ñ	4ô 	4ð 	4à×Ò�Ð#6Ñ7Ô7¸¼Ø  'Ð*ñ	,ô 	,ð 	,à×Ò�Ð%8Ñ9Ô9¸1¼9ÀrÀdÑKÔKÐKÐKÐKr   c                 óH  — |                       t          ¦   «         ¦  «        }|                      t          d¦  «        |j        ddg¦  «         |                      t          d¦  «        |j        ddg¦  «         |                      t          d¦  «        |j        dg¦  «         d S )Núnp.random.logisticr(  r)  rI  rJ  r   )rÀ   r   r1  r‚   Úlogisticr€   r~   rL  s     r   Útest_numpy_logisticzTestRandom.test_numpy_logistic'  s¥   € Ø×ÒÕ/Ñ1Ô1Ñ2Ô2ˆØ×Ò�Ð$8Ñ9Ô9¸1¼:Ø$ kÐ2ñ	4ô 	4ð 	4à×Ò�Ð#7Ñ8Ô8¸!¼*Ø  'Ð*ñ	,ô 	,ð 	,à×Ò�Ð%9Ñ:Ô:¸A¼JÈÈÑMÔMÐMÐMÐMr   c                 óø  ‡— |                       t          ¦   «         ¦  «        }t          d¦  «        Š|                      ‰|j        g d¢d¬¦  «         |                       t          ¦   «         d¬¦  «        }|                      ˆfd„t          d¦  «        D ¦   «         g d	¢¦  «         |                      t          ‰d
¦  «         |                      t          ‰d¦  «         |                      t          ‰d¦  «         d S )Núnp.random.logseries)©rö  )g®Gáz®ï?)rù  r  r<  rŠ   ©rW   c                 ó&   •— g | ]} ‰d ¦  «        ‘ŒS )g{üÿÿÿÿï?r   )rq   rÊ   Ú	logseriess     €r   rs   z3TestRandom.test_numpy_logseries.<locals>.<listcomp>8  s#   ø€ ÐHÐHÐH¸˜)˜) OÑ4Ô4ÐHÐHÐHr   rÜ   )
iÛv�xið- r5  iìË  in‰Ž i¬Íç)l   †&c€iÜ€oirHô iâ  r¢   rú  rû  )	rÀ   r   r€   r1  rW  rÍ   rÏ   r  rg  )r¼   r�   rW  s     @r   Útest_numpy_logserieszTestRandom.test_numpy_logseries/  s  ø€ Ø×ÒÕ/Ñ1Ô1Ñ2Ô2ˆÝÐ3Ñ4Ô4ˆ	Ø×Ò˜ A¤KØ5Ð5Ð5Ø "ð 	ñ 	$ô 	$ð 	$ð
 ×ÒÕ/Ñ1Ô1¸ÐÑ:Ô:ˆØ×ÒÐHÐHÐHÐH½eÀB¹i¼iÐHÑHÔHðCð Cð Cñ	Dô 	Dð 	Dð 	×Ò�* i°Ñ5Ô5Ð5Ø×Ò�* i°Ñ6Ô6Ð6Ø×Ò�* i°Ñ5Ô5Ð5Ð5Ð5r   c                 óÞ   — |                       t          ¦   «         ¦  «        }t          d¦  «        }|                      ||j        g d¢d¬¦  «         |                      t          |d¦  «         d S )Núnp.random.poisson)rI  r=  ©r®   )r@  )g     $Œ@r  r<  rú  )rÀ   r   r€   r1  Úpoissonr  rg  )r¼   r�   r\  s      r   Útest_numpy_poissonzTestRandom.test_numpy_poisson?  sy   € Ø×ÒÕ/Ñ1Ô1Ñ2Ô2ˆÝÐ/Ñ0Ô0ˆà×Ò˜ !¤)ØDÐDÐDØ "ð 	ñ 	$ô 	$ð 	$ð 	×Ò�* g¨tÑ4Ô4Ð4Ð4Ð4r   c                 óŒ  ‡— |                       t          ¦   «         d¦  «         t          d¦  «        Š|                      ˆfd„t	          d¦  «        D ¦   «         g d¢¦  «         |                      ˆfd„t	          d¦  «        D ¦   «         g d¢¦  «         |                      ˆfd„t	          d¦  «        D ¦   «         g d	¢¦  «         |                      ˆfd
„t	          d¦  «        D ¦   «         g d¢¦  «         t          j        ˆfd„t	          d¦  «        D ¦   «         ¦  «        }|                      |d¦  «         |                      |d¦  «         |  	                    t          ‰dd¦  «         |  	                    t          ‰dd¦  «         |  	                    t          ‰dd¦  «         |  	                    t          ‰dd¦  «         d S )Nr   únp.random.negative_binomialc                 ó(   •— g | ]} ‰d d¦  «        ‘ŒS )rÜ   rø  r   ©rq   rÊ   Únegbins     €r   rs   z;TestRandom.test_numpy_negative_binomial.<locals>.<listcomp>K  ó#   ø€ Ð=Ð=Ð=¨a˜&˜&  S™/œ/Ð=Ð=Ð=r   rÜ   )
r¸   r–   rŠ   r[  r¸   rŠ   r   rŠ   r   r   c                 ó(   •— g | ]} ‰d d¦  «        ‘ŒS )rÜ   rö  r   ra  s     €r   rs   z;TestRandom.test_numpy_negative_binomial.<locals>.<listcomp>M  rc  r   )
é7   éG   é8   é9   rg  rg  é"   re  ée   éC   c                 ó(   •— g | ]} ‰d d¦  «        ‘ŒS )rô  rö  r   ra  s     €r   rs   z;TestRandom.test_numpy_negative_binomial.<locals>.<listcomp>O  s%   ø€ Ð?Ð?Ð?°˜&˜&  sÑ+Ô+Ð?Ð?Ð?r   )
ió#  iÀ!  iy#  iL$  iê"  iÍ#  i½#  iF"  i¶"  i�#  c                 ó(   •— g | ]} ‰d d¦  «        ‘ŒS )ç333333Ó?rö  r   ra  s     €r   rs   z;TestRandom.test_numpy_negative_binomial.<locals>.<listcomp>R  s%   ø€ Ð>Ð>Ð>¨q˜&˜&  cÑ*Ô*Ð>Ð>Ð>r   )
r   r¸   é   r  r  r   r   r   rŠ   r   c                 ó(   •— g | ]} ‰d d¦  «        ‘ŒS )i Êš;rö  r   ra  s     €r   rs   z;TestRandom.test_numpy_negative_binomial.<locals>.<listcomp>T  s5   ø€ ð )ð )ð )Øð �V˜J¨Ñ,Ô,ð )ð )ð )r   r  g   |ž˜ Bg   $sî Br;  r‹   rú  rû  )rÀ   r   r‚   rÍ   rÏ   r   rE  ÚassertGreaterr"  r  rg  )r¼   r«  rb  s     @r   Útest_numpy_negative_binomialz'TestRandom.test_numpy_negative_binomialH  s  ø€ Ø×ÒÕ+Ñ-Ô-¨qÑ1Ô1Ð1ÝÐ9Ñ:Ô:ˆØ×ÒÐ=Ð=Ð=Ð=µ5¸±9´9Ð=Ñ=Ô=Ø7Ð7Ð7ñ	9ô 	9ð 	9à×ÒÐ=Ð=Ð=Ð=µ5¸±9´9Ð=Ñ=Ô=ØBÐBÐBñ	Dô 	Dð 	Dà×ÒÐ?Ð?Ð?Ð?µU¸2±Y´YÐ?Ñ?Ô?ð8ð 8ð 8ñ	9ô 	9ð 	9ð 	×ÒÐ>Ð>Ð>Ð>µE¸"±I´IÐ>Ñ>Ô>Ø8Ð8Ð8ñ	:ô 	:ð 	:åŒGð )ð )ð )ð )Ý# B™iœið)ñ )ô )ñ *ô *ˆà×Ò˜1˜jÑ)Ô)Ð)Ø�Š˜˜:Ñ&Ô&Ð&Ø×Ò�* f¨a°Ñ5Ô5Ð5Ø×Ò�* f¨b°#Ñ6Ô6Ð6Ø×Ò�* f¨b°$Ñ7Ô7Ð7Ø×Ò�* f¨b°#Ñ6Ô6Ð6Ð6Ð6r   c                 ó  — |                       t          ¦   «         ¦  «        }t          d¦  «        }|                      ||j        g d¢¦  «         |                      t          |d¦  «         |                      t          |d¦  «         d S )Núnp.random.power)rT  r=  r  )g      @r¢   rú  )rÀ   r   r€   r1  Úpowerr  rg  )r¼   r�   ru  s      r   Útest_numpy_powerzTestRandom.test_numpy_power]  s‡   € Ø×ÒÕ/Ñ1Ô1Ñ2Ô2ˆÝÐ+Ñ,Ô,ˆØ×Ò˜ ¤Ø9Ð9Ð9ñ	;ô 	;ð 	;à×Ò�* e¨SÑ1Ô1Ð1Ø×Ò�* e¨TÑ2Ô2Ð2Ð2Ð2r   c                 ój  — |                       t          ¦   «         ¦  «        }t          d¦  «        }t          d¦  «        }|                      ||j        g d¢¦  «         |                      ||j        dg¦  «         |                      t          |d¦  «         |                      t          |d¦  «         d S )Núnp.random.rayleigh)rT  ©r÷  )g      9@)rˆ  r   r¢   rú  )rÀ   r   r€   r~   r1  Úrayleighr  rg  )r¼   r�   Ú	rayleigh1Ú	rayleigh0s       r   Útest_numpy_rayleighzTestRandom.test_numpy_rayleighe  s±   € Ø×ÒÕ/Ñ1Ô1Ñ2Ô2ˆÝÐ2Ñ3Ô3ˆ	ÝÐ 4Ñ5Ô5ˆ	Ø×Ò˜ A¤JØ9Ð9Ð9ñ	;ô 	;ð 	;à×Ò˜ A¤J°°Ñ5Ô5Ð5Ø×Ò�* i°Ñ5Ô5Ð5Ø×Ò�* i°Ñ6Ô6Ð6Ð6Ð6r   c                 ó    — |                       t          ¦   «         ¦  «        }t          d¦  «        }|                      ||j        dg¦  «         d S )Núnp.random.standard_cauchyr   )rÀ   r   r~   r1  Ústandard_cauchy)r¼   r�   Úcauchys      r   Útest_numpy_standard_cauchyz%TestRandom.test_numpy_standard_cauchyo  sM   € Ø×ÒÕ/Ñ1Ô1Ñ2Ô2ˆÝÐ8Ñ9Ô9ˆØ×Ò˜ Ô!2°R°DÑ9Ô9Ð9Ð9Ð9r   c                 ó  ‡— |                       t          ¦   «         ¦  «        }t          d¦  «        Št          j        ˆfd„t          d¦  «        D ¦   «         ¦  «        }|                      t          |¦  «        d¦  «         d S )Núnp.random.standard_tc                 ó&   •— g | ]} ‰d ¦  «        ‘ŒS )r[  r   )rq   rÊ   Ú
standard_ts     €r   rs   z4TestRandom.test_numpy_standard_t.<locals>.<listcomp>z  s!   ø€ Ð:Ð:Ð:¨�z�z !‘}”}Ð:Ð:Ð:r   r`  r;  )r½   r   r€   r   rE  rÏ   r"  Úabs)r¼   r�   Úavgr†  s      @r   Útest_numpy_standard_tz TestRandom.test_numpy_standard_tt  sw   ø€ ð × Ò Õ!1Ñ!3Ô!3Ñ4Ô4ˆÝÐ5Ñ6Ô6ˆ
ÝŒgÐ:Ð:Ð:Ð:­e°D©k¬kÐ:Ñ:Ô:Ñ;Ô;ˆà�Š�˜C™œ #Ñ&Ô&Ð&Ð&Ð&r   c                 óŠ  — |                       t          ¦   «         ¦  «        }t          d¦  «        }|                      ||j        ddg¦  «         |                      t          |dd¦  «         |                      t          |dd¦  «         |                      t          |dd¦  «         |                      t          |dd¦  «         d S )Núnp.random.waldr:  )r®   ç      @r¢   r¯   rú  )rÀ   r   r‚   r1  Úwaldr  rg  )r¼   r�   r�  s      r   Útest_numpy_waldzTestRandom.test_numpy_wald~  s·   € Ø×ÒÕ/Ñ1Ô1Ñ2Ô2ˆÝÐ*Ñ+Ô+ˆØ×Ò˜˜qœv¨
°JÐ'?Ñ@Ô@Ð@Ø×Ò�* d¨C°Ñ5Ô5Ð5Ø×Ò�* d¨D°#Ñ6Ô6Ð6Ø×Ò�* d¨C°Ñ5Ô5Ð5Ø×Ò�* d¨C°Ñ6Ô6Ð6Ð6Ð6r   c           	      ól  — t          dddg¦  «        }|                      |t          ¦   «         ddddœdddœg¬	¦  «         |                      t          |d
d¦  «         |                      t          |dd¦  «         |                      t          |dd
¦  «         |                      t          |dd¦  «         d S )Nr‹  rE  r/  r�  r¯   )rE  r/  r®   rŒ  r0  r¢   rú  )ry   r�  r   r  rg  )r¼   Únumba_versions     r   Útest_numpy_wald_kwargsz!TestRandom.test_numpy_wald_kwargs‡  sÑ   € Ý'Ð(8¸6À7Ð:KÑLÔLˆØ×&Ò& }Ý'7Ñ'9Ô'9Ø/5Ø;>ÈÐ2MÐ2MØ;>ÈÐ2MÐ2Mð2Oð 	'ñ 	Pô 	Pð 	Pð
 	×Ò�* m°S¸#Ñ>Ô>Ð>Ø×Ò�* m°T¸3Ñ?Ô?Ð?Ø×Ò�* m°S¸#Ñ>Ô>Ð>Ø×Ò�* m°S¸$Ñ?Ô?Ð?Ð?Ð?r   c                 óè   — |                       t          ¦   «         ¦  «        }t          d¦  «        }|                      ||j        ddgd¬¦  «         dD ]}|                      t          ||¦  «         Œd S )Núnp.random.zipfrÒ  r  rò  r<  )r¯   r;  r¢   rú  )rÀ   r   r€   r1  Úzipfr  rg  )r¼   r�   r”  Úvals       r   Útest_numpy_zipfzTestRandom.test_numpy_zipf“  s‚   € Ø×ÒÕ/Ñ1Ô1Ñ2Ô2ˆÝÐ)Ñ*Ô*ˆØ×Ò˜˜qœv¨°Ð'7ÀÐÑDÔDÐDØ(ð 	5ð 	5ˆCØ×Ò�j¨$°Ñ4Ô4Ð4Ð4ð	5ð 	5r   c                 ó¦  — t          j        d¦  «        t          j        d¦  «                             d¦  «        g}|r|                      |¦  «        }n|                      |¦  «        }|D ]Œ}t          d¦  «        D ]z}|                     ¦   «         }|                     ¦   «         }	 ||¦  «         |st          |j        ¦  «        dk    r+| 	                    |	¦  «         |  
                    ||	¦  «         Œ{Œ�|d         }|                     ¦   «         }
 |t          |
¦  «        ¦  «         |                      t          |¦  «        t          |
¦  «        ¦  «         |                      t          |¦  «        t          |
¦  «        ¦  «         |                      ¦   «         5   |t          d¦  «        ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )	z=
        Check a shuffle()-like function for arrays.
        r~  é    )r_  r  r–   rŠ   r   s   xyzN)r   ÚarangeÚreshaperÀ   r½   rÏ   Úcopyr£   ÚshapeÚshuffleró   Ú
memoryviewÚassertNotEqualrŽ   rÍ   ÚsortedÚassertTypingError)r¼   rb   r�   ri  Úarrsr�   r   rÊ   r[   rZ   r"   s              r   rÕ   zTestRandom._check_shuffleš  sï  € õ ”	˜"‘”�rœy¨™}œ}×4Ò4°VÑ<Ô<Ð=ˆØð 	*Ø×"Ò" 3Ñ'Ô'ˆAˆAà×$Ò$ SÑ)Ô)ˆAØð 	;ð 	;ˆAÝ˜1‘X”Xð ;ð ;�Ø—f’f‘h”h�ØŸ6š6™8œ8�Ø��S‘	”	�	Øð ;�s 1¤7™|œ|¨qÒ0Ð0Ø—I’I˜hÑ'Ô'Ð'Ø×+Ò+¨C°Ñ:Ô:Ð:øð;ð �ŒGˆØ�FŠF‰HŒHˆØˆ�Z˜‰]Œ]ÑÔÐØ×Ò�D ™GœG¥T¨!¡W¤WÑ-Ô-Ð-Ø×Ò� ™œ¥F¨1¡I¤IÑ.Ô.Ð.à×#Ò#Ñ%Ô%ð 	%ð 	%ØˆD•˜FÑ#Ô#Ñ$Ô$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%s   Æ GÇG
ÇG
c                 óf   — |                       t          d¦  «        t          ¦   «         d¦  «         d S )Nzrandom.shuffleF)rÕ   r€   r   rå   s    r   Útest_random_shufflezTestRandom.test_random_shuffleµ  s0   € Ø×Ò�IÐ&6Ñ7Ô7Õ9IÑ9KÔ9KÈUÑSÔSÐSÐSÐSr   c                 óf   — |                       t          d¦  «        t          ¦   «         d¦  «         d S )Nznp.random.shuffleT)rÕ   r€   r   rå   s    r   Útest_numpy_shufflezTestRandom.test_numpy_shuffle¸  s1   € Ø×Ò�IÐ&9Ñ:Ô:Õ<LÑ<NÔ<NÐPTÑUÔUÐUÐUÐUr   c                 ó&  — dt          ¦   «         z  }t          ¦   «         }t          d¦  «        D ]½}t          j        t
          j        d|gt          j        t          j        ¬¦  «        }|                     ¦   «         \  }}|j	        dk    r-t          d|j	        ›d|                     ¦   «         ›d�¦  «        ‚|                     t          |                     ¦   «         ¦  «        ¦  «         Œ¾|                      t!          |¦  «        d|¦  «         d	S )
zI
        Check that the state is properly randomized at startup.
        z¡if 1:
            from numba.tests import test_random
            func = getattr(test_random, %(func_name)r)
            print(func(*%(func_args)r))
            r–   z-c)ÚstdoutÚstderrr   zprocess failed with code z: stderr follows
ú
N)re   rá   rÏ   Ú
subprocessÚPopenÚsysÚ
executableÚPIPEÚcommunicateÚ
returncodeÚAssertionErrorÚdecodeÚaddÚfloatÚstriprÍ   r£   )	r¼   Ú	func_nameÚ	func_argsri   ÚnumbersrÊ   ÚpopenÚoutÚerrs	            r   Ú_check_startup_randomnessz$TestRandom._check_startup_randomness»  s  € ðõ ‘8”8ñ	ˆõ
 ‘%”%ˆÝ�q‘”ð 	,ð 	,ˆAÝÔ$¥c¤n°d¸DÐ%AÝ,6¬OÅJÄOðUñ Uô UˆEà×(Ò(Ñ*Ô*‰HˆC�ØÔ 1Ò$Ð$Ý$�nØ(-Ô(8Ð(8Ð(8¸#¿*º*¹,¼,¸,¸,ð&Hñ Iô Ið Ià�KŠK�˜cŸiši™kœkÑ*Ô*Ñ+Ô+Ð+Ð+Ø×Ò�˜W™œ q¨'Ñ2Ô2Ð2Ð2Ð2r   c                 ó2   — |                       dd¦  «         d S )Nrú   r   ©r½  rå   s    r   Útest_random_random_startupz%TestRandom.test_random_random_startupÏ  s   € Ø×&Ò& ¸Ñ;Ô;Ð;Ð;Ð;r   c                 ó2   — |                       dd¦  «         d S )NÚrandom_gaussr:  r¿  rå   s    r   Útest_random_gauss_startupz$TestRandom.test_random_gauss_startupÒ  ó   € Ø×&Ò& ~°zÑBÔBÐBÐBÐBr   c                 ó2   — |                       dd¦  «         d S )Nr  r   r¿  rå   s    r   Útest_numpy_random_startupz$TestRandom.test_numpy_random_startupÕ  s   € Ø×&Ò& ~°rÑ:Ô:Ð:Ð:Ð:r   c                 ó2   — |                       dd¦  «         d S )NÚnumpy_normalr:  r¿  rå   s    r   Útest_numpy_gauss_startupz#TestRandom.test_numpy_gauss_startupØ  rÄ  r   c                 ój  — t          d¦  «        }|                      t          ¦   «         ¦  «        }dD ]¤}t          j        |¦  «        }|                     ¦   «         }|                       ||¦  «        |                     |¦  «        ¦  «         |                       ||¦  «        |                     |¦  «        ¦  «         |                      ||¦  «         Œ¥t          j        d¦  «                             dd¦  «        t          j        d¦  «                             ddd¦  «        t          j        d¦  «                             dddd¦  «        g}|D ]^}|                     ¦   «         }|                       ||¦  «        |                     |¦  «        ¦  «         |                      ||¦  «         Œ_d S )	Nznp.random.permutation)r[  rÜ   ro  r~  rÜ   r¸   r[  é   r–   é$   )	r€   rÀ   r   r   r™  r›  ró   Úpermutationrš  )r¼   rb   r�   Úsr   r"   r¢  s          r   Útest_numpy_random_permutationz(TestRandom.test_numpy_random_permutationÛ  s‰  € ÝÐ0Ñ1Ô1ˆØ×ÒÕ/Ñ1Ô1Ñ2Ô2ˆØ ð 	*ð 	*ˆAÝ”	˜!‘”ˆAØ—’‘”ˆAà×#Ò# D D¨¡G¤G¨Q¯]ª]¸1Ñ-=Ô-=Ñ>Ô>Ð>à×#Ò# D D¨¡G¤G¨Q¯]ª]¸1Ñ-=Ô-=Ñ>Ô>Ð>à×#Ò# A qÑ)Ô)Ð)Ð)å”	˜"‘”×%Ò% a¨Ñ+Ô+Ý”	˜"‘”×%Ò% a¨¨AÑ.Ô.Ý”	˜"‘”×%Ò% a¨¨A¨qÑ1Ô1ð3ˆð ð 	*ð 	*ˆAØ—’‘”ˆAØ×#Ò# D D¨¡G¤G¨Q¯]ª]¸1Ñ-=Ô-=Ñ>Ô>Ð>Ø×#Ò# A qÑ)Ô)Ð)Ð)ð	*ð 	*r   )r–   r   r!  Nr   )TrÂ   rÃ   rÄ   r÷   rû   r  r  r  r  r  r  r1  r7  rC  rF  rH  rJ  rN  rP  rS  rU  rX  rn  rw  rz  r€  rƒ  rŠ  r�  r’  r•  r›  rž  r¤  r¦  r®  r³  rµ  r¹  r¼  r¾  rÁ  rÄ  rÆ  rÉ  rÍ  rÏ  rÓ  rÖ  rÙ  rÜ  rÞ  rä  rç  ré  rì  r  r	  r  r%  r,  r1  rF  rM  rQ  rX  r]  rr  rv  r}  r‚  r‰  rŽ  r‘  r–  rÕ   r¤  r¦  r½  rÀ  rÃ  rÆ  rÉ  rÏ  r   r   r   rð   rð      s]  € € € € € ðKð Kð Kð<ð <ð <ðKð Kð KðOð Oð OðJð Jð JðCð Cð Cð3ð 3ð 3ðUð Uð Uð :;Ø48ðFð Fð Fð Fð CDØ;?ðHð Hð Hð Hð4ð 4ð 4ðVð Vð Vð.ð .ð .ð.ð .ð .ð.ð .ð .ð.ð .ð .ð7ð 7ð 7ðCð Cð Cð7ð 7ð 7ð":ð ":ð ":ð ":ðH4ð 4ð 4ð/ð /ð /ð2ð 2ð 2ð&Cð Cð Cð
Að Að Að	Jð 	Jð 	JðNð Nð NðQð Qð Qð4ð 4ð 4ð
Cð 
Cð 
Cð	Að 	Að 	Að3ð 3ð 3ð
Kð Kð Kð
7ð 7ð 7ð*5ð 5ð 5ð5ð 5ð 5ð7ð 7ð 7ðVð Vð VðRð Rð Rð@ð @ð @ð8ð 8ð 8ð8ð 8ð 8ð	7ð 	7ð 	7ðUð Uð Uð9ð 9ð 9ð4ð 4ð 4ð
4ð 4ð 4ð
Bð Bð BðYð Yð YðDð Dð Dð
Dð Dð Dð=ð =ð =ð7ð 7ð 7ð9ð 9ð 9ð4+ð +ð +ð3ð 3ð 3ð5ð 5ð 5ð,Fð Fð Fð
5ð 5ð 5ð2ð 2ð 2ð&Lð Lð LðNð Nð Nð6ð 6ð 6ð 5ð 5ð 5ð7ð 7ð 7ð*3ð 3ð 3ð7ð 7ð 7ð:ð :ð :ð
'ð 'ð 'ð7ð 7ð 7ð
@ð 
@ð 
@ð5ð 5ð 5ð%ð %ð %ð6Tð Tð TðVð Vð Vð3ð 3ð 3ð(<ð <ð <ðCð Cð Cð;ð ;ð ;ðCð Cð Cð*ð *ð *ð *ð *r   rð   c                   óä   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d „ Z"d!„ Z#d"„ Z$d#„ Z%d$„ Z&d%S )&ÚTestRandomArrayszA
    Test array-producing variants of np.random.* functions.
    c                 óf   — d|›�}d                      dd |…         ¦  «        }t          ||¦  «        S )Nú
np.random.ú, Úabcd)ru   rk   )r¼   ÚfuncnameÚnargsÚqualnamerh   s        r   Ú_compile_array_distz$TestRandomArrays._compile_array_distö  s7   € € Ø%- XÐ/ˆØ—I’I˜f V e VœnÑ-Ô-ˆ	Ý˜X yÑ1Ô1Ð1r   c                 ó  — |                       |t          |¦  «        dz   ¦  «        }|                      t          ¦   «         ¦  «        }t	          ||¦  «        }dD ]}||fz   } ||Ž } ||Ž }	|j        t          j        d¦  «        k    r7|	j        t          j        d¦  «        k    r|                     |	j        ¦  «        }|                      ||	dd¬¦  «         Œ€|dz   } ||Ž } ||Ž }	|                      ||	dd¬¦  «         d	S )
zM
        Check returning an array according to a given distribution.
        rŠ   ©r_  ©r¸   r–   rs  rr  r   r[  ©r)  r*  r   N)	rÙ  r£   rÀ   r   rŒ  r¡   r   Úastyperó   )
r¼   rÖ  Úscalar_argsÚcfuncr�   rj   r6   r$  rZ   r[   s
             r   Ú_check_array_distz"TestRandomArrays._check_array_distû  s&  € ð ×(Ò(¨µ3°{Ñ3CÔ3CÀaÑ3GÑHÔHˆØ×ÒÕ/Ñ1Ô1Ñ2Ô2ˆÝ˜˜HÑ%Ô%ˆØð 	Jð 	JˆDØ $ Ñ(ˆDØ�v˜t�}ˆHØ�%˜�,ˆCà”¥"¤(¨7Ñ"3Ô"3Ò3Ð3Ø”I¥¤¨'Ñ!2Ô!2Ò2Ð2Ø#Ÿ?š?¨3¬9Ñ5Ô5�Ø×#Ò# H¨c¸ÀqÐ#ÑIÔIÐIÐIØ˜WÑ$ˆØ�6˜4�=ˆØˆe�TˆlˆØ×Ò ¨#°HÀ1ÐÑEÔEÐEÐEÐEr   c                 óø  ‡‡— |                       |t          |¦  «        dz   ¦  «        }|                      t          ¦   «         ¦  «        }t	          |d¦  «        Š||z   Šˆˆfd„}|dz   } |¦   «         } ||Ž }	|                      ||	dd¬¦  «         dD ]e}
||
fz   }t          j        |
¦  «        }|j        }t          |j
        ¦  «        D ]} |¦   «         ||<   Œ ||Ž }	|                      ||	dd¬¦  «         Œfd	S )
z–
        Check returning an array according to a given gamma distribution,
        where we use CPython's implementation rather than NumPy's.
        rŠ   r°   c                  ó   •—  ‰‰Ž S r   r   )Ú_argsrj   Úpyfunc_argss    €€r   r¬  z:TestRandomArrays._check_array_dist_gamma.<locals>.<lambda>  s   ø€  & &¨+Ð"6€ r   r   r   r[  rÝ  rÛ  N)rÙ  r£   r½   r   rŒ  ró   r   ÚemptyÚflatrÏ   r6   )r¼   rÖ  rß  Úextra_pyfunc_argsrà  r�   Úpyrandomr$  rZ   r[   r6   Úexpected_flatÚidxrj   rå  s                @@r   Ú_check_array_dist_gammaz(TestRandomArrays._check_array_dist_gamma  s>  øø€ ð
 ×(Ò(¨µ3°{Ñ3CÔ3CÀaÑ3GÑHÔHˆØ× Ò Õ!1Ñ!3Ô!3Ñ4Ô4ˆÝ˜˜NÑ+Ô+ˆØ!Ð$5Ñ5ˆØ6Ð6Ð6Ð6Ð6ˆà˜WÑ$ˆØ�8‘:”:ˆØˆe�TˆlˆØ×Ò ¨#°HÀ1ÐÑEÔEÐEØð 	Jð 	JˆDØ $ Ñ(ˆDÝ”x ‘~”~ˆHØ$œMˆMÝ˜Xœ]Ñ+Ô+ð 0ð 0�Ø%- X¡Z¤Z�˜cÑ"Ð"Ø�%˜�,ˆCØ×#Ò# H¨c¸ÀqÐ#ÑIÔIÐIÐIð	Jð 	Jr   c                 ón  — t           j        d„ ¦   «         }|                      |t          |¦  «        dz   ¦  «        }d|›�}d                     ddt          |¦  «        …         ¦  «        }t          ||¦  «        }dD ]{}||fz   }	 |¦   «           ||	Ž }
 |¦   «          t          j        ||
j        ¬¦  «        }|j	        }t          |j        ¦  «        D ]
} ||Ž ||<   Œ|                      ||
d	d
¬¦  «         Œ| |¦   «          |dz   }	 ||Ž } |¦   «           ||	Ž }
|                      ||
d	d
¬¦  «         dS )a½  
        Check function returning an array against its scalar implementation.
        Because we use the CPython gamma distribution rather than the NumPy one,
        distributions which use the gamma distribution vary in ways that are
        difficult to compare. Instead, we compile both the array and scalar
        versions and check that the array is filled with the same values as
        we would expect from the scalar version.
        c                  óD   — t           j                             d¦  «         d S )NiÒ  )r   r   rW   r   r   r   Úresetz6TestRandomArrays._check_array_dist_self.<locals>.reset1  s   € åŒI�NŠN˜4Ñ Ô Ð Ð Ð r   rŠ   rÓ  rÔ  rÕ  NrÛ  r    r   r[  rÝ  r   )Únumbar   rÙ  r£   ru   rk   r   ræ  r¡   rç  rÏ   r6   ró   )r¼   rÖ  rß  rï  Ú
array_funcrØ  rh   Úscalar_funcr6   r$  r[   rZ   rç  rë  s                 r   Ú_check_array_dist_selfz'TestRandomArrays._check_array_dist_self(  s†  € õ 
Œð	!ð 	!ñ 
Œð	!ð ×-Ò-¨h½¸KÑ8HÔ8HÈ1Ñ8LÑMÔMˆ
ˆ
à%- XÐ/ˆØ—I’I˜fÐ%6¥c¨+Ñ&6Ô&6Ð%6Ô7Ñ8Ô8ˆ	Ý# H¨iÑ8Ô8ˆàð 	Jð 	JˆDØ $ Ñ(ˆDØˆE‰GŒGˆGØ�*˜dÐ#ˆCØˆE‰GŒGˆGõ ”x ¨C¬IÐ6Ñ6Ô6ˆHØ”=ˆDÝ˜Xœ]Ñ+Ô+ð 6ð 6�Ø'˜K¨Ð5��S‘	�	Ø×#Ò# H¨c¸ÀqÐ#ÑIÔIÐIÐIàˆ‰ŒˆØ˜WÑ$ˆØ�; Ð,ˆØˆ‰ŒˆØˆj˜$ÐˆØ×Ò ¨#°HÀ1ÐÑEÔEÐEÐEÐEr   c                 óÊ  — |                       dd¦  «        }d\  }}d} ||||¦  «        }|                      |t          j        ¦  «         |                      |j        |¦  «         |                      |j        t          j        d¦  «        t          j        d¦  «        f¦  «         |                      t          j	        ||k    ¦  «        ¦  «         |                      t          j	        ||k     ¦  «        ¦  «         ||z   dz  }||z
  dz  }|  
                    |                     ¦   «         ||z
  ¦  «         |                      |                     ¦   «         ||z   ¦  «         d S )	Nr   r–   )rô  rõ  ©r5  r5  rs  rr  r¸   r~  )rÙ  rÌ   r   ÚndarrayrÍ   rœ  ÚassertInr¡   r$  rD  rý  rE  rþ  )r¼   rà  r—  r˜  r6   ÚresrE  r  s           r   rz  z#TestRandomArrays.test_numpy_randintO  s=  € Ø×(Ò(¨°AÑ6Ô6ˆØ‰	ˆˆTØˆØˆe�C˜˜tÑ$Ô$ˆØ×Ò˜c¥2¤:Ñ.Ô.Ð.Ø×Ò˜œ DÑ)Ô)Ð)Ø�Š�c”i¥"¤(¨7Ñ"3Ô"3µR´X¸gÑ5FÔ5FÐ!GÑHÔHÐHØ�Š�œ˜s cšzÑ*Ô*Ñ+Ô+Ð+Ø�Š�œ˜s TšzÑ*Ô*Ñ+Ô+Ð+à�d‘
˜aÑˆØ�c‰z˜RÑˆØ×Ò §¢¡
¤
¨D°3©JÑ7Ô7Ð7Ø×Ò˜SŸXšX™ZœZ¨°©Ñ4Ô4Ð4Ð4Ð4r   c                 óô  — |                       dd¦  «        }d} ||¦  «        }|                      |t          j        ¦  «         |                      |j        |¦  «         |                      |j        t          j        d¦  «        ¦  «         |                      t          j        |dk    ¦  «        ¦  «         |                      t          j        |dk     ¦  «        ¦  «         |                      t          j	        |dk    ¦  «        ¦  «         |                      t          j	        |dk    ¦  «        ¦  «         | 
                    ¦   «         }|                      |d	¦  «         |                      |d
¦  «         d S )Nr   rŠ   rõ  Úfloat64r¢   r¯   rö  rø  gÍÌÌÌÌÌÜ?gš™™™™™á?)rÙ  rÌ   r   rö  rÍ   rœ  r¡   r$  rD  ÚanyrE  rý  rþ  )r¼   rà  r6   rø  rE  s        r   Útest_numpy_random_randomz)TestRandomArrays.test_numpy_random_random_  s:  € Ø×(Ò(¨°1Ñ5Ô5ˆØˆØˆe�D‰kŒkˆØ×Ò˜c¥2¤:Ñ.Ô.Ð.Ø×Ò˜œ DÑ)Ô)Ð)Ø×Ò˜œ¥B¤H¨YÑ$7Ô$7Ñ8Ô8Ð8à�Š�œ˜s cšzÑ*Ô*Ñ+Ô+Ð+Ø�Š�œ˜s SšyÑ)Ô)Ñ*Ô*Ð*à�Š�œ˜s cšzÑ*Ô*Ñ+Ô+Ð+Ø�Š�œ˜s cšzÑ*Ô*Ñ+Ô+Ð+Ø�xŠx‰zŒzˆØ×Ò  dÑ+Ô+Ð+Ø×Ò˜T 4Ñ(Ô(Ð(Ð(Ð(r   c                 ó2   — |                       dd¦  «         d S )NÚbetar°  ©ró  rå   s    r   rÁ  z TestRandomArrays.test_numpy_betas  s   € Ø×#Ò# F¨JÑ7Ô7Ð7Ð7Ð7r   c                 ó2   — |                       dd¦  «         d S )Nrü  )r~  r;  ©rá  rå   s    r   r  z$TestRandomArrays.test_numpy_binomialv  s   € Ø×Ò˜z¨9Ñ5Ô5Ð5Ð5Ð5r   c                 ó2   — |                       dd¦  «         d S )Nr  rÒ  rÿ  rå   s    r   r	  z%TestRandomArrays.test_numpy_chisquarey  s   € Ø×#Ò# K°Ñ8Ô8Ð8Ð8Ð8r   c                 ó2   — |                       dd¦  «         d S )NrË  rÒ  r  rå   s    r   rÖ  z'TestRandomArrays.test_numpy_exponential|  s   € Ø×Ò˜}¨fÑ5Ô5Ð5Ð5Ð5r   c                 ó2   — |                       dd¦  «         d S )Nr  r  rÿ  rå   s    r   r  zTestRandomArrays.test_numpy_f  s   € Ø×#Ò# C¨Ñ4Ô4Ð4Ð4Ð4r   c                 ó4   — |                       ddd¦  «         d S )NÚgamma)r®   r¯   r   ©rì  rå   s    r   r¹  z!TestRandomArrays.test_numpy_gamma‚  s    € Ø×$Ò$ W¨j¸"Ñ=Ô=Ð=Ð=Ð=r   c                 ó2   — |                       dd¦  «         d S )NÚ	geometricrÑ  r  rå   s    r   r%  z%TestRandomArrays.test_numpy_geometric…  ó   € Ø×Ò˜{¨FÑ3Ô3Ð3Ð3Ð3r   c                 ó2   — |                       dd¦  «         d S )Nr+  ©r…  r;  r  rå   s    r   r,  z"TestRandomArrays.test_numpy_gumbelˆ  ó   € Ø×Ò˜x¨Ñ4Ô4Ð4Ð4Ð4r   c                 ó2   — |                       dd¦  «         d S )NrC  r4  r  rå   s    r   rF  z*TestRandomArrays.test_numpy_hypergeometric‹  s    € Ø×ÒÐ/Ð1AÑBÔBÐBÐBÐBr   c                 ó2   — |                       dd¦  «         d S )NrK  r  r  rå   s    r   rM  z#TestRandomArrays.test_numpy_laplaceŽ  ó   € Ø×Ò˜y¨*Ñ5Ô5Ð5Ð5Ð5r   c                 ó2   — |                       dd¦  «         d S )NrP  r  r  rå   s    r   rQ  z$TestRandomArrays.test_numpy_logistic‘  s   € Ø×Ò˜z¨:Ñ6Ô6Ð6Ð6Ð6r   c                 ó2   — |                       dd¦  «         d S )NrR  )r…  r®   r  rå   s    r   rX  z%TestRandomArrays.test_numpy_lognormal”  s   € Ø×Ò˜{¨JÑ7Ô7Ð7Ð7Ð7r   c                 ó2   — |                       dd¦  «         d S )NrW  ry  r  rå   s    r   rX  z%TestRandomArrays.test_numpy_logseries—  r
  r   c                 ó2   — |                       dd¦  «         d S )Nr>  )r;  r®   r  rå   s    r   rJ  z"TestRandomArrays.test_numpy_normalš  r  r   c                 ó2   — |                       dd¦  «         d S )Nrâ  r=  r  rå   s    r   rä  z"TestRandomArrays.test_numpy_pareto�  s   € Ø×Ò˜x¨Ñ0Ô0Ð0Ð0Ð0r   c                 ó2   — |                       dd¦  «         d S )Nr\  ry  r  rå   s    r   r]  z#TestRandomArrays.test_numpy_poisson   s   € Ø×Ò˜y¨&Ñ1Ô1Ð1Ð1Ð1r   c                 ó2   — |                       dd¦  «         d S )Nru  ry  r  rå   s    r   rv  z!TestRandomArrays.test_numpy_power£  s   € Ø×Ò˜w¨Ñ/Ô/Ð/Ð/Ð/r   c                 óÄ   —  t          d¬¦  «        t          ¦  «        } |ddd¦  «        \  }}|                      |j        d¦  «         |                      ||¦  «         d S ©NTrc   é*   r¸   r–   rÜ  )r   r\   rÍ   rœ  ró   ©r¼   rà  rZ   r[   s       r   Útest_numpy_randz TestRandomArrays.test_numpy_rand¦  sf   € Ø"•˜TÐ"Ñ"Ô"Õ#3Ñ4Ô4ˆØ˜˜b ! Q™œ‰ˆ�#Ø×Ò˜œ FÑ+Ô+Ð+Ø×Ò ¨#Ñ.Ô.Ð.Ð.Ð.r   c                 óÄ   —  t          d¬¦  «        t          ¦  «        } |ddd¦  «        \  }}|                      |j        d¦  «         |                      ||¦  «         d S r  )r   r`   rÍ   rœ  ró   r  s       r   rP  z!TestRandomArrays.test_numpy_randn¬  sf   € Ø"•˜TÐ"Ñ"Ô"Õ#4Ñ5Ô5ˆØ˜˜b ! Q™œ‰ˆ�#Ø×Ò˜œ FÑ+Ô+Ð+Ø×Ò ¨#Ñ.Ô.Ð.Ð.Ð.r   c                 ó2   — |                       dd¦  «         d S )Nrz  ry  r  rå   s    r   r}  z$TestRandomArrays.test_numpy_rayleigh²  s   € Ø×Ò˜z¨6Ñ2Ô2Ð2Ð2Ð2r   c                 ó2   — |                       dd¦  «         d S )Nr€  r   r  rå   s    r   r‚  z+TestRandomArrays.test_numpy_standard_cauchyµ  ó   € Ø×ÒÐ0°"Ñ5Ô5Ð5Ð5Ð5r   c                 ó2   — |                       dd¦  «         d S )NÚstandard_exponentialr   r  rå   s    r   rÙ  z0TestRandomArrays.test_numpy_standard_exponential¸  s   € Ø×ÒÐ5°rÑ:Ô:Ð:Ð:Ð:r   c                 ó4   — |                       ddd¦  «         d S )NÚstandard_gammar[  rÑ  r  rå   s    r   Útest_numpy_standard_gammaz*TestRandomArrays.test_numpy_standard_gamma»  s!   € Ø×$Ò$Ð%5°v¸vÑFÔFÐFÐFÐFr   c                 ó2   — |                       dd¦  «         d S )Nr^   r   r  rå   s    r   rN  z+TestRandomArrays.test_numpy_standard_normal¾  r   r   c                 ó2   — |                       dd¦  «         d S )Nr£  )r…  r¢  r¡  r  rå   s    r   r®  z&TestRandomArrays.test_numpy_triangularÁ  s   € Ø×Ò˜|¨_Ñ=Ô=Ð=Ð=Ð=r   c                 ó2   — |                       dd¦  «         d S )Nrô   ©rö  ró  r  rå   s    r   r•  z#TestRandomArrays.test_numpy_uniformÄ  r  r   c                 ó2   — |                       dd¦  «         d S )Nr�  r)  r  rå   s    r   rŽ  z TestRandomArrays.test_numpy_waldÇ  s   € Ø×Ò˜v zÑ2Ô2Ð2Ð2Ð2r   c                 ó2   — |                       dd¦  «         d S )NÚvonmisesr°  rÿ  rå   s    r   rÉ  z$TestRandomArrays.test_numpy_vonmisesÊ  s   € Ø×#Ò# J°
Ñ;Ô;Ð;Ð;Ð;r   c                 ó2   — |                       dd¦  «         d S )Nr”  r  r  rå   s    r   r–  z TestRandomArrays.test_numpy_zipfÍ  s   € Ø×Ò˜v vÑ.Ô.Ð.Ð.Ð.r   N)'rÂ   rÃ   rÄ   rî   rÙ  rá  rì  ró  rz  rü  rÁ  r  r	  rÖ  r  r¹  r%  r,  rF  rM  rQ  rX  rX  rJ  rä  r]  rv  r  rP  r}  r‚  rÙ  r%  rN  r®  r•  rŽ  rÉ  r–  r   r   r   rÑ  rÑ  ñ  s;  € € € € € ðð ð2ð 2ð 2ð
Fð Fð Fð*Jð Jð Jð0%Fð %Fð %FðN5ð 5ð 5ð )ð )ð )ð(8ð 8ð 8ð6ð 6ð 6ð9ð 9ð 9ð6ð 6ð 6ð5ð 5ð 5ð>ð >ð >ð4ð 4ð 4ð5ð 5ð 5ðCð Cð Cð6ð 6ð 6ð7ð 7ð 7ð8ð 8ð 8ð4ð 4ð 4ð5ð 5ð 5ð1ð 1ð 1ð2ð 2ð 2ð0ð 0ð 0ð/ð /ð /ð/ð /ð /ð3ð 3ð 3ð6ð 6ð 6ð;ð ;ð ;ðGð Gð Gð6ð 6ð 6ð>ð >ð >ð6ð 6ð 6ð3ð 3ð 3ð<ð <ð <ð/ð /ð /ð /ð /r   rÑ  c                   ój   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	dd	„Z
d
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestRandomChoicez 
    Test np.random.choice.
    Tc                 óš  — t          |¦  «        }t          |¦  «        }|                      ||¦  «         |                      t          |¦  «        t	          |¦  «        ¦  «         |r3|                      t          |¦  «        t          |¦  «        |¦  «         dS |                      t          |¦  «        t          |¦  «        |¦  «         dS )zD
        Check basic expectations about a batch of samples.
        N)rá   rþ  rŸ  r   rŽ   r"  r£   rÍ   )r¼   Úpoprø  r:   ÚspopÚsress         r   Ú_check_resultszTestRandomChoice._check_resultsÖ  s®   € õ �3‰xŒxˆÝ�3‰xŒxˆà×Ò˜T 4Ñ(Ô(Ð(à×Ò�F 3™KœK­¨c©¬Ñ3Ô3Ð3Øð 	7à�OŠO�C ™IœI¥s¨3¡x¤x°Ñ5Ô5Ð5Ð5Ð5ð ×Ò�S ™YœY­¨C©¬°#Ñ6Ô6Ð6Ð6Ð6r   c                 óP  — |                       t          |¦  «        t          |¦  «        dz  ¦  «         t          |¦  «        t          |¦  «        z  }t          j        |¦  «        }|D ]<}||         }|                       ||dz  ¦  «         |                      ||dz  ¦  «         Œ=dS )ú5
        Check distribution of some samples.
        rò  r;  r®   N)rý  r£   ÚcollectionsÚCounterrþ  )r¼   r1  ÚsamplesÚexpected_frequencyr-   Úvaluer?   s          r   r1  zTestRandomChoice._check_distç  s®   € ð
 	×Ò¥ G¡¤­c°#©h¬h¸©nÑ=Ô=Ð=å  ™\œ\­C°©H¬HÑ4ÐÝÔ Ñ(Ô(ˆØð 	>ð 	>ˆEØ�%”ˆAØ×#Ò# AÐ'9¸CÑ'?Ñ@Ô@Ð@Ø× Ò  Ð$6¸Ñ$<Ñ=Ô=Ð=Ð=ð	>ð 	>r   c                 ó¤   — g }t          |¦  «        |k     r2|t           |¦   «         j        ¦  «        z  }t          |¦  «        |k     °2|d|…         S )zk
        Accumulate array results produced by *func* until they reach
        *nresults* elements.
        N)r£   rŽ   rç  )r¼   rb   Únresultsrø  s       r   Ú_accumulate_array_resultsz*TestRandomChoice._accumulate_array_resultsõ  sU   € ð
 ˆÝ�#‰hŒh˜Ò!Ð!Ø•4˜˜™œœÑ$Ô$Ñ$ˆCõ �#‰hŒh˜Ò!Ð!à�9�H�9Œ~Ðr   c                 ó2  ‡‡—  t          d¬¦  «        t          ¦  «        Št          |¦  «        }ˆˆfd„t          |¦  «        D ¦   «         }|                      ||¦  «         ˆˆfd„t          |dz  ¦  «        D ¦   «         }|                      ||¦  «         dS )z.
        Check choice(a) against pop.
        Trc   c                 ó&   •— g | ]} ‰‰¦  «        ‘ŒS r   r   ©rq   rÊ   r   rà  s     €€r   rs   z4TestRandomChoice._check_choice_1.<locals>.<listcomp>  s!   ø€ Ð*Ð*Ð*˜Aˆuˆu�Q‰xŒxÐ*Ð*Ð*r   c                 ó&   •— g | ]} ‰‰¦  «        ‘ŒS r   r   rA  s     €€r   rs   z4TestRandomChoice._check_choice_1.<locals>.<listcomp>  s!   ø€ Ð1Ð1Ð1˜Q���a‘”Ð1Ð1Ð1r   rò  N)r   r2   r£   rÏ   r4  r1  )r¼   r   r1  r?   rø  Údistrà  s    `    @r   Ú_check_choice_1z TestRandomChoice._check_choice_1ÿ  s¥   øø€ ð #•˜TÐ"Ñ"Ô"¥=Ñ1Ô1ˆÝ�‰HŒHˆØ*Ð*Ð*Ð*Ð*¥ q¡¤Ð*Ñ*Ô*ˆØ×Ò˜C Ñ%Ô%Ð%Ø1Ð1Ð1Ð1Ð1¥%¨¨C©¡.¤.Ð1Ñ1Ô1ˆØ×Ò˜˜dÑ#Ô#Ð#Ð#Ð#r   c                 ón   — d}t          t          |¦  «        ¦  «        }|                      ||¦  «         dS )z"
        Test choice(int)
        r  N)rŽ   rÏ   rD  ©r¼   r?   r1  s      r   Útest_choice_scalar_1z%TestRandomChoice.test_choice_scalar_1
  s6   € ð ˆÝ•5˜‘8”8‰nŒnˆØ×Ò˜Q Ñ$Ô$Ð$Ð$Ð$r   c                 óf   — t          j        d¦  «        dz  dz   }|                      ||¦  «         dS )z$
        Test choice(array)
        r  r¸   rò  N)r   r™  rD  ©r¼   r1  s     r   Útest_choice_array_1z$TestRandomChoice.test_choice_array_1  ó7   € õ Œi˜‰mŒm˜aÑ #Ñ%ˆØ×Ò˜S #Ñ&Ô&Ð&Ð&Ð&r   c                 óè   — t          |¦  «        }t           |¦   «         j        ¦  «        }|                      |||¦  «         |                      ||dz  ¦  «        }|                      ||¦  «         dS )zP
        Check array results produced by *func* and their distribution.
        rò  N)r£   rŽ   rç  r4  r>  r1  )r¼   rb   r1  r:   r?   rø  rC  s          r   Ú_check_array_resultsz%TestRandomChoice._check_array_results  sq   € õ �‰HŒHˆÝ�4�4‘6”6”;ÑÔˆØ×Ò˜C  gÑ.Ô.Ð.Ø×-Ò-¨d°A¸±GÑ<Ô<ˆØ×Ò˜˜dÑ#Ô#Ð#Ð#Ð#r   c                 óN  ‡‡‡—  t          d¬¦  «        t          ¦  «        Št          |¦  «        }|dz
  d|dz
  dz  f|dz  g}|D ]^Š ‰‰‰¦  «        }t          ‰t          ¦  «        r‰n‰f}|                      |j        |¦  «         |                      ˆˆˆfd„|¦  «         Œ_dS )z4
        Check choice(a, size) against pop.
        Trc   rÜ   r–   rŠ   c                  ó   •—  ‰‰ ‰¦  «        S r   r   ©r   rà  r6   s   €€€r   r¬  z2TestRandomChoice._check_choice_2.<locals>.<lambda>3  s   ø€ ¨e¨e°A°t©n¬n€ r   N)r   r8   r£   Ú
isinstancerà   rÍ   rœ  rM  )	r¼   r   r1  r?   Úsizesrø  Úexpected_shaperà  r6   s	    `     @@r   Ú_check_choice_2z TestRandomChoice._check_choice_2#  sÖ   øøø€ ð #•˜TÐ"Ñ"Ô"¥=Ñ1Ô1ˆÝ�‰HŒHˆð �R‘˜!˜a !™e¨™\Ð*¨A°©FÐ3ˆàð 	Cð 	CˆDà�%˜˜4‘.”.ˆCÝ%/°µeÑ%<Ô%<ÐI˜T˜TÀ4À'ˆNØ×Ò˜SœY¨Ñ7Ô7Ð7à×%Ò%Ð&<Ð&<Ð&<Ð&<Ð&<Ð&<¸cÑBÔBÐBÐBð	Cð 	Cr   c                 ó^   — d}t          j        |¦  «        }|                      ||¦  «         dS )z(
        Test choice(int, size)
        r  N©r   r™  rT  rF  s      r   Útest_choice_scalar_2z%TestRandomChoice.test_choice_scalar_25  ó2   € ð ˆÝŒi˜‰lŒlˆØ×Ò˜Q Ñ$Ô$Ð$Ð$Ð$r   c                 óf   — t          j        d¦  «        dz  dz   }|                      ||¦  «         dS )z*
        Test choice(array, size)
        r  r¸   rò  NrV  rI  s     r   Útest_choice_array_2z$TestRandomChoice.test_choice_array_2=  rK  r   c                 óH  ‡‡	‡
—  t          d¬¦  «        t          ¦  «        Š	t          |¦  «        }|dz
  d|dz
  dz  fg}ddg}|D ]IŠ
dD ]D} ‰	‰‰
|¦  «        }t          ‰
t          ¦  «        r‰
n‰
f}|                      |j        |¦  «         ŒEŒJ|D ]Š
|                      ˆˆ	ˆ
fd„|¦  «         Œ|D ]Š
|                      ˆˆ	ˆ
fd	„|d¦  «         Œ|dz   d|dz  dz   ffD ]AŠ
|                      t          ¦  «        5   ‰	‰‰
d¦  «         d
d
d
¦  «         n# 1 swxY w Y   ŒBd
S )z=
        Check choice(a, size, replace) against pop.
        Trc   rÜ   r–   rŠ   F)TFc                  ó   •—  ‰‰ ‰d¦  «        S )NTr   rP  s   €€€r   r¬  z2TestRandomChoice._check_choice_3.<locals>.<lambda>X  s   ø€ ¨e¨e°A°t¸TÑ.BÔ.B€ r   c                  ó   •—  ‰‰ ‰d¦  «        S )NFr   rP  s   €€€r   r¬  z2TestRandomChoice._check_choice_3.<locals>.<lambda>[  s   ø€ ¨e¨e°A°t¸UÑ.CÔ.C€ r   N)
r   r;   r£   rQ  rà   rÍ   rœ  rM  r  rg  )r¼   r   r1  r?   rR  Úreplacesr:   rø  rS  rà  r6   s    `       @@r   Ú_check_choice_3z TestRandomChoice._check_choice_3D  så  øøø€ ð #•˜TÐ"Ñ"Ô"¥=Ñ1Ô1ˆÝ�‰HŒHˆð �R‘˜!˜a !™e¨™\Ð*Ð+ˆØ˜%�=ˆð ð 	<ð 	<ˆDØ(ð <ð <�Ø�e˜A˜t WÑ-Ô-�Ý)3°D½%Ñ)@Ô)@Ð!M  ÀtÀg�Ø× Ò  ¤¨NÑ;Ô;Ð;Ð;ð<ð ð 	Ið 	IˆDØ×%Ò%Ð&BÐ&BÐ&BÐ&BÐ&BÐ&BÀCÑHÔHÐHÐHàð 	Qð 	QˆDØ×%Ò%Ð&CÐ&CÐ&CÐ&CÐ&CÐ&CÀSÈ%ÑPÔPÐPÐPð ˜‘U˜Q  Q¡¨¡
˜OÐ,ð 	&ð 	&ˆDØ×"Ò"¥:Ñ.Ô.ð &ð &Ø��a˜˜uÑ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &øð	&ð 	&s   Ã<DÄD	ÄD	c                 ó^   — d}t          j        |¦  «        }|                      ||¦  «         dS )z1
        Test choice(int, size, replace)
        r  N©r   r™  r_  rF  s      r   Útest_choice_scalar_3z%TestRandomChoice.test_choice_scalar_3b  rX  r   c                 óf   — t          j        d¦  «        dz  dz   }|                      ||¦  «         dS )z3
        Test choice(array, size, replace)
        r  r¸   rò  Nra  rI  s     r   Útest_choice_array_3z$TestRandomChoice.test_choice_array_3j  rK  r   c                 ó  — t          d¬¦  «        d„ ¦   «         }t          j                             dd¬¦  «                             t          j        ¦  «        }|                     ¦   «         }|                     d|¦  «        }|                     ¦   «         } |d|¦  «        }t          j         	                    ||¦  «         t          j         	                    ||¦  «         t          j         	                    ||¦  «         d S )NTrc   c                 óò   — t           j                             d¦  «         t          j        | dft           j        ¦  «        }t          | ¦  «        D ]&}t           j                             |dd¦  «        ||<   Œ'|S )Ni9  r¸   F)r   r   rW   ræ  rs  rÏ   r1   )Ún_to_returnÚchoice_arrayr»  rÊ   s       r   Únumba_randsz>TestRandomChoice.test_choice_follows_seed.<locals>.numba_randst  sk   € åŒI�NŠN˜4Ñ Ô Ð Ý”(˜K¨Ð+­R¬XÑ6Ô6ˆCÝ˜;Ñ'Ô'ð Bð B�Ýœ×)Ò)¨,¸¸5ÑAÔA��A‘�ØˆJr   i,  rô  r5   r[  )
r   r   r   r   rÞ  rs  r›  Úpy_funcÚtestingÚassert_allclose)r¼   ri  rh  Útmp_nprZ   Útmp_nbr[   s          r   Útest_choice_follows_seedz)TestRandomChoice.test_choice_follows_seedq  së   € õ 
�dÐ	Ñ	Ô	ð	ð 	ñ 
Ô	ð	õ ”y×(Ò(¨°4Ð(Ñ8Ô8×?Ò?ÅÄÑIÔIˆØ×"Ò"Ñ$Ô$ˆØ×&Ò& q¨&Ñ1Ô1ˆØ×"Ò"Ñ$Ô$ˆØˆk˜!˜VÑ$Ô$ˆÝ
Œ
×"Ò" 8¨SÑ1Ô1Ð1å
Œ
×"Ò" <°Ñ8Ô8Ð8Ý
Œ
×"Ò" <°Ñ8Ô8Ð8Ð8Ð8r   N)T)rÂ   rÃ   rÄ   rî   r4  r1  r>  rD  rG  rJ  rM  rT  rW  rZ  r_  rb  rd  ro  r   r   r   r/  r/  Ñ  sý   € € € € € ðð ð7ð 7ð 7ð 7ð">ð >ð >ðð ð ð	$ð 	$ð 	$ð%ð %ð %ð'ð 'ð 'ð$ð $ð $ð $ðCð Cð Cð$%ð %ð %ð'ð 'ð 'ð&ð &ð &ð<%ð %ð %ð'ð 'ð 'ð9ð 9ð 9ð 9ð 9r   r/  c                   óŠ   — e Zd ZdZ ej        g d¢ej        ¬¦  «        Zee                     ¦   «         z  Zd„ Z	d„ Z
d„ Zd„ ZdS )	ÚTestRandomMultinomialz%
    Test np.random.multinomial.
    )rŠ   rŠ   rŠ   r¸   r–   rŠ   r    c                 óv  — |                       |t          j        ¦  «         |                      |j        t          |¦  «        f¦  «         |                      |j        t          j        d¦  «        t          j        d¦  «        f¦  «         |                      |                     ¦   «         |¦  «         t          ||¦  «        D ]u\  }}|  
                    |d¦  «         |                      ||¦  «         t          |¦  «        |z  }|  
                    ||dz  ¦  «         |                      ||dz  ¦  «         ŒvdS )r6  rs  rr  r   r;  r®   N)rÌ   r   rö  rÍ   rœ  r£   r÷  r¡   ÚsumÚziprý  rþ  rµ  )r¼   r?   r@   Úsampler  ÚnexpÚpexps          r   Ú_check_samplez#TestRandomMultinomial._check_sample�  s"  € ð 	×Ò˜f¥b¤jÑ1Ô1Ð1Ø×Ò˜œ­¨E©
¬
 }Ñ5Ô5Ð5Ø�Š�f”l¥R¤X¨gÑ%6Ô%6½¼ÀÑ8IÔ8IÐ$JÑKÔKÐKà×Ò˜Ÿš™œ qÑ)Ô)Ð)Ý˜5 &Ñ)Ô)ð 	0ð 	0‰GˆAˆtØ×#Ò# D¨!Ñ,Ô,Ð,Ø× Ò   qÑ)Ô)Ð)Ý˜‘;”; ‘?ˆDØ×#Ò# D¨!¨c©'Ñ2Ô2Ð2Ø× Ò   q¨3¡wÑ/Ô/Ð/Ð/ð	0ð 	0r   c                 óÄ  —  t          d¬¦  «        t          ¦  «        }d| j        }} |||¦  «        }|                      |||¦  «         t	          |¦  «        } |||¦  «        }|                      |||¦  «         d}t          j        dd|dz  dgt
          j        ¬¦  «        }||                     ¦   «         z  } |||¦  «        }|                      |||¦  «         d	S )
z,
        Test multinomial(n, pvals)
        Trc   rô  i@B rŠ   r   rò  r    N)	r   rA   r@   rx  rŽ   r   r¤   rú  rs  )r¼   rà  r?   r@   rø  s        r   Útest_multinomial_2z(TestRandomMultinomial.test_multinomial_2Ÿ  sê   € ð #•˜TÐ"Ñ"Ô"Õ#5Ñ6Ô6ˆØ˜œˆ5ˆØˆe�A�u‰oŒoˆØ×Ò˜1˜e SÑ)Ô)Ð)å�U‘”ˆØˆe�A�u‰oŒoˆØ×Ò˜1˜e SÑ)Ô)Ð)àˆÝ”˜!˜Q  S¡¨!Ð,µB´JÐ?Ñ?Ô?ˆØ�—’‘”ÑˆØˆe�A�u‰oŒoˆØ×Ò˜1˜e SÑ)Ô)Ð)Ð)Ð)r   c                 óì   —  t          d¬¦  «        t          ¦  «        }d| j        }}d} ||||¦  «        }|                      |j        d         |¦  «         |D ]}|                      |||¦  «         ŒdS )z7
        Test multinomial(n, pvals, size: int)
        Trc   rô  rÜ   r   N)r   rD   r@   rÍ   rœ  rx  ©r¼   rà  r?   r@   Úkrø  ru  s          r   Útest_multinomial_3_intz,TestRandomMultinomial.test_multinomial_3_int²  s’   € ð #•˜TÐ"Ñ"Ô"Õ#5Ñ6Ô6ˆØ˜œˆ5ˆØˆØˆe�A�u˜aÑ Ô ˆØ×Ò˜œ 1œ qÑ)Ô)Ð)Øð 	1ð 	1ˆFØ×Ò˜q %¨Ñ0Ô0Ð0Ð0ð	1ð 	1r   c                 ó0  —  t          d¬¦  «        t          ¦  «        }d| j        }}d} ||||¦  «        }|                      |j        dd…         |¦  «         |                     d|j        d         f¦  «        D ]}|                      |||¦  «         ŒdS )z9
        Test multinomial(n, pvals, size: tuple)
        Trc   rô  )r–   r  Nr‹   )r   rD   r@   rÍ   rœ  rš  rx  r|  s          r   Útest_multinomial_3_tuplez.TestRandomMultinomial.test_multinomial_3_tuple¾  s­   € ð #•˜TÐ"Ñ"Ô"Õ#5Ñ6Ô6ˆØ˜œˆ5ˆØˆØˆe�A�u˜aÑ Ô ˆØ×Ò˜œ 3 B 3œ¨Ñ+Ô+Ð+Ø—k’k 2 s¤y°¤}Ð"5Ñ6Ô6ð 	1ð 	1ˆFØ×Ò˜q %¨Ñ0Ô0Ð0Ð0ð	1ð 	1r   N)rÂ   rÃ   rÄ   rî   r   r¤   rú  r@   rs  rx  rz  r~  r€  r   r   r   rq  rq  ‡  s�   € € € € € ðð ð ˆBŒHÐ'Ð'Ð'¨r¬zÐ:Ñ:Ô:€EØ	ˆU�YŠY‰[Œ[Ñ€Eð0ð 0ð 0ð *ð *ð *ð&
1ð 
1ð 
1ð
1ð 
1ð 
1ð 
1ð 
1r   rq  c                   óX   — e Zd Z ej        g d¢ej        ¬¦  «        Zd„ Zd„ Zd„ Z	d„ Z
dS )ÚTestRandomDirichlet)rŠ   rŠ   rŠ   r¸   r    c                 ó*  — |                       |t          j        ¦  «         |                      |j        t          j        ¦  «         |€)|                      |j        t          |¦  «        ¦  «         nmt          |¦  «        t          u r+|                      |j
        |t          |¦  «        f¦  «         n,|                      |j
        |t          |¦  «        fz   ¦  «         	 t          j        |¦  «        D ].}|                      |d¦  «         |                      |d¦  «         Œ/|€,|                      |                     ¦   «         dd¬¦  «         dS t          j        |                     d¬¦  «        ¦  «        D ]}|                      |dd¬¦  «         ŒdS )zCheck output structureNr   rŠ   r[  )Úplacesr‹   )Úaxis)rÌ   r   rö  rÍ   r¡   rú  r6   r£   Útyper˜   rœ  Únditerrý  rþ  ÚassertAlmostEqualrs  )r¼   rI   r6   ru  r•  Útotalss         r   rx  z!TestRandomDirichlet._check_sampleÎ  s€  € ð 	×Ò˜f¥b¤jÑ1Ô1Ð1Ø×Ò˜œ¥r¤zÑ2Ô2Ð2Øˆ<Ø×Ò˜Vœ[­#¨e©*¬*Ñ5Ô5Ð5Ð5Ý�$‰ZŒZ�3ÐÐØ×Ò˜Vœ\¨Dµ#°e±*´*Ð+=Ñ>Ô>Ð>Ð>à×Ò˜Vœ\¨4µ3°u±:´:°-Ñ+?Ñ@Ô@Ð@à*Ý”9˜VÑ$Ô$ð 	)ð 	)ˆCØ×#Ò# C¨Ñ+Ô+Ð+Ø× Ò   aÑ(Ô(Ð(Ð(Øˆ<Ø×"Ò" 6§:¢:¡<¤<°¸1Ð"Ñ=Ô=Ð=Ð=Ð=åœ) F§J¢J°B JÑ$7Ô$7Ñ8Ô8ð <ð <�Ø×&Ò& v¨q¸Ð&Ñ;Ô;Ð;Ð;ð<ð <r   c                 óJ  —  t          d¬¦  «        t          ¦  «        }| j        t          | j        ¦  «        t	          j        g d¢t          j        ¬¦  «        t	          j        g d¢t          j        ¬¦  «        f}|D ]$} ||¦  «        }|                      |d|¦  «         Œ%dS )ú2
        Test dirichlet(alpha, size=None)
        Trc   ©rŠ   rŠ   rõ  rŠ   r    ©rŠ   rŠ   r…  rŠ   N)r   rL   rI   rà   r   r¤   rú  rx  )r¼   rà  ÚalphasrI   rø  s        r   Útest_dirichlet_defaultz*TestRandomDirichlet.test_dirichlet_defaultä  s®   € ð #•˜TÐ"Ñ"Ô"Õ#:Ñ;Ô;ˆàŒJÝ�$”*ÑÔÝŒHÐ%Ð%Ð%­R¬ZÐ8Ñ8Ô8ÝŒH�^�^�^­2¬:Ð6Ñ6Ô6ð	
ˆð ð 	1ð 	1ˆEØ�%˜‘,”,ˆCØ×Ò˜u d¨CÑ0Ô0Ð0Ð0ð	1ð 	1r   c                 ó|  —  t          d¬¦  «        t          ¦  «        }d}| j        t          | j        ¦  «        t	          j        g d¢t          j        ¬¦  «        t	          j        g d¢t          j        ¬¦  «        f}t          j        ||¦  «        D ](\  }} |||¦  «        }|  	                    |||¦  «         Œ)dS )r‹  Trc   )N©rÜ   ©rÜ   rÜ   rŒ  r    r�  N)
r   rJ   rI   rà   r   r¤   rú  Ú	itertoolsÚproductrx  )r¼   rà  rR  rŽ  rI   r6   rø  s          r   Útest_dirichletz"TestRandomDirichlet.test_dirichletó  sÇ   € ð #•˜TÐ"Ñ"Ô"¥?Ñ3Ô3ˆØ'ˆàŒJÝ�$”*ÑÔÝŒHÐ%Ð%Ð%­R¬ZÐ8Ñ8Ô8ÝŒH�^�^�^­2¬:Ð6Ñ6Ô6ð	
ˆõ %Ô,¨V°UÑ;Ô;ð 	1ð 	1‰KˆE�4Ø�%˜˜tÑ$Ô$ˆCØ×Ò˜u d¨CÑ0Ô0Ð0Ð0ð	1ð 	1r   c           
      ón  —  t          d¬¦  «        t          ¦  «        }t          d¦  «        }|                      t          ¦  «        5 } ||d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         | j        }ddddd	d
t          j
        d¦  «        t          j        d¦  «        ff}|D ]h}|                      t          ¦  «        5 } |||¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         Œid S )NTrc   )r   rŠ   rŠ   rŠ   zdirichlet: alpha must be > 0.0ù              @r…  ©r…  rŠ   ©r—  rŠ   ©r—  r—  r–   rf  zGnp.random.dirichlet(): size should be int or tuple of ints or None, got)r   rJ   rà   r  rg  r÷  ÚstrÚ	exceptionrI   r   Úint8rr  r   )r¼   rà  rI   ÚraisesrR  r6   s         r   Útest_dirichlet_exceptionsz-TestRandomDirichlet.test_dirichlet_exceptions  s®  € Ø"•˜TÐ"Ñ"Ô"¥?Ñ3Ô3ˆÝ�iÑ Ô ˆØ×Ò�zÑ*Ô*ð 	¨fØˆE�%˜‰OŒOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�ŠÐ6½¸FÔ<LÑ8MÔ8MÑNÔNÐNà”
ˆØ�r˜3 ¨'°8½b¼gÀa¹j¼jÍ"Ì(ÐSTÉ+Ì+Ð=VÐWˆØð 	ð 	ˆDØ×"Ò"¥;Ñ/Ô/ð #°6Ø��e˜TÑ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #à�MŠMð-å�FÔ$Ñ%Ô%ñô ð ð ð	ð 	s$   ÁA!Á!A%Á(A%Ã(DÄD	ÄD	N)rÂ   rÃ   rÄ   r   r¤   rú  rI   rx  r�  r•  rŸ  r   r   r   r‚  r‚  Ë  sl   € € € € € ØˆBŒH�\�\�\¨¬Ð4Ñ4Ô4€Eð<ð <ð <ð,1ð 1ð 1ð1ð 1ð 1ð"ð ð ð ð r   r‚  c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestRandomNoncentralChiSquarec                 óÀ  — |�“|                       |t          j        ¦  «         |                      |j        t          j        ¦  «         t          |t          ¦  «        r|                      |j        |f¦  «         n7|                      |j        |¦  «         n|                       |t          ¦  «         t          j
        |¦  «        D ]}|                      |d¦  «         Œd S ©Nr   )rÌ   r   rö  rÍ   r¡   rú  rQ  r˜   rœ  rµ  r‡  rý  )r¼   r6   ru  r•  s       r   rx  z+TestRandomNoncentralChiSquare._check_sample  sÚ   € ð ÐØ×!Ò! &­"¬*Ñ5Ô5Ð5Ø×Ò˜Vœ\­2¬:Ñ6Ô6Ð6å˜$¥Ñ$Ô$ð 5Ø× Ò  ¤°¨wÑ7Ô7Ð7Ð7à× Ò  ¤¨tÑ4Ô4Ð4Ð4à×"Ò" 6­5Ñ1Ô1Ð1õ ”9˜VÑ$Ô$ð 	,ð 	,ˆCØ×#Ò# C¨Ñ+Ô+Ð+Ð+ð	,ð 	,r   c                 ó  —  t          d¬¦  «        t          ¦  «        }d}|D ]d\  }} |||¦  «        }|                      d|¦  «          ||t          j        ¦  «        }|                      t          j        |¦  «        ¦  «         ŒedS )z@
        Test noncentral_chisquare(df, nonc, size=None)
        Trc   ©)r;  rŠ   r|  )r[  rŠ   )r>  rŠ   )rŠ   rõ  N)r   rU   rx  r   Únanr$  Úisnan)r¼   rà  ÚinputsrQ   rR   rø  s         r   Ú!test_noncentral_chisquare_defaultz?TestRandomNoncentralChiSquare.test_noncentral_chisquare_default*  sš   € ð #•˜TÐ"Ñ"Ô"Õ#EÑFÔFˆð
ˆð ð 	+ð 	+‰HˆB�Ø�%˜˜D‘/”/ˆCØ×Ò˜t SÑ)Ô)Ð)Ø�%˜�BœFÑ#Ô#ˆCØ�OŠO�BœH S™MœMÑ*Ô*Ð*Ð*ð		+ð 	+r   c                 ól  —  t          d¬¦  «        t          ¦  «        }d}d}t          j        ||¦  «        D ]{\  \  }}} ||||¦  «        }|                      ||¦  «          ||t
          j        |¦  «        }|                      t          j        |¦  «         	                    ¦   «         ¦  «         Œ|dS )z;
        Test noncentral_chisquare(df, nonc, size)
        Trc   )NrÜ   r‘  r’  r¥  N)
r   rS   r“  r”  rx  r   r¦  r$  r§  rD  )r¼   rà  rR  r¨  rQ   rR   r6   rø  s           r   Útest_noncentral_chisquarez7TestRandomNoncentralChiSquare.test_noncentral_chisquare=  sÃ   € ð #•˜TÐ"Ñ"Ô"Õ#=Ñ>Ô>ˆØ+ˆð
ˆõ !*Ô 1°&¸%Ñ @Ô @ð 	1ð 	1Ñ‰JˆR�˜Ø�%˜˜D $Ñ'Ô'ˆCØ×Ò˜t SÑ)Ô)Ð)Ø�%˜�BœF DÑ)Ô)ˆCØ�OŠO�BœH S™MœM×-Ò-Ñ/Ô/Ñ0Ô0Ð0Ð0ð		1ð 	1r   c           
      ó2  —  t          d¬¦  «        t          ¦  «        }d\  }}|                      t          ¦  «        5 } |||d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d\  }}|                      t          ¦  «        5 } |||d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d\  }}dd	d
dddt          j        d¦  «        t          j	        d¦  «        ff}|D ]i}|                      t          ¦  «        5 } ||||¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         Œjd S )NTrc   )r   rŠ   rŠ   zdf <= 0)rŠ   r‹   znonc < 0)rŠ   rŠ   r—  r…  r˜  r™  rš  r–   rf  zRnp.random.noncentral_chisquare(): size should be int or tuple of ints or None, got)r   rS   r  rg  r÷  r›  rœ  r   r�  rr  r   )r¼   rà  rQ   rR   rž  rR  r6   s          r   Ú$test_noncentral_chisquare_exceptionszBTestRandomNoncentralChiSquare.test_noncentral_chisquare_exceptionsQ  sU  € Ø"•˜TÐ"Ñ"Ô"Õ#=Ñ>Ô>ˆØ‰ˆˆDØ×Ò�zÑ*Ô*ð 	¨fØˆE�"�d˜AÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�Š�i¥ VÔ%5Ñ!6Ô!6Ñ7Ô7Ð7à‰ˆˆDØ×Ò�zÑ*Ô*ð 	¨fØˆE�"�d˜AÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�Š�j¥# fÔ&6Ñ"7Ô"7Ñ8Ô8Ð8à‰ˆˆDØ�r˜3 ¨'°8½b¼gÀa¹j¼jÍ"Ì(ÐSTÉ+Ì+Ð=VÐWˆØð 	ð 	ˆDØ×"Ò"¥;Ñ/Ô/ð &°6Ø��b˜$ Ñ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &à�MŠMð-å�FÔ$Ñ%Ô%ñô ð ð ð	ð 	s5   ¾AÁAÁAÂ*CÃCÃCÅ	E#Å#E'	Å*E'	N)rÂ   rÃ   rÄ   rx  r©  r«  r­  r   r   r   r¡  r¡    sP   € € € € € ð,ð ,ð ,ð$+ð +ð +ð&1ð 1ð 1ð(ð ð ð ð r   r¡  T)rd   Únogilc                 ó–   — | dk    rt          j        | ¦  «         t          |j        ¦  «        D ]}t          j        d¦  «        ||<   Œd S )Nr   r˜  )r   rW   rÏ   r6   r  )rW   r»  rÊ   s      r   Úpy_extract_randomnessr°  h  sR   € àˆq‚y€yÝŒ�DÑÔÐÝ�3”8‰_Œ_ð (ð (ˆÝÔ# BÑ'Ô'ˆˆA‰ˆð(ð (r   r   c                 óÐ   — | dk    rt           j                             | ¦  «         d}t          |j        ¦  «        D ])}t           j                             t          ¦  «        ||<   Œ*d S r£  )r   r   rW   rÏ   r6   r   Ú_randint_limit)rW   r»  rÎ  rÊ   s       r   Únp_extract_randomnessr³  q  s`   € àˆq‚y€yÝ
Œ	�Š�tÑÔÐØ	€AÝ�3”8‰_Œ_ð 3ð 3ˆÝ”×"Ò"¥>Ñ2Ô2ˆˆA‰ˆð3ð 3r   c                   ó*   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdS )ÚConcurrencyBaseTestr>  c                 óX   — d|                       d¦  «        f}t          |Ž  t          |Ž  d S )Nr  rŠ   )Ú_get_outputr°  r³  )r¼   r$  s     r   ÚsetUpzConcurrencyBaseTest.setUpƒ  s6   € à�D×$Ò$ QÑ'Ô'Ð(ˆÝ˜tÐ$Ð$Ý˜tÐ$Ð$Ð$Ð$r   c                 óB   — t          j        |t           j        ¬¦  «        S )Nr    )r   ÚzerosrŸ   )r¼   r6   s     r   r·  zConcurrencyBaseTest._get_output‰  s   € ÝŒx˜¥B¤IÐ.Ñ.Ô.Ð.r   c                 ó  — d}dt          j        d¦  «        z  }d}t           j                             |                     ¦   «         ||¬¦  «         t           j                             |                     ¦   «         ||¬¦  «         dS )z9
        Check statistical properties of output.
        rq  r   r!  gš™™™™™©?)ÚrtolN)r   r   rk  rl  rE  Ústd)r¼   r»  Úexpected_avgÚexpected_stdr¼  s        r   Úcheck_outputz ConcurrencyBaseTest.check_outputŒ  sp   € ð
 ˆØ¥2¤7¨2¡;¤;Ñ.ˆØˆÝ
Œ
×"Ò" 3§8¢8¡:¤:¨|À$Ð"ÑGÔGÐGÝ
Œ
×"Ò" 3§7¢7¡9¤9¨lÀÐ"ÑFÔFÐFÐFÐFr   c                 ó‚  — |D ]}|                       |¦  «         Œ|rd}nt          |¦  «        }d„ |D ¦   «         }d„ |D ¦   «         }d„ |D ¦   «         }|                      t          |¦  «        ||¦  «         |                      t          |¦  «        ||¦  «         |                      t          |¦  «        ||¦  «         d S )NrŠ   c                 ó<   — h | ]}t          |d d…         ¦  «        ’ŒS )Nr[  ©rà   ©rq   r»  s     r   ú	<setcomp>z<ConcurrencyBaseTest.check_several_outputs.<locals>.<setcomp>¥  s&   € Ð3Ð3Ð3 C•�s˜2˜A˜2”w‘”Ð3Ð3Ð3r   c                 ó<   — h | ]}t          |d d…         ¦  «        ’ŒS )re  NrÃ  rÄ  s     r   rÅ  z<ConcurrencyBaseTest.check_several_outputs.<locals>.<setcomp>¦  s&   € Ð4Ð4Ð4 S•�s˜2˜3˜3”x‘”Ð4Ð4Ð4r   c                 ó6   — h | ]}|                      ¦   «         ’ŒS r   )rs  rÄ  s     r   rÅ  z<ConcurrencyBaseTest.check_several_outputs.<locals>.<setcomp>§  s    € Ð-Ð-Ð-˜c�—’‘	”	Ð-Ð-Ð-r   )rÀ  r£   rÍ   )r¼   r/  Úsame_expectedr»  Úexpected_distinctÚheadsÚtailsÚsumss           r   Úcheck_several_outputsz)ConcurrencyBaseTest.check_several_outputs—  så   € ð ð 	#ð 	#ˆCØ×Ò˜cÑ"Ô"Ð"Ð"ð ð 	-Ø !ÐÐå # G¡¤Ðà3Ð3¨7Ð3Ñ3Ô3ˆØ4Ð4¨GÐ4Ñ4Ô4ˆØ-Ð- WÐ-Ñ-Ô-ˆØ×Ò�˜U™œÐ%6¸Ñ>Ô>Ð>Ø×Ò�˜U™œÐ%6¸Ñ>Ô>Ð>Ø×Ò�˜T™œÐ$5°tÑ<Ô<Ð<Ð<Ð<r   N)rÂ   rÃ   rÄ   Ú_extract_iterationsr¸  r·  rÀ  rÍ  r   r   r   rµ  rµ  {  s[   € € € € € ð !Ðð%ð %ð %ð/ð /ð /ð	Gð 	Gð 	Gð=ð =ð =ð =ð =r   rµ  c                   ó<   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
ÚTestThreadsz3
    Check the PRNG behaves well with threads.
    c                 ó
  ‡ ‡‡‡‡— ˆ fd„t          |dz   ¦  «        D ¦   «         Šˆˆˆfd„Šˆfd„t          |¦  «        D ¦   «         }|D ]}|                     ¦   «          Œ ‰|¦  «         |D ]}|                     ¦   «          Œ‰S )zo
        Run *nthreads* threads extracting randomness with the given *seed*
        (no seeding if 0).
        c                 óD   •— g | ]}‰                      ‰j        ¦  «        ‘ŒS r   ©r·  rÎ  )rq   rÊ   r¼   s     €r   rs   z2TestThreads.extract_in_threads.<locals>.<listcomp>·  s:   ø€ ð 1ð 1ð 1Øð ×#Ò# DÔ$<Ñ=Ô=ð 1ð 1ð 1r   rŠ   c                 ó.   •—  ‰‰‰|          ¬¦  «         d S )N©rW   r»  r   )rÊ   Úextract_randomnessr/  rW   s    €€€r   Útargetz.TestThreads.extract_in_threads.<locals>.targetº  s#   ø€ àÐ D¨g°a¬jÐ9Ñ9Ô9Ð9Ð9Ð9r   c                 ó>   •— g | ]}t          j        ‰|f¬ ¦  «        ‘ŒS ))r×  r$  )Ú	threadingÚThread)rq   rÊ   r×  s     €r   rs   z2TestThreads.extract_in_threads.<locals>.<listcomp>¾  s;   ø€ ð -ð -ð -Øõ Ô#¨6¸¸Ð=Ñ=Ô=ð -ð -ð -r   )rÏ   Ústartru   )r¼   ÚnthreadsrÖ  rW   ÚthreadsÚthr/  r×  s   ` ``  @@r   Úextract_in_threadszTestThreads.extract_in_threads²  sß   øøøøø€ ð
1ð 1ð 1ð 1Ý! (¨Q¡,Ñ/Ô/ð1ñ 1ô 1ˆð	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð-ð -ð -ð -Ý! (™OœOð-ñ -ô -ˆð ð 	ð 	ˆBØ�HŠH‰JŒJˆJˆJàˆˆxÑÔÐØð 	ð 	ˆBØ�GŠG‰IŒIˆIˆIàˆr   c                 ód   — |                       d|d¬¦  «        }|                      |d¬¦  «         dS )zÎ
        When initializing the PRNG the same way, each thread
        should produce the same sequence of random numbers,
        using independent states, regardless of parallel
        execution.
        ro  r  rU  T©rÈ  N©rß  rÍ  ©r¼   rÖ  r/  s      r   Úcheck_thread_safetyzTestThreads.check_thread_safetyÊ  s@   € ð ×)Ò)¨"Ð.@ÀrÐ)ÑJÔJˆð 	×"Ò" 7¸$Ð"Ñ?Ô?Ð?Ð?Ð?r   c                 ód   — |                       d|d¬¦  «        }|                      |d¬¦  «         dS )z€
        The PRNG in new threads should be implicitly initialized with
        system entropy, if seed() wasn't called.
        r  r   rU  Frá  Nrâ  rã  s      r   Úcheck_implicit_initializationz)TestThreads.check_implicit_initializationØ  s@   € ð
 ×)Ò)¨!Ð-?ÀaÐ)ÑHÔHˆð 	×"Ò" 7¸%Ð"Ñ@Ô@Ð@Ð@Ð@r   c                 ó:   — |                       t          ¦  «         d S r   )rä  r°  rå   s    r   Útest_py_thread_safetyz!TestThreads.test_py_thread_safetyâ  ó   € Ø× Ò Õ!6Ñ7Ô7Ð7Ð7Ð7r   c                 ó:   — |                       t          ¦  «         d S r   )rä  r³  rå   s    r   Útest_np_thread_safetyz!TestThreads.test_np_thread_safetyå  ré  r   c                 ó:   — |                       t          ¦  «         d S r   ©ræ  r°  rå   s    r   Útest_py_implicit_initializationz+TestThreads.test_py_implicit_initializationè  ó   € Ø×*Ò*Õ+@ÑAÔAÐAÐAÐAr   c                 ó:   — |                       t          ¦  «         d S r   ©ræ  r³  rå   s    r   Útest_np_implicit_initializationz+TestThreads.test_np_implicit_initializationë  rï  r   N)rÂ   rÃ   rÄ   rî   rß  rä  ræ  rè  rë  rî  rò  r   r   r   rÐ  rÐ  ­  s•   € € € € € ðð ðð ð ð0@ð @ð @ðAð Að Að8ð 8ð 8ð8ð 8ð 8ðBð Bð BðBð Bð Bð Bð Br   rÐ  Úntz(Windows is not affected by fork() issuesc                   ó.   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ ZdS )ÚTestProcessesz9
    Check the PRNG behaves well in child processes.
    Fc                 óf  ‡ ‡‡‡	‡
‡— t          j        ¦   «         Š	g }ˆˆ fd„Šˆ	ˆfd„Š
t          t           d¦  «        rt          j        d¦  «        Šnt           Šˆˆ
fd„t	          |¦  «        D ¦   «         }|D ]}|                     ¦   «          Œt	          |¦  «        D ]+}|                     ‰	                     d¬¦  «        ¦  «         Œ,|D ]}|                     ¦   «          Œ|                      ‰¦   «         ¦  «         |D ]/}t          |t          ¦  «        r‰                      d|›�¦  «         Œ0|S )	z`
        Run *nprocs* processes extracting randomness
        without explicit seeding.
        c                  óV   •— ‰                      ‰j        ¦  «        }  ‰d| ¬¦  «         | S )Nr   rÕ  rÓ  )r»  rÖ  r¼   s    €€r   Útarget_innerz8TestProcesses.extract_in_processes.<locals>.target_inner  s4   ø€ Ø×"Ò" 4Ô#;Ñ<Ô<ˆCØÐ A¨3Ð/Ñ/Ô/Ð/ØˆJr   c                  ó˜   •— 	  ‰¦   «         } ‰                      | ¦  «         d S # t          $ r}‰                      |¦  «         ‚ d }~ww xY wr   )ÚputÚ	Exception)r»  ÚeÚqrø  s     €€r   r×  z2TestProcesses.extract_in_processes.<locals>.target  sY   ø€ ðØ"�l‘n”n�Ø—’�c‘
”
�
�
�
øÝð ð ð ð —’�a‘”�Øøøøøð	øøøs   ƒ$ ¤
A	®AÁA	Úget_contextÚforkc                 ó<   •— g | ]}‰                      ‰¬ ¦  «        ‘ŒS ))r×  )ÚProcess)rq   rÊ   Úmpcr×  s     €€r   rs   z6TestProcesses.extract_in_processes.<locals>.<listcomp>  s7   ø€ ð )ð )ð )Øð —’ F�Ñ+Ô+ð )ð )ð )r   r[  )ÚtimeoutzException in child: )ÚmultiprocessingÚQueueÚhasattrrþ  rÏ   rÛ  rß   Úgetru   rQ  rû  Úfail)r¼   ÚnprocsrÖ  r/  Úprocsr  rÊ   rø  r  rý  r×  rø  s   ` `     @@@@r   Úextract_in_processesz"TestProcesses.extract_in_processesú  s‡  øøøøøø€ õ
 Ô!Ñ#Ô#ˆØˆð	ð 	ð 	ð 	ð 	ð 	ð
	ð 	ð 	ð 	ð 	ð 	õ •? MÑ2Ô2ð 	"å!Ô-¨fÑ5Ô5ˆCˆCå!ˆCð)ð )ð )ð )ð )Ý ™-œ-ð)ñ )ô )ˆàð 	ð 	ˆAØ�GŠG‰IŒIˆIˆIõ �v‘”ð 	-ð 	-ˆAØ�NŠN˜1Ÿ5š5¨˜5Ñ+Ô+Ñ,Ô,Ð,Ð,Øð 	ð 	ˆAØ�FŠF‰HŒHˆHˆHð 	�Š�|�|‘~”~Ñ&Ô&Ð&Øð 	=ð 	=ˆCÝ˜#�yÑ)Ô)ð =Ø—	’	�	°c°cÐ;Ñ<Ô<Ð<øàˆr   c                 ó`   — |                       d|¦  «        }|                      |d¬¦  «         dS )z’
        The PRNG in new processes should be implicitly initialized
        with system entropy, to avoid reproducing the same sequences.
        r¸   Frá  N)r  rÍ  rã  s      r   ræ  z+TestProcesses.check_implicit_initialization*  s;   € ð
 ×+Ò+¨AÐ/AÑBÔBˆð 	×"Ò" 7¸%Ð"Ñ@Ô@Ð@Ð@Ð@r   c                 ó:   — |                       t          ¦  «         d S r   rí  rå   s    r   rî  z-TestProcesses.test_py_implicit_initialization4  rï  r   c                 ó:   — |                       t          ¦  «         d S r   rñ  rå   s    r   rò  z-TestProcesses.test_np_implicit_initialization7  rï  r   N)	rÂ   rÃ   rÄ   rî   Ú_numba_parallel_test_r  ræ  rî  rò  r   r   r   rõ  rõ  ï  sn   € € € € € ðð ð "Ðð.ð .ð .ð`Að Að AðBð Bð BðBð Bð Bð Bð Br   rõ  c            	       ó  — e Zd Zi dddddœ“ddddd	œ“d
dddœ“ddddœ“ddddœ“ddddœ“dddddœ“dddddœ“ddddœ“dddddœ“ddddddœ“dddddœ“d ddddœ“d!dddd"œ“d#d$ddœ“d%dd&dd'œ“d(dd$d)œ“i d*dddd+œ“d,ddddœ“d-dddœ“d.ddd/œ“d0dddœ“d1dddd2œ“d3d4di“d5d4di“d6d4di“d7dddœ“d8d4di“d9d:d;i“d<d4di“d=d4di“d>ddd?œ“d@d4di“dAdddœ“¥dddBddCœdddd2œddddDœddddEœdddœdddœdFœ¥ZdG„ ZdH„ ZdIS )JÚTestNumPyRandomAPIrÀ  r¯   r®   r–   )r   r"   r6   rî  rŠ   rn  )r?   r  r6   r  )rQ   r6   znp.random.choicer¸   r7   znp.random.dirichletrÁ   rH   rÕ  )r/  r6   r  )ÚdfnumÚdfdenr6   r·  )rœ  r/  r6   r  )r  r6   r'  r¢   )r.  r/  r6   r3  )ÚngoodÚnbadÚnsampler6   rH  rO  rW  )rE  Úsigmar6   rS  r;  znp.random.multinomialr  rC   r_  )r?   r  znp.random.noncentral_chisquarerP   r†   rà  rZ  )Úlamr6   rt  znp.random.randintr�  r‡   r6   rþ   rÿ   rx  r   rˆ   rW   r  r  rØ  r¸  )rœ  r6   rL  r„  g      @)ÚleftÚmodeÚrightr6   )ÚmuÚkappar6   )rE  r/  r6   )r¨  r”  rÈ  r‹  rë  r“  c                 ón  — | j                              ¦   «         D ]š\  }}d                     d„ |                     ¦   «         D ¦   «         ¦  «        }t          d|› d|› d�¦  «        }i }t	          |dt
          i|¦  «         |d         } |¦   «          t          |¦  «                             d¦  «         Œ›d S )	NrÔ  c                 ó"   — g | ]\  }}|› d |› �‘ŒS ro   r   ©rq   r}  Úvs      r   rs   z8TestNumPyRandomAPI.test_call_by_name.<locals>.<listcomp>~  ó&   € ÐDÐDÐD©t¨q°! 1 
 
 q 
 
ÐDÐDÐDr   ú7
                def foo():
                    return rt   ú)
                r   Úfoor   )ÚAPI_CALL_TESTSÚitemsru   r   Úexecr   r   Úcompile)r¼   Úfnr$  ÚargstrÚtemplaterª  rb   s          r   Útest_call_by_namez$TestNumPyRandomAPI.test_call_by_names  sÛ   € ð Ô+×1Ò1Ñ3Ô3ð 	#ð 	#‰HˆB�Ø—Y’YÐDÐD°t·z²z±|´|ÐDÑDÔDÑEÔEˆFÝð àðð à!'ðð ð ñ ô ˆHð ˆAÝ�˜D¥"˜: qÑ)Ô)Ð)ð
 �U”8ˆDØˆD‰FŒFˆFÝ�‰JŒJ×Ò˜rÑ"Ô"Ð"Ð"ð	#ð 	#r   c                 óF  — | j                              ¦   «         D �]\  }}d|vrŒd|d<   d                     d„ |                     ¦   «         D ¦   «         ¦  «        }t          d|› d|› d�¦  «        }i }t	          |dt
          i|¦  «         |d	         } |¦   «         }t          |¦  «                             d¦  «        } |¦   «         }	t          |	t
          j	        ¦  «        r!|  
                    |	j        |j        ¦  «         Œê|                      |	|j        ¦  «         �Œd S )
Nr6   r   rÔ  c                 ó"   — g | ]\  }}|› d |› �‘ŒS ro   r   r   s      r   rs   zNTestNumPyRandomAPI.test_call_distributions_with_empty_size.<locals>.<listcomp>•  r"  r   r#  rt   r$  r   r%  )r&  r'  ru   r   r(  r   r   r)  rQ  rö  rÍ   rœ  rÌ   Ú	__class__)
r¼   r*  r$  r+  r,  rª  rb   Únp_valÚnb_funcÚnb_vals
             r   Ú'test_call_distributions_with_empty_sizez:TestNumPyRandomAPI.test_call_distributions_with_empty_size�  sK  € ð Ô+×1Ò1Ñ3Ô3ð 	@ñ 	@‰HˆB�Ø˜TÐ!Ð!ØàˆD�‰LØ—Y’YÐDÐD°t·z²z±|´|ÐDÑDÔDÑEÔEˆFÝð àðð à!'ðð ð ñ ô ˆHð ˆAÝ�˜D¥"˜: qÑ)Ô)Ð)ð �U”8ˆDØ�T‘V”VˆFå˜4‘j”j×(Ò(¨Ñ,Ô,ˆGØ�W‘Y”YˆFå˜&¥"¤*Ñ-Ô-ð @Ø× Ò  ¤¨v¬|Ñ<Ô<Ð<Ð<à×%Ò% f¨fÔ.>Ñ?Ô?Ð?Ñ?ð5	@ð 	@r   N)rÂ   rÃ   rÄ   r&  r-  r4  r   r   r   r  r  ;  sp  € € € € € ð5?Ð&¨b°rÀ1Ð(EÐ(Eð 5?Ø*°!¸#ÀqÐ,IÐ,Ið5?à+°BÀÐ-BÐ-Bð5?ð )°¸1Ð*=Ð*=ð5?ð ,°tÀQÐ-GÐ-Gð	5?ð
 .¸ÀQÐ/GÐ/Gð5?ð $¨r¸BÈÐ%JÐ%Jð5?ð (°1¸sÈAÐ)NÐ)Nð5?ð ,°2¸qÐ-AÐ-Að5?ð )°"¸rÈ1Ð*MÐ*Mð5?ð 1¸AÀqØ>?Èð3Lð 3Lð5?ð *°2ÀÈAÐ+NÐ+Nð5?ð +°BÀÈQÐ,OÐ,Oð5?ð ,°bÀ2ÈqÐ-QÐ-Qð5?ð ,°3ÀÐ-BÐ-Bð5?ð  .°QÀÈqÐ/QÐ/Qð!5?ð" 4¸1À3Ð5GÐ5Gð#5?ð 5?ð$ 7¸rÈ2ØABð9Dð 9Dð%5?ð( )°"¸rÈ1Ð*MÐ*Mð)5?ð* )°¸AÐ*>Ð*>ð+5?ð2 *°2¸qÐ+AÐ+Að35?ð4 (¨r¸1Ð)=Ð)=ð55?ð< *°1¸aÈÐ+KÐ+Kð=5?ðD )¨6°1¨+ðE5?ðF 0°&¸!°ðG5?ðH '¨°¨ðI5?ðJ +°bÀ!Ð,DÐ,DðK5?ðL )¨6°1¨+ðM5?ðN '¨°¨ðO5?ðT 2°F¸A°;ðU5?ðV 7¸À¸ðW5?ðX 1¸BÈÐ2JÐ2JðY5?ðZ 2°F¸A°;ð[5?ð\ -°RÀÐ.CÐ.Cð]5?ð 5?ð^ 8:À2ÐPRØ78ð/:ð /:à35¸rÈ1Ð+MÐ+MØ35ÀÈAÐ,NÐ,NØ13¸bÈ!Ð(LÐ(LØ13¸QÐ+?Ð+?Ø.0¸!Ð(<Ð(<ðk5?ð 5?ð 5?€Nðn#ð #ð #ð4@ð @ð @ð @ð @r   r  Ú__main__)Sr7  r  rÿ  r  rÝ   r   r«  r­  rÙ  r“  Útextwrapr   Únumpyr   Úunittestrð  r   r   r   Ú
numba.corer   Únumba.tests.supportr   r	   r
   Únumba.core.errorsr   rÎ   r   r   r   r#   r%   r)   r+   r.   r2   r8   r;   rA   rD   rJ   rL   rS   rU   r\   r`   rk   ry   r~   r€   r‚   r„   rÂ  rú   rù   rÈ  r  r  r”   rœ   r¬   r±   rµ   r·   rÆ   rð   rÑ  r/  rq  r‚  r¡  r°  r²  r³  rµ  rÐ  ÚskipIfrg   rõ  r  rÂ   Úmainr   r   r   ú<module>r>     s2  ðØ Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø 	€	€	€	Ø €€€Ø Ð Ð Ð Ø 
€
€
€
Ø Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð à €€€à €€€Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø Ð Ð Ð Ð Ð Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø )Ð )Ð )Ð )Ð )Ð )ð €ð-ð -ð -ð-ð -ð -ð ð  ð  ð#ð #ð #ð ð  ð  ðð ð ð"ð "ð "ð%ð %ð %ðð ð ð*ð *ð *ð;ð ;ð ;ð+ð +ð +ð<ð <ð <ð1ð 1ð 1ð&ð &ð &ð?ð ?ð ?ð4ð 4ð 4ðð ð ðð ð ð&ð &ð &ð&ð &ð &ð#ð #ð #ð$ð $ð $ð'ð 'ð 'ð*ð *ð *ð ˆz˜.Ñ)Ô)€Ø�˜OÑ,Ô,€Øˆi˜Ñ&Ô&€àˆzÐ,Ñ-Ô-€Øˆ{Ð-Ñ.Ô.€ØˆYÐ'Ñ(Ô(€
ðð ð ðð ð ðð ð ð"/ð /ð /ð,ð ,ð ,ð

ð 
ð 
ð 
ð 
ˆxñ 
ô 
ð 
ðA0ð A0ð A0ð A0ð A0�Hñ A0ô A0ð A0ðHn*ð n*ð n*ð n*ð n*�ñ n*ô n*ð n*ðb]/ð ]/ð ]/ð ]/ð ]/�xñ ]/ô ]/ð ]/ð@s9ð s9ð s9ð s9ð s9�xñ s9ô s9ð s9ðlA1ð A1ð A1ð A1ð A1˜Hñ A1ô A1ð A1ðHIð Ið Ið Ið I˜(ñ Iô Ið IðVPð Pð Pð Pð P Hñ Pô Pð Pðd €ˆd˜$ÐÑÔð(ð (ñ  Ôð(ð €à€ˆd˜$ÐÑÔð3ð 3ñ  Ôð3ð/=ð /=ð /=ð /=ð /=˜(ñ /=ô /=ð /=ðd?Bð ?Bð ?Bð ?Bð ?BÐ%ñ ?Bô ?Bð ?BðD €„�”˜D’Ð"LÑMÔMðHBð HBð HBð HBð HBÐ'ñ HBô HBñ NÔMðHBðVo@ð o@ð o@ð o@ð o@˜ñ o@ô o@ð o@ðh ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   