a zeE@s^ddlZddlZddlZddlZddlZddlZddlZddlZddl m Z ddl m Z m Z mZmZmZmZddlmZddlmZddlmZGdddZzeWneyd ZYn0d Zeed Gd d d eejZGdddeejZdedfddZGdddejZ GdddejZ!GdddejZ"e#dkrZe$dS)N)partial)logexppifsumsin factorial)support)Fraction)Counterc@seZdZddZddZddZddZd d Zej d d d Z ddZ ddZ ddZddZddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zejjd,d-Zd.d/Zd0d1Z d2d3Z!d4S)5 TestBasicOpscsfddt|DS)Ncsg|]}jqSgenrandom.0iselfr D/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_random.py z+TestBasicOps.randomlist..rangernr rr randomlistszTestBasicOps.randomlistcCsB|j|j}td|j|j}|||dS)N皙?)rseedgetstatetimesleepassertNotEqual)rZstate1Zstate2r r r test_autoseeds      zTestBasicOps.test_autoseedcCsDd}|j|j}||}|j|||||dS)N)rrr rsetstate assertEqual)rNstateZrandseqr r rtest_saverestore!s     zTestBasicOps.test_saverestorec CsGdddt}dD]}|j|qdtd|fD]:}|t|j|Wdq61sf0Yq6ttdtddfD]@}|t"| t |jj|Wdq1s0Yq| t |jjdd dd | t t |jgdS) Nc@seZdZddZdS)z*TestBasicOps.test_seedargs..MySeedcSsdS)Ni?r rr r r__hash__,sz3TestBasicOps.test_seedargs..MySeed.__hash__N)__name__ __module__ __qualname__r+r r r rMySeed+sr/) Nrl Fx:^V Fx:^VFTQ @ay?@abcr0)Zone) objectrrtuple assertWarnsDeprecationWarninglistrdict assertRaises TypeErrortype)rr/argr r r test_seedargs)s , 2zTestBasicOps.test_seedargscCs(td}|j|||tddS)Ns1234) bytearrayrrr')rr4r r rtest_seed_no_mutate_bug_44018<s z*TestBasicOps.test_seed_no_mutate_bug_44018zrandom._urandomcCst|_|dSN)NotImplementedError side_effectrC)rZ urandom_mockr r r*test_seed_when_randomness_source_not_foundAsz7TestBasicOps.test_seed_when_randomness_source_not_foundcCs|jj}g}||||gdg}||||dgddtdD}ddtdD}|D] }||qdt||D]0\}}|t|t||t|t|q|ttd}ttd}|||||k|||||k| t |ddS)N%cSsg|]}tt|qSr r=rrrr r rrSrz-TestBasicOps.test_shuffle.. cSsg|]}tt|qSr rKrLr r rrTrr%r0r7r6) rshuffler'rziplensetr= assertTruer?r@)rrOZlstZseqsZ shuffled_seqsZ shuffled_seqseqZ shuffled_lstr r r test_shuffleKs*    zTestBasicOps.test_shufflecCs^|jj}tjjdd}td}|t|||Wdn1sH0Y|dS)N?) return_values abcdefghijk) rrOunittestmockZMockrDr;r<Zassert_called_with)rrOZ mock_randomrTr r rtest_shuffle_random_argumentls  (z)TestBasicOps.test_shuffle_random_argumentcCsh|jj}|t|gWdn1s00Y||dgd||ddgddgdS)N2K)rchoicer? IndexErrorr'assertIn)rr^r r r test_choiceus  &zTestBasicOps.test_choicecCsd}t|}t|dD]L}|j||}|t||t|}|t||||t|kq||jgdg|t|jj||d|t|jjgddS)Ndr0rr1) rrsampler'rQrRrSr? ValueError)rr( populationksZuniqr r r test_sample|szTestBasicOps.test_samplec Csvd}t|}d}t|D]X}t|t||}i}t|D]*}d|t|j||<t||kr<qq<|qdS)N')rrr:rrcrQZfail)rrpopZtrialsrfexpectedZpermsrr r rtest_sample_distributions   z%TestBasicOps.test_sample_distributioncCsL|jtdd|jtdd|jtdd|jtdddS)Nr7Zabcdefghijklmnopqrst)rrcrstrr:rr r rtest_sample_inputsszTestBasicOps.test_sample_inputscCs|t|jjtdddS)NZabcdefr7)r?r@rrcr>fromkeysrr r rtest_sample_on_dictssz!TestBasicOps.test_sample_on_dictscCsF|t(hd}|jj|ddWdn1s80YdS)N>F(rMr[rn<rirf)r;r<rrc)rrer r rtest_sample_on_setss z TestBasicOps.test_sample_on_setsc Cs|jj}gd}gd}d}t||||d}|t||t||D]\}}||||qL|d|t|}t||||d}|t||t||D]\}}||||q|d|t|dgdgdd}||tdd t |}t||dg|d|d}||td|| t "|gd dddWdn1sd0Y| t &|gd gd d dWdn1s0Y| t &|gd gd d dWdn1s0Y| t &|ddgddgddWdn1s*0Y| t &|gd dd gd dWdn1sl0Y| t &|gd gdd dWdn1s0YdS)N)redgreenblueorangeblackbrownamber)rnrMrirr0countsrfr~xrM)r)ryrzr{)iir7)rrrryrzr0)r0r7r6r8) rrcr r'sumvaluesrPZassertLessEqualZ assertNotInrQr?r@rd) rrccolorsrrfZsummarycolorZweightZncr r rtest_sample_with_countss@   2 6 6 6 6 z$TestBasicOps.test_sample_with_countsc Csf|jj}gd}d}td}ttd}||dd||tddd|d|tdd|d|tddfD]:}|t|d|t|t|t|t|kqf| t |dWdn1s0Y|||d dg|||d dg| t ||d dWdn1s*0Y|t||ddt|k|t||ddt|k| t ||ddWdn1s0Y|t||dddt|k|t||ddd t|k| t "||d dgddWdn1s0Y| t ||dddWdn1sV0Y| t $||dgdddWdn1s0Ygdgdt d dt ddt ddt ddggdfD]&}|t|||ddt|kq| t "||d dgddWdn1s40Y| t ||dddWdn1sn0Y| t $||dgdddWdn1s0Y| t (||tdtdddWdn1s0Ygdgdt d dt ddt ddt ddgfD]&}|t|||ddt|kq.||dgddg||dgddg||dgddg||dgddg| t |gd dWdn1s0Y| t |ggd d Wdn1s0Y| t |ggddWdn1sX0YdS)N)ryrzr{ZyellowZabcdr8rirw)rfreweights)rfre cum_weightsr7rr1g@)rrfr0rM)rMr\rv)g333333.@gffffff$@g3333339@gL>@r6)TFTFrrf)r0rrrr4)rr0rrb)rrr0rc)rrrr0d)rchoicesrrRr'rQrAr=rSr?r@rdr r_)rrdataZstr_dataZ range_dataset_datarcrr r r test_choicessx   & , ,   2 . 4"$ 2 . 4 8"$ , . zTestBasicOps.test_choicescCs"|jj}|ddgddgdddS)Nr0r7g)rerrf)rr)rrr r rtest_choices_subnormal$sz#TestBasicOps.test_choices_subnormalcCs@|t"|jdddgWdn1s20YdS)NZAB)r?rdrrrr r r"test_choices_with_all_zero_weights,s z/TestBasicOps.test_choices_with_all_zero_weightscCsndD]d}|j||j}|jdd}|j||j}|jdd}||||||qdS)N)r0 {ii90i@i rr0)rrrgaussr')rrZx1Zy1Zx2Zy2r r r test_gauss1s     zTestBasicOps.test_gaussc CstddD].}|d|j|ko0d|knq ||jdd|jj}dD]Z}d|d}d}d}tdD] }||}||O}|||AO}qz||||||qZ|t|jj|t|jjdd|t|jjd|t|jjddS) Nr0r%rr7)r0r7r6r8 r456wrbr1g333333$@)rrSr getrandbitsr'r?r@rd) rrfZgetbitsspanZall_bitscumZcpl_cumrvr r rtest_getrandbitsBs$,   zTestBasicOps.test_getrandbitscshttjdD]T}tj|}fddtdD}t|fddtdD}||qdS)Nr0csg|]}jqSr rrrr rr^rz.TestBasicOps.test_pickling..rMcsg|] }qSr rr)newgenr rr`r)rpickleHIGHEST_PROTOCOLdumpsrloadsr')rprotor)ZorigseqZ restoredseqr )rrr test_pickling[s  zTestBasicOps.test_picklingcCs:ddl}ttjdD]}|}|ttj||qdS)Nrr0)_randomrrrRandomr?r@r)rrrrr r rtest_bug_41052cszTestBasicOps.test_bug_41052c Cslgd}|D]Z\}}tt|d}t|}Wdn1sD0Y|t|d|q dS)N))z randv2_32.pcki )z randv2_64.pckib)z randv3.pckiWrbr%)openr Zfindfilerloadr'intr)rfilesfilevaluefrr r rtest_bug_1727780ks  (zTestBasicOps.test_bug_1727780csRd}|jjtfddt|D}|d||ko@dkn||dS)Nic3s|]}dddkVqdS)lr6r7Nr r randranger r |rz-TestBasicOps.test_bug_9025..333333?gGz?)rrrrrS)rrrfr rr test_bug_9025wszTestBasicOps.test_bug_9025cCstddD]0}|j|}|t|t|t||q ||jdd|t|jj|t|jjdd|t |jjd|t|jjddS)Nr0rMrrr7r1?) rr randbytesr'rAbytesrQr?r@rd)rrrr r rtest_randbytess zTestBasicOps.test_randbytesN)"r,r-r.rr$r*rCrErXrYpatchrIrUrZrarhrmrprrrxrrrrrrrtestr Z cpython_onlyrrrrr r r rr s6  ! ,M  r FTz!random.SystemRandom not availablec@szeZdZeZddZddZddZddZ d d Z d d Z d dZ ddZ ddZddZddZeefddZdS)SystemRandom_TestBasicOpscCs|jdSrFrrrr r rr$sz'SystemRandom_TestBasicOps.test_autoseedcCs&|t|jj|t|jjddSrF)r?rGrr r&rr r rr*sz*SystemRandom_TestBasicOps.test_saverestorecCs|jddSNrbrrr r rrCsz'SystemRandom_TestBasicOps.test_seedargscCs(d|j_|jd||jjddSr)r gauss_nextrr'rr r rrs z$SystemRandom_TestBasicOps.test_gausscCs,ttjdD]}|ttj|j|qdS)Nr0)rrrr?rGrr)rrr r rrsz'SystemRandom_TestBasicOps.test_picklingcCs@d}d}tdD]}|t|j|O}q|||ddSNlrrbr0rrrrr'rrrrr r rtest_53_bits_per_floats  z0SystemRandom_TestBasicOps.test_53_bits_per_floatcCs`dd}d}tdD]6}|j|}|d|ko:|kn||O}q|||ddSNr7rrrbr0rrrrSr'rrrrrr r r test_bigrands   z&SystemRandom_TestBasicOps.test_bigrandcCsddD]Z}|jd|d}|jd|}||kr6q|||j||koV|knqdSN) rtPriwii&r7rrrSrrstartstopr r rtest_bigrand_rangess z-SystemRandom_TestBasicOps.test_bigrand_rangescsBdD]8\tttfddtdDqdS)N)r)ll)llcsg|]}jqSr rrrrrrr rrrz>SystemRandom_TestBasicOps.test_rangelimits..rbr'rRrrr rrtest_rangelimitss z*SystemRandom_TestBasicOps.test_rangelimitscCs<|jddd}||d|jddd}||ddS)NrrMr7)rr7r8rr)rrr`r')rZrintr r rtest_randrange_nonunit_steps z5SystemRandom_TestBasicOps.test_randrange_nonunit_stepcCs^t|jt|jj}|dd|d|ddd|d|dd|ddd|ddddS) Nr6i/rrbin! @ @*)rr?rdrr)rZraisesr r rtest_randrange_errorss    z/SystemRandom_TestBasicOps.test_randrange_errorscCstddD]}d|>}|d}|d||d}|||||d|d||d7}|d||d}||||dg|d||kod|dkn||d?8}|d||d}||||d||kod|dknq dSNr0r%grZ| ?r7rrr'r`rSr_logrrrZnumbitsrfr r rtest_randbelow_logics  *  z.SystemRandom_TestBasicOps.test_randbelow_logicN)r,r-r.r SystemRandomrr$r*rCrrrrrrrrrrrr r r rrs  rcseZdZeZddZddZddZddZ d d Z d d Z d dZ ddZ ddZddZddZddZddZfddZddZeefdd Zd!d"Zd#d$Zd%d&Zfd'd(Zd)d*Zd+d,ZZS)-MersenneTwister_TestBasicOpscshjjdddfddtdDgdjjdd dfd dtdDgd dS) Ni4r0versioncsg|]}jqSr rrhexrrr rrrzGMersenneTwister_TestBasicOps.test_guaranteed_stable..r8)z0x1.ac362300d90d2p-1z0x1.9d16f74365005p-1z0x1.1ebb4352e4c4dp-1z0x1.1a7422abf9c11p-1zthe quick brown foxr7csg|]}jqSr rrrr rrr)z0x1.1239ddfb11b7cp-3z0x1.b3cbb5c51b120p-4z0x1.8c4f55116b60fp-1z0x1.63eb525174a27p-1rrr'rrr rrtest_guaranteed_stablesz3MersenneTwister_TestBasicOps.test_guaranteed_stablecsjjdddfddtdDgdjjdddfd dtdDgd jjd ddfd dtdDgd dS)NZnofarr0rcsg|]}jqSr rrrr rr rz?MersenneTwister_TestBasicOps.test_bug_27706..r8z0x1.8645314505ad7p-1z0x1.afb1f82e40a40p-5z0x1.2a59d2285e971p-1z0x1.56977142a7880p-6Zrachelcsg|]}jqSr rrrr rrrz0x1.0b294cc856fcdp-1z0x1.2ad22d79e77b8p-3z0x1.3052b9c072678p-2z0x1.578f332106574p-3csg|]}jqSr rrrr rrrz0x1.b0580f98a7dbep-1z0x1.84129978f9c1ap-1z0x1.aeaa51052e978p-2z0x1.092178fb945a6p-2rrr rrtest_bug_27706sz+MersenneTwister_TestBasicOps.test_bug_27706cCs:Gdddt}z|j|Wnty4Yn0dS)Nc@seZdZddZdS)z;MersenneTwister_TestBasicOps.test_bug_31478..BadIntcSsdSrFr rr r r__abs__szCMersenneTwister_TestBasicOps.test_bug_31478..BadInt.__abs__N)r,r-r.rr r r rBadIntsr)rrrr@)rrr r rtest_bug_31478s  z+MersenneTwister_TestBasicOps.test_bug_31478csjjdddfddtdDgdjjdddfd dtdDgd jjd ddfd dtdDgd d}jj|ddfddtdDgddS)Nsnofarr0rcsg|]}jqSr rrrr rr*rz?MersenneTwister_TestBasicOps.test_bug_31482..r8rsrachelcsg|]}jqSr rrrr rr/rrrcsg|]}jqSr rrrr rr4rrs @`csg|]}jqSr rrrr rr:r)z0x1.52c2fde444d23p-1z0x1.875174f0daea4p-2z0x1.9e9b2c50e5cd2p-1z0x1.fa57768bd321cp-2r)rrr rrtest_bug_31482#s"z+MersenneTwister_TestBasicOps.test_bug_31482cCs|t|jjddS)N)r0NN)r?rdrr&rr r rtest_setstate_first_arg>sz4MersenneTwister_TestBasicOps.test_setstate_first_argcCsr|j}|t|jjd|t|jjd|t|jjddddf|t|jjdddddf|ttf*|jdddd dfWdn1s0Y|ttf*|jdddd dfWdn1s0Y|jd }|j|||jd ||jd }t |}t d |d<dd|D}|t|jjd|dfdS)N)r7NN)r7rNNr7)r4q)rip)r0)r)r1rbr0nanr1css|]}t|VqdSrF)r)rrr r rr\rzHMersenneTwister_TestBasicOps.test_setstate_middle_arg..) rr r?r@r&rd OverflowErrorrr'r=float)rZ start_stateZbits100Z state_valuesr)r r rtest_setstate_middle_argAs"  88   z5MersenneTwister_TestBasicOps.test_setstate_middle_argcCsNgd}|jd|ddd}t||D]\}}|j||ddq0dS)N) g>FdV?gwR1ۉ?gQ"?g~5?gmb?gYKbX?gH,r̊?gV8?gOֶ?g4Ԗ?#q`&'R)places)rrrrPassertAlmostEqual)rrlactualr4er r rtest_referenceImplementation_s  z9MersenneTwister_TestBasicOps.test_referenceImplementationcCs`ddlm}gd}|jd|ddd}t||D]\}}|t||d|qd}|j|dS)Nr0i8r)rrr r rtest_long_seeds z+MersenneTwister_TestBasicOps.test_long_seedcCs@d}d}tdD]}|t|j|O}q|||ddSrrrr r rrs  z3MersenneTwister_TestBasicOps.test_53_bits_per_floatcCs`dd}d}tdD]6}|j|}|d|ko:|kn||O}q|||ddSrrrr r rrs   z)MersenneTwister_TestBasicOps.test_bigrandcCsddD]Z}|jd|d}|jd|}||kr6q|||j||koV|knqdSrrrr r rrs z0MersenneTwister_TestBasicOps.test_bigrand_rangescsBdD]8\tttfddtdDqdS)Nrcsg|]}jqSr rrrr rrrzAMersenneTwister_TestBasicOps.test_rangelimits..rbrrr rrrs z-MersenneTwister_TestBasicOps.test_rangelimitscs.t|jd||jdddS)NrbS!m.vFX O)superrrrr'rr __class__r rrs   z-MersenneTwister_TestBasicOps.test_getrandbitscCs(|jd||jddddS)Nrr7cr)rrr'rrr r rtest_randrange_uses_getrandbitss z}|d}|d||d}|||||d|d||d7}|d||d}||||dg|d||kod|dkn||d?8}|d||d}||||d||kod|dknq dSrrrr r rrs  *  z1MersenneTwister_TestBasicOps.test_randbelow_logiccCsdtj>}t0tdt|jj|d|dWdn1sH0Y|jjd|d|jjd|d}||dd}d}||||}t j j tj d@}||||g|_|jj||d||jd Wdn1s0YdS) Nr0ignore)maxsizeirr{Gz?rr7)rBPFwarningscatch_warnings simplefilter UserWarningr_randbelow_without_getrandbitsr'rXrYrr9rrHZ call_count)rr"rrepsilonlimit random_mockr r r"test_randbelow_without_getrandbitss    $ z?MersenneTwister_TestBasicOps.test_randbelow_without_getrandbitscCsRd}d}d}|j|||}|||ko2|kn||||ddS)NlJ)r2i8r)rrrSr')rrrsteprr r rtest_randrange_bug_1590891 s z7MersenneTwister_TestBasicOps.test_randrange_bug_1590891c CsB|jj}d}|jd|jjt|dd}|jd|jjt|dg|dd}||||jd|jjt|td|ddd}|||gd}gd}gd }d gd d gd d gd} |jd|jj| dd}|jd|jj||dd}||||jd|jj||dd}|||dS)Ni_rjrwr0r)RedBlackGreen)r4r7)r4$&r1r4r2r3r7i߉)rrrrr') rrrr4rrrerrZexpanded_populationr r rtest_choices_algorithmss,          z4MersenneTwister_TestBasicOps.test_choices_algorithmscstd}dj|jdj|jddjdj|dfddtdDj|d dd}dfd d tdD|j|dfd d tdtdD}dfd d tdD|j|dfdd tdtdD}dfdd tdD|dS)Nr0s3f6oerrcsg|]}jdqS)r8rrr_rr rrErz?MersenneTwister_TestBasicOps.test_randbytes..r8r6c3s|]}jdVqdS)r0Nr9r:rr rrLrz>MersenneTwister_TestBasicOps.test_randbytes..c3s"|]}|d|dVqdS)r7r8Nr rrlr rrPsc3s|]}jdVqdS)r7Nr9r:rr rrRrc3s"|]}|d|dVqdS)r0r8Nr rr<r rrVsc3s|]}jdVqdS)r6Nr9r:rr rrXr) rrrrr'rjoinrrQ)rrZ expected1Z expected2Z expected3r)rlrrr3s>       z+MersenneTwister_TestBasicOps.test_randbytescCsZd}t}|j|||tdD]*}||j|||d|dq*dS)NlOS rlittle) rrrrrr'rrto_bytes)rrZgen2rr r rtest_randbytes_getrandbits[s   z7MersenneTwister_TestBasicOps.test_randbytes_getrandbitsc Cs|jj}|jj}gd}gd}d}|d||||d}|dddt||D}|t|t||||d}|||d } gd }|dd || |d d}d d dt| |D}|dd ||d d}|||dS)N)ryrzr{r|r}r)rrrnrMrir0rr0rcSs"g|]\}}t|D]}|qqSr r)rrcountrr r rrrrzOMersenneTwister_TestBasicOps.test_sample_counts_equivalence..rwZ abcdefghi) rMr>rrrir8r6r7rrvcSs"g|]\}}t|D]}|qqSr r)rZletterrBrr r rr{r)rrcrrPr'rQrr=) rrcrrrrfs1Zexpandeds2rkr r rtest_sample_counts_equivalencees(  z;MersenneTwister_TestBasicOps.test_sample_counts_equivalence)r,r-r.rrrrrrrrr rrrrrrrrr rrrr-r/r7rrArF __classcell__r r rrrs.      &! ( r@rVc Cs|dkr$ttt|td|S|d}||dt||tdd|d|dd|dd |d d |d d |dd|dd|dg S)NrVrg@g ?g ö)$@g&Ԏg ta@rHgQf@g>@~)@g@gA~@g~\>g@giE>g@)rrgammarr)zZsqrt2piazr r rrKs       rKc@seZdZddZddZddZddZd d Zd d Ze j d ddZ e j d ddZ e j d ddZe j d ddZe j dddZdS)TestDistributionscstfddtdDdgd}|ddj_dd|ddj_d|ddj_d|ddj_dd|ddj_dd|ddj_ dd|ddj_ dd|ddj_ dd|ddj_dd|ddj_ d d|ddj_ dd|ddj_ d d|ddj_ d d |ddj_ddd dS) Ncsg|] }qSr rrgr rrrz5TestDistributions.test_zeroinputs..r[rrir0rMrr#gi@rIUUUUUU?)rrrrkuniform paretovariate expovariateweibullvariatevonmisesvariate normalvariaterlognormvariate gammavariate betavariate triangular)rrr rOrtest_zeroinputss  z!TestDistributions.test_zeroinputsc s`t}dfddtdD}|jdddf|jdd d f|jd d d f|jd ttddf|jdddf|j dt dt dt ddffD]\}}}}|ddj |_g}tt |D]*}z| ||WqtyYq0qd} } |D]} | | 7} | | |d7} qt ||j| |dd|j|fd|j| d|dd|j|fdqdS)Nrcsg|]}|tqSr )r rr(r rrrz2TestDistributions.test_avg_std..r0)r$@g@g@)rrrQgqq?g <ݚ?)g?gUUUUUU?)gGz?rr7r6)rJg?g?)rrIgUUUUUU?g?rz%s%r)rmsg)rrrrRr[rTrVrrSrUrKrkrQappendr_rr,) rrPrvariateargsmuZ sigmasqrdyrrDrErr r]r test_avg_stds@        zTestDistributions.test_avg_stdcCst}d}|jddf|jddf|jddf|jtdfdf|jdtdfdf|jddf|jd d f|jtd dfdf|j ddf|j tdfd f|j dtdfdf|j d dff D](\}}}t |D]}| |||qqdS) Nrb)r^r^r^)r^r^r^infrrI)r^r)rrr)rr^)rrrRr[rTr rVrrXrWrSrUrr')rrPr(rarbrlrr r r test_constants"        zTestDistributions.test_constantc Cslt}d}dD]V}dD]L}t|D]>}|||}|jd|koLtjknd|||dq$qqdS)Nrb)rrg@g@)rffffff@g@@rzCvonmisesvariate({}, {}) produced a result {} out of range [0, 2*pi])r_)rrrrVrSTWOPIformat)rrPr(rckappar;rcr r rtest_von_mises_ranges  z&TestDistributions.test_von_mises_rangecCstddtdddS)Nrg4&k Cg}Ô%IT)rrVrr r rtest_von_mises_large_kappas z,TestDistributions.test_von_mises_large_kappacCsL|ttjdd|ttjdd|ttjdd|ttjdddS)Nr1r6rr7r0r)r?rdrrYrr r rtest_gammavariate_errorssz*TestDistributions.test_gammavariate_errorszrandom.Random.randomcCs&gd|_tdd}||ddS)N):0yE>rVrg?rhg= ףp=@rHrrYrrr,returned_valuer r r#test_gammavariate_alpha_greater_ones  z5TestDistributions.test_gammavariate_alpha_greater_onecCs$dg|_tdd}||ddS)Ng?rr3g/qr ?rprqr r r!test_gammavariate_alpha_equal_ones z3TestDistributions.test_gammavariate_alpha_equal_onecCs8d}ddg|_td|}td|}|||dS)Nr3ror)rHrrYrTr)rr,betaZgammavariate_returned_valueZexpovariate_returned_valuer r r4test_gammavariate_alpha_equal_one_equals_expovariates   zFTestDistributions.test_gammavariate_alpha_equal_one_equals_expovariatec Cstj}tj}tj}d}d}|||}d}d} d} | | || | g|_t||} || dd} d} | | || | g|_t||} || d dS) Ngffffff?g333333?r#gX Y?g=,6V?g.3333?gl%t?gK, 9?g7SvT?)r_e_exprrHrYr) rr,rwrxralpharurr*Zr1Zr2rrr r r,test_gammavariate_alpha_between_zero_and_ones"#    z>TestDistributions.test_gammavariate_alpha_between_zero_and_onezrandom.Random.gammavariatecCsd|_|dtdddS)Nrrr)rWr'rrZ)rZgammavariate_mockr r rtest_betavariate_return_zero`sz.TestDistributions.test_betavariate_return_zeroN)r,r-r.r\rergrlrmrnrXrYrrsrtrvrzr{r r r rrNs       E rNc@seZdZddZddZdS)TestRandomSubclassingcCs Gdddtj}|dddS)Nc@seZdZdddZdS)zHTestRandomSubclassing.test_random_subclass_with_kwargs..SubclassNcSstj|dSrF)rr__init__)rnewargr r rr}lszQTestRandomSubclassing.test_random_subclass_with_kwargs..Subclass.__init__)N)r,r-r.r}r r r rSubclassksrr0)r~)rr)rrr r r test_random_subclass_with_kwargsisz6TestRandomSubclassing.test_random_subclass_with_kwargsc sGfdddtj}t|d|dhGfdddtj}t|d|dhGfdd d |}t|d|d hGfd d d |}t|d|d hGfddd}Gfddd}Gddd|tj}t|d|dhGddd|tj}t|d|dhGddd||tj} t| d|dhGddd||tj} t| d|dhdS)Ncs$eZdZfddZfddZdS)zKTestRandomSubclassing.test_subclasses_overriding_methods..SubClass1csdtj|S)NzSubClass1.randomaddrrrZcalledr rrys zRTestRandomSubclassing.test_subclasses_overriding_methods..SubClass1.randomcsdtj||S)NSubClass1.getrandbitsrrrrrrr rr}s zWTestRandomSubclassing.test_subclasses_overriding_methods..SubClass1.getrandbitsN)r,r-r.rrr rr r SubClass1xs rrrcseZdZfddZdS)zKTestRandomSubclassing.test_subclasses_overriding_methods..SubClass2csdtj|S)NSubClass2.randomrrrr rrs zRTestRandomSubclassing.test_subclasses_overriding_methods..SubClass2.randomNr,r-r.rr rr r SubClass2srrcseZdZfddZdS)zKTestRandomSubclassing.test_subclasses_overriding_methods..SubClass3csdtj||S)NSubClass3.getrandbitsrrrr rrs zWTestRandomSubclassing.test_subclasses_overriding_methods..SubClass3.getrandbitsNr,r-r.rr rr r SubClass3srrcseZdZfddZdS)zKTestRandomSubclassing.test_subclasses_overriding_methods..SubClass4csdtj|S)NSubClass4.randomrrrr rrs zRTestRandomSubclassing.test_subclasses_overriding_methods..SubClass4.randomNrr rr r SubClass4srrcseZdZfddZdS)zHTestRandomSubclassing.test_subclasses_overriding_methods..Mixin1csdtj|S)N Mixin1.randomrrrr rrs zOTestRandomSubclassing.test_subclasses_overriding_methods..Mixin1.randomNrr rr rMixin1srcseZdZfddZdS)zHTestRandomSubclassing.test_subclasses_overriding_methods..Mixin2csdtj||S)NMixin2.getrandbitsrrrr rrs zTTestRandomSubclassing.test_subclasses_overriding_methods..Mixin2.getrandbitsNrr rr rMixin2src@s eZdZdS)zKTestRandomSubclassing.test_subclasses_overriding_methods..SubClass5Nr,r-r.r r r r SubClass5srrc@s eZdZdS)zKTestRandomSubclassing.test_subclasses_overriding_methods..SubClass6Nrr r r r SubClass6srrc@s eZdZdS)zKTestRandomSubclassing.test_subclasses_overriding_methods..SubClass7Nrr r r r SubClass7src@s eZdZdS)zKTestRandomSubclassing.test_subclasses_overriding_methods..SubClass8Nrr r r r SubClass8sr)rrrRrr') rrrrrrrrrrrr rr"test_subclasses_overriding_methodspsD        z8TestRandomSubclassing.test_subclasses_overriding_methodsN)r,r-r.rrr r r rr|hsr|c@s6eZdZddZddZeeeddddZ d S) TestModulecCs<|tjd|tjd|tjd|tjddS)Ng3?r?g.DT!@g9B.?gtY@)rr NV_MAGICCONSTriLOG4 SG_MAGICCONSTrr r rtestMagicConstantsszTestModule.testMagicConstantscCs |ttjtttkdSrF)rSrRr__all__dirrr r r test__all__szTestModule.test__all__forkzfork() requiredc Cst\}}t}|dkr|zPtd}t|d}|t|Wdn1sV0YWtdqtd0ndt |td}t|d}t | }Wdn1s0Y| ||t j|dddS)Nrrwr)exitcode)ospiperrrrwritero_exitcloseevalreadr#r Z wait_process)rrrpidvalrZ child_valr r rtest_after_forks   .   * zTestModule.test_after_forkN) r,r-r.rrrX skipUnlesshasattrrrr r r rrsr__main__)%rXZ unittest.mockrrr!rr%Z test.supportr functoolsrrrrrrrrr Z fractionsr collectionsr r rrGZSystemRandom_availablerZTestCaserrrKrNr|rr,mainr r r rsD        a V]#