o
    V=ºiIq  ã                   @   s(  d dl Z d dlmZ d dlZd dlZd dlmZmZm	Z	 d dl
mZmZmZmZmZmZ ejdejejejejejejejejejf	d�dd„ ƒZd	d
„ Zd dd„Zdd„ Zd!dd„ZG dd„ dƒZ G dd„ de ƒZ!G dd„ de ƒZ"G dd„ de ƒZ#G dd„ de ƒZ$G dd„ de ƒZ%G dd„ de ƒZ&dS )"é    N)Úpartial)Úassert_equalÚassert_Úassert_array_equal)Ú	GeneratorÚMT19937ÚPCG64Ú	PCG64DXSMÚPhiloxÚSFC64Úmodule)ZscopeÚparamsc                 C   s   | j S ©N)Úparam)Úrequest© r   úcC:\Users\psant\Downloads\PAF backend\school\venv\Lib\site-packages\numpy/random/tests/test_smoke.pyÚdtype	   s   r   c                 C   sr   | ƒ }t t |¡ƒ | dƒ}t |jdkƒ | dƒ}t |jdkƒ | dƒ}t |jdkƒ | dd�}t |jdkƒ d S )Né
   ©r   ©r   r   ©r   r   r   )é   r   ©Úsize)r   ÚnpÚisscalarÚshape)ÚfÚvalr   r   r   Úparams_0   s   
r    Fc                 C   s   d}t  dd¡}t  dd¡ d¡}t  dd¡ d¡}t  ddg¡}t  dd¡ d	¡}|rVd
}|d| ¡   }|d| ¡   }|d| ¡   }|d| ¡   }|d| ¡   }| |ƒ | |dd� | |ƒ | |ƒ | |ƒ | |dd� | |dd� | |dd� d S )Ng      @ç       @g      (@ç     €Y@r   g     P�@r   ç      @)é   r   r$   ç      à?g      ø?r   r   ©r   é   )r   ÚarangeÚreshapeÚarrayÚmax)r   ÚboundedÚaÚbÚcÚdÚeÚgr   r   r   Úparams_1   s*   r3   c                 C   s´   d}t | tƒr| D ]}|t| | || ƒM }q	|S t| ƒt|ƒkr-|t| ƒt|ƒkM }|S t | tttjfƒrRt |tttjfƒrRt| |ƒD ]\}}|t||ƒM }qD|S || |kM }|S )NT)	Ú
isinstanceÚdictÚ
comp_stateÚtypeÚlistÚtupler   ZndarrayÚzip)Ústate1Ústate2Z	identicalÚkeyÚs1Ús2r   r   r   r6   >   s    

÷úÿÿr6   c                 C   s¸   |d u rdt j dd¡ }|  |¡ |  |¡ | j|t jd� | j|t jd� | jdd|t jd� | jdd|t jd� |  d|¡ | jd|t jd� | j|t jd� | j|t jd� d S )Né   r   é   ©r   é   l          g      &@)	r   ÚrandomÚrandintÚstandard_normalÚfloat32ÚintegersÚuint64Ústandard_gammaÚfloat64)ÚrgÚnr   r   r   ÚwarmupO   s   

rN   c                   @   sD  e Zd Zedd„ ƒZedd„ ƒZdd„ Zdd„ Zd	d
„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9d:„ Z d;d<„ Z!d=d>„ Z"d?d@„ Z#dAdB„ Z$dCdD„ Z%dEdF„ Z&dGdH„ Z'dIdJ„ Z(dKdL„ Z)dMdN„ Z*dOdP„ Z+dQdR„ Z,dSdT„ Z-dUdV„ Z.dWdX„ Z/dYdZ„ Z0d[d\„ Z1d]d^„ Z2d_d`„ Z3dadb„ Z4dcdd„ Z5dedf„ Z6dgdh„ Z7didj„ Z8dkdl„ Z9dmdn„ Z:dodp„ Z;dqdr„ Z<dsdt„ Z=dudv„ Z>dwdx„ Z?dydz„ Z@d{d|„ ZAd}d~„ ZBdd€„ ZCd�d‚„ ZDdƒd„„ ZEd…d†„ ZFd‡dˆ„ ZGd‰dŠ„ ZHd‹dŒ„ ZId�S )ŽÚRNGc                 C   óD   t | _d | _dg| _t| j| jŽ ƒ| _| jjj| _d| _|  	¡  d S )Né90  é@   ©
r   Úbit_generatorÚadvanceÚseedr   rL   ÚstateÚinitial_stateÚseed_vector_bitsÚ_extra_setup©Úclsr   r   r   Úsetup_class_   s   zRNG.setup_classc                 C   sH   t  dd¡| _t  dd¡d d d …f | _t  ddd¡ d¡| _t| _d S )Nr!   r"   g{®Gáz„?©éd   r_   )r   r(   Úvec_1dÚvec_2dr)   ÚmatÚ	TypeErrorÚ
seed_errorr[   r   r   r   rZ   j   s   
zRNG._extra_setupc                 C   s   | j | jj_d S r   )rX   rL   rT   rW   ©Úselfr   r   r   Ú_reset_stateq   s   zRNG._reset_statec                 C   sJ   t |  ¡ ƒ}|jj}| d¡ | d¡ ||j_|jj}tt||ƒƒ d S )Nr$   )r   rT   rW   rF   r   r6   )rf   rL   rW   Z	new_stater   r   r   Ú	test_initt   s   

zRNG.test_initc                 C   sb   | j jj}t| j jdƒr!| j j | j¡ tt|| j jjƒ ƒ d S | j jjj}t	 
d|› �¡ d S )NrU   zAdvance is not supported by )rL   rT   rW   ÚhasattrrU   r   r6   Ú	__class__Ú__name__ÚpytestÚskip)rf   rW   Úbitgen_namer   r   r   Útest_advance}   s   
zRNG.test_advancec                 C   sª   | j jj}t| j jdƒr:| j j ¡ }|j}tt||ƒ ƒ | j  d¡ || j j_| j j ¡ }|j}tt||ƒƒ d S | j jjj	}|dvrKt
d|› �ƒ‚t d|› �¡ d S )NÚjumpedi.Ê )r   zno "jumped" in zJump is not supported by )rL   rT   rW   ri   rp   r   r6   rD   rj   rk   ÚAttributeErrorrl   rm   )rf   rW   Zbit_gen2Zjumped_stateZbit_gen3Zrejumped_statern   r   r   r   Ú	test_jump†   s   

zRNG.test_jumpc                 C   sF   | j jdddd�}tt|ƒdkƒ t|dk ¡ ƒ t|dk ¡ ƒ d S )Nç      ð¿ç        r   r   éÿÿÿÿr   )rL   Úuniformr   ÚlenÚall©rf   Úrr   r   r   Útest_uniform—   s   zRNG.test_uniformc                 C   sú   | j jt dgd ¡ddd�}tt|ƒdkƒ t|dk ¡ ƒ t|dk ¡ ƒ | j jt dgd ¡t dgd ¡dd�}tt|ƒdkƒ t|dk ¡ ƒ t|dk ¡ ƒ | j jdt dgd ¡dd�}tt|ƒdkƒ t|dk ¡ ƒ t|dk ¡ ƒ d S )Nrs   r   rt   r   ru   r   )rL   rv   r   r*   r   rw   rx   ry   r   r   r   Útest_uniform_array�   s   ÿzRNG.test_uniform_arrayc                 C   ó(   t t| j d¡ƒdkƒ t| jjƒ d S ©Nr   )r   rw   rL   rD   r    re   r   r   r   Útest_random¬   ó   zRNG.test_randomc                 C   s   t t| j d¡ƒdkƒ d S r~   )r   rw   rL   rF   re   r   r   r   Útest_standard_normal_zig°   s   zRNG.test_standard_normal_zigc                 C   r}   r~   )r   rw   rL   rF   r    re   r   r   r   Útest_standard_normal³   r€   zRNG.test_standard_normalc                 C   sP   t t| j dd¡ƒdkƒ t t| j t dgd ¡d¡ƒdkƒ t| jjƒ d S r~   )r   rw   rL   rJ   r   r*   r3   re   r   r   r   Útest_standard_gamma·   s   &zRNG.test_standard_gammac                 C   r}   r~   )r   rw   rL   Ústandard_exponentialr    re   r   r   r   Útest_standard_exponential¼   r€   zRNG.test_standard_exponentialc                 C   sH   | j jddd�}tt|ƒdkƒ |jtjksJ ‚tt| j jdd�ƒ d S )Nr   rG   rB   ©	rL   r„   r   rw   r   r   rG   r    r   ©rf   Zrandomsr   r   r   Útest_standard_exponential_floatÀ   s   z#RNG.test_standard_exponential_floatc                 C   sL   | j jdddd�}tt|ƒdkƒ |jtjksJ ‚tt| j jddd�ƒ d S )Nr   rG   Úinv)r   Úmethodr†   r‡   r   r   r   Ú#test_standard_exponential_float_logÆ   s   
ÿÿz'RNG.test_standard_exponential_float_logc                 C   r}   r~   )r   rw   rL   Zstandard_cauchyr    re   r   r   r   Útest_standard_cauchyÎ   r€   zRNG.test_standard_cauchyc                 C   s*   t t| j dd¡ƒdkƒ t| jjƒ d S r~   )r   rw   rL   Z
standard_tr3   re   r   r   r   Útest_standard_tÒ   s   zRNG.test_standard_tc                 C   s0   t | j dd¡dkƒ t | j dd¡dkƒ d S )Nr   r%   r   éè  )r   rL   Zbinomialre   r   r   r   Útest_binomialÖ   s   zRNG.test_binomialc                 C   s<   | j jj}| j  d¡}|| j j_| j  d¡}t||kƒ d S )Nl        )rL   rT   rW   rH   r   )rf   rW   Zint_1Zint_2r   r   r   Útest_reset_stateÚ   s
   

zRNG.test_reset_statec                 C   s4   t |  ¡ ƒ}t |  ¡ ƒ}tt|jj|jjƒ ƒ d S r   )r   rT   r   r6   rW   ©rf   rL   Úrg2r   r   r   Útest_entropy_initá   s
   
ÿzRNG.test_entropy_initc                 C   sJ   t | j| jŽ ƒ}t | j| jŽ ƒ}| ¡  | ¡  tt|jj|jjƒƒ d S r   )r   rT   rV   rD   r   r6   rW   r‘   r   r   r   Ú	test_seedç   s
   zRNG.test_seedc                 C   sZ   t | j| jŽ ƒ}| ¡  |jj}|jdd�}t |  ¡ ƒ}||j_|jdd�}t||ƒ d S )Nr   r   )r   rT   rV   rF   rW   r   ©rf   rL   rW   Zn1r’   Zn2r   r   r   Útest_reset_state_gaussî   s   zRNG.test_reset_state_gaussc                 C   sv   t | j| jŽ ƒ}|jdddtjd� |jj}|jdddtjd�}t |  ¡ ƒ}||j_|jdddtjd�}t||ƒ d S )Nr   rC   éx   rB   r   )r   rT   rV   rH   r   Úuint32rW   r   r•   r   r   r   Útest_reset_state_uint32ø   s   zRNG.test_reset_state_uint32c                 C   sh   t | j| jŽ ƒ}|jdd� |jj}|jddd�}t |  ¡ ƒ}||j_|jddd�}t||k ¡ ƒ d S )NrG   rB   r   ©r   r   )r   rT   rV   rD   rW   r   rx   r•   r   r   r   Útest_reset_state_float  s   zRNG.test_reset_state_floatc                 C   ó.   t  ddd¡}| j |¡}t||k ¡ ƒ d S ©NéÈ   r   ru   ©r   r(   rL   Zpermutationr   Úany©rf   ÚoriginalZpermutedr   r   r   Útest_shuffle  ó   zRNG.test_shufflec                 C   rœ   r�   rŸ   r¡   r   r   r   Útest_permutation  r¤   zRNG.test_permutationc                 C   sä   | j  ddd¡}tt|ƒdkƒ | j  t dgd ¡d¡}tt|ƒdkƒ | j  dt dgd ¡¡}tt|ƒdkƒ | j  t dgd ¡t dgd ¡¡}tt|ƒdkƒ | j  t dgd ¡t dggd ¡¡}t|jdkƒ d S )Nr!   r   r   )rL   Úbetar   rw   r   r*   r   ©rf   Úvalsr   r   r   Ú	test_beta  s   &(zRNG.test_betac                 C   s    | j  d¡}tt|ƒdkƒ d S r~   )rL   Úbytesr   rw   r§   r   r   r   Ú
test_bytes"  s   zRNG.test_bytesc                 C   ó.   | j  dd¡}tt|ƒdkƒ t| j jƒ d S ©Nr!   r   )rL   Z	chisquarer   rw   r3   r§   r   r   r   Útest_chisquare&  ó   zRNG.test_chisquarec                 C   r¬   r­   )rL   Úexponentialr   rw   r3   r§   r   r   r   Útest_exponential+  r¯   zRNG.test_exponentialc                 C   ó$   | j  ddd¡}tt|ƒdkƒ d S )Né   rŽ   r   )rL   r   r   rw   r§   r   r   r   Útest_f0  ó   z
RNG.test_fc                 C   r²   )Nr³   r'   r   )rL   Úgammar   rw   r§   r   r   r   Ú
test_gamma4  rµ   zRNG.test_gammac                 C   s2   | j  dd¡}tt|ƒdkƒ t| j jdd� d S )Nr%   r   T©r,   )rL   Z	geometricr   rw   r3   r°   r§   r   r   r   Útest_geometric8  ó   zRNG.test_geometricc                 C   ó$   | j  ddd¡}tt|ƒdkƒ d S r­   )rL   Zgumbelr   rw   r§   r   r   r   Útest_gumbel=  rµ   zRNG.test_gumbelc                 C   r»   r­   )rL   Zlaplacer   rw   r§   r   r   r   Útest_laplaceA  rµ   zRNG.test_laplacec                 C   r»   r­   )rL   Zlogisticr   rw   r§   r   r   r   Útest_logiticE  rµ   zRNG.test_logiticc                 C   ó"   | j  dd¡}tt|ƒdkƒ d S )Nr%   r   )rL   Z	logseriesr   rw   r§   r   r   r   Útest_logseriesI  ó   zRNG.test_logseriesc                 C   ó$   | j  ddd¡}tt|ƒdkƒ d S ©Nr   çš™™™™™É?)rL   Znegative_binomialr   rw   r§   r   r   r   Útest_negative_binomialM  rµ   zRNG.test_negative_binomialc                 C   rÂ   )Nr   r'   )rL   Znoncentral_chisquarer   rw   r§   r   r   r   Útest_noncentral_chisquareQ  rµ   zRNG.test_noncentral_chisquarec                 C   sª   | j  dddd¡}tt|ƒdkƒ | j  t dgd ¡dd¡}tt|ƒdkƒ | j  dt dgd ¡d¡}tt|ƒdkƒ | j  ddt dgd ¡¡}tt|ƒdkƒ d S )Nr³   rŽ   r'   r   )rL   Znoncentral_fr   rw   r   r*   r§   r   r   r   Útest_noncentral_fU  s   zRNG.test_noncentral_fc                 C   rÂ   rÃ   )rL   Únormalr   rw   r§   r   r   r   Útest_normal_  rµ   zRNG.test_normalc                 C   r¿   )Nr#   r   )rL   Zparetor   rw   r§   r   r   r   Útest_paretoc  rÁ   zRNG.test_paretoc                 C   sV   | j  dd¡}tt|ƒdkƒ | j  t dgd ¡¡}tt|ƒdkƒ t| j jƒ d S r~   )rL   Zpoissonr   rw   r   r*   r3   r§   r   r   r   Útest_poissong  s
   zRNG.test_poissonc                 C   r¿   )NrÄ   r   )rL   Úpowerr   rw   r§   r   r   r   Ú
test_powern  rÁ   zRNG.test_powerc                 C   rÂ   )Nr   rA   )rL   rH   r   rw   r§   r   r   r   Útest_integersr  rµ   zRNG.test_integersc                 C   s2   | j  dd¡}tt|ƒdkƒ t| j jdd� d S )NrÄ   r   Tr¸   )rL   Zrayleighr   rw   r3   r§   r   r   r   Útest_rayleighv  rº   zRNG.test_rayleighc                 C   rÂ   rÃ   )rL   Zvonmisesr   rw   r§   r   r   r   Útest_vonmises{  rµ   zRNG.test_vonmisesc                 C   r»   ©Nç      ð?r   )rL   Zwaldr   rw   r§   r   r   r   Ú	test_wald  rµ   zRNG.test_waldc                 C   r¿   rÑ   )rL   Zweibullr   rw   r§   r   r   r   Útest_weibullƒ  rÁ   zRNG.test_weibullc                 C   sx   | j  dd¡}tt|ƒdkƒ | j  | j¡}tt|ƒdkƒ | j  | j¡}t|jdkƒ | j  | j¡}t|jdkƒ d S )Nr   r_   )r$   r_   r^   )rL   Zzipfr   rw   r`   ra   r   rb   r§   r   r   r   Ú	test_zipf‡  s   zRNG.test_zipfc                 C   sL   | j  ddd¡}tt |¡ƒ | j  t dgd ¡dd¡}t|jdkƒ d S )Né   rA   r   r   )rL   Zhypergeometricr   r   r   r*   r   r§   r   r   r   Útest_hypergeometric‘  ó   zRNG.test_hypergeometricc                 C   sL   | j  ddd¡}tt |¡ƒ | j  dt dgd ¡d¡}t|jdkƒ d S )Néûÿÿÿr   r   r   r   )rL   Ú
triangularr   r   r   r*   r   r§   r   r   r   Útest_triangular—  rØ   zRNG.test_triangularc                 C   s†   ddg}ddgddgg}| j  ||d¡}t|jdkƒ | j  ||d¡}t|jdkƒ | j  ||d¡}t|jdkƒ t||k ¡ ƒ d S )Nr   r$   r_   éˆ  )rÜ   r'   )rL   Zmultivariate_normalr   r   r    )rf   ÚmeanZcovÚxZx_zigZx_invr   r   r   Útest_multivariate_normal�  s   zRNG.test_multivariate_normalc                 C   sH   | j  dddg¡}t|jdkƒ | j jdddgdd�}t|jdkƒ d S )Nr_   gUUUUUUÕ?gUUUUUUå?)r'   r   r   r&   )rL   Zmultinomialr   r   r§   r   r   r   Útest_multinomial¨  s   zRNG.test_multinomialc                 C   s    | j  dd¡}t|jdkƒ d S )N)r   r   r³   rA   )rA   r³   )rL   Z	dirichletr   r   )rf   Úsr   r   r   Útest_dirichlet®  s   zRNG.test_dirichletc                 C   sŒ   t  | j¡}t  |¡}tt| jƒt|ƒkƒ tt| jjj|jjƒƒ t  | j¡}t  |¡}tt| jƒt|ƒkƒ tt| jjj|jjƒƒ d S r   )	ÚpickleÚdumpsrL   Úloadsr   r7   r6   rT   rW   )rf   ZpickZunpickr   r   r   Útest_pickle²  s   
ÿ

ÿzRNG.test_picklec                 C   sX  | j d u r| jj}t d|› �¡ | j dkrtj}ntj}tjdg|d�}|  |¡}|j	}|  d¡}|j	}t
t||ƒƒ tjd|d�}|  |¡}|j	}|  |d ¡}|j	}t
t||ƒ ƒ tjd|d�}|  |¡}|j	}|  |d ¡}|j	}t
t||ƒ ƒ dt tjd|d�| j d ¡ d }|  |¡}|j	}|  |d ¡}|j	}t
t||ƒ ƒ d S )	Nz#Vector seeding is not supported by é    r$   rB   é   r   iÜ  r'   )rY   rT   rk   rl   rm   r   r˜   rI   r*   rW   r   r6   r(   Úmod)rf   rn   r   rV   Úbgr;   r<   r   r   r   Útest_seed_array¿  sD   





ÿÿ
zRNG.test_seed_arrayc                 C   sŒ   t |  d¡ƒ}t|ƒ |jj}|jdtjd�}t |  ¡ ƒ}t|ƒ ||j_|jdtjd�}t||ƒ t|j	tjƒ t
t|jj|jjƒƒ d S )NrQ   r@   rB   )r   rT   rN   rW   rD   r   rG   r   r   r   r   r6   ©rf   rL   rW   Zr1r’   Zr2r   r   r   Útest_uniform_floatå  s   
zRNG.test_uniform_floatc                 C   sŽ   t |  ¡ ƒ}t|ƒ |jj}|jddtjd�}t |  ¡ ƒ}t|ƒ ||j_|jddtjd�}t||ƒ t|j	tjƒ t
t|jj|jjƒƒ d S )Ng      @r@   rB   )r   rT   rN   rW   rJ   r   rG   r   r   r   r   r6   rì   r   r   r   Útest_gamma_floatsò  s   
zRNG.test_gamma_floatsc                 C   óŠ   t |  ¡ ƒ}t|ƒ |jj}|jdtjd�}t |  ¡ ƒ}t|ƒ ||j_|jdtjd�}t||ƒ t|j	tjƒ t
t|jj|jjƒƒ d S ©Nr@   rB   ©r   rT   rN   rW   rF   r   rG   r   r   r   r   r6   rì   r   r   r   Útest_normal_floatsÿ  ó   
zRNG.test_normal_floatsc                 C   rï   rð   rñ   rì   r   r   r   Útest_normal_zig_floats  ró   zRNG.test_normal_zig_floatsc                 C   s¾   | j }|jj}d}t |¡}||j_|j|d� ||j_|j|d�}t||ƒ t |¡}||j_|j||jd� tj|tjd�}||j_|j|tjd� ||j_|j|tjd�}t||ƒ d S )N©é   é   éa   ©Úoutr   )rú   r   rB   ©rú   r   rš   )	rL   rT   rW   r   ÚemptyrF   r   r   rG   )rf   rL   rW   r   ÚexistingÚdirectZsizedr   r   r   Útest_output_fill  s$   


zRNG.test_output_fillc                 C   óœ   | j }|jj}d}t |¡}||j_|j|d� ||j_|j|d�}t||ƒ tj|tjd�}||j_|j|tjd� ||j_|j|tjd�}t||ƒ d S ©Nrõ   rù   r   rB   rû   rš   )rL   rT   rW   r   rü   rD   r   rG   ©rf   rL   rW   r   rý   rþ   r   r   r   Útest_output_filling_uniform/  ó   

zRNG.test_output_filling_uniformc                 C   r   r  )rL   rT   rW   r   rü   r„   r   rG   r  r   r   r   Útest_output_filling_exponentialA  r  z#RNG.test_output_filling_exponentialc                 C   s¤   | j }|jj}d}t |¡}||j_|jd|d� ||j_|jd|d�}t||ƒ tj|tjd�}||j_|jd|tjd� ||j_|jd|tjd�}t||ƒ d S )Nrõ   rÒ   rù   r   rB   rû   rš   )rL   rT   rW   r   ÚzerosrJ   r   rG   r  r   r   r   Útest_output_filling_gammaS  s   

zRNG.test_output_filling_gammac                 C   s²   | j }|jj}d}t d¡d }t |¡}||j_|j||d� ||j_|j||d�}t||ƒ tj|tjd�}||j_|j||tjd� ||j_|j||tjd�}t||ƒ d S )	Nrõ   g     @X@rÒ   rù   r   rB   rû   rš   )	rL   rT   rW   r   r(   r  rJ   r   rG   )rf   rL   rW   r   Úmurý   rþ   r   r   r   Ú#test_output_filling_gamma_broadcaste  s    

z'RNG.test_output_filling_gamma_broadcastc                 C   sþ  | j }d}t |¡}t t¡� |j|tjd� W d   ƒ n1 s"w   Y  t t¡� |j|d d d… d� W d   ƒ n1 sBw   Y  tj|tjd�}t t¡� |j|tj	d� W d   ƒ n1 sgw   Y  tj
|tjd�}t t¡� |jd|tj	d� W d   ƒ n1 s�w   Y  t t¡� |jd|d d d… tjd� W d   ƒ n1 s°w   Y  tj
|tj	d�}t t¡� |jd|tjd� W d   ƒ n1 sÖw   Y  t t¡� |jd|d d d… d� W d   ƒ d S 1 søw   Y  d S )Nrõ   rû   r³   rù   rB   rÒ   )rL   r   rü   rl   Úraisesrc   rF   rG   Ú
ValueErrorrK   r  rJ   )rf   rL   r   rý   r   r   r   Útest_output_fill_errorx  s6   
ÿÿÿÿÿÿ"ÿzRNG.test_output_fill_errorc           
      C   sf  |t jkr
d}d}nt  |¡}t|jƒd }|j}|  ¡  | jj||gd |d�}|  ¡  | jj|gd ||d�}t	||ƒ |  ¡  | jj||d|d�}t	||ƒ |  ¡  | jjt  
|gd ¡t j
|gtd�d|d�}t	||ƒ |  ¡  | jjt  
|gd ¡t  
|gd ¡d|d�}	t	||	ƒ |  ¡  | jjd|d|d�}|  ¡  | jj|gd |d�}t	||ƒ d S )Nr'   r   r$   r   rB   rš   )r   Úbool_ÚiinfoÚintr+   Úminrg   rL   rH   r   r*   Úobject)
rf   r   ÚupperÚlowerÚinfor-   r.   r/   r0   r1   r   r   r   Útest_integers_broadcast�  sB   




ÿþ
þ
zRNG.test_integers_broadcastc                 C   s„   t  dg¡}t  dg¡}| jj|||d�}|jdksJ ‚| jj|d ||d�}|jdks.J ‚| jj||d |d�}|jdks@J ‚d S )Nr$   r   rB   )r$   )r   r*   rL   rH   r   )rf   r   ÚhighÚlowrú   r   r   r   Útest_integers_numpy°  s   zRNG.test_integers_numpyc                 C   sL  |t jkr
d}d}nt  |¡}t|jƒd }|j}t t¡� | j	j
||d gd |d� W d   ƒ n1 s7w   Y  t t¡� | j	j
|d |gd |d� W d   ƒ n1 sZw   Y  t t¡� | j	j
|d g|gd |d� W d   ƒ n1 s~w   Y  t t¡� | j	j
dgdg|d� W d   ƒ d S 1 sŸw   Y  d S )Nr'   r   r$   r   rB   )r   r  r  r  r+   r  rl   r
  r  rL   rH   )rf   r   r  r  r  r   r   r   Útest_integers_broadcast_errors½  s$   

ÿÿ ÿ"ÿz"RNG.test_integers_broadcast_errorsN)Jrk   Ú
__module__Ú__qualname__Úclassmethodr]   rZ   rg   rh   ro   rr   r{   r|   r   r�   r‚   rƒ   r…   rˆ   r‹   rŒ   r�   r�   r�   r“   r”   r–   r™   r›   r£   r¥   r©   r«   r®   r±   r´   r·   r¹   r¼   r½   r¾   rÀ   rÅ   rÆ   rÇ   rÉ   rÊ   rË   rÍ   rÎ   rÏ   rÐ   rÓ   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’    


		




&!rO   c                   @   s    e Zd Zedd„ ƒZdd„ ZdS )ÚTestMT19937c                 C   sJ   t | _d | _dg| _t| j| jŽ ƒ| _| jjj| _d| _|  	¡  t
| _d S )Ni! ! rç   )r   rT   rU   rV   r   rL   rW   rX   rY   rZ   r  rd   r[   r   r   r   r]   Ð  s   
zTestMT19937.setup_classc                 C   sh   t j ¡ }| d¡ | ¡ }|| jj_| jjj}t|d |d d k 	¡ ƒ t|d |d d kƒ d S )Néc   r$   rW   r=   r'   Úpos)
r   rD   ZRandomStaterF   Z	get_staterL   rT   rW   r   rx   )rf   ZnprgrW   r<   r   r   r   Útest_numpy_stateÛ  s   



zTestMT19937.test_numpy_stateN)rk   r  r  r  r]   r   r   r   r   r   r  Ï  s    

r  c                   @   ó   e Zd Zedd„ ƒZdS )Ú
TestPhiloxc                 C   óD   t | _d| _dg| _t| j| jŽ ƒ| _| jjj| _d| _|  	¡  d S ©Nl         rQ   rR   )
r
   rT   rU   rV   r   rL   rW   rX   rY   rZ   r[   r   r   r   r]   æ  ó   zTestPhilox.setup_classN©rk   r  r  r  r]   r   r   r   r   r"  å  ó    r"  c                   @   r!  )Ú	TestSFC64c                 C   rP   )NrQ   éÀ   )
r   rT   rU   rV   r   rL   rW   rX   rY   rZ   r[   r   r   r   r]   ò  r%  zTestSFC64.setup_classNr&  r   r   r   r   r(  ñ  r'  r(  c                   @   r!  )Ú	TestPCG64c                 C   r#  r$  rS   r[   r   r   r   r]   þ  r%  zTestPCG64.setup_classNr&  r   r   r   r   r*  ý  r'  r*  c                   @   r!  )ÚTestPCG64DXSMc                 C   r#  r$  )
r	   rT   rU   rV   r   rL   rW   rX   rY   rZ   r[   r   r   r   r]   
  r%  zTestPCG64DXSM.setup_classNr&  r   r   r   r   r+  	  r'  r+  c                   @   s(   e Zd Zedd„ ƒZdd„ Zdd„ ZdS )ÚTestDefaultRNGc                 C   sB   t | _d| _dg| _tjj| jŽ | _| jjj| _	d| _
|  ¡  d S r$  )r   rT   rU   rV   r   rD   Údefault_rngrL   rW   rX   rY   rZ   r[   r   r   r   r]     s   zTestDefaultRNG.setup_classc                 C   s   t t| jjtƒƒ d S r   )r   r4   rL   rT   r   re   r   r   r   Útest_default_is_pcg64"  s   z$TestDefaultRNG.test_default_is_pcg64c                 C   sÀ   t j ¡  t j d ¡ t j d¡ t j d¡ t j d¡ t j ddg¡ t t¡� t j d¡ W d   ƒ n1 s;w   Y  t t¡� t j ddg¡ W d   ƒ d S 1 sYw   Y  d S )NrQ   r   l	   -µtE+�IÌ6Í%ÆYl  l	   )	Ë�~¬eR :TI* 6Ò ru   )r   rD   r-  rl   r
  r  re   r   r   r   r”   '  s   
ÿÿ"ÿzTestDefaultRNG.test_seedN)rk   r  r  r  r]   r.  r”   r   r   r   r   r,    s
    
r,  )Fr   )'rã   Ú	functoolsr   Znumpyr   rl   Znumpy.testingr   r   r   Znumpy.randomr   r   r   r	   r
   r   Zfixturer  Zint8Zint16Zint32Zint64Zuint8Zuint16r˜   rI   r   r    r3   r6   rN   rO   r  r"  r(  r*  r+  r,  r   r   r   r   Ú<module>   s6     ÿÿ

!
    u