o
    Ô­jÇ ã                   @   sê   d dl Z d dlZd dlZd dlmZmZmZmZm	Z	m
Z
mZmZmZ d dlmZ d dl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d�G dd„ dƒƒZG d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ÚIS_WASM)Úrandomc                   @   ó4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚTestSeedc                 C   s<   t j d¡}t| d¡dƒ t j d¡}t| d¡dƒ d S )Nr   éè  i¬  ì   ÿÿ i£  )Únpr   ÚRandomStater   Úrandint©ÚselfÚs© r   ú[/var/www/html/CropPilot/venv/lib/python3.10/site-packages/numpy/random/tests/test_random.pyÚtest_scalar   s   zTestSeed.test_scalarc                 C   s‚   t j tdƒ¡}t| d¡dƒ t j t  d¡¡}t| d¡dƒ t j dg¡}t| d¡dƒ t j dg¡}t| d¡dƒ d S )Né
   r   iÔ  r   iÍ  r   i	  )r   r   r   Úranger   r   Úaranger   r   r   r   Ú
test_array   s   zTestSeed.test_arrayc                 C   s$   t ttjjdƒ t ttjjdƒ d S )Nç      à¿éÿÿÿÿ©r   Ú	TypeErrorr   r   r   Ú
ValueError©r   r   r   r   Útest_invalid_scalar    s   zTestSeed.test_invalid_scalarc                 C   sb   t ttjjdgƒ t ttjjdgƒ t ttjjdgƒ t ttjjg d¢ƒ t ttjjg d¢ƒ d S )Nr   r   ì        )é   é   r$   )r%   éþÿÿÿr$   r   r"   r   r   r   Útest_invalid_array%   s
   zTestSeed.test_invalid_arrayc                 C   sR   t ttjjtjg tjd�ƒ t ttjjg d¢gƒ t ttjjg d¢g d¢gƒ d S )N©Údtype©r%   r&   é   )é   é   é   )r   r!   r   r   r   ÚarrayÚint64r"   r   r   r   Útest_invalid_array_shape-   s   
ÿ
ÿz!TestSeed.test_invalid_array_shapeN)Ú__name__Ú
__module__Ú__qualname__r   r   r#   r(   r2   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 )Nr&   Úintr)   )r   ç      à?r%   r   )r   Úzerosr   r   Úbinomialr   )r   r9   Úpr   r   r   Útest_n_zero7   s
   þzTestBinomial.test_n_zeroc                 C   s   t ttjdtjƒ d S )Nr%   )r   r!   r   r:   r   Únanr"   r   r   r   Útest_p_is_nan@   s   zTestBinomial.test_p_is_nanN)r3   r4   r5   r<   r>   r   r   r   r   r6   6   s    	r6   c                   @   r   )ÚTestMultinomialc                 C   s   t  dddg¡ d S )Néd   çš™™™™™É?çš™™™™™é?©r   Úmultinomialr"   r   r   r   Ú
test_basicF   ó   zTestMultinomial.test_basicc                 C   s   t  dg d¢¡ d S )Nr@   )rA   rB   ç        rG   rG   rC   r"   r   r   r   Útest_zero_probabilityI   rF   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.   )r   r   r   r   Úall)r   Úxr   r   r   Útest_int_negative_intervalL   s   $z*TestMultinomial.test_int_negative_intervalc                 C   sÐ   ddg}t tj d|t d¡¡jdƒ t tj d|t d¡¡jdƒ t tj d|t d¡¡jdƒ t tj d|ddg¡jdƒ t tj d|d¡jdƒ t tj d|t d¡¡jdƒ tttjjd|t	dƒƒ d S )Nr8   r%   ©r%   r&   r&   ©r&   r&   r&   ©r&   r&   )
r   r   r   rD   Úuint32Úshaper0   r   r    Úfloat©r   r;   r   r   r   Ú	test_sizeR   s   ÿÿzTestMultinomial.test_sizec              	   C   s€   t ttjjdddggƒ t ttjjddgdggƒ t ttjjddgdggdgdgggƒ t ttjjdt ddgddgg¡ƒ d S )Nr   r   r%   )r   r!   r   r   rD   r0   r"   r   r   r   Útest_multidimensional_pvals`   s   &(z+TestMultinomial.test_multidimensional_pvalsN)r3   r4   r5   rE   rH   rL   rT   rU   r   r   r   r   r?   E   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 )ÚTestSetStatec                 C   s$   d| _ t | j ¡| _| j ¡ | _d S ©NiÒ–I)Úseedr   r   ÚprngÚ	get_stateÚstater"   r   r   r   Úsetup_methodh   s   zTestSetState.setup_methodc                 C   s<   | j  d¡}| j  | j¡ | j  d¡}tt ||k¡ƒ d S )Né   )rY   ÚtomaxintÚ	set_stater[   r   r   rJ   ©r   ÚoldÚnewr   r   r   rE   m   s   zTestSetState.test_basicc                 C   s@   | j jdd�}| j  | j¡ | j jdd�}tt ||k¡ƒ d S ©Nr,   ©Úsize)rY   Ústandard_normalr_   r[   r   r   rJ   r`   r   r   r   Útest_gaussian_resets   s   z TestSetState.test_gaussian_resetc                 C   sR   | j  ¡  | j  ¡ }| j jdd�}| j  |¡ | j jdd�}tt ||k¡ƒ d S rc   )rY   rf   rZ   r_   r   r   rJ   )r   r[   ra   rb   r   r   r   Ú test_gaussian_reset_in_media_resz   s   

z-TestSetState.test_gaussian_reset_in_media_resc                 C   sz   | j d d… }| jjdd�}| j |¡ | jjdd�}| j | j ¡ | jjdd�}tt ||k¡ƒ tt ||k¡ƒ d S )Nr'   r]   rd   )r[   rY   rf   r_   r   r   rJ   )r   Ú	old_stateÚx1Úx2Úx3r   r   r   Útest_backwards_compatibility…   s   z)TestSetState.test_backwards_compatibilityc                 C   s   | j  dd¡ d S ©Nr8   )rY   Únegative_binomialr"   r   r   r   Útest_negative_binomial‘   s   z#TestSetState.test_negative_binomialc                 C   s<   t  t¡� | j d¡ W d   ƒ d S 1 sw   Y  d S )Nr   )ÚpytestÚraisesÚ
IndexErrorrY   r_   r"   r   r   r   Útest_set_invalid_state–   s   "ÿz#TestSetState.test_set_invalid_stateN)
r3   r4   r5   r\   rE   rg   rh   rm   rp   rt   r   r   r   r   rV   g   s    rV   c                	   @   s|   e Zd Zej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dd„ Zdd„ ZdS )ÚTestRandintc                 C   s   t t| jdtd� d S ©Nr%   r)   )r   r    ÚrfuncrR   r"   r   r   r   Útest_unsupported_type¤   s   z!TestRandint.test_unsupported_typec                 C   s    | j D ]J}|tju rdnt |¡j}|tju rdnt |¡jd }tt| j|d ||d� tt| j||d |d� tt| j|||d� tt| jdd|d� qd S )Nr   r&   r%   r)   )	Úityper   Úbool_ÚiinfoÚminÚmaxr   r!   rw   )r   Ú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&   r%   r   ©re   r*   )ry   r   rz   r{   r|   r}   r   rw   )r   r~   r   r€   Útgtr   r   r   Útest_rng_zero_and_extremes°   s   
õz&TestRandint.test_rng_zero_and_extremesc                 C   s„   | j D ]<}|tju rdnt |¡j}|tju rdnt |¡jd }z
| j|||d� W q ty? } ztdt	|ƒ ƒ‚d }~ww d S )Nr   r&   r%   r)   zMNo error should have been raised, but one was with the following message:

%s)
ry   r   rz   r{   r|   r}   rw   Ú	ExceptionÚAssertionErrorÚstr)r   r~   r   r€   Úer   r   r   Útest_full_range¾   s   
þ€ÿúzTestRandint.test_full_rangec                 C   s’   t j ¡  | jdd … D ] }dD ]}| jd|d|d�}t| ¡ |k ƒ t| ¡ dkƒ qq| jdddt jd�}t| ¡ dk ƒ t| ¡ dkƒ d S )Nr%   )r-   é   r]   r&   i   r‚   r   )	r   r   rX   ry   rw   r   r}   r|   rz   )r   r~   r€   Úvalsr   r   r   Útest_in_bounds_fuzzÌ   s   
ýzTestRandint.test_in_bounds_fuzzc              
   C   sò   dd l }ddddddddddœ	}| jdd … D ]9}tj d	¡ tjd
kr.| jddd|d�}n| jddd|d� ¡ }| 	| 
tj¡¡ ¡ }t|t |¡j |kƒ qtj d	¡ | jdddtd� 
tj¡}| 	|¡ ¡ }t|t t¡j |kƒ d S )Nr   Ú@509aea74d792fb931784c4b0135392c65aec64beee12b0cc167548a2c3d31e71Ú@7b07f1a920e46f6d0fe02314155a2330bcfd7635e708da50e536c5ebb631a7d4Ú@e577bfed6c935de944424667e3da285012e741892dcb7051a8f1ce68ab05c92fÚ@0fbead0b06759df2cfb55e43148822d4a1ff953c7eb19a5b08445a63bb64fa9eÚ@001aac3a5acb935a9b186cbe14a1ca064b8bb2dd0b045d48abeacf74d0203404)	ÚboolÚint16Úint32r1   Úint8Úuint16rP   Úuint64Úuint8r%   iÒ  Úlittler/   r   r‚   r&   )Úhashlibry   r   r   rX   ÚsysÚ	byteorderrw   ÚbyteswapÚsha256Úviewr•   Ú	hexdigestr   r*   Únamer’   )r   rš   rƒ   r~   ÚvalÚresr   r   r   Útest_repeatabilityÛ   s,   ø

zTestRandint.test_repeatabilityc                 C   s`   t j}t  t j¡j}t  t  t j¡j¡}t  t  t j¡jd ¡}t jj|||d�}t||ƒ d S rv   )r   r1   r{   r}   r—   r   r   r   )r   r~   rƒ   r   r€   Úactualr   r   r   Útest_int64_uint64_corner_caseü   s   z)TestRandint.test_int64_uint64_corner_casec                 C   sÚ   | j D ]/}|tju rdnt |¡j}|tju rdnt |¡jd }| j|||d�}t|jt |¡ƒ qt	t
fD ]3}|t	u r?dnt |¡j}|t	u rKdnt |¡jd }| j|||d�}tt|dƒ ƒ tt|ƒ|ƒ q7d S )Nr   r&   r%   r)   r*   )ry   r   rz   r{   r|   r}   rw   r   r*   r’   r7   r   ÚhasattrÚtype)r   r~   r   r€   Úsampler   r   r   Útest_respect_dtype_singleton  s   
ùz(TestRandint.test_respect_dtype_singletonN)r3   r4   r5   r   r   r   rw   rz   r•   r˜   r“   r–   r”   rP   r1   r—   ry   rx   r�   r„   r‰   rŒ   r¤   r¦   rª   r   r   r   r   ru   œ   s    ÿ	!ru   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ej d'ejej ¡ ej ¡ g¡d(d)„ ƒZej d'ejej ¡ ej ¡ g¡ej d*d+d,g¡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„ Z0dSdT„ Z1dUdV„ Z2dWdX„ Z3dYdZ„ Z4d[d\„ Z5d]d^„ Z6d_d`„ Z7dadb„ Z8dcdd„ Z9dedf„ Z:dgdh„ Z;didj„ Z<dkdl„ Z=dmdn„ Z>dodp„ Z?dqdr„ Z@dsdt„ ZAdudv„ ZBdwdx„ ZCdydz„ 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—S )˜ÚTestRandomDistc                 C   ó
   d| _ d S rW   ©rX   r"   r   r   r   r\   *  ó   
zTestRandomDist.setup_methodc                 C   óJ   t j | j¡ t j dd¡}t  ddgddgddgg¡}t||d	d
� d S )Nr,   r&   ç_®\±*Íã?ç�›˜¬”îâ?ç<î�pì?ç®,º¥oˆì?çˆÂÉHÝ?çZ±­°êæè?é   ©Údecimal)r   r   rX   Úrandr0   r   ©r   r¥   Údesiredr   r   r   Ú	test_rand-  ó   
þzTestRandomDist.test_randc                 C   r¯   )Nr,   r&   çÿ!ã<Oqõ?ç4ð�u,Íû?çÁ³½3Ûû÷?çL«I/DÍ¿çà@ËÀŽ? @çÿHSÓ\@r¶   r·   )r   r   rX   Úrandnr0   r   rº   r   r   r   Ú
test_randn5  r½   zTestRandomDist.test_randnc                 C   óJ   t j | j¡ t jjdddd�}t  ddgddgd	d
gg¡}t||ƒ d S )Né�ÿÿÿéc   ©r,   r&   rd   é   r,   éÌÿÿÿé)   éÐÿÿÿé¾ÿÿÿ)r   r   rX   r   r0   r   rº   r   r   r   Útest_randint=  ó   
þzTestRandomDist.test_randintc                 C   sŠ   t j | j¡ tƒ �}| t¡}t j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
||ƒ d S )NrÇ   rÈ   rÉ   rd   r%   rÊ   r,   rË   rÌ   rÍ   rÎ   )r   r   rX   r	   ÚrecordÚDeprecationWarningÚrandom_integersr   Úlenr0   r   ©r   ÚsupÚwr¥   r»   r   r   r   Útest_random_integersE  s   
ý
þz#TestRandomDist.test_random_integersc                 C   sx   t ƒ �$}| t¡}tj t d¡jt d¡j¡}tt	|ƒdkƒ W d   ƒ n1 s*w   Y  t d¡j}t
||ƒ d S )NÚlr%   )r	   rÑ   rÒ   r   r   rÓ   r{   r}   r   rÔ   r   rÕ   r   r   r   Útest_random_integers_max_intP  s   

ÿüz+TestRandomDist.test_random_integers_max_intc                 C   st   t  ¡ �, t  dt¡ tttjjt d¡j	ƒ tttjjt d¡j	t d¡j	ƒ W d   ƒ d S 1 s3w   Y  d S )NÚerrorrÙ   )
ÚwarningsÚcatch_warningsÚsimplefilterrÒ   r   r   r   rÓ   r{   r}   r"   r   r   r   Útest_random_integers_deprecated_  s   

þþ"÷z.TestRandomDist.test_random_integers_deprecatedc                 C   sH   t j | j¡ t j d¡}t  ddgddgddgg¡}t||dd	� d S )
NrÉ   r°   r±   r²   r³   r´   rµ   r¶   r·   )r   r   rX   r0   r   rº   r   r   r   Útest_randomm  s   
þzTestRandomDist.test_randomc                 C   s8   t j | j¡ t j dd¡}t  g d¢¡}t||ƒ d S )Nr-   )r&   r,   r&   r,   ©r   r   rX   Úchoicer0   r   rº   r   r   r   Útest_choice_uniform_replaceu  s   z*TestRandomDist.test_choice_uniform_replacec                 C   s@   t j | j¡ t jjddg d¢d�}t  g d¢¡}t||ƒ d S )Nr-   )çš™™™™™Ù?rä   çš™™™™™¹?rå   ©r;   )r%   r%   r&   r&   rá   rº   r   r   r   Útest_choice_nonuniform_replace{  s   z-TestRandomDist.test_choice_nonuniform_replacec                 C   s<   t j | j¡ t jjdddd�}t  g d¢¡}t||ƒ d S )Nr-   r,   F©Úreplace)r   r%   r,   rá   rº   r   r   r   Útest_choice_uniform_noreplace�  ó   z,TestRandomDist.test_choice_uniform_noreplacec                 C   sB   t j | j¡ t jjdddg d¢d�}t  g d¢¡}t||ƒ d S )Nr-   r,   F)rå   g333333Ó?r8   rå   ©ré   r;   )r&   r,   r%   rá   rº   r   r   r   Ú test_choice_nonuniform_noreplace‡  s   ÿz/TestRandomDist.test_choice_nonuniform_noreplacec                 C   s<   t j | j¡ t j g d¢d¡}t  g d¢¡}t||ƒ d S )N)ÚaÚbÚcÚdr-   )rð   rñ   rð   rñ   rá   rº   r   r   r   Útest_choice_nonintegerŽ  rë   z%TestRandomDist.test_choice_nonintegerc                 C   s4  t j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   r,   g      @r%   r&   r-   )r%   r&   r,   r-   g      Ð?ræ   )rä   rä   rA   gš™™™™™ñ?gš™™™™™¹¿rä   r+   Frè   r'   )r   )r   r%   )r%   r   r   rì   )r   r   râ   r   r!   )r   r©   r   r   r   Útest_choice_exceptions”  s$   ÿ
ÿz%TestRandomDist.test_choice_exceptionsc              	   C   s4  ddg}t t tjjddd�¡ƒ t t tjjddd�¡ƒ t t tjjdd|d�¡ƒ t t tjjdd|d�¡ƒ t t tjjddgdd�¡ƒ t tjjd gdd�d u ƒ t ddg¡}tjdtd	�}||d
< t tjj|dd�|u ƒ tƒ }t t tjjd|dd�¡ ƒ t t tjjd|dd�¡ ƒ t t tjjd|d|d�¡ ƒ t t tjjd|d|d�¡ ƒ t t tjjddg|dd�¡ ƒ t tjjd g|dd�j	d
kƒ t ddg¡}tjdtd	�}||d
< t tjj||dd� 
¡ |u ƒ d}g d¢}ttjjd|dd�j|ƒ ttjjd|dd�j|ƒ ttjjd|d|d�j|ƒ ttjjd|d|d�j|ƒ ttjjt d¡|dd�j|ƒ ttjjd
d
dd�jdƒ ttjjd
dd
d�jdƒ ttjjddd
d�jdƒ ttjjd
d
d�jdƒ ttjjg dd�jdƒ ttjjddgdd�jdƒ tttjjg dƒ d S )Nrå   çÍÌÌÌÌÌì?r&   Trè   Frì   r%   r)   r   )r&   r,   )rå   rå   rå   rå   rä   rA   r/   )r,   r   r-   rd   iöÿÿÿ)r   r   rî   rï   )r   r   Úisscalarr   râ   r0   ÚemptyÚobjectÚtupleÚndimÚitemr   rQ   r   r   r   r!   )r   r;   rî   Úarrr   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j||d� d S )N)é*   r%   r&   )NNNræ   )r   r0   r   r!   r   râ   )r   rî   r;   r   r   r   Útest_choice_nan_probabilitiesÕ  s   z,TestRandomDist.test_choice_nan_probabilitiesc                 C   s,   t j | j¡ t j d¡}d}t||ƒ d S )Nr   s
   ‚Uižÿ—+Wf¥)r   r   rX   Ú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 | j¡ |g d¢ƒ}t j |¡ |}|g d¢ƒ}t||ƒ q#d S )Nc                 S   s
   t  g ¡S ©N)r   r0   ©rK   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  )r   ÚasarrayÚastyper•   r  r   r   r   r  å  ó    c                 S   r  r  )r   r  r  Úfloat32r  r   r   r   r  æ  r  c                 S   r  r  )r   r  r  Ú	complex64r  r   r   r   r  ç  r  c                 S   s   t  | ¡ t¡S r  )r   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  )r   r  r  r   r   r   r  ê  r  c                 S   s   t  | | g¡jS r  )r   Ú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ï   )r   r  r7   rŸ   Úrecarrayr  r   r   r   r  í  s    ÿ
c                 S   s$   t  dd„ | D ƒdtfdt jfg¡S )Nc                 S   r  r   r   r  r   r   r   r  ñ  r  r  rî   rï   )r   r  r÷   r”   r  r   r   r   r  ñ  s    ÿ)
r%   r&   r,   r-   r.   r/   é   rŠ   é	   r   )
r   r%   r  r/   r&   r-   r.   rŠ   r  r,   )r   r   rX   Úshuffler   )r   ÚconvÚalistr¥   r»   r   r   r   Útest_shuffleà  s&   òëzTestRandomDist.test_shufflec                 C   sÄ   t j t  tdƒd¡d d d¡}t j t  d¡d d d¡}| ¡ }| ¡ }tdƒD ]4}t j |¡ t	t
|j|j  ƒt
|j|j  ƒƒ t j |¡ t	t
|j|j  ƒt
|j|j  ƒƒ q+d S )Né   )r.   r-   r,   r%   r   é2   )r   ÚmaÚmasked_valuesÚreshaper   r   Úcopyr   r  r   ÚsortedÚdataÚmask)r   rî   rï   Úa_origÚb_origr  r   r   r   Útest_shuffle_maskedú  s   " ÿ ÿûz"TestRandomDist.test_shuffle_maskedr   c                 C   sb   ddddddddœ}t jtd	d
��}| |¡ W d   ƒ n1 s!w   Y  d|d jv s/J ‚d S )Nr   r%   r&   r,   r-   r.   r/   )r   r%   r&   r,   r-   r.   r/   z!you are shuffling a 'dict' object©Úmatchrà   )rq   ÚwarnsÚUserWarningr  Úfilename)r   r   ÚvaluesÚrecr   r   r   Útest_shuffle_untyped_warning  s   ÿþz+TestRandomDist.test_shuffle_untyped_warningÚuse_array_likeTFc                    sö   G dd„ dt jƒ}d t  dg¡t  d¡t  d¡t  d¡g}t j|td�}dd„ |D ƒ‰ |r2| |¡}t‡ fd	d
„|D ƒƒs?J ‚|rgt|t jj	ƒsgt
jtdd�� | |¡ W d   ƒ d S 1 s`w   Y  d S | |¡ t‡ fdd
„|D ƒƒsyJ ‚d S )Nc                   @   s   e Zd ZdS )z>TestRandomDist.test_shuffle_no_object_unpacking.<locals>.MyArrN)r3   r4   r5   r   r   r   r   ÚMyArr  s    r0  r,   r   r  r)   c                 S   s   h | ]}t |ƒ’qS r   ©Úidr  r   r   r   Ú	<setcomp>  r  zBTestRandomDist.test_shuffle_no_object_unpacking.<locals>.<setcomp>c                 3   ó   � | ]	}t |ƒˆ v V  qd S r  r1  r  ©Úitem_idsr   r   Ú	<genexpr>"  ó   € zBTestRandomDist.test_shuffle_no_object_unpacking.<locals>.<genexpr>z#Shuffling a one dimensional array.*r'  c                 3   r4  r  r1  r  r5  r   r   r7  +  r8  )r   Úndarrayr0   Úfloat64r÷   rŸ   rJ   Ú
isinstancer   Ú	Generatorrq   r)  r*  r  )r   r   r/  r0  Úitemsrû   r   r5  r   Ú test_shuffle_no_object_unpacking  s    $ÿ
ÿ"þ
z/TestRandomDist.test_shuffle_no_object_unpackingc                 C   s–   t j | j¡ t  d¡j}t j |¡ tt  |¡g d¢ƒ t j | j¡}| |¡ tt  |¡g d¢ƒ t j 	| j¡}| |¡ tt  |¡g d¢ƒ d S )Nr.   )r   r%   r-   r,   r&   )r   r%   r&   r,   r-   )r-   r%   r   r,   r&   )
r   r   rX   r   r"  r  r   r  r   Údefault_rng)r   rî   Úrngr   r   r   Útest_shuffle_memoryview-  s   

z&TestRandomDist.test_shuffle_memoryviewc                 C   sR   t  d¡}d|j_tjtdd�� t j |¡ W d   ƒ d S 1 s"w   Y  d S )Nr,   Fz	read-onlyr'  )	r   r9   ÚflagsÚ	writeablerq   rr   r!   r   r  )r   rî   r   r   r   Útest_shuffle_not_writeable<  s
   
"ÿz)TestRandomDist.test_shuffle_not_writeablec                 C   óN   t j | j¡ t jjdddd�}t  ddgddgd	d
gg¡}t||dd� d S )Nrå   rô   rÉ   rd   gAàÁKÄ�?g‘ñØhA?g õÒ‡o¿>gÎ¬XfÈ+q?gSâë1Ã$?g'8zXŒ ?r¶   r·   )r   r   rX   Úbetar0   r   rº   r   r   r   Ú	test_betaB  s   þÿzTestRandomDist.test_betac                 C   rÆ   )Nr@   gÉv¾Ÿ/Ý?rÉ   rd   é%   é+   rý   é0   é.   é-   )r   r   rX   r:   r0   r   rº   r   r   r   Útest_binomialK  rÐ   zTestRandomDist.test_binomialc                 C   óL   t j | j¡ t jjddd�}t  ddgddgdd	gg¡}t||d
d� d S )Nr  rÉ   rd   g+Qð]uðO@gëòìÇ+Q@gY7`´ZqP@gÈe‡(fŒG@gþv¯t€R@gEIÈ‹R@é   r·   )r   r   rX   Ú	chisquarer0   r   rº   r   r   r   Útest_chisquareS  ó   
þzTestRandomDist.test_chisquarec                 C   st   t j | j¡ t  ddg¡}t j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 )Nç“­I<ÝI@ç÷ÉEZßC@rÉ   rd   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·   )r   r   rX   r0   ÚmtrandÚ	dirichletr   )r   Úalphar¥   r»   r   r   r   Útest_dirichlet[  s   
ÿÿÿüzTestRandomDist.test_dirichletc                 C   sÈ   t  ddg¡}tt j |t  d¡¡jdƒ tt j |t  d¡¡jdƒ tt j |t  d¡¡jdƒ tt j |ddg¡jdƒ tt j |d¡jdƒ tt j |t  d¡¡jdƒ ttt jj|t	dƒƒ d S )NrS  rT  r%   rM   r&   rN   rO   )
r   r0   r   r   rV  rP   rQ   r   r    rR   rS   r   r   r   Útest_dirichlet_sizeg  s   z"TestRandomDist.test_dirichlet_sizec                 C   s�   t  ddg¡}ttt jj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 )NgHáz®Gá?g¼‰Ø—²Òœ¼r.   r%   )r   r0   r   r!   r   rU  rV  )r   rW  r   r   r   Útest_dirichlet_bad_alphas  s   "$z'TestRandomDist.test_dirichlet_bad_alphac                 C   rN  )Ngï8EGrùñ?rÉ   rd   gN÷·Uñ?gbI0æð?gùVU\õº@gˆ:€ì3ù@g©ºUýå?g�Ÿ"qoû?r¶   r·   )r   r   rX   Úexponentialr0   r   rº   r   r   r   Útest_exponential~  rR  zTestRandomDist.test_exponentialc                 C   ó*   t tjjdd�dƒ tttjjdd� d S ©Nr   ©Úscaleç       €)r   r   r   r[  r   r!   r"   r   r   r   Útest_exponential_0†  ó   z!TestRandomDist.test_exponential_0c                 C   rE  )Né   éM   rÉ   rd   g7¶„ó?gµ`j‹�ü?g6¶"+÷?gÜ³2>•‰ó?g‘cÍ>+Yð?g¡_}áS‚õ?r¶   r·   )r   r   rX   Úfr0   r   rº   r   r   r   Útest_fŠ  ó   
þzTestRandomDist.test_fc                 C   rE  )Nr.   r,   rÉ   rd   gÔ�GMçš8@g §â”ÈŒ<@g˜	´":@gÂvÀñÇ#)@gZQø·?@gr‚‚[•¦@@é   r·   )r   r   rX   Úgammar0   r   rº   r   r   r   Ú
test_gamma’  rh  zTestRandomDist.test_gammac                 C   s.   t tjjddd�dƒ tttjjddd� d S )Nr   )rQ   r`  ra  )r   r   r   rj  r   r!   r"   r   r   r   Útest_gamma_0š  s   zTestRandomDist.test_gamma_0c                 C   óH   t j | j¡ t jjddd�}t  ddgddgddgg¡}t||ƒ d S )	Nç_c97Ýš¿?rÉ   rd   rŠ   r  é   r.   rd  )r   r   rX   Ú	geometricr0   r   rº   r   r   r   Útest_geometricž  ó   
þzTestRandomDist.test_geometricc                 C   rE  )Nrn  ç       @rÉ   ©Úlocr`  re   gåûØ•ßÉ?g¨s0í Ö?gÊð#0÷¿gï(ôx”÷¿g-¶KÇD´ñ?géÅ¯p`@æ¿r¶   r·   )r   r   rX   Úgumbelr0   r   rº   r   r   r   Útest_gumbel¦  rh  zTestRandomDist.test_gumbelc                 C   r]  r^  )r   r   r   rv  r   r!   r"   r   r   r   Útest_gumbel_0®  rc  zTestRandomDist.test_gumbel_0c                 C   sü   t j | j¡ t jjddddd�}t  ddgddgddgg¡}t||ƒ t jjdddd	d�}t  g d
¢¡}t||ƒ t jjdddd	d�}t  g d¢¡}t||ƒ t jjdddd	d�}t  g d¢¡}t||ƒ t jjdddd	d�}t  g d¢¡}t||ƒ d S )Nr   r.   ri  rÉ   rd   r  r   r,   r-   )r,   r,   r,   r,   r¶   rd  )rd  rd  rd  rd  )r   r   r   r   )r   r   rX   Úhypergeometricr0   r   rº   r   r   r   Útest_hypergeometric²  s&   
þ



z"TestRandomDist.test_hypergeometricc                 C   rE  )Nrn  rs  rÉ   rt  gð¥ bÙOå?g¹Â¸ëÉçà?gpJmµú	@g{KÏ*Ët	@g•:^w-š«¿gˆY~oõûû?r¶   r·   )r   r   rX   Úlaplacer0   r   rº   r   r   r   Útest_laplaceÌ  rh  zTestRandomDist.test_laplacec                 C   r]  r^  )r   r   r   r{  r   r!   r"   r   r   r   Útest_laplace_0Ô  rc  zTestRandomDist.test_laplace_0c                 C   rE  )Nrn  rs  rÉ   rt  g#€�K-zñ?g€îJš¬ë?g�92ÄÜ@gØ±ã÷[@gê#+^ÑÀË¿g¢¥-óâ@r¶   r·   )r   r   rX   Úlogisticr0   r   rº   r   r   r   Útest_logisticØ  rh  zTestRandomDist.test_logisticc                 C   rE  )Nrn  rs  rÉ   )ÚmeanÚsigmare   g›ŽòÚÉ�0@goÎ,+4FB@gù�ƒ)Ê­6@g†§5éêæ?gnþxN—nP@g…©)‡úµU@rO  r·   )r   r   rX   Ú	lognormalr0   r   rº   r   r   r   Útest_lognormalà  rh  zTestRandomDist.test_lognormalc                 C   s*   t tjjdd�dƒ tttjjdd� d S )Nr   )r�  r%   ra  )r   r   r   r‚  r   r!   r"   r   r   r   Útest_lognormal_0è  rc  zTestRandomDist.test_lognormal_0c                 C   sH   t j | j¡ t jjddd�}t  ddgddgddgg¡}t||ƒ d S )NgÆ€@õŒí?rÉ   )r;   re   r&   r/   ro  r,   )r   r   rX   Ú	logseriesr0   r   rº   r   r   r   Útest_logseriesì  rr  zTestRandomDist.test_logseriesc                 C   sh   t j | j¡ 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/   rÉ   rd   )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   rX   rD   r0   r   rº   r   r   r   Útest_multinomialô  s   
ÿÿÿüzTestRandomDist.test_multinomialc                 C   sf  t j | j¡ d}ddgddgg}d}t j |||¡}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 j ||¡}t  ddg¡}t||dd� ddg}ddgddgg}ttt jj||ƒ tt jj||dd� t	t
t jj||dd� t jddgddggt jd�}tƒ �}t j ||¡ | t¡}t|ƒdks¡J ‚W d   ƒ d S 1 s¬w   Y  d S )N)rn  r   r%   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&   Úignore)Úcheck_validÚraiserå   r)   )r   r   rX   Úmultivariate_normalr0   r   r   ÚRuntimeWarningr   r   r!   r  r	   rÑ   rÔ   )r   r€  Úcovre   r¥   r»   rÖ   r×   r   r   r   Útest_multivariate_normalÿ  sD   
ÿÿÿüÿÿ
"ýz'TestRandomDist.test_multivariate_normalc                 C   rÆ   )Nr@   g|ò°Pkš¿?rÉ   )Únr;   re   iP  iI  i|  ic  i  i‡  )r   r   rX   ro   r0   r   rº   r   r   r   rp   '  rÐ   z%TestRandomDist.test_negative_binomialc                 C   sÔ   t j | j¡ t jjdddd�}t  ddgddgdd	gg¡}t||d
d� t jjdddd�}t  ddgddgddgg¡}t||d
d� t j | j¡ t jjdddd�}t  ddgddgddgg¡}t||d
d� d S )Nr.   rÉ   )ÚdfÚnoncre   gôûÖGë7@g!© ÈÜ´*@gž1}“z9?@g¹+é©¸™0@g26E_r#@g¦�I�!ó1@ri  r·   r8   rA   g�÷ô‹÷?g’šT¶ˆDÃ?gÀõ?Tƒ?gÍ+òqnlð?gÓ~|òùDÕ?gë°¬òÇÃ?r   g›{¿0¾1#@gpŽ§²rs'@gþ~;ïÑÓ$@g"‹†dIŽ@gö°Õöë÷*@gÑ}Ÿ'Á,@)r   r   rX   Únoncentral_chisquarer0   r   rº   r   r   r   Útest_noncentral_chisquare/  s(   
þ
þ
þz(TestRandomDist.test_noncentral_chisquarec                 C   óP   t j | j¡ 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.   r&   r%   rÉ   )ÚdfnumÚdfdenr’  re   gŒ^ýíå~ö?gƒ/+c¢äÕ?g"¡®.ž@gü†Œ÷Ž´@g×7í§ŸþÛ?g»ŒE·Öò?ri  r·   )r   r   rX   Únoncentral_fr0   r   rº   r   r   r   Útest_noncentral_fD  ó   ÿ
þz TestRandomDist.test_noncentral_fc                 C   rE  )Nrn  rs  rÉ   rt  gíœ&&n@gO»G_Ê@gÜ~w²ø@gtÁÜûw]Õ¿gm&¨5ú½@gŒñ$È>Û@r¶   r·   )r   r   rX   Únormalr0   r   rº   r   r   r   Útest_normalM  rh  zTestRandomDist.test_normalc                 C   r]  r^  )r   r   r   r›  r   r!   r"   r   r   r   Útest_normal_0U  rc  zTestRandomDist.test_normal_0c                 C   sP   t j | j¡ t jjddd�}t  ddgddgdd	gg¡}t jj||d
d� d S )Nrn  rÉ   ©rî   re   gÅWò˜I£@gùÔ¨y–@gy£Ÿ]Ó0‰Ag1~ÖÒ\�AgåËíãša@gÑY„
²7Aé   )Únulp)r   r   rX   Úparetor0   ÚtestingÚassert_array_almost_equal_nulprº   r   r   r   Útest_paretoY  s   þÿ
zTestRandomDist.test_paretoc                 C   sH   t j | j¡ t jjddd�}t  ddgddgddgg¡}t||ƒ d S )Nrn  rÉ   )Úlamre   r   r%   )r   r   rX   Úpoissonr0   r   rº   r   r   r   Útest_poissonh  rr  zTestRandomDist.test_poissonc                 C   s`   t  d¡j}d}ttt jj|ƒ ttt jj|gd ƒ ttt jj|ƒ ttt jj|gd ƒ d S )NrÙ   r   r   )r   r{   r}   r   r!   r   r¦  )r   ÚlambigÚlamnegr   r   r   Útest_poisson_exceptionsp  s   z&TestRandomDist.test_poisson_exceptionsc                 C   rN  )Nrn  rÉ   rž  gõ;•'û”?gÜ´èwÞ*�?g×†5›Ø?gF¡GÙ?g ÆËD]?gýÞ$`°ÉÀ?r¶   r·   )r   r   rX   Úpowerr0   r   rº   r   r   r   Ú
test_powerx  rR  zTestRandomDist.test_powerc                 C   rN  )Nr   rÉ   )r`  re   g"íu¨ÈÆ+@gîN$MBÄ*@g7v8Bô4@gêÿª55@geãˆ&@g~ŽÓ£ÌZ1@ri  r·   )r   r   rX   Úrayleighr0   r   rº   r   r   r   Útest_rayleigh€  rR  zTestRandomDist.test_rayleighc                 C   r]  r^  )r   r   r   r­  r   r!   r"   r   r   r   Útest_rayleigh_0ˆ  rc  zTestRandomDist.test_rayleigh_0c                 C   óJ   t j | j¡ t jjdd�}t  ddgddgddgg¡}t||d	d
� d S )NrÉ   rd   gMo³DL®è?g6Ï([9ÀgðºrF=òí?gÉM'	-™ ÀgóV¼ëûÀgVA:ìQyÇ?r¶   r·   )r   r   rX   Ústandard_cauchyr0   r   rº   r   r   r   Útest_standard_cauchyŒ  r½   z#TestRandomDist.test_standard_cauchyc                 C   r°  )NrÉ   rd   g°ö–Ü�Üî?gc!z¨ì?g&N˜¥"�@g¬NIàŠÇ@gFÇï>ú’ã?g¡~‚MEø?r¶   r·   )r   r   rX   Ústandard_exponentialr0   r   rº   r   r   r   Útest_standard_exponential”  r½   z(TestRandomDist.test_standard_exponentialc                 C   rN  )Nr,   rÉ   )rQ   re   g)§ž@g¾§Ä¾¤„@gd]‰,qÂ@gP‡kÌ{@g9B#Œ1@gÔÚv÷‡ @ri  r·   )r   r   rX   Ústandard_gammar0   r   rº   r   r   r   Útest_standard_gammaœ  rR  z"TestRandomDist.test_standard_gammac                 C   r]  )Nr   )rQ   ra  )r   r   r   rµ  r   r!   r"   r   r   r   Útest_standard_gamma_0¤  rc  z$TestRandomDist.test_standard_gamma_0c                 C   r°  )NrÉ   rd   r¾   r¿   rÀ   rÁ   rÂ   rÃ   r¶   r·   )r   r   rX   rf   r0   r   rº   r   r   r   Útest_standard_normal¨  r½   z#TestRandomDist.test_standard_normalc                 C   rN  )Nr   rÉ   )r‘  re   g\VÔHÂï?gßhUÍ%›¶¿gÿH$ðMÏõ?güøüL›³á¿gV«qdz¥Ç¿gã–€Õý“ã?r¶   r·   )r   r   rX   Ú
standard_tr0   r   rº   r   r   r   Útest_standard_t°  rR  zTestRandomDist.test_standard_tc                 C   r•  )Ng{®Gáz@gö(\�Âu$@g×£p=
W4@rÉ   )ÚleftÚmodeÚrightre   g:§}ŒÂ\)@ghØ±TjÓ(@g‡Ç¨L‰30@g6Úœ™ÅA0@g6¤õ—sh&@gœí<Šáþ,@ri  r·   )r   r   rX   Ú
triangularr0   r   rº   r   r   r   Útest_triangular¸  rš  zTestRandomDist.test_triangularc                 C   rE  )Nç®Gáz®ó?g®Gáz%@rÉ   )ÚlowÚhighre   g>#¥HÃö@g£¨uºó@g•ï‡§Ý#@g„}d]#@gø†‰N¶õ@g­w)*ó @r¶   r·   )r   r   rX   Úuniformr0   r   rº   r   r   r   Útest_uniformÁ  rh  zTestRandomDist.test_uniformc                 C   sš   t  d¡j}t  d¡j}t j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jt  	|d¡|d d� d S )NrR   r   r%   g  Ø…W4vC)rÁ  rÂ  )
r   Úfinfor|   r}   r   rÃ  r   ÚOverflowErrorÚinfÚ	nextafter)r   ÚfminÚfmaxÚfuncr   r   r   Útest_uniform_range_boundsÉ  s    z(TestRandomDist.test_uniform_range_boundsc                 C   sn   G dd„ dt jƒ}t  d¡ |¡}ttt jj||ƒ G dd„ dt jƒ}t  d¡ |¡}ttt jj|ddƒ d S )Nc                   @   s   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)r3   r4   r5   rÏ  r   r   r   r   ÚThrowingFloatà  s    rÑ  g      ð?c                   @   s   e Zd Zdd„ ZeZdS )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)r3   r4   r5   rÒ  Ú	__index__r   r   r   r   ÚThrowingIntegerè  s    rÔ  r%   )	r   r9  r0   rŸ   r   r    r   rÃ  ry  )r   rÑ  Úthrowing_floatrÔ  Úthrowing_intr   r   r   Ú!test_scalar_exception_propagationÙ  s   ÿz0TestRandomDist.test_scalar_exception_propagationc                 C   rE  )NrÀ  ç¤p=
×£ø?rÉ   ©ÚmuÚkappare   gL×üZI@g¦¢'N"@gÀ·…þkrØ?g”k=mœ@g�¹Ú‰ó?gÜ^Ì=�\ý?r¶   r·   )r   r   rX   Úvonmisesr0   r   rº   r   r   r   Útest_vonmisesñ  rh  zTestRandomDist.test_vonmisesc                 C   s:   t j | j¡ t jjdddd�}t j t  |¡ ¡ ¡ d S )NrG   gg5_PŸG>i@B rÙ  )r   r   rX   rÜ  r¢  r   ÚisfiniterJ   )r   Úrr   r   r   Útest_vonmises_smallù  s   z"TestRandomDist.test_vonmises_smallc                 C   rE  )NrÀ  rØ  rÉ   )r€  r`  re   gÉZ¥ƒ¢@g-ïŸg†@g¦8
ÄÖmÖ?gÃÎVP"ø?g`Vô áÎ?gx©^½&3Ì?ri  r·   )r   r   rX   Úwaldr0   r   rº   r   r   r   Ú	test_waldÿ  rh  zTestRandomDist.test_waldc                 C   rN  )NrÀ  rÉ   rž  g@–Ý6ï?g¦Óé]Aí?g(Ã1Ú¥Rþ?gù¤U þ?g“Í2§_uå?g^}-­Qö?r¶   r·   )r   r   rX   Úweibullr0   r   rº   r   r   r   Útest_weibull  rR  zTestRandomDist.test_weibullc                 C   s@   t j | j¡ tt jjddd�t  d¡ƒ ttt jjdd� d S )Nr   rd  rž  ra  )rî   )r   r   rX   r   rã  r9   r   r!   r"   r   r   r   Útest_weibull_0  s   zTestRandomDist.test_weibull_0c                 C   rm  )	NrÀ  rÉ   rž  éB   é   r%   r,   rO  )r   r   rX   Úzipfr0   r   rº   r   r   r   Ú	test_zipf  rr  zTestRandomDist.test_zipfN)Sr3   r4   r5   r\   r¼   rÅ   rÏ   rØ   rÚ   rß   rà   rã   rç   rê   rí   rò   ró   rü   rþ   r   r  r&  rq   ÚmarkÚparametrizer   r   r   r?  r.  r>  rA  rD  rG  rM  rQ  rX  rY  rZ  r\  rb  rg  rk  rl  rq  rw  rx  rz  r|  r}  r  rƒ  r„  r†  rˆ  r�  rp   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¢    .ÿ
ÿ	(		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¬   )NiÍ[r­   r"   r   r   r   r\      r®   zTestBroadcast.setup_methodc                 C   s   t j | j¡ d S r  )r   r   rX   r"   r   r   r   ÚsetSeed#  s   zTestBroadcast.setSeedc                 C   sn   dg}dg}t jj}t  g d¢¡}|  ¡  ||d |ƒ}t||dd� |  ¡  |||d ƒ}t||dd� d S )Nr   r%   ©gºlö×÷á?g_x¤¥á?g=å*BNà?r,   ri  r·   )r   r   rÃ  r0   rí  r   )r   rÁ  rÂ  rÃ  r»   r¥   r   r   r   rÄ  )  s   zTestBroadcast.test_uniformc                 C   ó˜   dg}dg}dg}t jj}t  g d¢¡}|  ¡  ||d |ƒ}t||dd� tt||d |ƒ |  ¡  |||d ƒ}t||dd� tt|||d ƒ d S )Nr   r%   r   )g-rö´@g¦Y®lõ@g-µ`¦wý?r,   ri  r·   )r   r   r›  r0   rí  r   r   r!   )r   ru  r`  Ú	bad_scaler›  r»   r¥   r   r   r   rœ  9  ó   zTestBroadcast.test_normalc                 C   óÂ   dg}dg}dg}dg}t jj}t  g d¢¡}|  ¡  ||d |ƒ}t||dd� tt||d |ƒ tt||d |ƒ |  ¡  |||d ƒ}t||dd� tt|||d ƒ tt|||d ƒ d S )	Nr%   r&   r   r'   )gnÍQVfÉ?gV©‹šKB³?gv®`køÏ?r,   ri  r·   )r   r   rF  r0   rí  r   r   r!   )r   rî   rï   Úbad_aÚbad_brF  r»   r¥   r   r   r   rG  L  ó    zTestBroadcast.test_betac                 C   óX   dg}dg}t jj}t  g d¢¡}|  ¡  ||d ƒ}t||dd� tt||d ƒ d S ©Nr%   r   )gö.Ug¬Zè?gi Pr�qè?gçÅEKÌæ?r,   ri  r·   )r   r   r[  r0   rí  r   r   r!   )r   r`  rð  r[  r»   r¥   r   r   r   r\  b  ó   zTestBroadcast.test_exponentialc                 C   rö  r÷  )r   r   rµ  r0   rí  r   r   r!   )r   rQ   Ú	bad_shapeÚ	std_gammar»   r¥   r   r   r   r¶  o  rø  z!TestBroadcast.test_standard_gammac                 C   rò  )	Nr%   r&   r   r'   )gö.Ug¬Zø?gi Pr�qø?gçÅEKÌö?r,   ri  r·   )r   r   rj  r0   rí  r   r   r!   )r   rQ   r`  rù  rð  rj  r»   r¥   r   r   r   rk  |  rõ  zTestBroadcast.test_gammac                 C   rò  )	Nr%   r&   r   r'   )gb—�yÊœé?g»åoðÄë?gT¹æ7Í@r,   ri  r·   )r   r   rf  r0   rí  r   r   r!   )r   r–  r—  Ú	bad_dfnumÚ	bad_dfdenrf  r»   r¥   r   r   r   rg  ’  rõ  zTestBroadcast.test_fc           
      C   sd  dg}dg}dg}dg}dg}dg}t j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 ƒ d S )
Nr&   r,   r-   r   r   r'   )gÈr±^G"@g/�*@g‹°�Ñ†š!@ri  r·   )r   r   r˜  r0   rí  r   r   r!   )
r   r–  r—  r’  rû  rü  Úbad_noncÚnonc_fr»   r¥   r   r   r   r™  ¨  s4   zTestBroadcast.test_noncentral_fc                 C   s<   |   ¡  t ddg¡}tjjddddd�}t||dd� d S )Ng¬ªaŒ‚z@gn4M;î%é?rô   r&   rd   ri  r·   )rí  r   r0   r   r˜  r   )r   r»   r¥   r   r   r   Útest_noncentral_f_small_dfÉ  s   z(TestBroadcast.test_noncentral_f_small_dfc                 C   rö  )Nr%   r   )g~¼}ÐN?â?g‘$FŽŸà?g'rS�èÀ?r,   ri  r·   )r   r   rP  r0   rí  r   r   r!   )r   r‘  Úbad_dfrP  r»   r¥   r   r   r   rQ  Ï  rø  zTestBroadcast.test_chisquarec                 C   rò  )	Nr%   r&   r   r'   )g©ç wÌ "@g2øêWR@g�ˆâRY@r,   ri  r·   )r   r   r“  r0   rí  r   r   r!   )r   r‘  r’  r   rý  Únonc_chir»   r¥   r   r   r   r”  Ü  rõ  z'TestBroadcast.test_noncentral_chisquarec                 C   rö  )Nr%   r   )gTÄò�@g~‹Fžl@gÆštø�pð?r,   ri  r·   )r   r   r¹  r0   rí  r   r   r!   )r   r‘  r   Útr»   r¥   r   r   r   rº  ò  rø  zTestBroadcast.test_standard_tc                 C   rï  )Nr&   r%   r   )g´®W!è@gü�OBº¦ÀgÈ}Ç?àý¿r,   ri  r·   )r   r   rÜ  r0   rí  r   r   r!   )r   rÚ  rÛ  Ú	bad_kapparÜ  r»   r¥   r   r   r   rÝ  ÿ  rñ  zTestBroadcast.test_vonmisesc                 C   rö  )Nr%   r   )g&ƒ8¾?ò?g�e�âFXò?gªÕ‹Ë�Ÿð?r,   ri  r·   )r   r   r¡  r0   rí  r   r   r!   )r   rî   ró  r¡  r»   r¥   r   r   r   r¤    rø  zTestBroadcast.test_paretoc                 C   rö  r÷  )r   r   rã  r0   rí  r   r   r!   )r   rî   ró  rã  r»   r¥   r   r   r   rä    rø  zTestBroadcast.test_weibullc                 C   rö  )Nr%   r   rî  r,   ri  r·   )r   r   r«  r0   rí  r   r   r!   )r   rî   ró  r«  r»   r¥   r   r   r   r¬  ,  rø  zTestBroadcast.test_powerc                 C   rï  )Nr   r%   r   )g:¨×BKc±?gÖ3®šk²?gî~qÉÁ“?r,   ri  r·   )r   r   r{  r0   rí  r   r   r!   )r   ru  r`  rð  r{  r»   r¥   r   r   r   r|  9  rñ  zTestBroadcast.test_laplacec                 C   rï  )Nr   r%   r   )gÈ'�£ZyÑ?g÷dSO=Ñ?gÏ3Lõ1³Õ?r,   ri  r·   )r   r   rv  r0   rí  r   r   r!   )r   ru  r`  rð  rv  r»   r¥   r   r   r   rw  L  rñ  zTestBroadcast.test_gumbelc                 C   rï  )Nr   r%   r   )gÂ“y±ÕÀ?gªÀJõR�Á?gþ
~Æ&‘£?r,   ri  r·   )r   r   r~  r0   rí  r   r   r!   )r   ru  r`  rð  r~  r»   r¥   r   r   r   r  _  rñ  zTestBroadcast.test_logisticc                 C   rï  )Nr   r%   r   )gÄñò�ÏH"@g¼ùÜ®ƒÍ @gvv	ý²:@r,   ri  r·   )r   r   r‚  r0   rí  r   r   r!   )r   r€  r�  Ú	bad_sigmar‚  r»   r¥   r   r   r   rƒ  r  rñ  zTestBroadcast.test_lognormalc                 C   rö  )Nr%   r   )gÝ±lËo½ó?gé/Ó‚´Æó?gz~ßRó?r,   ri  r·   )r   r   r­  r0   rí  r   r   r!   )r   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j}t  g d¢¡}|  ¡  ||d |ƒ}t||dd� tt||d |ƒ tt||d |ƒ |  ¡  |||d ƒ}t||dd� tt|||d ƒ tt|||d ƒ tt|d	dƒ tt|dd	ƒ d S )
Nr8   r%   r   r'   )g@mò ‰e¾?g¸�`ŸIß¿?g¸‡|2‹í?r,   ri  r·   rG   )r   r   rá  r0   rí  r   r   r!   )r   r€  r`  Úbad_meanrð  rá  r»   r¥   r   r   r   râ  ’  s$   zTestBroadcast.test_waldc                 C   sj  dg}dg}dg}dg}dg}|d \}}t j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 ƒ d S )Nr%   r,   r&   r-   )g,âP;bD @gºÁ±È%G @g,~S²¨ @ri  r·   )r   r   r¾  r0   rí  r   r   r!   )r   r»  r½  r¼  Úbad_left_oneÚbad_mode_oneÚbad_left_twoÚbad_mode_twor¾  r»   r¥   r   r   r   r¿  ª  s@   ÿÿ
ÿzTestBroadcast.test_triangularc           	      C   óä   dg}dg}dg}dg}dg}t jj}t  g d¢¡}|  ¡  ||d |ƒ}t||ƒ tt||d |ƒ tt||d |ƒ tt||d |ƒ |  ¡  |||d ƒ}t||ƒ tt|||d ƒ tt|||d ƒ tt|||d ƒ d S )Nr%   r8   r   ç      ø?©r%   r%   r%   r,   )r   r   r:   r0   rí  r   r   r!   )	r   r�  r;   Úbad_nÚ	bad_p_oneÚ	bad_p_twoÚbinomr»   r¥   r   r   r   rM  Î  ó&   

zTestBroadcast.test_binomialc           	      C   r
  )Nr%   r8   r   r  )r%   r   r%   r,   )r   r   ro   r0   rí  r   r   r!   )	r   r�  r;   r  r  r  Ú	neg_binomr»   r¥   r   r   r   rp   å  r  z$TestBroadcast.test_negative_binomialc                 C   sz   t j ¡ j}dg}dg}|d g}t jj}t  g d¢¡}|  ¡  ||d ƒ}t||ƒ tt	||d ƒ tt	||d ƒ d S )Nr%   r   r&   )r%   r%   r   r,   )
r   r   r   Ú_poisson_lam_maxr¦  r0   rí  r   r   r!   )r   Úmax_lamr¥  Úbad_lam_oneÚbad_lam_twor¦  r»   r¥   r   r   r   r§  ü  s   

zTestBroadcast.test_poissonc                 C   s¤   dg}dg}t j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 sKw   Y  d S )Nr&   r   )r&   r&   r%   r,   r‰  )Úinvalid)
r   r   rè  r0   rí  r   r   r!   Úerrstater=   )r   rî   ró  rè  r»   r¥   r   r   r   ré    s   
"þzTestBroadcast.test_zipfc                 C   ój   dg}dg}dg}t jj}t  g d¢¡}|  ¡  ||d ƒ}t||ƒ tt||d ƒ tt||d ƒ d S )Nr8   r   r  rN   r,   )r   r   rp  r0   rí  r   r   r!   )r   r;   r  r  Úgeomr»   r¥   r   r   r   rq    ó   
zTestBroadcast.test_geometricc                 C   sš  dg}dg}dg}dg}dg}dg}dg}t j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 ƒ d S )	Nr%   r&   r   r'   r   r-   r  r,   )r   r   ry  r0   rí  r   r   r!   )r   ÚngoodÚnbadÚnsampleÚ	bad_ngoodÚbad_nbadÚbad_nsample_oneÚbad_nsample_twoÚ	hypergeomr»   r¥   r   r   r   rz  &  s<   


z!TestBroadcast.test_hypergeometricc                 C   r  )Nr8   r&   r   r  r,   )r   r   r…  r0   rí  r   r   r!   )r   r;   r  r  r…  r»   r¥   r   r   r   r†  I  r  zTestBroadcast.test_logseriesN)#r3   r4   r5   r\   rí  rÄ  rœ  rG  r\  r¶  rk  rg  r™  rÿ  rQ  r”  rº  rÝ  r¤  rä  r¬  r|  rw  r  rƒ  r®  râ  r¿  rM  rp   r§  ré  rq  rz  r†  r   r   r   r   rì    sB    !$#rì  zcan't start thread)Úreasonc                   @   r   )Ú
TestThreadc                 C   s   t dƒ| _d S )Nr-   )r   Úseedsr"   r   r   r   r\   Z  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j |¡|ƒ q>t 	¡ j
jdkr`tjdkr`t||ƒ d S t||ƒ d S )	Nr   )ÚThreadc                    s(   g | ]\}}ˆ ˆt j |¡|fd �‘qS ))ÚtargetÚargs)r   r   r   )r  r   Úo©r'  Úfunctionr   r   r  d  s    ÿz-TestThread.check_function.<locals>.<listcomp>c                 S   ó   g | ]}|  ¡ ‘qS r   )Ústart©r  rK   r   r   r   r  f  r  c                 S   r-  r   )Újoinr/  r   r   r   r  g  r  r-   Úwin32)Ú	threadingr'  r   rö   rÔ   r&  Úzipr   r   Úintpr*   Úitemsizer›   Úplatformr   r   )r   r,  ÚszÚout1Úout2r  r   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 )Né'  rd   .)r›  ©r[   Úoutr   r   r   Ú
gen_randomt  rF   z*TestThread.test_normal.<locals>.gen_random)r<  ©r7  ©r:  ©r   r?  r   r   r   rœ  s  ó   zTestThread.test_normalc                 C   r;  )Nc                 S   s   | j t d¡d�|d< d S )N©r@   r   r_  .)r[  r   Úonesr=  r   r   r   r?  y  s   z'TestThread.test_exp.<locals>.gen_randomrD  r@  rA  rB  r   r   r   Útest_expx  rC  zTestThread.test_expc                 C   r;  )Nc                 S   s   | j ddgd dd�|d< d S )Nr   r‡  r/   r<  rd   .)rD   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)r3   r4   r5   r\   r:  rœ  rF  rˆ  r   r   r   r   r%  W  s    r%  c                   @   r   )ÚTestSingleEltArrayInputc                 C   s4   t  dg¡| _t  dg¡| _t  dg¡| _d| _d S )Nr&   r,   r-   )r%   )r   r0   ÚargOneÚargTwoÚargThreeÚtgtShaper"   r   r   r   r\   …  s   
z$TestSingleEltArrayInput.setup_methodc                 C   sœ   t jjt jjt jjt jjt jjt jjt jjt jj	t jj
t jjt jjt jjf}t jjt jjf}|D ]}||v r?|t  dg¡ƒ}n|| jƒ}t|j| jƒ q0d S rn   )r   r   r[  rµ  rP  r¹  r¡  rã  r«  r­  r¦  rè  rp  r…  r0   rH  r   rQ   rK  )r   ÚfuncsÚ	probfuncsrË  r>  r   r   r   Útest_one_arg_funcs‹  s   û
ùz*TestSingleEltArrayInput.test_one_arg_funcsc                 C   sè   t jjt jjt jjt jjt jjt jjt jjt jj	t jj
t jjt jjt jjt jjt jjf}t jjt jjf}|D ];}||v rCt  dg¡}n| j}|| j|ƒ}t|j| jƒ || jd |ƒ}t|j| jƒ || j|d ƒ}t|j| jƒ q6d S )Nr8   r   )r   r   rÃ  r›  rF  rj  rf  r“  rÜ  r{  rv  r~  r‚  rá  r:   ro   r0   rI  rH  r   rQ   rK  )r   rL  rM  rË  rI  r>  r   r   r   Útest_two_arg_funcsž  s(   úòz*TestSingleEltArrayInput.test_two_arg_funcsc              	   C   s°   t tjtjtjtjtjtjtjtj	g	}tj
j}t dg¡}t dg¡}|D ]0}||||d�}t|j| jƒ ||d ||d�}t|j| jƒ |||d |d�}t|j| jƒ q%d S )Nr%   r   r)   )r’   r   r•   r˜   r“   r–   r”   rP   r1   r—   r   r   r0   r   rQ   rK  )r   ry   rË  rÂ  rÁ  r~   r>  r   r   r   rÏ   ¹  s   ÿøz$TestSingleEltArrayInput.test_randintc                 C   sŒ   t jjt jjt j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¾  ry  rH  rI  rJ  r   rQ   rK  )r   rL  rË  r>  r   r   r   Útest_three_arg_funcsÊ  s   ÿøz,TestSingleEltArrayInput.test_three_arg_funcsN)r3   r4   r5   r\   rN  rO  rÏ   rP  r   r   r   r   rG  „  s    rG  )rÜ   rq   Únumpyr   Únumpy.testingr   r   r   r   r   r   r   r	   r
   r   r›   r   r6   r?   rV   ru   r«   rì  rê  Úskipifr%  rG  r   r   r   r   Ú<module>   s4    ,'"5      |    >,