B
    .uf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/ankuromar296_gmail_com/myenv/lib/python3.7/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	}|rd
}|d|   }|d|   }|d|   }|d|   }|d|   }| | | |dd | | | | | | | |dd | |dd | |dd d S )Ng      @g       @g      (@g     Y@)r   r   g     P@)r   r   r   g      @)   r   r   g      ?g      ?)r   r   )r      )r   arangereshapearraymax)r   boundedabcdegr   r   r   params_1   s*    r*   c             C   s   d}t | tr4x| D ]}|t| | || M }qW n~t| t|krZ|t| t|kM }nXt | tttjfrt |tttjfrx2t| |D ]\}}|t||M }qW n|| |kM }|S )NT)	
isinstancedict
comp_statetypelisttupler   Zndarrayzip)state1state2Z	identicalkeys1s2r   r   r   r-   >   s    

r-   c             C   s   |d k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   i   l          g      &@)	r   randomrandintstandard_normalfloat32integersuint64standard_gammafloat64)rgnr   r   r   warmupO   s    

rC   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 ZCdd ZDdd ZEdd ZFdd ZGdd ZHdd ZIdS )RNGc             C   sD   t | _d | _dg| _t| j| j | _| jjj| _d| _| 	  d S )Ni90  @   )
r   bit_generatoradvanceseedr   rA   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 )Ng       @g     Y@g{Gz?)d   rO   )r   r   vec_1dvec_2dr    mat	TypeError
seed_error)rM   r   r   r   rL   j   s    zRNG._extra_setupc             C   s   | j | jj_d S )N)rJ   rA   rF   rI   )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   rF   rI   r;   r   r-   )rU   rA   rI   	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 )NrG   zAdvance is not supported by )rA   rF   rI   hasattrrG   r   r-   	__class____name__pytestskip)rU   rI   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krt
d| td|  d S )Njumpedi. )r   zno "jumped" in zJump is not supported by )rA   rF   rI   rY   r`   r   r-   r9   rZ   r[   AttributeErrorr\   r]   )rU   rI   Zbit_gen2Zjumped_stateZbit_gen3Zrejumped_stater^   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 )Ng      g        r   )r   r   )rA   uniformr   lenall)rU   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 )Ng      r   g        )r   rc   r   )rA   rd   r   r!   r   re   rf   )rU   rg   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   re   rA   r9   r   )rU   r   r   r   test_random   s    zRNG.test_randomc             C   s   t t| jddk d S )Nr   )r   re   rA   r;   )rU   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 )Nr   )r   re   rA   r;   r   )rU   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 )Nr   )r   re   rA   r?   r   r!   r*   )rU   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 )Nr   )r   re   rA   standard_exponentialr   )rU   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s0ttt	| j jdd d S )Nr   r<   )r   )
rA   rn   r   re   r   r   r<   AssertionErrorr   r   )rU   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s2ttt	| j jddd d S )Nr   r<   inv)r   method)
rA   rn   r   re   r   r   r<   rp   r   r   )rU   rq   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 )Nr   )r   re   rA   Zstandard_cauchyr   )rU   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 )Nr   )r   re   rA   Z
standard_tr*   )rU   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   g      ?r   i  )r   rA   Zbinomial)rU   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        )rA   rF   rI   r=   r   )rU   rI   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 )N)r   rF   r   r-   rI   )rU   rA   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 )N)r   rF   rH   r9   r   r-   rI   )rU   rA   rz   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   rF   rH   r;   rI   r   )rU   rA   rI   n1rz   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   i   x   )r   r   )r   rF   rH   r=   r   uint32rI   r   )rU   rA   rI   r}   rz   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 )Nr<   )r   r   )r   r   )r   rF   rH   r9   rI   r   rf   )rU   rA   rI   r}   rz   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   rc   )r   r   rA   permutationr   any)rU   originalpermutedr   r   r   test_shuffle  s    zRNG.test_shufflec             C   s.   t ddd}| j|}t||k  d S )Nr   r   rc   )r   r   rA   r   r   r   )rU   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 )Ng       @r   )r   r   )rA   betar   re   r   r!   r   )rU   valsr   r   r   	test_beta  s    &(zRNG.test_betac             C   s    | j d}tt|dk d S )Nr   )rA   bytesr   re   )rU   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 )Ng       @r   )rA   Z	chisquarer   re   r*   )rU   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 )Ng       @r   )rA   exponentialr   re   r*   )rU   r   r   r   r   test_exponential+  s    zRNG.test_exponentialc             C   s$   | j ddd}tt|dk d S )N   i  r   )rA   r   r   re   )rU   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   )rA   gammar   re   )rU   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 )Ng      ?r   T)r#   )rA   Z	geometricr   re   r*   r   )rU   r   r   r   r   test_geometric8  s    zRNG.test_geometricc             C   s$   | j ddd}tt|dk d S )Ng       @r   )rA   Zgumbelr   re   )rU   r   r   r   r   test_gumbel=  s    zRNG.test_gumbelc             C   s$   | j ddd}tt|dk d S )Ng       @r   )rA   Zlaplacer   re   )rU   r   r   r   r   test_laplaceA  s    zRNG.test_laplacec             C   s$   | j ddd}tt|dk d S )Ng       @r   )rA   Zlogisticr   re   )rU   r   r   r   r   test_logiticE  s    zRNG.test_logiticc             C   s"   | j dd}tt|dk d S )Ng      ?r   )rA   Z	logseriesr   re   )rU   r   r   r   r   test_logseriesI  s    zRNG.test_logseriesc             C   s$   | j ddd}tt|dk d S )Nr   g?)rA   Znegative_binomialr   re   )rU   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   )rA   Znoncentral_chisquarer   re   )rU   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   i  r   r   )rA   Znoncentral_fr   re   r   r!   )rU   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 )Nr   g?)rA   normalr   re   )rU   r   r   r   r   test_normal_  s    zRNG.test_normalc             C   s"   | j dd}tt|dk d S )Ng      @r   )rA   Zparetor   re   )rU   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 )Nr   )rA   Zpoissonr   re   r   r!   r*   )rU   r   r   r   r   test_poissong  s
    zRNG.test_poissonc             C   s"   | j dd}tt|dk d S )Ng?r   )rA   powerr   re   )rU   r   r   r   r   
test_powern  s    zRNG.test_powerc             C   s$   | j ddd}tt|dk d S )Nr   r8   )rA   r=   r   re   )rU   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 )Ng?r   T)r#   )rA   Zrayleighr   re   r*   )rU   r   r   r   r   test_rayleighv  s    zRNG.test_rayleighc             C   s$   | j ddd}tt|dk d S )Nr   g?)rA   Zvonmisesr   re   )rU   r   r   r   r   test_vonmises{  s    zRNG.test_vonmisesc             C   s$   | j ddd}tt|dk d S )Ng      ?r   )rA   Zwaldr   re   )rU   r   r   r   r   	test_wald  s    zRNG.test_waldc             C   s"   | j dd}tt|dk d S )Ng      ?r   )rA   Zweibullr   re   )rU   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   rO   )r   rO   )rO   rO   )rA   Zzipfr   re   rP   rQ   r   rR   )rU   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   r8   r   )r   )rA   Zhypergeometricr   r   r   r!   r   )rU   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 )Nr   r   r   )r   )rA   
triangularr   r   r   r!   r   )rU   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   rO   i  )i  r   )rA   Zmultivariate_normalr   r   r   )rU   Z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 )NrO   gUUUUUU?gUUUUUU?)r   r   )r   )r   r   )rA   Zmultinomialr   r   )rU   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   r8   )r8   r   )rA   Z	dirichletr   r   )rU   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 )N)	pickledumpsrA   loadsr   r.   r-   rF   rI   )rU   pickZunpickr   r   r   test_pickle  s    

zRNG.test_picklec             C   sX  | j d k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   )r      r   i  r   )rK   rF   r[   r\   r]   r   r   r>   r!   rI   r   r-   r   mod)rU   r^   r   rH   bgr2   r3   r   r   r   test_seed_array  s>    






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 )Ni90  r7   )r   )r   rF   rC   rI   r9   r   r<   r   r   r   r   r-   )rU   rA   rI   r1rz   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      @r7   )r   )r   rF   rC   rI   r?   r   r<   r   r   r   r   r-   )rU   rA   rI   r   rz   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 )Nr7   )r   )r   rF   rC   rI   r;   r   r<   r   r   r   r   r-   )rU   rA   rI   r   rz   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 )Nr7   )r   )r   rF   rC   rI   r;   r   r<   r   r   r   r   r-   )rU   rA   rI   r   rz   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   )out)r   )r   r   )r   )r   r   )r   r   )	rA   rF   rI   r   emptyr;   r   r   r<   )rU   rA   rI   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 )N)r   r   r   )r   )r   )r   )r   r   )r   r   )rA   rF   rI   r   r   r9   r   r<   )rU   rA   rI   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 )N)r   r   r   )r   )r   )r   )r   r   )r   r   )rA   rF   rI   r   r   rn   r   r<   )rU   rA   rI   r   r   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 )N)r   r   r   g      ?)r   )r   )r   )r   r   )r   r   )rA   rF   rI   r   zerosr?   r   r<   )rU   rA   rI   r   r   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 )	N)r   r   r   g     @X@g      ?)r   )r   )r   )r   r   )r   r   )	rA   rF   rI   r   r   r   r?   r   r<   )rU   rA   rI   r   mur   r   r   r   r   #test_output_filling_gamma_broadcaste  s     

z'RNG.test_output_filling_gamma_broadcastc          	   C   sp  | j }d}t|}tt |j|tjd W d Q R X tt |j|d d d d W d Q R X tj|tjd}tt |j|tj	d W d Q R X tj
|tjd}tt |jd|tj	d W d Q R X tt" |jd|d d d tjd W d Q R X tj
|tj	d}tt |jd|tjd W d Q R X tt |jd|d d d d W d Q R X d S )N)r   r   r   )r   r   r   )r   )r   g      ?)rA   r   r   r\   raisesrS   r;   r<   
ValueErrorr@   r   r?   )rU   rA   r   r   r   r   r   test_output_fill_errorx  s(    
 &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   )r   )r   r   )r   bool_iinfointr"   minrV   rA   r=   r   r!   object)
rU   r   upperlowerinfor$   r%   r&   r'   r(   r   r   r   test_integers_broadcast  s:    






zRNG.test_integers_broadcastc             C   s   t dg}t dg}| jj|||d}|jdks8t| jj|d ||d}|jdks\t| jj||d |d}|jdkstd S )Nr   r   )r   )r   )r   r!   rA   r=   r   rp   )rU   r   highlowr   r   r   r   test_integers_numpy  s    zRNG.test_integers_numpyc          	   C   s   |t jkrd}d}nt |}t|jd }|j}tt" | j	j
||d gd |d W d Q R X tt" | j	j
|d |gd |d W d Q R X tt$ | j	j
|d g|gd |d W d Q R X tt | j	j
dgdg|d W d Q R X d S )Nr   r   r   r   )r   )r   r   r   r   r"   r   r\   r   r   rA   r=   )rU   r   r   r   r   r   r   r   test_integers_broadcast_errors  s    

&&(z"RNG.test_integers_broadcast_errorsN)Jr[   
__module____qualname__classmethodrN   rL   rV   rX   r_   rb   rh   ri   rj   rk   rl   rm   ro   rr   ru   rv   rw   rx   ry   r{   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rD   ^   s   		




&!rD   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   rF   rG   rH   r   rA   rI   rJ   rK   rL   r   rT   )rM   r   r   r   rN     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 )Nc   r   rI   r4   r   pos)
r   r9   ZRandomStater;   Z	get_staterA   rF   rI   r   rf   )rU   ZnprgrI   r3   r   r   r   test_numpy_state  s    



zTestMT19937.test_numpy_stateN)r[   r   r   r   rN   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         i90  rE   )
r
   rF   rG   rH   r   rA   rI   rJ   rK   rL   )rM   r   r   r   rN     s    zTestPhilox.setup_classN)r[   r   r   r   rN   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 )Ni90     )
r   rF   rG   rH   r   rA   rI   rJ   rK   rL   )rM   r   r   r   rN     s    zTestSFC64.setup_classN)r[   r   r   r   rN   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 )Nl         i90  rE   )
r   rF   rG   rH   r   rA   rI   rJ   rK   rL   )rM   r   r   r   rN     s    zTestPCG64.setup_classN)r[   r   r   r   rN   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 )Nl         i90  rE   )
r	   rF   rG   rH   r   rA   rI   rJ   rK   rL   )rM   r   r   r   rN   
  s    zTestPCG64DXSM.setup_classN)r[   r   r   r   rN   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 )Nl         i90  rE   )r   rF   rG   rH   r   r9   default_rngrA   rI   rJ   rK   rL   )rM   r   r   r   rN     s    zTestDefaultRNG.setup_classc             C   s   t t| jjt d S )N)r   r+   rA   rF   r   )rU   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 Q R X tt t jddg W d Q R X d S )Ni90  r   l	   -tE+I6%Yl  l	   )	~eR :TI*6 rc   )r   r9   r   r\   r   r   )rU   r   r   r   r|   '  s    
zTestDefaultRNG.test_seedN)r[   r   r   r   rN   r   r|   r   r   r   r   r     s   r   )F)N)'r   	functoolsr   numpyr   r\   Znumpy.testingr   r   r   Znumpy.randomr   r   r   r	   r
   r   Zfixturer   Zint8Zint16Zint32Zint64Zuint8Zuint16r   r>   r   r   r*   r-   rC   rD   r   r   r   r   r   r   r   r   r   r   <module>   s.     
!
    u