
    Khn                        S SK r S SKJr  S SKrS SKrS SKJrJrJ	r	  S SK
JrJrJrJrJrJr  \R"                  " S\R$                  \R&                  \R(                  \R*                  \R,                  \R.                  \R0                  \R2                  \R4                  4	S9S 5       rS rSS	 jrS
 rSS jr " S S5      r  " S S\ 5      r! " S S\ 5      r" " S S\ 5      r# " S S\ 5      r$ " S S\ 5      r% " S S\ 5      r&g)    N)partial)assert_equalassert_assert_array_equal)	GeneratorMT19937PCG64	PCG64DXSMPhiloxSFC64module)scopeparamsc                     U R                   $ N)param)requests    O/var/www/html/env/lib/python3.13/site-packages/numpy/random/tests/test_smoke.pydtyper   	   s     ==    c                 L   U " 5       n[        [        R                  " U5      5        U " S5      n[        UR                  S:H  5        U " S5      n[        UR                  S:H  5        U " S5      n[        UR                  S:H  5        U " SS9n[        UR                  S:H  5        g )N
   r   r   r   r   r   r   )   r   size)r   npisscalarshape)fvals     r   params_0r$      s    
#CBKK
B%CCII
H+CCII!"
L/CCII%&
.CCII r   c                    Sn[         R                  " SS5      n[         R                  " SS5      R                  S5      n[         R                  " SS5      R                  S5      n[         R                  " SS/5      n[         R                  " SS5      R                  S	5      nU(       ap  S
nUSUR	                  5       -  -  nUSUR	                  5       -  -  nUSUR	                  5       -  -  nUSUR	                  5       -  -  nUSUR	                  5       -  -  nU " U5        U " USS9  U " U5        U " U5        U " U5        U " USS9  U " USS9  U " USS9  g )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gs           r   params_1r8      s+   A
		#tA
		#u%%h/A
		#v&&|4A
#sA
		#t$$Z0Aquuwquuwquuwquuwquuw aDahaDaDaDabMagalr   c                    Sn[        U [        5      (       a  U  H  nU[        X   X   5      -  nM     U$ [        U 5      [        U5      :w  a  U[        U 5      [        U5      :H  -  nU$ [        U [        [
        [        R                  45      (       aN  [        U[        [
        [        R                  45      (       a$  [        X5       H  u  pEU[        XE5      -  nM     U$ X U:H  -  nU$ )NT)	
isinstancedict
comp_statetypelisttupler   ndarrayzip)state1state2	identicalkeys1s2s         r   r<   r<   >   s    I&$CFK==I   
ff	%T&\T&\11	  veRZZ899jubjj1?3 ?3f-Z//	 .  6))Ir   c                 f   Uc#  S[         R                  R                  SS5      -   nU R                  U5        U R                  U5        U R                  U[         R                  S9  U R                  U[         R                  S9  U R                  SSU[         R                  S9  U R                  SSU[         R                  S9  U R                  SU5        U R                  SU[         R                  S9  U R                  U[         R                  S9  U R                  U[         R                  S9  g )N   r      r      l          g      &@)	r   randomrandintstandard_normalfloat32integersuint64standard_gammafloat64)rgns     r   warmuprW   O   s    y""1b))qqq

+q

+KK7ARYYK/KK7ARYYK/dAdARZZ0IIarzzI"IIarzzI"r   c                      \ rS rSr\S 5       r\S 5       rS rS rS r	S r
S rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S r"S  r#S! r$S" r%S# r&S$ r'S% r(S& r)S' r*S( r+S) r,S* r-S+ r.S, r/S- r0S. r1S/ r2S0 r3S1 r4S2 r5S3 r6S4 r7S5 r8S6 r9S7 r:S8 r;S9 r<S: r=S; r>S< r?S= r@S> rAS? rBS@ rCSA rDSB rESC rFSD rGSE rHSF rISG rJSHrKgI)JRNG^   c                     [         U l        S U l        S/U l        [	        U R                  " U R                  6 5      U l        U R
                  R                  R                  U l        SU l        U R                  5         g )N90  @   
r	   bit_generatoradvanceseedr   rU   stateinitial_stateseed_vector_bits_extra_setupclss    r   setup_classRNG.setup_class_   sc     "73,,chh78FF0066!r   c                     [         R                  " SS5      U l        [         R                  " SS5      S S S 24   U l        [         R                  " SSS5      R	                  S5      U l        [        U l        g )Nr&   r'   g{Gz?d   rl   )r   r-   vec_1dvec_2dr.   mat	TypeError
seed_errorrf   s    r   re   RNG._extra_setupj   sU    YYsE*
YYsE*473
))C-55jA"r   c                 N    U R                   U R                  R                  l        g r   )rc   rU   r_   rb   selfs    r   _reset_stateRNG._reset_stateq   s    &*&8&8#r   c                    [        U R                  5       5      nUR                  R                  nUR                  S5        UR                  S5        X!R                  l        UR                  R                  n[	        [        X#5      5        g )Nr)   )r   r_   rb   rO   r   r<   )ru   rU   rb   	new_states       r   	test_initRNG.test_initt   sl    t))+,  &&
1
1!&$$**	
5,-r   c                    U R                   R                  R                  n[        U R                   R                  S5      (       ag  U R                   R                  R	                  U R                  5        [        [        XR                   R                  R                  5      (       + 5        g U R                   R                  R                  R                  n[        R                  " SU 35        g )Nr`   zAdvance is not supported by )rU   r_   rb   hasattrr`   r   r<   	__class____name__pytestskip)ru   rb   bitgen_names      r   test_advanceRNG.test_advance}   s    %%++477(()44GG!!))$,,7
5''*?*?*E*EFFG''//99BBKKK6{mDEr   c                    U R                   R                  R                  n[        U R                   R                  S5      (       a  U R                   R                  R	                  5       nUR                  n[        [        X5      (       + 5        U R                   R                  S5        XR                   R                  l        U R                   R                  R	                  5       nUR                  n[        [        X55      5        g U R                   R                  R                  R                  nUS;  a  [        SU 35      e[        R                  " SU 35        g )Njumpedi. )r   zno "jumped" in zJump is not supported by )rU   r_   rb   r}   r   r   r<   rM   r~   r   AttributeErrorr   r   )ru   rb   bit_gen2jumped_statebit_gen3rejumped_stater   s          r   	test_jumpRNG.test_jump   s    %%++477(((33ww,,335H#>>L
5778GGNN78*/GG!!'ww,,335H%^^NJ|<=''//99BBK*,${m%DEEKK3K=ABr   c                     U R                   R                  SSSS9n[        [        U5      S:H  5        [        US:  R	                  5       5        [        US:*  R	                  5       5        g )N              r   r   r   )rU   uniformr   lenallru   rs     r   test_uniformRNG.test_uniform   sN    GGOOD#BO/A"Rar   c                 @   U R                   R                  [        R                  " S/S-  5      SSS9n[	        [        U5      S:H  5        [	        US:  R                  5       5        [	        US:*  R                  5       5        U R                   R                  [        R                  " S/S-  5      [        R                  " S/S-  5      SS9n[	        [        U5      S:H  5        [	        US:  R                  5       5        [	        US:*  R                  5       5        U R                   R                  S[        R                  " S/S-  5      SS9n[	        [        U5      S:H  5        [	        US:  R                  5       5        [	        US:*  R                  5       5        g )Nr   r   r   r   r   r   )rU   r   r   r/   r   r   r   r   s     r   test_uniform_arrayRNG.test_uniform_array   s(   GGOOBHHdVb[13RO@A"RaGGOOBHHdVb[1HHcURZ0r  ;A"RaGGOOD"((C52:"6RO@A"Rar   c                     [        [        U R                  R                  S5      5      S:H  5        [	        U R                  R                  5        g Nr   )r   r   rU   rM   r$   rt   s    r   test_randomRNG.test_random   s1    DGGNN2&'2-. r   c                 d    [        [        U R                  R                  S5      5      S:H  5        g r   )r   r   rU   rO   rt   s    r   test_standard_normal_zigRNG.test_standard_normal_zig   s#    DGG++B/0B67r   c                     [        [        U R                  R                  S5      5      S:H  5        [	        U R                  R                  5        g r   )r   r   rU   rO   r$   rt   s    r   test_standard_normalRNG.test_standard_normal   5    DGG++B/0B67(()r   c           
      6   [        [        U R                  R                  SS5      5      S:H  5        [        [        U R                  R                  [        R
                  " S/S-  5      S5      5      S:H  5        [        U R                  R                  5        g r   )r   r   rU   rS   r   r/   r8   rt   s    r   test_standard_gammaRNG.test_standard_gamma   si    DGG**2r23r9:DGG**288RD2I+>CDJK''(r   c                     [        [        U R                  R                  S5      5      S:H  5        [	        U R                  R                  5        g r   )r   r   rU   standard_exponentialr$   rt   s    r   test_standard_exponentialRNG.test_standard_exponential   s5    DGG0045;<--.r   c                     U R                   R                  SSS9n[        [        U5      S:H  5        UR                  [
        R                  :X  d   e[        [        U R                   R                  SS95        g )Nr   rP   rK   	rU   r   r   r   r   r   rP   r$   r   ru   randomss     r   test_standard_exponential_float#RNG.test_standard_exponential_float   s[    ''..r.CG"#}}

***55YGHr   c                     U R                   R                  SSSS9n[        [        U5      S:H  5        UR                  [
        R                  :X  d   e[        [        U R                   R                  SSS95        g )Nr   rP   inv)r   methodr   r   s     r   #test_standard_exponential_float_log'RNG.test_standard_exponential_float_log   si    ''..r6; / =G"#}}

***55Y %' 	(r   c                     [        [        U R                  R                  S5      5      S:H  5        [	        U R                  R                  5        g r   )r   r   rU   standard_cauchyr$   rt   s    r   test_standard_cauchyRNG.test_standard_cauchy   r   r   c                     [        [        U R                  R                  SS5      5      S:H  5        [	        U R                  R                  5        g r   )r   r   rU   
standard_tr8   rt   s    r   test_standard_tRNG.test_standard_t   s7    DGG&&r2./256##$r   c                     [        U R                  R                  SS5      S:  5        [        U R                  R                  SS5      S:  5        g )Nr   r*   r     )r   rU   binomialrt   s    r   test_binomialRNG.test_binomial   s>      R(A-.  r*a/0r   c                     U R                   R                  R                  nU R                   R                  S5      nXR                   R                  l        U R                   R                  S5      n[	        X#:H  5        g )Nl        )rU   r_   rb   rQ   r   )ru   rb   int_1int_2s       r   test_reset_stateRNG.test_reset_state   sY    %%++  '&+#  'r   c                     [        U R                  5       5      n[        U R                  5       5      n[        [        UR                  R                  UR                  R                  5      (       + 5        g r   )r   r_   r   r<   rb   ru   rU   rg2s      r   test_entropy_initRNG.test_entropy_init   sY    t))+,**,-Jr//55"00668 8 	9r   c                 F   [        U R                  " U R                  6 5      n[        U R                  " U R                  6 5      nUR                  5         UR                  5         [	        [        UR                  R                  UR                  R                  5      5        g r   )r   r_   ra   rM   r   r<   rb   r   s      r   	test_seedRNG.test_seed   sm    t))49956**DII67
		


2++1133D3D3J3JKLr   c                 8   [        U R                  " U R                  6 5      nUR                  5         UR                  R                  nUR                  SS9n[        U R                  5       5      nX$R                  l        UR                  SS9n[        X55        g )Nr   r   )r   r_   ra   rO   rb   r   ru   rU   rb   n1r   n2s         r   test_reset_state_gaussRNG.test_reset_state_gauss   s    t))49956
  &&R(**,-"'  b )2"r   c                    [        U R                  " U R                  6 5      nUR                  SSS[        R
                  S9  UR                  R                  nUR                  SSS[        R
                  S9n[        U R                  5       5      nX$R                  l        UR                  SSS[        R
                  S9n[        X55        g )Nr   rL   x   rK   r   )r   r_   ra   rQ   r   uint32rb   r   r   s         r   test_reset_state_uint32RNG.test_reset_state_uint32   s    t))49956
Aw2995  &&[[GRryy[9**,-"'\\!Wb		\:2"r   c                 Z   [        U R                  " U R                  6 5      nUR                  SS9  UR                  R                  nUR                  SSS9n[        U R                  5       5      nX$R                  l        UR                  SSS9n[        X5:H  R                  5       5        g )NrP   rK   r   r   r   )r   r_   ra   rM   rb   r   r   r   s         r   test_reset_state_floatRNG.test_reset_state_float  s    t))49956
				"  &&YYBiY0**,-"'ZZRyZ1 !r   c                     [         R                  " SSS5      nU R                  R                  U5      n[	        X:g  R                  5       5        g N   r   r   r   r-   rU   permutationr   anyru   originalpermuteds      r   test_shuffleRNG.test_shuffle  <    99S!R(77&&x0%**,-r   c                     [         R                  " SSS5      nU R                  R                  U5      n[	        X:g  R                  5       5        g r   r   r   s      r   test_permutationRNG.test_permutation  r   r   c                 (   U R                   R                  SSS5      n[        [        U5      S:H  5        U R                   R                  [        R
                  " S/S-  5      S5      n[        [        U5      S:H  5        U R                   R                  S[        R
                  " S/S-  5      5      n[        [        U5      S:H  5        U R                   R                  [        R
                  " S/S-  5      [        R
                  " S/S-  5      5      n[        [        U5      S:H  5        U R                   R                  [        R
                  " S/S-  5      [        R
                  " S//S-  5      5      n[        UR                  S:H  5        g )Nr&   r   r   )rU   betar   r   r   r/   r!   ru   valss     r   	test_betaRNG.test_beta  s   ww||Cb)D	R ww||BHHcURZ0#6D	R ww||C3%"*!56D	R ww||BHHcURZ0"((C52:2FGD	R ww||BHHcURZ0"((SE7R<2HI

h&'r   c                 h    U R                   R                  S5      n[        [        U5      S:H  5        g r   )rU   bytesr   r   r   s     r   
test_bytesRNG.test_bytes"  s$    ww}}R D	R r   c                     U R                   R                  SS5      n[        [        U5      S:H  5        [	        U R                   R                  5        g Nr&   r   )rU   	chisquarer   r   r8   r   s     r   test_chisquareRNG.test_chisquare&  s:    ww  b)D	R ""#r   c                     U R                   R                  SS5      n[        [        U5      S:H  5        [	        U R                   R                  5        g r   )rU   exponentialr   r   r8   r   s     r   test_exponentialRNG.test_exponential+  s:    ww""3+D	R $$%r   c                 l    U R                   R                  SSS5      n[        [        U5      S:H  5        g )N   r   r   )rU   r"   r   r   r   s     r   test_f
RNG.test_f0  s(    wwyyD"%D	R r   c                 l    U R                   R                  SSS5      n[        [        U5      S:H  5        g )Nr  r,   r   )rU   gammar   r   r   s     r   
test_gammaRNG.test_gamma4  s(    ww}}Q2&D	R r   c                     U R                   R                  SS5      n[        [        U5      S:H  5        [	        U R                   R
                  SS9  g )Nr*   r   Tr1   )rU   	geometricr   r   r8   r  r   s     r   test_geometricRNG.test_geometric8  s<    ww  b)D	R $$d3r   c                 l    U R                   R                  SSS5      n[        [        U5      S:H  5        g r   )rU   gumbelr   r   r   s     r   test_gumbelRNG.test_gumbel=  s(    ww~~c3+D	R r   c                 l    U R                   R                  SSS5      n[        [        U5      S:H  5        g r   )rU   laplacer   r   r   s     r   test_laplaceRNG.test_laplaceA  s(    wwsC,D	R r   c                 l    U R                   R                  SSS5      n[        [        U5      S:H  5        g r   )rU   logisticr   r   r   s     r   test_logiticRNG.test_logiticE  s*    wwS"-D	R r   c                 j    U R                   R                  SS5      n[        [        U5      S:H  5        g )Nr*   r   )rU   	logseriesr   r   r   s     r   test_logseriesRNG.test_logseriesI  s(    ww  b)D	R r   c                 l    U R                   R                  SSS5      n[        [        U5      S:H  5        g Nr   皙?)rU   negative_binomialr   r   r   s     r   test_negative_binomialRNG.test_negative_binomialM  s*    ww((S"5D	R r   c                 l    U R                   R                  SSS5      n[        [        U5      S:H  5        g )Nr   r,   )rU   noncentral_chisquarer   r   r   s     r   test_noncentral_chisquareRNG.test_noncentral_chisquareQ  s*    ww++B26D	R r   c                 6   U R                   R                  SSSS5      n[        [        U5      S:H  5        U R                   R                  [        R
                  " S/S-  5      SS5      n[        [        U5      S:H  5        U R                   R                  S[        R
                  " S/S-  5      S5      n[        [        U5      S:H  5        U R                   R                  SS[        R
                  " S/S-  5      5      n[        [        U5      S:H  5        g )Nr  r   r,   r   )rU   noncentral_fr   r   r   r/   r   s     r   test_noncentral_fRNG.test_noncentral_fU  s    ww##AtQ3D	R ww##BHHaS2X$6a@D	R ww##Arxx'<a@D	R ww##AtRXXqcBh-?@D	R r   c                 l    U R                   R                  SSS5      n[        [        U5      S:H  5        g r"  )rU   normalr   r   r   s     r   test_normalRNG.test_normal_  s(    ww~~b#r*D	R r   c                 j    U R                   R                  SS5      n[        [        U5      S:H  5        g )Nr(   r   )rU   paretor   r   r   s     r   test_paretoRNG.test_paretoc  s&    ww~~c2&D	R r   c                 <   U R                   R                  SS5      n[        [        U5      S:H  5        U R                   R                  [        R
                  " S/S-  5      5      n[        [        U5      S:H  5        [        U R                   R                  5        g r   )rU   poissonr   r   r   r/   r8   r   s     r   test_poissonRNG.test_poissong  sg    wwr2&D	R wwrxxr	23D	R !r   c                 j    U R                   R                  SS5      n[        [        U5      S:H  5        g )Nr#  r   )rU   powerr   r   r   s     r   
test_powerRNG.test_powern  s&    ww}}S"%D	R r   c                 l    U R                   R                  SSS5      n[        [        U5      S:H  5        g )Nr   rJ   )rU   rQ   r   r   r   s     r   test_integersRNG.test_integersr  s*    wwB+D	R r   c                     U R                   R                  SS5      n[        [        U5      S:H  5        [	        U R                   R                  SS9  g )Nr#  r   Tr  )rU   rayleighr   r   r8   r   s     r   test_rayleighRNG.test_rayleighv  s<    wwR(D	R !!40r   c                 l    U R                   R                  SSS5      n[        [        U5      S:H  5        g r"  )rU   vonmisesr   r   r   s     r   test_vonmisesRNG.test_vonmises{  s*    wwC,D	R r   c                 l    U R                   R                  SSS5      n[        [        U5      S:H  5        g N      ?r   )rU   waldr   r   r   s     r   	test_waldRNG.test_wald  s(    ww||Cb)D	R r   c                 j    U R                   R                  SS5      n[        [        U5      S:H  5        g rK  )rU   weibullr   r   r   s     r   test_weibullRNG.test_weibull  s&    wwsB'D	R r   c                    U R                   R                  SS5      n[        [        U5      S:H  5        U R                   R                  U R                  5      n[        [        U5      S:H  5        U R                   R                  U R
                  5      n[        UR                  S:H  5        U R                   R                  U R                  5      n[        UR                  S:H  5        g )Nr   rl   )r)   rl   rk   )rU   zipfr   r   rm   rn   r!   ro   r   s     r   	test_zipfRNG.test_zipf  s    ww||B#D	R ww||DKK(D	S !ww||DKK(

h&'ww||DHH%

j()r   c                    U R                   R                  SSS5      n[        [        R                  " U5      5        U R                   R                  [        R
                  " S/S-  5      SS5      n[        UR                  S:H  5        g )N   rJ   r   r   )rU   hypergeometricr   r   r    r/   r!   r   s     r   test_hypergeometricRNG.test_hypergeometric  sc    ww%%b"b1D!"ww%%bhhtby&92rB

e#$r   c                    U R                   R                  SSS5      n[        [        R                  " U5      5        U R                   R                  S[        R
                  " S/S-  5      S5      n[        UR                  S:H  5        g )Nr   r   r   r   )rU   
triangularr   r   r    r/   r!   r   s     r   test_triangularRNG.test_triangular  sc    ww!!"a+D!"ww!!"bhhsRx&8!<

e#$r   c                    SS/nSS/SS//nU R                   R                  XS5      n[        UR                  S:H  5        U R                   R                  XS5      n[        UR                  S:H  5        U R                   R                  XS5      n[        UR                  S:H  5        [        XE:g  R	                  5       5        g )Nr   r)   rl     )rc  r,   )rU   multivariate_normalr   r!   r   )ru   meancovxx_zigx_invs         r   test_multivariate_normalRNG.test_multivariate_normal  s    1v1v3x GG''489$%++Dt<9$%++Dt<9$%$$&'r   c                     U R                   R                  SSS/5      n[        UR                  S:H  5        U R                   R                  SSS/SS9n[        UR                  S:H  5        g )Nrl   gUUUUUU?gUUUUUU?)r,   r   r   r+   )rU   multinomialr   r!   r   s     r   test_multinomialRNG.test_multinomial  s_    ww""3'(:;

d"#ww""3'(:"D

g%&r   c                 l    U R                   R                  SS5      n[        UR                  S:H  5        g )N)r   r   r  rJ   )rJ   r  )rU   	dirichletr   r!   )ru   ss     r   test_dirichletRNG.test_dirichlet  s)    GGj"-7"#r   c                    [         R                  " U R                  5      n[         R                  " U5      n[	        [        U R                  5      [        U5      :H  5        [	        [        U R                  R                  R                  UR                  R                  5      5        [         R                  " U R                  5      n[         R                  " U5      n[	        [        U R                  5      [        U5      :H  5        [	        [        U R                  R                  R                  UR                  R                  5      5        g r   )	pickledumpsrU   loadsr   r=   r<   r_   rb   )ru   pickunpicks      r   test_pickleRNG.test_pickle  s    ||DGG$d#TWWf-.
4770066!//557 	8 ||DGG$d#TWWf-.
4770066!//557 	8r   c                 x   U R                   c/  U R                  R                  n[        R                  " SU 35        U R                   S:X  a  [
        R                  nO[
        R                  n[
        R                  " S/US9nU R                  U5      nUR                  nU R                  S5      nUR                  n[        [        XV5      5        [
        R                  " SUS9nU R                  U5      nUR                  nU R                  US   5      nUR                  n[        [        XV5      (       + 5        [
        R                  " SUS9nU R                  U5      nUR                  nU R                  US   5      nUR                  n[        [        XV5      (       + 5        S[
        R                  " [
        R                  " SUS9U R                   S-
  5      -  S-   nU R                  U5      nUR                  nU R                  US   5      nUR                  n[        [        XV5      (       + 5        g )	Nz#Vector seeding is not supported by     r)   rK      r   i  r,   )rd   r_   r   r   r   r   r   rR   r/   rb   r   r<   r-   mod)ru   r   r   ra   bgrB   rC   s          r   test_seed_arrayRNG.test_seed_array  s     (,,55KKK=k]KL  B&IIEIIExx5)%"
6*+yy%(%Q(Jv../yyU+%Q(Jv../BFF299T700146 689:%  a)Jv../r   c                 2   [        U R                  S5      5      n[        U5        UR                  R                  nUR	                  S[
        R                  S9n[        U R                  5       5      n[        U5        X$R                  l        UR	                  S[
        R                  S9n[        X55        [        UR                  [
        R                  5        [        [        UR                  R                  UR                  R                  5      5        g )Nr\   rI   rK   )r   r_   rW   rb   rM   r   rP   r   r   r   r   r<   ru   rU   rb   r1r   r2s         r   test_uniform_floatRNG.test_uniform_float  s    t))%01r
  &&YYrY,**,-s"'ZZ"**Z-2"RXXrzz*
2++1133D3D3J3JKLr   c                 4   [        U R                  5       5      n[        U5        UR                  R                  nUR	                  SS[
        R                  S9n[        U R                  5       5      n[        U5        X$R                  l        UR	                  SS[
        R                  S9n[        X55        [        UR                  [
        R                  5        [        [        UR                  R                  UR                  R                  5      5        g )Ng      @rI   rK   )r   r_   rW   rb   rS   r   rP   r   r   r   r   r<   r  s         r   test_gamma_floatsRNG.test_gamma_floats  s    t))+,r
  &&sBbjj9**,-s"'Rrzz:2"RXXrzz*
2++1133D3D3J3JKLr   c                 0   [        U R                  5       5      n[        U5        UR                  R                  nUR	                  S[
        R                  S9n[        U R                  5       5      n[        U5        X$R                  l        UR	                  S[
        R                  S9n[        X55        [        UR                  [
        R                  5        [        [        UR                  R                  UR                  R                  5      5        g NrI   rK   r   r_   rW   rb   rO   r   rP   r   r   r   r   r<   r  s         r   test_normal_floatsRNG.test_normal_floats      t))+,r
  &&"**5**,-s"'  2:: 62"RXXrzz*
2++1133D3D3J3JKLr   c                 0   [        U R                  5       5      n[        U5        UR                  R                  nUR	                  S[
        R                  S9n[        U R                  5       5      n[        U5        X$R                  l        UR	                  S[
        R                  S9n[        X55        [        UR                  [
        R                  5        [        [        UR                  R                  UR                  R                  5      5        g r  r  r  s         r   test_normal_zig_floatsRNG.test_normal_zig_floats  r  r   c                    U R                   nUR                  R                  nSn[        R                  " U5      nX!R                  l        UR                  US9  X!R                  l        UR                  US9n[        XT5        [        R                  " U5      nX!R                  l        UR                  XfR                  S9  [        R                  " U[        R                  S9nX!R                  l        UR                  U[        R                  S9  X!R                  l        UR                  U[        R                  S9n[        XT5        g )N      a   outr   )r  r   rK   r  r   r   )	rU   r_   rb   r   emptyrO   r   r!   rP   )ru   rU   rb   r   existingdirectsizeds          r   test_output_fillRNG.test_output_fill  s   WW  &&88D>!&
x(!&###.V&!&
u;;788D

3!&
xrzz:!&##RZZ#@V&r   c                    U R                   nUR                  R                  nSn[        R                  " U5      nX!R                  l        UR                  US9  X!R                  l        UR                  US9n[        XT5        [        R                  " U[        R                  S9nX!R                  l        UR                  U[        R                  S9  X!R                  l        UR                  U[        R                  S9n[        XT5        g Nr  r  r   rK   r  r   )rU   r_   rb   r   r  rM   r   rP   ru   rU   rb   r   r  r  s         r   test_output_filling_uniformRNG.test_output_filling_uniform/  s    WW  &&88D>!&
		h	!&%V&88D

3!&
		hbjj	1!&BJJ7V&r   c                    U R                   nUR                  R                  nSn[        R                  " U5      nX!R                  l        UR                  US9  X!R                  l        UR                  US9n[        XT5        [        R                  " U[        R                  S9nX!R                  l        UR                  U[        R                  S9  X!R                  l        UR                  U[        R                  S9n[        XT5        g r  )rU   r_   rb   r   r  r   r   rP   r  s         r   test_output_filling_exponential#RNG.test_output_filling_exponentialA  s    WW  &&88D>!&
H-!&((d(3V&88D

3!&
HBJJ?!&((d"**(EV&r   c                 &   U R                   nUR                  R                  nSn[        R                  " U5      nX!R                  l        UR                  SUS9  X!R                  l        UR                  SUS9n[        XT5        [        R                  " U[        R                  S9nX!R                  l        UR                  SU[        R                  S9  X!R                  l        UR                  SU[        R                  S9n[        XT5        g )Nr  rL  r  r   rK   r  r   )rU   r_   rb   r   zerosrS   r   rP   r  s         r   test_output_filling_gammaRNG.test_output_filling_gammaS  s    WW  &&88D>!&
#8,!&""3T"2V&88D

3!&
#82::>!&""3T"DV&r   c                 P   U R                   nUR                  R                  nSn[        R                  " S5      S-   n[        R
                  " U5      nX!R                  l        UR                  XES9  X!R                  l        UR                  XCS9n[        Xe5        [        R
                  " U[        R                  S9nX!R                  l        UR                  XE[        R                  S9  X!R                  l        UR                  XC[        R                  S9n[        Xe5        g )	Nr  g     @X@rL  r  r   rK   r  r   )	rU   r_   rb   r   r-   r  rS   r   rP   )ru   rU   rb   r   mur  r  s          r   #test_output_filling_gamma_broadcast'RNG.test_output_filling_gamma_broadcaste  s    WW  &&YYt_s"88D>!&
"+!&""2"1V&88D

3!&
""**=!&""2

"CV&r   c                    U R                   nSn[        R                  " U5      n[        R                  " [
        5         UR                  U[        R                  S9  S S S 5        [        R                  " [        5         UR                  US S S2   S9  S S S 5        [        R                  " U[        R                  S9n[        R                  " [
        5         UR                  U[        R                  S9  S S S 5        [        R                  " U[        R                  S9n[        R                  " [
        5         UR                  SU[        R                  S9  S S S 5        [        R                  " [        5         UR                  SUS S S2   [        R                  S9  S S S 5        [        R                  " U[        R                  S9n[        R                  " [
        5         UR                  SU[        R                  S9  S S S 5        [        R                  " [        5         UR                  SUS S S2   S9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN,= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr  r  r  r  rK   rL  )rU   r   r  r   raisesrp   rO   rP   
ValueErrorrT   r  rS   )ru   rU   r   r  s       r   test_output_fill_errorRNG.test_output_fill_errorx  s   WW88D>]]9%82::> &]]:&8CaC=1 '88D

3]]9%82::> & 88D

3]]9%cxrzzB &]]:&cx!}BJJG '88D

3]]9%cxrzzB &]]:&cx!}5 '&! &%&& &% &%&& &%&&sS   I I I2? J&J, J'.J8
I 
I/2
J
J
J$'
J58
Kc                 J   U[         R                  :X  a  SnSnO:[         R                  " U5      n[        UR                  5      S-   nUR
                  nU R                  5         U R                  R                  X2/S-  US9nU R                  5         U R                  R                  U/S-  X!S9n[        XV5        U R                  5         U R                  R                  X2SUS9n[        XW5        U R                  5         U R                  R                  [         R                  " U/S-  5      [         R                  " U/[        S9SUS9n[        XX5        U R                  5         U R                  R                  [         R                  " U/S-  5      [         R                  " U/S-  5      SUS9n	[        XY5        U R                  5         U R                  R                  SUSUS9nU R                  5         U R                  R                  U/S-  US9n[        XV5        g )Nr,   r   r)   r   rK   r   )r   booliinfointr0   minrv   rU   rQ   r   r/   object)
ru   r   upperlowerinfor2   r3   r4   r5   r6   s
             r   test_integers_broadcastRNG.test_integers_broadcast  s   BGGEE88E?DMA%EHHEGGUGbL>GGeWr\5>QGGU%@QGGRXXGbL88UG6:   	QGGHHeWr\"BHHeWr\$:   	QGGQBe<GGeWr\7Qr   c                 t   [         R                  " S/5      n[         R                  " S/5      nU R                  R                  X2US9nUR                  S:X  d   eU R                  R                  US   X!S9nUR                  S:X  d   eU R                  R                  X2S   US9nUR                  S:X  d   eg )Nr)   r   rK   )r)   )r   r/   rU   rQ   r!   )ru   r   highlowr  s        r   test_integers_numpyRNG.test_integers_numpy  s    xx}hhsmggs6yyD   ggs1vt9yyD   ggsG59yyD   r   c                 P   U[         R                  :X  a  SnSnO:[         R                  " U5      n[        UR                  5      S-   nUR
                  n[        R                  " [        5         U R                  R                  X2S-   /S-  US9  S S S 5        [        R                  " [        5         U R                  R                  US-
  U/S-  US9  S S S 5        [        R                  " [        5         U R                  R                  US-
  /U/S-  US9  S S S 5        [        R                  " [        5         U R                  R                  S/S/US9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nq= f! , (       d  f       g = f)Nr,   r   r)   r   rK   )r   r  r  r  r0   r  r   r  r  rU   rQ   )ru   r   r  r  r  s        r   test_integers_broadcast_errors"RNG.test_integers_broadcast_errors  s,   BGGEE88E?DMA%EHHE]]:&GGUQYK"$4EB ']]:&GGUQY"EB ']]:&GGeai[5'B,eD ']]:&GGaS1#U3 '& '&&&&&&&s0   ."E$2#E57$F=F$
E25
F
F
F% N)Lr   
__module____qualname____firstlineno__classmethodrh   re   rv   rz   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-  r1  r5  r9  r=  r@  rD  rH  rN  rR  rV  r[  r`  rj  rn  rs  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  __static_attributes__r  r   r   rY   rY   ^   s     # #9.FC"  !8*)
/I(*%1 9M##".
.

(!$
&
!!4
!!!!!!!!!"!!1
!!!*%%	('$8$0LMMMM','$'$'$'&6.B!4r   rY   c                   *    \ rS rSr\S 5       rS rSrg)TestMT19937i  c                    [         U l        S U l        S/U l        [	        U R                  " U R                  6 5      U l        U R
                  R                  R                  U l        SU l        U R                  5         [        U l        g )Ni! ! r~  )r   r_   r`   ra   r   rU   rb   rc   rd   re   r  rq   rf   s    r   rh   TestMT19937.setup_class  si    #233,,chh78FF0066!#r   c                 n   [         R                  R                  5       nUR                  S5        UR	                  5       nX R
                  R                  l        U R
                  R                  R                  n[        US   US   S   :H  R                  5       5        [        US   US   S   :H  5        g )Nc   r)   rb   rE   r,   pos)
r   rM   RandomStaterO   	get_staterU   r_   rb   r   r   )ru   nprgrb   rC   s       r   test_numpy_stateTestMT19937.test_numpy_state  s    yy$$&R  &+#&&,,qVG_U3388:;aF7OE223r   r  N)r   r  r  r  r  rh   r  r  r  r   r   r  r    s    $ $4r   r  c                   $    \ rS rSr\S 5       rSrg)
TestPhiloxi  c                     [         U l        SU l        S/U l        [	        U R                  " U R                  6 5      U l        U R
                  R                  R                  U l        SU l        U R                  5         g Nl         r\   r]   )
r   r_   r`   ra   r   rU   rb   rc   rd   re   rf   s    r   rh   TestPhilox.setup_class  sa    "/73,,chh78FF0066!r   r  Nr   r  r  r  r  rh   r  r  r   r   r  r         r   r  c                   $    \ rS rSr\S 5       rSrg)	TestSFC64i  c                     [         U l        S U l        S/U l        [	        U R                  " U R                  6 5      U l        U R
                  R                  R                  U l        SU l        U R                  5         g )Nr\      )
r   r_   r`   ra   r   rU   rb   rc   rd   re   rf   s    r   rh   TestSFC64.setup_class  sa    !73,,chh78FF0066"r   r  Nr  r  r   r   r  r    r  r   r  c                   $    \ rS rSr\S 5       rSrg)	TestPCG64i  c                     [         U l        SU l        S/U l        [	        U R                  " U R                  6 5      U l        U R
                  R                  R                  U l        SU l        U R                  5         g r  r^   rf   s    r   rh   TestPCG64.setup_class  sa    !/73,,chh78FF0066!r   r  Nr  r  r   r   r  r    r  r   r  c                   $    \ rS rSr\S 5       rSrg)TestPCG64DXSMi	  c                     [         U l        SU l        S/U l        [	        U R                  " U R                  6 5      U l        U R
                  R                  R                  U l        SU l        U R                  5         g r  )
r
   r_   r`   ra   r   rU   rb   rc   rd   re   rf   s    r   rh   TestPCG64DXSM.setup_class
  sa    %/73,,chh78FF0066!r   r  Nr  r  r   r   r  r  	  r  r   r  c                   0    \ rS rSr\S 5       rS rS rSrg)TestDefaultRNGi  c                    [         U l        SU l        S/U l        [        R
                  R                  " U R                  6 U l        U R                  R                  R                  U l	        SU l
        U R                  5         g r  )r	   r_   r`   ra   r   rM   default_rngrU   rb   rc   rd   re   rf   s    r   rh   TestDefaultRNG.setup_class  sb     "/7&&1FF0066!r   c                 ^    [        [        U R                  R                  [        5      5        g r   )r   r:   rU   r_   r	   rt   s    r   test_default_is_pcg64$TestDefaultRNG.test_default_is_pcg64"  s     	
47700%89r   c                    [         R                  R                  5         [         R                  R                  S 5        [         R                  R                  S5        [         R                  R                  S5        [         R                  R                  S5        [         R                  R                  SS/5        [        R                  " [
        5         [         R                  R                  S5        S S S 5        [        R                  " [
        5         [         R                  R                  SS/5        S S S 5        g ! , (       d  f       NS= f! , (       d  f       g = f)Nr\   r   l	   -tE+I6%Yl  l	   )	~eR :TI*6 r   )r   rM   r  r   r  r  rt   s    r   r   TestDefaultRNG.test_seed'  s    
		
		d#
		e$
		a 
		DE
		EFH 	I]]:&II!!"% ']]:&II!!5"+. '& '&&&s    E"E
E
E"r  N)	r   r  r  r  r  rh   r  r   r  r  r   r   r  r    s    	 	:
/r   r  )Fr   )'rv  	functoolsr   numpyr   r   numpy.testingr   r   r   numpy.randomr   r   r	   r
   r   r   fixturer  int8int16int32int64uint8uint16r   rR   r   r$   r8   r<   rW   rY   r  r  r  r  r  r  r  r   r   <module>r     s        C C N Nh"((BHHbhh"))RYY		CDD
!B"#n	4 n	4b4# 4,	 		 		 		C 	/S /r   