
    git              	          d dl Z d dlmZ d dlmZ d dlZd dlZd dlm	Z	m
Z
mZmZmZmZ d dlmZmZmZ ej&                  ej(                  ej*                  ej,                  ej.                  ej0                  ej2                  ej4                  ej6                  f	Zd ZddZd Zdd	Z e G 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)	dataclass)partial)MT19937PCG64	PCG64DXSMSFC64	GeneratorPhilox)assert_assert_array_equalassert_equalc                 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     U/var/www/html/audio_env/lib/python3.12/site-packages/numpy/random/tests/test_smoke.pyparams_0r      s    
#CBKK
B%CCII
H+CCII!"
L/CCII%&
.CCII     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_1r1      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   r5   r5   =   s    I&$ 	>CF3K==I	>  
ff	%T&\T&\11	  VdE2::6
7JT5"**-=/&&) 	,FBB++I	,  	Vv%%	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      dtype   l          g      &@)	r   randomrandintstandard_normalfloat32integersuint64standard_gammafloat64)rgns     r   warmuprQ   M   s    y""1b))qqq

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

+KK7ARYYK/KK7ARYYK/dAdARZZ0IIarzzI"IIarzzI"r   c                   t    e Zd ZU eej
                  j                     ed<   eed<   e	e   ed<   e
ed<   eed<   y)RNGDatabit_generatoradvanceseedrO   seed_vector_bitsN)__name__
__module____qualname__r6   r   rG   BitGenerator__annotations__intr7   r	    r   r   rS   rS   \   s0    		..//L
s)OMr   rS   c                   h   e Z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, 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 ZDeEj                  j                  dBeH      dC        ZIeEj                  j                  dBeH      dD        ZJeEj                  j                  dBeH      dE        ZKyF)GRNGc                 V    t         }d }dg}t         ||       }d}t        |||||      S )N90  @   r   r	   rS   clsrT   rU   rV   rO   rW   s         r   _create_rngzRNG._create_rngf   s>     w}d+,}gtR9IJJr   c                    | j                         }t        |j                               |_        |j                  j                  j                  }|j                  j                  d       |j                  j                  d       ||j                  j                  _        |j                  j                  j                  }t        t        ||             y )Nr"   )rg   r	   rT   rO   staterI   r   r5   )selfdatari   	new_states       r   	test_initzRNG.test_initp   s    !D..01%%++""&+#GG))//	
5),-r   c                    | j                         }|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 )NrU   zAdvance is not supported by )rg   rO   rT   ri   hasattrrU   r   r5   	__class__rX   pytestskip)rj   rk   ri   bitgen_names       r   test_advancezRNG.test_advancez   s    !%%++477(()4GG!!))$,,7
5$''*?*?*E*EFFG''//99BBKKK6{mDEr   c                 X   | j                         j                  }|j                  j                  }t	        |j                  d      r|j                  j                         }|j                  }t        t        ||              |j                  d       ||j                  _        |j                  j                         }|j                  }t        t        ||             y |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 )rg   rO   rT   ri   ro   rv   r   r5   rG   rp   rX   AttributeErrorrq   rr   )rj   rO   ri   bit_gen2jumped_statebit_gen3rejumped_staters   s           r   	test_jumpzRNG.test_jump   s    ""  &&2##X.''..0H#>>L
5,778II23%*B"''..0H%^^NJ|^<=**44==K*,${m%DEEKK3K=ABr   c                     | j                         j                  }|j                  ddd      }t        t	        |      dk(         t        |dkD  j                                t        |dk  j                                y )N              r   r   r   )rg   rO   uniformr   lenallrj   rO   rs      r   test_uniformzRNG.test_uniform   s^    ""JJtSrJ*A"Rar   c                 B   | j                         j                  }|j                  t        j                  dgdz        dd      }t        t        |      dk(         t        |dkD  j                                t        |dk  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                  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   )rg   rO   r   r   r(   r   r   r   r   s      r   test_uniform_arrayzRNG.test_uniform_array   s0   ""JJrxx,cJ;A"RaJJrxx,HHcURZ0r  ;A"RaJJtRXXsebj1J;A"Rar   c                     | j                         j                  }t        t        |j	                  d            dk(         t        |j                         y Nr   )rg   rO   r   r   rG   r   rj   rO   s     r   test_randomzRNG.test_random   s<    ""BIIbM"b()r   c                     | j                         j                  }t        t        |j	                  d            dk(         y r   )rg   rO   r   r   rI   r   s     r   test_standard_normal_zigzRNG.test_standard_normal_zig   s3    ""B&&r*+r12r   c                     | j                         j                  }t        t        |j	                  d            dk(         t        |j                         y r   )rg   rO   r   r   rI   r   r   s     r   test_standard_normalzRNG.test_standard_normal   A    ""B&&r*+r12##$r   c           
      ,   | j                         j                  }t        t        |j	                  dd            dk(         t        t        |j	                  t        j                  dgdz        d            dk(         t        |j                         y r   )rg   rO   r   r   rM   r   r(   r1   r   s     r   test_standard_gammazRNG.test_standard_gamma   sq    ""B%%b"-."45B%%bhhtby&92>?2EF""#r   c                     | j                         j                  }t        t        |j	                  d            dk(         t        |j                         y r   )rg   rO   r   r   standard_exponentialr   r   s     r   test_standard_exponentialzRNG.test_standard_exponential   sA    ""B++B/0B67(()r   c                 
   | j                         j                  }|j                  dd      }t        t	        |      dk(         |j
                  t        j                  k(  sJ t        t        |j                  d             y )Nr   rJ   rD   
rg   rO   r   r   r   rE   r   rJ   r   r   rj   rO   randomss      r   test_standard_exponential_floatz#RNG.test_standard_exponential_float   sg    ""))"I)>G"#}}

***00	BCr   c                    | j                         j                  }|j                  ddd      }t        t	        |      dk(         |j
                  t        j                  k(  sJ t        t        |j                  dd             y )Nr   rJ   inv)rE   methodr   r   s      r   #test_standard_exponential_float_logz'RNG.test_standard_exponential_float_log   su    ""))"I6; * =G"#}}

***00	 %' 	(r   c                     | j                         j                  }t        t        |j	                  d            dk(         t        |j                         y r   )rg   rO   r   r   standard_cauchyr   r   s     r   test_standard_cauchyzRNG.test_standard_cauchy   r   r   c                     | j                         j                  }t        t        |j	                  dd            dk(         t        |j                         y r   )rg   rO   r   r   
standard_tr1   r   s     r   test_standard_tzRNG.test_standard_t   s?    ""BMM"b)*b01r   c                     | j                         j                  }t        |j                  dd      dk\         t        |j                  dd      dk\         y )Nr   r#   r     )rg   rO   r   binomialr   s     r   test_binomialzRNG.test_binomial   sF    ""B#q()D"%*+r   c                     | j                         j                  }|j                  j                  }|j	                  d      }||j                  _        |j	                  d      }t        ||k(         y )Nl        )rg   rO   rT   ri   rK   r   )rj   rO   ri   int_1int_2s        r   test_reset_statezRNG.test_reset_state   s]    ""  &&E"!&E"r   c                     | j                         j                  }t         |             }t         |             }t        t	        |j                  j
                  |j                  j
                                y N)rg   rT   r	   r   r5   ri   )rj   rT   rO   rg2s       r   test_entropy_initzRNG.test_entropy_init   s_    ((*88}'(Jr//55"00668 8 	9r   c                 f   | j                         }t         |j                  |j                         }t         |j                  |j                         }|j	                          |j	                          t        t        |j                  j                  |j                  j                               y r   )rg   r	   rT   rV   rG   r   r5   ri   )rj   rk   rO   r   s       r   	test_seedzRNG.test_seed   s    !)t))49956***DII67
		


2++1133D3D3J3JKLr   c                 h   | j                         }t         |j                  |j                         }|j	                          |j                  j
                  }|j	                  d      }t        |j                               }||j                  _        |j	                  d      }t        ||       y )Nr   r   )rg   r	   rT   rV   rI   ri   r   rj   rk   rO   ri   n1r   n2s          r   test_reset_state_gausszRNG.test_reset_state_gauss   s    !)t))49956
  &&R(**,-"'  b )2r"r   c                    | j                         }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   rF   x   rD   r   )	rg   r	   rT   rV   rK   r   uint32ri   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                    | j                         }t         |j                  |j                         }|j	                  d       |j                  j
                  }|j	                  dd      }t        |j                               }||j                  _        |j	                  dd      }t        ||k(  j                                y )NrJ   rD   r   r   rE   )rg   r	   rT   rV   rG   ri   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                     | j                         j                  }t        j                  ddd      }|j	                  |      }t        ||k7  j                                y N   r   r   rg   rO   r   r&   permutationr   anyrj   rO   originalpermuteds       r   test_shufflezRNG.test_shuffle  L    ""99S!R(>>(+X%**,-r   c                     | j                         j                  }t        j                  ddd      }|j	                  |      }t        ||k7  j                                y r   r   r   s       r   test_permutationzRNG.test_permutation#  r   r   c                    | j                         j                  }|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(         y )Nr   r   r   )rg   rO   betar   r   r   r(   r   rj   rO   valss      r   	test_betazRNG.test_beta)  s   ""wwsC$D	R wwrxx
+S1D	R wwsBHHcURZ01D	R wwrxx
+RXXsebj-ABD	R wwrxx
+RXXugl-CD

h&'r   c                     | j                         j                  }|j                  d      }t        t	        |      dk(         y r   )rg   rO   bytesr   r   r   s      r   
test_byteszRNG.test_bytes6  s3    ""xx|D	R r   c                     | j                         j                  }|j                  dd      }t        t	        |      dk(         t        |j                         y Nr   r   )rg   rO   	chisquarer   r   r1   r   s      r   test_chisquarezRNG.test_chisquare;  sB    ""||C$D	R r   c                     | j                         j                  }|j                  dd      }t        t	        |      dk(         t        |j                         y r   )rg   rO   exponentialr   r   r1   r   s      r   test_exponentialzRNG.test_exponentialA  sB    ""~~c2&D	R  r   c                     | j                         j                  }|j                  ddd      }t        t	        |      dk(         y )N   r   r   )rg   rO   r   r   r   r   s      r   test_fz
RNG.test_fG  s8    ""ttAtR D	R r   c                     | j                         j                  }|j                  ddd      }t        t	        |      dk(         y )Nr   r%   r   )rg   rO   gammar   r   r   s      r   
test_gammazRNG.test_gammaL  s8    ""xx1b!D	R r   c                     | j                         j                  }|j                  dd      }t        t	        |      dk(         t        |j                  d       y )Nr#   r   Tr*   )rg   rO   	geometricr   r   r1   r   r   s      r   test_geometriczRNG.test_geometricQ  sD    ""||C$D	R .r   c                     | j                         j                  }|j                  ddd      }t        t	        |      dk(         y r   )rg   rO   gumbelr   r   r   s      r   test_gumbelzRNG.test_gumbelW  s8    ""yyc2&D	R r   c                     | j                         j                  }|j                  ddd      }t        t	        |      dk(         y r   )rg   rO   laplacer   r   r   s      r   test_laplacezRNG.test_laplace\  s8    ""zz#sB'D	R r   c                     | j                         j                  }|j                  ddd      }t        t	        |      dk(         y r   )rg   rO   logisticr   r   r   s      r   test_logiticzRNG.test_logitica  s8    ""{{3R(D	R r   c                     | j                         j                  }|j                  dd      }t        t	        |      dk(         y )Nr#   r   )rg   rO   	logseriesr   r   r   s      r   test_logserieszRNG.test_logseriesf  s6    ""||C$D	R r   c                     | j                         j                  }|j                  ddd      }t        t	        |      dk(         y Nr   皙?)rg   rO   negative_binomialr   r   r   s      r   test_negative_binomialzRNG.test_negative_binomialk  s:    ""##BR0D	R r   c                     | j                         j                  }|j                  ddd      }t        t	        |      dk(         y )Nr   r%   )rg   rO   noncentral_chisquarer   r   r   s      r   test_noncentral_chisquarezRNG.test_noncentral_chisquarep  s:    ""&&r1b1D	R r   c                    | j                         j                  }|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(         y )Nr   r   r%   r   )rg   rO   noncentral_fr   r   r   r(   r   s      r   test_noncentral_fzRNG.test_noncentral_fu  s    ""q$2.D	R rxxb14;D	R q"((D6B;"7;D	R q$!r(:;D	R r   c                     | j                         j                  }|j                  ddd      }t        t	        |      dk(         y r   )rg   rO   normalr   r   r   s      r   test_normalzRNG.test_normal  s8    ""yyS"%D	R r   c                     | j                         j                  }|j                  dd      }t        t	        |      dk(         y )Nr!   r   )rg   rO   paretor   r   r   s      r   test_paretozRNG.test_pareto  s6    ""yyb!D	R r   c                 2   | j                         j                  }|j                  dd      }t        t	        |      dk(         |j                  t        j                  dgdz              }t        t	        |      dk(         t        |j                         y r   )rg   rO   poissonr   r   r   r(   r1   r   s      r   test_poissonzRNG.test_poisson  so    ""zz"b!D	R zz"((B4"9-.D	R r   c                     | j                         j                  }|j                  dd      }t        t	        |      dk(         y )Nr   r   )rg   rO   powerr   r   r   s      r   
test_powerzRNG.test_power  s6    ""xxR D	R r   c                     | j                         j                  }|j                  ddd      }t        t	        |      dk(         y )Nr   rC   )rg   rO   rK   r   r   r   s      r   test_integerszRNG.test_integers  s8    ""{{2r2&D	R r   c                     | j                         j                  }|j                  dd      }t        t	        |      dk(         t        |j                  d       y )Nr   r   Tr   )rg   rO   rayleighr   r   r1   r   s      r   test_rayleighzRNG.test_rayleigh  sD    ""{{3#D	R d+r   c                     | j                         j                  }|j                  ddd      }t        t	        |      dk(         y r   )rg   rO   vonmisesr   r   r   s      r   test_vonmiseszRNG.test_vonmises  s8    ""{{2sB'D	R r   c                     | j                         j                  }|j                  ddd      }t        t	        |      dk(         y N      ?r   )rg   rO   waldr   r   r   s      r   	test_waldzRNG.test_wald  s8    ""wwsC$D	R r   c                     | j                         j                  }|j                  dd      }t        t	        |      dk(         y r  )rg   rO   weibullr   r   r   s      r   test_weibullzRNG.test_weibull  s6    ""zz#r"D	R r   c                 0   | j                         j                  }t        j                  dd      }t        j                  dd      d d d f   }t        j                  ddd      j	                  d      }|j                  dd      }t        t        |      dk(         |j                  |      }t        t        |      dk(         |j                  |      }t        |j                  dk(         |j                  |      }t        |j                  dk(         y )Nr   r    g{Gz?)d   r  r   r  )r"   r  )	rg   rO   r   r&   r'   zipfr   r   r   )rj   rO   vec_1dvec_2dmatr   s         r   	test_zipfzRNG.test_zipf  s    ""3&3&tQw/iiUD)11*=wwr2D	R wwvD	S !wwv

h&'wws|

j()r   c                    | j                         j                  }|j                  ddd      }t        t	        j
                  |             |j                  t	        j                  dgdz        dd      }t        |j                  dk(         y )N   rC   r   r   )rg   rO   hypergeometricr   r   r   r(   r   r   s      r   test_hypergeometriczRNG.test_hypergeometric  so    ""  R,D!"  2$)!4b"=

e#$r   c                    | j                         j                  }|j                  ddd      }t        t	        j
                  |             |j                  dt	        j                  dgdz        d      }t        |j                  dk(         y )Nr   r   r   r   )rg   rO   
triangularr   r   r   r(   r   r   s      r   test_triangularzRNG.test_triangular  sk    ""}}RA&D!"}}R1#(!3Q7

e#$r   c                    | j                         j                  }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        ||k7  j                                y )Nr   r"   r    )r)  r%   )rg   rO   multivariate_normalr   r   r   )rj   rO   meancovxx_zigx_invs          r   test_multivariate_normalzRNG.test_multivariate_normal  s    ""1v1v3x ""4d39$%&&tS$79$%&&tS$79$%%$$&'r   c                     | j                         j                  }|j                  dddg      }t        |j                  dk(         |j                  dddgd      }t        |j                  dk(         y )Nr  gUUUUUU?gUUUUUU?)r%   r   r   r$   )rg   rO   multinomialr   r   r   s      r   test_multinomialzRNG.test_multinomial  sf    ""~~cGW#56

d"#~~cGW#5B~?

g%&r   c                     | j                         j                  }|j                  dd      }t        |j                  dk(         y )N)r   r   r   rC   )rC   r   )rg   rO   	dirichletr   r   )rj   rO   ss      r   test_dirichletzRNG.test_dirichlet  s7    ""LLR(7"#r   c                 T   | j                         j                  }t        j                  |      }t        j                  |      }t        t        |      t        |      k(         t        t        |j                  j                  |j                  j                               t        j                  |      }t        j                  |      }t        t        |      t        |      k(         t        t        |j                  j                  |j                  j                               y r   )
rg   rO   pickledumpsloadsr   r6   r5   rT   ri   )rj   rO   pickunpicks       r   test_picklezRNG.test_pickle  s    ""||Bd#RDL()
2++11!//557 	8 ||Bd#RDL()
2++11!//557 	8r   c                    | j                         }|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"   rD      r   i  r%   )rg   rW   rT   rX   rq   rr   r   r   rL   r(   ri   r   r5   r&   mod)rj   rk   rs   rE   rV   bgr;   r<   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:%Q(Jvv../r   c                 R   | j                         j                  }t         |d            }t        |       |j                  j                  }|j                  dt        j                        }t         |             }t        |       ||j                  _        |j                  dt        j                        }t        ||       t        |j                  t        j                         t        t        |j                  j                  |j                  j                               y )Nrb   rB   rD   )rg   rT   r	   rQ   ri   rG   r   rJ   r   r   rE   r   r5   rj   rT   rO   ri   r1r   r2s          r   test_uniform_floatzRNG.test_uniform_float  s    ((*88}U+,r
  &&YYrY,(s"'ZZ"**Z-2r"RXXrzz*
2++1133D3D3J3JKLr   c                 T   | j                         j                  }t         |             }t        |       |j                  j                  }|j                  ddt        j                        }t         |             }t        |       ||j                  _        |j                  ddt        j                        }t        ||       t        |j                  t        j                         t        t        |j                  j                  |j                  j                               y )Ng      @rB   rD   )rg   rT   r	   rQ   ri   rM   r   rJ   r   r   rE   r   r5   rF  s          r   test_gamma_floatszRNG.test_gamma_floats(  s    ((*88}'r
  &&sBbjj9(s"'Rrzz:2r"RXXrzz*
2++1133D3D3J3JKLr   c                 P   | j                         j                  }t         |             }t        |       |j                  j                  }|j                  dt        j                        }t         |             }t        |       ||j                  _        |j                  dt        j                        }t        ||       t        |j                  t        j                         t        t        |j                  j                  |j                  j                               y NrB   rD   rg   rT   r	   rQ   ri   rI   r   rJ   r   r   rE   r   r5   rF  s          r   test_normal_floatszRNG.test_normal_floats6      ((*88}'r
  &&"**5(s"'  2:: 62r"RXXrzz*
2++1133D3D3J3JKLr   c                 P   | j                         j                  }t         |             }t        |       |j                  j                  }|j                  dt        j                        }t         |             }t        |       ||j                  _        |j                  dt        j                        }t        ||       t        |j                  t        j                         t        t        |j                  j                  |j                  j                               y rM  rN  rF  s          r   test_normal_zig_floatszRNG.test_normal_zig_floatsD  rP  r   c                    | j                         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   )rY  r   rD   rY  rE   r   )
rg   rO   rT   ri   r   emptyrI   r   r   rJ   )rj   rO   ri   r   existingdirectsizeds          r   test_output_fillzRNG.test_output_fillR  s   ""  &&88D>!&
x(!&###.VX&!&
u5;;788D

3!&
xrzz:!&##RZZ#@VX&r   c                 `   | j                         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 NrT  rX  r   rD   rZ  r   )	rg   rO   rT   ri   r   r[  rG   r   rJ   rj   rO   ri   r   r\  r]  s         r   test_output_filling_uniformzRNG.test_output_filling_uniformh  s    ""  &&88D>!&
		h	!&%VX&88D

3!&
		hbjj	1!&BJJ7VX&r   c                 `   | j                         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 ra  )	rg   rO   rT   ri   r   r[  r   r   rJ   rb  s         r   test_output_filling_exponentialz#RNG.test_output_filling_exponentialz  s    ""  &&88D>!&
H-!&((d(3VX&88D

3!&
HBJJ?!&((d"**(EVX&r   c                 h   | j                         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 )NrT  r  rX  r   rD   rZ  r   )	rg   rO   rT   ri   r   zerosrM   r   rJ   rb  s         r   test_output_filling_gammazRNG.test_output_filling_gamma  s    ""  &&88D>!&
#8,!&""3T"2VX&88D

3!&
#82::>!&""3T"DVX&r   c                    | j                         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 )	NrT  g     @X@r  rX  r   rD   rZ  r   )
rg   rO   rT   ri   r   r&   rg  rM   r   rJ   )rj   rO   ri   r   mur\  r]  s          r   #test_output_filling_gamma_broadcastz'RNG.test_output_filling_gamma_broadcast  s   ""  &&YYt_s"88D>!&
"(+!&""2D"1VX&88D

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

"CVX&r   c                    | j                         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)NrT  rZ  r   rX  rD   r  )rg   rO   r   r[  rq   raises	TypeErrorrI   rJ   
ValueErrorrN   rg  rM   )rj   rO   r   r\  s       r   test_output_fill_errorzRNG.test_output_fill_error  s   ""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 	6sT   "I/I<-"J	#J)J##J/J;/I9<J	JJ #J,/J8;KrE   c                    | j                         j                  }|j                  j                  fd}|t        j
                  k(  rd}d}n9t	        j                  |      }t        |j                        dz   }|j                  } ||       |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        ||       y )Nc                 (    | j                   _        y r   )rT   ri   )rnginitial_states    r   reset_statez0RNG.test_integers_broadcast.<locals>.reset_state  s    &3C#r   r%   r   r"   r   rD   r   )rg   rO   rT   ri   r   booliinfor]   r)   minrK   r   r(   object)rj   rE   rO   ru  upperlowerinfor+   r,   r-   r.   r/   rt  s               @r   test_integers_broadcastzRNG.test_integers_broadcast  s   ""((..	4 BGGEE88E?DMA%EHHEB!.KKw|5K9BKK"e5K9QBKKu2UK;QBKKGbL88UG6:   	QBKKHHeWr\"BHHeWr\$:   	QBKK5rK7BKK"EK2Qr   c                 z   | j                         j                  }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 y )Nr"   r   rD   )r"   )rg   rO   r   r(   rK   r   )rj   rE   rO   highlowrY  s         r   test_integers_numpyzRNG.test_integers_numpy  s    ""xx}hhsmkk#t5k1yyD   kk#a&$ek4yyD   kk#tAwek4yyD   r   c                    | j                         j                  }|t        j                  k(  rd}d}n9t        j                  |      }t        |j                        dz   }|j                  }t        j                  t              5  |j                  ||dz   gdz  |       d d d        t        j                  t              5  |j                  |dz
  |gdz  |       d d d        t        j                  t              5  |j                  |dz
  g|gdz  |       d d d        t        j                  t              5  |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   ZxY w# 1 sw Y   y xY w)Nr%   r   r"   r   rD   )rg   rO   r   rv  rw  r]   r)   rx  rq   rm  ro  rK   )rj   rE   rO   rz  r{  r|  s         r   test_integers_broadcast_errorsz"RNG.test_integers_broadcast_errors   sN   ""BGGEE88E?DMA%EHHE]]:& 	>KK	{R/uK=	>]]:& 	>KK	E7R<uK=	>]]:& 	@KKeWr\K?	@]]:& 	/KKaSK.	/ 	/	> 	>	> 	>	@ 	@	/ 	/s0   EE)?E5=FE&)E25E>F
N)LrX   rY   rZ   classmethodrg   rm   rt   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'  r0  r3  r7  r>  rD  rI  rK  rO  rR  r_  rc  re  rh  rk  rp  rq   markparametrizeDTYPES_BOOL_INT_UINTr}  r  r  r^   r   r   r`   r`   e   s   K K.FC$   
3%
$*
D(%
 
,
 9M	#	#	"..(!
!!
!
/!
!
!
!
!
!
	!!
!
!
!
,!
!
!
*%%
('$
8%0NMMMM','$'$'$'&6. [[W&:;& <&P [[W&:;! <! [[W&:;/ </r   r`   c                   "    e Zd Zed        Zd Zy)TestMT19937c                 V    t         }d }dg}t         ||       }d}t        |||||      S )Ni! ! r@  )r   r	   rS   re   s         r   rg   zTestMT19937._create_rng  s=    ./}d+,}gtR9IJJr   c                 |   | j                         j                  }t        j                  j	                         }|j                  d       |j                         }||j                  _        |j                  j                  }t        |d   |d   d   k(  j                                t        |d   |d   d   k(         y )Nc   r"   ri   r>   r%   pos)rg   rO   r   rG   RandomStaterI   	get_staterT   ri   r   r   )rj   rO   nprgri   r<   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)rX   rY   rZ   r  rg   r  r^   r   r   r  r    s    K K4r   r  c                       e Zd Zed        Zy)
TestPhiloxc                 V    t         }d}dg}t         ||       }d}t        |||||      S Nl         rb   rc   )r
   r	   rS   re   s         r   rg   zTestPhilox._create_rng*  s<    +w}d+,}gtR9IJJr   NrX   rY   rZ   r  rg   r^   r   r   r  r  )      K Kr   r  c                       e Zd Zed        Zy)	TestSFC64c                 V    t         }d }dg}t         ||       }d}t        |||||      S )Nrb      )r   r	   rS   re   s         r   rg   zTestSFC64._create_rng5  s<    w}d+,}gtR9IJJr   Nr  r^   r   r   r  r  4  r  r   r  c                       e Zd Zed        Zy)	TestPCG64c                 V    t         }d}dg}t         ||       }d}t        |||||      S r  rd   re   s         r   rg   zTestPCG64._create_rng@  s<    +w}d+,}gtR9IJJr   Nr  r^   r   r   r  r  ?  r  r   r  c                       e Zd Zed        Zy)TestPCG64DXSMc                 V    t         }d}dg}t         ||       }d}t        |||||      S r  )r   r	   rS   re   s         r   rg   zTestPCG64DXSM._create_rngK  s<    !+w}d+,}gtR9IJJr   Nr  r^   r   r   r  r  J  r  r   r  c                   (    e Zd Zed        Zd Zd Zy)TestDefaultRNGc                 r    t         }d}dg}t        j                  j                  | }d}t	        |||||      S r  )r   r   rG   default_rngrS   re   s         r   rg   zTestDefaultRNG._create_rngV  sC     +wYY""D)}gtR9IJJr   c                 ~    | j                         j                  }t        t        |j                  t
                     y r   )rg   rO   r   r3   rT   r   r   s     r   test_default_is_pcg64z$TestDefaultRNG.test_default_is_pcg64a  s-     ""
2++U34r   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)Nrb   r   l	   -tE+I6%Yl  l	   )	~eR :TI*6 r   )r   rG   r  rq   rm  ro  )rj   s    r   r   zTestDefaultRNG.test_seedg  s    
		
		d#
		e$
		a 
		DE
		EFH 	I]]:& 	&II!!"%	&]]:& 	/II!!5"+.	/ 	/	& 	&	/ 	/s    E"EE
EN)rX   rY   rZ   r  rg   r  r   r^   r   r   r  r  U  s     K K5/r   r  )Fr   ))r9  dataclassesr   	functoolsr   rq   numpyr   numpy.randomr   r   r   r   r	   r
   numpy.testingr   r   r   rv  int8int16int32int64uint8uint16r   rL   r  r   r1   r5   rQ   rS   r`   r  r  r  r  r  r  r^   r   r   <module>r     s     !    L L C C"((BHHbhh"))RYY		C 
!B #   l
/ l
/^4# 4*K KK KK KKC K/S /r   