a
    ç´«jM ã                	   @   sâ  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m	Z	m
Z
mZmZmZmZmZmZ d dlmZmZ d dlmZ ddddde d	¡d
 fddddœZe ej¡jdk rÆdddddddddœZndddddddd dœZejd!ed"�d#d$„ ƒZejd%d&„ ƒZd'd(„ ZG d)d*„ d*ƒZG d+d,„ d,ƒZ G d-d.„ d.ƒZ!G d/d0„ d0ƒZ"G d1d2„ d2ƒZ#G d3d4„ d4ƒZ$G d5d6„ d6ƒZ%ej&j'ed7d8�G d9d:„ d:ƒƒZ(G d;d<„ d<ƒZ)d=d>„ Z*d?d@„ Z+dAdB„ Z,dCdD„ Z-dEdF„ Z.dGdH„ Z/dIdJ„ Z0dKdL„ Z1dMdN„ Z2dS )Oé    N)	Úassert_Úassert_raisesÚassert_equalÚassert_warnsÚassert_no_warningsÚassert_array_equalÚassert_array_almost_equalÚsuppress_warningsÚIS_WASM)ÚMT19937ÚPCG64)Úrandom)g      Y@g333333ã?)ç      à?)é   r   é
   r   é   g      @)éd   r   )ç      $@)é   )ÚbinomialÚ	geometricÚhypergeometricÚ	logseriesÚmultinomialÚnegative_binomialÚpoissonÚzipfì        Z@2fbead005fc63942decb5326d36a1f32fe2c9d32c904ee61e46866b88447c263Z@23ead5dcde35d4cfd4ef2c105e4c3d43304b45dc1b1444b7823b9ee4fa144ebbZ@0d764db64f5c3bad48c8c33551c13b4d07a1e7b470f77629bef6c985cac76fcfZ@7b59bf2f1691626c5815cdcd9a49e1dd68697251d4521575219e4d2a1b8b2c67Z@d754fa5b92943a38ec07630de92362dd2e02c43577fc147417dc5b9db94ccdd3Z@8eb216f7cb2a63cf55605422845caaff002fddc64a7dc8b2d45acd477a49e824Z@70c891d76104013ebd6f6bcf30d403a9074b886ff62e4e6b8eb605bf1a4673b7Z@01f074f97517cd5d21747148ac6ca4074dde7fcb7acbaec0a936606fecacd93f)r   r   r   r   r   r   r   r   Z@8626dd9d052cb608e93d8868de0a7b347258b199493871a1dc56e2a26cacb112Z@8edd53d272e49c4fc8fbbe6c7d08d563d62e482921f3131d0a0e068af30f0db9Z@83496cc4281c77b786c9b7ad88b74d42e01603a55c60577ebab81c3ba8d45657Z@65878a38747c176bc00e930ebafebb69d4e1e16cd3a704e264ea8f5e24f548dbZ@7a984ae6dca26fd25374479e118b22f55db0aedccd5a0f2584ceada33db98605Z@d636d968e6a24ae92ab52fe11c46ac45b0897e98714426764e820a7d77602a61Z@956552176f77e7c9cb20d0118fc9cf690be488d790ed4b4c4747b965e61b0bb4Z@f84ba7feffda41e606e20b28dfc0f1ea9964a74574513d4a4cbc98433a8bfa45Úmodule)ÚscopeÚparamsc                 C   s   | j t| j  t| j  fS ©N)ÚparamÚ	INT_FUNCSÚINT_FUNC_HASHES)Úrequest© r&   úb/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/numpy/random/tests/test_randomstate.pyÚint_func2   s    ÿr(   c                  c   s    t j ¡ } dV  t j | ¡ dS )z:Ensures that the singleton bitgen is restored after a testN)Únpr   Úget_bit_generatorÚset_bit_generator)Zorig_bitgenr&   r&   r'   Úrestore_singleton_bitgen8   s    
r,   c                 C   sn   t | d |d ƒ t| d d |d d ƒ t| d d |d d ƒ t | d |d ƒ t | d |d ƒ d S )NÚbit_generatorÚstateÚkeyÚposÚ	has_gaussÚgauss)r   r   )ÚaÚbr&   r&   r'   Úassert_mt19937_state_equal@   s
    r5   c                   @   sD   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dS )ÚTestSeedc                 C   s8   t  d¡}t| d¡dƒ t  d¡}t| d¡dƒ d S )Nr   éè  i¬  ì   ÿÿ i£  )r   ÚRandomStater   Úrandint©ÚselfÚsr&   r&   r'   Útest_scalarI   s    

zTestSeed.test_scalarc                 C   sz   t  tdƒ¡}t| d¡dƒ t  t d¡¡}t| d¡dƒ t  dg¡}t| d¡dƒ t  dg¡}t| d¡dƒ d S )Nr   r7   iÔ  r   iÍ  r8   i	  )r   r9   Úranger   r:   r)   Úaranger;   r&   r&   r'   Ú
test_arrayO   s    zTestSeed.test_arrayc                 C   s    t ttjdƒ t ttjdƒ d S )Nç      à¿éÿÿÿÿ©r   Ú	TypeErrorr   r9   Ú
ValueError©r<   r&   r&   r'   Útest_invalid_scalarY   s    zTestSeed.test_invalid_scalarc                 C   sX   t ttjdgƒ t ttjdgƒ t ttjdgƒ t ttjg d¢ƒ t ttjg d¢ƒ d S )NrB   rC   r   )é   r   r   )rI   éþÿÿÿr   rD   rG   r&   r&   r'   Útest_invalid_array^   s
    zTestSeed.test_invalid_arrayc                 C   sL   t ttjtjg tjd�ƒ t ttjg d¢gƒ t ttjg d¢g d¢gƒ d S )N©Údtype©rI   r   é   )é   é   r   )r   rF   r   r9   r)   ÚarrayÚint64rG   r&   r&   r'   Útest_invalid_array_shapef   s    ÿÿz!TestSeed.test_invalid_array_shapec                 C   sD   t  tdƒ¡}ttƒ� | d¡ W d   ƒ n1 s60    Y  d S )Nr   éÒ  )r   r9   r   r   rE   Úseed)r<   Úrsr&   r&   r'   Útest_cannot_seedn   s    
zTestSeed.test_cannot_seedc                 C   s   t ttjtƒ d S r!   )r   rF   r   r9   r   rG   r&   r&   r'   Útest_invalid_initializations   s    z$TestSeed.test_invalid_initializationN)
Ú__name__Ú
__module__Ú__qualname__r>   rA   rH   rK   rT   rX   rY   r&   r&   r&   r'   r6   H   s   
r6   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestBinomialc                 C   sB   t jddd�}dD ]*}tt d|¡dkƒ tt ||¡|ƒ qd S )Nr   ÚintrL   )r   r   rI   r   )r)   Úzerosr   r   r   r   )r<   r_   Úpr&   r&   r'   Útest_n_zerox   s    zTestBinomial.test_n_zeroc                 C   s   t ttjdtjƒ d S )NrI   )r   rF   r   r   r)   ÚnanrG   r&   r&   r'   Útest_p_is_nan�   s    zTestBinomial.test_p_is_nanN)rZ   r[   r\   ra   rc   r&   r&   r&   r'   r]   w   s   	r]   c                   @   sT   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ ZdS )ÚTestMultinomialc                 C   s   t  dddg¡ d S )Nr   çš™™™™™É?çš™™™™™é?©r   r   rG   r&   r&   r'   Ú
test_basic‡   s    zTestMultinomial.test_basicc                 C   s   t  dg d¢¡ d S )Nr   )re   rf   ç        ri   ri   rg   rG   r&   r&   r'   Útest_zero_probabilityŠ   s    z%TestMultinomial.test_zero_probabilityc                 C   sZ   t dt dd¡  kodk n  ƒ t ddd¡}t t d|k¡ƒ t t |dk ¡ƒ d S )NéûÿÿÿrC   rQ   )r   r   r:   r)   Úall©r<   Úxr&   r&   r'   Útest_int_negative_interval�   s    $z*TestMultinomial.test_int_negative_intervalc                 C   sÂ   ddg}t t d|t d¡¡jdƒ t t d|t d¡¡jdƒ t t d|t d¡¡jdƒ t t d|ddg¡jdƒ t t d|d¡jdƒ t t d|t d¡¡jdƒ tttjd|t	dƒƒ d S )Nr   rI   ©rI   r   r   ©r   r   r   ©r   r   )
r   r   r   r)   Úuint32ÚshaperR   r   rE   Úfloat©r<   r`   r&   r&   r'   Ú	test_size“   s    ÿÿzTestMultinomial.test_sizec                 C   s,   t ttjdddgƒ t ttjdddgƒ d S )Nr   çš™™™™™ñ?re   çš™™™™™¹¿çÍÌÌÌÌÌì?©r   rF   r   r   rG   r&   r&   r'   Útest_invalid_prob¡   s    z!TestMultinomial.test_invalid_probc                 C   s   t ttjdddgƒ d S )NrC   rf   re   r{   rG   r&   r&   r'   Útest_invalid_n¥   s    zTestMultinomial.test_invalid_nc                 C   st   t  d¡}|t  |dd d… ¡ }|dd d… }t d¡ tjd|d�}t d¡ tjdt  |¡d�}t||ƒ d S )Ng      .@rI   rO   iÛ iUr   )Úpvals)r)   r@   Úsumr   rV   r   Úascontiguousarrayr   )r<   r`   r~   Ú
non_contigÚcontigr&   r&   r'   Útest_p_non_contiguous¨   s    


z%TestMultinomial.test_p_non_contiguousc                 C   sb   t jg d¢t jd�}|| ¡  }d}tjt|d�� t d|¡ W d   ƒ n1 sT0    Y  d S )N)
ç®Gáz®ï?r„   ç•Ö&è.>r…   r…   r…   r…   r…   r…   r…   rL   z-[\w\s]*pvals array is cast to 64-bit floating©ÚmatchrI   )	r)   rR   Úfloat32r   ÚpytestÚraisesrF   r   r   )r<   rn   r~   r‡   r&   r&   r'   Útest_multinomial_pvals_float32²   s    
ÿz.TestMultinomial.test_multinomial_pvals_float32c                 C   s   t  dddg¡ d S )Ng      Y@re   rf   rg   rG   r&   r&   r'   Útest_multinomial_n_floatº   s    z(TestMultinomial.test_multinomial_n_floatN)rZ   r[   r\   rh   rj   ro   rw   r|   r}   rƒ   r‹   rŒ   r&   r&   r&   r'   rd   †   s   
rd   c                   @   sd   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZdS )ÚTestSetStatec                 C   s$   d| _ t | j ¡| _| j ¡ | _d S ©NiÒ–I)rV   r   r9   Úrandom_stateÚ	get_stater.   rG   r&   r&   r'   Úsetup_method¿   s    zTestSetState.setup_methodc                 C   s<   | j  d¡}| j  | j¡ | j  d¡}tt ||k¡ƒ d S )Né   )r�   ÚtomaxintÚ	set_stater.   r   r)   rl   ©r<   ÚoldÚnewr&   r&   r'   rh   Ä   s    zTestSetState.test_basicc                 C   s@   | j jdd�}| j  | j¡ | j jdd�}tt ||k¡ƒ d S ©NrO   ©Úsize)r�   Ústandard_normalr”   r.   r   r)   rl   r•   r&   r&   r'   Útest_gaussian_resetÊ   s    z TestSetState.test_gaussian_resetc                 C   sR   | j  ¡  | j  ¡ }| j jdd�}| j  |¡ | j jdd�}tt ||k¡ƒ d S r˜   )r�   r›   r�   r”   r   r)   rl   )r<   r.   r–   r—   r&   r&   r'   Ú test_gaussian_reset_in_media_resÑ   s    

z-TestSetState.test_gaussian_reset_in_media_resc                 C   sz   | j d d… }| jjdd�}| j |¡ | jjdd�}| j | j ¡ | jjdd�}tt ||k¡ƒ tt ||k¡ƒ d S )NrJ   r’   r™   )r.   r�   r›   r”   r   r)   rl   )r<   Ú	old_stateÚx1Zx2Zx3r&   r&   r'   Útest_backwards_compatibilityÜ   s    z)TestSetState.test_backwards_compatibilityc                 C   s   | j  dd¡ d S ©Nr   )r�   r   rG   r&   r&   r'   Útest_negative_binomialè   s    z#TestSetState.test_negative_binomialc                 C   sv   t  tƒ ¡}tƒ �P}| t¡}| ¡ }tt|ƒdkƒ t	|t
ƒsDJ ‚|d dksTJ ‚W d   ƒ n1 sh0    Y  d S )NrI   r-   r   )r   r9   r   r	   ÚrecordÚRuntimeWarningr�   r   ÚlenÚ
isinstanceÚdict)r<   rW   ÚsupÚwr.   r&   r&   r'   Útest_get_state_warningí   s    
z#TestSetState.test_get_state_warningc                 C   sl   | j  ¡ }d|dd …  }tt| j j|ƒ tt| j jtj|td�ƒ | j jdd�}|d= tt| j j|ƒ d S )N)ÚUnknownrI   rL   F©Úlegacyr-   )	r�   r�   r   rF   r”   rE   r)   rR   Úobject)r<   r.   Ú	new_stater&   r&   r'   Ú!test_invalid_legacy_state_settingö   s    

ÿz.TestSetState.test_invalid_legacy_state_settingc                 C   sj   | j  d¡ | j  d¡ | j  ¡  | j jdd�}t|d dƒ t t | j ¡¡}|jdd�}t	||ƒ d S )Nr   r   Fr¬   r1   rI   )
r�   rV   Úrandom_sampler›   r�   r   ÚpickleÚloadsÚdumpsr5   )r<   ZpickledZ	rs_unpickZ	unpickledr&   r&   r'   Útest_pickle   s    
zTestSetState.test_picklec                 C   s<   | j  ¡ }| j  ¡  | j  |¡ | j jdd�}t||ƒ d S )NFr¬   )r�   Ú__getstate__r›   Ú__setstate__r�   r5   )r<   Z
attr_stater.   r&   r&   r'   Útest_state_setting
  s
    

zTestSetState.test_state_settingc                 C   s   t | jƒ d¡sJ ‚d S )NzRandomState(MT19937))Úreprr�   Ú
startswithrG   r&   r&   r'   Ú	test_repr  s    zTestSetState.test_reprN)rZ   r[   r\   r‘   rh   rœ   r�   r    r¢   rª   r°   rµ   r¸   r»   r&   r&   r&   r'   r�   ¾   s   	

r�   c                	   @   sž   e Zd ZejZejejej	ej
ejejejejejg	Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zejje d¡jdk dd�dd„ ƒZdd„ Zdd„ ZdS )ÚTestRandintc                 C   s   t t| jdtd� d S ©NrI   rL   )r   rE   Úrfuncru   rG   r&   r&   r'   Útest_unsupported_type  s    z!TestRandint.test_unsupported_typec                 C   s    | j D ]”}|tju rdn
t |¡j}|tju r2dnt |¡jd }tt| j|d ||d� tt| j||d |d� tt| j|||d� tt| jdd|d� qd S )Nr   r   rI   rL   )	Úityper)   ÚboolÚiinfoÚminÚmaxr   rF   r¾   )r<   ÚdtÚlbndÚubndr&   r&   r'   Útest_bounds_checking   s    
z TestRandint.test_bounds_checkingc                 C   s´   | j D ]¨}|tju rdn
t |¡j}|tju r2dnt |¡jd }|d }t| j||d d|d�|ƒ |}t| j||d d|d�|ƒ || d }t| j||d d|d�|ƒ qd S )Nr   r   rI   r7   ©rš   rM   )rÀ   r)   rÁ   rÂ   rÃ   rÄ   r   r¾   )r<   rÅ   rÆ   rÇ   Útgtr&   r&   r'   Útest_rng_zero_and_extremes)  s    
z&TestRandint.test_rng_zero_and_extremesc                 C   s’   | j D ]†}|tju rdn
t |¡j}|tju r2dnt |¡jd }z| j|||d� W q tyŠ } ztdt	|ƒ ƒ‚W Y d }~qd }~0 0 qd S )Nr   r   rI   rL   zMNo error should have been raised, but one was with the following message:

%s)
rÀ   r)   rÁ   rÂ   rÃ   rÄ   r¾   Ú	ExceptionÚAssertionErrorÚstr)r<   rÅ   rÆ   rÇ   Úer&   r&   r'   Útest_full_range7  s    
þzTestRandint.test_full_rangec                 C   s�   t  ¡  | jdd … D ]@}dD ]6}| jd|d|d�}t| ¡ |k ƒ t| ¡ dkƒ qq| jdddtjd�}t| ¡ dk ƒ t| ¡ dkƒ d S )NrI   )rP   é   r’   r   i   rÉ   r   )	r   rV   rÀ   r¾   r   rÄ   rÃ   r)   rÁ   )r<   rÅ   rÇ   Úvalsr&   r&   r'   Útest_in_bounds_fuzzE  s    zTestRandint.test_in_bounds_fuzzc              
   C   sæ   ddddddddddœ	}| j dd … D ]p}t d¡ tjd	krR| jd
dd|d�}n| jd
dd|d� ¡ }t | 	t
j¡¡ ¡ }t|t
 |¡j |kƒ q&t d¡ | jd
ddtd� 	t
j¡}t |¡ ¡ }t|t
 t¡j |kƒ d S )NZ@509aea74d792fb931784c4b0135392c65aec64beee12b0cc167548a2c3d31e71Z@7b07f1a920e46f6d0fe02314155a2330bcfd7635e708da50e536c5ebb631a7d4Z@e577bfed6c935de944424667e3da285012e741892dcb7051a8f1ce68ab05c92fZ@0fbead0b06759df2cfb55e43148822d4a1ff953c7eb19a5b08445a63bb64fa9eZ@001aac3a5acb935a9b186cbe14a1ca064b8bb2dd0b045d48abeacf74d0203404)	rÁ   Úint16Úint32rS   Úint8Úuint16rs   Úuint64Úuint8rI   rU   Úlittler   r   r7   rÉ   r   )rÀ   r   rV   ÚsysÚ	byteorderr¾   ÚbyteswapÚhashlibÚsha256Úviewr)   rÖ   Ú	hexdigestr   rM   ÚnamerÁ   )r<   rÊ   rÅ   ÚvalÚresr&   r&   r'   Útest_repeatabilityT  s*    ø



zTestRandint.test_repeatabilityÚlr   zCannot test with 32-bit C long©Úreasonc              
   C   sÀ   t  g d¢g d¢g d¢gg d¢g d¢g d¢gg d¢g d¢g d	¢gg d
¢g d¢g d¢gg d¢g d¢g d¢gg¡}dD ]H}t d¡ | jdgdgdggg d¢|d�}t||d ur°|n|d ƒ qrd S )N)l   áQö[ l   dm¬" l   ë0 )l   ;¡i l   vlÔm l   iXp )i\L¹_l   øZ N iwU¬')l   Ï<Ô~ l   È20l iPð?)iÒfi¦ØwLl   @
Vo )l   ðo“\ i„‘´wiý
1])i{„YSl   r=ï| i˜ß)l   â0 l   lÊ iû&ã})l   QZî) l   œ(q l   '}åQ )l   WqV1 iêMl   'ßt )inMl   øbþ" l   )  )i“Äal   ³Ñ l   S"f )i¸d‘i98l   ÙnDk )l   ¬Jc i¹á”-l   š )i¬MiŸ'ñ*l   äl¼, )N)rQ   rO   rO   i90  rC   r   rI   )r8   r   l       r™   )r)   rR   r   rV   r¾   r   )r<   Údesiredrš   rn   r&   r&   r'   Ú.test_repeatability_32bit_boundary_broadcastingt  s6    
þþþþþô
ÿz:TestRandint.test_repeatability_32bit_boundary_broadcastingc                 C   s^   t j}t  t j¡j}t  t  t j¡j¡}t  t  t j¡jd ¡}tj|||d�}t||ƒ d S r½   )r)   rS   rÂ   rÄ   rØ   r   r:   r   )r<   rÅ   rÊ   rÆ   rÇ   Úactualr&   r&   r'   Útest_int64_uint64_corner_caseŒ  s    z)TestRandint.test_int64_uint64_corner_casec                 C   sê   | j D ]^}|tju rdn
t |¡j}|tju r2dnt |¡jd }| j|||d�}t|jt |¡ƒ qtt	fD ]v}|t	u r~dnd}|tu rŽdn
t |¡j}|tu r¦dnt |¡jd }| j|||d�}t
t|dƒ ƒ tt|ƒ|ƒ qnd S )Nr   r   rI   rL   ÚlongrÁ   rM   )rÀ   r)   rÁ   rÂ   rÃ   rÄ   r¾   r   rM   r^   r   ÚhasattrÚtype)r<   rÅ   rÆ   rÇ   ÚsampleZop_dtyper&   r&   r'   Útest_respect_dtype_singleton£  s    
z(TestRandint.test_respect_dtype_singletonN)rZ   r[   r\   r   r:   r¾   r)   rÁ   rÖ   rÙ   rÔ   r×   rÕ   rs   rS   rØ   rÀ   r¿   rÈ   rË   rÐ   rÓ   rå   r‰   ÚmarkÚskipifrÂ   rÄ   rê   rì   rñ   r&   r&   r&   r'   r¼     s    ÿ	 ÿ
r¼   c                   @   s¼  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9d:„ Zd;d<„ Z d=d>„ Z!d?d@„ Z"dAdB„ Z#dCdD„ Z$dEdF„ Z%dGdH„ Z&dIdJ„ Z'dKdL„ Z(dMdN„ Z)dOdP„ Z*dQdR„ Z+dSdT„ Z,dUdV„ Z-dWdX„ Z.dYdZ„ Z/d[d\„ Z0d]d^„ Z1e2j3 4d_e5 6d`da¡dbe5j7dcg¡ddde„ ƒZ8dfdg„ Z9dhdi„ Z:djdk„ Z;dldm„ Z<dndo„ Z=dpdq„ Z>drds„ Z?dtdu„ Z@dvdw„ ZAdxdy„ ZBdzd{„ ZCd|d}„ ZDd~d„ ZEd€d�„ ZFd‚dƒ„ ZGd„d…„ ZHd†d‡„ ZIdˆd‰„ ZJdŠd‹„ ZKdŒd�„ ZLdŽd�„ ZMd�d‘„ ZNd’d“„ ZOd”d•„ ZPd–d—„ ZQd˜d™„ ZRdšd›„ ZSdœd�„ ZTdždŸ„ ZUd d¡„ ZVd¢d£„ ZWd¤d¥„ ZXd¦d§„ ZYd¨d©„ ZZdªS )«ÚTestRandomDistc                 C   s
   d| _ d S rŽ   ©rV   rG   r&   r&   r'   r‘   ½  s    zTestRandomDist.setup_methodc                 C   sF   t  | j¡ t  dd¡}t ddgddgddgg¡}t||d	d
� d S )NrO   r   ç_®\±*Íã?ç�›˜¬”îâ?ç<î�pì?ç®,º¥oˆì?çˆÂÉHÝ?çZ±­°êæè?é   ©Údecimal)r   rV   Úrandr)   rR   r   ©r<   rë   ré   r&   r&   r'   Ú	test_randÀ  s    
þzTestRandomDist.test_randc                 C   s*   t  | j¡ t  ¡ }d}t||dd� d S )Nrö   rü   rý   )r   rV   rÿ   r   r   r&   r&   r'   Útest_rand_singletonÈ  s    z"TestRandomDist.test_rand_singletonc                 C   sl   t  | j¡ t  dd¡}t ddgddgddgg¡}t||d	d
� t  | j¡ t  ¡ }t||d d	d
� d S )NrO   r   çÿ!ã<Oqõ?ç4ð�u,Íû?çÁ³½3Ûû÷?çL«I/DÍ¿çà@ËÀŽ? @çÿHSÓ\@rü   rý   ©r   r   ©r   rV   Zrandnr)   rR   r   r   r&   r&   r'   Ú
test_randnÎ  s    
þzTestRandomDist.test_randnc                 C   sF   t  | j¡ t jdddd�}t ddgddgd	d
gg¡}t||ƒ d S )Né�ÿÿÿéc   ©rO   r   r™   é   rO   éÌÿÿÿé)   éÐÿÿÿé¾ÿÿÿ)r   rV   r:   r)   rR   r   r   r&   r&   r'   Útest_randintÚ  s    
þzTestRandomDist.test_randintc                 C   sî   t  | j¡ tƒ �:}| t¡}t jdddd�}tt|ƒdkƒ W d   ƒ n1 sR0    Y  t 	ddgdd	gd
dgg¡}t
||ƒ t  | j¡ tƒ �8}| t¡}t jddd�}tt|ƒdkƒ W d   ƒ n1 sÒ0    Y  t
||d ƒ d S )Nr  r  r  r™   rI   r  rO   r  r  r  r  éÆ   r   )r   rV   r	   r£   ÚDeprecationWarningÚrandom_integersr   r¥   r)   rR   r   )r<   r¨   r©   rë   ré   r&   r&   r'   Útest_random_integersâ  s     
.
þ

.z#TestRandomDist.test_random_integersc                 C   s¬   t  | j¡ t  | j¡}|jdd�}t tj¡jdkrZtjddgddgdd	ggtj	d
�}n"tjddgddgddggtj	d
�}t
||ƒ | | j¡ | ¡ }t
||d ƒ d S )Nr  r™   iÿÿÿiÁª4OiÿË•+i³RºKiriFbÀqi™‡ÀrL   l   ÿK+W+¥y l   r&&ÌJÒ] l   ™�;	 l   Õ‹nBz l   ž@XÓHŒT l   D+l++Ý r	  )r   rV   r9   r“   r)   rÂ   rí   rÄ   rR   rS   r   )r<   rW   rë   ré   r&   r&   r'   Útest_tomaxintô  s(    
þþ
þý
zTestRandomDist.test_tomaxintc                 C   sð   t ƒ �F}| t¡}t t d¡jt d¡j¡}tt	|ƒdkƒ W d   ƒ n1 sR0    Y  t d¡j}t
||ƒ t ƒ �Z}| t¡}t d¡j}t |t d¡jƒ|t d¡jƒ¡}tt	|ƒdkƒ W d   ƒ n1 sØ0    Y  t
||ƒ d S )Nræ   rI   )r	   r£   r  r   r  r)   rÂ   rÄ   r   r¥   r   rM   rï   )r<   r¨   r©   rë   ré   Ztyperr&   r&   r'   Útest_random_integers_max_int  s     

ÿ.

ÿ.z+TestRandomDist.test_random_integers_max_intc                 C   sn   t  ¡ �R t  dt¡ tttjt d¡j	ƒ tttjt d¡j	t d¡j	ƒ W d   ƒ n1 s`0    Y  d S )NÚerrorræ   )
ÚwarningsÚcatch_warningsÚsimplefilterr  r   r   r  r)   rÂ   rÄ   rG   r&   r&   r'   Útest_random_integers_deprecated  s    

þþz.TestRandomDist.test_random_integers_deprecatedc                 C   sj   t  | j¡ t  d¡}t ddgddgddgg¡}t||dd	� t  | j¡ t  ¡ }t||d
 dd	� d S )Nr  rö   r÷   rø   rù   rú   rû   rü   rý   r	  )r   rV   r±   r)   rR   r   r   r&   r&   r'   Útest_random_sample,  s    

þz!TestRandomDist.test_random_samplec                 C   s4   t  | j¡ t  dd¡}t g d¢¡}t||ƒ d S )NrP   )r   rO   r   rO   ©r   rV   Úchoicer)   rR   r   r   r&   r&   r'   Útest_choice_uniform_replace8  s    z*TestRandomDist.test_choice_uniform_replacec                 C   s<   t  | j¡ t jddg d¢d�}t g d¢¡}t||ƒ d S )NrP   )çš™™™™™Ù?r$  çš™™™™™¹?r%  ©r`   )rI   rI   r   r   r!  r   r&   r&   r'   Útest_choice_nonuniform_replace>  s    z-TestRandomDist.test_choice_nonuniform_replacec                 C   s8   t  | j¡ t jdddd�}t g d¢¡}t||ƒ d S )NrP   rO   F©Úreplace)r   rI   rO   r!  r   r&   r&   r'   Útest_choice_uniform_noreplaceD  s    z,TestRandomDist.test_choice_uniform_noreplacec                 C   s>   t  | j¡ t jdddg d¢d�}t g d¢¡}t||ƒ d S )NrP   rO   F)r%  ç333333Ó?r   r%  ©r)  r`   )r   rO   rI   r!  r   r&   r&   r'   Ú test_choice_nonuniform_noreplaceJ  s    z/TestRandomDist.test_choice_nonuniform_noreplacec                 C   s8   t  | j¡ t  g d¢d¡}t g d¢¡}t||ƒ d S )N)r3   r4   ÚcÚdrP   )r.  r/  r.  r/  r!  r   r&   r&   r'   Útest_choice_nonintegerP  s    z%TestRandomDist.test_choice_nonintegerc                 C   s2  t j}tt|ddƒ tt|ddƒ tt|ddgddggdƒ tt|g dƒ tt|g d¢dddgddggd	� tt|ddgdg d
¢d	� tt|ddgdddgd	� tt|ddgdddgd	� tt|g d¢ddd� tt|g d¢ddd� tt|g d¢ddd� tt|g d¢ddd� tt|g d¢ddg d¢d� d S )NrC   rO   ç      @rI   r   rP   )rI   r   rO   rP   g      Ð?r&  )r$  r$  re   rx   ry   r$  rN   Fr(  rJ   )rC   )rC   rI   )rI   r   r   r,  )r   r"  r   rF   )r<   rð   r&   r&   r'   Útest_choice_exceptionsV  s$    ÿÿz%TestRandomDist.test_choice_exceptionsc              	   C   s   ddg}t t tjddd�¡ƒ t t tjddd�¡ƒ t t tjdd|d�¡ƒ t t tjdd|d�¡ƒ t t tjddgdd�¡ƒ t tjd gdd�d u ƒ t ddg¡}tjdtd	�}||d
< t tj|dd�|u ƒ tƒ }t t tjd|dd�¡ ƒ t t tjd|dd�¡ ƒ t t tjd|d|d�¡ ƒ t t tjd|d|d�¡ ƒ t t tjddg|dd�¡ ƒ t tjd g|dd�j	d
kƒ t ddg¡}tjdtd	�}||d
< t tj||dd� 
¡ |u ƒ d}g d¢}ttjd|dd�j|ƒ ttjd|dd�j|ƒ ttjd|d|d�j|ƒ ttjd|d|d�j|ƒ ttjt d¡|dd�j|ƒ ttjd
d
dd�jdƒ ttjd
dd
d�jdƒ ttjddd
d�jdƒ ttjd
d
d�jdƒ ttjg dd�jdƒ ttjddgdd�jdƒ tttjg dƒ d S )Nr%  rz   r   Tr(  Fr,  rI   rL   r   )r   rO   )r%  r%  r%  r%  r$  re   r   )rO   r   rP   r™   iöÿÿÿ)r   r   r3   r4   )r   r)   Zisscalarr   r"  rR   Úemptyr®   ÚtupleÚndimÚitemr   rt   r@   r:   r   rF   )r<   r`   r3   Zarrr=   r&   r&   r'   Útest_choice_return_shapei  sL     ÿz'TestRandomDist.test_choice_return_shapec                 C   s,   t  g d¢¡}g d¢}tttj||d� d S )N)é*   rI   r   )NNNr&  )r)   rR   r   rF   r   r"  )r<   r3   r`   r&   r&   r'   Útest_choice_nan_probabilities—  s    z,TestRandomDist.test_choice_nan_probabilitiesc              	   C   s|   t  d¡d }d|dd d…< t | j¡ tjdd|d d d… d�}t | j¡ tjddt  |d d d… ¡d�}t||ƒ d S )Nr   rQ   r1  rI   r   rO   r&  )r)   Úonesr   rV   r"  r€   r   )r<   r`   r�   r‚   r&   r&   r'   Útest_choice_p_non_contiguousœ  s     z+TestRandomDist.test_choice_p_non_contiguousc                 C   s(   t  | j¡ t  d¡}d}t||ƒ d S )Nr   s
   ‚Uižÿ—+Wf¥)r   rV   Úbytesr   r   r&   r&   r'   Ú
test_bytes¥  s    
zTestRandomDist.test_bytesc                 C   sŒ   dd„ dd„ dd„ dd„ dd„ dd„ dd„ d	d„ d
d„ dd„ dd„ fD ]@}t  | j¡ |g d¢ƒ}t  |¡ |}|g d¢ƒ}t||ƒ qFd S )Nc                 S   s
   t  g ¡S r!   )r)   rR   ©rn   r&   r&   r'   Ú<lambda>®  ó    z-TestRandomDist.test_shuffle.<locals>.<lambda>c                 S   s   | S r!   r&   r>  r&   r&   r'   r?  ¯  r@  c                 S   s   t  | ¡ t j¡S r!   )r)   ÚasarrayÚastyperÖ   r>  r&   r&   r'   r?  °  r@  c                 S   s   t  | ¡ t j¡S r!   )r)   rA  rB  rˆ   r>  r&   r&   r'   r?  ±  r@  c                 S   s   t  | ¡ t j¡S r!   )r)   rA  rB  Z	complex64r>  r&   r&   r'   r?  ²  r@  c                 S   s   t  | ¡ t¡S r!   )r)   rA  rB  r®   r>  r&   r&   r'   r?  ³  r@  c                 S   s   dd„ | D ƒS )Nc                 S   s   g | ]}||f‘qS r&   r&   ©Ú.0Úir&   r&   r'   Ú
<listcomp>´  r@  úATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>r&   r>  r&   r&   r'   r?  ´  r@  c                 S   s   t  dd„ | D ƒ¡S )Nc                 S   s   g | ]}||g‘qS r&   r&   rC  r&   r&   r'   rF  µ  r@  rG  )r)   rA  r>  r&   r&   r'   r?  µ  r@  c                 S   s   t  | | g¡jS r!   )r)   ZvstackÚTr>  r&   r&   r'   r?  ¶  r@  c                 S   s*   t  dd„ | D ƒdtfdtfg¡ t j¡S )Nc                 S   s   g | ]}||f‘qS r&   r&   rC  r&   r&   r'   rF  ¸  r@  rG  r3   r4   )r)   rA  r^   rà   Zrecarrayr>  r&   r&   r'   r?  ¸  s   ÿþc                 S   s(   t  dd„ | D ƒdtdfdt jdfg¡S )Nc                 S   s   g | ]}||f‘qS r&   r&   rC  r&   r&   r'   rF  ¼  r@  rG  r3   ©rI   r4   )r)   rA  r®   rÕ   r>  r&   r&   r'   r?  ¼  s   
ÿÿ©
rI   r   rO   rP   rQ   r   é   rÑ   é	   r   ©
r   rI   rL  r   r   rP   rQ   rÑ   rK  rO   )r   rV   Úshuffler   )r<   ÚconvÚalistrë   ré   r&   r&   r'   Útest_shuffle«  s$    ò
zTestRandomDist.test_shufflec                 C   sÈ   t j t  tdƒd¡d d d¡}t j t  d¡d d d¡}| ¡ }| ¡ }tdƒD ]d}t |¡ t	t
|j|j  ƒt
|j|j  ƒƒ t |¡ t	t
|j|j  ƒt
|j|j  ƒƒ qVdd„ }d S )	Nr   )rQ   rP   rO   rI   rC   é2   c                 S   s   t  d¡}tttj|ƒ d S )NrO   )r)   rR   r   rE   r   rN  rm   r&   r&   r'   Útest_shuffle_invalid_objectsÔ  s    
zHTestRandomDist.test_shuffle_masked.<locals>.test_shuffle_invalid_objects)r)   ÚmaZmasked_valuesZreshaper?   r@   Úcopyr   rN  r   ÚsortedÚdataÚmask)r<   r3   r4   Za_origZb_origrE  rS  r&   r&   r'   Útest_shuffle_maskedÆ  s    "
 ÿ
 ÿz"TestRandomDist.test_shuffle_maskedc                 C   sÔ   t  | j¡ g d¢}t  |¡}g d¢}t||ƒ t  | j¡ t g d¢¡j}t  |¡}t|t |¡jƒ t  | j¡ d}ttt j|ƒ t  | j¡ d}ttt j|ƒ d}g d¢}t  | j¡ t  |¡}t||ƒ d S )NrJ  rM  Úabcdg333333ó?r   )
rL  r   rÑ   rQ   rI   rO   rP   rK  r   r   )	r   rV   Zpermutationr   r)   Z
atleast_2drH  r   Ú
IndexError)r<   rP  rë   ré   Zarr_2dZ	bad_x_strZbad_x_floatZinteger_valr&   r&   r'   Útest_permutationØ  s(    



zTestRandomDist.test_permutationc                 C   sJ   t  | j¡ t jdddd�}t ddgddgd	d
gg¡}t||dd� d S )Nr%  rz   r  r™   gAàÁKÄ�?g‘ñØhA?g õÒ‡o¿>gÎ¬XfÈ+q?gSâë1Ã$?g'8zXŒ ?rü   rý   )r   rV   Úbetar)   rR   r   r   r&   r&   r'   Ú	test_betaó  s    þÿzTestRandomDist.test_betac                 C   sl   t  | j¡ t jdddd�}t ddgddgd	d
gg¡}t||ƒ t  | j¡ t  dd¡}d}t||ƒ d S )NgZd;ßY@gÉv¾Ÿ/Ý?r  r™   é%   é+   r8  é0   é.   é-   )r   rV   r   r)   rR   r   r   r&   r&   r'   Útest_binomialü  s    
þ
zTestRandomDist.test_binomialc                 C   sH   t  | j¡ t jddd�}t ddgddgdd	gg¡}t||d
d� d S )NrR  r  r™   g+Qð]uðO@gëòìÇ+Q@gY7`´ZqP@gÈe‡(fŒG@gþv¯t€R@gEIÈ‹R@é   rý   )r   rV   Ú	chisquarer)   rR   r   r   r&   r&   r'   Útest_chisquare	  s    
þzTestRandomDist.test_chisquarec                 C   sÀ   t  | j¡ t ddg¡}t j|dd�}t ddgddggd	d
gddggddgddggg¡}t||dd� t ddg¡}ttt j|ƒ t  | j¡ t ddg¡}t  |¡}t||d dd� d S )Nç“­I<ÝI@ç÷ÉEZßC@r  r™   gÉi{ßsá?gn,	åAÝ?göÇ]‹^óã?gpDéBØ?gÈ§#¼yªá?gr°¸‡«Ü?g—«1UÞâ?gÈÑ¨œUCÚ?g£…^,%÷â?g»ôB§µÚ?gÚ‰OoX;â?gMì`!O‰Û?rü   rý   çHáz®Gá?ç¼‰Ø—²Òœ¼r	  )r   rV   r)   rR   Ú	dirichletr   r   rF   )r<   Úalpharë   ré   Z	bad_alphar&   r&   r'   Útest_dirichlet  s(    
ÿÿÿü
zTestRandomDist.test_dirichletc                 C   sº   t  ddg¡}tt |t  d¡¡jdƒ tt |t  d¡¡jdƒ tt |t  d¡¡jdƒ tt |ddg¡jdƒ tt |d¡jdƒ tt |t  d¡¡jdƒ tttj|t	dƒƒ d S )Nrh  ri  rI   rp   r   rq   rr   )
r)   rR   r   r   rl  rs   rt   r   rE   ru   rv   r&   r&   r'   Útest_dirichlet_size$  s    z"TestRandomDist.test_dirichlet_sizec                 C   s    t  ddg¡}tttj|ƒ d S )Nrj  rk  )r)   rR   r   rF   r   rl  )r<   rm  r&   r&   r'   Útest_dirichlet_bad_alpha0  s    z'TestRandomDist.test_dirichlet_bad_alphac                 C   sd   t  g d¢¡}|d d d… }t | j¡ tj|dd�}t | j¡ tjt  |¡dd�}t||ƒ d S )N)rh  g      ð¿ri  r   r  r™   )r)   rR   r   rV   rl  r€   r   )r<   r3   rm  r�   r‚   r&   r&   r'   Ú#test_dirichlet_alpha_non_contiguous5  s    ÿz2TestRandomDist.test_dirichlet_alpha_non_contiguousc                 C   sH   t  | j¡ t jddd�}t ddgddgdd	gg¡}t||d
d� d S )Ngï8EGrùñ?r  r™   gN÷·Uñ?gbI0æð?gùVU\õº@gˆ:€ì3ù@g©ºUýå?g�Ÿ"qoû?rü   rý   )r   rV   Úexponentialr)   rR   r   r   r&   r&   r'   Útest_exponential?  s    
þzTestRandomDist.test_exponentialc                 C   s&   t tjdd�dƒ tttjdd� d S ©Nr   ©Úscaleç       €)r   r   rr  r   rF   rG   r&   r&   r'   Útest_exponential_0G  s    z!TestRandomDist.test_exponential_0c                 C   sJ   t  | j¡ t jdddd�}t ddgddgd	d
gg¡}t||dd� d S )Né   éM   r  r™   g7¶„ó?gµ`j‹�ü?g6¶"+÷?gÜ³2>•‰ó?g‘cÍ>+Yð?g¡_}áS‚õ?rü   rý   )r   rV   Úfr)   rR   r   r   r&   r&   r'   Útest_fK  s    
þzTestRandomDist.test_fc                 C   sJ   t  | j¡ t jdddd�}t ddgddgd	d
gg¡}t||dd� d S )NrQ   rO   r  r™   gÔ�GMçš8@g §â”ÈŒ<@g˜	´":@gÂvÀñÇ#)@gZQø·?@gr‚‚[•¦@@é   rý   )r   rV   Úgammar)   rR   r   r   r&   r&   r'   Ú
test_gammaS  s    
þzTestRandomDist.test_gammac                 C   s*   t tjddd�dƒ tttjddd� d S )Nr   )rt   rv  rw  )r   r   r~  r   rF   rG   r&   r&   r'   Útest_gamma_0[  s    zTestRandomDist.test_gamma_0c                 C   sD   t  | j¡ t jddd�}t ddgddgddgg¡}t||ƒ d S )	Nç_c97Ýš¿?r  r™   rÑ   rK  é   rQ   ry  )r   rV   r   r)   rR   r   r   r&   r&   r'   Útest_geometric_  s    
þzTestRandomDist.test_geometricc                 C   sž   t ttjdƒ t ttjdgd ƒ t ttjdƒ t ttjdgd ƒ tƒ �@}| t¡ t ttjtjƒ t ttjtjgd ƒ W d   ƒ n1 s�0    Y  d S )Nrx   r   ry   )	r   rF   r   r   r	   r£   r¤   r)   rb   ©r<   r¨   r&   r&   r'   Útest_geometric_exceptionsg  s    
z(TestRandomDist.test_geometric_exceptionsc                 C   sJ   t  | j¡ t jdddd�}t ddgddgd	d
gg¡}t||dd� d S )Nr�  ç       @r  ©Úlocrv  rš   gåûØ•ßÉ?g¨s0í Ö?gÊð#0÷¿gï(ôx”÷¿g-¶KÇD´ñ?géÅ¯p`@æ¿rü   rý   )r   rV   Úgumbelr)   rR   r   r   r&   r&   r'   Útest_gumbelq  s    
þzTestRandomDist.test_gumbelc                 C   s&   t tjdd�dƒ tttjdd� d S rt  )r   r   r‰  r   rF   rG   r&   r&   r'   Útest_gumbel_0y  s    zTestRandomDist.test_gumbel_0c                 C   sð   t  | j¡ t jddddd�}t ddgddgddgg¡}t||ƒ t jdd	d
dd�}t g d¢¡}t||ƒ t jdd	ddd�}t g d¢¡}t||ƒ t jd	dd
dd�}t g d¢¡}t||ƒ t jd	dddd�}t g d¢¡}t||ƒ d S )Ng333333$@g      @r}  r  r™   r   rL  rQ   r   rO   rP   )rO   rO   rO   rO   rü   ry  )ry  ry  ry  ry  )r   r   r   r   )r   rV   r   r)   rR   r   r   r&   r&   r'   Útest_hypergeometric}  s&    
þ



z"TestRandomDist.test_hypergeometricc                 C   sJ   t  | j¡ t jdddd�}t ddgddgd	d
gg¡}t||dd� d S )Nr�  r†  r  r‡  gð¥ bÙOå?g¹Â¸ëÉçà?gpJmµú	@g{KÏ*Ët	@g•:^w-š«¿gˆY~oõûû?rü   rý   )r   rV   Úlaplacer)   rR   r   r   r&   r&   r'   Útest_laplace—  s    
þzTestRandomDist.test_laplacec                 C   s&   t tjdd�dƒ tttjdd� d S rt  )r   r   r�  r   rF   rG   r&   r&   r'   Útest_laplace_0Ÿ  s    zTestRandomDist.test_laplace_0c                 C   sJ   t  | j¡ t jdddd�}t ddgddgd	d
gg¡}t||dd� d S )Nr�  r†  r  r‡  g#€�K-zñ?g€îJš¬ë?g�92ÄÜ@gØ±ã÷[@gê#+^ÑÀË¿g¢¥-óâ@rü   rý   )r   rV   Úlogisticr)   rR   r   r   r&   r&   r'   Útest_logistic£  s    
þzTestRandomDist.test_logisticc                 C   sJ   t  | j¡ t jdddd�}t ddgddgd	d
gg¡}t||dd� d S )Nr�  r†  r  )ÚmeanÚsigmarš   g›ŽòÚÉ�0@goÎ,+4FB@gù�ƒ)Ê­6@g†§5éêæ?gnþxN—nP@g…©)‡úµU@re  rý   )r   rV   Ú	lognormalr)   rR   r   r   r&   r&   r'   Útest_lognormal«  s    
þzTestRandomDist.test_lognormalc                 C   s&   t tjdd�dƒ tttjdd� d S )Nr   )r“  rI   rw  )r   r   r”  r   rF   rG   r&   r&   r'   Útest_lognormal_0³  s    zTestRandomDist.test_lognormal_0c                 C   sD   t  | j¡ t jddd�}t ddgddgddgg¡}t||ƒ d S )NgÆ€@õŒí?r  )r`   rš   r   r   r‚  rO   )r   rV   r   r)   rR   r   r   r&   r&   r'   Útest_logseries·  s    
þzTestRandomDist.test_logseriesc                 C   s   t  d¡dksJ ‚d S )Nr   rI   )r   r   rG   r&   r&   r'   Útest_logseries_zero¿  s    z"TestRandomDist.test_logseries_zeroÚvalueri   rC   ç      ð?g      @c              	   C   sî   t jdd��Î t t¡� t |¡ W d   ƒ n1 s80    Y  t t¡�& t t  |gd ¡¡ W d   ƒ n1 sx0    Y  t t¡�0 t t  |gd ¡d d d… ¡ W d   ƒ n1 sÂ0    Y  W d   ƒ n1 sà0    Y  d S )NÚignore©Úinvalidr   r   )r)   Úerrstater‰   rŠ   rF   r   r   rR   )r<   r™  r&   r&   r'   Útest_logseries_exceptionsÂ  s    (4z(TestRandomDist.test_logseries_exceptionsc                 C   sd   t  | j¡ t jddgd dd�}t g d¢g d¢gg d¢g d	¢gg d
¢g d¢gg¡}t||ƒ d S )Nr   çUUUUUUÅ?r   r  r™   )rP   rO   rQ   rP   r   r   )rQ   r   rÑ   r   r   rI   )rO   rP   rO   r   r   rP   )r   rI   rP   rO   r   rP   )rP   rP   r   rQ   r   rO   )rP   rO   rP   r   rO   rP   )r   rV   r   r)   rR   r   r   r&   r&   r'   Útest_multinomialÎ  s    
ÿÿÿüzTestRandomDist.test_multinomialc           	      C   sÄ  t  | j¡ d}ddgddgg}d}t  |||¡}t ddgddggd	d
gddggddgddggg¡}t||dd� t  ||¡}t ddg¡}t||dd� ddg}ddgddgg}ttt j||ƒ tt j||dd� t	t
t j||dd� tjddgddggtjd�}tƒ �8}t  ||¡ | t¡}t|ƒdk�s6J ‚W d   ƒ n1 �sL0    Y  t d¡}t d¡}t	t
t j||dd� t	t
t jt d¡|ƒ t	t
t j|t d¡ƒ t	t
t j|t d¡ƒ d S )N)r�  r   rI   r   r  g4¸Výj÷?g¾±Ž¥y'@g÷I1‰õù?g—SÙBïŠ#@gû…ªe<@g ÒÔ4W(@g6ŠRÂ¿„û?gò9r
v"@g‹–Ñ�æ?g{§×ïÂ#@gò4Íx›—¿gÇçú"öf"@rü   rý   gN}©O6¦ì?gÐÇYM÷W"@r   r›  )Zcheck_validÚraiser%  rL   Úother)r   rI   rI   rO   )r   rV   Zmultivariate_normalr)   rR   r   r   r¤   r   r   rF   rˆ   r	   r£   r¥   r_   Úeyer3  )	r<   r’  Zcovrš   rë   ré   r¨   r©   Úmur&   r&   r'   Útest_multivariate_normalÙ  s^    
ÿÿÿü
ÿÿ
2

ÿ
ÿ
ÿ
ÿz'TestRandomDist.test_multivariate_normalc                 C   sF   t  | j¡ t jdddd�}t ddgddgd	d
gg¡}t||ƒ d S )Nr   g|ò°Pkš¿?r  )Únr`   rš   iP  iI  i|  ic  i  i‡  )r   rV   r   r)   rR   r   r   r&   r&   r'   r¢     s    
þz%TestRandomDist.test_negative_binomialc                 C   s^   t ƒ �D}| t¡ tttjdtjƒ tttjdtjgd ƒ W d   ƒ n1 sP0    Y  d S )Nr   r   )	r	   r£   r¤   r   rF   r   r   r)   rb   r„  r&   r&   r'   Ú!test_negative_binomial_exceptions  s    


ÿz0TestRandomDist.test_negative_binomial_exceptionsc                 C   sÊ   t  | j¡ t jdddd�}t ddgddgdd	gg¡}t||d
d� t jdddd�}t ddgddgddgg¡}t||d
d� t  | j¡ t jdddd�}t ddgddgddgg¡}t||d
d� d S )NrQ   r  )ÚdfÚnoncrš   gôûÖGë7@g!© ÈÜ´*@gž1}“z9?@g¹+é©¸™0@g26E_r#@g¦�I�!ó1@r}  rý   r   re   g�÷ô‹÷?g’šT¶ˆDÃ?gÀõ?Tƒ?gÍ+òqnlð?gÓ~|òùDÕ?gë°¬òÇÃ?r   g›{¿0¾1#@gpŽ§²rs'@gþ~;ïÑÓ$@g"‹†dIŽ@gö°Õöë÷*@gÑ}Ÿ'Á,@)r   rV   Únoncentral_chisquarer)   rR   r   r   r&   r&   r'   Útest_noncentral_chisquare  s(    
þ
þ
þz(TestRandomDist.test_noncentral_chisquarec                 C   sL   t  | j¡ t jddddd�}t ddgdd	gd
dgg¡}t||dd� d S )NrQ   r   rI   r  )ÚdfnumÚdfdenrª  rš   gŒ^ýíå~ö?gƒ/+c¢äÕ?g"¡®.ž@gü†Œ÷Ž´@g×7í§ŸþÛ?g»ŒE·Öò?r}  rý   )r   rV   Únoncentral_fr)   rR   r   r   r&   r&   r'   Útest_noncentral_f0  s    
ÿ
þz TestRandomDist.test_noncentral_fc                 C   s0   t  | j¡ t jddtjd�}t |¡s,J ‚d S )NrQ   r   )r­  r®  rª  )r   rV   r¯  r)   rb   Úisnan)r<   rë   r&   r&   r'   Útest_noncentral_f_nan9  s    z$TestRandomDist.test_noncentral_f_nanc                 C   sJ   t  | j¡ t jdddd�}t ddgddgd	d
gg¡}t||dd� d S )Nr�  r†  r  r‡  gíœ&&n@gO»G_Ê@gÜ~w²ø@gtÁÜûw]Õ¿gm&¨5ú½@gŒñ$È>Û@rü   rý   )r   rV   Únormalr)   rR   r   r   r&   r&   r'   Útest_normal>  s    
þzTestRandomDist.test_normalc                 C   s&   t tjdd�dƒ tttjdd� d S rt  )r   r   r³  r   rF   rG   r&   r&   r'   Útest_normal_0F  s    zTestRandomDist.test_normal_0c                 C   sL   t  | j¡ t jddd�}t ddgddgdd	gg¡}tjj||d
d� d S )Nr�  r  ©r3   rš   gÅWò˜I£@gùÔ¨y–@gy£Ÿ]Ó0‰Ag1~ÖÒ\�AgåËíãša@gÑY„
²7Aé   )Znulp)r   rV   Úparetor)   rR   ÚtestingZassert_array_almost_equal_nulpr   r&   r&   r'   Útest_paretoJ  s    þÿ
zTestRandomDist.test_paretoc                 C   sD   t  | j¡ t jddd�}t ddgddgddgg¡}t||ƒ d S )Nr�  r  )Úlamrš   r   rI   )r   rV   r   r)   rR   r   r   r&   r&   r'   Útest_poissonY  s    
þzTestRandomDist.test_poissonc                 C   s®   t  d¡j}d}tttj|ƒ tttj|gd ƒ tttj|ƒ tttj|gd ƒ tƒ �@}| t	¡ tttjt j
ƒ tttjt j
gd ƒ W d   ƒ n1 s 0    Y  d S )Nræ   rC   r   )r)   rÂ   rÄ   r   rF   r   r   r	   r£   r¤   rb   )r<   ZlambigZlamnegr¨   r&   r&   r'   Útest_poisson_exceptionsa  s    
z&TestRandomDist.test_poisson_exceptionsc                 C   sH   t  | j¡ t jddd�}t ddgddgdd	gg¡}t||d
d� d S )Nr�  r  r¶  gõ;•'û”?gÜ´èwÞ*�?g×†5›Ø?gF¡GÙ?g ÆËD]?gýÞ$`°ÉÀ?rü   rý   )r   rV   Úpowerr)   rR   r   r   r&   r&   r'   Ú
test_powerm  s    
þzTestRandomDist.test_powerc                 C   sH   t  | j¡ t jddd�}t ddgddgdd	gg¡}t||d
d� d S )Nr   r  )rv  rš   g"íu¨ÈÆ+@gîN$MBÄ*@g7v8Bô4@gêÿª55@geãˆ&@g~ŽÓ£ÌZ1@r}  rý   )r   rV   Úrayleighr)   rR   r   r   r&   r&   r'   Útest_rayleighu  s    
þzTestRandomDist.test_rayleighc                 C   s&   t tjdd�dƒ tttjdd� d S rt  )r   r   rÀ  r   rF   rG   r&   r&   r'   Útest_rayleigh_0}  s    zTestRandomDist.test_rayleigh_0c                 C   sF   t  | j¡ t jdd�}t ddgddgddgg¡}t||d	d
� d S )Nr  r™   gMo³DL®è?g6Ï([9ÀgðºrF=òí?gÉM'	-™ ÀgóV¼ëûÀgVA:ìQyÇ?rü   rý   )r   rV   Zstandard_cauchyr)   rR   r   r   r&   r&   r'   Útest_standard_cauchy�  s    
þz#TestRandomDist.test_standard_cauchyc                 C   sF   t  | j¡ t jdd�}t ddgddgddgg¡}t||d	d
� d S )Nr  r™   g°ö–Ü�Üî?gc!z¨ì?g&N˜¥"�@g¬NIàŠÇ@gFÇï>ú’ã?g¡~‚MEø?rü   rý   )r   rV   Zstandard_exponentialr)   rR   r   r   r&   r&   r'   Útest_standard_exponential‰  s    
þz(TestRandomDist.test_standard_exponentialc                 C   sH   t  | j¡ t jddd�}t ddgddgdd	gg¡}t||d
d� d S )NrO   r  )rt   rš   g)§ž@g¾§Ä¾¤„@gd]‰,qÂ@gP‡kÌ{@g9B#Œ1@gÔÚv÷‡ @r}  rý   )r   rV   Ústandard_gammar)   rR   r   r   r&   r&   r'   Útest_standard_gamma‘  s    
þz"TestRandomDist.test_standard_gammac                 C   s&   t tjdd�dƒ tttjdd� d S )Nr   )rt   rw  )r   r   rÅ  r   rF   rG   r&   r&   r'   Útest_standard_gamma_0™  s    z$TestRandomDist.test_standard_gamma_0c                 C   sF   t  | j¡ t jdd�}t ddgddgddgg¡}t||d	d
� d S )Nr  r™   r  r  r  r  r  r  rü   rý   )r   rV   r›   r)   rR   r   r   r&   r&   r'   Útest_standard_normal�  s    
þz#TestRandomDist.test_standard_normalc                 C   s0   t  | j¡ t  ¡ }t d¡}t||dd� d S )Nr  rü   rý   r
  r   r&   r&   r'   Útest_randn_singleton¥  s    
z#TestRandomDist.test_randn_singletonc                 C   sH   t  | j¡ t jddd�}t ddgddgdd	gg¡}t||d
d� d S )Nr   r  )r©  rš   g\VÔHÂï?gßhUÍ%›¶¿gÿH$ðMÏõ?güøüL›³á¿gV«qdz¥Ç¿gã–€Õý“ã?rü   rý   )r   rV   Ú
standard_tr)   rR   r   r   r&   r&   r'   Útest_standard_t«  s    
þzTestRandomDist.test_standard_tc                 C   sL   t  | j¡ t jddddd�}t ddgdd	gd
dgg¡}t||dd� d S )Ng{®Gáz@gö(\�Âu$@g×£p=
W4@r  )ÚleftÚmodeÚrightrš   g:§}ŒÂ\)@ghØ±TjÓ(@g‡Ç¨L‰30@g6Úœ™ÅA0@g6¤õ—sh&@gœí<Šáþ,@r}  rý   )r   rV   Ú
triangularr)   rR   r   r   r&   r&   r'   Útest_triangular³  s    
ÿ
þzTestRandomDist.test_triangularc                 C   sJ   t  | j¡ t jdddd�}t ddgddgd	d
gg¡}t||dd� d S )Nç®Gáz®ó?g®Gáz%@r  )ÚlowÚhighrš   g>#¥HÃö@g£¨uºó@g•ï‡§Ý#@g„}d]#@gø†‰N¶õ@g­w)*ó @rü   rý   )r   rV   Úuniformr)   rR   r   r   r&   r&   r'   Útest_uniform¼  s    
þzTestRandomDist.test_uniformc                 C   s–   t  d¡j}t  d¡j}tj}tt|t j dƒ tt|dt jƒ tt|||ƒ tt|t j gdgƒ tt|dgt jgƒ tjt  	|d¡|d d� d S )Nru   r   rI   g  Ø…W4vC)rÒ  rÓ  )
r)   ZfinforÃ   rÄ   r   rÔ  r   ÚOverflowErrorÚinfÚ	nextafter)r<   ZfminZfmaxÚfuncr&   r&   r'   Útest_uniform_range_boundsÄ  s    z(TestRandomDist.test_uniform_range_boundsc                 C   sj   G dd„ dt jƒ}t  d¡ |¡}tttj||ƒ G dd„ dt jƒ}t  d¡ |¡}tttj|ddƒ d S )Nc                   @   s   e Zd Zdd„ ZdS )zGTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloatc                 S   s   t ‚d S r!   ©rE   rG   r&   r&   r'   Ú	__float__Ü  s    zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloat.__float__N)rZ   r[   r\   rÜ  r&   r&   r&   r'   ÚThrowingFloatÛ  s   rÝ  rš  c                   @   s   e Zd Zdd„ ZdS )zITestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingIntegerc                 S   s   t ‚d S r!   rÛ  rG   r&   r&   r'   Ú__int__ä  s    zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingInteger.__int__N)rZ   r[   r\   rÞ  r&   r&   r&   r'   ÚThrowingIntegerã  s   rß  rI   )	r)   ZndarrayrR   rà   r   rE   r   rÔ  r   )r<   rÝ  Zthrowing_floatrß  Zthrowing_intr&   r&   r'   Ú!test_scalar_exception_propagationÔ  s    
ÿz0TestRandomDist.test_scalar_exception_propagationc                 C   sJ   t  | j¡ t jdddd�}t ddgddgd	d
gg¡}t||dd� d S )NrÑ  ç¤p=
×£ø?r  ©r¥  Úkapparš   gL×üZI@g¦¢'N"@gÀ·…þkrØ?g”k=mœ@g�¹Ú‰ó?gÜ^Ì=�\ý?rü   rý   ©r   rV   Úvonmisesr)   rR   r   r   r&   r&   r'   Útest_vonmisesê  s    
þzTestRandomDist.test_vonmisesc                 C   s2   t  | j¡ t jdddd�}tt |¡ ¡ ƒ d S )Nri   gg5_PŸG>é@B râ  )r   rV   rå  r   r)   Úisfiniterl   ©r<   Úrr&   r&   r'   Útest_vonmises_smallò  s    z"TestRandomDist.test_vonmises_smallc                 C   s<   t  | j¡ t jdddd�}t g d¢¡}t||dd� d S )Nri   g    ÐcArO   râ  )g  AÔü^>?g @’ÌR7?g x¢.¿rÑ   rý   rä  r   r&   r&   r'   Útest_vonmises_largeø  s    z"TestRandomDist.test_vonmises_largec                 C   s.   t  | j¡ t jdtjd�}tt |¡ƒ d S )Nri   )r¥  rã  )r   rV   rå  r)   rb   r   r±  ré  r&   r&   r'   Útest_vonmises_nan  s    z TestRandomDist.test_vonmises_nanc                 C   sJ   t  | j¡ t jdddd�}t ddgddgd	d
gg¡}t||dd� d S )NrÑ  rá  r  )r’  rv  rš   gÉZ¥ƒ¢@g-ïŸg†@g¦8
ÄÖmÖ?gÃÎVP"ø?g`Vô áÎ?gx©^½&3Ì?r}  rý   )r   rV   Úwaldr)   rR   r   r   r&   r&   r'   Ú	test_wald  s    
þzTestRandomDist.test_waldc                 C   sH   t  | j¡ t jddd�}t ddgddgdd	gg¡}t||d
d� d S )NrÑ  r  r¶  g@–Ý6ï?g¦Óé]Aí?g(Ã1Ú¥Rþ?gù¤U þ?g“Í2§_uå?g^}-­Qö?rü   rý   )r   rV   Úweibullr)   rR   r   r   r&   r&   r'   Útest_weibull  s    
þzTestRandomDist.test_weibullc                 C   s:   t  | j¡ tt jddd�t d¡ƒ ttt jdd� d S )Nr   ry  r¶  rw  )r3   )r   rV   r   rð  r)   r_   r   rF   rG   r&   r&   r'   Útest_weibull_0  s    zTestRandomDist.test_weibull_0c                 C   sD   t  | j¡ t jddd�}t ddgddgddgg¡}t||ƒ d S )	NrÑ  r  r¶  éB   é   rI   rO   re  )r   rV   r   r)   rR   r   r   r&   r&   r'   Ú	test_zipf  s    
þzTestRandomDist.test_zipfN)[rZ   r[   r\   r‘   r  r  r  r  r  r  r  r  r   r#  r'  r*  r-  r0  r2  r7  r9  r;  r=  rQ  rY  r\  r^  rd  rg  rn  ro  rp  rq  rs  rx  r|  r  r€  rƒ  r…  rŠ  r‹  rŒ  rŽ  r�  r‘  r•  r–  r—  r˜  r‰   rò   Zparametrizer)   rØ  rb   rŸ  r¡  r¦  r¢   r¨  r¬  r°  r²  r´  rµ  rº  r¼  r½  r¿  rÁ  rÂ  rÃ  rÄ  rÆ  rÇ  rÈ  rÉ  rË  rÐ  rÕ  rÚ  rà  ræ  rë  rì  rí  rï  rñ  rò  rõ  r&   r&   r&   r'   rô   ¹  s¦   .		


3			rô   c                   @   s  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9d:„ Zd;d<„ Z d=d>„ Z!d?d@„ Z"dAS )BÚTestBroadcastc                 C   s
   d| _ d S )NéÍ[rõ   rG   r&   r&   r'   r‘   '  s    zTestBroadcast.setup_methodc                 C   s   t  | j¡ d S r!   )r   rV   rG   r&   r&   r'   Úset_seed*  s    zTestBroadcast.set_seedc                 C   sl   dg}dg}t j}t g d¢¡}|  ¡  ||d |ƒ}t||dd� |  ¡  |||d ƒ}t||dd� d S )Nr   rI   ©gºlö×÷á?g_x¤¥á?g=å*BNà?rO   r}  rý   )r   rÔ  r)   rR   rø  r   )r<   rÒ  rÓ  rÔ  ré   rë   r&   r&   r'   rÕ  -  s    zTestBroadcast.test_uniformc                 C   s–   dg}dg}dg}t j}t g d¢¡}|  ¡  ||d |ƒ}t||dd� tt||d |ƒ |  ¡  |||d ƒ}t||dd� tt|||d ƒ d S )Nr   rI   rC   )g-rö´@g¦Y®lõ@g-µ`¦wý?rO   r}  rý   )r   r³  r)   rR   rø  r   r   rF   )r<   rˆ  rv  Ú	bad_scaler³  ré   rë   r&   r&   r'   r´  =  s    zTestBroadcast.test_normalc                 C   sÀ   dg}dg}dg}dg}t j}t g d¢¡}|  ¡  ||d |ƒ}t||dd� tt||d |ƒ tt||d |ƒ |  ¡  |||d ƒ}t||dd� tt|||d ƒ tt|||d ƒ d S )	NrI   r   rC   rJ   )gnÍQVfÉ?gV©‹šKB³?gv®`køÏ?rO   r}  rý   )r   r]  r)   rR   rø  r   r   rF   )r<   r3   r4   Úbad_aZbad_br]  ré   rë   r&   r&   r'   r^  P  s     zTestBroadcast.test_betac                 C   sV   dg}dg}t j}t g d¢¡}|  ¡  ||d ƒ}t||dd� tt||d ƒ d S ©NrI   rC   )gö.Ug¬Zè?gi Pr�qè?gçÅEKÌæ?rO   r}  rý   )r   rr  r)   rR   rø  r   r   rF   )r<   rv  rú  rr  ré   rë   r&   r&   r'   rs  f  s    zTestBroadcast.test_exponentialc                 C   sV   dg}dg}t j}t g d¢¡}|  ¡  ||d ƒ}t||dd� tt||d ƒ d S rü  )r   rÅ  r)   rR   rø  r   r   rF   )r<   rt   Ú	bad_shapeZ	std_gammaré   rë   r&   r&   r'   rÆ  s  s    z!TestBroadcast.test_standard_gammac                 C   sÀ   dg}dg}dg}dg}t j}t g d¢¡}|  ¡  ||d |ƒ}t||dd� tt||d |ƒ tt||d |ƒ |  ¡  |||d ƒ}t||dd� tt|||d ƒ tt|||d ƒ d S )	NrI   r   rC   rJ   )gö.Ug¬Zø?gi Pr�qø?gçÅEKÌö?rO   r}  rý   )r   r~  r)   rR   rø  r   r   rF   )r<   rt   rv  rý  rú  r~  ré   rë   r&   r&   r'   r  €  s     zTestBroadcast.test_gammac                 C   sÀ   dg}dg}dg}dg}t j}t g d¢¡}|  ¡  ||d |ƒ}t||dd� tt||d |ƒ tt||d |ƒ |  ¡  |||d ƒ}t||dd� tt|||d ƒ tt|||d ƒ d S )	NrI   r   rC   rJ   )gb—�yÊœé?g»åoðÄë?gT¹æ7Í@rO   r}  rý   )r   r{  r)   rR   rø  r   r   rF   )r<   r­  r®  Ú	bad_dfnumÚ	bad_dfdenr{  ré   rë   r&   r&   r'   r|  –  s     zTestBroadcast.test_fc           
   	   C   s†  dg}dg}dg}dg}dg}dg}t j}t g d¢¡}|  ¡  ||d ||ƒ}	t|	|dd	� t t |||tjgd ƒ¡¡s‚J ‚t	t
||d ||ƒ t	t
||d ||ƒ t	t
||d ||ƒ |  ¡  |||d |ƒ}	t|	|dd	� t	t
|||d |ƒ t	t
|||d |ƒ t	t
|||d |ƒ |  ¡  ||||d ƒ}	t|	|dd	� t	t
||||d ƒ t	t
||||d ƒ t	t
||||d ƒ d S )
Nr   rO   rP   r   rC   rJ   )gÈr±^G"@g/�*@g‹°�Ñ†š!@r}  rý   )r   r¯  r)   rR   rø  r   rl   r±  rb   r   rF   )
r<   r­  r®  rª  rþ  rÿ  Úbad_noncZnonc_fré   rë   r&   r&   r'   r°  ¬  s6    $zTestBroadcast.test_noncentral_fc                 C   s:   |   ¡  t ddg¡}tjddddd�}t||dd� d S )Ng¬ªaŒ‚z@gn4M;î%é?rz   r   r™   r}  rý   )rø  r)   rR   r   r¯  r   )r<   ré   rë   r&   r&   r'   Útest_noncentral_f_small_dfÏ  s    z(TestBroadcast.test_noncentral_f_small_dfc                 C   sV   dg}dg}t j}t g d¢¡}|  ¡  ||d ƒ}t||dd� tt||d ƒ d S )NrI   rC   )g~¼}ÐN?â?g‘$FŽŸà?g'rS�èÀ?rO   r}  rý   )r   rf  r)   rR   rø  r   r   rF   )r<   r©  Úbad_dfrf  ré   rë   r&   r&   r'   rg  Õ  s    zTestBroadcast.test_chisquarec                 C   sÀ   dg}dg}dg}dg}t j}t g d¢¡}|  ¡  ||d |ƒ}t||dd� tt||d |ƒ tt||d |ƒ |  ¡  |||d ƒ}t||dd� tt|||d ƒ tt|||d ƒ d S )	NrI   r   rC   rJ   )g©ç wÌ "@g2øêWR@g�ˆâRY@rO   r}  rý   )r   r«  r)   rR   rø  r   r   rF   )r<   r©  rª  r  r   Znonc_chiré   rë   r&   r&   r'   r¬  â  s     z'TestBroadcast.test_noncentral_chisquarec                 C   sh   dg}dg}t j}t g d¢¡}|  ¡  ||d ƒ}t||dd� tt||d ƒ ttt j|d ƒ d S )NrI   rC   )gTÄò�@g~‹Fžl@gÆštø�pð?rO   r}  rý   )r   rÊ  r)   rR   rø  r   r   rF   )r<   r©  r  Útré   rë   r&   r&   r'   rË  ø  s    zTestBroadcast.test_standard_tc                 C   s–   dg}dg}dg}t j}t g d¢¡}|  ¡  ||d |ƒ}t||dd� tt||d |ƒ |  ¡  |||d ƒ}t||dd� tt|||d ƒ d S )Nr   rI   rC   )g´®W!è@gü�OBº¦ÀgÈ}Ç?àý¿rO   r}  rý   )r   rå  r)   rR   rø  r   r   rF   )r<   r¥  rã  Z	bad_kapparå  ré   rë   r&   r&   r'   ræ    s    zTestBroadcast.test_vonmisesc                 C   sh   dg}dg}t j}t g d¢¡}|  ¡  ||d ƒ}t||dd� tt||d ƒ ttt j|d ƒ d S )NrI   rC   )g&ƒ8¾?ò?g�e�âFXò?gªÕ‹Ë�Ÿð?rO   r}  rý   )r   r¸  r)   rR   rø  r   r   rF   )r<   r3   rû  r¸  ré   rë   r&   r&   r'   rº    s    zTestBroadcast.test_paretoc                 C   sh   dg}dg}t j}t g d¢¡}|  ¡  ||d ƒ}t||dd� tt||d ƒ ttt j|d ƒ d S rü  )r   rð  r)   rR   rø  r   r   rF   )r<   r3   rû  rð  ré   rë   r&   r&   r'   rñ  '  s    zTestBroadcast.test_weibullc                 C   sh   dg}dg}t j}t g d¢¡}|  ¡  ||d ƒ}t||dd� tt||d ƒ ttt j|d ƒ d S )NrI   rC   rù  rO   r}  rý   )r   r¾  r)   rR   rø  r   r   rF   )r<   r3   rû  r¾  ré   rë   r&   r&   r'   r¿  5  s    zTestBroadcast.test_powerc                 C   s–   dg}dg}dg}t j}t g d¢¡}|  ¡  ||d |ƒ}t||dd� tt||d |ƒ |  ¡  |||d ƒ}t||dd� tt|||d ƒ d S )Nr   rI   rC   )g:¨×BKc±?gÖ3®šk²?gî~qÉÁ“?rO   r}  rý   )r   r�  r)   rR   rø  r   r   rF   )r<   rˆ  rv  rú  r�  ré   rë   r&   r&   r'   rŽ  C  s    zTestBroadcast.test_laplacec                 C   s–   dg}dg}dg}t j}t g d¢¡}|  ¡  ||d |ƒ}t||dd� tt||d |ƒ |  ¡  |||d ƒ}t||dd� tt|||d ƒ d S )Nr   rI   rC   )gÈ'�£ZyÑ?g÷dSO=Ñ?gÏ3Lõ1³Õ?rO   r}  rý   )r   r‰  r)   rR   rø  r   r   rF   )r<   rˆ  rv  rú  r‰  ré   rë   r&   r&   r'   rŠ  V  s    zTestBroadcast.test_gumbelc                 C   s¨   dg}dg}dg}t j}t g d¢¡}|  ¡  ||d |ƒ}t||dd� tt||d |ƒ |  ¡  |||d ƒ}t||dd� tt|||d ƒ tt  dd	¡dƒ d S )
Nr   rI   rC   )gÂ“y±ÕÀ?gªÀJõR�Á?gþ
~Æ&‘£?rO   r}  rý   rš  ri   )	r   r�  r)   rR   rø  r   r   rF   r   )r<   rˆ  rv  rú  r�  ré   rë   r&   r&   r'   r‘  i  s    zTestBroadcast.test_logisticc                 C   s¾   dg}dg}dg}t j}t g d¢¡}|  ¡  ||d |ƒ}t||dd� tt||d |ƒ ttt j|d |ƒ |  ¡  |||d ƒ}t||dd� tt|||d ƒ ttt j||d ƒ d S )Nr   rI   rC   )gÄñò�ÏH"@g¼ùÜ®ƒÍ @gvv	ý²:@rO   r}  rý   )r   r”  r)   rR   rø  r   r   rF   )r<   r’  r“  Z	bad_sigmar”  ré   rë   r&   r&   r'   r•  }  s    zTestBroadcast.test_lognormalc                 C   sV   dg}dg}t j}t g d¢¡}|  ¡  ||d ƒ}t||dd� tt||d ƒ d S )NrI   rC   )gÝ±lËo½ó?gé/Ó‚´Æó?gz~ßRó?rO   r}  rý   )r   rÀ  r)   rR   rø  r   r   rF   )r<   rv  rú  rÀ  ré   rë   r&   r&   r'   rÁ  ’  s    zTestBroadcast.test_rayleighc                 C   s  dg}dg}dg}dg}t j}t g d¢¡}|  ¡  ||d |ƒ}t||dd� tt||d |ƒ tt||d |ƒ ttt j|d |ƒ ttt j|d |ƒ |  ¡  |||d ƒ}t||dd� tt|||d ƒ tt|||d ƒ tt|d	dƒ tt|dd	ƒ d S )
Nr   rI   r   rJ   )g@mò ‰e¾?g¸�`ŸIß¿?g¸‡|2‹í?rO   r}  rý   ri   )r   rî  r)   rR   rø  r   r   rF   )r<   r’  rv  Zbad_meanrú  rî  ré   rë   r&   r&   r'   rï  Ÿ  s(    zTestBroadcast.test_waldc                 C   s˜  dg}dg}dg}dg}dg}|d \}}t j}t g d¢¡}	|  ¡  ||d ||ƒ}
t|
|	dd� tt||d ||ƒ tt||d ||ƒ tt||d ||ƒ |  ¡  |||d |ƒ}
t|
|	dd� tt|||d |ƒ tt|||d |ƒ tt|||d |ƒ |  ¡  ||||d ƒ}
t|
|	dd� tt||||d ƒ tt||||d ƒ tt||||d ƒ tt|dd	d
ƒ tt|ddd
ƒ tt|dddƒ d S )NrI   rO   r   rP   )g,âP;bD @gºÁ±È%G @g,~S²¨ @r}  rý   r   ri   g      4@g      9@)r   rÏ  r)   rR   rø  r   r   rF   )r<   rÌ  rÎ  rÍ  Zbad_left_oneZbad_mode_oneZbad_left_twoZbad_mode_tworÏ  ré   rë   r&   r&   r'   rÐ  ¹  sF    ÿÿ
ÿzTestBroadcast.test_triangularc           	      C   sâ   dg}dg}dg}dg}dg}t j}t g d¢¡}|  ¡  ||d |ƒ}t||ƒ tt||d |ƒ tt||d |ƒ tt||d |ƒ |  ¡  |||d ƒ}t||ƒ tt|||d ƒ tt|||d ƒ tt|||d ƒ d S )NrI   r   rC   ç      ø?©rI   rI   rI   rO   )r   r   r)   rR   rø  r   r   rF   )	r<   r§  r`   Úbad_nÚ	bad_p_oneÚ	bad_p_twoZbinomré   rë   r&   r&   r'   rd  á  s&    

zTestBroadcast.test_binomialc           	      C   sâ   dg}dg}dg}dg}dg}t j}t g d¢¡}|  ¡  ||d |ƒ}t||ƒ tt||d |ƒ tt||d |ƒ tt||d |ƒ |  ¡  |||d ƒ}t||ƒ tt|||d ƒ tt|||d ƒ tt|||d ƒ d S )NrI   r   rC   r  )rI   r   rI   rO   )r   r   r)   rR   rø  r   r   rF   )	r<   r§  r`   r  r  r  Z	neg_binomré   rë   r&   r&   r'   r¢   ø  s&    

z$TestBroadcast.test_negative_binomialc                 C   sv   t  ¡ j}dg}dg}|d g}t j}t g d¢¡}|  ¡  ||d ƒ}t||ƒ tt	||d ƒ tt	||d ƒ d S )NrI   rC   r   )rI   rI   r   rO   )
r   r9   Z_poisson_lam_maxr   r)   rR   rø  r   r   rF   )r<   Zmax_lamr»  Zbad_lam_oneZbad_lam_twor   ré   rë   r&   r&   r'   r¼    s    


zTestBroadcast.test_poissonc                 C   s    dg}dg}t j}t g d¢¡}|  ¡  ||d ƒ}t||ƒ tt||d ƒ tjdd��2 tt|tj	ƒ tt|ddtj	gƒ W d   ƒ n1 s’0    Y  d S )Nr   r   )r   r   rI   rO   r›  rœ  )
r   r   r)   rR   rø  r   r   rF   rž  rb   )r<   r3   rû  r   ré   rë   r&   r&   r'   rõ    s    
zTestBroadcast.test_zipfc                 C   sh   dg}dg}dg}t j}t g d¢¡}|  ¡  ||d ƒ}t||ƒ tt||d ƒ tt||d ƒ d S )Nr   rC   r  rq   rO   )r   r   r)   rR   rø  r   r   rF   )r<   r`   r  r  Zgeomré   rë   r&   r&   r'   rƒ  ,  s    
zTestBroadcast.test_geometricc                 C   sØ  dg}dg}dg}dg}dg}dg}dg}t j}t g d¢¡}	|  ¡  ||d ||ƒ}
t|
|	ƒ tt||d ||ƒ tt||d ||ƒ tt||d ||ƒ tt||d ||ƒ |  ¡  |||d |ƒ}
t|
|	ƒ tt|||d |ƒ tt|||d |ƒ tt|||d |ƒ tt|||d |ƒ |  ¡  ||||d ƒ}
t|
|	ƒ tt||||d ƒ tt||||d ƒ tt||||d ƒ tt||||d ƒ tt|dd	d
ƒ tt|d	dd
ƒ tt|d	d	dƒ tt|d	d	dƒ d S )NrI   r   rC   rJ   r   rP   r  rO   r   r   é   )r   r   r)   rR   rø  r   r   rF   )r<   ZngoodZnbadZnsampleZ	bad_ngoodZbad_nbadZbad_nsample_oneZbad_nsample_twoZ	hypergeomré   rë   r&   r&   r'   rŒ  9  sD    


z!TestBroadcast.test_hypergeometricc                 C   sh   dg}dg}dg}t j}t g d¢¡}|  ¡  ||d ƒ}t||ƒ tt||d ƒ tt||d ƒ d S )Nr   r   rC   r  rO   )r   r   r)   rR   rø  r   r   rF   )r<   r`   r  r  r   ré   rë   r&   r&   r'   r—  a  s    
zTestBroadcast.test_logseriesN)#rZ   r[   r\   r‘   rø  rÕ  r´  r^  rs  rÆ  r  r|  r°  r  rg  r¬  rË  ræ  rº  rñ  r¿  rŽ  rŠ  r‘  r•  rÁ  rï  rÐ  rd  r¢   r¼  rõ  rƒ  rŒ  r—  r&   r&   r&   r'   rö  $  s@   #((rö  zcan't start threadrç   c                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )Ú
TestThreadc                 C   s   t dƒ| _d S )NrP   )r?   ÚseedsrG   r&   r&   r'   r‘   r  s    zTestThread.setup_methodc                    sÊ   ddl m‰  t t| jƒf| ¡}t t| jƒf| ¡}‡ ‡fdd„t| j|ƒD ƒ}dd„ |D ƒ dd„ |D ƒ t| j|ƒD ]\}}ˆt |¡|ƒ q|t 	¡ j
jdkr¼tjdkr¼t||ƒ n
t||ƒ d S )	Nr   )ÚThreadc                    s&   g | ]\}}ˆ ˆt  |¡|fd �‘qS ))ÚtargetÚargs)r   r9   )rD  r=   Úo©r  Úfunctionr&   r'   rF  |  s   ÿz-TestThread.check_function.<locals>.<listcomp>c                 S   s   g | ]}|  ¡ ‘qS r&   )Ústart©rD  rn   r&   r&   r'   rF  ~  r@  c                 S   s   g | ]}|  ¡ ‘qS r&   )Újoinr  r&   r&   r'   rF    r@  rP   Úwin32)Ú	threadingr  r)   r3  r¥   r  Úzipr   r9   ZintprM   ÚitemsizerÛ   Úplatformr   r   )r<   r  ÚszZout1Zout2r  r=   r  r&   r  r'   Úcheck_functionu  s    
ÿzTestThread.check_functionc                 C   s   dd„ }| j |dd� d S )Nc                 S   s   | j dd�|d< d S )Né'  r™   .)r³  ©r.   Úoutr&   r&   r'   Ú
gen_randomŒ  s    z*TestThread.test_normal.<locals>.gen_random)r  ©r  ©r  ©r<   r  r&   r&   r'   r´  ‹  s    zTestThread.test_normalc                 C   s   dd„ }| j |dd� d S )Nc                 S   s   | j t d¡d�|d< d S )N©r   r7   ru  .)rr  r)   r:  r  r&   r&   r'   r  ’  s    z'TestThread.test_exp.<locals>.gen_randomr#  r   r!  r"  r&   r&   r'   Útest_exp‘  s    zTestThread.test_expc                 C   s   dd„ }| j |dd� d S )Nc                 S   s   | j ddgd dd�|d< d S )Nr   r   r   r  r™   .)r   r  r&   r&   r'   r  ˜  s    z/TestThread.test_multinomial.<locals>.gen_random)r  r   r   r!  r"  r&   r&   r'   r¡  —  s    zTestThread.test_multinomialN)rZ   r[   r\   r‘   r  r´  r$  r¡  r&   r&   r&   r'   r
  o  s
   r
  c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestSingleEltArrayInputc                 C   s4   t  dg¡| _t  dg¡| _t  dg¡| _d| _d S )Nr   rO   rP   rI  )r)   rR   ÚargOneÚargTwoÚargThreeÚtgtShaperG   r&   r&   r'   r‘      s    z$TestSingleEltArrayInput.setup_methodc                 C   s€   t jt jt jt jt jt jt jt jt j	t j
t jt jf}t jt jf}|D ]6}||v rb|t dg¡ƒ}n
|| jƒ}t|j| jƒ qDd S r¡   )r   rr  rÅ  rf  rÊ  r¸  rð  r¾  rÀ  r   r   r   r   r)   rR   r&  r   rt   r)  )r<   ÚfuncsÚ	probfuncsrÙ  r  r&   r&   r'   Útest_one_arg_funcs¦  s    û
z*TestSingleEltArrayInput.test_one_arg_funcsc                 C   sÈ   t jt jt jt jt jt jt jt jt j	t j
t jt jt jt jf}t jt jf}|D ]v}||v rft dg¡}n| j}|| j|ƒ}t|j| jƒ || jd |ƒ}t|j| jƒ || j|d ƒ}t|j| jƒ qLd S )Nr   r   )r   rÔ  r³  r]  r~  r{  r«  rå  r�  r‰  r�  r”  rî  r   r   r)   rR   r'  r&  r   rt   r)  )r<   r*  r+  rÙ  r'  r  r&   r&   r'   Útest_two_arg_funcs¹  s&    úz*TestSingleEltArrayInput.test_two_arg_funcsc                 C   s†   t jt jt jg}|D ]l}|| j| j| jƒ}t|j| j	ƒ || jd | j| jƒ}t|j| j	ƒ || j| jd | jƒ}t|j| j	ƒ qd S ©Nr   )
r   r¯  rÏ  r   r&  r'  r(  r   rt   r)  )r<   r*  rÙ  r  r&   r&   r'   Útest_three_arg_funcsÔ  s    ÿz,TestSingleEltArrayInput.test_three_arg_funcsN)rZ   r[   r\   r‘   r,  r-  r/  r&   r&   r&   r'   r%  Ÿ  s   r%  c                 C   sD   t  d¡ | \}}}tt |ƒ}||ddiŽ}t|jt d¡kƒ d S )Nr÷  rš   r   ræ   )r   rV   Úgetattrr   rM   r)   )r(   Úfnamer  rß   r{  rë   r&   r&   r'   Útest_integer_dtypeä  s
    


r2  c                 C   sd   t  d¡ | \}}}tt |ƒ}||ddiŽ}tjdkr>| ¡ }t | t	j
¡¡ ¡ }t||kƒ d S )Nr÷  rš   rç  rÚ   )r   rV   r0  rÛ   rÜ   rÝ   rÞ   rß   rà   r)   rÖ   rá   r   )r(   r1  r  rß   r{  rã   rä   r&   r&   r'   Útest_integer_repeatì  s    



r3  c                   C   sÂ   t  t¡�$ tjdddgdd� W d   ƒ n1 s40    Y  t  t¡�$ tjddgddd� W d   ƒ n1 sr0    Y  t  t¡�( tjddgddgdd� W d   ƒ n1 s´0    Y  d S )NrI   r+  gffffffæ?)r   rI   r™   r   )r‰   rŠ   rF   r   r   r&   r&   r&   r'   Útest_broadcast_size_error÷  s    22r4  c                  C   sÈ   t j tdƒ¡} |  d¡ |  ¡ \}}}|d jjdks<J ‚|dŽ }| |¡ |j	dd�}t
|d |d ƒ t|d d	 |d d	 ƒ t|d d
 |d d
 ƒ t
|d |d ƒ t
|d |d ƒ d S )Nr   rI   r   )r   Fr¬   r-   r.   r/   r0   r1   r2   )r)   r   r9   r   r›   Ú
__reduce__Ú	__class__rZ   r”   r�   r   r   )rW   Zctorr  Zstate_ar4   Zstate_br&   r&   r'   Ú&test_randomstate_ctor_old_style_pickle  s    

r7  c                 C   sR   t j d¡}|j}t j |¡ tt jjjjt	|ƒƒs8J ‚t j 
¡ }||u sNJ ‚d S r.  )r)   r   Zdefault_rngr-   r+   r¦   ZmtrandZ_randZ_bit_generatorrï   r*   )r,   Zdef_bgÚbgZ	second_bgr&   r&   r'   Útest_hot_swap  s    
r9  c                 C   s˜   t dƒ}tj |¡ tjjdd�}tj d¡ tjjdd�}t|ƒ t|ƒ |d dks\J ‚|d d |d d ksxJ ‚|d d |d d ks”J ‚d S )	Nr   Fr¬   rI   r-   r   r.   Úinc)r   r)   r   r+   r�   rV   Úprint)r,   r8  r.   r¯   r&   r&   r'   Útest_seed_alt_bit_gen  s    r<  c                 C   s\   t j ¡ }tdƒ}t j |¡ tjtdd�� t j |¡ W d   ƒ n1 sN0    Y  d S )Nr   zstate must be for a PCG64r†   )	r)   r   r�   r   r+   r‰   rŠ   rF   r”   )r,   r.   r8  r&   r&   r'   Útest_state_error_alt_bit_gen,  s
    
r=  c                 C   sÒ   t j d¡ t j ddd¡}tdƒ}|j}t j |¡ t jjdd�}|D ]}|| || ksHJ ‚qHt j d¡ t j ddd¡}t  ||k¡r�J ‚|j}|d d |d d ks²J ‚|d d |d d ksÎJ ‚d S )	NéÍ� r   é   @r   Fr¬   r.   r:  )	r)   r   rV   r:   r   r.   r+   r�   rl   )r,   rÒ   r8  r.   Zstate_directÚfieldZpcg_valsr¯   r&   r&   r'   Útest_swap_worked5  s    rA  c                 C   sL   t j tdƒ¡ t j ddd¡}t j tdƒ¡}| ddd¡}t||ƒ d S )Nr>  r   r?  r   )r)   r   r+   r   r:   r9   r   )r,   Zsingleton_valsZrgZnon_singleton_valsr&   r&   r'   Ú%test_swapped_singleton_against_directG  s
    rB  )3rÞ   r²   rÛ   r  Únumpyr)   r‰   Znumpy.testingr   r   r   r   r   r   r   r	   r
   Znumpy.randomr   r   r   r:  r#   rÂ   rí   rÄ   r$   Zfixturer(   r,   r5   r6   r]   rd   r�   r¼   rô   rö  rò   ró   r
  r%  r2  r3  r4  r7  r9  r<  r=  rA  rB  r&   r&   r&   r'   Ú<module>   sŽ   ,ù
ù
ù

/8W %      q    O/E
	