python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_random.cpython-312.opt-2.pyc

ΑezddlZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
ddlmZm
Z
mZmZmZmZddlmZddlmZddlmZmZGddZ	ej2jd	Zej8edGdd
eej:ZGddej:ZGddeej:Z dezdzfdZ!Gddej:Z"Gddej:Z#Gddej:Z$e%dk(rejLyy#e$rd
ZYwxYw)N)partial)logexppifsumsin	factorial)support)Fraction)abcCounterceZdZdZdZdZdZdZejjddZdZd	Z
d
ZdZdZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!y)TestBasicOpscp	t|Dcgc]}|jjc}Scc}wN)rangegenrandom)selfnis   D/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_random.py
randomlistzTestBasicOps.randomlists(>+084a!444s!3c"|jj|jj}tjd|jj|jj}|j||y)N皙?)rseedgetstatetimesleepassertNotEqual)rstate1state2s   r
test_autoseedzTestBasicOps.test_autoseeds[

""$

3

""$FF+c
d}|jj|jj}|j|}|jj	||j||j|y)N)rrrrsetstateassertEqual)rNstaterandseqs    rtest_saverestorezTestBasicOps.test_saverestore!s_

!!#//!$% $//!"45r$cpGddt}dD]}|jj|dtd|fD];}|j	t
5|jj|ddd=t
tdtdfD]-}|j	t
|jj|/|j	t
|jjdd	dd
|j	t
t|jgy#1swYxYw)NceZdZdZy)*TestBasicOps.test_seedargs.<locals>.MySeedcy)Ni?rs r__hash__z3TestBasicOps.test_seedargs.<locals>.MySeed.__hash__,sr$N)__name__
__module____qualname__r3r1r$rMySeedr/+s
r$r7)
Nrl Fx:^V Fx:^VFTQ	@ay?@rr8)one)
objectrrtupleassertRaises	TypeErrorlistrdicttype)rr7args   r
test_seedargszTestBasicOps.test_seedargs)s	V	,	CHHMM#	%,1	#C""9-
#

c"
#
#	#qNDQK0	=Ci<	=)TXX]]Aq!Q?)T$((^R8

#
#sD,,D5	ctd}|jj||j|tdy)Ns1234)	bytearrayrrr()rr<s  rtest_seed_no_mutate_bug_44018z*TestBasicOps.test_seed_no_mutate_bug_44018;s1g

aIg./r$zrandom._urandomc:t|_|jyr)NotImplementedErrorside_effectrI)rurandom_mocks  r*test_seed_when_randomness_source_not_foundz7TestBasicOps.test_seed_when_randomness_source_not_found@s$7 r$c$|jj}g}|||j|gdg}|||j|dgtdDcgc]}t	t|}}tdDcgc]}t	t|}}|D]
}||t||D]M\}}|jt
|t
||jt|t|Ot	td}t	td}|||j||k7|||j||k7|jt|dycc}wcc}w)N%
r&r8r?r=)rshuffler(rrEziplenset
assertTruerCrD)	rrVlstrseqs
shuffled_seqsshuffled_seqseqshuffled_lsts	         rtest_shufflezTestBasicOps.test_shuffleJsX((""b!drd#(-b	21U1X2216r;AeAh;
;)	"LL!	"#&t]#;	:S,SXs<'89SXs<'89	:5;E$K(|+,|+,)Wi8/3;sFF
c|jj}|jt5|gddd|j	|dgd|j|ddgddgy#1swY?xYw)N2K)rchoicerC
IndexErrorr(assertIn)rrfs  rtest_choicezTestBasicOps.test_choiceksj


z
*	2J	r*

fb"X&R1		s	A33A<c@|jj}Gddt}|jt5||gddd|j||dgd|j
||ddgddgy#1swYKxYw)NceZdZ	dZy)/TestBasicOps.test_choice_with_numpy.<locals>.NActr)RuntimeErrorr2s r__bool__z8TestBasicOps.test_choice_with_numpy.<locals>.NA.__bool__ys""r$N)r4r5r6ror1r$rNArlws
-
#r$rprcrdre)rrfrErCrgr(rh)rrfrps   rtest_choice_with_numpyz#TestBasicOps.test_choice_with_numpyrs	#	#


z
*	2b6N	B4)2.

fRR\*RH5		sBBcFd}t|}t|dzD]|}|jj||}|jt	||t|}|jt	|||j
|t|k~|j|jjgdg|jt|jj||dz|jt|jjgdy)Ndr8rr9)	rrsampler(rXrYrZrC
ValueError)rr)
populationksuniqs      rtest_samplezTestBasicOps.test_samples
1X
qs	5A
A.ASVQ'q6DSY*OODC
O34	5	
Q/4*dhhooz1Q3G*dhhoor2>r$c
*d}t|}d}t|D]v}t|t||z
z}i}t|D]:}d|t|jj	||<t||k(s:f|j
xy)N')rr	rBrrtrXfail)rrpoptrialsrwexpectedpermsrs        rtest_sample_distributionz%TestBasicOps.test_sample_distributions
Ahq	A |y1~5HE6]
8<eDHHOOC345u:)

			r$c,|jjtdd|jjtdd|jjtdd|jjt	ddy)Nr?abcdefghijklmnopqrst)rrtrstrrBr2s rtest_sample_inputszTestBasicOps.test_sample_inputss^b	1%b	1%23Q745q9r$c|jt|jjtjddy)Nabcdefr?)rCrDrrtrFfromkeysr2s rtest_sample_on_dictsz!TestBasicOps.test_sample_on_dictss')TXX__dmmH6MqQr$c|jt5hd}|jj|ddddy#1swYyxYw)N>rTr(rc<Fr|rw)rCrDrrt)rrvs  rtest_sample_on_setsz TestBasicOps.test_sample_on_setss>


y
)	-5JHHOOJ!O,	-	-	-s"AA
c(Gddtjtj}|gd}tj5tj
dt|jj|ddddy#1swYyxYw)NceZdZdZdZdZy)3TestBasicOps.test_sample_on_seqsets.<locals>.SeqSetc||_yr_items)ritemss  r__init__z<TestBasicOps.test_sample_on_seqsets.<locals>.SeqSet.__init__s	#r$c,t|jSr)rXrr2s r__len__z;TestBasicOps.test_sample_on_seqsets.<locals>.SeqSet.__len__s4;;''r$c |j|Srr)rindexs  r__getitem__z?TestBasicOps.test_sample_on_seqsets.<locals>.SeqSet.__getitem__s{{5))r$N)r4r5r6rrrr1r$rSeqSetrs
$
(
*r$r)r?r@r8r=errorr?r)	rSequenceSetwarningscatch_warningssimplefilterDeprecationWarningrrt)rrrvs   rtest_sample_on_seqsetsz#TestBasicOps.test_sample_on_seqsetssj	*S\\377	*L)


$
$
&	-!!'+=>HHOOJ!O,	-	-	-s8BBc|jj}gd}gd}d}t||||}|jt	|j|t
||D]\}}|j||||jd|t	|}t||||}|jt	|j|t
||D]\}}|j||||jd|t|dgdgd}|j|td	t|}t||dg|zd|z}|j|td|z|jt5|gd
ddddd|jt5|gd
gddddd|jt5|gd
gd
dddd|jt5|ddgddgdddd|jt5|gd
ddgdddd|jt5|gd
gdddddy#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYgxYw#1swYyxYw)N)redgreenblueorangeblackbrownamber)rrTr|rr8countsrwrxrT)r)rrr)iir?)rrrrrr8)r8r?r=r@)
rrtr
r(sumvaluesrWassertLessEqualassertNotInrXrCrDru)	rrtcolorsrrwsummarycolorweightncs	         rtest_sample_with_countsz$TestBasicOps.test_sample_with_countssON&!<=W^^-.2 0	9ME6  8	9'*
K&!<=W^^-.2 0	9ME6  8	9'*&#tq9:'A,/[&R2b5AB'"V)"45

y
)	>+B"=	>


z
*	G+LAF	G


z
*	D+IC	D


z
*	<E7#RH;	<


z
*	A+QFa@	A


z
*	G+LAF	G	G	>	>	G	G	D	D	<	<	A	A	G	GsH'JJ+?J7,KKKJ(+J47KKKK$c
|jj}gd}d}td}ttd}||d||tdd|d|td|d|tdfD]b}|j	t|d|j	t
|t|jt|t|kd|jt5|dddd|j	||d	g|j	||d
g|jt5||dddd|jt||dt|k|jt||dt|k|jt5||dddd|jt||ddt|k|jt||ddt|k|jt5||d
dgdddd|jt5||ddddd|jt5||dgdzddddgdgdtd
dtddtddtddggdfD]1}|jt|||dt|k3|jt5||d
dgdddd|jt5||ddddd|jt5||dgdzdddd|jt5||tdtdddddgdgdtd
dtddtddtddgfD]1}|jt|||dt|k3|j	|dgddg|j	|dgddg|j	|dgddg|j	|dgddg|jt5|gd
ddd|jt5|ggd
ddd|jt5|ggddddy#1swYFxYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swY>xYw#1swY"xYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYyxYw)N)rrryellowabcdr@r|r)rwrvweights)rwrvcum_weightsr?rr9g@)rrwr8rT)rTrdr)g333333.@gffffff$@g3333339@gL>@r=)TFTFrrw)r8rrrr<)rr8rrb)rrr8rc)rrrr8d)rchoicesrrYr(rXrGrErZrCrDrurrg)rrdatastr_data
range_dataset_datartrs        rtest_choiceszTestBasicOps.test_choicess1((""11X
uQx=
DAD%(a(aD%(;aDeAh?	
	6F
S[!,T&\40OOCK3t945	6

y
)	AJ		
+R0,b1


y
)	!DC 	!	
GH23s8}DEGJ!45ZHI


y
)	#H"	#	
GD$!45TBCGD$!<=TJK


z
*	&D1Q%1%	&


y
)	#D""	#


y
)	)D4&(a(	)!(!Q!Q!Q!QP*	
	KG
OOCg ;<D	IJ
	K

z
*	2Dqeq1	2


y
)	/DbA.	/


y
)	5DtfQh!4	5


y
)	?D%(aA>	?!(!Q!Q!Q!QP
	WG

OOC'Q GHCPTIUV	W	
6>6>6>6>

z
*	B!	


z
*	)Ba(	)


z
*	-BB!,	-	-o		
	!	!
	#	#
	&	&	#	#	)	)	2	2	/	/	5	5	?	? 			)	)	-	-s:	UUU!U.	U;2VV6V"V/V<!W		W2W!UU!U+.U8;VVV"V,/V9<W	WW!W*cN|jj}|ddgddgdy)Nr8r?g)rvrrw)rr)rrs  rtest_choices_subnormalz#TestBasicOps.test_choices_subnormal9s(
((""Aq6FF+;tDr$c|jt5|jjdddgdddy#1swYyxYw)NABrCrurrr2s r"test_choices_with_all_zero_weightsz/TestBasicOps.test_choices_with_all_zero_weightsAs=


z
*	/HHTC:.	/	/	/	>Ac|jt5|jjdgddddy#1swYyxYw)NABC)r=r8rr2s rtest_choices_negative_totalz(TestBasicOps.test_choices_negative_totalFs9


z
*	0HHUJ/	0	0	0rcB|jt5|jjdt	dgddd|jt5|jjddt	dgddd|jt5|jjdt	ddgddd|jt5|jjddt	dgddd|jt5|jjdt	dt	dgdddy#1swY)xYw#1swYxYw#1swYxYw#1swY}xYw#1swYyxYw)NAinfrr{nanz-inf)rCrurrfloatr2s rtest_choices_infinite_totalz(TestBasicOps.test_choices_infinite_totalJsO


z
*	2HHS5<.1	2


z
*	8HHTCu#67	8


z
*	9HHTU5\M3#78	9


z
*	8HHTCu#67	8


z
*	BHHTE&M5<#@A	B	B	2	2	8	8	9	9	8	8	B	Bs;'E$(E1)E=%(F	*1F$E.1E:=F	FFcdD]}|jj||jj}|jjdd}|jj||jj}|jjdd}|j	|||j	||y)N)r8rii90i@i	rr8)rrrgaussr()rrx1y1x2y2s      r
test_gausszTestBasicOps.test_gaussVs
<
	%DHHMM$"B1%BHHMM$"B1%BR$R$
	%r$c.tddD]=}|jd|jj|cxkxrd|zknc?|j	|jjdd|jj}dD]W}d|zdz
}d}d}tdD]}||}||z}|||zz}|j	|||j	||Y|jt|jj|jt|jjdd|jt|jjd|jt|jjdy)	Nr8r&rr?)r8r?r=r@ r456wrsr9g333333$@)rrZrgetrandbitsr(rCrDru)	rrwgetbitsspanall_bitscumcpl_cumrvs	         rtest_getrandbitszTestBasicOps.test_getrandbitsgs_q$	AAOOA!5!5a!8?1a4?@	A--a0!4((&&L		0D$wqyHCG3Z
(DMq8a<'
(
S(+Wh/		0	
)TXX%9%9:)TXX%9%91a@*dhh&:&:B?)TXX%9%94@r$cttjdzD]}tj|j|}tdDcgc]}|jj}}tj|}tdDcgc]}|j}}|j||ycc}wcc}w)Nr8rT)rpickleHIGHEST_PROTOCOLdumpsrrloadsr()rprotor*rorigseqnewgenrestoredseqs       r
test_picklingzTestBasicOps.test_picklings622Q67	3ELL51E27)<Qtxx(<G<\\%(F49"I>q6==?>K>Wk2	3<>s
!CCc
gd}|D]n\}}ttj|d5}tj|}ddd|jt
jdz|py#1swY8xYw)N))z
randv2_32.pcki)z
randv2_64.pckib)z
randv3.pckiWrbr&)openr
findfilerloadr(intr)rfilesfilevaluefrs      rtest_bug_1727780zTestBasicOps.test_bug_1727780sv&!	:KD%g&&t,T2
#aKKN
#SD159	:
#
#sA99B	cd}|jjtfdt|D}|j	d||zcxkxrdknc||zy)N順c3:K|]}ddzdk(yw)lr=r?Nr1).0r	randranges  r	<genexpr>z-TestBasicOps.test_bug_9025.<locals>.<genexpr>s!G	*+a/14Gs333333?gGz?)rrrrrZ)rrrwrs   @r
test_bug_9025zTestBasicOps.test_bug_9025sM
HH&&	GeAhGGqs(S(1Q30r$c~tddD]W}|jj|}|jt	|t
|jt
||Y|j|jjdd|jt|jj|jt|jjdd|jt|jjd|jt|jjdy)Nr8rTrr$r?r9?)
rr	randbytesr(rGbytesrXrCrDru)rrrs   rtest_randbyteszTestBasicOps.test_randbytessq"	+A88%%a(DT$Z/SY*	+
	
++A.4	
)TXX%7%78)TXX%7%7A>*dhh&8&8"=)TXX%7%7=r$c|j|jjt|j|jj	tyr)assertIsInstancer
normalvariaterrr2s rtest_mu_sigma_default_argsz'TestBasicOps.test_mu_sigma_default_argss:dhh446>dhhnn.6r$N)"r4r5r6rr#r,rIrLunittestmockpatchrQrarirqrzrrrrrrrrrrrrrr
rr!r&r*r1r$rrrs
5,69$0
]]*+,9B2
6?  :R-
- *GXK-ZE/
0
B%"A23
:1
>7r$rTFz!random.SystemRandom not availableceZdZejZdZdZdZdZ	dZ
dZdZdZ
d	Zd
ZdZdZeefd
Zy)SystemRandom_TestBasicOpsc8|jjyrrrr2s rr#z'SystemRandom_TestBasicOps.test_autoseeds

r$c|jt|jj|jt|jjdyr)rCrNrrr'r2s rr,z*SystemRandom_TestBasicOps.test_saverestores:-txx/@/@A-txx/@/@$Gr$c:|jjdyNrsr1r2s rrIz'SystemRandom_TestBasicOps.test_seedargss

cr$cd|j_|jjd|j|jjdyr4)r
gauss_nextrr(r2s rrz$SystemRandom_TestBasicOps.test_gausss8"

c,,d3r$cttjdzD]2}|jttj
|j|4y)Nr8)rrrrCrNrr)rr	s  rr
z'SystemRandom_TestBasicOps.test_picklings@622Q67	RE16<<5Q	Rr$cd}d}tdD]+}|t|jj|zz}-|j	||dz
yNlrrsr8rrrrr(rrrrs    rtest_53_bits_per_floatz0SystemRandom_TestBasicOps.test_53_bits_per_floatRs	1A3txx(4/00C	1d1f%r$cddz}d}tdD]A}|jj|}|jd|cxkxr|knc||z}C|j	||dz
yNr?rrrsr8rrrrZr(rrrrrs     rtest_bigrandz&SystemRandom_TestBasicOps.test_bigrandlCxs	A""4(AOOAMTM*1HC		
d1f%r$cdD]}|jjd|dz
z}|jjd|z}||krH|j||jj||cxkxr|kncyN)	rPriwii&r?rrrZrrstartstops    rtest_bigrand_rangesz-SystemRandom_TestBasicOps.test_bigrand_rangesx;	MAHH&&qQqSz2E88%%a1f-Du}OOETXX%7%7t%DKtKL	Mr$c
dD]d\}}|jtt||ttdDcgc]}|jj	|| c}fycc}wN))r)ll)llrsr(rYrrrrrLrMrs    rtest_rangelimitsz*SystemRandom_TestBasicOps.test_rangelimits_K	KKE4SuT!23U3ZHTXX''d3HI
K	KH#A+c|jjddd}|j|d|jjddd}|j|dy)NrrTr?)rr?r@rr)rrrhr()rrints  rtest_randrange_nonunit_stepz5SystemRandom_TestBasicOps.test_randrange_nonunit_stepsPxx!!!R+

dO,xx!!!Q*q!r$ct|jt|jj}t|jt
|jj}|dd|d|ddd|ddd|ddd|ddd|d|d	|t
dd
|d|dd|dd
|dt
dd
|dd|ddd|dd|d
d|t
dd
d|dd|ddd|ddd|ddd	|ddt
dd
|ddd|ddd|dddy)Nr=i/rrsi*rn!	@@r83gW}W@@r?2r|r#)rrCrurrrDr)rraises_value_errorraises_type_errors   rtest_randrange_errorsz/SystemRandom_TestBasicOps.test_randrange_errorsst$T%6%6
DHHDVDVW#D$5$5y$((BTBTU	1a 4 1c3'	1b!$!R%!Q$	'"#(1a.)#!W%!S!!Xa^,!S!!Wa(	'1%#q!(1a.!,#q!'1a(	!R)!R%!R!Q0!R%!R%!Q$r$c|jj}|jt5|ddddd|jt5|ddddddy#1swY3xYw#1swYyxYw)Nr&rs)step)rrrCrD)rrs  rtest_randrange_stepz-SystemRandom_TestBasicOps.test_randrange_stepsrHH&&	


y
)	&d%	&


y
)	,dDs+	,	,	&	&	,	,sA)A5)A25A>ctddD]}d|z}|dz}|d||dz}|j|||j|d|dz
z||dz
z
}|d||dz}|j|||dzg|jd|z|cxkDxrd|dz
zkDnc||dz	z}|d||dz}|j|||jd|z|cxkDxrd|dz
zkDncyNr8r&grZ|
?r?rrr(rhrZr_logrrrnumbitsrws       rtest_randbelow_logicz.SystemRandom_TestBasicOps.test_randbelow_logic&q$	1AQAcGGd1aj()AQ(QAaC)
QJAGd1aj()AMM!gwqy12OOAqD1/q1Q3x/0
bLAGd1aj()AQ(OOAqD1/q1Q3x/0	1r$N)r4r5r6rSystemRandomrr#r,rIrr
r<rBrNrUrZrdrgrrrnr1r$rr/r/s_
&


CH4
R&	&MK
"&%P,),1r$r/c|eZdZejj
dZejj
dZy)TestRawMersenneTwistercddl}ttjdzD]8}|j	}|jttj||:y)Nrr8)_randomrrrRandomrCrDr)rrtr	rs    rtest_bug_41052z%TestRawMersenneTwister.test_bug_41052=sL	622Q67	AE Aiq%@	Ar$cddl}|j}|jd|jd}|j|j	|j	y)Nr_)rtrurr(r)rrtr1r2s    rtest_bug_42008z%TestRawMersenneTwister.test_bug_42008EsI	
^^


^^G
$biik2r$N)r4r5r6testr
cpython_onlyrvr{r1r$rrrrr<s>	\\AA
\\33r$rrceZdZejZdZdZdZdZ	dZ
dZdZdZ
d	Zd
ZdZdZd
ZfdZdZeefdZdZdZdZfdZdZdZxZS)MersenneTwister_TestBasicOpsc|jjdd|jtdDcgc]*}|jj	j,c}gd|jjdd|jtdDcgc]*}|jj	j,c}gdycc}wcc}w)	Ni4r8versionr@)z0x1.ac362300d90d2p-1z0x1.9d16f74365005p-1z0x1.1ebb4352e4c4dp-1z0x1.1a7422abf9c11p-1zthe quick brown foxr?)z0x1.1239ddfb11b7cp-3z0x1.b3cbb5c51b120p-4z0x1.8c4f55116b60fp-1z0x1.63eb525174a27p-1rrr(rrhexrrs  rtest_guaranteed_stablez3MersenneTwister_TestBasicOps.test_guaranteed_stableRs

gq
)58Da$((//+//1D
=	>	


+Q
758Da$((//+//1D
=	>	EEs/C$/C#c|jjdd|jtdDcgc]*}|jj	j,c}gd|jjdd|jtdDcgc]*}|jj	j,c}gd|jjdd|jtdDcgc]*}|jj	j,c}gd	ycc}wcc}wcc}w)
Nnofarr8rr@z0x1.8645314505ad7p-1z0x1.afb1f82e40a40p-5z0x1.2a59d2285e971p-1z0x1.56977142a7880p-6rachelz0x1.0b294cc856fcdp-1z0x1.2ad22d79e77b8p-3z0x1.3052b9c072678p-2z0x1.578f332106574p-3z0x1.b0580f98a7dbep-1z0x1.84129978f9c1ap-1z0x1.aeaa51052e978p-2z0x1.092178fb945a6p-2rrs  rtest_bug_27706z+MersenneTwister_TestBasicOps.test_bug_27706]s	


gq
)58Da$((//+//1D
=	>	


h
*58Da$((//+//1D
=	>	


b!
$58Da$((//+//1D
=	>E
E
Es/E$/E/EcGddt}	|jj|y#t$rYywxYw)NceZdZdZy);MersenneTwister_TestBasicOps.test_bug_31478.<locals>.BadIntcyrr1r2s r__abs__zCMersenneTwister_TestBasicOps.test_bug_31478.<locals>.BadInt.__abs__ssr$N)r4r5r6rr1r$rBadIntrrs
r$r)rrrrD)rrs  rtest_bug_31478z+MersenneTwister_TestBasicOps.test_bug_31478os7	S		HHMM&(#		s 2	>>c|jjdd|jtdDcgc]*}|jj	j,c}gd|jjdd|jtdDcgc]*}|jj	j,c}gd|jjdd|jtdDcgc]*}|jj	j,c}gd	d
}|jj|d|jtdDcgc]*}|jj	j,c}gdycc}wcc}wcc}wcc}w)Nsnofarr8rr@rsrachelrr$rs	 @`)z0x1.52c2fde444d23p-1z0x1.875174f0daea4p-2z0x1.9e9b2c50e5cd2p-1z0x1.fa57768bd321cp-2r)rrrs   rtest_bug_31482z+MersenneTwister_TestBasicOps.test_bug_31482zsW	


h
*58Da$((//+//1D
=	>	


i
+58Da$((//+//1D
=	>	


c1
%58Da$((//+//1D
=	>
4

a
#58Da$((//+//1D
=	>!E
E
EEs/F<$/G/G/GcZ|jt|jjdy)N)r8NN)rCrurr'r2s rtest_setstate_first_argz4MersenneTwister_TestBasicOps.test_setstate_first_args*dhh&7&7Ir$c|jj}|jt|jjd|jt
|jjd|jt|jjdddzdf|jt|jjdddzdzdf|jt
tf5|jj	dddzd	zdfddd|jt
tf5|jj	dddzd
zdfddd|jjd}|jj	||j|jjd||jjd}t|}td
|d<d|D}|jt|jjd|dfy#1swY!xYw#1swYxYw)N)r?NN)r?rUNr?)r<q)rip)r8)r)r9rsr8rr9c32K|]}t|ywr)r)rrs  rrzHMersenneTwister_TestBasicOps.test_setstate_middle_arg.<locals>.<genexpr>s.AQ.s)rrrCrDr'ru
OverflowErrorrr(rEr)rstart_statebits100state_valuesr*s     rtest_setstate_middle_argz5MersenneTwister_TestBasicOps.test_setstate_middle_argshh''))TXX%6%6H*dhh&7&79KL)TXX%6%6F3J8MN)TXX%6%6DHVOT8RS



M:
;	:HHq$s(6/489	:



M:
;	9HHq$s(5.$78	9((&&s++&--c2G<xx((*1-L) <R..)TXX%6%6E48HI#	:	:	9	9s1%H59%I5H?Icgd}|jjd|jddd}t||D]\}}|j	||dy)N)
g>FdV?gwR1ۉ?gQ"?g~5?gmb?gYKbX?gH,r̊?gV8?gOֶ?g4Ԗ?#q`&'R)places)rrrrWassertAlmostEqual)rractualr<es     rtest_referenceImplementationz9MersenneTwister_TestBasicOps.test_referenceImplementations`	)	


CD&st,)	2DAq""1Qb"1	2r$c	ddlm}gd}|jjd|j	ddd}t||D]'\}}|j
t||d|)y)Nr)ldexp)
l#1,ulwbl'lJXluak~[l@"p1ylsV%bX$lE3EJlVblaoekl4)[vrrrr)mathrrrrrWr(r)rrrrr<rs      r$test_strong_reference_implementationzAMersenneTwister_TestBasicOps.test_strong_reference_implementationsk
		&	


CD&st,)	3DAqSq".2	3r$cJddzdz
}|jj|y)Nr8i8r1)rrs  rtest_long_seedz+MersenneTwister_TestBasicOps.test_long_seeds#i A%

dr$cd}d}tdD]+}|t|jj|zz}-|j	||dz
yr9r:r;s    rr<z3MersenneTwister_TestBasicOps.test_53_bits_per_floatr=r$cddz}d}tdD]A}|jj|}|jd|cxkxr|knc||z}C|j	||dz
yr?r@rAs     rrBz)MersenneTwister_TestBasicOps.test_bigrandrCr$cdD]}|jjd|dz
z}|jjd|z}||krH|j||jj||cxkxr|kncyrErJrKs    rrNz0MersenneTwister_TestBasicOps.test_bigrand_rangesrOr$c
dD]d\}}|jtt||ttdDcgc]}|jj	|| c}fycc}wrQrSrTs    rrUz-MersenneTwister_TestBasicOps.test_rangelimitsrVrWct||jjd|j	|jjddy)NrsS!m.vFXO)superrrrr(r)r	__class__s rrz-MersenneTwister_TestBasicOps.test_getrandbitssB
 "	


g--c26	8r$c|jjd|j|jjddzdy)Nrr?cr)rrr(rr2s rtest_randrange_uses_getrandbitsz<MersenneTwister_TestBasicOps.test_randrange_uses_getrandbitss<	


g	
++ArE26	8r$ctddD]}d|z}|dz}|d||dz}|j|||j|d|dz
z||dz
z
}|d||dz}|j|||dzg|jd|z|cxkDxrd|dz
zkDnc||dz	z}|d||dz}|j|||jd|z|cxkDxrd|dz
zkDncyrirjrks       rrnz1MersenneTwister_TestBasicOps.test_randbelow_logic&ror$crdtjz}tj5tjdt
|jj|dz|ddd|jjd|d}d}|||zz
|z}tjjjtjd5}||z||z
g|_
|jj|||j|jddddy#1swYxYw#1swYyxYw)	Nr8ignore)maxsizeir\{Gz?rr?)rBPFrrrUserWarningr_randbelow_without_getrandbitsr+r,r-rArurOr(
call_count)rrrepsilonlimitrandom_mocks      r"test_randbelow_without_getrandbitsz?MersenneTwister_TestBasicOps.test_randbelow_without_getrandbits;sVZZ-

$
$
&	!!(K8HH33	7
4
		
//g/F 
GaK(G3
]]
 
 
'
'

x
@	8K',w&HK#HH33Aw3G[33Q7	8	83		2	8	8s;D!A	D-!D*-D6cd}d}d}|jj|||}|j||cxkxr|knc|j||z|zdy)NlJ)r:i8r)rrrZr()rrLrMrfrs     rtest_randrange_bug_1590891z7MersenneTwister_TestBasicOps.test_randrange_bug_1590891]sW%HHudD1q)E)*!D&$*r$c|jj}d}|jjd|jjt|d}|jjd|jjt|dg|zd}|j	|||jjd|jjt|td|dzd}|j	||gd}gd}gd	}d
gdzdgdzzd
gdzz}	|jjd|jj|	d}|jjd|jj||d}|j	|||jjd|jj||d}|j	||y)Nirxr}rr8r)RedBlackGreen)rr?)r$&rrrrr?i߉)rrrrr()
rrrr<rrrvrrexpanded_populations
          rtest_choices_algorithmsz4MersenneTwister_TestBasicOps.test_choices_algorithmses((""

gHHU1X/

gHHU1Xs1u6A

gHHU1X5AaC=EJA/
"$glgY^;wi!mK

gHH0E:

gHHZE:A

gHHZ[EJAr$c
td}djj|j	jjdjj|j	jjddj	jjdjj|j	dj
tdDcgc]}jjdc}jj|ddd}j	dj
fdtdD|jj|dj
fd	tdtdD}j	dj
fd
tdD|jj|dj
fdtdtdD}j	dj
fdtdD|ycc}w)
Nrxs3f6oerr$r@r=c3TK|]}jjd!yw)r8Nrr$r_rs  rrz>MersenneTwister_TestBasicOps.test_randbytes.<locals>.<genexpr> !JA$(("4"4Q"7!J%(c34K|]}|dz|dzyw)r?r@Nr1rrrs  rrz>MersenneTwister_TestBasicOps.test_randbytes.<locals>.<genexpr>*B!"&a!eQU3Bc3TK|]}jjd!yw)r?Nrrs  rrz>MersenneTwister_TestBasicOps.test_randbytes.<locals>.<genexpr>rrc34K|]}|dz|dzyw)r8r@Nr1rs  rrz>MersenneTwister_TestBasicOps.test_randbytes.<locals>.<genexpr>rrc3TK|]}jjd!yw)r=Nrrs  rrz>MersenneTwister_TestBasicOps.test_randbytes.<locals>.<genexpr>rr)	rr&rrr(r$joinrrX)rrr	expected1	expected2	expected3rrs`     @rr&z+MersenneTwister_TestBasicOps.test_randbytess
 G

d++B/:	


d++A.4++B/:	


d%("KQ488#5#5a#8"KL!	#
	


dQTTN	!Jq!JJ"	$	


dHHB&+As8}a&@BB	!Jq!JJ"	$	


dHHB&+As8}a&@BB	!Jq!JJ"	$'#Ls"JcBd}tj}|jj||j|t	dD]O}|j|jj
||j|dzj|dQy)NlOS	rlittle)	rrurrrr(r$rto_bytes)rrgen2rs    rtest_randbytes_getrandbitsz7MersenneTwister_TestBasicOps.test_randbytes_getrandbitss}}

d		$q	LATXX//2!--a!e4==aJ
L	Lr$c
|jj}|jj}gd}gd}d}|d||||}|dt||D	cgc]\}}t	|D]}	|}
}}}	|jt
|
t|||
|}|j||d}gd}|dd	j|||d
}d	jt||D
	cgc]\}
}t	|D]}	|
c}	}}
}
|dd	j||
d
}|j||ycc}	}}wcc}	}}
w)N)rrrrrr)rrrrTr|r8rrxrr	abcdefghi)	rTrrrr|r@r=r?rr)	rrtrrWrr(rXrr)rrtrrrrws1rcountrexpandeds2rletters              rtest_sample_counts_equivalencez;MersenneTwister_TestBasicOps.test_sample_counts_equivalencesIxx}}FEW

F6Q
/W
03FF0CZZnueUSX\ZEZEZZXF4
H
"R -W

WWVC"5
677#c6:JaaTYZ_T`aqFaFabW

WWVH+
,R [bs"EE%)r4r5r6rrurrrrrrrrrrr<rBrNrUrrrrrnrrrr&rr
__classcell__)rs@rrrOs
&--/C	>>$	>6JJ<2>3,&	&MK
88),1* 8D+B&$PL!r$rr`?c|dkr(ttt|zztd|z
zS|dz}||dz
zt|z|zt	dd|zd|dzzd|dzzd	|d
zzd|dzzd
|dzzd|dzzd|dzzg	zS)Nrr#g@g
?g
ö)$@g&Ԏg
ta@r`gQfr^g>@~)@g@gA~@g~\>g@giE>g@)rrgammarr)zsqrt2piazs   rrrs3wC1I~c!e,,	
iB
!C%=3r7"W,tAae$QsU#ae$QsU#qu%!C%(!C%(
5
0

r$ceZdZdZdZdZdZdZdZdZ	e
jjdd	Z
e
jjdd
Ze
jjddZe
jjddZe
jjd
dZy)TestDistributionsctj}tdDcgc]}|jc}dgdzz}|ddj|_|j	dd|ddj|_|jd|ddj|_|j
d|ddj|_|j
|ddj|_|jdd|ddj|_|jdd|ddj|_|jdd|ddj|_|jdd|ddj|_|jdd|ddj|_|jdd|ddj|_|jdd|ddj|_|jdd|ddj|_|jdd|ddj|_|jd	d	|ddj|_|jddd
ycc}w)Nrcrr|r8rTr#rgi@r^UUUUUU?)rrurruniform
paretovariateexpovariateweibullvariatevonmisesvariater)rlognormvariategammavariatebetavariate
triangular)rgrrs    rtest_zeroinputsz!TestDistributions.test_zeroinputssMMO!&r+AQXXZ+seAg5Q488QYYq_Q488Q__S1Q488Q]]3/Q488Q]]_Q488Q--c37Q488Q..sC8Q488Q__S#6Q488QWWS#.Q488Q--c37Q488Q..sC8Q488Q^^D#6Q488Q^^C5Q488Q^^E37Q488Q]]34Q488Q\\#sG<
,sI;c>tj}d}td|Dcgc]}|t|z}}|jdddf|j
dddf|jd	d
df|jdttdzd
zf|jdddf|jdtdtdtddzz
ffD]\}}}}|ddj|_g}	tt|D]}	|	j||dx}
}|	D]}|
|z
}
|||z
dzz
}t|	}|j!|
|z|d|j"||j!||dz
z|d|j"|ycc}w#t$rYwxYw)Nrr8)r#$@g@g@)rr#rgqq?g<ݚ?)?gUUUUUU?)gGz?rr?r=)rg?g?)r#r^gUUUUUU?g?r)rmsg)rrurrrrrrrrrrrrXappendrgrr4)
rr
r)rrvariateargsmu	sigmasqrdyrrrs
             rtest_avg_stdzTestDistributions.test_avg_stds
MMO!&q,AQuQxZ,,J6FG2G\Jx8""Ir2q57;&+":<!!:uW~"'.w1B"BD-F	J(GT2ytxxAHA3q6]
HHWd^,

KB
$aq2v!m#
$AA""2a4A181A1A4'H
#
J""2qs8Yq181A1A4'H
#
J/	J
-"sF=F	FFctj}d}|jddf|jddf|jddf|jtdfdf|jdtdfdf|jddf|jd	d
f|jtddfdf|jddf|jddf|jd
df|jddf|jtdfd
f|jdtdfdf|jddffD]+\}}}t|D]}|j|||-y)Nrs)rrr)rrrrrr^)rr)rrr#)rrr)rTr)rTr#rT)rr)rrurrrrrrr	r)binomialvariaterrrr()rr
r)rrrrs       r
test_constantzTestDistributions.test_constants_MMOL$/|T2148u5""S%,$7=+t,!!:s3!!U5\M3#7=+t4""Ha0""Iq1""Ir25</37!!D%,#7>!!;4(	;#GT8"1X
;  $:
;#	;r$cjtj|jt5dddd|jt5ddddd|jt5ddddd|j	ddd	|j	dd
d|jdddv|jdd
dv|jdddv|jdd
dv|jddt
tdv|jddt
tdv|jddt
tdv|jddt
tdvtfdtdD}|jd|d	cxkxrdknc||jd|dcxkxrdknc|jd|dcxkxrdknc|jd|d cxkxrd!knc|j	t
|hd"tfd#tdD}|jd$|d%|d&z|d'z|d(z|d)zcxkxrd*knc|jt
|t
tdk|j	|jd|jd+d,d-cxkxrd.knc|jd/d,d
cxkxr
d0kycy#1swY_xYw#1swYDxYw#1swY)xYw)1Nr9)rr8g)rprrTrrr#r >rr8g?>r>r8r|?rg?rsec30K|]
}ddyw)r@rNr1rrBs  rrz9TestDistributions.test_binomialvariate.<locals>.<genexpr>Ts71AaJ7risiiiiiJr?i6Zi
r=i >rr8r?r=r@c30K|]
}ddyw)rsrNr1r"s  rrz9TestDistributions.test_binomialvariate.<locals>.<genexpr>]s9QAc4L9r$irriFi!ig?i@o@i@Nil)
rrrCrur(rZrYrr
total)rrr#s  @rtest_binomialvariatez&TestDistributions.test_binomialvariate2s""

z
*	
G	


z
*	
TN	


z
*	
SM	2sQ'2sR(!S	V+,!S	V+,!S	S()!S	S()	
!T
c%(m34	
!T
c%(m34	
#tE#J78	
#tE#J78
7g77!A$0&0!4!A$0&01!A$0&01!A$/%/0Q1
9%.99!B%"+ae"3AbE"9!B%"?I6IJA#eCj/12G,	

aS&9GZGH
aS&9GZGHGH]						s#
NN6N(NN%(N2ctj}d}dD]k}dD]d}t|D]T}|j||}|j	d|cxkxrtj
kncdj
|||Vfmy)Nrs)rrg@g@)rffffff@g@@rzCvonmisesvariate({}, {}) produced a result {} out of range [0, 2*pi])r)rrurrrZTWOPIformat)rr
r)rkapparrts       rtest_von_mises_rangez&TestDistributions.test_von_mises_rangegs
MMO$	OB(
OqOA..r59FOOV3v||334:F2uf4M$OO
O	Or$c\tjddtjddy)Nrg4&kCg}Ô%IT)rrr2s rtest_von_mises_large_kappaz,TestDistributions.test_von_mises_large_kappaus"q$'q%(r$c4|jttjdd|jttjdd|jttjdd|jttjddy)Nr9r=rr?r8r)rCrurr
r2s rtest_gammavariate_errorsz*TestDistributions.test_gammavariate_errorszsj*f&9&92qA*f&9&91a@*f&9&91a@*f&9&91bAr$zrandom.Random.randomcfgd|_tjdd}|j|dy)N):0yE>rr g?r,g=
ףp=@rOrr
rrrreturned_values   r#test_gammavariate_alpha_greater_onez5TestDistributions.test_gammavariate_alpha_greater_ones.#3,,S#6~t4r$cddg|_tjdd}|j|dy)Ng?r#r;g/qr	?r7r8s   r!test_gammavariate_alpha_equal_onez3TestDistributions.test_gammavariate_alpha_equal_ones1$(&,,S$7~/@Ar$cd}ddg|_tjd|}tjd|z}|j	||y)Nr;r6r#)rOrr
rr)rrbetagammavariate_returned_valueexpovariate_returned_values     r4test_gammavariate_alpha_equal_one_equals_expovariatezFTestDistributions.test_gammavariate_alpha_equal_one_equals_expovariatesO
#',&,&9&9#t&D#%+%7%7d
%C":<VWr$chtj}tj}tj}d}d}||z|z}d}d}	d}
|	|
|z|	|
g|_tj
||}|j
|dd}	d}
|	|
|z|	|
g|_tj
||}|j
|d	y)
Ngffffff?g333333?rgX Y?g=,6V?g.3333?gl%t?gK,	9?g7SvT?)r_e_exprlrOr
r)rrrCrDrlalphar>rrryrzr9s            r,test_gammavariate_alpha_between_zero_and_onez>TestDistributions.test_gammavariate_alpha_between_zero_and_onesFYY{{{{
%ZO


$&rG|R"<,,UD9~/AB

$&rG|R"<,,UD9~/ABr$zrandom.Random.gammavariatec^d|_|jdtjddy)Nrg	@r])return_valuer(rr)rgammavariate_mocks  rtest_betavariate_return_zeroz.TestDistributions.test_betavariate_return_zeros**-&f00'BCr$N)r4r5r6rrrr*r0r2r4r+r,r-r:r<rArFrJr1r$rrrs=(J@;.2IjO)
B]]/0515]]/0B1B]]/0X1X]]/0CC1CCJ]]56D7Dr$rceZdZdZdZy)TestRandomSubclassingcHGddtj}|dy)NceZdZddZy)HTestRandomSubclassing.test_random_subclass_with_kwargs.<locals>.SubclassNcBtjj|yr)rrur)rnewargs  rrzQTestRandomSubclassing.test_random_subclass_with_kwargs.<locals>.Subclass.__init__s

&&t,r$r)r4r5r6rr1r$rSubclassrOs
-r$rRr8)rQ)rru)rrRs  r test_random_subclass_with_kwargsz6TestRandomSubclassing.test_random_subclass_with_kwargss	-v}}	-	r$cGfddtj}t|jd|j	dhGfddtj}t|jd|j	dhGfdd	|}t|jd|j	d
hGfdd|}t|jd|j	d
hGfdd}Gfdd}Gdd|tj}t|jd|j	dhGdd|tj}t|jd|j	dhGdd||tj}	t|	jd|j	dhGdd||tj}
t|
jd|j	dhy)Nc"eZdZfdZfdZy)KTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass1cdjdtjj|S)NzSubClass1.randomaddrrurcalleds rrzRTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass1.random%

-.}}++D11r$cfjdtjj||S)NSubClass1.getrandbitsrYrrurrrr[s  rrzWTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass1.getrandbits	'

23}}00q99r$N)r4r5r6rrr[sr	SubClass1rVs

2
:r$rcr\r^ceZdZfdZy)KTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass2cdjdtjj|S)NSubClass2.randomrXrZs rrzRTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass2.randomr\r$Nr4r5r6rrbsr	SubClass2re
2r$rirgceZdZfdZy)KTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass3cfjdtjj||S)NSubClass3.getrandbitsr_r`s  rrzWTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass3.getrandbitsrar$Nr4r5r6rrbsr	SubClass3rl
:r$rprnceZdZfdZy)KTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass4cdjdtjj|S)NSubClass4.randomrXrZs rrzRTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass4.random&r\r$Nrhrbsr	SubClass4rs%rjr$rvruceZdZfdZy)HTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.Mixin1cdjdtjj|S)N
Mixin1.randomrXrZs rrzOTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.Mixin1.random0s$

?+}}++D11r$NrhrbsrMixin1rx/rjr$r{ceZdZfdZy)HTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.Mixin2cfjdtjj||S)NMixin2.getrandbitsr_r`s  rrzTTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.Mixin2.getrandbits4s'

/0}}00q99r$NrorbsrMixin2r}3rqr$rceZdZy)KTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass5Nr4r5r6r1r$r	SubClass5r8r$rrzceZdZy)KTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass6Nrr1r$r	SubClass6r>rr$rrceZdZy)KTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass7Nrr1r$r	SubClass7rDrr$rceZdZy)KTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass8Nrr1r$r	SubClass8rJrr$r)rrurYrr()rrcrirprvr{rrrrrr[s           @r"test_subclasses_overriding_methodsz8TestRandomSubclassing.test_subclasses_overriding_methodss	:

	:b!"9!:;	2

	2b!"4!56	:		:b!"9!:;	2		2b!"4!56	2	2	:	:
	

	b!/!23	

	b!"6!78	

	b!/!23	

	b!"6!78r$N)r4r5r6rSrr1r$rrLrLs
R9r$rLcXeZdZdZdZejjdZy)
TestModulec|jtjd|jtjd|jtjd|jtj
dy)Ng3?r?g.DT!@g9B.?gtY@)rr
NV_MAGICCONSTr-LOG4
SG_MAGICCONSTr2s rtestMagicConstantszTestModule.testMagicConstantsRsYv335EFv||];v{{,<=v335EFr$c|jttjtt	tkyr)rZrYr__all__dirr2s rtest__all__zTestModule.test__all__Xs%FNN+s3v;/??@r$ctj\}}tj}|dk(r[	tjd}t|d5}|j
t|dddtjdytj|tjd}t|d5}t|j}ddd|j|tj|dy#1swYxYw#tjdwxYw#1swYYxYw)Nrrwr)exitcode)ospipeforkrrrwriter_exitcloseevalreadr r
wait_process)rrrpidvalr	child_vals       rtest_after_forkzTestModule.test_after_fork\swwy1ggi!8
((-!S\&QGGCH%&
HHQK$$S)Ca
+ N	
+Y/  q1&&

+
+s/!DD.DD4DDD14D=N)	r4r5r6rrr|r

requires_forkrr1r$rrrQs/GA
\\!2"2r$r__main__)'r+
unittest.mockrrrrrtest.supportr|	functoolsrrrrrrrr	r
	fractionsrcollectionsrr
rrpSystemRandom_availablerN
skipUnlessTestCaser/rrrrrrLrr4mainr1r$r<module>rsC
	
33$]7]7@
"F  ""+-PQA1h.?.?A1RA1H3X..3&B!<1B1BB!J"fs]$KD))KD\Z9H--Z9z 2"" 2FzHMMOE#"#sD00D:9D: