
    Bwgn                     
   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j0                  ej2                  ej4                  f	      d        Zd Zdd	Zd
 ZddZ G d d      Z  G d de       Z! G d de       Z" G d de       Z# G d de       Z$ G d de       Z% G d de       Z&y)    N)partial)assert_equalassert_assert_array_equal)	GeneratorMT19937PCG64	PCG64DXSMPhiloxSFC64module)scopeparamsc                     | j                   S N)param)requests    T/var/www/horilla/myenv/lib/python3.12/site-packages/numpy/random/tests/test_smoke.pydtyper   	   s     ==    c                 P    |        }t        t        j                  |              | d      }t        |j                  dk(          | d      }t        |j                  dk(          | d      }t        |j                  dk(          | d      }t        |j                  dk(         y )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                    d}t        j                  dd      }t        j                  dd      j                  d      }t        j                  dd      j                  d      }t        j                  ddg      }t        j                  dd      j                  d	      }|rpd
}|d|j	                         z  z  }|d|j	                         z  z  }|d|j	                         z  z  }|d|j	                         z  z  }|d|j	                         z  z  } | |        | |d        | |        | |        | |        | |d        | |d        | |d       y )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                    d}t        | t              r| D ]  }|t        | |   ||         z  } |S t        |       t        |      k7  r|t        |       t        |      k(  z  }|S t        | t        t
        t        j                  f      rJt        |t        t
        t        j                  f      r%t        | |      D ]  \  }}|t        ||      z  } |S || |k(  z  }|S )NT)	
isinstancedict
comp_statetypelisttupler   ndarrayzip)state1state2	identicalkeys1s2s         r   r<   r<   >   s    I&$ 	>CF3K==I	>  
ff	%T&\T&\11	  veRZZ89jubjj1?3ff- 0BZB//	0  6))Ir   c                    |#dt         j                  j                  dd      z   }| j                  |       | j                  |       | j                  |t         j                         | j                  |t         j                         | j                  dd|t         j                         | j                  dd|t         j                         | j                  d|       | j                  d|t         j                         | j                  |t         j                         | j                  |t         j                         y )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                      e Zd Zed        Zed        Zd Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d  Z#d! Z$d" Z%d# Z&d$ Z'd% Z(d& Z)d' Z*d( Z+d) Z,d* Z-d+ Z.d, Z/d- Z0d. Z1d/ Z2d0 Z3d1 Z4d2 Z5d3 Z6d4 Z7d5 Z8d6 Z9d7 Z:d8 Z;d9 Z<d: Z=d; Z>d< Z?d= Z@d> ZAd? ZBd@ ZCdA ZDdB ZEdC ZFdD ZGdE ZHdF ZIyG)HRNGc                     t         | _        d | _        dg| _        t	         | j                  | j                         | _        | j
                  j                  j                  | _        d| _        | j                          y )N90  @   
r	   bit_generatoradvanceseedr   rU   stateinitial_stateseed_vector_bits_extra_setupclss    r   setup_classzRNG.setup_class_   sf     "7,3,,chh78FF0066!r   c                     t        j                  dd      | _        t        j                  dd      d d d f   | _        t        j                  ddd      j	                  d      | _        t        | _        y )Nr&   r'   g{Gz?d   rj   )r   r-   vec_1dvec_2dr.   mat	TypeError
seed_errorre   s    r   rd   zRNG._extra_setupj   sU    YYsE*
YYsE*473
))C-55jA"r   c                 N    | j                   | j                  j                  _        y r   )rb   rU   r^   ra   selfs    r   _reset_statezRNG._reset_stateq   s    &*&8&8#r   c                    t        | j                               }|j                  j                  }|j                  d       |j                  d       ||j                  _        |j                  j                  }t	        t        ||             y )Nr)   )r   r^   ra   rO   r   r<   )rr   rU   ra   	new_states       r   	test_initzRNG.test_initt   sp    t))+,  &&
1
1!&$$**	
5),-r   c                    | j                   j                  j                  }t        | j                   j                  d      rd| j                   j                  j	                  | j                         t        t        || j                   j                  j                                y | j                   j                  j                  j                  }t        j                  d|        y )Nr_   zAdvance is not supported by )rU   r^   ra   hasattrr_   r   r<   	__class____name__pytestskip)rr   ra   bitgen_names      r   test_advancezRNG.test_advance}   s    %%++477(()4GG!!))$,,7
5$''*?*?*E*EFFG''//99BBKKK6{mDEr   c                    | j                   j                  j                  }t        | j                   j                  d      r| j                   j                  j	                         }|j                  }t        t        ||              | j                   j                  d       || j                   j                  _        | j                   j                  j	                         }|j                  }t        t        ||             y | j                   j                  j                  j                  }|dvrt        d|       t        j                  d|        y )Njumpedi. )r   zno "jumped" in zJump is not supported by )rU   r^   ra   rx   r   r   r<   rM   ry   rz   AttributeErrorr{   r|   )rr   ra   bit_gen2jumped_statebit_gen3rejumped_stater}   s          r   	test_jumpzRNG.test_jump   s    %%++477(((3ww,,335H#>>L
5,778GGNN78*/DGG!!'ww,,335H%^^NJ|^<=''//99BBK*,${m%DEEKK3K=ABr   c                     | j                   j                  ddd      }t        t        |      dk(         t        |dkD  j	                                t        |dk  j	                                y )N              r   r   r   )rU   uniformr   lenallrr   rs     r   test_uniformzRNG.test_uniform   sN    GGOOD#BO/A"Rar   c                 J   | j                   j                  t        j                  dgdz        dd      }t	        t        |      dk(         t	        |dkD  j                                t	        |dk  j                                | j                   j                  t        j                  dgdz        t        j                  dgdz        d      }t	        t        |      dk(         t	        |dkD  j                                t	        |dk  j                                | j                   j                  dt        j                  dgdz        d      }t	        t        |      dk(         t	        |dkD  j                                t	        |dk  j                                y )Nr   r   r   r   r   r   )rU   r   r   r/   r   r   r   r   s     r   test_uniform_arrayz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                     t        t        | j                  j                  d            dk(         t	        | j                  j                         y Nr   )r   r   rU   rM   r$   rq   s    r   test_randomzRNG.test_random   s1    DGGNN2&'2-. r   c                 d    t        t        | j                  j                  d            dk(         y r   )r   r   rU   rO   rq   s    r   test_standard_normal_zigzRNG.test_standard_normal_zig   s#    DGG++B/0B67r   c                     t        t        | j                  j                  d            dk(         t	        | j                  j                         y r   )r   r   rU   rO   r$   rq   s    r   test_standard_normalzRNG.test_standard_normal   5    DGG++B/0B67(()r   c           
      4   t        t        | j                  j                  dd            dk(         t        t        | j                  j                  t	        j
                  dgdz        d            dk(         t        | j                  j                         y r   )r   r   rU   rS   r   r/   r8   rq   s    r   test_standard_gammazRNG.test_standard_gamma   si    DGG**2r23r9:DGG**288RD2I+>CDJK''(r   c                     t        t        | j                  j                  d            dk(         t	        | j                  j                         y r   )r   r   rU   standard_exponentialr$   rq   s    r   test_standard_exponentialzRNG.test_standard_exponential   s5    DGG0045;<--.r   c                     | j                   j                  dd      }t        t        |      dk(         |j                  t
        j                  k(  sJ t        t        | j                   j                  d             y )Nr   rP   rK   	rU   r   r   r   r   r   rP   r$   r   rr   randomss     r   test_standard_exponential_floatz#RNG.test_standard_exponential_float   s[    ''..r.CG"#}}

***55YGHr   c                    | j                   j                  ddd      }t        t        |      dk(         |j                  t
        j                  k(  sJ t        t        | j                   j                  dd             y )Nr   rP   inv)r   methodr   r   s     r   #test_standard_exponential_float_logz'RNG.test_standard_exponential_float_log   si    ''..r6; / =G"#}}

***55Y %' 	(r   c                     t        t        | j                  j                  d            dk(         t	        | j                  j                         y r   )r   r   rU   standard_cauchyr$   rq   s    r   test_standard_cauchyzRNG.test_standard_cauchy   r   r   c                     t        t        | j                  j                  dd            dk(         t	        | j                  j                         y r   )r   r   rU   
standard_tr8   rq   s    r   test_standard_tzRNG.test_standard_t   s7    DGG&&r2./256##$r   c                     t        | j                  j                  dd      dk\         t        | j                  j                  dd      dk\         y )Nr   r*   r     )r   rU   binomialrq   s    r   test_binomialzRNG.test_binomial   s>      R(A-.  r*a/0r   c                    | j                   j                  j                  }| j                   j                  d      }|| j                   j                  _        | j                   j                  d      }t	        ||k(         y )Nl        )rU   r^   ra   rQ   r   )rr   ra   int_1int_2s       r   test_reset_statezRNG.test_reset_state   s]    %%++  '&+#  'r   c                     t        | j                               }t        | j                               }t        t        |j                  j                  |j                  j                                y r   )r   r^   r   r<   ra   rr   rU   rg2s      r   test_entropy_initzRNG.test_entropy_init   sY    t))+,**,-Jr//55"00668 8 	9r   c                 F   t         | j                  | j                         }t         | j                  | j                         }|j                          |j                          t	        t        |j                  j                  |j                  j                               y r   )r   r^   r`   rM   r   r<   ra   r   s      r   	test_seedzRNG.test_seed   ss    )t))49956***DII67
		


2++1133D3D3J3JKLr   c                 H   t         | j                  | j                         }|j                          |j                  j                  }|j                  d      }t        | j                               }||j                  _        |j                  d      }t        ||       y )Nr   r   )r   r^   r`   rO   ra   r   rr   rU   ra   n1r   n2s         r   test_reset_state_gausszRNG.test_reset_state_gauss   s    )t))49956
  &&R(**,-"'  b )2r"r   c                    t         | j                  | j                         }|j                  dddt        j
                         |j                  j                  }|j                  dddt        j
                        }t        | j                               }||j                  _        |j                  dddt        j
                        }t        ||       y )Nr   rL   x   rK   r   )r   r^   r`   rQ   r   uint32ra   r   r   s         r   test_reset_state_uint32zRNG.test_reset_state_uint32   s    )t))49956
Aw2995  &&[[GRryy[9**,-"'\\!Wb		\:2r"r   c                 p   t         | j                  | j                         }|j                  d       |j                  j                  }|j                  dd      }t        | j                               }||j                  _        |j                  dd      }t        ||k(  j                                y )NrP   rK   r   r   r   )r   r^   r`   rM   ra   r   r   r   s         r   test_reset_state_floatzRNG.test_reset_state_float  s    )t))49956
				"  &&YYBiY0**,-"'ZZRyZ1r !r   c                     t        j                  ddd      }| j                  j                  |      }t	        ||k7  j                                y N   r   r   r   r-   rU   permutationr   anyrr   originalpermuteds      r   test_shufflezRNG.test_shuffle  >    99S!R(77&&x0X%**,-r   c                     t        j                  ddd      }| j                  j                  |      }t	        ||k7  j                                y r   r   r   s      r   test_permutationzRNG.test_permutation  r   r   c                    | j                   j                  ddd      }t        t        |      dk(         | j                   j                  t	        j
                  dgdz        d      }t        t        |      dk(         | j                   j                  dt	        j
                  dgdz              }t        t        |      dk(         | j                   j                  t	        j
                  dgdz        t	        j
                  dgdz              }t        t        |      dk(         | j                   j                  t	        j
                  dgdz        t	        j
                  dggdz              }t        |j                  dk(         y )Nr&   r   r   )rU   betar   r   r   r/   r!   rr   valss     r   	test_betaz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    | j                   j                  d      }t        t        |      dk(         y r   )rU   bytesr   r   r   s     r   
test_byteszRNG.test_bytes"  s$    ww}}R D	R r   c                     | j                   j                  dd      }t        t        |      dk(         t	        | j                   j                         y Nr&   r   )rU   	chisquarer   r   r8   r   s     r   test_chisquarezRNG.test_chisquare&  s:    ww  b)D	R ""#r   c                     | j                   j                  dd      }t        t        |      dk(         t	        | j                   j                         y r   )rU   exponentialr   r   r8   r   s     r   test_exponentialzRNG.test_exponential+  s:    ww""3+D	R $$%r   c                 l    | j                   j                  ddd      }t        t        |      dk(         y )N   r   r   )rU   r"   r   r   r   s     r   test_fz
RNG.test_f0  s(    wwyyD"%D	R r   c                 l    | j                   j                  ddd      }t        t        |      dk(         y )Nr   r,   r   )rU   gammar   r   r   s     r   
test_gammazRNG.test_gamma4  s(    ww}}Q2&D	R r   c                     | j                   j                  dd      }t        t        |      dk(         t	        | j                   j
                  d       y )Nr*   r   Tr1   )rU   	geometricr   r   r8   r   r   s     r   test_geometriczRNG.test_geometric8  s<    ww  b)D	R $$d3r   c                 l    | j                   j                  ddd      }t        t        |      dk(         y r   )rU   gumbelr   r   r   s     r   test_gumbelzRNG.test_gumbel=  s(    ww~~c3+D	R r   c                 l    | j                   j                  ddd      }t        t        |      dk(         y r   )rU   laplacer   r   r   s     r   test_laplacezRNG.test_laplaceA  s(    wwsC,D	R r   c                 l    | j                   j                  ddd      }t        t        |      dk(         y r   )rU   logisticr   r   r   s     r   test_logiticzRNG.test_logiticE  s*    wwS"-D	R r   c                 j    | j                   j                  dd      }t        t        |      dk(         y )Nr*   r   )rU   	logseriesr   r   r   s     r   test_logserieszRNG.test_logseriesI  s(    ww  b)D	R r   c                 l    | j                   j                  ddd      }t        t        |      dk(         y Nr   皙?)rU   negative_binomialr   r   r   s     r   test_negative_binomialzRNG.test_negative_binomialM  s*    ww((S"5D	R r   c                 l    | j                   j                  ddd      }t        t        |      dk(         y )Nr   r,   )rU   noncentral_chisquarer   r   r   s     r   test_noncentral_chisquarezRNG.test_noncentral_chisquareQ  s*    ww++B26D	R r   c                 0   | j                   j                  dddd      }t        t        |      dk(         | j                   j                  t	        j
                  dgdz        dd      }t        t        |      dk(         | j                   j                  dt	        j
                  dgdz        d      }t        t        |      dk(         | j                   j                  ddt	        j
                  dgdz              }t        t        |      dk(         y )Nr   r   r,   r   )rU   noncentral_fr   r   r   r/   r   s     r   test_noncentral_fz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    | j                   j                  ddd      }t        t        |      dk(         y r   )rU   normalr   r   r   s     r   test_normalzRNG.test_normal_  s(    ww~~b#r*D	R r   c                 j    | j                   j                  dd      }t        t        |      dk(         y )Nr(   r   )rU   paretor   r   r   s     r   test_paretozRNG.test_paretoc  s&    ww~~c2&D	R r   c                 :   | j                   j                  dd      }t        t        |      dk(         | j                   j                  t	        j
                  dgdz              }t        t        |      dk(         t        | j                   j                         y r   )rU   poissonr   r   r   r/   r8   r   s     r   test_poissonzRNG.test_poissong  sg    wwr2&D	R wwrxxr	23D	R !r   c                 j    | j                   j                  dd      }t        t        |      dk(         y )Nr   r   )rU   powerr   r   r   s     r   
test_powerzRNG.test_powern  s&    ww}}S"%D	R r   c                 l    | j                   j                  ddd      }t        t        |      dk(         y )Nr   rJ   )rU   rQ   r   r   r   s     r   test_integerszRNG.test_integersr  s*    wwB+D	R r   c                     | j                   j                  dd      }t        t        |      dk(         t	        | j                   j                  d       y )Nr   r   Tr   )rU   rayleighr   r   r8   r   s     r   test_rayleighzRNG.test_rayleighv  s<    wwR(D	R !!40r   c                 l    | j                   j                  ddd      }t        t        |      dk(         y r   )rU   vonmisesr   r   r   s     r   test_vonmiseszRNG.test_vonmises{  s*    wwC,D	R r   c                 l    | j                   j                  ddd      }t        t        |      dk(         y N      ?r   )rU   waldr   r   r   s     r   	test_waldzRNG.test_wald  s(    ww||Cb)D	R r   c                 j    | j                   j                  dd      }t        t        |      dk(         y r  )rU   weibullr   r   r   s     r   test_weibullzRNG.test_weibull  s&    wwsB'D	R r   c                    | j                   j                  dd      }t        t        |      dk(         | j                   j                  | j                        }t        t        |      dk(         | j                   j                  | j
                        }t        |j                  dk(         | j                   j                  | j                        }t        |j                  dk(         y )Nr   rj   )r)   rj   ri   )rU   zipfr   r   rk   rl   r!   rm   r   s     r   	test_zipfzRNG.test_zipf  s    ww||B#D	R ww||DKK(D	S !ww||DKK(

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

j()r   c                    | j                   j                  ddd      }t        t        j                  |             | j                   j                  t        j
                  dgdz        dd      }t        |j                  dk(         y )N   rJ   r   r   )rU   hypergeometricr   r   r    r/   r!   r   s     r   test_hypergeometriczRNG.test_hypergeometric  sc    ww%%b"b1D!"ww%%bhhtby&92rB

e#$r   c                    | j                   j                  ddd      }t        t        j                  |             | j                   j                  dt        j
                  dgdz        d      }t        |j                  dk(         y )Nr   r   r   r   )rU   
triangularr   r   r    r/   r!   r   s     r   test_triangularzRNG.test_triangular  sc    ww!!"a+D!"ww!!"bhhsRx&8!<

e#$r   c                    ddg}ddgddgg}| j                   j                  ||d      }t        |j                  dk(         | j                   j                  ||d      }t        |j                  dk(         | j                   j                  ||d      }t        |j                  dk(         t        ||k7  j	                                y )Nr   r)   rj     )r.  r,   )rU   multivariate_normalr   r!   r   )rr   meancovxx_zigx_invs         r   test_multivariate_normalzRNG.test_multivariate_normal  s    1v1v3x GG''c489$%++D#t<9$%++D#t<9$%%$$&'r   c                     | j                   j                  dddg      }t        |j                  dk(         | j                   j                  dddgd      }t        |j                  dk(         y )Nrj   gUUUUUU?gUUUUUU?)r,   r   r   r+   )rU   multinomialr   r!   r   s     r   test_multinomialzRNG.test_multinomial  s_    ww""3'(:;

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

g%&r   c                 l    | j                   j                  dd      }t        |j                  dk(         y )N)r   r   r   rJ   )rJ   r   )rU   	dirichletr   r!   )rr   ss     r   test_dirichletzRNG.test_dirichlet  s)    GGj"-7"#r   c                    t        j                  | j                        }t        j                  |      }t	        t        | j                        t        |      k(         t	        t        | j                  j                  j                  |j                  j                               t        j                  | j                        }t        j                  |      }t	        t        | j                        t        |      k(         t	        t        | j                  j                  j                  |j                  j                               y r   )	pickledumpsrU   loadsr   r=   r<   r^   ra   )rr   pickunpicks      r   test_picklez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                 p   | j                   .| j                  j                  }t        j                  d|        | j                   dk(  rt
        j                  }nt
        j                  }t        j                  dg|      }| j                  |      }|j                  }| j                  d      }|j                  }t        t        ||             t        j                  d|      }| j                  |      }|j                  }| j                  |d         }|j                  }t        t        ||              t        j                  d|      }| j                  |      }|j                  }| j                  |d         }|j                  }t        t        ||              dt        j                  t        j                  d|      | j                   dz
        z  dz   }| j                  |      }|j                  }| j                  |d         }|j                  }t        t        ||              y )	Nz#Vector seeding is not supported by     r)   rK      r   i  r,   )rc   r^   rz   r{   r|   r   r   rR   r/   ra   r   r<   r-   mod)rr   r}   r   r`   bgrB   rC   s          r   test_seed_arrayzRNG.test_seed_array  s     (,,55KKK=k]KL  B&IIEIIExx5)%"
66*+yy%(%Q(Jvv../yyU+%Q(Jvv../BFF299T700146 689:%  a)Jvv../r   c                 B   t        | j                  d            }t        |       |j                  j                  }|j	                  dt
        j                        }t        | j                               }t        |       ||j                  _        |j	                  dt
        j                        }t        ||       t        |j                  t
        j                         t        t        |j                  j                  |j                  j                               y )Nr[   rI   rK   )r   r^   rW   ra   rM   r   rP   r   r   r   r   r<   rr   rU   ra   r1r   r2s         r   test_uniform_floatzRNG.test_uniform_float  s    t))%01r
  &&YYrY,**,-s"'ZZ"**Z-2r"RXXrzz*
2++1133D3D3J3JKLr   c                 D   t        | j                               }t        |       |j                  j                  }|j	                  ddt
        j                        }t        | j                               }t        |       ||j                  _        |j	                  ddt
        j                        }t        ||       t        |j                  t
        j                         t        t        |j                  j                  |j                  j                               y )Ng      @rI   rK   )r   r^   rW   ra   rS   r   rP   r   r   r   r   r<   rK  s         r   test_gamma_floatszRNG.test_gamma_floats  s    t))+,r
  &&sBbjj9**,-s"'Rrzz:2r"RXXrzz*
2++1133D3D3J3JKLr   c                 @   t        | j                               }t        |       |j                  j                  }|j	                  dt
        j                        }t        | j                               }t        |       ||j                  _        |j	                  dt
        j                        }t        ||       t        |j                  t
        j                         t        t        |j                  j                  |j                  j                               y NrI   rK   r   r^   rW   ra   rO   r   rP   r   r   r   r   r<   rK  s         r   test_normal_floatszRNG.test_normal_floats      t))+,r
  &&"**5**,-s"'  2:: 62r"RXXrzz*
2++1133D3D3J3JKLr   c                 @   t        | j                               }t        |       |j                  j                  }|j	                  dt
        j                        }t        | j                               }t        |       ||j                  _        |j	                  dt
        j                        }t        ||       t        |j                  t
        j                         t        t        |j                  j                  |j                  j                               y rR  rS  rK  s         r   test_normal_zig_floatszRNG.test_normal_zig_floats  rU  r   c                    | j                   }|j                  j                  }d}t        j                  |      }||j                  _        |j                  |       ||j                  _        |j                  |      }t        ||       t        j                  |      }||j                  _        |j                  ||j                         t        j                  |t        j                        }||j                  _        |j                  |t        j                         ||j                  _        |j                  |t        j                        }t        ||       y )N      a   outr   )r^  r   rK   r^  r   r   )	rU   r^   ra   r   emptyrO   r   r!   rP   )rr   rU   ra   r   existingdirectsizeds          r   test_output_fillzRNG.test_output_fill  s   WW  &&88D>!&
x(!&###.VX&!&
u5;;788D

3!&
xrzz:!&##RZZ#@VX&r   c                 D   | j                   }|j                  j                  }d}t        j                  |      }||j                  _        |j                  |       ||j                  _        |j                  |      }t        ||       t        j                  |t        j                        }||j                  _        |j                  |t        j                         ||j                  _        |j                  |t        j                        }t        ||       y NrY  r]  r   rK   r_  r   )rU   r^   ra   r   r`  rM   r   rP   rr   rU   ra   r   ra  rb  s         r   test_output_filling_uniformzRNG.test_output_filling_uniform/  s    WW  &&88D>!&
		h	!&%VX&88D

3!&
		hbjj	1!&BJJ7VX&r   c                 D   | j                   }|j                  j                  }d}t        j                  |      }||j                  _        |j                  |       ||j                  _        |j                  |      }t        ||       t        j                  |t        j                        }||j                  _        |j                  |t        j                         ||j                  _        |j                  |t        j                        }t        ||       y rf  )rU   r^   ra   r   r`  r   r   rP   rg  s         r   test_output_filling_exponentialz#RNG.test_output_filling_exponentialA  s    WW  &&88D>!&
H-!&((d(3VX&88D

3!&
HBJJ?!&((d"**(EVX&r   c                 L   | j                   }|j                  j                  }d}t        j                  |      }||j                  _        |j                  d|       ||j                  _        |j                  d|      }t        ||       t        j                  |t        j                        }||j                  _        |j                  d|t        j                         ||j                  _        |j                  d|t        j                        }t        ||       y )NrY  r  r]  r   rK   r_  r   )rU   r^   ra   r   zerosrS   r   rP   rg  s         r   test_output_filling_gammazRNG.test_output_filling_gammaS  s    WW  &&88D>!&
#8,!&""3T"2VX&88D

3!&
#82::>!&""3T"DVX&r   c                 |   | j                   }|j                  j                  }d}t        j                  d      dz   }t        j
                  |      }||j                  _        |j                  ||       ||j                  _        |j                  ||      }t        ||       t        j
                  |t        j                        }||j                  _        |j                  ||t        j                         ||j                  _        |j                  ||t        j                        }t        ||       y )	NrY  g     @X@r  r]  r   rK   r_  r   )	rU   r^   ra   r   r-   rl  rS   r   rP   )rr   rU   ra   r   mura  rb  s          r   #test_output_filling_gamma_broadcastz'RNG.test_output_filling_gamma_broadcaste  s    WW  &&YYt_s"88D>!&
"(+!&""2D"1VX&88D

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

"CVX&r   c                 r   | j                   }d}t        j                  |      }t        j                  t
              5  |j                  |t        j                         d d d        t        j                  t              5  |j                  |d d d          d d d        t        j                  |t        j                        }t        j                  t
              5  |j                  |t        j                         d d d        t        j                  |t        j                        }t        j                  t
              5  |j                  d|t        j                         d d d        t        j                  t              5  |j                  d|d d d   t        j                         d d d        t        j                  |t        j                        }t        j                  t
              5  |j                  d|t        j                         d d d        t        j                  t              5  |j                  d|d d d          d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   |xY w# 1 sw Y    xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)NrY  r_  r   r]  rK   r  )rU   r   r`  r{   raisesrn   rO   rP   
ValueErrorrT   rl  rS   )rr   rU   r   ra  s       r   test_output_fill_errorzRNG.test_output_fill_errorx  s   WW88D>]]9% 	?82::>	?]]:& 	28CaC=1	288D

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

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

3]]9% 	CcxrzzB	C]]:& 	6cx!}5	6 	6!	? 	?	2 	2	? 	?	C 	C	H 	H	C 	C	6 	6sS   "I! I."I;#J)J:#J!>J-!I+.I8;JJJ!J*-J6c                 ~   |t         j                  k(  rd}d}n9t        j                  |      }t        |j                        dz   }|j
                  }| j                          | j                  j                  ||gdz  |      }| j                          | j                  j                  |gdz  ||      }t        ||       | j                          | j                  j                  ||d|      }t        ||       | j                          | j                  j                  t        j                  |gdz        t        j                  |gt              d|      }t        ||       | j                          | j                  j                  t        j                  |gdz        t        j                  |gdz        d|      }	t        ||	       | j                          | j                  j                  d|d|      }| j                          | j                  j                  |gdz  |      }t        ||       y )Nr,   r   r)   r   rK   r   )r   booliinfointr0   minrs   rU   rQ   r   r/   object)
rr   r   upperlowerinfor2   r3   r4   r5   r6   s
             r   test_integers_broadcastzRNG.test_integers_broadcast  s   BGGEE88E?DMA%EHHEGGUUGbL>GGeWr\5>QGGUE%@QGGRXXGbL88UG6:   	QGGHHeWr\"BHHeWr\$:   	QGGQBe<GGeWr\7Qr   c                    t        j                  dg      }t        j                  dg      }| j                  j                  |||      }|j                  dk(  sJ | j                  j                  |d   ||      }|j                  dk(  sJ | j                  j                  ||d   |      }|j                  dk(  sJ y )Nr)   r   rK   )r)   )r   r/   rU   rQ   r!   )rr   r   highlowr^  s        r   test_integers_numpyzRNG.test_integers_numpy  s    xx}hhsmggsD6yyD   ggs1vt59yyD   ggsDG59yyD   r   c                 6   |t         j                  k(  rd}d}n9t        j                  |      }t        |j                        dz   }|j
                  }t        j                  t              5  | j                  j                  ||dz   gdz  |       d d d        t        j                  t              5  | j                  j                  |dz
  |gdz  |       d d d        t        j                  t              5  | j                  j                  |dz
  g|gdz  |       d d d        t        j                  t              5  | j                  j                  dgdg|       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   dxY w# 1 sw Y   y xY w)Nr,   r   r)   r   rK   )r   rv  rw  rx  r0   ry  r{   rr  rs  rU   rQ   )rr   r   r{  r|  r}  s        r   test_integers_broadcast_errorsz"RNG.test_integers_broadcast_errors  s^   BGGEE88E?DMA%EHHE]]:& 	CGGUUQYK"$4EB	C]]:& 	CGGUQY"EB	C]]:& 	EGGeai[5'B,eD	E]]:& 	4GGaS1#U3	4 	4	C 	C	C 	C	E 	E	4 	4s0   +&E+2&E79'F!F+E47F FFN)Jrz   
__module____qualname__classmethodrg   rd   rs   rv   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,  r5  r8  r<  rC  rI  rN  rP  rT  rW  rd  rh  rj  rm  rp  rt  r~  r  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                   "    e Zd Zed        Zd Zy)TestMT19937c                    t         | _        d | _        dg| _        t	         | j                  | j                         | _        | j
                  j                  j                  | _        d| _        | j                          t        | _        y )Ni! ! rE  )r   r^   r_   r`   r   rU   ra   rb   rc   rd   rs  ro   re   s    r   rg   zTestMT19937.setup_class  sl    #23,3,,chh78FF0066!#r   c                 p   t         j                  j                         }|j                  d       |j	                         }|| j
                  j                  _        | j
                  j                  j                  }t        |d   |d   d   k(  j                                t        |d   |d   d   k(         y )Nc   r)   ra   rE   r,   pos)
r   rM   RandomStaterO   	get_staterU   r^   ra   r   r   )rr   nprgra   rC   s       r   test_numpy_statezTestMT19937.test_numpy_state  s    yy$$&R  &+#&&,,qVG_U3388:;aF7OE223r   N)rz   r  r  r  rg   r  r  r   r   r  r    s    $ $4r   r  c                       e Zd Zed        Zy)
TestPhiloxc                     t         | _        d| _        dg| _        t	         | j                  | j                         | _        | j
                  j                  j                  | _        d| _        | j                          y Nl         r[   r\   )
r   r^   r_   r`   r   rU   ra   rb   rc   rd   re   s    r   rg   zTestPhilox.setup_class  sd    "/7,3,,chh78FF0066!r   Nrz   r  r  r  rg   r  r   r   r  r         r   r  c                       e Zd Zed        Zy)	TestSFC64c                     t         | _        d | _        dg| _        t	         | j                  | j                         | _        | j
                  j                  j                  | _        d| _        | j                          y )Nr[      )
r   r^   r_   r`   r   rU   ra   rb   rc   rd   re   s    r   rg   zTestSFC64.setup_class  sd    !7,3,,chh78FF0066"r   Nr  r  r   r   r  r    r  r   r  c                       e Zd Zed        Zy)	TestPCG64c                     t         | _        d| _        dg| _        t	         | j                  | j                         | _        | j
                  j                  j                  | _        d| _        | j                          y r  r]   re   s    r   rg   zTestPCG64.setup_class  sd    !/7,3,,chh78FF0066!r   Nr  r  r   r   r  r    r  r   r  c                       e Zd Zed        Zy)TestPCG64DXSMc                     t         | _        d| _        dg| _        t	         | j                  | j                         | _        | j
                  j                  j                  | _        d| _        | j                          y r  )
r
   r^   r_   r`   r   rU   ra   rb   rc   rd   re   s    r   rg   zTestPCG64DXSM.setup_class
  sd    %/7,3,,chh78FF0066!r   Nr  r  r   r   r  r  	  r  r   r  c                   (    e Zd Zed        Zd Zd Zy)TestDefaultRNGc                    t         | _        d| _        dg| _        t	        j
                  j                  | j                   | _        | j                  j                  j                  | _	        d| _
        | j                          y r  )r	   r^   r_   r`   r   rM   default_rngrU   ra   rb   rc   rd   re   s    r   rg   zTestDefaultRNG.setup_class  sb     "/7&&1FF0066!r   c                 ^    t        t        | j                  j                  t                     y r   )r   r:   rU   r^   r	   rq   s    r   test_default_is_pcg64z$TestDefaultRNG.test_default_is_pcg64"  s     	
47700%89r   c                    t         j                  j                          t         j                  j                  d        t         j                  j                  d       t         j                  j                  d       t         j                  j                  d       t         j                  j                  ddg       t        j                  t
              5  t         j                  j                  d       d d d        t        j                  t
              5  t         j                  j                  ddg       d d d        y # 1 sw Y   MxY w# 1 sw Y   y xY w)Nr[   r   l	   -tE+I6%Yl  l	   )	~eR :TI*6 r   )r   rM   r  r{   rr  rs  rq   s    r   r   zTestDefaultRNG.test_seed'  s    
		
		d#
		e$
		a 
		DE
		EFH 	I]]:& 	&II!!"%	&]]:& 	/II!!5"+.	/ 	/	& 	&	/ 	/s    E"EE
EN)rz   r  r  r  rg   r  r   r  r   r   r  r    s    	 	:
/r   r  )Fr   )'r>  	functoolsr   numpyr   r{   numpy.testingr   r   r   numpy.randomr   r   r	   r
   r   r   fixturerv  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   