
    G/Ph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j        ej        ej        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&dS )    N)partial)assert_equalassert_assert_array_equal)	GeneratorMT19937PCG64	PCG64DXSMPhiloxSFC64module)scopeparamsc                     | j         S N)param)requests    ]/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numpy/random/tests/test_smoke.pydtyper   	   s     =    c                 v    |             }t          t          j        |                      | d          }t          |j        dk                | d          }t          |j        dk                | d          }t          |j        dk                | d          }t          |j        dk               d S )N
   r   r   r   r   r   r   )   r   size)r   npisscalarshape)fvals     r   params_0r$      s    
!##CBK
!B%%CCI
!H++CCI!"""
!L//CCI%&&&
!...CCI     r   Fc                    d}t          j        dd          }t          j        dd                              d          }t          j        dd                              d          }t          j        ddg          }t          j        dd                              d	          }|rd
}|d|                                z  z  }|d|                                z  z  }|d|                                z  z  }|d|                                z  z  }|d|                                z  z  } | |            | |d            | |            | |            | |            | |d            | |d            | |d           d S )Ng      @       @g      (@     Y@r   g     P@r         @)   r   r)         ?g      ?r   r   r      )r   arangereshapearraymax)r"   boundedabcdegs           r   params_1r8      s   A
	#tA
	#u%%h//A
	#v&&|44A
#sA
	#t$$Z00A  quuwwquuwwquuwwquuwwquuww AaDDDAahAaDDDAaDDDAaDDDAabMMMMAagAalr   c                    d}t          | t                    r%| D ]!}|t          | |         ||                   z  }"nt          |           t          |          k    r$|t          |           t          |          k    z  }nt          | t          t
          t          j        f          rQt          |t          t
          t          j        f          r*t          | |          D ]\  }}|t          ||          z  }n	|| |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===II	>	ff	%	%T&\\T&\\11		veRZ899 	*jubj1?3 ?3 	*ff-- 0 0BZB///		0 6))Ir   c                    |#dt           j                            dd          z   }|                     |           |                     |           |                     |t           j                   |                     |t           j                   |                     dd|t           j                   |                     dd|t           j                   |                     d|           |                     d|t           j                   |                     |t           j                   |                     |t           j                   d S )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7ARYK///KK7ARYK///dAdARZ000IIarzI"""IIarzI"""""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 ZIdGS )HRNGc                     t           | _        d | _        dg| _        t	           | j        | j                   | _        | j        j        j        | _        d| _        | 	                                 d S )N90  @   
r	   bit_generatoradvanceseedr   rU   stateinitial_stateseed_vector_bits_extra_setupclss    r   setup_classzRNG.setup_class_   sh     "7,3,ch788F06!r   c                     t          j        dd          | _        t          j        dd          d d d f         | _        t          j        ddd                              d          | _        t          | _        d S )Nr&   r'   g{Gz?d   rj   )r   r-   vec_1dvec_2dr.   mat	TypeError
seed_errorre   s    r   rd   zRNG._extra_setupj   sc    YsE**
YsE**473
)C--55jAA"r   c                 2    | j         | j        j        _        d S r   )rb   rU   r^   ra   selfs    r   _reset_statezRNG._reset_stateq   s    &*&8###r   c                    t          |                                           }|j        j        }|                    d           |                    d           ||j        _        |j        j        }t	          t          ||                     d S )Nr)   )r   r^   ra   rO   r   r<   )rr   rU   ra   	new_states       r   	test_initzRNG.test_initt   s    t))++,, &
1
1!&$*	
5),,-----r   c                 \   | j         j        j        }t          | j         j        d          rS| j         j                            | j                   t          t          || j         j        j                              d S | j         j        j        j        }t          j
        d|            d S )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    %+47()44 	FG!))$,777
5$'*?*EFFFGGGGG'/9BKKD{DDEEEEEr   c                 F   | j         j        j        }t          | j         j        d          r| j         j                                        }|j        }t          t          ||                      | j                             d           || j         j        _        | j         j                                        }|j        }t          t          ||                     d S | j         j        j        j	        }|dvrt          d|           t          j        d|            d S )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   %+47((33 	Cw,3355H#>L
5,777888GNN7888*/DG!'w,3355H%^NJ|^<<====='/9BK*,,$%D{%D%DEEEKAKAABBBBBr   c                    | j                             ddd          }t          t          |          dk               t          |dk                                               t          |dk                                               d S )N              r   r   r   )rU   uniformr   lenallrr   rs     r   test_uniformzRNG.test_uniform   sm    GOOD#BO//A"Rar   c                    | j                             t          j        dgdz            dd          }t	          t          |          dk               t	          |dk                                               t	          |dk                                               | j                             t          j        dgdz            t          j        dgdz            d          }t	          t          |          dk               t	          |dk                                               t	          |dk                                               | j                             dt          j        dgdz            d          }t	          t          |          dk               t	          |dk                                               t	          |dk                                               d S )Nr   r   r   r   r   r   )rU   r   r   r/   r   r   r   r   s     r   test_uniform_arrayzRNG.test_uniform_array   s   GOOBHdVb[113RO@@A"RaGOOBHdVb[11HcURZ00r  ; ;A"RaGOOD"(C52:"6"6RO@@A"Rar   c                     t          t          | j                            d                    dk               t	          | j        j                   d S Nr   )r   r   rU   rM   r$   rq   s    r   test_randomzRNG.test_random   sC    DGNN2&&''2-...     r   c                 v    t          t          | j                            d                    dk               d S r   )r   r   rU   rO   rq   s    r   test_standard_normal_zigzRNG.test_standard_normal_zig   s3    DG++B//00B677777r   c                     t          t          | j                            d                    dk               t	          | j        j                   d S r   )r   r   rU   rO   r$   rq   s    r   test_standard_normalzRNG.test_standard_normal   F    DG++B//00B6777()))))r   c           
      H   t          t          | j                            dd                    dk               t          t          | j                            t	          j        dgdz            d                    dk               t          | j        j                   d S r   )r   r   rU   rS   r   r/   r8   rq   s    r   test_standard_gammazRNG.test_standard_gamma   s    DG**2r2233r9:::DG**28RD2I+>+>CCDDJKKK'(((((r   c                     t          t          | j                            d                    dk               t	          | j        j                   d S r   )r   r   rU   standard_exponentialr$   rq   s    r   test_standard_exponentialzRNG.test_standard_exponential   sF    DG004455;<<<-.....r   c                     | j                             dd          }t          t          |          dk               |j        t
          j        k    sJ t          t          | j         j        d                     d S )Nr   rP   rK   	rU   r   r   r   r   r   rP   r$   r   rr   randomss     r   test_standard_exponential_floatz#RNG.test_standard_exponential_float   sp    '..r.CCG"###}
****5YGGGHHHHHr   c                     | j                             ddd          }t          t          |          dk               |j        t
          j        k    sJ t          t          | j         j        dd                     d S )Nr   rP   inv)r   methodr   r   s     r   #test_standard_exponential_float_logz'RNG.test_standard_exponential_float_log   s    '..r6; / = =G"###}
****5Y %' ' ' 	( 	( 	( 	( 	(r   c                     t          t          | j                            d                    dk               t	          | j        j                   d S r   )r   r   rU   standard_cauchyr$   rq   s    r   test_standard_cauchyzRNG.test_standard_cauchy   r   r   c                     t          t          | j                            dd                    dk               t	          | j        j                   d S r   )r   r   rU   
standard_tr8   rq   s    r   test_standard_tzRNG.test_standard_t   sH    DG&&r2..//25666#$$$$$r   c                     t          | j                            dd          dk               t          | j                            dd          dk               d S )Nr   r*   r     )r   rU   binomialrq   s    r   test_binomialzRNG.test_binomial   sR      R((A-...  r**a/00000r   c                     | j         j        j        }| j                             d          }|| j         j        _        | j                             d          }t	          ||k               d S )Nl        )rU   r^   ra   rQ   r   )rr   ra   int_1int_2s       r   test_reset_statezRNG.test_reset_state   s^    %+  ''&+#  ''r   c                     t          |                                           }t          |                                           }t          t          |j        j        |j        j                              d S r   )r   r^   r   r<   ra   rr   rU   rg2s      r   test_entropy_initzRNG.test_entropy_init   sr    t))++,,**,,--Jr/5"068 8 8 	9 	9 	9 	9 	9r   c                 (   t           | j        | j                   }t           | j        | j                   }|                                 |                                 t	          t          |j        j        |j        j                             d S r   )r   r^   r`   rM   r   r<   ra   r   s      r   	test_seedzRNG.test_seed   sz    )t)49566**DI677
		


2+133D3JKKLLLLLr   c                 P   t           | j        | j                   }|                                 |j        j        }|                    d          }t          |                                           }||j        _        |                    d          }t          ||           d S )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)49566
 &R((**,,--"'  b ))2r"""""r   c                    t           | j        | j                   }|                    dddt          j                   |j        j        }|                    dddt          j                  }t          |                                           }||j        _        |                    dddt          j                  }t          ||           d S )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)49566
Aw29555 &[[GRry[99**,,--"'\\!Wb	\::2r"""""r   c                    t           | j        | j                   }|                    d           |j        j        }|                    dd          }t          |                                           }||j        _        |                    dd          }t          ||k                                               d S )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)49566
				""" &YYBiY00**,,--"'ZZRyZ11r  !!!!!r   c                     t          j        ddd          }| j                            |          }t	          ||k                                               d S N   r   r   r   r-   rU   permutationr   anyrr   originalpermuteds      r   test_shufflezRNG.test_shuffle  O    9S!R((7&&x00X%**,,-----r   c                     t          j        ddd          }| j                            |          }t	          ||k                                               d S r   r   r   s      r   test_permutationzRNG.test_permutation  r   r   c                 P   | j                             ddd          }t          t          |          dk               | j                             t	          j        dgdz            d          }t          t          |          dk               | j                             dt	          j        dgdz                      }t          t          |          dk               | j                             t	          j        dgdz            t	          j        dgdz                      }t          t          |          dk               | j                             t	          j        dgdz            t	          j        dggdz                      }t          |j        dk               d S )Nr&   r   r   )rU   betar   r   r   r/   r!   rr   valss     r   	test_betazRNG.test_beta  sJ   w||Cb))D		R   w||BHcURZ00#66D		R   w||C3%"*!5!566D		R   w||BHcURZ00"(C52:2F2FGGD		R   w||BHcURZ00"(SE7R<2H2HII
h&'''''r   c                 z    | j                             d          }t          t          |          dk               d S r   )rU   bytesr   r   r   s     r   
test_byteszRNG.test_bytes"  s3    w}}R  D		R     r   c                     | j                             dd          }t          t          |          dk               t	          | j         j                   d S Nr&   r   )rU   	chisquarer   r   r8   r   s     r   test_chisquarezRNG.test_chisquare&  sJ    w  b))D		R   "#####r   c                     | j                             dd          }t          t          |          dk               t	          | j         j                   d S r   )rU   exponentialr   r   r8   r   s     r   test_exponentialzRNG.test_exponential+  sJ    w""3++D		R   $%%%%%r   c                 ~    | j                             ddd          }t          t          |          dk               d S )N   r   r   )rU   r"   r   r   r   s     r   test_fz
RNG.test_f0  s7    wyyD"%%D		R     r   c                 ~    | j                             ddd          }t          t          |          dk               d S )Nr   r,   r   )rU   gammar   r   r   s     r   
test_gammazRNG.test_gamma4  s7    w}}Q2&&D		R     r   c                     | j                             dd          }t          t          |          dk               t	          | j         j        d           d S )Nr*   r   Tr1   )rU   	geometricr   r   r8   r   r   s     r   test_geometriczRNG.test_geometric8  sO    w  b))D		R   $d333333r   c                 ~    | j                             ddd          }t          t          |          dk               d S r   )rU   gumbelr   r   r   s     r   test_gumbelzRNG.test_gumbel=  s7    w~~c3++D		R     r   c                 ~    | j                             ddd          }t          t          |          dk               d S r   )rU   laplacer   r   r   s     r   test_laplacezRNG.test_laplaceA  s7    wsC,,D		R     r   c                 ~    | j                             ddd          }t          t          |          dk               d S r   )rU   logisticr   r   r   s     r   test_logiticzRNG.test_logiticE  s9    wS"--D		R     r   c                 |    | j                             dd          }t          t          |          dk               d S )Nr*   r   )rU   	logseriesr   r   r   s     r   test_logserieszRNG.test_logseriesI  s7    w  b))D		R     r   c                 ~    | j                             ddd          }t          t          |          dk               d S Nr   皙?)rU   negative_binomialr   r   r   s     r   test_negative_binomialzRNG.test_negative_binomialM  s9    w((S"55D		R     r   c                 ~    | j                             ddd          }t          t          |          dk               d S )Nr   r,   )rU   noncentral_chisquarer   r   r   s     r   test_noncentral_chisquarezRNG.test_noncentral_chisquareQ  s9    w++B266D		R     r   c                 l   | j                             dddd          }t          t          |          dk               | j                             t	          j        dgdz            dd          }t          t          |          dk               | j                             dt	          j        dgdz            d          }t          t          |          dk               | j                             ddt	          j        dgdz                      }t          t          |          dk               d S )Nr   r   r,   r   )rU   noncentral_fr   r   r   r/   r   s     r   test_noncentral_fzRNG.test_noncentral_fU  s    w##AtQ33D		R   w##BHaS2X$6$6a@@D		R   w##Arx'<'<a@@D		R   w##AtRXqcBh-?-?@@D		R     r   c                 ~    | j                             ddd          }t          t          |          dk               d S r   )rU   normalr   r   r   s     r   test_normalzRNG.test_normal_  s7    w~~b#r**D		R     r   c                 |    | j                             dd          }t          t          |          dk               d S )Nr(   r   )rU   paretor   r   r   s     r   test_paretozRNG.test_paretoc  s5    w~~c2&&D		R     r   c                 N   | j                             dd          }t          t          |          dk               | j                             t	          j        dgdz                      }t          t          |          dk               t          | j         j                   d S r   )rU   poissonr   r   r   r/   r8   r   s     r   test_poissonzRNG.test_poissong  s    wr2&&D		R   wrxr	2233D		R   !!!!!r   c                 |    | j                             dd          }t          t          |          dk               d S )Nr   r   )rU   powerr   r   r   s     r   
test_powerzRNG.test_powern  s5    w}}S"%%D		R     r   c                 ~    | j                             ddd          }t          t          |          dk               d S )Nr   rJ   )rU   rQ   r   r   r   s     r   test_integerszRNG.test_integersr  s9    wB++D		R     r   c                     | j                             dd          }t          t          |          dk               t	          | j         j        d           d S )Nr   r   Tr   )rU   rayleighr   r   r8   r   s     r   test_rayleighzRNG.test_rayleighv  sO    wR((D		R   !4000000r   c                 ~    | j                             ddd          }t          t          |          dk               d S r   )rU   vonmisesr   r   r   s     r   test_vonmiseszRNG.test_vonmises{  s9    wC,,D		R     r   c                 ~    | j                             ddd          }t          t          |          dk               d S N      ?r   )rU   waldr   r   r   s     r   	test_waldzRNG.test_wald  s7    w||Cb))D		R     r   c                 |    | j                             dd          }t          t          |          dk               d S r  )rU   weibullr   r   r   s     r   test_weibullzRNG.test_weibull  s5    wsB''D		R     r   c                    | j                             dd          }t          t          |          dk               | j                             | j                  }t          t          |          dk               | j                             | j                  }t          |j        dk               | j                             | j                  }t          |j        dk               d S )Nr   rj   )r)   rj   ri   )rU   zipfr   r   rk   rl   r!   rm   r   s     r   	test_zipfzRNG.test_zipf  s    w||B##D		R   w||DK((D		S !!!w||DK((
h&'''w||DH%%
j()))))r   c                    | j                             ddd          }t          t          j        |                     | j                             t          j        dgdz            dd          }t          |j        dk               d S )N   rJ   r   r   )rU   hypergeometricr   r   r    r/   r!   r   s     r   test_hypergeometriczRNG.test_hypergeometric  sw    w%%b"b11D!!"""w%%bhtby&9&92rBB
e#$$$$$r   c                    | j                             ddd          }t          t          j        |                     | j                             dt          j        dgdz            d          }t          |j        dk               d S )Nr   r   r   r   )rU   
triangularr   r   r    r/   r!   r   s     r   test_triangularzRNG.test_triangular  sw    w!!"a++D!!"""w!!"bhsRx&8&8!<<
e#$$$$$r   c                    ddg}ddgddgg}| j                             ||d          }t          |j        dk               | j                             ||d          }t          |j        dk               | j                             ||d          }t          |j        dk               t          ||k                                               d S )Nr   r)   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 G''c4889$%%%++D#t<<9$%%%++D#t<<9$%%%%$$&&'''''r   c                     | j                             dddg          }t          |j        dk               | j                             dddgd          }t          |j        dk               d S )Nrj   gUUUUUU?gUUUUUU?)r,   r   r   r+   )rU   multinomialr   r!   r   s     r   test_multinomialzRNG.test_multinomial  so    w""3'(:;;
d"###w""3'(:"DD
g%&&&&&r   c                 l    | j                             dd          }t          |j        dk               d S )N)r   r   r   rJ   )rJ   r   )rU   	dirichletr   r!   )rr   ss     r   test_dirichletzRNG.test_dirichlet  s4    Gj"--7"#####r   c                 Z   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                             d S r   )	pickledumpsrU   loadsr   r=   r<   r^   ra   )rr   pickunpicks      r   test_picklezRNG.test_pickle  s    |DG$$d##TWf-...
4706!/57 7 	8 	8 	8 |DG$$d##TWf-...
4706!/57 7 	8 	8 	8 	8 	8r   c                 h   | j         #| j        j        }t          j        d|            | j         dk    rt
          j        }nt
          j        }t          j        dg|          }|                     |          }|j	        }|                     d          }|j	        }t          t          ||                     t          j        d|          }|                     |          }|j	        }|                     |d                   }|j	        }t          t          ||                      t          j        d|          }|                     |          }|j	        }|                     |d                   }|j	        }t          t          ||                      dt          j        t          j        d|          | j         dz
            z  dz   }|                     |          }|j	        }|                     |d                   }|j	        }t          t          ||                      d S )	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    (,5KKKkKKLLL B&&IEEIEx5)))%%""
66**+++y%(((%%Q((Jvv...///yU+++%%Q((Jvv...///BF29T7770146 6 689:%%  a))Jvv.../////r   c                 <   t          |                     d                    }t          |           |j        j        }|                    dt
          j                  }t          |                                           }t          |           ||j        _        |                    dt
          j                  }t          ||           t          |j	        t
          j                   t          t          |j        j        |j        j                             d S )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011r


 &YYrY,,**,,--s"'ZZ"*Z--2r"""RXrz***
2+133D3JKKLLLLLr   c                 >   t          |                                           }t          |           |j        j        }|                    ddt
          j                  }t          |                                           }t          |           ||j        _        |                    ddt
          j                  }t          ||           t          |j	        t
          j                   t          t          |j        j        |j        j                             d S )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


 &sBbj99**,,--s"'Rrz::2r"""RXrz***
2+133D3JKKLLLLLr   c                 :   t          |                                           }t          |           |j        j        }|                    dt
          j                  }t          |                                           }t          |           ||j        _        |                    dt
          j                  }t          ||           t          |j	        t
          j                   t          t          |j        j        |j        j                             d S 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5**,,--s"'  2: 662r"""RXrz***
2+133D3JKKLLLLLr   c                 :   t          |                                           }t          |           |j        j        }|                    dt
          j                  }t          |                                           }t          |           ||j        _        |                    dt
          j                  }t          ||           t          |j	        t
          j                   t          t          |j        j        |j        j                             d S 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        _        |                    |          }t          ||           t          j        |          }||j        _        |                    ||j                   t          j        |t          j                  }||j        _        |                    |t          j                   ||j        _        |                    |t          j                  }t          ||           d S )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#   W &8D>>!&
x(((!&###..VX&&&!&
u5;7778D
333!&
xrz:::!&##RZ#@@VX&&&&&r   c                    | j         }|j        j        }d}t          j        |          }||j        _        |                    |           ||j        _        |                    |          }t          ||           t          j        |t          j                  }||j        _        |                    |t          j                   ||j        _        |                    |t          j                  }t          ||           d S 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    W &8D>>!&
		h	!&%%VX&&&8D
333!&
		hbj	111!&BJ77VX&&&&&r   c                    | j         }|j        j        }d}t          j        |          }||j        _        |                    |           ||j        _        |                    |          }t          ||           t          j        |t          j                  }||j        _        |                    |t          j                   ||j        _        |                    |t          j                  }t          ||           d S rf  )rU   r^   ra   r   r`  r   r   rP   rg  s         r   test_output_filling_exponentialz#RNG.test_output_filling_exponentialA  s    W &8D>>!&
H---!&((d(33VX&&&8D
333!&
HBJ???!&((d"*(EEVX&&&&&r   c                    | j         }|j        j        }d}t          j        |          }||j        _        |                    d|           ||j        _        |                    d|          }t          ||           t          j        |t          j                  }||j        _        |                    d|t          j                   ||j        _        |                    d|t          j                  }t          ||           d S )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    W &8D>>!&
#8,,,!&""3T"22VX&&&8D
333!&
#82:>>>!&""3T"DDVX&&&&&r   c                 J   | j         }|j        j        }d}t          j        d          dz   }t          j        |          }||j        _        |                    ||           ||j        _        |                    ||          }t          ||           t          j        |t          j                  }||j        _        |                    ||t          j                   ||j        _        |                    ||t          j                  }t          ||           d S )	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
   W &Yt__s"8D>>!&
"(+++!&""2D"11VX&&&8D
333!&
"("*===!&""2D
"CCVX&&&&&r   c                    | j         }d}t          j        |          }t          j        t
                    5  |                    |t          j                   d d d            n# 1 swxY w Y   t          j        t                    5  |                    |d d d                    d d d            n# 1 swxY w Y   t          j        |t          j                  }t          j        t
                    5  |                    |t          j	                   d d d            n# 1 swxY w Y   t          j
        |t          j                  }t          j        t
                    5  |                    d|t          j	                   d d d            n# 1 swxY w Y   t          j        t                    5  |                    d|d d d         t          j                   d d d            n# 1 swxY w Y   t          j
        |t          j	                  }t          j        t
                    5  |                    d|t          j                   d d d            n# 1 swxY w Y   t          j        t                    5  |                    d|d d d                    d d d            d S # 1 swxY w Y   d S )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?   W8D>>]9%% 	? 	?82:>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?]:&& 	2 	28CCaC=111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	28D
333]9%% 	? 	?82:>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 8D
333]9%% 	C 	CcxrzBBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C]:&& 	H 	Hcx!}BJGGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H8D
333]9%% 	C 	CcxrzBBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C]:&& 	6 	6cx!}555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s}   "A%%A),A)	 B55B9<B99"D''D+.D++#FF!F>,G66G:=G::#I))I-0I-!J;;J?J?c                    |t           j        k    rd}d}n2t          j        |          }t          |j                  dz   }|j        }|                                  | j                            ||gdz  |          }|                                  | j                            |gdz  ||          }t          ||           |                                  | j                            ||d|          }t          ||           |                                  | j                            t          j
        |gdz            t          j
        |gt                    d|          }t          ||           |                                  | j                            t          j
        |gdz            t          j
        |gdz            d|          }	t          ||	           |                                  | j                            d|d|          }|                                  | j                            |gdz  |          }t          ||           d S )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  sK   BGEEE8E??DMMA%EHEGUUGbL>>GeWr\5>>QGUE%@@QGRXGbL 8UG6:::    	QGHeWr\""BHeWr\$:$:    	QGQBe<<GeWr\77Qr   c                 n   t          j        dg          }t          j        dg          }| j                            |||          }|j        dk    sJ | j                            |d         ||          }|j        dk    sJ | j                            ||d         |          }|j        dk    sJ d S )Nr)   r   rK   )r)   )r   r/   rU   rQ   r!   )rr   r   highlowr^  s        r   test_integers_numpyzRNG.test_integers_numpy  s    x}}hsmmgsD66yD    gs1vt599yD    gsDG599yD      r   c                 6   |t           j        k    rd}d}n2t          j        |          }t          |j                  dz   }|j        }t          j        t                    5  | j	        
                    ||dz   gdz  |           d d d            n# 1 swxY w Y   t          j        t                    5  | j	        
                    |dz
  |gdz  |           d d d            n# 1 swxY w Y   t          j        t                    5  | j	        
                    |dz
  g|gdz  |           d d d            n# 1 swxY w Y   t          j        t                    5  | j	        
                    dgdg|           d d d            d S # 1 swxY w Y   d S )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   BGEEE8E??DMMA%EHE]:&& 	C 	CGUUQYK"$4EBBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C]:&& 	C 	CGUQY"EBBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C]:&& 	E 	EGeai[5'B,eDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E]:&& 	4 	4GaS1#U333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4sH   !%BBB6%C''C+.C+&D==EE! 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 9 9. . .F F FC C C"          ! ! !8 8 8* * *) ) )
/ / /I I I( ( (* * *% % %1 1 1     9 9 9M M M# # ## # #" " ". . .
. . .

( 
( 
(! ! !$ $ $
& & &
! ! !! ! !4 4 4
! ! !! ! !! ! !! ! !! ! !! ! !! ! !! ! !! ! !" " "! ! !! ! !1 1 1
! ! !! ! !! ! !* * *% % %% % %	( 	( 	(' ' '$ $ $8 8 8$0 $0 $0LM M MM M MM M MM M M' ' ',' ' '$' ' '$' ' '$' ' '&6 6 6.  B! ! !4 4 4 4 4r   rY   c                   *    e Zd Zed             Zd ZdS )TestMT19937c                     t           | _        d | _        dg| _        t	           | j        | j                   | _        | j        j        j        | _        d| _        | 	                                 t          | _        d S )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,ch788F06!#r   c                    t           j                                        }|                    d           |                                }|| j        j        _        | j        j        j        }t          |d         |d         d         k    	                                           t          |d         |d         d         k               d S )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    y$$&&R     &+#&,qVG_U3388::;;;aF7OE2233333r   N)rz   r  r  r  rg   r  r  r   r   r  r    s<        $ $ [$4 4 4 4 4r   r  c                   $    e Zd Zed             ZdS )
TestPhiloxc                     t           | _        d| _        dg| _        t	           | j        | j                   | _        | j        j        j        | _        d| _        | 	                                 d S Nl         r[   r\   )
r   r^   r_   r`   r   rU   ra   rb   rc   rd   re   s    r   rg   zTestPhilox.setup_class  sf    "/7,3,ch788F06!r   Nrz   r  r  r  rg   r  r   r   r  r    -          [  r   r  c                   $    e Zd Zed             ZdS )	TestSFC64c                     t           | _        d | _        dg| _        t	           | j        | j                   | _        | j        j        j        | _        d| _        | 	                                 d S )Nr[      )
r   r^   r_   r`   r   rU   ra   rb   rc   rd   re   s    r   rg   zTestSFC64.setup_class  sf    !7,3,ch788F06"r   Nr  r  r   r   r  r    r  r   r  c                   $    e Zd Zed             ZdS )	TestPCG64c                     t           | _        d| _        dg| _        t	           | j        | j                   | _        | j        j        j        | _        d| _        | 	                                 d S r  r]   re   s    r   rg   zTestPCG64.setup_class  sf    !/7,3,ch788F06!r   Nr  r  r   r   r  r    r  r   r  c                   $    e Zd Zed             ZdS )TestPCG64DXSMc                     t           | _        d| _        dg| _        t	           | j        | j                   | _        | j        j        j        | _        d| _        | 	                                 d S r  )
r
   r^   r_   r`   r   rU   ra   rb   rc   rd   re   s    r   rg   zTestPCG64DXSM.setup_class
  sf    %/7,3,ch788F06!r   Nr  r  r   r   r  r  	  r  r   r  c                   0    e Zd Zed             Zd Zd ZdS )TestDefaultRNGc                     t           | _        d| _        dg| _        t	          j        j        | j         | _        | j        j        j        | _	        d| _
        |                                  d S r  )r	   r^   r_   r`   r   rM   default_rngrU   ra   rb   rc   rd   re   s    r   rg   zTestDefaultRNG.setup_class  s_     "/7&1F06!r   c                 ^    t          t          | j        j        t                               d S r   )r   r:   rU   r^   r	   rq   s    r   test_default_is_pcg64z$TestDefaultRNG.test_default_is_pcg64"  s'     	
470%8899999r   c                    t           j                                         t           j                            d            t           j                            d           t           j                            d           t           j                            d           t           j                            ddg           t          j        t
                    5  t           j                            d           d d d            n# 1 swxY w Y   t          j        t
                    5  t           j                            ddg           d d d            d S # 1 swxY w Y   d S )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E
	EFH 	I 	I 	I]:&& 	& 	&I!!"%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&]:&& 	/ 	/I!!5"+...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s$    DDD%"EEEN)rz   r  r  r  rg   r  r   r  r   r   r  r    sK        	 	 [	: : :
/ / / / /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     sc               C C C C C C C C C C N N N N N N N N N N N N N N N Nh"(BHbh")RY	CD D D D D
! 
! 
!   B  "# # # #n	4 n	4 n	4 n	4 n	4 n	4 n	4 n	4b4 4 4 4 4# 4 4 4,	 	 	 	 	 	 	 		 	 	 	 	 	 	 		 	 	 	 	 	 	 		 	 	 	 	C 	 	 	/ / / / /S / / / / /r   