o
    Ô­j'L ã                	   @   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dk rbd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ì        Ú@2fbead005fc63942decb5326d36a1f32fe2c9d32c904ee61e46866b88447c263Ú@23ead5dcde35d4cfd4ef2c105e4c3d43304b45dc1b1444b7823b9ee4fa144ebbÚ@0d764db64f5c3bad48c8c33551c13b4d07a1e7b470f77629bef6c985cac76fcfÚ@7b59bf2f1691626c5815cdcd9a49e1dd68697251d4521575219e4d2a1b8b2c67Ú@d754fa5b92943a38ec07630de92362dd2e02c43577fc147417dc5b9db94ccdd3Ú@8eb216f7cb2a63cf55605422845caaff002fddc64a7dc8b2d45acd477a49e824Ú@70c891d76104013ebd6f6bcf30d403a9074b886ff62e4e6b8eb605bf1a4673b7Ú@01f074f97517cd5d21747148ac6ca4074dde7fcb7acbaec0a936606fecacd93f)r   r   r   r   r   r   r   r   Ú@8626dd9d052cb608e93d8868de0a7b347258b199493871a1dc56e2a26cacb112Ú@8edd53d272e49c4fc8fbbe6c7d08d563d62e482921f3131d0a0e068af30f0db9Ú@83496cc4281c77b786c9b7ad88b74d42e01603a55c60577ebab81c3ba8d45657Ú@65878a38747c176bc00e930ebafebb69d4e1e16cd3a704e264ea8f5e24f548dbÚ@7a984ae6dca26fd25374479e118b22f55db0aedccd5a0f2584ceada33db98605Ú@d636d968e6a24ae92ab52fe11c46ac45b0897e98714426764e820a7d77602a61Ú@956552176f77e7c9cb20d0118fc9cf690be488d790ed4b4c4747b965e61b0bb4Ú@f84ba7feffda41e606e20b28dfc0f1ea9964a74574513d4a4cbc98433a8bfa45Úmodule)ÚscopeÚparamsc                 C   s   | j t| j  t| j  fS ©N)ÚparamÚ	INT_FUNCSÚINT_FUNC_HASHES)Úrequest© r6   ú`/var/www/html/CropPilot/venv/lib/python3.10/site-packages/numpy/random/tests/test_randomstate.pyÚint_func2   s   ÿr8   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)Úorig_bitgenr6   r6   r7   Ú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Úbr6   r6   r7   Úassert_mt19937_state_equal@   s
   rF   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Úsr6   r6   r7   Ú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   rH   iÔ  r   iÍ  rI   i	  )r   rJ   Úranger   rK   r9   ÚarangerL   r6   r6   r7   Ú
test_arrayO   s   zTestSeed.test_arrayc                 C   s    t ttjdƒ t ttjdƒ d S )Nç      à¿éÿÿÿÿ©r   Ú	TypeErrorr   rJ   Ú
ValueError©rM   r6   r6   r7   Útest_invalid_scalarY   ó   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 )NrS   rT   r   )é   r   r   )r[   éþÿÿÿr   rU   rX   r6   r6   r7   Ú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©r[   r   é   )é   é   r   )r   rW   r   rJ   r9   ÚarrayÚint64rX   r6   r6   r7   Útest_invalid_array_shapef   s   ÿ
ÿz!TestSeed.test_invalid_array_shapec                 C   sF   t  tdƒ¡}ttƒ� | d¡ W d   ƒ d S 1 sw   Y  d S )Nr   éÒ  )r   rJ   r   r   rV   Úseed)rM   Úrsr6   r6   r7   Útest_cannot_seedn   s   
"ÿzTestSeed.test_cannot_seedc                 C   s   t ttjtƒ d S r1   )r   rW   r   rJ   r   rX   r6   r6   r7   Útest_invalid_initializations   s   z$TestSeed.test_invalid_initializationN)
Ú__name__Ú
__module__Ú__qualname__rO   rR   rY   r]   rf   rj   rk   r6   r6   r6   r7   rG   H   s    
rG   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   Úintr^   )r   r   r[   r   )r9   Úzerosr   r   r   r   )rM   rq   Úpr6   r6   r7   Útest_n_zerox   s
   þzTestBinomial.test_n_zeroc                 C   s   t ttjdtjƒ d S )Nr[   )r   rW   r   r   r9   ÚnanrX   r6   r6   r7   Útest_p_is_nan�   s   zTestBinomial.test_p_is_nanN)rl   rm   rn   rs   ru   r6   r6   r6   r7   ro   w   s    	ro   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   ó   t  dddg¡ d S )Nr   çš™™™™™É?çš™™™™™é?©r   r   rX   r6   r6   r7   Ú
test_basic‡   ó   zTestMultinomial.test_basicc                 C   s   t  dg d¢¡ d S )Nr   )rx   ry   ç        r}   r}   rz   rX   r6   r6   r7   Útest_zero_probabilityŠ   r|   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éûÿÿÿrT   rc   )r   r   rK   r9   Úall©rM   Úxr6   r6   r7   Ú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   r[   ©r[   r   r   ©r   r   r   ©r   r   )
r   r   r   r9   Úuint32Úshaperd   r   rV   Úfloat©rM   rr   r6   r6   r7   Ú	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   çš™™™™™ñ?rx   çš™™™™™¹¿çÍÌÌÌÌÌì?©r   rW   r   r   rX   r6   r6   r7   Útest_invalid_prob¡   s   z!TestMultinomial.test_invalid_probc                 C   s   t ttjdddgƒ d S )NrT   ry   rx   r�   rX   r6   r6   r7   Útest_invalid_n¥   ó   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      .@r[   ra   iÛ iUr   )Úpvals)r9   rQ   Úsumr   rh   r   Úascontiguousarrayr   )rM   rr   r“   Ú
non_contigÚcontigr6   r6   r7   Útest_p_non_contiguous¨   s   


z%TestMultinomial.test_p_non_contiguousc                 C   sd   t jg d¢t jd�}|| ¡  }d}tjt|d�� t d|¡ W d   ƒ d S 1 s+w   Y  d S )N)
ç®Gáz®ï?r™   ç•Ö&è.>rš   rš   rš   rš   rš   rš   rš   r^   z-[\w\s]*pvals array is cast to 64-bit floating©Úmatchr[   )	r9   rd   Úfloat32r”   ÚpytestÚraisesrW   r   r   )rM   r‚   r“   rœ   r6   r6   r7   Útest_multinomial_pvals_float32²   s   
ÿ"ÿz.TestMultinomial.test_multinomial_pvals_float32c                 C   rw   )Ng      Y@rx   ry   rz   rX   r6   r6   r7   Útest_multinomial_n_floatº   s   z(TestMultinomial.test_multinomial_n_floatN)rl   rm   rn   r{   r~   rƒ   r‹   r�   r‘   r˜   r    r¡   r6   r6   r6   r7   rv   †   s    
rv   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)rh   r   rJ   Úrandom_stateÚ	get_stater?   rX   r6   r6   r7   Ú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   r9   r€   ©rM   ÚoldÚnewr6   r6   r7   r{   Ä   s   zTestSetState.test_basicc                 C   s@   | j jdd�}| j  | j¡ | j jdd�}tt ||k¡ƒ d S ©Nra   ©Úsize)r¤   Ústandard_normalr©   r?   r   r9   r€   rª   r6   r6   r7   Ú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   r9   r€   )rM   r?   r«   r¬   r6   r6   r7   Ú 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 )Nr\   r§   r®   )r?   r¤   r°   r©   r   r9   r€   )rM   Ú	old_stateÚx1Úx2Úx3r6   r6   r7   Útest_backwards_compatibilityÜ   s   z)TestSetState.test_backwards_compatibilityc                 C   s   | j  dd¡ d S ©Nr   )r¤   r   rX   r6   r6   r7   Útest_negative_binomialè   s   z#TestSetState.test_negative_binomialc                 C   sx   t  tƒ ¡}tƒ �)}| t¡}| ¡ }tt|ƒdkƒ t	|t
ƒs"J ‚|d dks*J ‚W d   ƒ d S 1 s5w   Y  d S )Nr[   r>   r   )r   rJ   r   r	   ÚrecordÚRuntimeWarningr¥   r   ÚlenÚ
isinstanceÚdict)rM   ri   ÚsupÚwr?   r6   r6   r7   Ú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)ÚUnknownr[   r^   F©Úlegacyr>   )	r¤   r¥   r   rW   r©   rV   r9   rd   Úobject)rM   r?   Ú	new_stater6   r6   r7   Ú!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Ã   rB   r[   )
r¤   rh   Úrandom_sampler°   r¥   r   ÚpickleÚloadsÚdumpsrF   )rM   ÚpickledÚ	rs_unpickÚ	unpickledr6   r6   r7   Ú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¥   rF   )rM   Ú
attr_stater?   r6   r6   r7   Útest_state_setting
  s
   

zTestSetState.test_state_settingc                 C   s   t | jƒ d¡s
J ‚d S )NzRandomState(MT19937))Úreprr¤   Ú
startswithrX   r6   r6   r7   Ú	test_repr  r’   zTestSetState.test_reprN)rl   rm   rn   r¦   r{   r±   r²   r·   r¹   rÁ   rÇ   rÏ   rÓ   rÖ   r6   r6   r6   r7   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 ©Nr[   r^   )r   rV   Úrfuncr‰   rX   r6   r6   r7   Útest_unsupported_type  ó   z!TestRandint.test_unsupported_typec                 C   s    | j D ]J}|tju rdnt |¡j}|tju rd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   r[   r^   )	Úityper9   Úbool_ÚiinfoÚminÚmaxr   rW   rÙ   )rM   ÚdtÚlbndÚubndr6   r6   r7   Útest_bounds_checking   s   
úz TestRandint.test_bounds_checkingc                 C   s´   | j D ]T}|tju rdnt |¡j}|tju rd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   r[   rH   ©r¯   r_   )rÜ   r9   rÝ   rÞ   rß   rà   r   rÙ   )rM   rá   râ   rã   Útgtr6   r6   r7   Ú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 rdnt |¡jd }z
| j|||d� W q ty? } ztdt	|ƒ ƒ‚d }~ww d S )Nr   r   r[   r^   zMNo error should have been raised, but one was with the following message:

%s)
rÜ   r9   rÝ   rÞ   rß   rà   rÙ   Ú	ExceptionÚAssertionErrorÚstr)rM   rá   râ   rã   Úer6   r6   r7   Útest_full_range7  s   
þ€ÿúzTestRandint.test_full_rangec                 C   s�   t  ¡  | jdd … D ] }dD ]}| 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 )Nr[   )rb   é   r§   r   i   rå   r   )	r   rh   rÜ   rÙ   r   rà   rß   r9   rÝ   )rM   rá   rã   Úvalsr6   r6   r7   Ú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 ]8}t d¡ tjd	kr)| 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 )NÚ@509aea74d792fb931784c4b0135392c65aec64beee12b0cc167548a2c3d31e71Ú@7b07f1a920e46f6d0fe02314155a2330bcfd7635e708da50e536c5ebb631a7d4Ú@e577bfed6c935de944424667e3da285012e741892dcb7051a8f1ce68ab05c92fÚ@0fbead0b06759df2cfb55e43148822d4a1ff953c7eb19a5b08445a63bb64fa9eÚ@001aac3a5acb935a9b186cbe14a1ca064b8bb2dd0b045d48abeacf74d0203404)	ÚboolÚint16Úint32re   Úint8Úuint16r‡   Úuint64Úuint8r[   rg   Úlittler   r   rH   rå   r   )rÜ   r   rh   ÚsysÚ	byteorderrÙ   ÚbyteswapÚhashlibÚsha256Úviewr9   rø   Ú	hexdigestr   r_   Únamerõ   )rM   ræ   rá   ÚvalÚresr6   r6   r7   Ú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 ]$}t d¡ | jdgdgdggg d¢|d�}t||d urX|n|d ƒ q9d 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)rc   ra   ra   i90  rT   r   r[   )rI   r   l       r®   )r9   rd   r   rh   rÙ   r   )rM   Údesiredr¯   r‚   r6   r6   r7   Ú.test_repeatability_32bit_boundary_broadcastingt  s8   
þþþþþô
ÿü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Ø   )r9   re   rÞ   rà   rú   r   rK   r   )rM   rá   ræ   râ   rã   Úactualr6   r6   r7   Ú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 rdnt |¡jd }| j|||d�}t|jt |¡ƒ qt	t
fD ]3}|t	u r?dnt |¡j}|t	u rKdnt |¡jd }| j|||d�}tt|dƒ ƒ tt|ƒ|ƒ q7d S )Nr   r   r[   r^   r_   )rÜ   r9   rÝ   rÞ   rß   rà   rÙ   r   r_   rõ   rp   r   ÚhasattrÚtype)rM   rá   râ   rã   Úsampler6   r6   r7   Útest_respect_dtype_singleton£  s   
ùz(TestRandint.test_respect_dtype_singletonN)rl   rm   rn   r   rK   rÙ   r9   rÝ   rø   rû   rö   rù   r÷   r‡   re   rú   rÜ   rÚ   rä   rç   rì   rï   r  rž   ÚmarkÚskipifrÞ   rà   r  r  r  r6   r6   r6   r7   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   ó
   d| _ d S r£   ©rh   rX   r6   r6   r7   r¦   º  ó   
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 )Nra   r   ç_®\±*Íã?ç�›˜¬”îâ?ç<î�pì?ç®,º¥oˆì?çˆÂÉHÝ?çZ±­°êæè?é   ©Údecimal)r   rh   Úrandr9   rd   r   ©rM   r  r  r6   r6   r7   Ú	test_rand½  ó   
þzTestRandomDist.test_randc                 C   s*   t  | j¡ t  ¡ }d}t||dd� d S )Nr  r  r   )r   rh   r"  r   r#  r6   r6   r7   Ú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 )Nra   r   çÿ!ã<Oqõ?ç4ð�u,Íû?çÁ³½3Ûû÷?çL«I/DÍ¿çà@ËÀŽ? @çÿHSÓ\@r  r   ©r   r   ©r   rh   Úrandnr9   rd   r   r#  r6   r6   r7   Ú
test_randnË  s   
þzTestRandomDist.test_randnc                 C   óF   t  | j¡ t jdddd�}t ddgddgd	d
gg¡}t||ƒ d S )Né�ÿÿÿéc   ©ra   r   r®   é   ra   éÌÿÿÿé)   éÐÿÿÿé¾ÿÿÿ)r   rh   rK   r9   rd   r   r#  r6   r6   r7   Útest_randint×  ó   
þzTestRandomDist.test_randintc                 C   sî   t  | j¡ tƒ �}| t¡}t jdddd�}tt|ƒdkƒ W d   ƒ n1 s)w   Y  t 	ddgdd	gd
dgg¡}t
||ƒ t  | j¡ tƒ �}| t¡}t jddd�}tt|ƒdkƒ W d   ƒ n1 siw   Y  t
||d ƒ d S )Nr2  r3  r4  r®   r[   r5  ra   r6  r7  r8  r9  éÆ   r   )r   rh   r	   rº   ÚDeprecationWarningÚrandom_integersr   r¼   r9   rd   r   )rM   r¿   rÀ   r  r  r6   r6   r7   Útest_random_integersß  s$   
ý
þ

ýz#TestRandomDist.test_random_integersc                 C   sª   t  | j¡ t  | j¡}|jdd�}t t¡jdkr,t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 )Nr4  r®   iÿÿÿiÁª4OiÿË•+i³RºKiriFbÀqi™‡Àr^   l   ÿK+W+¥y l   r&&ÌJÒ] l   ™�;	 l   Õ‹nBz l   ž@XÓHŒT l   D+l++Ý r-  )r   rh   rJ   r¨   r9   rÞ   rp   rà   rd   re   r   )rM   ri   r  r  r6   r6   r7   Útest_tomaxintñ  s(   
þþ
þý
zTestRandomDist.test_tomaxintc                 C   sð   t ƒ �#}| t¡}t t d¡jt d¡j¡}tt	|ƒdkƒ W d   ƒ n1 s)w   Y  t d¡j}t
||ƒ t ƒ �-}| t¡}t d¡j}t |t d¡jƒ|t d¡jƒ¡}tt	|ƒdkƒ W d   ƒ n1 slw   Y  t
||ƒ d S )Nr  r[   )r	   rº   r=  r   r>  r9   rÞ   rà   r   r¼   r   r_   r  )rM   r¿   rÀ   r  r  Útyperr6   r6   r7   Útest_random_integers_max_int  s$   

ÿü

ÿûz+TestRandomDist.test_random_integers_max_intc                 C   sp   t  ¡ �* t  dt¡ tttjt d¡j	ƒ tttjt d¡j	t d¡j	ƒ W d   ƒ d S 1 s1w   Y  d S )NÚerrorr  )
ÚwarningsÚcatch_warningsÚsimplefilterr=  r   r   r>  r9   rÞ   rà   rX   r6   r6   r7   Ú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 )Nr4  r  r  r  r  r  r  r  r   r-  )r   rh   rÈ   r9   rd   r   r#  r6   r6   r7   Útest_random_sample)  s   

þz!TestRandomDist.test_random_samplec                 C   s4   t  | j¡ t  dd¡}t g d¢¡}t||ƒ d S )Nrb   )r   ra   r   ra   ©r   rh   Úchoicer9   rd   r   r#  r6   r6   r7   Útest_choice_uniform_replace5  s   z*TestRandomDist.test_choice_uniform_replacec                 C   s<   t  | j¡ t jddg d¢d�}t g d¢¡}t||ƒ d S )Nrb   )çš™™™™™Ù?rL  çš™™™™™¹?rM  ©rr   )r[   r[   r   r   rI  r#  r6   r6   r7   Ú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 )Nrb   ra   F©Úreplace)r   r[   ra   rI  r#  r6   r6   r7   Útest_choice_uniform_noreplaceA  ó   z,TestRandomDist.test_choice_uniform_noreplacec                 C   s>   t  | j¡ t jdddg d¢d�}t g d¢¡}t||ƒ d S )Nrb   ra   F)rM  ç333333Ó?r   rM  ©rQ  rr   )r   ra   r[   rI  r#  r6   r6   r7   Ú test_choice_nonuniform_noreplaceG  s   z/TestRandomDist.test_choice_nonuniform_noreplacec                 C   s8   t  | j¡ t  g d¢d¡}t g d¢¡}t||ƒ d S )N)rD   rE   ÚcÚdrb   )rW  rX  rW  rX  rI  r#  r6   r6   r7   Útest_choice_nonintegerM  rS  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 )NrT   ra   ç      @r[   r   rb   )r[   r   ra   rb   g      Ð?rN  )rL  rL  rx   rŒ   r�   rL  r`   FrP  r\   )rT   )rT   r[   )r[   r   r   rU  )r   rJ  r   rW   )rM   r  r6   r6   r7   Útest_choice_exceptionsS  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 )NrM  rŽ   r   TrP  FrU  r[   r^   r   )r   ra   )rM  rM  rM  rM  rL  rx   r   )ra   r   rb   r®   iöÿÿÿ)r   r   rD   rE   )r   r9   Úisscalarr   rJ  rd   ÚemptyrÅ   ÚtupleÚndimÚitemr   rˆ   rQ   rK   r   rW   )rM   rr   rD   ÚarrrN   r6   r6   r7   Útest_choice_return_shapef  sL    ÿz'TestRandomDist.test_choice_return_shapec                 C   s,   t  g d¢¡}g d¢}tttj||d� d S )N)é*   r[   r   )NNNrN  )r9   rd   r   rW   r   rJ  )rM   rD   rr   r6   r6   r7   Ú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   rc   rZ  r[   r   ra   rN  )r9   Úonesr   rh   rJ  r•   r   )rM   rr   r–   r—   r6   r6   r7   Ú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   rh   Úbytesr   r#  r6   r6   r7   Ú
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||ƒ q#d S )Nc                 S   s
   t  g ¡S r1   )r9   rd   ©r‚   r6   r6   r7   Ú<lambda>«  s   
 z-TestRandomDist.test_shuffle.<locals>.<lambda>c                 S   s   | S r1   r6   ri  r6   r6   r7   rj  ¬  s    c                 S   ó   t  | ¡ t j¡S r1   )r9   ÚasarrayÚastyperø   ri  r6   r6   r7   rj  ­  ó    c                 S   rk  r1   )r9   rl  rm  r�   ri  r6   r6   r7   rj  ®  rn  c                 S   rk  r1   )r9   rl  rm  Ú	complex64ri  r6   r6   r7   rj  ¯  rn  c                 S   s   t  | ¡ t¡S r1   )r9   rl  rm  rÅ   ri  r6   r6   r7   rj  °  ó    c                 S   s   dd„ | D ƒS )Nc                 S   ó   g | ]}||f‘qS r6   r6   ©Ú.0Úir6   r6   r7   Ú
<listcomp>±  ó    úATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>r6   ri  r6   r6   r7   rj  ±  s    c                 S   s   t  dd„ | D ƒ¡S )Nc                 S   s   g | ]}||g‘qS r6   r6   rr  r6   r6   r7   ru  ²  rv  rw  )r9   rl  ri  r6   r6   r7   rj  ²  rv  c                 S   s   t  | | g¡jS r1   )r9   ÚvstackÚTri  r6   r6   r7   rj  ³  rp  c                 S   s*   t  dd„ | D ƒdtfdtfg¡ t j¡S )Nc                 S   rq  r6   r6   rr  r6   r6   r7   ru  µ  rv  rw  rD   rE   )r9   rl  rp   r  Úrecarrayri  r6   r6   r7   rj  µ  s    ÿ
c                 S   s(   t  dd„ | D ƒdtdfdt jdfg¡S )Nc                 S   rq  r6   r6   rr  r6   r6   r7   ru  ¹  rv  rw  rD   ©r[   rE   )r9   rl  rÅ   r÷   ri  r6   r6   r7   rj  ¹  s
    
ÿÿ©
r[   r   ra   rb   rc   r   é   rí   é	   r   ©
r   r[   r~  r   r   rb   rc   rí   r}  ra   )r   rh   Úshuffler   )rM   ÚconvÚalistr  r  r6   r6   r7   Ú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 ]2}t |¡ t	t
|j|j  ƒt
|j|j  ƒƒ t |¡ t	t
|j|j  ƒt
|j|j  ƒƒ q+dd„ }d S )	Nr   )rc   rb   ra   r[   rT   é2   c                 S   s   t  d¡}tttj|ƒ d S )Nra   )r9   rd   r   rV   r   r€  r�   r6   r6   r7   Útest_shuffle_invalid_objectsÑ  s   
zHTestRandomDist.test_shuffle_masked.<locals>.test_shuffle_invalid_objects)r9   ÚmaÚmasked_valuesÚreshaperP   rQ   Úcopyr   r€  r   ÚsortedÚdataÚmask)rM   rD   rE   Úa_origÚb_origrt  r…  r6   r6   r7   Ú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 )Nr|  r  Úabcdg333333ó?r   )
r~  r   rí   rc   r[   ra   rb   r}  r   r   )	r   rh   Úpermutationr   r9   Ú
atleast_2dry  r   Ú
IndexError)rM   r‚  r  r  Úarr_2dÚ	bad_x_strÚbad_x_floatÚinteger_valr6   r6   r7   Útest_permutationÕ  s(   



zTestRandomDist.test_permutationc                 C   óJ   t  | j¡ t jdddd�}t ddgddgd	d
gg¡}t||dd� d S )NrM  rŽ   r4  r®   gAàÁKÄ�?g‘ñØhA?g õÒ‡o¿>gÎ¬XfÈ+q?gSâë1Ã$?g'8zXŒ ?r  r   )r   rh   Úbetar9   rd   r   r#  r6   r6   r7   Ú	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¾Ÿ/Ý?r4  r®   é%   é+   rc  é0   é.   é-   )r   rh   r   r9   rd   r   r#  r6   r6   r7   Útest_binomialù  s   
þ
zTestRandomDist.test_binomialc                 C   óH   t  | j¡ t jddd�}t ddgddgdd	gg¡}t||d
d� d S )Nr„  r4  r®   g+Qð]uðO@gëòìÇ+Q@gY7`´ZqP@gÈe‡(fŒG@gþv¯t€R@gEIÈ‹R@é   r   )r   rh   Ú	chisquarer9   rd   r   r#  r6   r6   r7   Útest_chisquare  ó   
þ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@r4  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   rh   r9   rd   Ú	dirichletr   r   rW   )rM   Úalphar  r  Ú	bad_alphar6   r6   r7   Ú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 )Nr§  r¨  r[   r„   r   r…   r†   )
r9   rd   r   r   r«  r‡   rˆ   r   rV   r‰   rŠ   r6   r6   r7   Útest_dirichlet_size!  s   z"TestRandomDist.test_dirichlet_sizec                 C   s    t  ddg¡}tttj|ƒ d S )Nr©  rª  )r9   rd   r   rW   r   r«  )rM   r¬  r6   r6   r7   Útest_dirichlet_bad_alpha-  rZ   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)r§  g      ð¿r¨  r   r4  r®   )r9   rd   r   rh   r«  r•   r   )rM   rD   r¬  r–   r—   r6   r6   r7   Ú#test_dirichlet_alpha_non_contiguous2  s   ÿz2TestRandomDist.test_dirichlet_alpha_non_contiguousc                 C   r¢  )Ngï8EGrùñ?r4  r®   gN÷·Uñ?gbI0æð?gùVU\õº@gˆ:€ì3ù@g©ºUýå?g�Ÿ"qoû?r  r   )r   rh   Úexponentialr9   rd   r   r#  r6   r6   r7   Útest_exponential<  r¦  zTestRandomDist.test_exponentialc                 C   ó&   t tjdd�dƒ tttjdd� d S ©Nr   ©Úscaleç       €)r   r   r²  r   rW   rX   r6   r6   r7   Útest_exponential_0D  ó   z!TestRandomDist.test_exponential_0c                 C   r™  )Né   éM   r4  r®   g7¶„ó?gµ`j‹�ü?g6¶"+÷?gÜ³2>•‰ó?g‘cÍ>+Yð?g¡_}áS‚õ?r  r   )r   rh   Úfr9   rd   r   r#  r6   r6   r7   Útest_fH  ó   
þzTestRandomDist.test_fc                 C   r™  )Nrc   ra   r4  r®   gÔ�GMçš8@g §â”ÈŒ<@g˜	´":@gÂvÀñÇ#)@gZQø·?@gr‚‚[•¦@@é   r   )r   rh   Úgammar9   rd   r   r#  r6   r6   r7   Ú
test_gammaP  r¿  zTestRandomDist.test_gammac                 C   s*   t tjddd�dƒ tttjddd� d S )Nr   )rˆ   r·  r¸  )r   r   rÁ  r   rW   rX   r6   r6   r7   Útest_gamma_0X  s   zTestRandomDist.test_gamma_0c                 C   óD   t  | j¡ t jddd�}t ddgddgddgg¡}t||ƒ d S )	Nç_c97Ýš¿?r4  r®   rí   r}  é   rc   r»  )r   rh   r   r9   rd   r   r#  r6   r6   r7   Útest_geometric\  ó   
þ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   ƒ d S 1 sIw   Y  d S )NrŒ   r   r�   )	r   rW   r   r   r	   rº   r»   r9   rt   ©rM   r¿   r6   r6   r7   Útest_geometric_exceptionsd  s   
"ýz(TestRandomDist.test_geometric_exceptionsc                 C   r™  )NrÅ  ç       @r4  ©Úlocr·  r¯   gåûØ•ßÉ?g¨s0í Ö?gÊð#0÷¿gï(ôx”÷¿g-¶KÇD´ñ?géÅ¯p`@æ¿r  r   )r   rh   Úgumbelr9   rd   r   r#  r6   r6   r7   Útest_gumbeln  r¿  zTestRandomDist.test_gumbelc                 C   r´  rµ  )r   r   rÎ  r   rW   rX   r6   r6   r7   Útest_gumbel_0v  rº  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À  r4  r®   r   r~  rc   r   ra   rb   )ra   ra   ra   ra   r  r»  )r»  r»  r»  r»  )r   r   r   r   )r   rh   r   r9   rd   r   r#  r6   r6   r7   Útest_hypergeometricz  s&   
þ



z"TestRandomDist.test_hypergeometricc                 C   r™  )NrÅ  rË  r4  rÌ  gð¥ bÙOå?g¹Â¸ëÉçà?gpJmµú	@g{KÏ*Ët	@g•:^w-š«¿gˆY~oõûû?r  r   )r   rh   Úlaplacer9   rd   r   r#  r6   r6   r7   Útest_laplace”  r¿  zTestRandomDist.test_laplacec                 C   r´  rµ  )r   r   rÒ  r   rW   rX   r6   r6   r7   Útest_laplace_0œ  rº  zTestRandomDist.test_laplace_0c                 C   r™  )NrÅ  rË  r4  rÌ  g#€�K-zñ?g€îJš¬ë?g�92ÄÜ@gØ±ã÷[@gê#+^ÑÀË¿g¢¥-óâ@r  r   )r   rh   Úlogisticr9   rd   r   r#  r6   r6   r7   Útest_logistic   r¿  zTestRandomDist.test_logisticc                 C   r™  )NrÅ  rË  r4  )ÚmeanÚsigmar¯   g›ŽòÚÉ�0@goÎ,+4FB@gù�ƒ)Ê­6@g†§5éêæ?gnþxN—nP@g…©)‡úµU@r£  r   )r   rh   Ú	lognormalr9   rd   r   r#  r6   r6   r7   Útest_lognormal¨  r¿  zTestRandomDist.test_lognormalc                 C   s&   t tjdd�dƒ tttjdd� d S )Nr   )rØ  r[   r¸  )r   r   rÙ  r   rW   rX   r6   r6   r7   Útest_lognormal_0°  rº  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Æ€@õŒí?r4  )rr   r¯   r   r   rÆ  ra   )r   rh   r   r9   rd   r   r#  r6   r6   r7   Útest_logseries´  rÈ  zTestRandomDist.test_logseriesc                 C   s   t  d¡dks	J ‚d S )Nr   r[   )r   r   rX   r6   r6   r7   Útest_logseries_zero¼  rÛ   z"TestRandomDist.test_logseries_zeroÚvaluer}   rT   ç      ð?g      @c              	   C   s   t jdd��p t t¡� t |¡ W d   ƒ n1 sw   Y  t t¡� t t  |gd ¡¡ W d   ƒ n1 s<w   Y  t t¡� t t  |gd ¡d d d… ¡ W d   ƒ n1 saw   Y  W d   ƒ d S W d   ƒ d S 1 syw   Y  d S )NÚignore©Úinvalidr   r   )r9   Úerrstaterž   rŸ   rW   r   r   rd   )rM   rÞ  r6   r6   r7   Útest_logseries_exceptions¿  s   ÿþ"þú"ú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   r4  r®   )rb   ra   rc   rb   r   r   )rc   r   rí   r   r   r[   )ra   rb   ra   r   r   rb   )r   r[   rb   ra   r   rb   )rb   rb   r   rc   r   ra   )rb   ra   rb   r   ra   rb   )r   rh   r   r9   rd   r   r#  r6   r6   r7   Ú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ƒ �}t  ||¡ | t¡}t|ƒdksšJ ‚W d   ƒ n1 s¤w   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   r[   r   r4  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à  )Úcheck_validÚraiserM  r^   Úother)r   r[   r[   ra   )r   rh   Úmultivariate_normalr9   rd   r   r   r»   r   r   rW   r�   r	   rº   r¼   rq   Úeyer]  )	rM   r×  Úcovr¯   r  r  r¿   rÀ   Úmur6   r6   r7   Útest_multivariate_normalÖ  s`   
ÿÿÿü
ÿÿ
ý

ÿ
ÿ
ÿ
ÿz'TestRandomDist.test_multivariate_normalc                 C   r1  )Nr   g|ò°Pkš¿?r4  )Únrr   r¯   iP  iI  i|  ic  i  i‡  )r   rh   r   r9   rd   r   r#  r6   r6   r7   r¹   	  r;  z%TestRandomDist.test_negative_binomialc                 C   s`   t ƒ �#}| t¡ tttjdtjƒ tttjdtjgd ƒ W d   ƒ d S 1 s)w   Y  d S )Nr   r   )	r	   rº   r»   r   rW   r   r   r9   rt   rÉ  r6   r6   r7   Ú!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 )Nrc   r4  )ÚdfÚnoncr¯   gôûÖGë7@g!© ÈÜ´*@gž1}“z9?@g¹+é©¸™0@g26E_r#@g¦�I�!ó1@rÀ  r   r   rx   g�÷ô‹÷?g’šT¶ˆDÃ?gÀõ?Tƒ?gÍ+òqnlð?gÓ~|òùDÕ?gë°¬òÇÃ?r   g›{¿0¾1#@gpŽ§²rs'@gþ~;ïÑÓ$@g"‹†dIŽ@gö°Õöë÷*@gÑ}Ÿ'Á,@)r   rh   Únoncentral_chisquarer9   rd   r   r#  r6   r6   r7   Útest_noncentral_chisquare  s(   
þ
þ
þz(TestRandomDist.test_noncentral_chisquarec                 C   óL   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 )Nrc   r   r[   r4  )ÚdfnumÚdfdenrò  r¯   gŒ^ýíå~ö?gƒ/+c¢äÕ?g"¡®.ž@gü†Œ÷Ž´@g×7í§ŸþÛ?g»ŒE·Öò?rÀ  r   )r   rh   Únoncentral_fr9   rd   r   r#  r6   r6   r7   Útest_noncentral_f-  ó   
ÿ
þz TestRandomDist.test_noncentral_fc                 C   s0   t  | j¡ t jddtjd�}t |¡sJ ‚d S )Nrc   r   )rö  r÷  rò  )r   rh   rø  r9   rt   Úisnan)rM   r  r6   r6   r7   Útest_noncentral_f_nan6  s   z$TestRandomDist.test_noncentral_f_nanc                 C   r™  )NrÅ  rË  r4  rÌ  gíœ&&n@gO»G_Ê@gÜ~w²ø@gtÁÜûw]Õ¿gm&¨5ú½@gŒñ$È>Û@r  r   )r   rh   Únormalr9   rd   r   r#  r6   r6   r7   Útest_normal;  r¿  zTestRandomDist.test_normalc                 C   r´  rµ  )r   r   rý  r   rW   rX   r6   r6   r7   Útest_normal_0C  rº  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Å  r4  ©rD   r¯   gÅWò˜I£@gùÔ¨y–@gy£Ÿ]Ó0‰Ag1~ÖÒ\�AgåËíãša@gÑY„
²7Aé   )Únulp)r   rh   Úparetor9   rd   ÚtestingÚassert_array_almost_equal_nulpr#  r6   r6   r7   Útest_paretoG  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Å  r4  )Úlamr¯   r   r[   )r   rh   r   r9   rd   r   r#  r6   r6   r7   Útest_poissonV  rÈ  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   ƒ d S 1 sQw   Y  d S )Nr  rT   r   )r9   rÞ   rà   r   rW   r   r   r	   rº   r»   rt   )rM   ÚlambigÚlamnegr¿   r6   r6   r7   Útest_poisson_exceptions^  s   
"ýz&TestRandomDist.test_poisson_exceptionsc                 C   r¢  )NrÅ  r4  r   gõ;•'û”?gÜ´èwÞ*�?g×†5›Ø?gF¡GÙ?g ÆËD]?gýÞ$`°ÉÀ?r  r   )r   rh   Úpowerr9   rd   r   r#  r6   r6   r7   Ú
test_powerj  r¦  zTestRandomDist.test_powerc                 C   r¢  )Nr   r4  )r·  r¯   g"íu¨ÈÆ+@gîN$MBÄ*@g7v8Bô4@gêÿª55@geãˆ&@g~ŽÓ£ÌZ1@rÀ  r   )r   rh   Úrayleighr9   rd   r   r#  r6   r6   r7   Útest_rayleighr  r¦  zTestRandomDist.test_rayleighc                 C   r´  rµ  )r   r   r  r   rW   rX   r6   r6   r7   Útest_rayleigh_0z  rº  zTestRandomDist.test_rayleigh_0c                 C   óF   t  | j¡ t jdd�}t ddgddgddgg¡}t||d	d
� d S )Nr4  r®   gMo³DL®è?g6Ï([9ÀgðºrF=òí?gÉM'	-™ ÀgóV¼ëûÀgVA:ìQyÇ?r  r   )r   rh   Ústandard_cauchyr9   rd   r   r#  r6   r6   r7   Útest_standard_cauchy~  r%  z#TestRandomDist.test_standard_cauchyc                 C   r  )Nr4  r®   g°ö–Ü�Üî?gc!z¨ì?g&N˜¥"�@g¬NIàŠÇ@gFÇï>ú’ã?g¡~‚MEø?r  r   )r   rh   Ústandard_exponentialr9   rd   r   r#  r6   r6   r7   Útest_standard_exponential†  r%  z(TestRandomDist.test_standard_exponentialc                 C   r¢  )Nra   r4  )rˆ   r¯   g)§ž@g¾§Ä¾¤„@gd]‰,qÂ@gP‡kÌ{@g9B#Œ1@gÔÚv÷‡ @rÀ  r   )r   rh   Ústandard_gammar9   rd   r   r#  r6   r6   r7   Útest_standard_gammaŽ  r¦  z"TestRandomDist.test_standard_gammac                 C   r´  )Nr   )rˆ   r¸  )r   r   r  r   rW   rX   r6   r6   r7   Útest_standard_gamma_0–  rº  z$TestRandomDist.test_standard_gamma_0c                 C   r  )Nr4  r®   r'  r(  r)  r*  r+  r,  r  r   )r   rh   r°   r9   rd   r   r#  r6   r6   r7   Útest_standard_normalš  r%  z#TestRandomDist.test_standard_normalc                 C   s0   t  | j¡ t  ¡ }t d¡}t||dd� d S )Nr'  r  r   r.  r#  r6   r6   r7   Útest_randn_singleton¢  s   
z#TestRandomDist.test_randn_singletonc                 C   r¢  )Nr   r4  )rñ  r¯   g\VÔHÂï?gßhUÍ%›¶¿gÿH$ðMÏõ?güøüL›³á¿gV«qdz¥Ç¿gã–€Õý“ã?r  r   )r   rh   Ú
standard_tr9   rd   r   r#  r6   r6   r7   Útest_standard_t¨  r¦  zTestRandomDist.test_standard_tc                 C   rõ  )Ng{®Gáz@gö(\�Âu$@g×£p=
W4@r4  )ÚleftÚmodeÚrightr¯   g:§}ŒÂ\)@ghØ±TjÓ(@g‡Ç¨L‰30@g6Úœ™ÅA0@g6¤õ—sh&@gœí<Šáþ,@rÀ  r   )r   rh   Ú
triangularr9   rd   r   r#  r6   r6   r7   Útest_triangular°  rú  zTestRandomDist.test_triangularc                 C   r™  )Nç®Gáz®ó?g®Gáz%@r4  )ÚlowÚhighr¯   g>#¥HÃö@g£¨uºó@g•ï‡§Ý#@g„}d]#@gø†‰N¶õ@g­w)*ó @r  r   )r   rh   Úuniformr9   rd   r   r#  r6   r6   r7   Útest_uniform¹  r¿  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 )Nr‰   r   r[   g  Ø…W4vC)r#  r$  )
r9   Úfinforß   rà   r   r%  r   ÚOverflowErrorÚinfÚ	nextafter)rM   ÚfminÚfmaxÚfuncr6   r6   r7   Ú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                   @   ó   e Zd Zdd„ ZdS )zGTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloatc                 S   ó   t ‚r1   ©rV   rX   r6   r6   r7   Ú	__float__Ù  ó   zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloat.__float__N)rl   rm   rn   r2  r6   r6   r6   r7   ÚThrowingFloatØ  ó    r4  rß  c                   @   r/  )zITestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingIntegerc                 S   r0  r1   r1  rX   r6   r6   r7   Ú__int__á  r3  zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingInteger.__int__N)rl   rm   rn   r6  r6   r6   r6   r7   ÚThrowingIntegerà  r5  r7  r[   )	r9   Úndarrayrd   r  r   rV   r   r%  r   )rM   r4  Úthrowing_floatr7  Úthrowing_intr6   r6   r7   Ú!test_scalar_exception_propagationÑ  s   
ÿz0TestRandomDist.test_scalar_exception_propagationc                 C   r™  )Nr"  ç¤p=
×£ø?r4  ©rí  Úkappar¯   gL×üZI@g¦¢'N"@gÀ·…þkrØ?g”k=mœ@g�¹Ú‰ó?gÜ^Ì=�\ý?r  r   ©r   rh   Úvonmisesr9   rd   r   r#  r6   r6   r7   Útest_vonmisesç  r¿  zTestRandomDist.test_vonmisesc                 C   s2   t  | j¡ t jdddd�}tt |¡ ¡ ƒ d S )Nr}   gg5_PŸG>é@B r=  )r   rh   r@  r   r9   Úisfiniter€   ©rM   Úrr6   r6   r7   Ú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 )Nr}   g    ÐcAra   r=  )g  AÔü^>?g @’ÌR7?g x¢.¿rí   r   r?  r#  r6   r6   r7   Útest_vonmises_largeõ  s   z"TestRandomDist.test_vonmises_largec                 C   s.   t  | j¡ t jdtjd�}tt |¡ƒ d S )Nr}   )rí  r>  )r   rh   r@  r9   rt   r   rû  rD  r6   r6   r7   Útest_vonmises_nanþ  s   z TestRandomDist.test_vonmises_nanc                 C   r™  )Nr"  r<  r4  )r×  r·  r¯   gÉZ¥ƒ¢@g-ïŸg†@g¦8
ÄÖmÖ?gÃÎVP"ø?g`Vô áÎ?gx©^½&3Ì?rÀ  r   )r   rh   Úwaldr9   rd   r   r#  r6   r6   r7   Ú	test_wald  r¿  zTestRandomDist.test_waldc                 C   r¢  )Nr"  r4  r   g@–Ý6ï?g¦Óé]Aí?g(Ã1Ú¥Rþ?gù¤U þ?g“Í2§_uå?g^}-­Qö?r  r   )r   rh   Úweibullr9   rd   r   r#  r6   r6   r7   Útest_weibull  r¦  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   r»  r   r¸  )rD   )r   rh   r   rK  r9   rq   r   rW   rX   r6   r6   r7   Útest_weibull_0  s   zTestRandomDist.test_weibull_0c                 C   rÄ  )	Nr"  r4  r   éB   é   r[   ra   r£  )r   rh   r   r9   rd   r   r#  r6   r6   r7   Ú	test_zipf  rÈ  zTestRandomDist.test_zipfN)[rl   rm   rn   r¦   r$  r&  r0  r:  r?  r@  rB  rG  rH  rK  rO  rR  rV  rY  r[  rb  rd  rf  rh  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  Úparametrizer9   r*  rt   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;  rA  rF  rG  rH  rJ  rL  rM  rP  r6   r6   r6   r7   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   r  )NéÍ[r  rX   r6   r6   r7   r¦   $  r  zTestBroadcast.setup_methodc                 C   s   t  | j¡ d S r1   )r   rh   rX   r6   r6   r7   Ú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   r[   ©gºlö×÷á?g_x¤¥á?g=å*BNà?ra   rÀ  r   )r   r%  r9   rd   rT  r   )rM   r#  r$  r%  r  r  r6   r6   r7   r&  *  s   zTestBroadcast.test_uniformc                 C   ó–   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   r[   rT   )g-rö´@g¦Y®lõ@g-µ`¦wý?ra   rÀ  r   )r   rý  r9   rd   rT  r   r   rW   )rM   rÍ  r·  Ú	bad_scalerý  r  r  r6   r6   r7   rþ  :  ó   zTestBroadcast.test_normalc                 C   óÀ   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 )	Nr[   r   rT   r\   )gnÍQVfÉ?gV©‹šKB³?gv®`køÏ?ra   rÀ  r   )r   rš  r9   rd   rT  r   r   rW   )rM   rD   rE   Úbad_aÚbad_brš  r  r  r6   r6   r7   r›  M  ó    zTestBroadcast.test_betac                 C   óV   dg}dg}t j}t g d¢¡}|  ¡  ||d ƒ}t||dd� tt||d ƒ d S ©Nr[   rT   )gö.Ug¬Zè?gi Pr�qè?gçÅEKÌæ?ra   rÀ  r   )r   r²  r9   rd   rT  r   r   rW   )rM   r·  rW  r²  r  r  r6   r6   r7   r³  c  ó   zTestBroadcast.test_exponentialc                 C   r]  r^  )r   r  r9   rd   rT  r   r   rW   )rM   rˆ   Ú	bad_shapeÚ	std_gammar  r  r6   r6   r7   r  p  r_  z!TestBroadcast.test_standard_gammac                 C   rY  )	Nr[   r   rT   r\   )gö.Ug¬Zø?gi Pr�qø?gçÅEKÌö?ra   rÀ  r   )r   rÁ  r9   rd   rT  r   r   rW   )rM   rˆ   r·  r`  rW  rÁ  r  r  r6   r6   r7   rÂ  }  r\  zTestBroadcast.test_gammac                 C   rY  )	Nr[   r   rT   r\   )gb—�yÊœé?g»åoðÄë?gT¹æ7Í@ra   rÀ  r   )r   r½  r9   rd   rT  r   r   rW   )rM   rö  r÷  Ú	bad_dfnumÚ	bad_dfdenr½  r  r  r6   r6   r7   r¾  “  r\  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 ƒ¡¡sAJ ‚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   ra   rb   r   rT   r\   )gÈr±^G"@g/�*@g‹°�Ñ†š!@rÀ  r   )r   rø  r9   rd   rT  r   r€   rû  rt   r   rW   )
rM   rö  r÷  rò  rb  rc  Úbad_noncÚnonc_fr  r  r6   r6   r7   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;î%é?rŽ   r   r®   rÀ  r   )rT  r9   rd   r   rø  r   )rM   r  r  r6   r6   r7   Útest_noncentral_f_small_dfÌ  s   z(TestBroadcast.test_noncentral_f_small_dfc                 C   r]  )Nr[   rT   )g~¼}ÐN?â?g‘$FŽŸà?g'rS�èÀ?ra   rÀ  r   )r   r¤  r9   rd   rT  r   r   rW   )rM   rñ  Úbad_dfr¤  r  r  r6   r6   r7   r¥  Ò  r_  zTestBroadcast.test_chisquarec                 C   rY  )	Nr[   r   rT   r\   )g©ç wÌ "@g2øêWR@g�ˆâRY@ra   rÀ  r   )r   ró  r9   rd   rT  r   r   rW   )rM   rñ  rò  rg  rd  Únonc_chir  r  r6   r6   r7   rô  ß  r\  z'TestBroadcast.test_noncentral_chisquarec                 C   óh   dg}dg}t j}t g d¢¡}|  ¡  ||d ƒ}t||dd� tt||d ƒ ttt j|d ƒ d S )Nr[   rT   )gTÄò�@g~‹Fžl@gÆštø�pð?ra   rÀ  r   )r   r  r9   rd   rT  r   r   rW   )rM   rñ  rg  Útr  r  r6   r6   r7   r  õ  ó   zTestBroadcast.test_standard_tc                 C   rV  )Nr   r[   rT   )g´®W!è@gü�OBº¦ÀgÈ}Ç?àý¿ra   rÀ  r   )r   r@  r9   rd   rT  r   r   rW   )rM   rí  r>  Ú	bad_kappar@  r  r  r6   r6   r7   rA    rX  zTestBroadcast.test_vonmisesc                 C   ri  )Nr[   rT   )g&ƒ8¾?ò?g�e�âFXò?gªÕ‹Ë�Ÿð?ra   rÀ  r   )r   r  r9   rd   rT  r   r   rW   )rM   rD   rZ  r  r  r  r6   r6   r7   r    rk  zTestBroadcast.test_paretoc                 C   ri  r^  )r   rK  r9   rd   rT  r   r   rW   )rM   rD   rZ  rK  r  r  r6   r6   r7   rL  $  rk  zTestBroadcast.test_weibullc                 C   ri  )Nr[   rT   rU  ra   rÀ  r   )r   r  r9   rd   rT  r   r   rW   )rM   rD   rZ  r  r  r  r6   r6   r7   r  2  rk  zTestBroadcast.test_powerc                 C   rV  )Nr   r[   rT   )g:¨×BKc±?gÖ3®šk²?gî~qÉÁ“?ra   rÀ  r   )r   rÒ  r9   rd   rT  r   r   rW   )rM   rÍ  r·  rW  rÒ  r  r  r6   r6   r7   rÓ  @  rX  zTestBroadcast.test_laplacec                 C   rV  )Nr   r[   rT   )gÈ'�£ZyÑ?g÷dSO=Ñ?gÏ3Lõ1³Õ?ra   rÀ  r   )r   rÎ  r9   rd   rT  r   r   rW   )rM   rÍ  r·  rW  rÎ  r  r  r6   r6   r7   rÏ  S  rX  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   r[   rT   )gÂ“y±ÕÀ?gªÀJõR�Á?gþ
~Æ&‘£?ra   rÀ  r   rß  r}   )	r   rÕ  r9   rd   rT  r   r   rW   r   )rM   rÍ  r·  rW  rÕ  r  r  r6   r6   r7   rÖ  f  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   r[   rT   )gÄñò�ÏH"@g¼ùÜ®ƒÍ @gvv	ý²:@ra   rÀ  r   )r   rÙ  r9   rd   rT  r   r   rW   )rM   r×  rØ  Ú	bad_sigmarÙ  r  r  r6   r6   r7   rÚ  z  s   zTestBroadcast.test_lognormalc                 C   r]  )Nr[   rT   )gÝ±lËo½ó?gé/Ó‚´Æó?gz~ßRó?ra   rÀ  r   )r   r  r9   rd   rT  r   r   rW   )rM   r·  rW  r  r  r  r6   r6   r7   r  �  r_  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   r[   r   r\   )g@mò ‰e¾?g¸�`ŸIß¿?g¸‡|2‹í?ra   rÀ  r   r}   )r   rI  r9   rd   rT  r   r   rW   )rM   r×  r·  Úbad_meanrW  rI  r  r  r6   r6   r7   rJ  œ  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 )Nr[   ra   r   rb   )g,âP;bD @gºÁ±È%G @g,~S²¨ @rÀ  r   r   r}   g      4@g      9@)r   r   r9   rd   rT  r   r   rW   )rM   r  r  r  Úbad_left_oneÚbad_mode_oneÚbad_left_twoÚbad_mode_twor   r  r  r6   r6   r7   r!  ¶  sF   ÿÿ
ÿzTestBroadcast.test_triangularc           	      C   óâ   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 )Nr[   r   rT   ç      ø?©r[   r[   r[   ra   )r   r   r9   rd   rT  r   r   rW   )	rM   rï  rr   Úbad_nÚ	bad_p_oneÚ	bad_p_twoÚbinomr  r  r6   r6   r7   r¡  Þ  ó&   

zTestBroadcast.test_binomialc           	      C   rs  )Nr[   r   rT   rt  )r[   r   r[   ra   )r   r   r9   rd   rT  r   r   rW   )	rM   rï  rr   rv  rw  rx  Ú	neg_binomr  r  r6   r6   r7   r¹   õ  rz  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 )Nr[   rT   r   )r[   r[   r   ra   )
r   rJ   Ú_poisson_lam_maxr   r9   rd   rT  r   r   rW   )rM   Úmax_lamr  Úbad_lam_oneÚbad_lam_twor   r  r  r6   r6   r7   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�� tt|tj	ƒ tt|ddtj	gƒ W d   ƒ d S 1 sJw   Y  d S )Nr   r   )r   r   r[   ra   rà  rá  )
r   r   r9   rd   rT  r   r   rW   rã  rt   )rM   rD   rZ  r   r  r  r6   r6   r7   rP    s   
"þzTestBroadcast.test_zipfc                 C   óh   dg}dg}dg}t j}t g d¢¡}|  ¡  ||d ƒ}t||ƒ tt||d ƒ tt||d ƒ d S )Nr   rT   rt  r…   ra   )r   r   r9   rd   rT  r   r   rW   )rM   rr   rw  rx  Úgeomr  r  r6   r6   r7   rÇ  )  ó   
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 )Nr[   r   rT   r\   r   rb   ru  ra   r   r   é   )r   r   r9   rd   rT  r   r   rW   )rM   ÚngoodÚnbadÚnsampleÚ	bad_ngoodÚbad_nbadÚbad_nsample_oneÚbad_nsample_twoÚ	hypergeomr  r  r6   r6   r7   rÑ  6  sD   


z!TestBroadcast.test_hypergeometricc                 C   r€  )Nr   r   rT   ru  ra   )r   r   r9   rd   rT  r   r   rW   )rM   rr   rw  rx  r   r  r  r6   r6   r7   rÜ  ^  r‚  zTestBroadcast.test_logseriesN)#rl   rm   rn   r¦   rT  r&  rþ  r›  r³  r  rÂ  r¾  rù  rf  r¥  rô  r  rA  r  rL  r  rÓ  rÏ  rÖ  rÚ  r  rJ  r!  r¡  r¹   r  rP  rÇ  rÑ  rÜ  r6   r6   r6   r7   rR  !  sB    #((rR  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 )Nrb   )rP   ÚseedsrX   r6   r6   r7   r¦   o  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||ƒ d S t||ƒ d S )	Nr   )ÚThreadc                    s&   g | ]\}}ˆ ˆt  |¡|fd �‘qS ))ÚtargetÚargs)r   rJ   )rs  rN   Úo©rŽ  Úfunctionr6   r7   ru  y  s    ÿz-TestThread.check_function.<locals>.<listcomp>c                 S   ó   g | ]}|  ¡ ‘qS r6   )Ústart©rs  r‚   r6   r6   r7   ru  {  rv  c                 S   r”  r6   )Újoinr–  r6   r6   r7   ru  |  rv  rb   Úwin32)Ú	threadingrŽ  r9   r]  r¼   r�  Úzipr   rJ   Úintpr_   Úitemsizerý   Úplatformr   r   )rM   r“  ÚszÚout1Úout2rj  rN   r‘  r6   r’  r7   Úcheck_functionr  s   
ÿzTestThread.check_functionc                 C   ó   dd„ }| j |dd� d S )Nc                 S   s   | j dd�|d< d S )Né'  r®   .)rý  ©r?   Úoutr6   r6   r7   Ú
gen_random‰  r|   z*TestThread.test_normal.<locals>.gen_random)r£  ©rž  ©r¡  ©rM   r¦  r6   r6   r7   rþ  ˆ  ó   zTestThread.test_normalc                 C   r¢  )Nc                 S   s   | j t d¡d�|d< d S )N©r   rH   r¶  .)r²  r9   re  r¤  r6   r6   r7   r¦  �  s   z'TestThread.test_exp.<locals>.gen_randomr«  r§  r¨  r©  r6   r6   r7   Útest_expŽ  rª  zTestThread.test_expc                 C   r¢  )Nc                 S   s   | j ddgd dd�|d< d S )Nr   rå  r   r£  r®   .)r   r¤  r6   r6   r7   r¦  •  s   z/TestThread.test_multinomial.<locals>.gen_random)r£  r   r§  r¨  r©  r6   r6   r7   ræ  ”  rª  zTestThread.test_multinomialN)rl   rm   rn   r¦   r¡  rþ  r¬  ræ  r6   r6   r6   r7   rŒ  l  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   ra   rb   r{  )r9   rd   ÚargOneÚargTwoÚargThreeÚtgtShaperX   r6   r6   r7   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 ]}||v r1|t dg¡ƒ}n|| jƒ}t|j| jƒ q"d S r¸   )r   r²  r  r¤  r  r  rK  r  r  r   r   r   r   r9   rd   r®  r   rˆ   r±  )rM   ÚfuncsÚ	probfuncsr-  r¥  r6   r6   r7   Ú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 r3t dg¡}n| j}|| j|ƒ}t|j| jƒ || jd |ƒ}t|j| jƒ || j|d ƒ}t|j| jƒ q&d S )Nr   r   )r   r%  rý  rš  rÁ  r½  ró  r@  rÒ  rÎ  rÕ  rÙ  rI  r   r   r9   rd   r¯  r®  r   rˆ   r±  )rM   r²  r³  r-  r¯  r¥  r6   r6   r7   Útest_two_arg_funcs¶  s(   úòz*TestSingleEltArrayInput.test_two_arg_funcsc                 C   s†   t jt jt jg}|D ]6}|| 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   rˆ   r±  )rM   r²  r-  r¥  r6   r6   r7   Útest_three_arg_funcsÑ  s   ÿøz,TestSingleEltArrayInput.test_three_arg_funcsN)rl   rm   rn   r¦   r´  rµ  r·  r6   r6   r6   r7   r­  œ  s
    r­  c                 C   sD   t  d¡ | \}}}tt |ƒ}||ddiŽ}t|jt d¡kƒ d S )NrS  r¯   r   r  )r   rh   Úgetattrr   r_   r9   )r8   Úfnamer�  r  r½  r  r6   r6   r7   Útest_integer_dtypeá  s
   


rº  c                 C   sd   t  d¡ | \}}}tt |ƒ}||ddiŽ}tjdkr| ¡ }t | t	j
¡¡ ¡ }t||kƒ d S )NrS  r¯   rB  rü   )r   rh   r¸  rý   rþ   rÿ   r   r  r  r9   rø   r  r   )r8   r¹  r�  r  r½  r  r  r6   r6   r7   Útest_integer_repeaté  s   



r»  c                   C   sÄ   t  t¡� tjdddgdd� W d   ƒ n1 sw   Y  t  t¡� tjddgddd� W d   ƒ n1 s9w   Y  t  t¡� tjddgddgdd� W d   ƒ d S 1 s[w   Y  d S )Nr[   rT  gffffffæ?)r   r[   r®   r   )rž   rŸ   rW   r   r   r6   r6   r6   r7   Útest_broadcast_size_errorô  s   ÿÿ"ÿr¼  c                  C   sÐ   t j tdƒ¡} |  d¡ |  ¡ \}}}|d d… dksJ ‚||d 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   r[   )r   FrÃ   r>   r?   r@   rA   rB   rC   )
r9   r   rJ   r   r°   Ú
__reduce__r©   r¥   r   r   )ri   Úctorr�  Ústate_arE   Ústate_br6   r6   r7   Ú&test_randomstate_ctor_old_style_pickleþ  s   

rÁ  c                 C   sR   t j d¡}|j}t j |¡ tt jjjjt	|ƒƒsJ ‚t j 
¡ }||u s'J ‚d S r¶  )r9   r   Údefault_rngr>   r;   r½   ÚmtrandÚ_randÚ_bit_generatorr  r:   )r=   Údef_bgÚbgÚ	second_bgr6   r6   r7   Útest_hot_swap  s   
rÉ  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s<J ‚|d d |d d ksJJ ‚d S )	Nr   FrÃ   r[   r>   r   r?   Úinc)r   r9   r   r;   r¥   rh   Úprint)r=   rÇ  r?   rÆ   r6   r6   r7   Ú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   ƒ d S 1 s(w   Y  d S )Nr   zstate must be for a PCG64r›   )	r9   r   r¥   r   r;   rž   rŸ   rW   r©   )r=   r?   rÇ  r6   r6   r7   Ú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s0J ‚q$t j d¡ t j ddd¡}t  ||k¡rHJ ‚|j}|d d |d d ksYJ ‚|d d |d d ksgJ ‚d S )	NéÍ� r   é   @r   FrÃ   r?   rÊ  )	r9   r   rh   rK   r   r?   r;   r¥   r€   )r=   rî   rÇ  r?   Ústate_directÚfieldÚpcg_valsrÆ   r6   r6   r7   Útest_swap_worked2  s    rÓ  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   )r9   r   r;   r   rK   rJ   r   )r=   Úsingleton_valsÚrgÚnon_singleton_valsr6   r6   r7   Ú%test_swapped_singleton_against_directD  s
   r×  )3r   rÉ   rý   rD  Únumpyr9   rž   Únumpy.testingr   r   r   r   r   r   r   r	   r
   Únumpy.randomr   r   r   re  r3   rÞ   rp   rà   r4   Úfixturer8   r=   rF   rG   ro   rv   r¢   r×   r  rR  r  r  rŒ  r­  rº  r»  r¼  rÁ  rÉ  rÌ  rÍ  rÓ  r×  r6   r6   r6   r7   Ú<module>   s�    ,ù
ù
ù

/8W "      q    O/E
	