mò %U²Ic @sEdkZdkZdkZdkZdkZdklZlZlZl Z dk l Z dei fd„ƒYZ de fd„ƒYZde fd„ƒYZd e fd „ƒYZd d d dddd ddf Zedd„Zdei fd„ƒYZdei fd„ƒYZdd„ZedjoedeƒndS(N(slogsexpssqrtspi(s test_supportt TestBasicOpscBsktZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d „Z d „Z d „Z RS( NcCs.g}t|ƒD]}||iiƒq~S(s0Helper function to make a list of random numbersN(t_[1]txrangetntitselftgentrandom(RRRR((t-/data/zmath/lib/python2.4/test/test_random.pyt randomlistscCsY|iiƒ|iiƒ}tidƒ|iiƒ|iiƒ}|i||ƒdS(Nf0.10000000000000001( RRtseedtgetstatetstate1ttimetsleeptstate2tassertNotEqual(RRR ((Rt test_autoseeds    cCs^d}|iiƒ|iiƒ}|i|ƒ}|ii|ƒ|i ||i|ƒƒdS(Niè( tNRRR R tstateR trandseqtsetstatet assertEqual(RRRR((Rttest_saverestores  cCsÖxXddddddddddd d dd d td ƒg D]}|ii|ƒqAWx<td ƒtddƒgD]}|it |ii|ƒqwW|it |iiddƒ|it t |iƒgƒdS(Nililiÿÿÿÿlÿÿÿÿi if3.1400000000000001x0.02.0tatabcitonei( tNonettupletargRRR trangetdictt assertRaisest TypeErrorttype(RR((Rt test_seedargs$sAcCsâ|iiƒ|iiƒ}|iidƒ|iiƒ}|i||ƒ|iidƒ|iiƒ}|i||ƒ|i t |iiƒ|i t |iidƒ|i t |iidƒ|i t |iiddƒdS(Nidtickf2.2999999999999998ii( RRR R R t jumpaheadRRtstate3R R!(RR&RR ((Rttest_jumpahead-s cCs¶d}t|ƒ}x~t|dƒD]l}|ii||ƒ}|it |ƒ|ƒt |ƒ}|it |ƒ|ƒ|i |t |ƒjƒq#W|i|iigdƒgƒdS(Nidii( RRt populationtkRRtsampletsRtlentsettuniqt failUnless(RRR+R.R)R(((Rt test_sample<s  c Cs´d}t|ƒ}d}d„}xŒt|ƒD]~}||ƒ|||ƒ}h}xUt|ƒD]=}d|t |i i||ƒƒR((Rtnsi(RRR*RtfromkeysRRRRtdR)tsamptxtassert_R"R2tsortR(RRRBRRDRCR)((Rttest_sample_on_dictscs2! cCsx–d D]Ž}|ii|ƒ|iiƒ}|iiddƒ}|ii|ƒ|iiƒ}|iiddƒ}|i ||ƒ|i ||ƒqWdS( Nii i{iÒi90i@âiñû i(ii i{iÒi90i@âiñû ( R RRRtx1tgaussty1tx2ty2R(RRHRKR RJRL((Rt test_gausswscCs’ti|iƒ}g}tdƒD]}||iiƒq#~}ti |ƒ}g}tdƒD]}||iƒqb~}|i ||ƒdS(Ni (tpickletdumpsRRRRRRRtorigseqtloadstnewgent restoredseqR(RRRRRRRSRP((Rt test_picklingˆs 0-( t__name__t __module__R RRR#R'R0R:R=RGRMRT(((RR s        tWichmannHill_TestBasicOpscBs8tZeiƒZd„Zd„Zd„Zd„ZRS(NcCs|it|iidƒdS(Ni(iNN(RR t ValueErrorRRR(R((Rttest_setstate_first_arg’scCs‹d}|iiƒ}|ii|ƒ|iiƒ}|ii|ƒx!t |ƒD]}|iiƒqQW|iiƒ}|i ||ƒdS(Niè( RRRR R+R%Rtr1RRRtr2R(RRZR[RRR+((Rttest_strong_jumpahead•s cCsx–d D]Ž}|ii|ƒ|iiƒ}|iiddƒ}|ii|ƒ|iiƒ}|iiddƒ}|i ||ƒ|i ||ƒqWdS( Nii i{iÒi90i@âiñû i(ii i{iÒi90i@âiñû ( R RRtwhseedRRHRIRJRKRLR(RRHRKR RJRL((Rttest_gauss_with_whseed¢scCsEti}tiddƒ|it|iiddƒ|ti(dS(NterrorsUnderlying randomii<( twarningstfilterst oldfilterstfilterwarningsRR t UserWarningRt randrange(RRb((Rt test_bigrand³s ( RURVRt WichmannHillRRYR\R^Rf(((RRWs    tSystemRandom_TestBasicOpscBs†tZeiƒZd„Zd„Zd„Zd„Zd„Z d„Z d„Z d„Z d „Z d „Zd „Zeed „ZRS( NcCs|iiƒdS(N(RRR (R((RR½scCs3|it|iiƒ|it|iidƒdS(N(RR tNotImplementedErrorRR RR(R((RRÁscCs|iidƒdS(Nid(RRR (R((RR#ÅscCs|iidƒdS(Nid(RRR%(R((RR'ÉscCs6d|i_|iidƒ|i|iidƒdS(Nid(RRRt gauss_nextR R(R((RRMÍs cCs|itti|iƒdS(N(RR RiRNROR(R((RRTÒscCs\dd}d}x1tdƒD]#}|t|iiƒ|ƒO}qW|i||dƒdS(Nii5iidi( tspantcumRRR2RRRR(RRkRRl((Rttest_53_bits_per_floatÕs   !cCsdd}d}xTtdƒD]F}|ii|ƒ}|id|jo |jnƒ||O}qW|i ||dƒdS(Niiôiidi( RkRlRRRRRetrRER(RRkRRnRl((RRfÝs  $c Cs¨x¡ddddddddd g D]~}|iid |ƒ}|iid |d ƒ}||jodSn|i||ii||ƒjo |jnƒq"WdS( Ni(iPi iÈiÓiúiwii&i(RRRRetstarttstopRE(RRRoRp((Rttest_bigrand_rangesès" c CsŸx˜ddd ddd fdddddfgD]a\}}|itt||ƒƒtg}tdƒD]}||i i ||ƒqn~ƒƒq6WdS(Niþÿÿÿiii<id(iþÿÿÿi( RoRpRRR-RRRRRRe(RRRpRRo((Rttest_rangelimitsðs6 cCs[xKtddƒD]:}|id|ii|ƒjod|jnƒqW|ii}x}dddddddd d d d d ddgD]K}d}x$tdƒD]}|||ƒO}q¤W|i |d|dƒq‹W|i t |iiƒ|i t |iiddƒ|i t |iidƒ|i t |iidƒ|i t |iidƒdS(Niièiiiiii i4i5i6iwii€iidiÿÿÿÿf10.1(RR)RRERt getrandbitstgetbitsRkRlRRR R!RX(RRtRkRRlR)((Rttest_genrandbitsõs 8 1 cCsQxJtddƒD]9}d|>}|d}|d||dƒƒ}|i||ƒ|i |d|djƒ||d7}|d||dƒƒ}|i |||dgjƒ|i d||jod|djnƒ||d?8}|d||dƒƒ}|i||ƒ|i d||jod|djnƒqWdS(Niièlf1.0000100000000001ii( RRRtnumbitsR2t_logR)RRRE(RRwR2RRRvR)((Rttest_randbelow_logic s  0(RURVRt SystemRandomRRRR#R'RMRTRmRfRqRrRutlogR2Rx(((RRhºs           tMersenneTwister_TestBasicOpscBs}tZeiƒZd„Zd„Zd„Zd„Zd„Z d„Z d„Z d„Z d „Z d „Zeed „ZRS( NcCs|it|iidƒdS(Ni(iNN(RR RXRRR(R((RRY"scCs|it|iidƒ|it|iidd dfƒ|it|iidd ddfƒ|it|iidd dd dfƒdS( NiiiRiqiip(iNN(iii(R(i(R(RR R!RRRRX(R((Rttest_setstate_middle_arg%s"&c Cs™ddddddddd d g }|iid d d >dd>dd>ƒ|idƒd}x3t||ƒD]"\}}|i ||ddƒqoWdS(Nf0.45839803073713259f0.86057815201978782f0.92848331726782152f0.35932681119782461f0.081823493762449573f0.14332226470169329f0.084297823823520024f0.53814864671831453f0.089215024911993401f0.78486196105372907l#qlGai lfi@lŸ$i`iÐiöÿÿÿtplacesi( R7RRR R tactualtzipRtetassertAlmostEqual(RRR~R7R€((Rttest_referenceImplementation/s $ ( c Cs¯dkl}dddddddd d d g }|iid d d>dd>dd>ƒ|idƒd}x<t||ƒD]+\}}|i t ||dƒƒ|ƒq|WdS(N(sldexpl#¤1É,ul¥w¤bl'Ül£JŠXíl¿uªak~[l@"p1ylsVë%bX$l‰E3EJl”V‚b‰lþa“oeklÆ4¦)[vÈl#qlGai lfi@lŸ$i`iÐiöÿÿÿi5( tmathtldexpR7RRR R R~RRR€Rtlong(RRR~R„R7R€((Rt$test_strong_reference_implementationNs $ ( cCs&ddd>d}|ii|ƒdS(Nli'ii(R RR(RR ((Rttest_long_seeddscCs\dd}d}x1tdƒD]#}|t|iiƒ|ƒO}qW|i||dƒdS(Nii5iidi( RkRlRRR2RRRR(RRkRRl((RRmms   !cCsdd}d}xTtdƒD]F}|ii|ƒ}|id|jo |jnƒ||O}qW|i ||dƒdS(Niiôiidi( RkRlRRRRReRnRER(RRkRRnRl((RRfus  $c Cs¨x¡ddddddddd g D]~}|iid |ƒ}|iid |d ƒ}||jodSn|i||ii||ƒjo |jnƒq"WdS( Ni(iPi iÈiÓiúiwii&i(RRRReRoRpRE(RRRoRp((RRq€s" c CsŸx˜ddd ddd fdddddfgD]a\}}|itt||ƒƒtg}tdƒD]}||i i ||ƒqn~ƒƒq6WdS(Niþÿÿÿiii<id(iþÿÿÿi( RoRpRRR-RRRRRRe(RRRpRRo((RRrˆs6 cCs‡|iidƒ|i|iidƒdƒxKtddƒD]:}|id|ii|ƒjod|jnƒq<W|ii}x}dddd d d d d d dddddgD]K}d}x$tdƒD]}|||ƒO}qÐW|i|d|dƒq·W|i t |iiƒ|i t |iidƒ|i t |iiddƒ|i t|iidƒ|i t|iidƒdS(Ni‡ÖidlS!mÿ.vFX Oiièiiiiii i4i5i6iwii€iRiÿÿÿÿ(RRR RRsRR)RERtRkRlRR R!RX(RRtRkRRlR)((RRus&8 1 cCsQxJtddƒD]9}d|>}|d}|d||dƒƒ}|i||ƒ|i |d|djƒ||d7}|d||dƒƒ}|i |||dgjƒ|i d||jod|djnƒ||d?8}|d||dƒƒ}|i||ƒ|i d||jod|djnƒqWdS(Niièlf1.0000100000000001ii( RRRRvR2RwR)RRRE(RRwR2RRRvR)((RRx¥s  0(RURVRtRandomRRYR|R‚R†R‡RmRfRqRrRuRzR2Rx(((RR{s        f0.99999999999951827f676.52036812188351f-1259.1392167222889f771.32342877576741f-176.61502914983859f12.50734324009056f0.1385710331296526f9.9349371139307475e-06f1.6594701874084621e-07icCs€|d8}|d}x3tdt|ƒƒD]}|||||7}q*W|d7}|||t||ƒtdt ƒ|S(Nf1.0iif0.5i( tztcoftsumRR,Rtgtexptsqrttpi(R‰RŠRŒRR‹((Rtgamma¾s   tTestDistributionscBstZd„Zd„ZRS(NcCsžtiƒ}g}tdƒD]}||iƒq~dgd}|i|_|iddƒ|i|_|i dƒ|i|_|i dƒ|i|_|i ddƒ|i|_|i ddƒ|i|_|i ddƒ|i|_|iddƒ|i|_|iddƒ|i|_|iddƒ|i|_|iddƒ|i|_|iddƒ|i|_|id d ƒdS( Ni2f0.0iii f1.0f0.01f200.0f3.0(RRˆRŒRRRRDR5tuniformt paretovariatet expovariatetweibullvariatet normalvariateRItlognormvariatetvonmisesvariatet gammavariatet betavariate(RRŒRRRD((Rttest_zeroinputsÇs 8c Csïtiƒ}d}g}td|ƒD]}||t|ƒq&~} x¢|i d dddddddf|i d dddddf|i d dddddddddf|i dt ddd ƒt ddd ƒt ddd ƒdfgD]ä\} }}}| i|_g} xGtt| ƒƒD]3}y| i| |ŒƒWq;tj oq;Xq;Wd } }x*| D]"} | | 7} || |d7}qƒWt| ƒ}|i| ||dƒ|i||d|dƒqWdS(Niˆif1.0f10.0ii f1.5f5.0f3.0i(f1.0f10.0(f1.5(f5.0(f1.0f3.0(RRˆRŒRRRRtfloatRDR’R”R“R•Rtvariatetargstmut sigmasqrdR5tyR,tappendt IndexErrorts1ts2R€RR(RRŸR RŒRRžRRR¥R¡RDRR¤R€((Rt test_avg_stdØs* 4½     (RURVR›R¦(((RR‘Æs t TestModulecBstZd„Zd„ZRS(NcCsP|itidƒ|itidƒ|itidƒ|itidƒdS(Nf1.71552776992141f6.2831853071800001f1.3862943611198899f2.5040773967762702(RRRt NV_MAGICCONSTtTWOPItLOG4t SG_MAGICCONST(R((RttestMagicConstantsõscCs,|ittiƒtttƒƒjƒdS(N(RR/R-Rt__all__tdir(R((Rt test__all__ûs(RURVR¬R¯(((RR§ôs cCsÊttttg}ytiƒiƒWntj onX|it ƒt i |Œdk }|o`t|dƒoPdgd}x7tt|ƒƒD]#}t i |Œ|iƒ||