o
    V=ºiáG ã                	   @   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 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 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d%d&„ ZG d'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$G d7d8„ d8ƒZ%d9d:„ Z&d;d<„ Z'd=d>„ Z(dS )?é    N)Úassert_Úassert_raisesÚassert_equalÚassert_warnsÚassert_no_warningsÚassert_array_equalÚassert_array_almost_equalÚsuppress_warnings)Ú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)ZscopeÚparamsc                 C   s   | j t| j  t| j  fS ©N)ÚparamÚ	INT_FUNCSÚINT_FUNC_HASHES)Úrequest© r$   úiC:\Users\psant\Downloads\PAF backend\school\venv\Lib\site-packages\numpy/random/tests/test_randomstate.pyÚint_func2   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_equal8   s
   r/   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_scalarA   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   r1   iÔ  r   iÍ  r2   i	  )r   r3   Úranger   r4   ÚnpÚaranger5   r$   r$   r%   Ú
test_arrayG   s   zTestSeed.test_arrayc                 C   s    t ttjdƒ t ttjdƒ d S )Nç      à¿éÿÿÿÿ©r   Ú	TypeErrorr   r3   Ú
ValueError©r6   r$   r$   r%   Útest_invalid_scalarQ   ó   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 )Nr=   r>   r   )é   r   r   )rE   éþÿÿÿr   r?   rB   r$   r$   r%   Útest_invalid_arrayV   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©rE   r   é   )é   é   r   )r   rA   r   r3   r:   ÚarrayÚint64rB   r$   r$   r%   Útest_invalid_array_shape^   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   r3   r   r   r@   Úseed)r6   Úrsr$   r$   r%   Útest_cannot_seedf   s   
"ÿzTestSeed.test_cannot_seedc                 C   s   t ttjtƒ d S r   )r   rA   r   r3   r
   rB   r$   r$   r%   Útest_invalid_initializationk   s   z$TestSeed.test_invalid_initializationN)
Ú__name__Ú
__module__Ú__qualname__r8   r<   rC   rG   rP   rT   rU   r$   r$   r$   r%   r0   @   s    
r0   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   ÚintrH   )r   r   rE   r   )r:   Úzerosr   r   r   r   )r6   r[   Úpr$   r$   r%   Útest_n_zerop   s
   þzTestBinomial.test_n_zeroc                 C   s   t ttjdtjƒ d S )NrE   )r   rA   r   r   r:   ÚnanrB   r$   r$   r%   Útest_p_is_nany   s   zTestBinomial.test_p_is_nanN)rV   rW   rX   r]   r_   r$   r$   r$   r%   rY   o   s    	rY   c                   @   sL   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S )ÚTestMultinomialc                 C   s   t  dddg¡ d S )Nr   çš™™™™™É?çš™™™™™é?©r   r   rB   r$   r$   r%   Ú
test_basic   ó   zTestMultinomial.test_basicc                 C   s   t  dg d¢¡ d S )Nr   )ra   rb   ç        rf   rf   rc   rB   r$   r$   r%   Útest_zero_probability‚   re   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éûÿÿÿr>   rM   )r   r   r4   r:   Úall©r6   Ú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   rE   ©rE   r   r   ©r   r   r   ©r   r   )
r   r   r   r:   Úuint32ÚshaperN   r   r@   Úfloat©r6   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   çš™™™™™ñ?ra   çš™™™™™¹¿çÍÌÌÌÌÌì?©r   rA   r   r   rB   r$   r$   r%   Útest_invalid_prob™   s   z!TestMultinomial.test_invalid_probc                 C   s   t ttjdddgƒ d S )Nr>   rb   ra   rx   rB   r$   r$   r%   Ú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      .@rE   rK   iÛ iUr   )Úpvals)r:   r;   Úsumr   rR   r   Úascontiguousarrayr   )r6   r\   r|   Ú
non_contigÚcontigr$   r$   r%   Ú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ƒ   rH   z-[\w\s]*pvals array is cast to 64-bit floating)ÚmatchrE   )	r:   rN   Úfloat32r}   ÚpytestÚraisesrA   r   r   )r6   rk   r|   r„   r$   r$   r%   Útest_multinomial_pvals_float32ª   s   
ÿ"ÿz.TestMultinomial.test_multinomial_pvals_float32N)rV   rW   rX   rd   rg   rl   rt   ry   rz   r�   rˆ   r$   r$   r$   r%   r`   ~   s    
r`   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)rR   r   r3   Úrandom_stateÚ	get_stater(   rB   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:   ri   ©r6   ÚoldÚnewr$   r$   r%   rd   ¹   s   zTestSetState.test_basicc                 C   s@   | j jdd�}| j  | j¡ | j jdd�}tt ||k¡ƒ d S ©NrK   ©Úsize)r‹   Ústandard_normalr�   r(   r   r:   ri   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:   ri   )r6   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 )NrF   rŽ   r•   )r(   r‹   r—   r�   r   r:   ri   )r6   Ú	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   rB   r$   r$   r%   Ú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 )NrE   r'   r   )r   r3   r   r	   ÚrecordÚRuntimeWarningrŒ   r   ÚlenÚ
isinstanceÚdict)r6   rS   Ú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)ÚUnknownrE   rH   F©Úlegacyr'   )	r‹   rŒ   r   rA   r�   r@   r:   rN   Úobject)r6   r(   Z	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¨   r+   rE   )
r‹   rR   Úrandom_sampler—   rŒ   r   ÚpickleÚloadsÚdumpsr/   )r6   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Œ   r/   )r6   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‹   Ú
startswithrB   r$   r$   r%   Ú	test_repr  r{   zTestSetState.test_reprN)rV   rW   rX   r�   rd   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 ©NrE   rH   )r   r@   Úrfuncrr   rB   r$   r$   r%   Ú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   rE   rH   )	Úityper:   Úbool_ÚiinfoÚminÚmaxr   rA   r¹   )r6   ÚdtÚlbndÚubndr$   r$   r%   Ú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   rE   r1   ©r–   rI   )r¼   r:   r½   r¾   r¿   rÀ   r   r¹   )r6   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 rdnt |¡jd }z
| j|||d� W q ty? } ztdt	|ƒ ƒ‚d }~ww d S )Nr   r   rE   rH   zMNo error should have been raised, but one was with the following message:

%s)
r¼   r:   r½   r¾   r¿   rÀ   r¹   Ú	ExceptionÚAssertionErrorÚstr)r6   rÁ   rÂ   rÃ   Úer$   r$   r%   Útest_full_range,  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 )NrE   )rL   é   rŽ   r   i   rÅ   r   )	r   rR   r¼   r¹   r   rÀ   r¿   r:   r½   )r6   rÁ   rÃ   Úvalsr$   r$   r%   Útest_in_bounds_fuzz:  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 )NZ@509aea74d792fb931784c4b0135392c65aec64beee12b0cc167548a2c3d31e71Z@7b07f1a920e46f6d0fe02314155a2330bcfd7635e708da50e536c5ebb631a7d4Z@e577bfed6c935de944424667e3da285012e741892dcb7051a8f1ce68ab05c92fZ@0fbead0b06759df2cfb55e43148822d4a1ff953c7eb19a5b08445a63bb64fa9eZ@001aac3a5acb935a9b186cbe14a1ca064b8bb2dd0b045d48abeacf74d0203404)	ÚboolÚint16Úint32rO   Úint8Úuint16rp   Úuint64Úuint8rE   rQ   Úlittler   r   r1   rÅ   r   )r¼   r   rR   ÚsysÚ	byteorderr¹   ÚbyteswapÚhashlibÚsha256Úviewr:   rÓ   Ú	hexdigestr   rI   ÚnamerÐ   )r6   rÆ   rÁ   ÚvalÚresr$   r$   r%   Útest_repeatabilityI  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)rM   rK   rK   i90  r>   r   rE   )r2   r   l       r•   )r:   rN   r   rR   r¹   r   )r6   Údesiredr–   rk   r$   r$   r%   Ú.test_repeatability_32bit_boundary_broadcastingi  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¸   )r:   rO   r¾   rÀ   rÕ   r   r4   r   )r6   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 rdnt |¡jd }| j|||d�}t|jt |¡ƒ qt	t
tjjfD ]3}|t	u rBdnt |¡j}|t	u rNdnt |¡jd }| j|||d�}tt|dƒ ƒ tt|ƒ|ƒ q:d S )Nr   r   rE   rH   rI   )r¼   r:   r½   r¾   r¿   rÀ   r¹   r   rI   rÐ   rZ   ÚcompatÚlongr   ÚhasattrÚtype)r6   rÁ   rÂ   rÃ   Úsampler$   r$   r%   Útest_respect_dtype_singleton˜  s   
ùz(TestRandint.test_respect_dtype_singletonN)rV   rW   rX   r   r4   r¹   r:   r½   rÓ   rÖ   rÑ   rÔ   rÒ   rp   rO   rÕ   r¼   rº   rÄ   rÇ   rÌ   rÏ   râ   r†   ÚmarkZ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   ó
   d| _ d S rŠ   ©rR   rB   r$   r$   r%   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 )NrK   r   ç_®\±*Íã?ç�›˜¬”îâ?ç<î�pì?ç®,º¥oˆì?çˆÂÉHÝ?çZ±­°êæè?é   ©Údecimal)r   rR   Úrandr:   rN   r   ©r6   rç   rå   r$   r$   r%   Ú	test_rand²  ó   
þzTestRandomDist.test_randc                 C   s*   t  | j¡ t  ¡ }d}t||dd� d S )Nrô   rú   rû   )r   rR   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 )NrK   r   çÿ!ã<Oqõ?ç4ð�u,Íû?çÁ³½3Ûû÷?çL«I/DÍ¿çà@ËÀŽ? @çÿHSÓ\@rú   rû   ©r   r   ©r   rR   Zrandnr:   rN   r   rþ   r$   r$   r%   Ú
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   ©rK   r   r•   é   rK   éÌÿÿÿé)   éÐÿÿÿé¾ÿÿÿ)r   rR   r4   r:   rN   r   rþ   r$   r$   r%   Ú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 )Nr  r  r  r•   rE   r  rK   r  r  r  r  éÆ   r   )r   rR   r	   rŸ   ÚDeprecationWarningÚrandom_integersr   r¡   r:   rN   r   )r6   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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 )Nr  r•   iÿÿÿiÁª4OiÿË•+i³RºKiriFbÀqi™‡ÀrH   l   ÿK+W+¥y l   r&&ÌJÒ] l   ™�;	 l   Õ‹nBz l   ž@XÓHŒT l   D+l++Ý r  )r   rR   r3   r�   r:   r¾   rZ   rÀ   rN   rO   r   )r6   rS   rç   rå   r$   r$   r%   Ú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ã   rE   )r	   rŸ   r  r   r  r:   r¾   rÀ   r   r¡   r   rI   rì   )r6   r¤   r¥   rç   rå   Ztyperr$   r$   r%   Ú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  r:   r¾   rÀ   rB   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   rR   r¬   r:   rN   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 )NrL   )r   rK   r   rK   ©r   rR   Úchoicer:   rN   r   rþ   r$   r$   r%   Útest_choice_uniform_replace*  s   z*TestRandomDist.test_choice_uniform_replacec                 C   s<   t  | j¡ t jddg d¢d�}t g d¢¡}t||ƒ d S )NrL   )çš™™™™™Ù?r%  çš™™™™™¹?r&  ©r\   )rE   rE   r   r   r"  rþ   r$   r$   r%   Útest_choice_nonuniform_replace0  s   z-TestRandomDist.test_choice_nonuniform_replacec                 C   s8   t  | j¡ t jdddd�}t g d¢¡}t||ƒ d S )NrL   rK   F©Úreplace)r   rE   rK   r"  rþ   r$   r$   r%   Útest_choice_uniform_noreplace6  ó   z,TestRandomDist.test_choice_uniform_noreplacec                 C   s>   t  | j¡ t jdddg d¢d�}t g d¢¡}t||ƒ d S )NrL   rK   F)r&  ç333333Ó?r   r&  ©r*  r\   )r   rK   rE   r"  rþ   r$   r$   r%   Ú test_choice_nonuniform_noreplace<  s   z/TestRandomDist.test_choice_nonuniform_noreplacec                 C   s8   t  | j¡ t  g d¢d¡}t g d¢¡}t||ƒ d S )N)r-   r.   ÚcÚdrL   )r0  r1  r0  r1  r"  rþ   r$   r$   r%   Útest_choice_nonintegerB  r,  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 )Nr>   rK   ç      @rE   r   rL   )rE   r   rK   rL   g      Ð?r'  )r%  r%  ra   ru   rv   r%  rJ   Fr)  rF   )r>   )r>   rE   )rE   r   r   r.  )r   r#  r   rA   )r6   rí   r$   r$   r%   Útest_choice_exceptionsH  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&  rw   r   Tr)  Fr.  rE   rH   r   )r   rK   )r&  r&  r&  r&  r%  ra   r   )rK   r   rL   r•   iöÿÿÿ)r   r   r-   r.   )r   r:   Zisscalarr   r#  rN   Úemptyrª   ÚtupleÚndimÚitemr   rq   r;   r4   r   rA   )r6   r\   r-   Zarrr7   r$   r$   r%   Útest_choice_return_shape[  sL    ÿz'TestRandomDist.test_choice_return_shapec                 C   s,   t  g d¢¡}g d¢}tttj||d� d S )N)é*   rE   r   )NNNr'  )r:   rN   r   rA   r   r#  )r6   r-   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   rM   r3  rE   r   rK   r'  )r:   Úonesr   rR   r#  r~   r   )r6   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   rR   Ú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||ƒ q#d S )Nc                 S   s
   t  g ¡S r   )r:   rN   ©rk   r$   r$   r%   Ú<lambda>   s   
 z-TestRandomDist.test_shuffle.<locals>.<lambda>c                 S   s   | S r   r$   r@  r$   r$   r%   rA  ¡  s    c                 S   ó   t  | ¡ t j¡S r   )r:   ÚasarrayÚastyperÓ   r@  r$   r$   r%   rA  ¢  ó    c                 S   rB  r   )r:   rC  rD  r…   r@  r$   r$   r%   rA  £  rE  c                 S   rB  r   )r:   rC  rD  Z	complex64r@  r$   r$   r%   rA  ¤  rE  c                 S   s   t  | ¡ t¡S r   )r:   rC  rD  rª   r@  r$   r$   r%   rA  ¥  ó    c                 S   s   dd„ | D ƒS )Nc                 S   ó   g | ]}||f‘qS r$   r$   ©Ú.0Úir$   r$   r%   Ú
<listcomp>¦  ó    úATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>r$   r@  r$   r$   r%   rA  ¦  s    c                 S   s   t  dd„ | D ƒ¡S )Nc                 S   s   g | ]}||g‘qS r$   r$   rH  r$   r$   r%   rK  §  rL  rM  )r:   rC  r@  r$   r$   r%   rA  §  rL  c                 S   s   t  | | g¡jS r   )r:   ZvstackÚTr@  r$   r$   r%   rA  ¨  rF  c                 S   s*   t  dd„ | D ƒdtfdtfg¡ t j¡S )Nc                 S   rG  r$   r$   rH  r$   r$   r%   rK  ª  rL  rM  r-   r.   )r:   rC  rZ   rÝ   Zrecarrayr@  r$   r$   r%   rA  ª  s    ÿ
c                 S   s(   t  dd„ | D ƒdtdfdt jdfg¡S )Nc                 S   rG  r$   r$   rH  r$   r$   r%   rK  ®  rL  rM  r-   ©rE   r.   )r:   rC  rª   rÒ   r@  r$   r$   r%   rA  ®  s
    
ÿÿ©
rE   r   rK   rL   rM   r   é   rÍ   é	   r   ©
r   rE   rR  r   r   rL   rM   rÍ   rQ  rK   )r   rR   Úshuffler   )r6   Ú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 ]2}t |¡ t	t
|j|j  ƒt
|j|j  ƒƒ t |¡ t	t
|j|j  ƒt
|j|j  ƒƒ q+dd„ }d S )	Nr   )rM   rL   rK   rE   r>   é2   c                 S   s   t  d¡}tttj|ƒ d S )NrK   )r:   rN   r   r@   r   rT  rj   r$   r$   r%   Útest_shuffle_invalid_objectsÆ  s   
zHTestRandomDist.test_shuffle_masked.<locals>.test_shuffle_invalid_objects)r:   ÚmaZmasked_valuesZreshaper9   r;   Úcopyr   rT  r   ÚsortedÚdataÚmask)r6   r-   r.   Za_origZb_origrJ  rY  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 )NrP  rS  Zabcdg333333ó?r   )
rR  r   rÍ   rM   rE   rK   rL   rQ  r   r   )	r   rR   Zpermutationr   r:   Z
atleast_2drN  r   Ú
IndexError)r6   rV  rç   rå   Zarr_2dZ	bad_x_strZbad_x_floatZinteger_valr$   r$   r%   Ú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 )Nr&  rw   r  r•   gAàÁKÄ�?g‘ñØhA?g õÒ‡o¿>gÎ¬XfÈ+q?gSâë1Ã$?g'8zXŒ ?rú   rû   )r   rR   Úbetar:   rN   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•   é%   é+   r:  é0   é.   é-   )r   rR   r   r:   rN   r   rþ   r$   r$   r%   Ú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 )NrX  r  r•   g+Qð]uðO@gëòìÇ+Q@gY7`´ZqP@gÈe‡(fŒG@gþv¯t€R@gEIÈ‹R@é   rû   )r   rR   Ú	chisquarer:   rN   r   rþ   r$   r$   r%   Ú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@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   rR   r:   rN   Ú	dirichletr   r   rA   )r6   Ú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 )Nrp  rq  rE   rm   r   rn   ro   )
r:   rN   r   r   rt  rp   rq   r   r@   rr   rs   r$   r$   r%   Útest_dirichlet_size  s   z"TestRandomDist.test_dirichlet_sizec                 C   s    t  ddg¡}tttj|ƒ d S )Nrr  rs  )r:   rN   r   rA   r   rt  )r6   ru  r$   r$   r%   Útest_dirichlet_bad_alpha"  rD   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)rp  g      ð¿rq  r   r  r•   )r:   rN   r   rR   rt  r~   r   )r6   r-   ru  r   r€   r$   r$   r%   Ú#test_dirichlet_alpha_non_contiguous'  s   ÿz2TestRandomDist.test_dirichlet_alpha_non_contiguousc                 C   rk  )Ngï8EGrùñ?r  r•   gN÷·Uñ?gbI0æð?gùVU\õº@gˆ:€ì3ù@g©ºUýå?g�Ÿ"qoû?rú   rû   )r   rR   Úexponentialr:   rN   r   rþ   r$   r$   r%   Útest_exponential1  ro  zTestRandomDist.test_exponentialc                 C   ó&   t tjdd�dƒ tttjdd� d S ©Nr   ©Úscaleç       €)r   r   rz  r   rA   rB   r$   r$   r%   Útest_exponential_09  ó   z!TestRandomDist.test_exponential_0c                 C   rb  )Né   éM   r  r•   g7¶„ó?gµ`j‹�ü?g6¶"+÷?gÜ³2>•‰ó?g‘cÍ>+Yð?g¡_}áS‚õ?rú   rû   )r   rR   Úfr:   rN   r   rþ   r$   r$   r%   Útest_f=  ó   
þzTestRandomDist.test_fc                 C   rb  )NrM   rK   r  r•   gÔ�GMçš8@g §â”ÈŒ<@g˜	´":@gÂvÀñÇ#)@gZQø·?@gr‚‚[•¦@@é   rû   )r   rR   Úgammar:   rN   r   rþ   r$   r$   r%   Ú
test_gammaE  r‡  zTestRandomDist.test_gammac                 C   s*   t tjddd�dƒ tttjddd� d S )Nr   )rq   r  r€  )r   r   r‰  r   rA   rB   r$   r$   r%   Útest_gamma_0M  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Ýš¿?r  r•   rÍ   rQ  é   rM   rƒ  )r   rR   r   r:   rN   r   rþ   r$   r$   r%   Útest_geometricQ  ó   
þ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 )Nru   r   rv   )	r   rA   r   r   r	   rŸ   r    r:   r^   ©r6   r¤   r$   r$   r%   Útest_geometric_exceptionsY  s   
"ýz(TestRandomDist.test_geometric_exceptionsc                 C   rb  )Nr�  ç       @r  ©Úlocr  r–   gåûØ•ßÉ?g¨s0í Ö?gÊð#0÷¿gï(ôx”÷¿g-¶KÇD´ñ?géÅ¯p`@æ¿rú   rû   )r   rR   Úgumbelr:   rN   r   rþ   r$   r$   r%   Útest_gumbelc  r‡  zTestRandomDist.test_gumbelc                 C   r|  r}  )r   r   r–  r   rA   rB   r$   r$   r%   Útest_gumbel_0k  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ˆ  r  r•   r   rR  rM   r   rK   rL   )rK   rK   rK   rK   rú   rƒ  )rƒ  rƒ  rƒ  rƒ  )r   r   r   r   )r   rR   r   r:   rN   r   rþ   r$   r$   r%   Útest_hypergeometrico  s&   
þ



z"TestRandomDist.test_hypergeometricc                 C   rb  )Nr�  r“  r  r”  gð¥ bÙOå?g¹Â¸ëÉçà?gpJmµú	@g{KÏ*Ët	@g•:^w-š«¿gˆY~oõûû?rú   rû   )r   rR   Úlaplacer:   rN   r   rþ   r$   r$   r%   Útest_laplace‰  r‡  zTestRandomDist.test_laplacec                 C   r|  r}  )r   r   rš  r   rA   rB   r$   r$   r%   Útest_laplace_0‘  r‚  zTestRandomDist.test_laplace_0c                 C   rb  )Nr�  r“  r  r”  g#€�K-zñ?g€îJš¬ë?g�92ÄÜ@gØ±ã÷[@gê#+^ÑÀË¿g¢¥-óâ@rú   rû   )r   rR   Úlogisticr:   rN   r   rþ   r$   r$   r%   Útest_logistic•  r‡  zTestRandomDist.test_logisticc                 C   rb  )Nr�  r“  r  )ÚmeanÚsigmar–   g›ŽòÚÉ�0@goÎ,+4FB@gù�ƒ)Ê­6@g†§5éêæ?gnþxN—nP@g…©)‡úµU@rl  rû   )r   rR   Ú	lognormalr:   rN   r   rþ   r$   r$   r%   Ú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   rE   r€  )r   r   r¡  r   rA   rB   r$   r$   r%   Ú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Æ€@õŒí?r  )r\   r–   r   r   rŽ  rK   )r   rR   r   r:   rN   r   rþ   r$   r$   r%   Útest_logseries©  r�  zTestRandomDist.test_logseriesc                 C   s   t  d¡dks	J ‚d S )Nr   rE   )r   r   rB   r$   r$   r%   Útest_logseries_zero±  r»   z"TestRandomDist.test_logseries_zeroÚvaluerf   r>   ç      ð?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   )r:   Úerrstater†   r‡   rA   r   r   rN   )r6   r¦  r$   r$   r%   Ú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   r  r•   )rL   rK   rM   rL   r   r   )rM   r   rÍ   r   r   rE   )rK   rL   rK   r   r   rL   )r   rE   rL   rK   r   rL   )rL   rL   r   rM   r   rK   )rL   rK   rL   r   rK   rL   )r   rR   r   r:   rN   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ƒ �}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   rE   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&  rH   Úother)r   rE   rE   rK   )r   rR   Zmultivariate_normalr:   rN   r   r   r    r   r   rA   r…   r	   rŸ   r¡   r[   Zeyer5  )	r6   rŸ  Zcovr–   rç   rå   r¤   r¥   Úmur$   r$   r%   Útest_multivariate_normalË  s`   
ÿÿÿü
ÿÿ
ý

ÿ
ÿ
ÿ
ÿz'TestRandomDist.test_multivariate_normalc                 C   r  )Nr   g|ò°Pkš¿?r  )Únr\   r–   iP  iI  i|  ic  i  i‡  )r   rR   r   r:   rN   r   rþ   r$   r$   r%   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   rA   r   r   r:   r^   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 )NrM   r  )ÚdfÚnoncr–   gôûÖGë7@g!© ÈÜ´*@gž1}“z9?@g¹+é©¸™0@g26E_r#@g¦�I�!ó1@rˆ  rû   r   ra   g�÷ô‹÷?g’šT¶ˆDÃ?gÀõ?Tƒ?gÍ+òqnlð?gÓ~|òùDÕ?gë°¬òÇÃ?r   g›{¿0¾1#@gpŽ§²rs'@gþ~;ïÑÓ$@g"‹†dIŽ@gö°Õöë÷*@gÑ}Ÿ'Á,@)r   rR   Únoncentral_chisquarer:   rN   r   rþ   r$   r$   r%   Ú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 )NrM   r   rE   r  )ÚdfnumÚdfdenr¶  r–   gŒ^ýíå~ö?gƒ/+c¢äÕ?g"¡®.ž@gü†Œ÷Ž´@g×7í§ŸþÛ?g»ŒE·Öò?rˆ  rû   )r   rR   Únoncentral_fr:   rN   r   rþ   r$   r$   r%   Útest_noncentral_f"  ó   
ÿ
þz TestRandomDist.test_noncentral_fc                 C   s0   t  | j¡ t jddtjd�}t |¡sJ ‚d S )NrM   r   )rº  r»  r¶  )r   rR   r¼  r:   r^   Úisnan)r6   rç   r$   r$   r%   Útest_noncentral_f_nan+  s   z$TestRandomDist.test_noncentral_f_nanc                 C   rb  )Nr�  r“  r  r”  gíœ&&n@gO»G_Ê@gÜ~w²ø@gtÁÜûw]Õ¿gm&¨5ú½@gŒñ$È>Û@rú   rû   )r   rR   Únormalr:   rN   r   rþ   r$   r$   r%   Útest_normal0  r‡  zTestRandomDist.test_normalc                 C   r|  r}  )r   r   rÁ  r   rA   rB   r$   r$   r%   Útest_normal_08  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�  r  ©r-   r–   gÅWò˜I£@gùÔ¨y–@gy£Ÿ]Ó0‰Ag1~ÖÒ\�AgåËíãša@gÑY„
²7Aé   )Znulp)r   rR   Úparetor:   rN   ZtestingZassert_array_almost_equal_nulprþ   r$   r$   r%   Útest_pareto<  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   rE   )r   rR   r   r:   rN   r   rþ   r$   r$   r%   Útest_poissonK  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ã   r>   r   )r:   r¾   rÀ   r   rA   r   r   r	   rŸ   r    r^   )r6   ZlambigZlamnegr¤   r$   r$   r%   Útest_poisson_exceptionsS  s   
"ýz&TestRandomDist.test_poisson_exceptionsc                 C   rk  )Nr�  r  rÄ  gõ;•'û”?gÜ´èwÞ*�?g×†5›Ø?gF¡GÙ?g ÆËD]?gýÞ$`°ÉÀ?rú   rû   )r   rR   Úpowerr:   rN   r   rþ   r$   r$   r%   Ú
test_power_  ro  zTestRandomDist.test_powerc                 C   rk  )Nr   r  )r  r–   g"íu¨ÈÆ+@gîN$MBÄ*@g7v8Bô4@gêÿª55@geãˆ&@g~ŽÓ£ÌZ1@rˆ  rû   )r   rR   Úrayleighr:   rN   r   rþ   r$   r$   r%   Útest_rayleighg  ro  zTestRandomDist.test_rayleighc                 C   r|  r}  )r   r   rÍ  r   rA   rB   r$   r$   r%   Útest_rayleigh_0o  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 )Nr  r•   gMo³DL®è?g6Ï([9ÀgðºrF=òí?gÉM'	-™ ÀgóV¼ëûÀgVA:ìQyÇ?rú   rû   )r   rR   Zstandard_cauchyr:   rN   r   rþ   r$   r$   r%   Útest_standard_cauchys  r   z#TestRandomDist.test_standard_cauchyc                 C   rÐ  )Nr  r•   g°ö–Ü�Üî?gc!z¨ì?g&N˜¥"�@g¬NIàŠÇ@gFÇï>ú’ã?g¡~‚MEø?rú   rû   )r   rR   Zstandard_exponentialr:   rN   r   rþ   r$   r$   r%   Útest_standard_exponential{  r   z(TestRandomDist.test_standard_exponentialc                 C   rk  )NrK   r  )rq   r–   g)§ž@g¾§Ä¾¤„@gd]‰,qÂ@gP‡kÌ{@g9B#Œ1@gÔÚv÷‡ @rˆ  rû   )r   rR   Ústandard_gammar:   rN   r   rþ   r$   r$   r%   Útest_standard_gammaƒ  ro  z"TestRandomDist.test_standard_gammac                 C   r|  )Nr   )rq   r€  )r   r   rÓ  r   rA   rB   r$   r$   r%   Útest_standard_gamma_0‹  r‚  z$TestRandomDist.test_standard_gamma_0c                 C   rÐ  )Nr  r•   r  r  r  r  r  r  rú   rû   )r   rR   r—   r:   rN   r   rþ   r$   r$   r%   Ú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þ   r$   r$   r%   Útest_randn_singleton—  s   
z#TestRandomDist.test_randn_singletonc                 C   rk  )Nr   r  )rµ  r–   g\VÔHÂï?gßhUÍ%›¶¿gÿH$ðMÏõ?güøüL›³á¿gV«qdz¥Ç¿gã–€Õý“ã?rú   rû   )r   rR   Ú
standard_tr:   rN   r   rþ   r$   r$   r%   Útest_standard_t�  ro  zTestRandomDist.test_standard_tc                 C   r¹  )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   rR   Ú
triangularr:   rN   r   rþ   r$   r$   r%   Útest_triangular¥  r¾  zTestRandomDist.test_triangularc                 C   rb  )Nç®Gáz®ó?g®Gáz%@r  )ÚlowÚhighr–   g>#¥HÃö@g£¨uºó@g•ï‡§Ý#@g„}d]#@gø†‰N¶õ@g­w)*ó @rú   rû   )r   rR   Úuniformr:   rN   r   rþ   r$   r$   r%   Ú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 )Nrr   r   rE   g  Ø…W4vC)rà  rá  )
r:   Zfinfor¿   rÀ   r   râ  r   ÚOverflowErrorÚinfÚ	nextafter)r6   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                   @   ó   e Zd Zdd„ ZdS )zGTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloatc                 S   ó   t ‚r   ©r@   rB   r$   r$   r%   Ú	__float__Î  ó   zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloat.__float__N)rV   rW   rX   rì  r$   r$   r$   r%   ÚThrowingFloatÍ  ó    rî  r§  c                   @   ré  )zITestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingIntegerc                 S   rê  r   rë  rB   r$   r$   r%   Ú__int__Ö  rí  zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingInteger.__int__N)rV   rW   rX   rð  r$   r$   r$   r%   ÚThrowingIntegerÕ  rï  rñ  rE   )	r:   ZndarrayrN   rÝ   r   r@   r   râ  r   )r6   rî  Zthrowing_floatrñ  Zthrowing_intr$   r$   r%   Ú!test_scalar_exception_propagationÆ  s   
ÿz0TestRandomDist.test_scalar_exception_propagationc                 C   rb  )Nrß  ç¤p=
×£ø?r  ©r±  Úkappar–   gL×üZI@g¦¢'N"@gÀ·…þkrØ?g”k=mœ@g�¹Ú‰ó?gÜ^Ì=�\ý?rú   rû   ©r   rR   Úvonmisesr:   rN   r   rþ   r$   r$   r%   Útest_vonmisesÜ  r‡  zTestRandomDist.test_vonmisesc                 C   s2   t  | j¡ t jdddd�}tt |¡ ¡ ƒ d S )Nrf   gg5_PŸG>é@B rô  )r   rR   r÷  r   r:   Úisfiniteri   ©r6   Ú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 )Nrf   g    ÐcArK   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 )Nrf   )r±  rõ  )r   rR   r÷  r:   r^   r   r¿  rû  r$   r$   r%   Útest_vonmises_nanó  s   z TestRandomDist.test_vonmises_nanc                 C   rb  )Nrß  ró  r  )rŸ  r  r–   gÉZ¥ƒ¢@g-ïŸg†@g¦8
ÄÖmÖ?gÃÎVP"ø?g`Vô áÎ?gx©^½&3Ì?rˆ  rû   )r   rR   Úwaldr:   rN   r   rþ   r$   r$   r%   Ú	test_waldø  r‡  zTestRandomDist.test_waldc                 C   rk  )Nrß  r  rÄ  g@–Ý6ï?g¦Óé]Aí?g(Ã1Ú¥Rþ?gù¤U þ?g“Í2§_uå?g^}-­Qö?rú   rû   )r   rR   Úweibullr:   rN   r   rþ   r$   r$   r%   Útest_weibull   ro  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€  )r-   )r   rR   r   r  r:   r[   r   rA   rB   r$   r$   r%   Útest_weibull_0  s   zTestRandomDist.test_weibull_0c                 C   rŒ  )	Nrß  r  rÄ  éB   é   rE   rK   rl  )r   rR   r   r:   rN   r   rþ   r$   r$   r%   Ú	test_zipf  r�  zTestRandomDist.test_zipfN)[rV   rW   rX   r�   rÿ   r  r
  r  r  r  r  r   r!  r$  r(  r+  r/  r2  r4  r9  r;  r=  r?  rW  r_  ra  rd  rj  rn  rv  rw  rx  ry  r{  r�  r†  rŠ  r‹  r�  r’  r—  r˜  r™  r›  rœ  rž  r¢  r£  r¤  r¥  r†   rï   Zparametrizer:   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$   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   rñ   )NéÍ[rò   rB   r$   r$   r%   r�     ró   zTestBroadcast.setup_methodc                 C   s   t  | j¡ d S r   )r   rR   rB   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   rE   ©gºlö×÷á?g_x¤¥á?g=å*BNà?rK   rˆ  rû   )r   râ  r:   rN   r
  r   )r6   rà  rá  râ  rå   rç   r$   r$   r%   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   rE   r>   )g-rö´@g¦Y®lõ@g-µ`¦wý?rK   rˆ  rû   )r   rÁ  r:   rN   r
  r   r   rA   )r6   r•  r  Ú	bad_scalerÁ  rå   rç   r$   r$   r%   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 )	NrE   r   r>   rF   )gnÍQVfÉ?gV©‹šKB³?gv®`køÏ?rK   rˆ  rû   )r   rc  r:   rN   r
  r   r   rA   )r6   r-   r.   Úbad_aZbad_brc  rå   rç   r$   r$   r%   rd  B  ó    zTestBroadcast.test_betac                 C   óV   dg}dg}t j}t g d¢¡}|  ¡  ||d ƒ}t||dd� tt||d ƒ d S ©NrE   r>   )gö.Ug¬Zè?gi Pr�qè?gçÅEKÌæ?rK   rˆ  rû   )r   rz  r:   rN   r
  r   r   rA   )r6   r  r  rz  rå   rç   r$   r$   r%   r{  X  ó   zTestBroadcast.test_exponentialc                 C   r  r  )r   rÓ  r:   rN   r
  r   r   rA   )r6   rq   Ú	bad_shapeZ	std_gammarå   rç   r$   r$   r%   rÔ  e  r  z!TestBroadcast.test_standard_gammac                 C   r  )	NrE   r   r>   rF   )gö.Ug¬Zø?gi Pr�qø?gçÅEKÌö?rK   rˆ  rû   )r   r‰  r:   rN   r
  r   r   rA   )r6   rq   r  r  r  r‰  rå   rç   r$   r$   r%   rŠ  r  r  zTestBroadcast.test_gammac                 C   r  )	NrE   r   r>   rF   )gb—�yÊœé?g»åoðÄë?gT¹æ7Í@rK   rˆ  rû   )r   r…  r:   rN   r
  r   r   rA   )r6   rº  r»  Ú	bad_dfnumÚ	bad_dfdenr…  rå   rç   r$   r$   r%   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   rK   rL   r   r>   rF   )gÈr±^G"@g/�*@g‹°�Ñ†š!@rˆ  rû   )r   r¼  r:   rN   r
  r   ri   r¿  r^   r   rA   )
r6   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;î%é?rw   r   r•   rˆ  rû   )r
  r:   rN   r   r¼  r   )r6   rå   rç   r$   r$   r%   Útest_noncentral_f_small_dfÁ  s   z(TestBroadcast.test_noncentral_f_small_dfc                 C   r  )NrE   r>   )g~¼}ÐN?â?g‘$FŽŸà?g'rS�èÀ?rK   rˆ  rû   )r   rm  r:   rN   r
  r   r   rA   )r6   rµ  Úbad_dfrm  rå   rç   r$   r$   r%   rn  Ç  r  zTestBroadcast.test_chisquarec                 C   r  )	NrE   r   r>   rF   )g©ç wÌ "@g2øêWR@g�ˆâRY@rK   rˆ  rû   )r   r·  r:   rN   r
  r   r   rA   )r6   rµ  r¶  r  r  Znonc_chirå   rç   r$   r$   r%   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 )NrE   r>   )gTÄò�@g~‹Fžl@gÆštø�pð?rK   rˆ  rû   )r   rØ  r:   rN   r
  r   r   rA   )r6   rµ  r  Útrå   rç   r$   r$   r%   rÙ  ê  ó   zTestBroadcast.test_standard_tc                 C   r  )Nr   rE   r>   )g´®W!è@gü�OBº¦ÀgÈ}Ç?àý¿rK   rˆ  rû   )r   r÷  r:   rN   r
  r   r   rA   )r6   r±  rõ  Z	bad_kappar÷  rå   rç   r$   r$   r%   rø  ø  r  zTestBroadcast.test_vonmisesc                 C   r  )NrE   r>   )g&ƒ8¾?ò?g�e�âFXò?gªÕ‹Ë�Ÿð?rK   rˆ  rû   )r   rÆ  r:   rN   r
  r   r   rA   )r6   r-   r  rÆ  rå   rç   r$   r$   r%   rÇ    r  zTestBroadcast.test_paretoc                 C   r  r  )r   r  r:   rN   r
  r   r   rA   )r6   r-   r  r  rå   rç   r$   r$   r%   r    r  zTestBroadcast.test_weibullc                 C   r  )NrE   r>   r  rK   rˆ  rû   )r   rË  r:   rN   r
  r   r   rA   )r6   r-   r  rË  rå   rç   r$   r$   r%   rÌ  '  r  zTestBroadcast.test_powerc                 C   r  )Nr   rE   r>   )g:¨×BKc±?gÖ3®šk²?gî~qÉÁ“?rK   rˆ  rû   )r   rš  r:   rN   r
  r   r   rA   )r6   r•  r  r  rš  rå   rç   r$   r$   r%   r›  5  r  zTestBroadcast.test_laplacec                 C   r  )Nr   rE   r>   )gÈ'�£ZyÑ?g÷dSO=Ñ?gÏ3Lõ1³Õ?rK   rˆ  rû   )r   r–  r:   rN   r
  r   r   rA   )r6   r•  r  r  r–  rå   rç   r$   r$   r%   r—  H  r  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   rE   r>   )gÂ“y±ÕÀ?gªÀJõR�Á?gþ
~Æ&‘£?rK   rˆ  rû   r§  rf   )	r   r�  r:   rN   r
  r   r   rA   r   )r6   r•  r  r  r�  rå   rç   r$   r$   r%   rž  [  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   rE   r>   )gÄñò�ÏH"@g¼ùÜ®ƒÍ @gvv	ý²:@rK   rˆ  rû   )r   r¡  r:   rN   r
  r   r   rA   )r6   rŸ  r   Z	bad_sigmar¡  rå   rç   r$   r$   r%   r¢  o  s   zTestBroadcast.test_lognormalc                 C   r  )NrE   r>   )gÝ±lËo½ó?gé/Ó‚´Æó?gz~ßRó?rK   rˆ  rû   )r   rÍ  r:   rN   r
  r   r   rA   )r6   r  r  rÍ  rå   rç   r$   r$   r%   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   rE   r   rF   )g@mò ‰e¾?g¸�`ŸIß¿?g¸‡|2‹í?rK   rˆ  rû   rf   )r   r   r:   rN   r
  r   r   rA   )r6   rŸ  r  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 )NrE   rK   r   rL   )g,âP;bD @gºÁ±È%G @g,~S²¨ @rˆ  rû   r   rf   g      4@g      9@)r   rÝ  r:   rN   r
  r   r   rA   )r6   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   óâ   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 )NrE   r   r>   ç      ø?©rE   rE   rE   rK   )r   r   r:   rN   r
  r   r   rA   )	r6   r³  r\   Úbad_nÚ	bad_p_oneÚ	bad_p_twoZbinområ   rç   r$   r$   r%   rj  Ó  ó&   

zTestBroadcast.test_binomialc           	      C   r  )NrE   r   r>   r  )rE   r   rE   rK   )r   r   r:   rN   r
  r   r   rA   )	r6   r³  r\   r!  r"  r#  Z	neg_binområ   rç   r$   r$   r%   rž   ê  r$  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 )NrE   r>   r   )rE   rE   r   rK   )
r   r3   Z_poisson_lam_maxr   r:   rN   r
  r   r   rA   )r6   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�� tt|tj	ƒ tt|ddtj	gƒ W d   ƒ d S 1 sJw   Y  d S )Nr   r   )r   r   rE   rK   r¨  r©  )
r   r   r:   rN   r
  r   r   rA   r«  r^   )r6   r-   r  r   rå   rç   r$   r$   r%   r    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   r>   r  rn   rK   )r   r   r:   rN   r
  r   r   rA   )r6   r\   r"  r#  Zgeområ   rç   r$   r$   r%   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 )NrE   r   r>   rF   r   rL   r   rK   r   r   é   )r   r   r:   rN   r
  r   r   rA   )r6   ZngoodZnbadZnsampleZ	bad_ngoodZbad_nbadZbad_nsample_oneZbad_nsample_twoZ	hypergeområ   rç   r$   r$   r%   r™  +  sD   


z!TestBroadcast.test_hypergeometricc                 C   r%  )Nr   r   r>   r   rK   )r   r   r:   rN   r
  r   r   rA   )r6   r\   r"  r#  r   rå   rç   r$   r$   r%   r¤  S  r&  zTestBroadcast.test_logseriesN)#rV   rW   rX   r�   r
  rã  rÂ  rd  r{  rÔ  rŠ  r†  r½  r  rn  r¸  rÙ  rø  rÇ  r  rÌ  r›  r—  rž  r¢  rÎ  r  rÞ  rj  rž   rÉ  r  r�  r™  r¤  r$   r$   r$   r%   r    sB    #((r  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 )NrL   )r9   ÚseedsrB   r$   r$   r%   r�   c  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   r3   )rI  r7   Úo©r*  Úfunctionr$   r%   rK  m  s    ÿz-TestThread.check_function.<locals>.<listcomp>c                 S   ó   g | ]}|  ¡ ‘qS r$   )Ústart©rI  rk   r$   r$   r%   rK  o  rL  c                 S   r0  r$   )Újoinr2  r$   r$   r%   rK  p  rL  rL   Úwin32)Ú	threadingr*  r:   r5  r¡   r)  Úzipr   r3   ZintprI   ÚitemsizerØ   Úplatformr   r   )r6   r/  ÚszZout1Zout2r  r7   r-  r$   r.  r%   Úcheck_functionf  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(   Úoutr$   r$   r%   Ú
gen_random}  re   z*TestThread.test_normal.<locals>.gen_random)r<  ©r9  ©r:  ©r6   r?  r$   r$   r%   rÂ  |  ó   zTestThread.test_normalc                 C   r;  )Nc                 S   s   | j t d¡d�|d< d S )N©r   r1   r~  .)rz  r:   r<  r=  r$   r$   r%   r?  ƒ  s   z'TestThread.test_exp.<locals>.gen_randomrD  r@  rA  rB  r$   r$   r%   Útest_exp‚  rC  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=  r$   r$   r%   r?  ‰  s   z/TestThread.test_multinomial.<locals>.gen_random)r<  r   r@  rA  rB  r$   r$   r%   r®  ˆ  rC  zTestThread.test_multinomialN)rV   rW   rX   r�   r:  rÂ  rE  r®  r$   r$   r$   r%   r(  a  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   rK   rL   rO  )r:   rN   ÚargOneÚargTwoÚargThreeÚtgtShaperB   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 ]}||v r1|t dg¡ƒ}n|| jƒ}t|j| jƒ q"d S r�   )r   rz  rÓ  rm  rØ  rÆ  r  rË  rÍ  r   r   r   r   r:   rN   rG  r   rq   rJ  )r6   Ú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 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Á  rc  r‰  r…  r·  r÷  rš  r–  r�  r¡  r   r   r   r:   rN   rH  rG  r   rq   rJ  )r6   rK  rL  rç  rH  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 ]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   rG  rH  rI  r   rq   rJ  )r6   rK  rç  r>  r$   r$   r%   Útest_three_arg_funcsÅ  s   ÿøz,TestSingleEltArrayInput.test_three_arg_funcsN)rV   rW   rX   r�   rM  rN  rO  r$   r$   r$   r%   rF  �  s
    rF  c                 C   sD   t  d¡ | \}}}tt |ƒ}||ddiŽ}t|jt d¡kƒ d S )Nr	  r–   r   rã   )r   rR   Úgetattrr   rI   r:   )r&   Úfnamer,  rÜ   r…  rç   r$   r$   r%   Útest_integer_dtypeÕ  s
   


rR  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   rR   rP  rØ   rÙ   rÚ   rÛ   rÜ   rÝ   r:   rÓ   rÞ   r   )r&   rQ  r,  rÜ   r…  rà   rá   r$   r$   r%   Útest_integer_repeatÝ  s   



rS  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 )NrE   r-  gffffffæ?)r   rE   r•   r   )r†   r‡   rA   r   r   r$   r$   r$   r%   Útest_broadcast_size_errorè  s   ÿÿ"ÿrT  ))rÛ   r­   rØ   r  Znumpyr:   r†   Znumpy.testingr   r   r   r   r   r   r   r	   Znumpy.randomr
   r   r   r<  r!   r¾   rZ   rÀ   r"   Zfixturer&   r/   r0   rY   r`   r‰   r·   rð   r  r(  rF  rR  rS  rT  r$   r$   r$   r%   Ú<module>   s~    (ù
ù
ù
/5W "      q    O/E