a
    hÝEbn  ã                   @   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)ÚscopeÚparamsc                 C   s   | j S ©N)Úparam)Úrequest© r   ú]/home/ja/django-apps/lartica_env/lib/python3.9/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	¡}|r¬d
}|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*    r4   c                 C   s®   d}t | tƒr0| D ]}|t| | || ƒM }qnzt| ƒt|ƒkrV|t| ƒt|ƒkM }nTt | tttjfƒržt |tttjfƒržt| |ƒD ]\}}|t||ƒM }q„n|| |kM }|S )NT)	Ú
isinstanceÚdictÚ
comp_stateÚtypeÚlistÚtupler   ZndarrayÚzip)Ústate1Ústate2Z	identicalÚkeyÚs1Ús2r   r   r   r7   >   s    
ÿr7   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    

rO   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   sD   t | _d | _dg| _t| j| jŽ ƒ| _| jjj| _d| _|  	¡  d S )Né90  é@   ©
r   Úbit_generatorÚadvanceÚseedr   rM   Ú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   rM   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   rG   r   r7   )rf   rM   rW   Ú	new_stater   r   r   Ú	test_initt   s    

zRNG.test_initc                 C   s`   | j jj}t| j jdƒr@| j j | j¡ tt|| j jjƒ ƒ n| j jjj}t	 
d|› �¡ d S )NrU   zAdvance is not supported by )rM   rT   rW   ÚhasattrrU   r   r7   Ú	__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ƒrr| j j ¡ }|j}tt||ƒ ƒ | j  d¡ || j j_| j j ¡ }|j}tt||ƒƒ n2| j jjj	}|dvr”t
d|› �ƒ‚t d|› �¡ d S )NÚjumpedi.Ê )r   zno "jumped" in zJump is not supported by )rM   rT   rW   rj   rq   r   r7   rE   rk   rl   ÚAttributeErrorrm   rn   )rf   rW   Zbit_gen2Zjumped_stateZbit_gen3Zrejumped_statero   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   )rM   Ú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 )Nrt   r   ru   r   rv   r   )rM   rw   r   r+   r   rx   ry   rz   r   r   r   Útest_uniform_array�   s    ÿzRNG.test_uniform_arrayc                 C   s(   t t| j d¡ƒdkƒ t| jjƒ d S ©Nr   )r   rx   rM   rE   r!   re   r   r   r   Útest_random¬   s    zRNG.test_randomc                 C   s   t t| j d¡ƒdkƒ d S r~   )r   rx   rM   rG   re   r   r   r   Útest_standard_normal_zig°   s    zRNG.test_standard_normal_zigc                 C   s(   t t| j d¡ƒdkƒ t| jjƒ d S r~   )r   rx   rM   rG   r!   re   r   r   r   Útest_standard_normal³   s    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   rx   rM   rK   r   r+   r4   re   r   r   r   Útest_standard_gamma·   s    &zRNG.test_standard_gammac                 C   s(   t t| j d¡ƒdkƒ t| jjƒ d S r~   )r   rx   rM   Ústandard_exponentialr!   re   r   r   r   Útest_standard_exponential¼   s    zRNG.test_standard_exponentialc                 C   sH   | j jddd�}tt|ƒdkƒ |jtjks0J ‚tt| j jdd�ƒ d S )Nr   rH   rC   ©	rM   rƒ   r   rx   r   r   rH   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s2J ‚tt| j jddd�ƒ d S )Nr   rH   Úinv)r   Úmethodr…   r†   r   r   r   Ú#test_standard_exponential_float_logÆ   s    
ÿÿz'RNG.test_standard_exponential_float_logc                 C   s(   t t| j d¡ƒdkƒ t| jjƒ d S r~   )r   rx   rM   Zstandard_cauchyr!   re   r   r   r   Útest_standard_cauchyÎ   s    zRNG.test_standard_cauchyc                 C   s*   t t| j dd¡ƒdkƒ t| jjƒ d S r~   )r   rx   rM   Z
standard_tr4   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   rM   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        )rM   rT   rW   rI   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   r7   rW   ©rf   rM   Ú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   rE   r   r7   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   rG   rW   r   ©rf   rM   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   rD   éx   rC   r   )r   rT   rV   rI   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 )NrH   rC   r   ©r   r   )r   rT   rV   rE   rW   r   ry   r”   r   r   r   Útest_reset_state_float  s    zRNG.test_reset_state_floatc                 C   s.   t  ddd¡}| j |¡}t||k ¡ ƒ d S ©NéÈ   r   rv   ©r   r)   rM   Zpermutationr   Úany©rf   ÚoriginalZpermutedr   r   r   Útest_shuffle  s    zRNG.test_shufflec                 C   s.   t  ddd¡}| j |¡}t||k ¡ ƒ d S r›   r�   rŸ   r   r   r   Útest_permutation  s    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   )rM   Úbetar   rx   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~   )rM   Úbytesr   rx   r¤   r   r   r   Ú
test_bytes"  s    zRNG.test_bytesc                 C   s.   | j  dd¡}tt|ƒdkƒ t| j jƒ d S ©Nr"   r   )rM   Z	chisquarer   rx   r4   r¤   r   r   r   Útest_chisquare&  s    zRNG.test_chisquarec                 C   s.   | j  dd¡}tt|ƒdkƒ t| j jƒ d S r©   )rM   Úexponentialr   rx   r4   r¤   r   r   r   Útest_exponential+  s    zRNG.test_exponentialc                 C   s$   | j  ddd¡}tt|ƒdkƒ d S )Né   r�   r   )rM   r   r   rx   r¤   r   r   r   Útest_f0  s    z
RNG.test_fc                 C   s$   | j  ddd¡}tt|ƒdkƒ d S )Nr­   r(   r   )rM   Úgammar   rx   r¤   r   r   r   Ú
test_gamma4  s    zRNG.test_gammac                 C   s2   | j  dd¡}tt|ƒdkƒ t| j jdd� d S )Nr&   r   T©r-   )rM   Z	geometricr   rx   r4   r«   r¤   r   r   r   Útest_geometric8  s    zRNG.test_geometricc                 C   s$   | j  ddd¡}tt|ƒdkƒ d S r©   )rM   Zgumbelr   rx   r¤   r   r   r   Útest_gumbel=  s    zRNG.test_gumbelc                 C   s$   | j  ddd¡}tt|ƒdkƒ d S r©   )rM   Zlaplacer   rx   r¤   r   r   r   Útest_laplaceA  s    zRNG.test_laplacec                 C   s$   | j  ddd¡}tt|ƒdkƒ d S r©   )rM   Zlogisticr   rx   r¤   r   r   r   Útest_logiticE  s    zRNG.test_logiticc                 C   s"   | j  dd¡}tt|ƒdkƒ d S )Nr&   r   )rM   Z	logseriesr   rx   r¤   r   r   r   Útest_logseriesI  s    zRNG.test_logseriesc                 C   s$   | j  ddd¡}tt|ƒdkƒ d S ©Nr   çš™™™™™É?)rM   Znegative_binomialr   rx   r¤   r   r   r   Útest_negative_binomialM  s    zRNG.test_negative_binomialc                 C   s$   | j  ddd¡}tt|ƒdkƒ d S )Nr   r(   )rM   Znoncentral_chisquarer   rx   r¤   r   r   r   Útest_noncentral_chisquareQ  s    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   )rM   Znoncentral_fr   rx   r   r+   r¤   r   r   r   Útest_noncentral_fU  s    zRNG.test_noncentral_fc                 C   s$   | j  ddd¡}tt|ƒdkƒ d S r·   )rM   Únormalr   rx   r¤   r   r   r   Útest_normal_  s    zRNG.test_normalc                 C   s"   | j  dd¡}tt|ƒdkƒ d S )Nr$   r   )rM   Zparetor   rx   r¤   r   r   r   Útest_paretoc  s    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~   )rM   Zpoissonr   rx   r   r+   r4   r¤   r   r   r   Útest_poissong  s
    zRNG.test_poissonc                 C   s"   | j  dd¡}tt|ƒdkƒ d S )Nr¸   r   )rM   Úpowerr   rx   r¤   r   r   r   Ú
test_powern  s    zRNG.test_powerc                 C   s$   | j  ddd¡}tt|ƒdkƒ d S )Nr   rB   )rM   rI   r   rx   r¤   r   r   r   Útest_integersr  s    zRNG.test_integersc                 C   s2   | j  dd¡}tt|ƒdkƒ t| j jdd� d S )Nr¸   r   Tr±   )rM   Zrayleighr   rx   r4   r¤   r   r   r   Útest_rayleighv  s    zRNG.test_rayleighc                 C   s$   | j  ddd¡}tt|ƒdkƒ d S r·   )rM   Zvonmisesr   rx   r¤   r   r   r   Útest_vonmises{  s    zRNG.test_vonmisesc                 C   s$   | j  ddd¡}tt|ƒdkƒ d S ©Nç      ð?r   )rM   Zwaldr   rx   r¤   r   r   r   Ú	test_wald  s    zRNG.test_waldc                 C   s"   | j  dd¡}tt|ƒdkƒ d S rÅ   )rM   Zweibullr   rx   r¤   r   r   r   Útest_weibullƒ  s    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^   )rM   Zzipfr   rx   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é   rB   r   r   )rM   Zhypergeometricr   r   r   r+   r   r¤   r   r   r   Útest_hypergeometric‘  s    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   )rM   Ú
triangularr   r   r   r+   r   r¤   r   r   r   Útest_triangular—  s    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(   )rM   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'   )rM   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­   rB   )rB   r­   )rM   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ÚdumpsrM   Úloadsr   r8   r7   rT   rW   )rf   ÚpickZunpickr   r   r   Útest_pickle²  s    
ÿ
ÿzRNG.test_picklec                 C   sX  | j d u r"| jj}t d|› �¡ | j dkr4t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%   rC   é   r   iÜ  r(   )rY   rT   rl   rm   rn   r   r—   rJ   r+   rW   r   r7   r)   Úmod)rf   ro   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   rA   rC   )r   rT   rO   rW   rE   r   rH   r   r   r   r   r7   ©rf   rM   rW   Úr1r‘   Ú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      @rA   rC   )r   rT   rO   rW   rK   r   rH   r   r   r   r   r7   rà   r   r   r   Útest_gamma_floatsò  s    
zRNG.test_gamma_floatsc                 C   sŠ   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 ©NrA   rC   ©r   rT   rO   rW   rG   r   rH   r   r   r   r   r7   rà   r   r   r   Útest_normal_floatsÿ  s    
zRNG.test_normal_floatsc                 C   sŠ   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 rå   ræ   rà   r   r   r   Útest_normal_zig_floats  s    
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   rC   ©rî   r   r™   )	rM   rT   rW   r   ÚemptyrG   r   r   rH   )rf   rM   rW   r   ÚexistingÚdirectZsizedr   r   r   Útest_output_fill  s$    


zRNG.test_output_fillc                 C   sœ   | 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   rC   rï   r™   )rM   rT   rW   r   rð   rE   r   rH   ©rf   rM   rW   r   rñ   rò   r   r   r   Útest_output_filling_uniform/  s    

zRNG.test_output_filling_uniformc                 C   sœ   | 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 rô   )rM   rT   rW   r   rð   rƒ   r   rH   rõ   r   r   r   Útest_output_filling_exponentialA  s    

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   rC   rï   r™   )rM   rT   rW   r   ÚzerosrK   r   rH   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   rC   rï   r™   )	rM   rT   rW   r   r)   rø   rK   r   rH   )rf   rM   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 sD0    Y  t t¡�& |j|d d d… d� W d   ƒ n1 s„0    Y  tj|tjd�}t t¡�  |j|tj	d� W d   ƒ n1 sÎ0    Y  tj
|tjd�}t t¡�" |jd|tj	d� W d   ƒ n1 �s0    Y  t t¡�, |jd|d d d… tjd� W d   ƒ n1 �sd0    Y  tj
|tj	d�}t t¡�" |jd|tjd� W d   ƒ n1 �s²0    Y  t t¡�( |jd|d d d… d� W d   ƒ n1 �sö0    Y  d S )Nré   rï   r­   rí   rC   rÆ   )rM   r   rð   rm   Úraisesrc   rG   rH   Ú
ValueErrorrL   rø   rK   )rf   rM   r   rñ   r   r   r   Útest_output_fill_errorx  s(    
.4.2<2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   rC   r™   )r   Úbool_ÚiinfoÚintr,   Úminrg   rM   rI   r   r+   Úobject)
rf   r   ÚupperÚlowerÚinfor.   r/   r0   r1   r2   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s8J ‚| jj|d ||d�}|jdks\J ‚| jj||d |d�}|jdks€J ‚d S )Nr%   r   rC   )r%   )r   r+   rM   rI   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 sn0    Y  t t¡�, | j	j
|d |gd |d� W d   ƒ n1 s´0    Y  t t¡�. | j	j
|d g|gd |d� W d   ƒ n1 sü0    Y  t t¡�& | j	j
dgdg|d� W d   ƒ n1 �s>0    Y  d S )Nr(   r   r%   r   rC   )r   rÿ   r   r  r,   r  rm   rü   rý   rM   rI   )rf   r   r  r  r  r   r   r   Útest_integers_broadcast_errors½  s    

::<z"RNG.test_integers_broadcast_errorsN)Jrl   Ú
__module__Ú__qualname__Úclassmethodr]   rZ   rg   ri   rp   rs   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   rP   ^   s�   


		




&!rP   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   rM   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   rE   ZRandomStaterG   Z	get_staterM   rT   rW   r   ry   )rf   ZnprgrW   r=   r   r   r   Útest_numpy_stateÛ  s    



zTestMT19937.test_numpy_stateN)rl   r  r  r  r]   r  r   r   r   r   r  Ï  s   

r  c                   @   s   e Zd Zedd„ ƒZdS )Ú
TestPhiloxc                 C   sD   t | _d| _dg| _t| j| jŽ ƒ| _| jjj| _d| _|  	¡  d S ©Nl         rQ   rR   )
r
   rT   rU   rV   r   rM   rW   rX   rY   rZ   r[   r   r   r   r]   æ  s    zTestPhilox.setup_classN©rl   r  r  r  r]   r   r   r   r   r  å  s   r  c                   @   s   e Zd Zedd„ ƒZdS )Ú	TestSFC64c                 C   sD   t | _d | _dg| _t| j| jŽ ƒ| _| jjj| _d| _|  	¡  d S )NrQ   éÀ   )
r   rT   rU   rV   r   rM   rW   rX   rY   rZ   r[   r   r   r   r]   ò  s    zTestSFC64.setup_classNr  r   r   r   r   r  ñ  s   r  c                   @   s   e Zd Zedd„ ƒZdS )Ú	TestPCG64c                 C   sD   t | _d| _dg| _t| j| jŽ ƒ| _| jjj| _d| _|  	¡  d S r  rS   r[   r   r   r   r]   þ  s    zTestPCG64.setup_classNr  r   r   r   r   r  ý  s   r  c                   @   s   e Zd Zedd„ ƒZdS )ÚTestPCG64DXSMc                 C   sD   t | _d| _dg| _t| j| jŽ ƒ| _| jjj| _d| _|  	¡  d S r  )
r	   rT   rU   rV   r   rM   rW   rX   rY   rZ   r[   r   r   r   r]   
  s    zTestPCG64DXSM.setup_classNr  r   r   r   r   r  	  s   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   rE   Údefault_rngrM   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   r5   rM   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 sv0    Y  t t¡�  t j ddg¡ W d   ƒ n1 s°0    Y  d S )NrQ   r   l	   -µtE+�IÌ6Í%ÆYl  l	   )	Ë�~¬eR :TI* 6Ò rv   )r   rE   r  rm   rü   rý   re   r   r   r   r“   '  s    
ÿ*zTestDefaultRNG.test_seedN)rl   r  r  r  r]   r  r“   r   r   r   r   r    s   
r  )F)N)'rÖ   Ú	functoolsr   Únumpyr   rm   Znumpy.testingr   r   r   Znumpy.randomr   r   r   r	   r
   r   Zfixturerÿ   Zint8Zint16Zint32Zint64Zuint8Zuint16r—   rJ   r   r!   r4   r7   rO   rP   r  r  r  r  r  r  r   r   r   r   Ú<module>   s4    ÿÿ

!
    u