o
    ðT·j(Ê ã                   @   s~  d dl Zd dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
 d dlmZ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mZmZ eeƒ ƒZd dddd	œd
dd	œdœddddd	œddd	œdœg d¢dddd	œddd	œdœgZejdddgd�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'd(„ d(ƒZ#G d)d*„ d*ƒZ$G d+d,„ d,ƒZ%G d-d.„ d.ƒZ&ej'j(ed/d0�G d1d2„ d2ƒƒZ)G d3d4„ d4ƒZ*ej' +d5e¡d6d7„ ƒZ,d8d9„ Z-d:d;„ Z.d<d=„ Z/ej' +d>d?d?gg¡ej' +dddg¡d@dA„ ƒƒZ0ej' +dBdCdDg¡dEdF„ ƒZ1ej' +dBdCdDg¡ej' +dGdHdIg¡ej' +dJej2ejg¡dKdL„ ƒƒƒZ3dMdN„ Z4dOdP„ Z5ej' +dQdRdSg¡dTdU„ ƒZ6dS )Vé    N)Ú	AxisError)ÚLinAlgError)
Úassert_Úassert_raisesÚassert_equalÚassert_allcloseÚassert_warnsÚassert_no_warningsÚassert_array_equalÚassert_array_almost_equalÚsuppress_warningsÚIS_WASM)Ú	GeneratorÚMT19937ÚSeedSequenceÚRandomStateé
   Ú@bb1636883c2707b51c5b7fc26c6927af4430f2e0785a8c7bc886337f919f9edfé	   )Ú
key_sha256ÚposÚ@ff682ac12bb140f2d72fba8d3506cf4e46817a0db27aae1683867629031d8d55iV  )ÚseedÚstepsÚinitialÚjumpedi$<ñi8  Ú@16b791a1e04886ccbbb4d448d6ff791267dc458ae599475d08d5cced29d11614i7  Ú@a0110a2cf23b56be0feaed8f787a7fc84bef0cb5623003d75b26bdfa1c18002ci  )i|Ï2iàEm:iS43i5  iÿ  Ú@d306cf01314d51bd37892d874308200951a35265ede54d200f1e065004c3e9eaiþ  Ú@0e00ab449f01a5195a83b4aee0dfbc2ce8d46466a640b92e33977d2e42f777f8iÛ  ÚmoduleTF)ÚscopeÚparamsc                 C   s   | j S ©N)Úparam)Úrequest© r&   úl/home/dinkstrade/pdmp-scanner/venv/lib/python3.10/site-packages/numpy/random/tests/test_generator_mt19937.pyÚendpoint)   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S )ÚTestSeedc                 C   s<   t tdƒƒ}t| d¡dƒ t tdƒƒ}t| d¡dƒ d S )Nr   éè  éß  ì   ÿÿ éD  )r   r   r   Úintegers©ÚselfÚsr&   r&   r'   Útest_scalar/   s   zTestSeed.test_scalarc                 C   s‚   t ttdƒƒƒ}t| d¡dƒ t tt d¡ƒƒ}t| d¡dƒ t tdgƒƒ}t| d¡dƒ t tdgƒƒ}t| d¡dƒ d S )Nr   r*   iÑ  r   r+   r,   r-   )r   r   Úranger   r.   ÚnpÚaranger/   r&   r&   r'   Ú
test_array5   s   zTestSeed.test_arrayc                 C   s    t tdƒƒ}t| d¡dƒ d S )Nr   é   i”ê´z)r   r   r   Ú
random_rawr/   r&   r&   r'   Útest_seedsequence?   s   zTestSeed.test_seedsequencec                 C   s   t ttdƒ t ttdƒ d S )Nç      à¿éÿÿÿÿ©r   Ú	TypeErrorr   Ú
ValueError©r0   r&   r&   r'   Útest_invalid_scalarC   s   zTestSeed.test_invalid_scalarc                 C   s0   t ttdgƒ t ttdgƒ t ttg d¢ƒ d S )Nr:   r;   )r7   éþÿÿÿì        r<   r?   r&   r&   r'   Útest_invalid_arrayH   s   zTestSeed.test_invalid_arrayc                 C   s   t tttƒ d S r#   )r   r>   r   r   r?   r&   r&   r'   Útest_noninstantized_bitgenN   s   z#TestSeed.test_noninstantized_bitgenN)	Ú__name__Ú
__module__Ú__qualname__r2   r6   r9   r@   rC   rD   r&   r&   r&   r'   r)   .   s    
r)   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 )Né   Úint©Údtype)r   ç      à?r7   r   )r4   Úzerosr   ÚrandomÚbinomialr
   )r0   rN   Úpr&   r&   r'   Útest_n_zeroS   s
   þzTestBinomial.test_n_zeroc                 C   s   t ttjdtjƒ d S )Nr7   )r   r>   rO   rP   r4   Únanr?   r&   r&   r'   Útest_p_is_nan\   s   zTestBinomial.test_p_is_nanN)rE   rF   rG   rR   rT   r&   r&   r&   r'   rH   R   s    	rH   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 )Néd   çš™™™™™É?çš™™™™™é?©rO   Úmultinomialr?   r&   r&   r'   Ú
test_basicb   ó   zTestMultinomial.test_basicc                 C   s   t  dg d¢¡ d S )NrV   )rW   rX   ç        r]   r]   rY   r?   r&   r&   r'   Útest_zero_probabilitye   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éûÿÿÿr;   é   )r   rO   r.   r4   Úall©r0   Úxr&   r&   r'   Útest_int_negative_intervalh   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 )NrM   r7   ©r7   rI   rI   ©rI   rI   rI   ©rI   rI   )
r   rO   rZ   r4   Úuint32ÚshapeÚarrayr   r=   Úfloat©r0   rQ   r&   r&   r'   Ú	test_sizen   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 )NrV   çš™™™™™ñ?rW   çš™™™™™¹¿çÍÌÌÌÌÌì?©r   r>   rO   rZ   r?   r&   r&   r'   Útest_invalid_prob|   s   z!TestMultinomial.test_invalid_probc                 C   s2   t ttjdddgƒ t ttjdgd ddgƒ d S )Nr;   rX   rW   r   rq   r?   r&   r&   r'   Útest_invalid_n€   s   zTestMultinomial.test_invalid_nc                 C   sx   t  d¡}|t  |dd d… ¡ }|dd d… }ttdƒƒ}|jd|d�}ttdƒƒ}|jdt  |¡d�}t||ƒ d S )Ng      .@r7   é   éÛ iUrV   )Úpvals)r4   r5   Úsumr   r   rZ   Úascontiguousarrayr
   )r0   rQ   rv   rO   Ú
non_contigÚcontigr&   r&   r'   Útest_p_non_contiguous„   s   
z%TestMultinomial.test_p_non_contiguousc                 C   sp   t jg d¢t jd�}|| ¡  }ttdƒƒ}d}tjt|d�� | 	d|¡ W d   ƒ d S 1 s1w   Y  d S )N)
ç®Gáz®ï?r|   ç•Ö&è.>r}   r}   r}   r}   r}   r}   r}   rK   ru   z-[\w\s]*pvals array is cast to 64-bit floating©Úmatchr7   )
r4   rj   Úfloat32rw   r   r   ÚpytestÚraisesr>   rZ   )r0   rc   rv   rO   r   r&   r&   r'   Útest_multinomial_pvals_float32Ž   s   
ÿ"ÿz.TestMultinomial.test_multinomial_pvals_float32N)rE   rF   rG   r[   r^   rd   rm   rr   rs   r{   rƒ   r&   r&   r&   r'   rU   a   s    
rU   c                   @   sŒ   e Zd Zdd„ Zdd„ Zej dddg¡dd	„ ƒZej d
g d¢¡ej dddg¡ej dg d¢¡dd„ ƒƒƒZ	dd„ Z
dd„ Zdd„ ZdS )ÚTestMultivariateHypergeometricc                 C   ó
   d| _ d S )Nií_„ ©r   r?   r&   r&   r'   Úsetup_methodš   ó   
z+TestMultivariateHypergeometric.setup_methodc                 C   s²   t ttjddƒ t ttjg d¢dƒ t ttjg d¢dƒ t ttjg d¢dƒ t ttjg dƒ t ttjdd	gd
ddƒ t tj¡}|j}||jj	 }t ttj|d d	gd
ddƒ d S )Nr   é   )rI   rt   r‰   r;   )r;   rI   rt   rI   r7   iÿÉš;ée   r`   Ú	marginalsrV   Úcount)
r   r>   rO   Úmultivariate_hypergeometricr4   ÚiinfoÚint64ÚmaxrL   Úitemsize)r0   Ú
int64_infoÚ	max_int64Úmax_int64_indexr&   r&   r'   Útest_argument_validation�   s0   ÿÿÿÿÿÿÿz7TestMultivariateHypergeometric.test_argument_validationÚmethodrŒ   r‹   c                 C   s
  t t| jƒƒ}|jg d¢d|d�}t|g d¢ƒ |jg d|d�}t|g ƒ |jg dd|d�}t|tjdtjd�ƒ |jg d¢d|d�}t|g d¢ƒ |jg d	¢d
|d�}t|g d¢ƒ g d¢}|j|t|ƒ|d�}t||ƒ |jg d¢dd
|d�}t|g d¢gd
 ƒ d S )N©r   r   r   r   ©r–   r7   ©Úsizer–   )r7   r   rK   ©r7   rI   rt   )r   r   r   rt   )rt   r   r   )r7   r7   r   r7   r7   ©rt   r‰   r`   é   )	r   r   r   r�   r
   r4   Úemptyr�   rw   )r0   r–   rO   rc   Úcolorsr&   r&   r'   Útest_edge_cases¾   s(   
ÿ
ÿz.TestMultivariateHypergeometric.test_edge_casesÚnsample)é   é   é-   é7   rš   )r`   ©rI   rt   iðI c                 C   sÜ   t t| jƒƒ}t g d¢¡}|j||||d�}t|tƒr#|f|j }n||j }t	|j|ƒ t
|dk ¡ ƒ t
||k ¡ ƒ t|jdd�tj||td�ƒ t|tƒrj|dkrlt|jdd�|| | ¡  dd	d
� d S d S d S )N)r   r`   é   r£   r˜   r   r;   ©Úaxis)Ú
fill_valuerL   é † çü©ñÒMbP?ç{®Gázt?)ÚrtolÚatol)r   r   r   r4   rj   r�   Ú
isinstancerJ   ri   r   r   ra   r
   rw   Úfullr   Úmean)r0   r¡   r–   rš   rO   rŸ   ÚsampleÚexpected_shaper&   r&   r'   Útest_typical_casesá   s(   
ÿ

ÿ
þýz1TestMultivariateHypergeometric.test_typical_casesc                 C   sZ   t t| jƒƒ}|jg d¢dddd�}t g d¢g d¢g d¢g d¢g d¢g¡}t||ƒ d S )Nrœ   r`   rŒ   r™   )rI   r7   rI   ©r7   r7   rt   ©rI   r   rt   ©r   r   r   r�   r4   rj   r
   ©r0   rO   r³   Úexpectedr&   r&   r'   Útest_repeatability1ú   s   ÿ
üz2TestMultivariateHypergeometric.test_repeatability1c                 C   sZ   t t| jƒƒ}|jg d¢dddd�}t g d¢g d¢g d¢g d¢g d	¢g¡}t||ƒ d S )
N©r§   é   é2   r¾   r`   r‹   r™   )r   é   é   )é   é   r½   )r   é   é   )r�   é   rÀ   r¸   r¹   r&   r&   r'   Útest_repeatability2  ó   þ
üz2TestMultivariateHypergeometric.test_repeatability2c                 C   sZ   t t| jƒƒ}|jg d¢dddd�}t g d¢g d¢g d¢g d¢g d	¢g¡}t||ƒ d S )
Nr¼   r�   r`   r‹   r™   )rI   rt   rÁ   )r`   rt   r‰   )rI   r`   r`   )r7   r`   é   r¸   r¹   r&   r&   r'   Útest_repeatability3  rÇ   z2TestMultivariateHypergeometric.test_repeatability3N)rE   rF   rG   r‡   r•   r�   ÚmarkÚparametrizer    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	S )
ÚTestSetStatec                 C   sT   d| _ tt| j ƒƒ| _| jj| _| jj| _| jd | jd d | jd d f| _d S )NéÒ–IÚbit_generatorÚstateÚkeyr   )r   r   r   ÚrgrÎ   rÏ   Úlegacy_stater?   r&   r&   r'   r‡     s   


þzTestSetState.setup_methodc                 C   s<   | j jdd�}| j| j_| j jdd�}tt ||k¡ƒ d S ©Nrt   ©rš   )rÑ   Ústandard_normalrÏ   rÎ   r   r4   ra   )r0   ÚoldÚnewr&   r&   r'   Útest_gaussian_reset(  s   
z TestSetState.test_gaussian_resetc                 C   sL   | j  ¡  | jj}| j jdd�}|| j_| j jdd�}tt ||k¡ƒ d S rÓ   )rÑ   rÕ   rÎ   rÏ   r   r4   ra   )r0   rÏ   rÖ   r×   r&   r&   r'   Ú test_gaussian_reset_in_media_res/  s   
z-TestSetState.test_gaussian_reset_in_media_resc                 C   s   | j  dd¡ d S ©NrM   )rÑ   Únegative_binomialr?   r&   r&   r'   Útest_negative_binomial:  s   z#TestSetState.test_negative_binomialN)rE   rF   rG   r‡   rØ   rÙ   rÜ   r&   r&   r&   r'   rÌ     s
    	rÌ   c                   @   s\  e Zd ZejZe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dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zej dde g d¢¡fde g d¢¡fde g d¢¡fg¡dd„ ƒZ d d!„ Z!d"d#„ Z"d$d%„ Z#d&d'„ Z$d(d)„ Z%d*d+„ Z&d,d-„ Z'ejj(ej d.d/d0ejd1fd/d2ej	d3fd4d5ej
d6fd7d8ejd9fg¡d:d;„ ƒƒZ)d<S )=ÚTestIntegersc                 C   s   t t| jd|td� d S ©Nr7   ©r(   rL   )r   r=   Úrfuncrk   )r0   r(   r&   r&   r'   Útest_unsupported_typeG  s   z"TestIntegers.test_unsupported_typec              	   C   s>  | j D ]™}|tu rdnt |¡j}|tu rdnt |¡jd }|r%|d n|}tt| j|d |||d� tt| j||d ||d� tt| j||||d� tt| jdd||d� tt| j|d g|||d� tt| j|g|d g||d� tt| j|g|g||d� tt| jddg||d� tt| j|d g|g||d� qd S ©Nr   rI   r7   rß   ©	ÚitypeÚboolr4   rŽ   Úminr�   r   r>   rà   ©r0   r(   ÚdtÚlbndÚubndr&   r&   r'   Útest_bounds_checkingJ  s@   
ÿÿÿÿÿÿÿÿÿëz!TestIntegers.test_bounds_checkingc              	   C   sÊ   | j D ]_}|tu rdnt |¡j}|tu rdnt |¡j|  }tt| j|d gd |gd ||d� tt| j|gd |d gd ||d� tt| j||gd ||d� tt| jdgd d||d� qd S râ   rã   rç   r&   r&   r'   Útest_bounds_checking_arrayc  s    
ÿÿÿÿöz'TestIntegers.test_bounds_checking_arrayc              	   C   s.  | j D ]‘}|tu rdnt |¡j}|tu rdnt |¡jd }|r%|d n|}| }|d }t| j||| d||d�|ƒ t| j|g|| d||d�|ƒ |}t| j||| d||d�|ƒ t| j||| gd||d�|ƒ || d }t| j||| d||d�|ƒ t| j|g|| gd||d�|ƒ qd S )Nr   rI   r7   r*   ©rš   r(   rL   ©rä   rå   r4   rŽ   ræ   r�   r   rà   )r0   r(   rè   ré   rê   Úis_openÚtgtr&   r&   r'   Útest_rng_zero_and_extremesq  sN   
ÿÿÿÿÿÿÿÿÿÿÿþëz'TestIntegers.test_rng_zero_and_extremesc                 C   sº  d}| j D ]Õ}|tu rdnt |¡j}|tu rdnt |¡jd }|r'|d n|}|d }t| j|g|d g||d�|ƒ t| j|g| |d g| |d�|ƒ t| j|g| |d g| ||d�|ƒ |}t| j|g|d g||d�|ƒ t| j|g| |d g| |d�|ƒ t| j|g| |d g| ||d�|ƒ || d }t| j|g|d g||d�|ƒ t| j|g| |d g| |d�|ƒ t| j|g| |d g| ||d�|ƒ qd S )Nr*   r   rI   r7   ©rš   rL   rK   rî   )r0   r(   rš   rè   ré   rê   rð   r&   r&   r'   Ú test_rng_zero_and_extremes_array‹  sl   
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæz-TestIntegers.test_rng_zero_and_extremes_arrayc                 C   s’   | j D ]C}|tu rdnt |¡j}|tu rdnt |¡jd }|r%|d n|}z| j||||d� W q tyF } ztdt	|ƒ ƒ‚d }~ww d S ©Nr   rI   r7   rß   zMNo error should have been raised, but one was with the following message:

%s©
rä   rå   r4   rŽ   ræ   r�   rà   Ú	ExceptionÚAssertionErrorÚstr©r0   r(   rè   ré   rê   Úer&   r&   r'   Útest_full_rangeª  s   
þ€ÿùzTestIntegers.test_full_rangec                 C   sš   | j D ]G}|tu rdnt |¡j}|tu rdnt |¡jd }|r%|d n|}z| j|gd |g||d� W q tyJ } ztdt	|ƒ ƒ‚d }~ww d S rô   rõ   rù   r&   r&   r'   Útest_full_range_array¹  s   
þ€ÿùz"TestIntegers.test_full_range_arrayc              	   C   sœ   t tƒ ƒ}| jdd … D ]#}dD ]}| jd|| d||d�}t| ¡ |k ƒ t| ¡ dkƒ qq| jdd| d|td�}t| ¡ dk ƒ t| ¡ dkƒ d S )Nr7   )r‰   r¢   é   rI   i   rí   r   )r   r   rä   rà   r   r�   ræ   rå   )r0   r(   rO   rè   rê   Úvalsr&   r&   r'   Útest_in_bounds_fuzzÈ  s   
ÿüÿz TestIntegers.test_in_bounds_fuzzc           
      C   sÜ   | j D ]h}|tu rdnt |¡j}|tu rdnt |¡jd }|r%|d n|}d}ttdƒƒ}|j|||||d�}ttdƒƒ}|j|g|g|||d�}ttdƒƒ}|j|g| |g| |||d�}	t	||ƒ t	||	ƒ qd S )Nr   rI   r7   r*   éÒ  rí   ©
rä   rå   r4   rŽ   ræ   r�   r   r   r.   r
   )
r0   r(   rè   ré   rê   rš   rO   ÚscalarÚscalar_arrayrj   r&   r&   r'   Útest_scalar_array_equivØ  s,   
ÿÿÿÿ
îz$TestIntegers.test_scalar_array_equivc              
   C   sô   ddddddddddœ	}| j dd … D ];}ttdƒƒ}tjd	kr-|jd
d| d||d�}n|jd
d| d||d� ¡ }t |¡ 	¡ }t
|t |¡j |kƒ qttdƒƒ}|jd
d| d|td� tj¡}t |¡ 	¡ }t
|t t¡j |kƒ d S )NÚ@053594a9b82d656f967c54869bc6970aa0358cf94ad469c81478459c6a90eee3Ú@54de9072b6ee9ff7f20b58329556a46a447a8a29d67db51201bf88baa6e4e5d4Ú@d3a0d5efb04542b25ac712e50d21f39ac30f312a5052e9bbb1ad3baa791ac84bÚ@14e224389ac4580bfbdccb5697d6190b496f91227cf67df60989de3d546389b1Ú@0e203226ff3fbbd1580f15da4621e5f7164d0d8d6b51696dd42d004ece2cbec1)	rå   Úint16Úint32r�   Úint8Úuint16rh   Úuint64Úuint8r7   r   Úlittler   rÈ   r*   rí   rI   )rä   r   r   ÚsysÚ	byteorderr.   ÚbyteswapÚhashlibÚsha256Ú	hexdigestr   r4   rL   Únamerå   Úviewr  )r0   r(   rð   rè   rO   ÚvalÚresr&   r&   r'   Útest_repeatabilityí  s>   ø

ÿÿÿÿÿzTestIntegers.test_repeatabilityc                 C   sâ   | j D ]k}|ttjfv rdnt |¡j}|ttjfv rdnt |¡jd }|r+|d n|}ttdƒƒ}|j||d||d�}ttdƒƒ}|j|gd |||d�}t	||ƒ ttdƒƒ}|j|gd |gd ||d�}t	||ƒ qd S )Nr   rI   r7   r   r*   rí   rß   r  )r0   r(   rè   ré   rê   rO   r  Úval_bcr&   r&   r'   Útest_repeatability_broadcasting  s&   
"ÿÿ
ÿìz,TestIntegers.test_repeatability_broadcastingzbound, expectedr,   )iuÑiÉ,YQiåùXgi$#°Pl   ‚bA i{òÈEl   /YÄi rB   )éuÑiÊ,YQéæùXgi%#°Pl   ƒbA i|òÈEl   0YÄi ì       )r  r  l   „bA l   1YÄi i÷{,miù…uHl   îHM c                 C   sJ   d t |ƒfD ]}ttdƒƒ}|j||d�}t||d ur|n|d ƒ qd S )Nr   rÔ   r   )Úlenr   r   r.   r   )r0   Úboundrº   rš   rO   rc   r&   r&   r'   Ú!test_repeatability_32bit_boundary'  s
   
ýz.TestIntegers.test_repeatability_32bit_boundaryc              
   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tdƒƒ}|jdgdgdggg d¢|d�}t||d urY|n|d ƒ q9d S )N)iÜ
¼`l   ÓY¡/ iü0èb)i)H{Ti«P-iTÿÒq)l   †”C iš›Z'l   !Îg )l   ©k40 l   n2c l   ÅDBJ )iÒ|à(iy+l   à_&A )ip@ýGiG‚‘^l   J|xK )l   ü
f l   Dmv l   ©E"g )iŽÐ>{l   wT2L iñJQ)iQÓ//itÉLol   Øk¦ )i\œsi¼ÿ�Ji”�Ñ)iéÿ=l   }D l   E9l )l   
+x i#J¨l   bË )iºð¼0i7ù›Ol   rn )ix¦�ii‰µ½Ai.¸®t)l   q/Œq i;-‘/i‡…á)N)r`   rt   rt   i90  r;   r   r7   )r,   rB   r   rÔ   )r4   rj   r   r   r.   r
   )r0   Údesiredrš   rO   rc   r&   r&   r'   Ú.test_repeatability_32bit_boundary_broadcasting6  s:   
þþþþþôþûz;TestIntegers.test_repeatability_32bit_boundary_broadcastingc              
   C   s2  t jddd fdddft jdi}|D ]„}|| D ]}}|\}}|| }t  |gd g¡}t  |gd ¡}tttj||||d	� tttj||||d	� tttj||||d	� tttj||||d	� t j|gd gtd
�}	t j|gd td
�}
tttj|	|||d	� tttj||
||d	� tttj|	|
||d	� qqd S )Nr   rI   éA   )r;   ì            ©r   r   ©r   r   ))r   l            )lûÿÿÿ         r'  r(  r)  )ìûÿÿÿ        r*  r   rß   rK   )	r4   r  r�   rj   r   r>   rO   r.   Úobject)r0   r(   ÚconfigsrL   ÚconfigÚlowÚhighÚlow_aÚhigh_aÚlow_oÚhigh_or&   r&   r'   Ú&test_int64_uint64_broadcast_exceptionsM  sD   ÿÿÿÿÿÿÿÿìÿz3TestIntegers.test_int64_uint64_broadcast_exceptionsc                 C   sd   t j}t  t j¡j}t  t  t j¡j¡}t  t  t j¡jd | ¡}tj||||d�}t||ƒ d S rÞ   )r4   r�   rŽ   r�   r  rO   r.   r   )r0   r(   rè   rð   ré   rê   Úactualr&   r&   r'   Útest_int64_uint64_corner_casei  s   z*TestIntegers.test_int64_uint64_corner_casec                 C   s  | j D ]<}|tu rdnt |¡j}|tu rdnt |¡jd }|r%|d n|}|tu r.tjn|}| j||||d�}t|j|ƒ qtt	fD ];}|tu rLdnt |¡j}|tu rXdnt |¡jd }|rf|d n|}| j||||d�}t
|dƒrxJ ‚tt|ƒ|ƒ qDd S )Nr   rI   r7   rß   rL   )rä   rå   r4   rŽ   ræ   r�   rà   r   rL   rJ   ÚhasattrÚtype©r0   r(   rè   ré   rê   r³   r&   r&   r'   Útest_respect_dtype_singleton€  s   
øz)TestIntegers.test_respect_dtype_singletonc                 C   s²   | j D ]S}|tu rdnt |¡j}|tu rdnt |¡jd }|r%|d n|}|tu r.tjn|}| j|g|g||d�}t|j|ƒ | j|gd |gd ||d�}t|j|ƒ qd S râ   )	rä   rå   r4   rŽ   ræ   r�   rà   r   rL   r9  r&   r&   r'   Útest_respect_dtype_array•  s   
ÿöz%TestIntegers.test_respect_dtype_arrayc                 C   s¦   | j D ]M}| jddd||d�}|jdksJ ‚|j|ksJ ‚| jddd||d�jdks,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ƒ qd S )Nr   ©rt   r   r‰   rß   éöÿÿÿ©r   rÔ   r   )rä   rà   ri   rL   r   rO   r.   )r0   r(   rè   r³   r&   r&   r'   Útest_zero_size£  s   
ÿÿÿ÷zTestIntegers.test_zero_sizec                 C   sT   t jdkrdnd}t t¡� tjddd|d� W d   ƒ d S 1 s#w   Y  d S )NÚbigz<i4z>i4r   éÈ   r   rò   )r  r  r�   r‚   r>   rO   r.   )r0   Úother_byteord_dtr&   r&   r'   Útest_error_byteorder°  s   "ÿz!TestIntegers.test_error_byteorderzsample_size,high,dtype,chi2maxi@KL r`   g     @_@rÁ   g     Àb@i€–˜ iÄ	  g     È©@i€ðúéˆ  g     d¹@c           
      C   sN   t j|||d�}tj|dd�\}}|| }|| d |  ¡ }	|	|k s%J ‚d S )Nrò   T)Úreturn_countsrI   )rO   r.   r4   Úuniquerw   )
r0   Úsample_sizer/  rL   Úchi2maxÚsamplesÚvaluesÚcountsrº   Úchi2r&   r&   r'   Ú$test_integers_small_dtype_chisquared¶  s
   
z1TestIntegers.test_integers_small_dtype_chisquaredN)*rE   rF   rG   rO   r.   rà   rå   r4   r  r  r
  r  r  rh   r�   r  rä   rá   rë   rì   rñ   ró   rû   rü   rÿ   r  r  r  r�   rÊ   rË   rj   r#  r%  r4  r6  r:  r;  r?  rC  ÚslowrM  r&   r&   r&   r'   rÝ   @  sP    ÿ#üþ
	ýÿrÝ   c                   @   sr  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
ej dejejfejejfg¡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!d0d1„ Z"d2d3„ Z#d4d5„ Z$d6d7„ Z%d8d9„ Z&d:d;„ Z'd<d=„ Z(d>d?„ Z)d@dA„ Z*dBdC„ Z+dDdE„ Z,dFdG„ Z-ej dHe.e/g¡ej dIdJe 0g dK¢g dL¢g¡fdMe 0g dN¢g dO¢g¡fdPe 0g dQ¢g dR¢g¡fg¡dSdT„ ƒƒZ1dUdV„ Z2dWdX„ Z3ej dYdZd[g¡d\d]„ ƒZ4d^d_„ Z5d`da„ Z6dbdc„ Z7ddde„ Z8dfdg„ Z9dhdi„ Z:djdk„ Z;dldm„ Z<dndo„ Z=dpdq„ Z>ejj?drds„ ƒZ@ej dtg du¢g dv¢g dw¢g dx¢g dy¢g dz¢d{gg d|¢g¡d}d~„ ƒZAdd€„ ZBd�d‚„ 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 „ ZRej d¡e Sd{d¢¡d£ejTd¤g¡d¥d¦„ ƒZUd§d¨„ ZVejjWeXd©dª�ej d«g d¬¢¡d­d®„ ƒƒZYej d¯dMgd°ggfd±gdPggfg¡d²d³„ ƒZZej d«g d¬¢¡d´dµ„ ƒZ[d¶d·„ Z\d¸d¹„ Z]dºd»„ Z^d¼d½„ Z_d¾d¿„ Z`dÀdÁ„ ZadÂdÃ„ ZbdÄdÅ„ 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ôdõ„ Z{död÷„ Z|dødù„ Z}dúdû„ Z~düdý„ Zdþdÿ„ Z€ej �d �d�dg¡�d�d„ ƒZ�ej �d�dej‚ �dej‚�dg¡ej �d g �d	¢¡�d
�d„ ƒƒZƒ�d�d„ Z„�d�d„ Z…�d�d„ Z†�d�d„ Z‡dJS (  ÚTestRandomDistc                 C   r…   )NrÍ   r†   r?   r&   r&   r'   r‡   Ì  rˆ   zTestRandomDist.setup_methodc                 C   óH   t t| jƒƒ}|jdddd�}t ddgddgd	d
gg¡}t||ƒ d S )Né�ÿÿÿéc   ©rt   rI   rÔ   é°ÿÿÿéÈÿÿÿé)   é%   é­ÿÿÿiðÿÿÿ©r   r   r   r.   r4   rj   r
   ©r0   rO   r5  r$  r&   r&   r'   Útest_integersÏ  s   zTestRandomDist.test_integersc                 C   sR   t t| jƒƒ}|jdddtjd�}tjddgddgd	d
ggtjd�}t||ƒ d S )Nr   rR  rS  rò   r   é   éF   éD   r¢   rV  rK   )r   r   r   r.   r4   rh   rj   r
   rZ  r&   r&   r'   Útest_integers_maskedÕ  s   "z#TestRandomDist.test_integers_maskedc                 C   sJ   t t| jƒƒ}|jddddd�}t ddgdd	gd
dgg¡}t||ƒ d S )NrQ  rR  rS  T)rš   r(   rT  rU  rV  é&   rX  iñÿÿÿrY  rZ  r&   r&   r'   Útest_integers_closedÝ  s   z#TestRandomDist.test_integers_closedc                 C   s:   t jt d¡jt d¡jdd�}t d¡j}t||ƒ d S )NÚlT©r(   )rO   r.   r4   rŽ   r�   r   )r0   r5  r$  r&   r&   r'   Útest_integers_max_intã  s
   ÿz$TestRandomDist.test_integers_max_intc                 C   sn   t t| jƒƒ}| d¡}t ddgddgddgg¡}t||dd	� t t| jƒƒ}| ¡ }t||d
 dd	� d S )NrS  gG0‡ðÔ¸?g±Ã¦û£æ?g2ˆï˜µ?gu	A‘è?gòH
Ô>Hå?g;ŠdEåæ?rÃ   ©Údecimalr)  ©r   r   r   rO   r4   rj   r   rZ  r&   r&   r'   Útest_randomï  s   

þzTestRandomDist.test_randomc                 C   sF   t t| jƒƒ}| d¡}t ddgddgddgg¡}t||dd	� d S )
NrS  çCø¼‡ðÔ¸?gP‘¨û£æ?gtXÈùî˜µ?g81â
A‘è?gÚrOÓ>Hå?g×88dEåæ?rÁ   re  rg  rZ  r&   r&   r'   Útest_random_floatû  s   

þz TestRandomDist.test_random_floatc                 C   s2   t t| jƒƒ}|jtjd�}d}t||dd� d S )NrK   ri  rÁ   re  )r   r   r   rO   r4   r€   r   rZ  r&   r&   r'   Útest_random_float_scalar  s   z'TestRandomDist.test_random_float_scalarzdtype, uint_view_typec                 C   sP   t t| jƒƒ}|jd|d�}t | |¡d@ ¡}d|  k r#dk s&J ‚ J ‚d S )Nr«   rK   r7   i$^  i,e  )r   r   r   rO   r4   Úcount_nonzeror  )r0   rL   Úuint_view_typerO   r³   Únum_ones_in_lsbr&   r&   r'   Útest_random_distribution_of_lsb	  s    z.TestRandomDist.test_random_distribution_of_lsbc                 C   s   t ttjdd� d S )Nr  rK   )r   r=   rO   r?   r&   r&   r'   Útest_random_unsupported_type  r\   z+TestRandomDist.test_random_unsupported_typec                 C   s<   t t| jƒƒ}| dd¡}tjg d¢tjd�}t||ƒ d S )Nr‰   )r   r   rI   rI   rK   ©r   r   r   Úchoicer4   rj   r�   r
   rZ  r&   r&   r'   Útest_choice_uniform_replace  s   z*TestRandomDist.test_choice_uniform_replacec                 C   sD   t t| jƒƒ}|jddg d¢d�}tjg d¢tjd�}t||ƒ d S )Nr‰   )çš™™™™™Ù?rt  çš™™™™™¹?ru  ©rQ   )r   r7   r   r7   rK   rq  rZ  r&   r&   r'   Útest_choice_nonuniform_replace  s   z-TestRandomDist.test_choice_nonuniform_replacec                 C   sl   t t| jƒƒ}|jdddd�}tjg d¢tjd�}t||ƒ |jddddd�}tjdtjd�}t||ƒ d S )Nr‰   rt   F©Úreplacer·   rK   )ry  Úshuffle)	r   r   r   rr  r4   rj   r�   r
   r5   rZ  r&   r&   r'   Útest_choice_uniform_noreplace$  s   
z,TestRandomDist.test_choice_uniform_noreplacec                 C   sF   t t| jƒƒ}|jdddg d¢d�}tjg d¢tjd�}t||ƒ d S )Nr‰   rt   F)ru  ç333333Ó?rM   ru  ©ry  rQ   )r   rI   rt   rK   rq  rZ  r&   r&   r'   Ú test_choice_nonuniform_noreplace-  s   z/TestRandomDist.test_choice_nonuniform_noreplacec                 C   s:   t t| jƒƒ}| g d¢d¡}t g d¢¡}t||ƒ d S )N)ÚaÚbÚcÚdr‰   )r  r  r�  r�  ©r   r   r   rr  r4   rj   r
   rZ  r&   r&   r'   Útest_choice_noninteger3  s   z%TestRandomDist.test_choice_nonintegerc                 C   s\   t t| jƒƒ}| ddgddgddgddggd¡}t ddgddgddgg¡}t||ƒ d S )	Nr   r7   rI   rt   r‰   r`   rÈ   rÁ   rƒ  rZ  r&   r&   r'   Ú)test_choice_multidimensional_default_axis9  s   $z8TestRandomDist.test_choice_multidimensional_default_axisc                 C   s^   t t| jƒƒ}|jddgddgddgddggddd	�}t dgdgdgdgg¡}t||ƒ d S )
Nr   r7   rI   rt   r‰   r`   rÈ   rÁ   r¨   rƒ  rZ  r&   r&   r'   Ú(test_choice_multidimensional_custom_axis?  s   (z7TestRandomDist.test_choice_multidimensional_custom_axisc                 C   s  t j}tt|ddƒ tt|d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;   rt   ç      @)r7   rI   rt   r‰   ç      Ð?rv  r7   rI   )rt  rt  rW   rn   ro   rt  r›   r‰   Frx  rA   )r;   )r;   r7   )r7   r   r   r}  )rO   rr  r   r>   )r0   r³   r&   r&   r'   Útest_choice_exceptionsE  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 )Nru  rp   rI   Trx  Fr}  r7   rK   r   r¦   )ru  ru  ru  ru  rt  rW   rÈ   r<  rÔ   r=  r>  r   r  r€  )r   r4   ÚisscalarrO   rr  rj   rž   r+  ÚtupleÚndimÚitemr   ri   r5   r.   r   r>   )r0   rQ   r  Úarrr1   r&   r&   r'   Útest_choice_return_shapeW  sL    ÿz'TestRandomDist.test_choice_return_shapec                 C   s,   t  g d¢¡}g d¢}tttj||d� d S )N)é*   r7   rI   )NNNrv  )r4   rj   r   r>   rO   rr  )r0   r  rQ   r&   r&   r'   Útest_choice_nan_probabilities…  s   z,TestRandomDist.test_choice_nan_probabilitiesc              	   C   s€   t  d¡d }d|dd d…< tt| jƒƒ}|jdd|d d d… d�}tt| jƒƒ}|jddt  |d d d… ¡d�}t||ƒ d S )Nr   r`   r‡  r7   rI   rt   rv  )r4   Úonesr   r   r   rr  rx   r
   )r0   rQ   rO   ry   rz   r&   r&   r'   Útest_choice_p_non_contiguousŠ  s    z+TestRandomDist.test_choice_p_non_contiguousc                 C   s�   t  d¡d }t dd¡}|jt jksJ ‚tjdddd�}|jt jks%J ‚tjdd|d�}|jt jks5J ‚tjdd|dd�}|jt jksFJ ‚d S )Nr‰   g      @rI   Frx  rv  )rQ   ry  )r4   r’  rO   rr  rL   r�   )r0   rQ   r5  r&   r&   r'   Útest_choice_return_type“  s   z&TestRandomDist.test_choice_return_typec                 C   sZ   d}t t| jƒƒ}|jdddd�}tjdkr| ¡ }t | 	t
j¡¡ ¡ }t||kƒ d S )NÚ@4266599d12bfcfb815213303432341c06b4349f5455890446578877bb322e222é'  rD  Frx  r  )r   r   r   rr  r  r  r  r  r  r  r4   r  r  r   )r0   Úchoice_hashrO   r5  r  r&   r&   r'   Útest_choice_large_sampleŸ  s   
z'TestRandomDist.test_choice_large_samplec                 C   s�   t t| jƒƒ}t|jg d¢dd�t d¡dd� t|jg d¢gdd�g d¢ƒ t|jdggdd�dgdd� t|jdggddd�dgdd� d S )Nr›   r&   rÔ   r7   T)Ústrict)rš   r©   )r   r   r   r
   rr  r4   rj   ©r0   rO   r&   r&   r'   Ú"test_choice_array_size_empty_tuple¨  s   ÿ
ÿz1TestRandomDist.test_choice_array_size_empty_tuplec                 C   s*   t t| jƒƒ}| d¡}d}t||ƒ d S )Nr   s
   †ðÔá�	8%Ý)r   r   r   Úbytesr   rZ  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 t| jƒƒ}|g d¢ƒ}| |¡ |}|g d¢ƒ}t||ƒ q#d S )Nc                 S   s
   t  g ¡S r#   )r4   rj   ©rc   r&   r&   r'   Ú<lambda>º  s   
 z-TestRandomDist.test_shuffle.<locals>.<lambda>c                 S   s   | S r#   r&   rž  r&   r&   r'   rŸ  »  s    c                 S   ó   t  | ¡ t j¡S r#   )r4   ÚasarrayÚastyper  rž  r&   r&   r'   rŸ  ¼  ó    c                 S   r   r#   )r4   r¡  r¢  r€   rž  r&   r&   r'   rŸ  ½  r£  c                 S   r   r#   )r4   r¡  r¢  Ú	complex64rž  r&   r&   r'   rŸ  ¾  r£  c                 S   s   t  | ¡ t¡S r#   )r4   r¡  r¢  r+  rž  r&   r&   r'   rŸ  ¿  ó    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'   rŸ  À  s    c                 S   s   t  dd„ | D ƒ¡S )Nc                 S   s   g | ]}||g‘qS r&   r&   r§  r&   r&   r'   rª  Á  r«  r¬  )r4   r¡  rž  r&   r&   r'   rŸ  Á  r«  c                 S   s   t  | | g¡jS r#   )r4   ÚvstackÚTrž  r&   r&   r'   rŸ  Â  r¥  c                 S   s*   t  dd„ | D ƒdtfdtfg¡ t j¡S )Nc                 S   r¦  r&   r&   r§  r&   r&   r'   rª  Ä  r«  r¬  r  r€  )r4   r¡  rJ   r  Úrecarrayrž  r&   r&   r'   rŸ  Ä  s    ÿ
c                 S   s(   t  dd„ | D ƒdtdfdt jdfg¡S )Nc                 S   r¦  r&   r&   r§  r&   r&   r'   rª  È  r«  r¬  r  ©r7   r€  )r4   r¡  r+  r  rž  r&   r&   r'   rŸ  È  s
    
ÿÿ©
r7   rI   rt   r‰   r`   rÈ   rÁ   r¢   r   r   ©
r‰   r7   r   r¢   r   r`   rt   rÈ   rI   rÁ   )r   r   r   rz  r
   )r0   ÚconvrO   Úalistr5  r$  r&   r&   r'   Útest_shuffle·  s&   ò
êzTestRandomDist.test_shufflec                 C   s’   t t| jƒƒ}t d¡ d¡}|j|dd� t g d¢g d¢g d¢g d¢g¡}t||ƒ t t| jƒƒ}t d¡ d¡}|j|d	d� t||ƒ d S )
Nrý   ©r‰   r‰   r7   r¨   ©r   rt   r7   rI   ©r‰   rÁ   r`   rÈ   ©r¢   é   r   r   ©r�   rÃ   rÂ   rÅ   r;   )	r   r   r   r4   r5   Úreshaperz  rj   r
   rZ  r&   r&   r'   Útest_shuffle_custom_axisÒ  s   
ý
z'TestRandomDist.test_shuffle_custom_axisc                 C   sT   t t| jƒƒ}t g ¡ d¡}dD ]}t g ¡ d¡}|j||d� t||ƒ qd S )N)r   rÈ   )r   r7   r¨   )r   r   r   r4   rj   r¼  rz  r
   )r0   rO   r$  r©   r5  r&   r&   r'   Útest_shuffle_custom_axis_emptyà  s   ýz-TestRandomDist.test_shuffle_custom_axis_emptyc                 C   s^   t  d¡ dd¡}| ¡ }tt| jƒƒ}|j|dd� tt| jƒƒ}| |j¡ t	||ƒ d S )Nr§   rI   r   r7   r¨   )
r4   r5   r¼  Úcopyr   r   r   rz  r®  r
   )r0   Úy1Úy2rO   r&   r&   r'   Útest_shuffle_axis_nonsquareè  s   z*TestRandomDist.test_shuffle_axis_nonsquarec                 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 S )Nr§   )r`   r‰   rt   r7   r;   r¾   )r4   ÚmaÚmasked_valuesr¼  r3   r5   r¿  rO   rz  r   ÚsortedÚdataÚmask)r0   r  r€  Úa_origÚb_origr©  r&   r&   r'   Útest_shuffle_maskedñ  s   "
 ÿ
 ÿûz"TestRandomDist.test_shuffle_maskedc                 C   s¶   t t| jƒƒ}t d¡}tt|j|dƒ t d¡ d¡}tt|j|dƒ tt	|j|t
ddd ƒƒ g d¢g d¢g}tt|j|dƒ t d¡}tt	|j|ƒ t d	¡}tt|j|dƒ d S )
Nr   r7   r   ©rt   rt   rt   rI   r›   )r‰   r`   rÈ   rS  )r   r   r   r4   r5   r   r   rz  r¼  r=   ÚsliceÚNotImplementedErrorrj   r’  ©r0   rO   rŽ  r&   r&   r'   Útest_shuffle_exceptionsÿ  s   


z&TestRandomDist.test_shuffle_exceptionsc                 C   s^   t t| jƒƒ}t d¡}d|j_tjt	dd�� | 
|¡ W d   ƒ d S 1 s(w   Y  d S )Nr`   Fú	read-onlyr~   )r   r   r   r4   rN   ÚflagsÚ	writeabler�   r‚   r>   rz  )r0   rO   r  r&   r&   r'   Útest_shuffle_not_writeable  s   
"ÿz)TestRandomDist.test_shuffle_not_writeablec           	      C   sÂ   t t| jƒƒ}g d¢}| |¡}g d¢}t||ƒ t t| jƒƒ}t g d¢¡j}| |¡}t|t |¡jƒ d}tt	|j|ƒ d}tt	|j|ƒ t t| jƒƒ}d}g d¢}| |¡}t||ƒ d S )Nr±  r²  Úabcdg333333ó?r   )
rt   r   r¢   rÁ   r   r‰   rI   r`   r7   rÈ   )
r   r   r   Úpermutationr
   r4   Ú
atleast_2dr®  r   r   )	r0   rO   r´  r5  r$  Úarr_2dÚ	bad_x_strÚbad_x_floatÚinteger_valr&   r&   r'   Útest_permutation  s$   



zTestRandomDist.test_permutationc                 C   s‚   t  d¡ d¡}t  g d¢g d¢g d¢g d¢g¡}tt| jƒƒ}|j|dd�}t||ƒ tt| jƒƒ}|j|d	d�}t||ƒ d S )
Nrý   r¶  r·  r¸  r¹  r»  r7   r¨   r;   )	r4   r5   r¼  rj   r   r   r   rÕ  r
   )r0   r  r$  rO   r5  r&   r&   r'   Útest_permutation_custom_axis.  s   
ý
z+TestRandomDist.test_permutation_custom_axisc                 C   sd   t t| jƒƒ}t d¡}tt|j|dƒ t d¡ d¡}tt|j|dƒ tt	|j|t
ddd ƒƒ d S )Nr   r7   r   rË  rt   rI   )r   r   r   r4   r5   r   r   rÕ  r¼  r=   rÌ  rÎ  r&   r&   r'   Útest_permutation_exceptions;  s   
z*TestRandomDist.test_permutation_exceptionsrL   zaxis, expectedN)rt   rÁ   r   r   r   rº  )r¢   r‰   rI   r`   r7   rÈ   r   )rÈ   r7   rI   r   r   rº  )r   rÁ   r¢   rt   r‰   r`   r7   )r`   rt   r‰   r   rI   r7   )rº  r   r   rÈ   r¢   rÁ   c                 C   s�   t t| jƒƒ}t d¡ dd¡ |¡}|j|||d� t||ƒ t t| jƒƒ}t d¡ dd¡ |¡}|j||d�}|j	|ksAJ ‚t||ƒ d S )Nr�   rI   rÈ   ©r©   Úoutr¨   )
r   r   r   r4   r5   r¼  r¢  Úpermutedr
   rL   )r0   rL   r©   rº   rO   rc   Úyr&   r&   r'   Útest_permutedC  s   	
zTestRandomDist.test_permutedc                 C   s’   t t| jƒƒ}t d¡ dd¡}| ¡ }|d d …d d d…f }|j|d|d�}t g d¢g d¢g¡}t	||ƒ ||d d …d d d…f< t	||ƒ d S )	Né   rI   rº  rt   r7   rÞ  )r   r   rt   rÈ   )rÅ   r§   rº  r¿   )
r   r   r   r4   r5   r¼  r¿  rà  rj   r
   )r0   rO   Úx0Úx1rc   rá  rº   r&   r&   r'   Útest_permuted_with_stridesW  s   
ÿ
z)TestRandomDist.test_permuted_with_stridesc                 C   s   t  g ¡}t|g ƒ d S r#   )rO   rà  r
   )r0   rá  r&   r&   r'   Útest_permuted_emptyd  s   
z"TestRandomDist.test_permuted_emptyÚoutshaper¦   r`   c                 C   s`   t  g d¢¡}t j||jd�}tjtdd�� tj||d� W d   ƒ d S 1 s)w   Y  d S )Nr›   rK   z
same shaper~   ©rß  )	r4   rj   rN   rL   r�   r‚   r>   rO   rà  )r0   rè  r  rß  r&   r&   r'   Ú"test_permuted_out_with_wrong_shapeh  s
   "ÿz1TestRandomDist.test_permuted_out_with_wrong_shapec                 C   s^   t jdt jd�}t  d¡}tjtdd�� tj|d|d� W d   ƒ d S 1 s(w   Y  d S )N)rt   r`   rK   zCannot castr~   r7   rÞ  )	r4   rN   r  r’  r�   r‚   r=   rO   rà  )r0   rß  rc   r&   r&   r'   Ú!test_permuted_out_with_wrong_typeo  s
   
"ÿz0TestRandomDist.test_permuted_out_with_wrong_typec                 C   sV   t  d¡}d|j_tjtdd�� tj|d|d� W d   ƒ d S 1 s$w   Y  d S )N)rI   r`   FrÐ  r~   r7   rÞ  )	r4   rN   rÑ  rÒ  r�   r‚   r>   rO   rà  rb   r&   r&   r'   Útest_permuted_not_writeableu  s
   
"ÿz*TestRandomDist.test_permuted_not_writeablec                 C   óL   t t| jƒƒ}|jdddd�}t ddgddgd	d
gg¡}t||dd� d S )Nru  rp   rS  rÔ   gWâ™<$ÅÝ=g¾^
ðº=gð/:ŸÐ‹˜?gÿñÖG!Gc>g©À'ë`Œ2?gåÂUÆ?rÃ   re  )r   r   r   Úbetar4   rj   r   rZ  r&   r&   r'   Ú	test_beta{  s   þÿzTestRandomDist.test_betac                 C   sp   t t| jƒƒ}|jdddd�}t ddgddgdd	gg¡}t||ƒ t t| jƒƒ}| dd¡}d}t||ƒ d S )
NgZd;ßY@gÉv¾Ÿ/Ý?rS  rÔ   r�  rV  é0   é,   r¾   )r   r   r   rP   r4   rj   r
   rZ  r&   r&   r'   Útest_binomial„  s   
þ
zTestRandomDist.test_binomialc                 C   óJ   t t| jƒƒ}|jddd�}t ddgddgdd	gg¡}t||d
d� d S )Nr¾   rS  rÔ   gm�ÉE~@@g¹
•1Ï‚C@gÚrÓ³­L@gì•m%x¬L@g<kÿÝQ¶K@gó“tªâµK@rÂ   re  )r   r   r   Ú	chisquarer4   rj   r   rZ  r&   r&   r'   Útest_chisquare‘  ó   
þzTestRandomDist.test_chisquarec                 C   sÄ   t t| jƒƒ}t ddg¡}|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|j|ƒ t t| jƒƒ}t ddg¡}| |¡}t||d dd� d S )Nç“­I<ÝI@ç÷ÉEZßC@rS  rÔ   gˆ2›8\há?gòšÉŽG/Ý?g©Aëpâá?gæ­|);Ü?gùLX�Ëâ?gfOáhôÛ?góë�·WŽá?g(Þ�PãÜ?gz$Q¿ùß?gÄmWt à?gæ��K‹Âà?g4ÞÄhézÞ?rÃ   re  çHáz®Gá?ç¼‰Ø—²Òœ¼r)  )	r   r   r   r4   rj   Ú	dirichletr   r   r>   )r0   rO   Úalphar5  r$  Ú	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 )Nr÷  rø  r7   re   rI   rf   rg   )
r4   rj   r   rO   rû  rh   ri   r   r=   rk   rl   r&   r&   r'   Útest_dirichlet_size¬  s   z"TestRandomDist.test_dirichlet_sizec                 C   sŒ   t  ddg¡}tttj|ƒ tttjddggƒ tttjdgdggƒ tttjdgdggdgdgggƒ tttjt  ddgddgg¡ƒ d S )Nrù  rú  r`   r7   )r4   rj   r   r>   rO   rû  )r0   rü  r&   r&   r'   Útest_dirichlet_bad_alpha¸  s   "$z'TestRandomDist.test_dirichlet_bad_alphac                 C   sh   t  g d¢¡}|d d d… }tt| jƒƒ}|j|dd�}tt| jƒƒ}|jt  |¡dd�}t||ƒ d S )N)r÷  g      ð¿rø  rI   rS  rÔ   )r4   rj   r   r   r   rû  rx   r   )r0   r  rü  rO   ry   rz   r&   r&   r'   Ú#test_dirichlet_alpha_non_contiguousÃ  s   ÿz2TestRandomDist.test_dirichlet_alpha_non_contiguousc                 C   sx   d}|t  ddg¡ }tt| jƒƒ}|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� d S )	Nr}   ç      ð?r¬   rS  rÔ   r]   rÃ   re  )r4   rj   r   r   r   rû  r   )r0   Úepsrü  rO   r5  rº   r&   r&   r'   Útest_dirichlet_small_alphaÍ  s    ÿÿÿûz)TestRandomDist.test_dirichlet_small_alphac                 C   sT   t  ddg¡}|| ¡  }tt| jƒƒ}|j|dd�}|jdd�}t||dd� d S )	Ng{®Gáz”?ç{®Gáz¤?i -1rÔ   r   r¨   r¬   )r®   )	r4   rj   rw   r   r   r   rû  r²   r   )r0   rü  Ú
exact_meanrO   r³   Úsample_meanr&   r&   r'   Ú%test_dirichlet_moderately_small_alphaÜ  s   z4TestRandomDist.test_dirichlet_moderately_small_alpharü  )r`   r   r   r¢   )rM   r   r   r   )r7   r`   r   r   ç      ø?r   r   r   )g{®Gáz„?g¸…ëQ¸ž?r   r­   )gñhãˆµøä>r   r   r   )gü©ñÒMb`?g¸…ëQ¸Ž?r   r   r  r   r   r   r]   r—   c                 C   s*   t  |¡}t |¡}t||dk dƒ d S )Nr   r]   )r4   rj   rO   rû  r   )r0   rü  rá  r&   r&   r'   Ú&test_dirichlet_multiple_zeros_in_alphaé  s   

z5TestRandomDist.test_dirichlet_multiple_zeros_in_alphac                 C   ró  )Ngï8EGrùñ?rS  rÔ   g�v‰üïM¹?gùíìŸ×øø?g#è±ïc³?g–Qü¹:Nü?gªAÜæPÑ÷?gE_9†‹ù@rÃ   re  )r   r   r   Úexponentialr4   rj   r   rZ  r&   r&   r'   Ú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   rO   r  r   r>   r?   r&   r&   r'   Útest_exponential_0  ó   z!TestRandomDist.test_exponential_0c                 C   rí  )Nr�   éM   rS  rÔ   g}(ÒŒÝ?g½i›ñ?g=‘‹rûšñ?g]hÍÇDAí?gjÓ¨¦à?g8·Ñk*uê?rÃ   re  )r   r   r   Úfr4   rj   r   rZ  r&   r&   r'   Útest_f  ó   
þzTestRandomDist.test_fc                 C   rí  )Nr`   rt   rS  rÔ   g,×©Ën'@gtô²±@gÝ<åe½2@g£1‰Äa”3@g3r
yÑ-2@gs�«1-2@rÅ   re  )r   r   r   Úgammar4   rj   r   rZ  r&   r&   r'   Ú
test_gamma  r  zTestRandomDist.test_gammac                 C   s*   t tjddd�dƒ tttjddd� d S )Nr   )ri   r  r  )r   rO   r  r   r>   r?   r&   r&   r'   Útest_gamma_0  s   zTestRandomDist.test_gamma_0c                 C   sF   t t| jƒƒ}|jddd�}t ddgddgddgg¡}t||ƒ d S )Nç_c97Ýš¿?rS  rÔ   r7   rº  r�   r¿   )r   r   r   Ú	geometricr4   rj   r
   rZ  r&   r&   r'   Ú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jdd�� t ttjtjƒ t ttjtjgd ƒ W d   ƒ d S 1 sGw   Y  d S )Nrn   r   ro   Úignore©Úinvalid)r   r>   rO   r  r4   ÚerrstaterS   r?   r&   r&   r'   Útest_geometric_exceptions!  s   "þz(TestRandomDist.test_geometric_exceptionsc                 C   rí  )Nr  ç       @rS  ©Úlocr  rš   gÈA7GëÀ@gþ«1Fi‡Ò¿geši¹ì@gš¸¹Œ_Cä¿g0cÙPí ¬¿g’`�(¤_Õ¿rÃ   re  )r   r   r   Úgumbelr4   rj   r   rZ  r&   r&   r'   Útest_gumbel*  r  zTestRandomDist.test_gumbelc                 C   r  r  )r   rO   r'  r   r>   r?   r&   r&   r'   Útest_gumbel_02  r  zTestRandomDist.test_gumbel_0c                 C   sò   t t| jƒƒ}|jddddd�}t ddgddgddgg¡}t||ƒ |jdd	d
dd�}t g d¢¡}t||ƒ |jdd	ddd�}t g d¢¡}t||ƒ |jd	dd
dd�}t g d¢¡}t||ƒ |jd	dddd�}t g d¢¡}t||ƒ d S )Ng333333$@g      @rÅ   rS  rÔ   r   r   r`   r   rt   r‰   )rt   rt   rt   rt   rÃ   r�   )r�   r�   r�   r�   )r   r   r   r   )r   r   r   Úhypergeometricr4   rj   r
   rZ  r&   r&   r'   Útest_hypergeometric6  s&   
þ



z"TestRandomDist.test_hypergeometricc                 C   rí  )Nr  r$  rS  r%  g�ÍÕ6@	Àga@bDA"ó?g*–[rÑ{Àg³>K—‚ú?g«À‘(˜í?gž<ý©’ô?rÃ   re  )r   r   r   Úlaplacer4   rj   r   rZ  r&   r&   r'   Útest_laplaceP  r  zTestRandomDist.test_laplacec                 C   r  r  )r   rO   r,  r   r>   r?   r&   r&   r'   Útest_laplace_0X  r  zTestRandomDist.test_laplace_0c                 C   rí  )Nr  r$  rS  r%  gbýíµZÀgHÊŠg$>þ?g>ÔÑ&ø”ÀgÐQhÊ@g%?n‡í÷?g¯Ä‰Ò8|ÿ?rÃ   re  )r   r   r   Úlogisticr4   rj   r   rZ  r&   r&   r'   Útest_logistic\  r  zTestRandomDist.test_logisticc                 C   rí  )Nr  r$  rS  )r²   Úsigmarš   gÜ’˜Ðx›?gúÅÕk*è+@gšð<ž¡Ò¾?g†á�
ð@g5�Ìaþ@gá%jzÇ(@rÂ   re  )r   r   r   Ú	lognormalr4   rj   r   rZ  r&   r&   r'   Útest_lognormald  r  zTestRandomDist.test_lognormalc                 C   s&   t tjdd�dƒ tttjdd� d S )Nr   )r1  r7   r  )r   rO   r2  r   r>   r?   r&   r&   r'   Útest_lognormal_0l  r  zTestRandomDist.test_lognormal_0c                 C   sF   t t| jƒƒ}|jddd�}t ddgddgdd	gg¡}t||ƒ d S )
NgÆ€@õŒí?rS  )rQ   rš   rÅ   r¿   rt   é   r`   r7   )r   r   r   Ú	logseriesr4   rj   r
   rZ  r&   r&   r'   Útest_logseriesp  r  zTestRandomDist.test_logseriesc                 C   s$   t t| jƒƒ}| d¡dksJ ‚d S )Nr   r7   )r   r   r   r6  rš  r&   r&   r'   Útest_logseries_zerox  s   z"TestRandomDist.test_logseries_zeroÚvaluer;   r  g      @c              	   C   s  t t| jƒƒ}tjdd��p t t¡� | |¡ W d   ƒ n1 s#w   Y  t t¡� | t 	|gd ¡¡ W d   ƒ n1 sCw   Y  t t¡� | t 	|gd ¡d d d… ¡ W d   ƒ n1 shw   Y  W d   ƒ d S W d   ƒ d S 1 s€w   Y  d S )Nr  r   r   rI   )
r   r   r   r4   r"  r�   r‚   r>   r6  rj   )r0   r9  rO   r&   r&   r'   Útest_logseries_exceptions|  s   ÿþ"þú"úz(TestRandomDist.test_logseries_exceptionsc                 C   sf   t t| jƒƒ}|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È   rS  rÔ   )r7   r`   r7   rÈ   r‰   rt   )r‰   rI   rÈ   rI   r‰   rI   )r`   rt   rI   rÈ   rt   r7   )r‰   r‰   r   rI   rt   rÁ   )rÈ   rt   r7   r`   rt   rI   )r`   r`   rt   r7   rI   r‰   )r   r   r   rZ   r4   rj   r
   rZ  r&   r&   r'   Útest_multinomial‰  s   
ÿÿÿüzTestRandomDist.test_multinomialzfp errors don't work in wasm©Úreasonr–   )ÚsvdÚeighÚcholeskyc                 C   sˆ  t t| jƒƒ}d}ddgddgg}d}|j||||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� |j|||d�}t ddg¡}t||dd� ddg}ddgddgg}tt|j||dd� ddgddgg}t	t
|j||ƒ t	t
|j||dd� tt|j||dd� t|j||dd� tt|j||dd� tt|j||ddd� ddgddgg}|dv rÌ|j||d|d�}t|d |d  d!d� n
tt|j||dd� tjdd"gd"dggtjd#�}tƒ �}	|j|||d� |	 t
¡}
t|
ƒdksýJ ‚W d   ƒ n	1 �sw   Y  t d¡}t d¡}tt|j||d$d� tt|jt d%¡|ƒ tt|j|t d¡ƒ tt|j|t d&¡ƒ d S )'N)r  r   r7   r   rS  r˜   gºt¦Ž«õû¿g¨ãÒ$ƒ&@g&Ø¨O=åï¿g!Ðæ¯$@gÒDÝo¼é?g‹™¿ïº\&@gÀ,£Rü{ì?gÜÁó
f¿!@g?ÕªìÑæ?gTâ^o#@g`¾Rï„Îæ?g€’PÁû'@rÃ   re  gýùlÜÍ?g$Çû(Ù"@rI   Úraise)Úcheck_validr@  rA  r  )rC  r–   )r?  r@  r™   ).r   ).r7   rÈ   ru  rK   Úother)rI   r7   r7   rt   )r   r   r   Úmultivariate_normalr4   rj   r   r   r>   r   ÚRuntimeWarningr   r	   r€   r   Úrecordr!  rN   Úeyerž   )r0   r–   rO   r²   Úcovrš   r5  r$  rI  ÚsupÚwÚmur&   r&   r'   Útest_multivariate_normal”  s�   
ÿÿÿüÿÿÿ
ÿÿÿ
ÿÿÿ
ý

ÿ
ÿ
ÿ
ÿz'TestRandomDist.test_multivariate_normalz	mean, covy      ð?      ð?y                c                 C   sN   t t| jƒƒ}tjtdd�� | ||¡ W d   ƒ d S 1 s w   Y  d S )Nzmust not be complexr~   )r   r   r   r�   r‚   r=   rE  )r0   r²   rI  rO   r&   r&   r'   Ú)test_multivariate_normal_disallow_complexß  s   "ÿz8TestRandomDist.test_multivariate_normal_disallow_complexc           	      C   s¢   t t| jƒƒ}d}t ddg¡}t ddgddgg¡}|j|||f|d�}|| }|j| |d  }t t | 	d¡¡dk ¡sAJ ‚t t || ¡dk ¡sOJ ‚d S )Nr*   r7   rI   r™   rA   ru  rW   )
r   r   r   r4   rj   rE  r®  ra   Úabsr²   )	r0   r–   rO   Ún_sr²   rI  r1   Ús_centerÚcov_empr&   r&   r'   Ú$test_multivariate_normal_basic_statså  s    z3TestRandomDist.test_multivariate_normal_basic_statsc                 C   rP  )NrV   g|ò°Pkš¿?rS  )ÚnrQ   rš   i  i×  i  iø  iX  i¢  )r   r   r   rÛ   r4   rj   r
   rZ  r&   r&   r'   rÜ   ò  s   
þz%TestRandomDist.test_negative_binomialc                 C   s\   t jdd�� 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   rV   r   )r4   r"  r   r>   rO   rÛ   rS   r?   r&   r&   r'   Ú!test_negative_binomial_exceptionsú  s   

ÿ"þz0TestRandomDist.test_negative_binomial_exceptionsc                 C   s:   t tƒ� t dd¡}W d   ƒ d S 1 sw   Y  d S ©Nr7   r   )r   r>   rO   rÛ   rb   r&   r&   r'   Ú#test_negative_binomial_p0_exception   s   
"ÿz2TestRandomDist.test_negative_binomial_p0_exceptionc                 C   sV   t jdd�� tttjddƒ tttjdgdgƒ W d   ƒ d S 1 s$w   Y  d S )Nr  r   r'  ru  )r4   r"  r   r>   rO   rÛ   r?   r&   r&   r'   Ú.test_negative_binomial_invalid_p_n_combination  s   "þz=TestRandomDist.test_negative_binomial_invalid_p_n_combinationc                 C   sÎ   t t| jƒƒ}|jdddd�}t ddgddgdd	gg¡}t||d
d� |jdddd�}t ddgddgddgg¡}t||d
d� t t| jƒƒ}|jdddd�}t ddgddgddgg¡}t||d
d� d S )Nr`   rS  )ÚdfÚnoncrš   gsØ€3Jû?gugÙˆ“ò/@gN‹JÁþm+@g†àA}¸-4@gq=È¹&@gj…©ïhn@rÅ   re  rM   rW   gZÖ…„DÙN?gÒÔE!X&?gt÷ô¦%Tò?gQ§)»¤V?g5…Zlf�þ?gÎŽáÎ{ó?r   gm€K°‹ê?gÓ©Z…Òü?gŽ%yKY@gÅ@¥W@gÄˆºµ{>@gŠ&ÆBB=@)r   r   r   Únoncentral_chisquarer4   rj   r   rZ  r&   r&   r'   Útest_noncentral_chisquare  s(   
þ
þ
þz(TestRandomDist.test_noncentral_chisquarec                 C   óN   t t| jƒƒ}|jddddd�}t ddgdd	gd
dgg¡}t||dd� d S )Nr`   rI   r7   rS  )ÚdfnumÚdfdenrZ  rš   gœHP
á®?gõÀnŒÎ?g²%¬f—Ëë?gc×hÑ?gžzÆŽÆëÍ?gÞ]Ô?:þ?rÅ   re  )r   r   r   Únoncentral_fr4   rj   r   rZ  r&   r&   r'   Útest_noncentral_f!  ó   
ÿ
þz TestRandomDist.test_noncentral_fc                 C   s2   t t| jƒƒ}|jddtjd�}t |¡sJ ‚d S )Nr`   rI   )r^  r_  rZ  )r   r   r   r`  r4   rS   Úisnan©r0   rO   r5  r&   r&   r'   Útest_noncentral_f_nan*  s   z$TestRandomDist.test_noncentral_f_nanc                 C   rí  )Nr  r$  rS  r%  gÕ?`x‚òÀg\èPà÷@g/7Ž‘uï Àg�0aj¸Öé?g�®iœ%÷?go—¶g®â@rÃ   re  )r   r   r   Únormalr4   rj   r   rZ  r&   r&   r'   Útest_normal/  r  zTestRandomDist.test_normalc                 C   r  r  )r   rO   rf  r   r>   r?   r&   r&   r'   Útest_normal_07  r  zTestRandomDist.test_normal_0c                 C   sN   t t| jƒƒ}|jddd�}t ddgddgdd	gg¡}tjj||d
d� d S )Nr  rS  ©r  rš   gÂìÃ¡ð?g¢Æ«ŒhÕò@gˆiŽ`®>ç?gƒü0"&Ag¯ÿ‹cæ@g=‰¸f�Ar½   )Únulp)r   r   r   Úparetor4   rj   ÚtestingÚassert_array_almost_equal_nulprZ  r&   r&   r'   Útest_pareto;  s   
þ	zTestRandomDist.test_paretoc                 C   sF   t t| jƒƒ}|jddd�}t ddgddgddgg¡}t||ƒ d S )Nr  rS  )Úlamrš   r   )r   r   r   Úpoissonr4   rj   r
   rZ  r&   r&   r'   Útest_poissonI  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 jdd�� tttjt jƒ tttjt jgd ƒ W d   ƒ d S 1 sOw   Y  d S )Nr�   r;   r   r  r   )	r4   rŽ   r�   r   r>   rO   rp  r"  rS   )r0   ÚlambigÚlamnegr&   r&   r'   Útest_poisson_exceptionsQ  s   "þz&TestRandomDist.test_poisson_exceptionsc                 C   ró  )Nr  rS  ri  g‰¯²¶Zý >g‰«¡µú¹?gÃ„î(ñ=gÒ‡ö¾ŒÃ?g›ÅšÿEö´?gûß¢˜“HÙ?rÃ   re  )r   r   r   Úpowerr4   rj   r   rZ  r&   r&   r'   Ú
test_power\  rö  zTestRandomDist.test_powerc                 C   ró  )Nr   rS  )r  rš   grêyŸÇ@gßtQÒP«0@gAI¼�ð_@g@âu8¿1@g¹æ	¾ƒG0@g"wæc5@rÅ   re  )r   r   r   Úrayleighr4   rj   r   rZ  r&   r&   r'   Útest_rayleighd  rö  zTestRandomDist.test_rayleighc                 C   r  r  )r   rO   rw  r   r>   r?   r&   r&   r'   Útest_rayleigh_0l  r  zTestRandomDist.test_rayleigh_0c                 C   óH   t t| jƒƒ}|jdd�}t ddgddgddgg¡}t||d	d
� d S )NrS  rÔ   g¹H1µ¼Ô÷¿gW˜|ÿ3
Àg‡ôå×\ìá?gL•eõÈå¿g5�Pâ	õ¿g–ÛûFAïÒ?rÃ   re  )r   r   r   Ústandard_cauchyr4   rj   r   rZ  r&   r&   r'   Útest_standard_cauchyp  ó   
þz#TestRandomDist.test_standard_cauchyc                 C   ró  )NrS  Úinvr™   ga\Œ5Âº?grô7k«ó?g8ªPC*�¶?g5ñè$–[÷?gW3ºT€ñ?g*ðÁê“ô?rÃ   re  )r   r   r   Ústandard_exponentialr4   rj   r   rZ  r&   r&   r'   Útest_standard_exponentialx  rö  z(TestRandomDist.test_standard_exponentialc                 C   ó   t ttjtjd� d S ©NrK   )r   r=   rO   r  r4   r  r?   r&   r&   r'   Ú#test_standard_expoential_type_error€  ó   z2TestRandomDist.test_standard_expoential_type_errorc                 C   ró  )Nrt   rS  ©ri   rš   gÎˆÌ�&ä?gT»Ï¿­”ó?g1n2ÿ1@gDb<zË@gÊBváÿ@gŠ„c^�þ@rÅ   re  ©r   r   r   Ústandard_gammar4   rj   r   rZ  r&   r&   r'   Útest_standard_gammaƒ  rö  z"TestRandomDist.test_standard_gammac                 C   s4   t t| jƒƒ}|jdtjd�}d}t||dd� d S )Nrt   rK   g   ÀÊd@rÈ   re  )r   r   r   r‡  r4   r€   r   rZ  r&   r&   r'   Ú!test_standard_gammma_scalar_float‹  s   z0TestRandomDist.test_standard_gammma_scalar_floatc                 C   ró  )Nrt   rS  r…  gfÚþ••&ä?gM„O¯”ó?g�½Þý1@gÇ):’Ë@g«²ïŠàÿ@g;ÂiÁ‹þ@r`   re  r†  rZ  r&   r&   r'   Útest_standard_gamma_float‘  rö  z(TestRandomDist.test_standard_gamma_floatc                 C   s”   t jdt jd�}tt| jƒƒ}|jd|t jd� t jddgddgd	d
ggt jd�}t||dd� tt| jƒƒ}|jd|dt jd� t||dd� d S )NrS  rK   ç      $@©rß  rL   g”M¹Â»L$@gÐa¾¼ {@g°�N]ùì"@gPSËÖú")@gŸ«­Ø_¦+@gmÊÞåB@r`   re  ©rß  rš   rL   )	r4   rN   r€   r   r   r   r‡  rj   r   )r0   r5  rO   r$  r&   r&   r'   Útest_standard_gammma_float_out™  s   
þþz-TestRandomDist.test_standard_gammma_float_outc                 C   s   t ttjddd� d S )Nr  r  rK   )r   r=   rO   r‡  r?   r&   r&   r'   Ú test_standard_gamma_unknown_type¦  s   

ÿz/TestRandomDist.test_standard_gamma_unknown_typec                 C   s6   t  d¡}tttjdd|d� tttjdd|d� d S )Nr   r‹  r§   )rš   rß  )r   r7   )r4   rN   r   r>   rO   r‡  )r0   rß  r&   r&   r'   Útest_out_size_mismatchª  s   
ÿ
ÿz%TestRandomDist.test_out_size_mismatchc                 C   r  )Nr   )ri   r  )r   rO   r‡  r   r>   r?   r&   r&   r'   Útest_standard_gamma_0±  r  z$TestRandomDist.test_standard_gamma_0c                 C   rz  )NrS  rÔ   gð
bYïý¿g?—ö ô?gGH{Lìñ¿gzÃ\ãÕ?gcöÈ`+å?gTÌü}×åò?rÃ   re  )r   r   r   rÕ   r4   rj   r   rZ  r&   r&   r'   Útest_standard_normalµ  r}  z#TestRandomDist.test_standard_normalc                 C   r�  r‚  )r   r=   rO   rÕ   r4   r  r?   r&   r&   r'   Ú%test_standard_normal_unsupported_type½  r„  z4TestRandomDist.test_standard_normal_unsupported_typec                 C   ró  )Nr   rS  )rY  rš   g…‰V1Á÷¿g	|Ú™(•Ó?g‰öÒË-èð?gÍ NàhÚ¿gMäcìºÀ?g!uLòîM ÀrÃ   re  )r   r   r   Ú
standard_tr4   rj   r   rZ  r&   r&   r'   Útest_standard_tÀ  rö  zTestRandomDist.test_standard_tc                 C   r]  )Ng{®Gáz@gö(\�Âu$@g×£p=
W4@rS  )ÚleftÚmodeÚrightrš   gˆE©pw@g 4àDC+@g›ÍÅ‹á¹@g¿ƒš/¹,@gk£éïuR*@gHNPœcr+@rÅ   re  )r   r   r   Ú
triangularr4   rj   r   rZ  r&   r&   r'   Útest_triangularÈ  rb  zTestRandomDist.test_triangularc                 C   rí  )Nç®Gáz®ó?g®Gáz%@rS  )r.  r/  rš   gmª2ƒ@gJça˜D@gª¼:� @g
ö§×QÁ @g@T{eê¯@gÚbìþ’�@rÃ   re  ©r   r   r   Úuniformr4   rj   r   rZ  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 )Nrk   r   r7   g  Ø…W4vC)r.  r/  )
r4   Úfinforæ   r�   rO   r�  r   ÚOverflowErrorÚinfÚ	nextafter)r0   ÚfminÚfmaxÚfuncr&   r&   r'   Útest_uniform_range_boundsÙ  s   z(TestRandomDist.test_uniform_range_boundsc                 C   sn   t j}|ddƒ}t|dƒ |dtjgdtjgƒ}t|dtjgƒ |dgdggddgƒ}t|dt d¡ ƒ d S )Nr	  r]   g
×£p=Â @rg   )rO   r�  r   r4   ÚpirN   )r0   r¥  Úresultr&   r&   r'   Útest_uniform_zero_rangeé  s   

z&TestRandomDist.test_uniform_zero_rangec                 C   sH   t j}tt|ddƒ tt|ddgddgƒ tt|ddgddggdƒ d S )NrI   r7   r   rt   )rO   r�  r   r>   )r0   r¥  r&   r&   r'   Útest_uniform_neg_rangeò  s   z%TestRandomDist.test_uniform_neg_rangec                 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=   r?   r&   r&   r'   Ú	__float__   ó   zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloat.__float__N)rE   rF   rG   r®  r&   r&   r&   r'   ÚThrowingFloatÿ  ó    r°  r  c                   @   r«  )zITestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingIntegerc                 S   r¬  r#   r­  r?   r&   r&   r'   Ú__int__  r¯  zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingInteger.__int__N)rE   rF   rG   r²  r&   r&   r&   r'   ÚThrowingInteger  r±  r³  r7   )	r4   Úndarrayrj   r  r   r=   rO   r�  r*  )r0   r°  Úthrowing_floatr³  Úthrowing_intr&   r&   r'   Ú!test_scalar_exception_propagationø  s   
ÿz0TestRandomDist.test_scalar_exception_propagationc                 C   rí  )Nr›  ç¤p=
×£ø?rS  ©rL  Úkapparš   gLþÏAºñ?gûxÞyw»@g·ÉzÞVRý?g¡pEÑ ÿ?g‡8&™A¦Ð¿géÿ…šáv @rÃ   re  )r   r   r   Úvonmisesr4   rj   r   rZ  r&   r&   r'   Útest_vonmises  r  zTestRandomDist.test_vonmisesc                 C   s4   t t| jƒƒ}|jdddd�}tt |¡ ¡ ƒ d S )Nr]   gg5_PŸG>i@B r¹  )r   r   r   r»  r   r4   Úisfinitera   ©r0   rO   Úrr&   r&   r'   Útest_vonmises_small  s   z"TestRandomDist.test_vonmises_smallc                 C   s0   t t| jƒƒ}|jdtjd�}tt |¡ƒ d S )Nr]   )rL  rº  )r   r   r   r»  r4   rS   r   rc  r¾  r&   r&   r'   Útest_vonmises_nan  s   z TestRandomDist.test_vonmises_nanrº  g     ˆÃ@ç  4&õkCc                 C   st   t t| jƒƒ}t|jƒ}|jj}|jd|dd�}||j_|jd|dd�}|dk r/t||ƒ d S t 	||k¡s8J ‚d S )Nr   r   rÔ   g    €„.A)
r   r   r   r   rÎ   rÏ   r»  r   r4   ra   )r0   rº  rO   ÚrsrÏ   Úrandom_state_valsÚgen_valsr&   r&   r'   Útest_vonmises_large_kappa!  s   
z(TestRandomDist.test_vonmises_large_kapparL  g      ÀgÍÌÌÌÌÌÀgš™™™™™	@)r}   g�íµ ÷Æ°>r7   g     @�@rÂ  c                 C   sF   t t| jƒƒ}| ||d¡}tt |tj k¡ot |tjk¡ƒ d S )Nr¾   )r   r   r   r»  r   r4   ra   r§  )r0   rL  rº  rO   r¿  r&   r&   r'   Útest_vonmises_large_kappa_range/  s   *z.TestRandomDist.test_vonmises_large_kappa_rangec                 C   rí  )Nr›  r¸  rS  )r²   r  rš   g*Ø³©2Ñ?gçtÌï‚É	@g—;S @g\ÄÞ ÔF@g«xèÓF‘ @g ¿Œ6bç?rÅ   re  )r   r   r   Úwaldr4   rj   r   rZ  r&   r&   r'   Ú	test_wald6  r  zTestRandomDist.test_waldc                 C   ró  )Nr›  rS  ri  gnJZË¾Á?g*Ô/Fçô?gsÄ(RY“¼?gÿÛ]'%÷?g,×qãDô?gçÿö8Â þ?rÃ   re  )r   r   r   Úweibullr4   rj   r   rZ  r&   r&   r'   Útest_weibull>  rö  zTestRandomDist.test_weibullc                 C   s<   t t| jƒƒ}t|jddd�t d¡ƒ tt|jdd� d S )Nr   r�   ri  r  )r  )	r   r   r   r   rÊ  r4   rN   r   r>   rš  r&   r&   r'   Útest_weibull_0F  s   zTestRandomDist.test_weibull_0c                 C   sF   t t| jƒƒ}|jddd�}t ddgddgddgg¡}t||ƒ d S )	Nr›  rS  ri  r7   r   ic  ib  rI   )r   r   r   Úzipfr4   rj   r
   rZ  r&   r&   r'   Ú	test_zipfK  r  zTestRandomDist.test_zipf)ˆrE   rF   rG   r‡   r[  r_  ra  rd  rh  rj  rk  r�   rÊ   rË   r4   r€   rh   Úfloat64r  ro  rp  rs  rw  r{  r~  r„  r…  r†  r‰  r�  r‘  r“  r”  r˜  r›  r�  rµ  r½  r¾  rÂ  rÊ  rÏ  rÓ  rÛ  rÜ  rÝ  rJ   r+  rj   râ  ræ  rç  rê  rë  rì  rï  rò  rõ  rþ  rÿ  r   r  r  rN  r  r
  r  r  r  r  r  r  r#  r(  r)  r+  r-  r.  r0  r3  r4  r7  r8  r¢  rS   r:  r<  Úskipifr   rM  rN  rS  rÜ   rU  rW  rX  r\  ra  re  rg  rh  rn  rq  rt  rv  rx  ry  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'   rO  È  s:   

ÿÿ
		.				ÿÿÿüÿ
	

ùþ
	
$I

			$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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"e#j$ %dAdBe& 'dBdBg¡e& 'dBggdBggg¡g¡dCdD„ ƒZ(dEdF„ Z)dGdH„ Z*dIS )JÚTestBroadcastc                 C   r…   )NiÍ[r†   r?   r&   r&   r'   r‡   W  rˆ   zTestBroadcast.setup_methodc                 C   sŠ   t t| jƒƒ}dg}dg}|j}t g d¢¡}t t| jƒƒ}| |d |¡}t||dd� t t| jƒƒ}| ||d ¡}t||dd� d S )Nr   r7   )gî4Ô
7^Å?gÌF]
"É?gñ�Ø .è?rt   rÅ   re  rœ  )r0   rO   r.  r/  r�  r$  r5  r&   r&   r'   rž  Z  s   zTestBroadcast.test_uniformc                 C   s´   dg}dg}dg}t t| jƒƒ}t g d¢¡}t t| jƒƒ}| |d |¡}t||dd� tt|j|d |ƒ t t| jƒƒ}|j}|||d ƒ}t||dd� tt|||d ƒ d S )Nr   r7   r;   )gw-D¨’ÊØ¿gn§0_xé?gºÊŠ;<.”?rt   rÅ   re  )	r   r   r   r4   rj   rf  r   r   r>   )r0   r&  r  Ú	bad_scalerO   r$  r5  rf  r&   r&   r'   rg  i  s   zTestBroadcast.test_normalc           	      C   sª   dg}dg}dg}dg}t  g d¢¡}tt| jƒƒ}|j}||d |ƒ}t||dd� tt||d |ƒ tt||d |ƒ tt| jƒƒ}| ||d ¡}t||dd� d S )	Nr7   rI   r;   rA   )gfý8ñóõÇ?g”ü%–eoç?g¬$q?ÙòÆ?rt   rÅ   re  )	r4   rj   r   r   r   rî  r   r   r>   )	r0   r  r€  Úbad_aÚbad_br$  rO   rî  r5  r&   r&   r'   rï  {  s   zTestBroadcast.test_betac                 C   óZ   dg}dg}t  g d¢¡}tt| jƒƒ}| |d ¡}t||dd� tt|j|d ƒ d S ©Nr7   r;   )g`ˆ±Ê„å?gþEÑðõ]Ë?g°øæ?rt   rÅ   re  )	r4   rj   r   r   r   r  r   r   r>   ©r0   r  rÒ  r$  rO   r5  r&   r&   r'   r  �  ó   zTestBroadcast.test_exponentialc                 C   s\   dg}dg}t  g d¢¡}tt| jƒƒ}|j}||d ƒ}t||dd� tt||d ƒ d S rÖ  )	r4   rj   r   r   r   r‡  r   r   r>   )r0   ri   Ú	bad_shaper$  rO   Ú	std_gammar5  r&   r&   r'   rˆ  —  s   z!TestBroadcast.test_standard_gammac           	      C   óÒ   dg}dg}dg}dg}t  g d¢¡}tt| jƒƒ}|j}||d |ƒ}t||dd� tt||d |ƒ tt||d |ƒ tt| jƒƒ}|j}|||d ƒ}t||dd� tt|||d ƒ tt|||d ƒ d S )	Nr7   rI   r;   rA   )g3ˆ±Ê„õ?gJEÑðõ]Û?g°øö?rt   rÅ   re  )	r4   rj   r   r   r   r  r   r   r>   )	r0   ri   r  rÙ  rÒ  r$  rO   r  r5  r&   r&   r'   r  ¢  ó"   zTestBroadcast.test_gammac           	      C   rÛ  )	Nr7   rI   r;   rA   )g…M3Bèà³?gybi¶ë@g0ñ»ðòŸ­?rt   rÅ   re  )	r4   rj   r   r   r   r  r   r   r>   )	r0   r^  r_  Ú	bad_dfnumÚ	bad_dfdenr$  rO   r  r5  r&   r&   r'   r  ·  rÜ  zTestBroadcast.test_fc              	   C   s¤  dg}dg}dg}dg}dg}dg}t  g d¢¡}tt| jƒƒ}|j}	|	|d ||ƒ}
t|
|dd	� t  t  |	||t j	gd ƒ¡¡sDJ ‚t
t|	|d ||ƒ t
t|	|d ||ƒ t
t|	|d ||ƒ tt| jƒƒ}|j}	|	||d |ƒ}
t|
|dd	� t
t|	||d |ƒ t
t|	||d |ƒ t
t|	||d |ƒ tt| jƒƒ}|j}	|	|||d ƒ}
t|
|dd	� t
t|	|||d ƒ t
t|	|||d ƒ t
t|	|||d ƒ d S )
NrI   rt   r‰   r   r;   rA   )gÅœ,nÚ1 @g¨!ò°6Ö)@gó›ðË9çó?rÅ   re  )r4   rj   r   r   r   r`  r   ra   rc  rS   r   r>   )r0   r^  r_  rZ  rÝ  rÞ  Úbad_noncr$  rO   Únonc_fr5  r&   r&   r'   ra  Ì  s:   $zTestBroadcast.test_noncentral_fc                 C   s@   t t| jƒƒ}t ddg¡}|jddddd�}t||dd� d S )NgZ\ÇáÞ#¨?gDqìwº¿?rp   rI   rÔ   rÅ   re  )r   r   r   r4   rj   r`  r   )r0   rO   r$  r5  r&   r&   r'   Útest_noncentral_f_small_dfï  s   z(TestBroadcast.test_noncentral_f_small_dfc                 C   rÕ  )Nr7   r;   )g—¤éC{‰¬?g7Q‘ð#Ž÷?g%hÅ1T“@rt   rÅ   re  )	r4   rj   r   r   r   rô  r   r   r>   ©r0   rY  Úbad_dfr$  rO   r5  r&   r&   r'   rõ  õ  rØ  zTestBroadcast.test_chisquarec           	      C   rÛ  )	Nr7   rI   r;   rA   )g-¯èS½³?g×[ø@grª3/õ.ä?rt   rÅ   re  )	r4   rj   r   r   r   r[  r   r   r>   )	r0   rY  rZ  rã  rß  r$  rO   Únonc_chir5  r&   r&   r'   r\  ÿ  rÜ  z'TestBroadcast.test_noncentral_chisquarec                 C   rÕ  )Nr7   r;   )gäð>ßQö¿g™çý�{°ó¿g©,³‹eÆ?rt   rÅ   re  )	r4   rj   r   r   r   r”  r   r   r>   râ  r&   r&   r'   r•    rØ  zTestBroadcast.test_standard_tc                 C   s¤   dg}dg}dg}t  g d¢¡}tt| jƒƒ}| |d |¡}t||dd� tt|j|d |ƒ tt| jƒƒ}| ||d ¡}t||dd� tt|j||d ƒ d S )NrI   r7   r;   )g½Dê()@g,)Ê¸Ý@gP™›o»Àrt   rÅ   re  )	r4   rj   r   r   r   r»  r   r   r>   )r0   rL  rº  Ú	bad_kappar$  rO   r5  r&   r&   r'   r¼    s   zTestBroadcast.test_vonmisesc                 C   rÕ  )Nr7   r;   )gƒ/h¼Š°î?gcÀ‚EƒÎ?g/gÊVÌð?rt   rÅ   re  )	r4   rj   r   r   r   rk  r   r   r>   ©r0   r  rÓ  r$  rO   r5  r&   r&   r'   rn  .  rØ  zTestBroadcast.test_paretoc                 C   rÕ  rÖ  )	r4   rj   r   r   r   rÊ  r   r   r>   ræ  r&   r&   r'   rË  8  rØ  zTestBroadcast.test_weibullc                 C   rÕ  )Nr7   r;   )gï†ÕÃTß?gþÁÊ¥£È?gKêÜ®cà?rt   rÅ   re  )	r4   rj   r   r   r   ru  r   r   r>   ræ  r&   r&   r'   rv  B  rØ  zTestBroadcast.test_powerc                 C   ó¨   dg}dg}dg}t  g d¢¡}tt| jƒƒ}|j}||d |ƒ}t||dd� tt||d |ƒ tt| jƒƒ}|j}|||d ƒ}t||dd� tt|||d ƒ d S )Nr   r7   r;   )gh&•B�ñ¿gås­éí¿gRÙÀ#ßèæ?rt   rÅ   re  )	r4   rj   r   r   r   r,  r   r   r>   )r0   r&  r  rÒ  r$  rO   r,  r5  r&   r&   r'   r-  L  ó   zTestBroadcast.test_laplacec                 C   rç  )Nr   r7   r;   )g˜s¡4û?g”$Cw%Tø?gŒå›òÕ¿rt   rÅ   re  )	r4   rj   r   r   r   r'  r   r   r>   )r0   r&  r  rÒ  r$  rO   r'  r5  r&   r&   r'   r(  ^  rè  zTestBroadcast.test_gumbelc                 C   s¶   dg}dg}dg}t  g d¢¡}tt| jƒƒ}| |d |¡}t||dd� tt|j|d |ƒ tt| jƒƒ}| ||d ¡}t||dd� tt|j||d ƒ t	| dd	¡dƒ d S )
Nr   r7   r;   )g¡$ÆõD¸ù¿gŽXØëPŒö¿gŽ,Ûò?rt   rÅ   re  r  r]   )
r4   rj   r   r   r   r/  r   r   r>   r   )r0   r&  r  rÒ  r$  rO   r5  r&   r&   r'   r0  p  s   zTestBroadcast.test_logisticc                 C   s˜   dg}dg}dg}t  g d¢¡}tt| jƒƒ}|j}||d |ƒ}t||dd� tt||d |ƒ tt| jƒƒ}| ||d ¡}tt|j||d ƒ d S )Nr   r7   r;   )gõ cÚ¹å?g °­u»@g›Vóé…Qð?rt   rÅ   re  )	r4   rj   r   r   r   r2  r   r   r>   )r0   r²   r1  Ú	bad_sigmar$  rO   r2  r5  r&   r&   r'   r3  �  s   zTestBroadcast.test_lognormalc                 C   rÕ  )Nr7   r;   )gsó·(Žò?g4mKçìä?g…Vk¢+ó?rt   rÅ   re  )	r4   rj   r   r   r   rw  r   r   r>   r×  r&   r&   r'   rx  ‘  s   ÿzTestBroadcast.test_rayleighc                 C   sÒ   dg}dg}dg}dg}t  g d¢¡}tt| jƒƒ}| |d |¡}t||dd� tt|j|d |ƒ tt|j|d |ƒ tt| jƒƒ}| ||d ¡}t||dd� tt|j||d ƒ tt|j||d ƒ d S )	NrM   r7   r   rA   )gÓk7¥�ZØ?g´ˆ*}z9à?gcûµÛ-	ß?rt   rÅ   re  )	r4   rj   r   r   r   rÈ  r   r   r>   )r0   r²   r  Úbad_meanrÒ  r$  rO   r5  r&   r&   r'   rÉ  Ÿ  s   zTestBroadcast.test_waldc                 C   s¶  dg}dg}dg}dg}dg}|d \}}t  g d¢¡}tt| jƒƒ}	|	j}
|
|d ||ƒ}t||dd� tt|
|d ||ƒ tt|
|d ||ƒ tt|
|d ||ƒ tt| jƒƒ}	|	j}
|
||d |ƒ}t||dd� tt|
||d |ƒ tt|
||d |ƒ tt|
||d |ƒ tt| jƒƒ}	|	j}
|
|||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 )Nr7   rt   rI   r‰   )gR8Tµ¿>ù?gK›Ìú?g†;ôñ>h@rÅ   re  r‹  r]   g      4@g      9@)	r4   rj   r   r   r   r™  r   r   r>   )r0   r–  r˜  r—  Úbad_left_oneÚbad_mode_oneÚbad_left_twoÚbad_mode_twor$  rO   r™  r5  r&   r&   r'   rš  ²  sJ   ÿÿ
ÿzTestBroadcast.test_triangularc           
      C   sð   dg}dg}dg}dg}dg}t  g d¢¡}tt| jƒƒ}|j}||d |ƒ}	t|	|ƒ tt||d |ƒ tt||d |ƒ tt||d |ƒ tt| jƒƒ}| ||d ¡}	t|	|ƒ tt|||d ƒ tt|||d ƒ tt|||d ƒ d S )Nr7   rM   r;   r	  ©r   r   r7   rt   )	r4   rj   r   r   r   rP   r
   r   r>   )
r0   rT  rQ   Úbad_nÚ	bad_p_oneÚ	bad_p_twor$  rO   Úbinomr5  r&   r&   r'   rò  Ú  s&   

zTestBroadcast.test_binomialc           
      C   sú   dg}dg}dg}dg}dg}t jg d¢t jd�}tt| jƒƒ}|j}||d |ƒ}	t|	|ƒ tt	||d |ƒ tt	||d |ƒ tt	||d |ƒ tt| jƒƒ}|j}|||d ƒ}	t|	|ƒ tt	|||d ƒ tt	|||d ƒ tt	|||d ƒ d S )Nr7   rM   r;   r	  )r   rI   r7   rK   rt   )
r4   rj   r�   r   r   r   rÛ   r
   r   r>   )
r0   rT  rQ   rð  rñ  rò  r$  rO   Ú	neg_binomr5  r&   r&   r'   rÜ   ñ  s(   

z$TestBroadcast.test_negative_binomialc           	      C   sx   dg}dg}t  g d¢¡}tt| jƒƒ}|j}|d g}|j}||d ƒ}t||ƒ tt	||d ƒ tt	||d ƒ d S )Nr7   r;   )r   r   rt   rI   rt   )
r4   rj   r   r   r   Ú_poisson_lam_maxrp  r
   r   r>   )	r0   ro  Úbad_lam_oner$  rO   Úmax_lamÚbad_lam_tworp  r5  r&   r&   r'   rq  		  s   

zTestBroadcast.test_poissonc                 C   s¨   dg}dg}t  g d¢¡}tt| jƒƒ}|j}||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 sMw   Y  d S )NrI   r   )r7   r¢   r7   rt   r  r   )r4   rj   r   r   r   rÍ  r
   r   r>   r"  rS   )r0   r  rÓ  r$  rO   rÍ  r5  r&   r&   r'   rÎ  	  s   
"þzTestBroadcast.test_zipfc                 C   ón   dg}dg}dg}t  g d¢¡}tt| jƒƒ}|j}||d ƒ}t||ƒ tt||d ƒ tt||d ƒ d S )NrM   r;   r	  r¶   rt   )	r4   rj   r   r   r   r  r
   r   r>   )r0   rQ   rñ  rò  r$  rO   r  r5  r&   r&   r'   r  &	  ó   
zTestBroadcast.test_geometricc                 C   s2  dg}dg}dg}dg}dg}dg}dg}t  g d¢¡}tt| jƒƒ}	|	 |d ||¡}
t|
|ƒ tt|	j|d ||ƒ tt|	j|d ||ƒ tt|	j|d ||ƒ tt|	j|d ||ƒ tt| jƒƒ}	|	 ||d |¡}
t|
|ƒ tt|	j||d |ƒ tt|	j||d |ƒ tt|	j||d |ƒ tt|	j||d |ƒ tt| jƒƒ}	|	j}||||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
ƒ tt|ddd	ƒ tt|dddƒ tt|dddgdƒ d S )Nr7   rI   r;   rA   r‰   rï  rt   r   r§   r£   i   @iç  l        r¾   i    r*   )	r4   rj   r   r   r   r*  r
   r   r>   )r0   ÚngoodÚnbadr¡   Ú	bad_ngoodÚbad_nbadÚbad_nsample_oneÚbad_nsample_twor$  rO   r5  Ú	hypergeomr&   r&   r'   r+  3	  sJ   


z!TestBroadcast.test_hypergeometricc                 C   rù  )NrM   rI   r;   )r7   r7   r7   rt   )	r4   rj   r   r   r   r6  r
   r   r>   )r0   rQ   rñ  rò  r$  rO   r6  r5  r&   r&   r'   r7  `	  rú  zTestBroadcast.test_logseriesc                 C   sn  t t| jƒƒ}|jddgdgd dd�}tjg d¢g d¢gg d	¢g d
¢gg d¢g d¢ggtjd�}t||ƒ t t| jƒƒ}| ddgdgd ¡}tjg d¢g d¢gtjd�}t||ƒ t t| jƒƒ}| ddgdgd gd ¡}tjg d¢g d¢gtjd�}t||ƒ t t| jƒƒ}| dgdggdgd gd ¡}tjg d¢g d¢gg d¢g d
¢ggtjd�}t||ƒ d S )Nr`   r§   r;  rÈ   rS  rÔ   )r   r   rI   r7   rI   r   )rI   rt   rÈ   r‰   rI   rt   )r7   r   r7   r   rI   r7   )rÁ   rI   rI   r7   r‰   r‰   )r   rI   r   r7   rI   r   )rt   rI   rt   rt   r‰   r`   rK   rI   )r   r   rI   r7   r7   r7   )r‰   rI   rt   rt   r`   rt   )r   r   r   rZ   r4   rj   r�   r
   rZ  r&   r&   r'   r<  m	  sV   
ÿÿÿüû

ÿÿ

ÿÿ
 
ÿÿþýzTestBroadcast.test_multinomialrT  r   c                 C   sH  t t| jƒƒ}t dgd ¡}| ||¡}t|tƒrtƒ n|j	}|d }|j	|ks+J ‚t 
||g¡}| ||¡}t ||j	d d… ¡d }|j	|ksLJ ‚t 
|g|gg¡}| ||¡}t ||j	d d… ¡}|j	|d ksoJ ‚|j||d| d�}|j	d| d ks„J ‚t t¡� |j||dd�}W d   ƒ d S 1 s�w   Y  d S )Nrˆ  r‰   )r‰   r;   rS  rÔ   )r7   r7   r7   r7   r7   r7   )r   r   r   r4   rj   rZ   r°   rJ   r‹  ri   r­  Úbroadcast_shapesr�   r‚   r>   )r0   rT  rO   rv   r5  Ún_shaper´   r&   r&   r'   Útest_multinomial_pval_broadcastŒ	  s&   "þz-TestBroadcast.test_multinomial_pval_broadcastc                 C   sF   t t| jƒƒ}dgd dgd g}tt|jd|ƒ tt|jddƒ d S )Nr;  rÈ   rˆ  r7   rM   )r   r   r   r   r>   rZ   )r0   rO   rv   r&   r&   r'   Útest_invalid_pvals_broadcast¨	  s   z*TestBroadcast.test_invalid_pvals_broadcastc                 C   s‚   t t| jƒƒ}| t dd¡dgd ¡}|jdksJ ‚| dt d¡¡}|jdks+J ‚| t dd¡t d	¡¡}|jd	ks?J ‚d S )
N)r   r   rÈ   Úi8r;  rÈ   )r   r   rÈ   rÈ   r�   )r   r   r   )rt   r   rÁ   )rt   r   rÁ   r‰   )r   r   r   rZ   r4   rž   ri   rd  r&   r&   r'   Útest_empty_outputs®	  s   ÿz TestBroadcast.test_empty_outputsN)+rE   rF   rG   r‡   rž  rg  rï  r  rˆ  r  r  ra  rá  rõ  r\  r•  r¼  rn  rË  rv  r-  r(  r0  r3  rx  rÉ  rš  rò  rÜ   rq  rÎ  r  r+  r7  r<  r�   rÊ   rË   r4   rj   r  r  r  r&   r&   r&   r'   rÑ  T  sP    
#




(-
þ
rÑ  zcan't start threadr=  c                   @   ó4   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 )Nr‰   )r3   Úseedsr?   r&   r&   r'   r‡   ¼	  s   zTestThread.setup_methodc                    sÎ   ddl m‰  t t| jƒf| ¡}t t| jƒf| ¡}‡ ‡fdd„t| j|ƒD ƒ}dd„ |D ƒ dd„ |D ƒ t| j|ƒD ]\}}ˆtt|ƒƒ|ƒ q>t 	¡ j
jdkr`tjdkr`t||ƒ d S t||ƒ d S )	Nr   )ÚThreadc                    s(   g | ]\}}ˆ ˆt t|ƒƒ|fd �‘qS ))ÚtargetÚargs)r   r   )r¨  r1   Úo©r  Úfunctionr&   r'   rª  Æ	  s    ÿz-TestThread.check_function.<locals>.<listcomp>c                 S   ó   g | ]}|  ¡ ‘qS r&   )Ústart©r¨  rc   r&   r&   r'   rª  È	  r«  c                 S   r  r&   )Újoinr  r&   r&   r'   rª  É	  r«  r‰   Úwin32)Ú	threadingr  r4   rž   r!  r
  Úzipr   r   ÚintprL   r‘   r  Úplatformr   r
   )r0   r  ÚszÚout1Úout2Útr1   r  r&   r  r'   Úcheck_function¿	  s   
ÿzTestThread.check_functionc                 C   ó   dd„ }| j |dd� d S )Nc                 S   s   | j dd�|d< d S )Nr–  rÔ   .)rf  ©rÏ   rß  r&   r&   r'   Ú
gen_randomÖ	  r\   z*TestThread.test_normal.<locals>.gen_random)r–  ©r  ©r  ©r0   r!  r&   r&   r'   rg  Õ	  ó   zTestThread.test_normalc                 C   r  )Nc                 S   s   | j t d¡d�|d< d S )N©rV   r*   r  .)r  r4   r’  r   r&   r&   r'   r!  Ü	  s   z'TestThread.test_exp.<locals>.gen_randomr&  r"  r#  r$  r&   r&   r'   Ú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Ô   .)rZ   r   r&   r&   r'   r!  â	  s   z/TestThread.test_multinomial.<locals>.gen_random)r–  rÈ   r"  r#  r$  r&   r&   r'   r<  á	  r%  zTestThread.test_multinomialN)rE   rF   rG   r‡   r  rg  r'  r<  r&   r&   r&   r'   r	  ¹	  s    r	  c                   @   r  )ÚTestSingleEltArrayInputc                 C   s4   t  dg¡| _t  dg¡| _t  dg¡| _d| _d S )NrI   rt   r‰   r°  )r4   rj   ÚargOneÚargTwoÚargThreeÚtgtShaper?   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Ú   )rO   r  r‡  rô  r”  rk  rÊ  ru  rw  rp  rÍ  r  r6  r4   rj   r)  r   ri   r,  )r0   Ú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 )NrM   r   )rO   r�  rf  rî  r  r  r[  r»  r,  r'  r/  r2  rÈ  rP   rÛ   r4   rj   r*  r)  r   ri   r,  )r0   r-  r.  r¥  r*  rß  r&   r&   r'   Útest_two_arg_funcs
  s(   úòz*TestSingleEltArrayInput.test_two_arg_funcsc              	   C   s¶   t jt jt jt jt jt jt jt jt j	g	}t
j}t  dg¡}t  dg¡}|D ]3}|||||d�}t|j| jƒ ||d |||d�}t|j| jƒ |||d ||d�}t|j| jƒ q%d S )Nr7   r   rß   )r4   rå   r  r  r
  r  r  rh   r�   r  rO   r.   rj   r   ri   r,  )r0   r(   rä   r¥  r/  r.  rè   rß  r&   r&   r'   r[  
  s   ÿøz%TestSingleEltArrayInput.test_integersc                 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   )
rO   r`  r™  r*  r)  r*  r+  r   ri   r,  )r0   r-  r¥  rß  r&   r&   r'   Útest_three_arg_funcs/
  s   ÿøz,TestSingleEltArrayInput.test_three_arg_funcsN)rE   rF   rG   r‡   r/  r0  r[  r1  r&   r&   r&   r'   r(  é	  s    r(  r-  c                 C   sî   | d }| d }t |ƒ}| |¡ |jd d }tjdkr!| ¡ }t |¡}|jd d | d d ks5J ‚| ¡ | d d ksAJ ‚| 	¡ }|jd d }tjdkrU| ¡ }t |¡}|jd d | d	 d ksiJ ‚| ¡ | d	 d ksuJ ‚d S )
Nr   r   rÏ   rÐ   r@  r   r   r   r   )
r   r8   rÏ   r  r  r  r  r  r  r   )r-  r   r   Úmt19937rÐ   r  r   r&   r&   r'   Útest_jumped>
  s"   




r3  c                  C   sh  t  d¡} t  d¡}d}tj| |dd�jdksJ ‚t t¡� tj| ||d� W d   ƒ n1 s1w   Y  t t¡� tj| |dd� W d   ƒ n1 sNw   Y  t t¡� tj| |dd� W d   ƒ n1 skw   Y  t  d¡}t t¡� tj||d� W d   ƒ n1 sŒw   Y  t t¡� tj|dd� W d   ƒ n1 s¨w   Y  t t¡� tj|dd� W d   ƒ n1 sÄw   Y  t  	|¡}t t¡� tj||d	� W d   ƒ n1 såw   Y  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 �s%w   Y  t t¡� tj
d
dgddgdd� W d   ƒ n	1 �sGw   Y  t t¡� tjddgddgdd� W d   ƒ n	1 �siw   Y  tjddd�}tjddd�}tjddd�}t |||¡jdk�s�J ‚tjtdd�� tj|||dd� W d   ƒ d S 1 �s­w   Y  d S )Nrt   )r‰   rt   )r   r‰   rI   )r`   r‰   rt   rÔ   )r7   rt   )r‰   r7   r7   )rt   ré  r7   r|  gffffffæ?)rI   r7   rI   r`   zOutput size \(6, 5, 1, 1\) isr~   )rÈ   r`   r7   r7   )r4   r’  rO   rf  ri   r�   r‚   r>   r‡  rž   rP   rZ   rô  r`  )rL  r1  rš   ri   rß  r  r€  r�  r&   r&   r'   Útest_broadcast_size_errorZ
  s\   

ÿÿÿ
ÿÿÿ
ÿÿÿÿÿ$ÿr4  c                  C   sd   t  d¡} t  d¡}tj| |dd� t t¡� tj| |dd� W d   ƒ d S 1 s+w   Y  d S )Nrt   rÔ   rI   )r4   r’  rO   rf  r�   r‚   r>   )rL  r1  r&   r&   r'   Útest_broadcast_size_scalar…
  s   

"ÿr5  c                  C   s8   g g dg} t tdƒƒ}t|j| ƒ | dg g gksJ ‚d S rV  )r   r   r	   rz  )ÚseqÚgenr&   r&   r'   Útest_ragged_shuffle�
  s   
r8  r/  rA   c                 C   sä   t tdƒƒ}|r
dnd}tjt|d�� |j| |d� W d   ƒ n1 s%w   Y  |r.dnd}tjt|d�� |jd| |d� W d   ƒ n1 sJw   Y  tjt|d�� |jdg| |d� W d   ƒ d S 1 skw   Y  d S )	Nr   zhigh < 0z	high <= 0r~   rc  z
low > highzlow >= highr;   )r   r   r�   r‚   r>   r.   )r/  r(   r7  Úmsgr&   r&   r'   Ú!test_single_arg_integer_exception•
  s   ÿÿ"ÿr:  rL   Úf4Úf8c                 C   sž   t jdd| d�}g d¢}tjtdd�� tj||| d� W d   ƒ n1 s&w   Y  tjtdd�� tj|||j| d� W d   ƒ d S 1 sHw   Y  d S )	Nr¦   ÚF)ÚorderrL   r›   zSupplied output arrayr~   rŒ  r�  )r4   rž   r�   r‚   r>   rO   r‡  ri   )rL   rß  ri   r&   r&   r'   Útest_c_contig_req_out¤
  s   ÿ"ÿr?  r>  r=  ÚCÚdistc                 C   sH   t jd||d�}| ||d�}||u sJ ‚| |||jd�}||u s"J ‚d S )Nr¦   )rL   r>  rŒ  )rß  rL   rš   )r4   rž   ri   )rA  r>  rL   rß  Úvariatesr&   r&   r'   Útest_contig_req_out¯
  s
   rC  c                  C   sz   t j t j d¡¡} |  d¡ |  ¡ \}\}}|jjdksJ ‚t|ƒ |dŽ }t|ƒ |j	|j
_	|j
j	}|j	|ks;J ‚d S )Nr   r7   Ú	PCG64DXSM)rD  )r4   rO   r   rD  rÕ   Ú
__reduce__Ú	__class__rE   ÚprintrÏ   rÎ   )rÑ   ÚctorÚbit_genÚ_r€  Ústate_br&   r&   r'   Ú$test_generator_ctor_old_style_pickle»
  s   

rL  c                  C   s�   dd l } tj tj d¡¡}|jj}|  |  |¡¡}|jj}t	|j
|j
ƒ t	|j|jƒ |jj d¡ |  |  |¡¡}|jj}t	|j
|j
ƒ d S )Nr   iØ4r   )Úpickler4   rO   r   rD  rÎ   Úseed_seqÚloadsÚdumpsr   rÏ   ÚpoolÚspawn)rM  rÑ   ÚssÚrg_plkÚss_plkr&   r&   r'   Ú#test_pickle_preserves_seed_sequenceÊ
  s   rV  Úversionéy   é~   c                 C   sÆ   dd l }dd l}tj tj t¡¡d }tj |dd| › d�¡}| |¡�}| 	|¡}W d   ƒ n1 s5w   Y  |j
jd }t|tƒsGJ ‚t|j
tjjƒsQJ ‚|d dksYJ ‚|d dksaJ ‚d S )	Nr   rÆ  Úgenerator_pcg64_npz.pkl.gzrÏ   l	   ãa*MÞzÂJÐRÈ2MÚP Úincl	   ©sðñN	D%(ã^Î6íFA )rM  ÚgzipÚosÚpathÚsplitÚabspathÚ__file__r  ÚopenÚloadrÎ   rÏ   r°   r   r4   rO   ÚPCG64)rW  rM  r\  Ú	base_pathÚpkl_fileÚgzrÑ   rÏ   r&   r&   r'   Útest_legacy_pickleÜ
  s   ÿÿrh  )7Úos.pathr]  r  r  r�   Únumpyr4   Únumpy.exceptionsr   Únumpy.linalgr   Únumpy.testingr   r   r   r   r   r	   r
   r   r   r   Únumpy.randomr   r   r   r   rO   ÚJUMP_TEST_DATAÚfixturer(   r)   rH   rU   r„   rÌ   rÝ   rO  rÑ  rÊ   rÐ  r	  r(  rË   r3  r4  r5  r8  r:  r?  rÕ   rC  rL  rV  rh  r&   r&   r&   r'   Ú<module>   s”    0
üüüó
$7 "                i/U
+

	