#include"mersennetwister.hpp"#include"utilities.hpp"#include<ql/math/randomnumbers/mt19937uniformrng.hpp>usingnamespace QuantLib;usingnamespace boost::unit_test_framework;voidMersenneTwisterTest::testValues(){
BOOST_TEST_MESSAGE("Testing Mersenne twister...");// the following numbers are provided by MT authors in order// to check any actual implementation of MTstaticconstunsignedlong referenceLongValues[]={
1067595299UL,955945823UL,477289528UL,4107218783UL,4228976476UL,3344332714UL,3355579695UL,227628506UL,810200273UL,2591290167UL,2560260675UL,3242736208UL,646746669UL,1479517882UL,4245472273UL,1143372638UL,3863670494UL,3221021970UL,1773610557UL,1138697238UL,1421897700UL,1269916527UL,2859934041UL,1764463362UL,3874892047UL,3965319921UL,72549643UL,2383988930UL,2600218693UL,3237492380UL,2792901476UL,725331109UL,605841842UL,271258942UL,715137098UL,3297999536UL,1322965544UL,4229579109UL,1395091102UL,3735697720UL,2101727825UL,3730287744UL,2950434330UL,1661921839UL,2895579582UL,2370511479UL,1004092106UL,2247096681UL,2111242379UL,3237345263UL,4082424759UL,219785033UL,2454039889UL,3709582971UL,835606218UL,2411949883UL,2735205030UL,756421180UL,2175209704UL,1873865952UL,2762534237UL,4161807854UL,3351099340UL,181129879UL,3269891896UL,776029799UL,2218161979UL,3001745796UL,1866825872UL,2133627728UL,34862734UL,1191934573UL,3102311354UL,2916517763UL,1012402762UL,2184831317UL,4257399449UL,2899497138UL,3818095062UL,3030756734UL,1282161629UL,420003642UL,2326421477UL,2741455717UL,1278020671UL,3744179621UL,271777016UL,2626330018UL,2560563991UL,3055977700UL,4233527566UL,1228397661UL,3595579322UL,1077915006UL,2395931898UL,1851927286UL,3013683506UL,1999971931UL,3006888962UL,1049781534UL,1488758959UL,3491776230UL,104418065UL,2448267297UL,3075614115UL,3872332600UL,891912190UL,3936547759UL,2269180963UL,2633455084UL,1047636807UL,2604612377UL,2709305729UL,1952216715UL,207593580UL,2849898034UL,670771757UL,2210471108UL,467711165UL,263046873UL,3569667915UL,1042291111UL,3863517079UL,1464270005UL,2758321352UL,3790799816UL,2301278724UL,3106281430UL,7974801UL,2792461636UL,555991332UL,621766759UL,1322453093UL,853629228UL,686962251UL,1455120532UL,957753161UL,1802033300UL,1021534190UL,3486047311UL,1902128914UL,3701138056UL,4176424663UL,1795608698UL,560858864UL,3737752754UL,3141170998UL,1553553385UL,3367807274UL,711546358UL,2475125503UL,262969859UL,251416325UL,2980076994UL,1806565895UL,969527843UL,3529327173UL,2736343040UL,2987196734UL,1649016367UL,2206175811UL,3048174801UL,3662503553UL,3138851612UL,2660143804UL,1663017612UL,1816683231UL,411916003UL,3887461314UL,2347044079UL,1015311755UL,1203592432UL,2170947766UL,2569420716UL,813872093UL,1105387678UL,1431142475UL,220570551UL,4243632715UL,4179591855UL,2607469131UL,3090613241UL,282341803UL,1734241730UL,1391822177UL,1001254810UL,827927915UL,1886687171UL,3935097347UL,2631788714UL,3905163266UL,110554195UL,2447955646UL,3717202975UL,3304793075UL,3739614479UL,3059127468UL,953919171UL,2590123714UL,1132511021UL,3795593679UL,2788030429UL,982155079UL,3472349556UL,859942552UL,2681007391UL,2299624053UL,647443547UL,233600422UL,608168955UL,3689327453UL,1849778220UL,1608438222UL,3968158357UL,2692977776UL,2851872572UL,246750393UL,3582818628UL,3329652309UL,4036366910UL,1012970930UL,950780808UL,3959768744UL,2538550045UL,191422718UL,2658142375UL,3276369011UL,2927737484UL,1234200027UL,1920815603UL,3536074689UL,1535612501UL,2184142071UL,3276955054UL,428488088UL,2378411984UL,4059769550UL,3913744741UL,2732139246UL,64369859UL,3755670074UL,842839565UL,2819894466UL,2414718973UL,1010060670UL,1839715346UL,2410311136UL,152774329UL,3485009480UL,4102101512UL,2852724304UL,879944024UL,1785007662UL,2748284463UL,1354768064UL,3267784736UL,2269127717UL,3001240761UL,3179796763UL,895723219UL,865924942UL,4291570937UL,89355264UL,1471026971UL,4114180745UL,3201939751UL,2867476999UL,2460866060UL,3603874571UL,2238880432UL,3308416168UL,2072246611UL,2755653839UL,3773737248UL,1709066580UL,4282731467UL,2746170170UL,2832568330UL,433439009UL,3175778732UL,26248366UL,2551382801UL,183214346UL,3893339516UL,1928168445UL,1337157619UL,3429096554UL,3275170900UL,1782047316UL,4264403756UL,1876594403UL,4289659572UL,3223834894UL,1728705513UL,4068244734UL,2867840287UL,1147798696UL,302879820UL,1730407747UL,1923824407UL,1180597908UL,1569786639UL,198796327UL,560793173UL,2107345620UL,2705990316UL,3448772106UL,3678374155UL,758635715UL,884524671UL,486356516UL,1774865603UL,3881226226UL,2635213607UL,1181121587UL,1508809820UL,3178988241UL,1594193633UL,1235154121UL,326117244UL,2304031425UL,937054774UL,2687415945UL,3192389340UL,2003740439UL,1823766188UL,2759543402UL,10067710UL,1533252662UL,4132494984UL,82378136UL,420615890UL,3467563163UL,541562091UL,3535949864UL,2277319197UL,3330822853UL,3215654174UL,4113831979UL,4204996991UL,2162248333UL,3255093522UL,2219088909UL,2978279037UL,255818579UL,2859348628UL,3097280311UL,2569721123UL,1861951120UL,2907080079UL,2719467166UL,998319094UL,2521935127UL,2404125338UL,259456032UL,2086860995UL,1839848496UL,1893547357UL,2527997525UL,1489393124UL,2860855349UL,76448234UL,2264934035UL,744914583UL,2586791259UL,1385380501UL,66529922UL,1819103258UL,1899300332UL,2098173828UL,1793831094UL,276463159UL,360132945UL,4178212058UL,595015228UL,177071838UL,2800080290UL,1573557746UL,1548998935UL,378454223UL,1460534296UL,1116274283UL,3112385063UL,3709761796UL,827999348UL,3580042847UL,1913901014UL,614021289UL,4278528023UL,1905177404UL,45407939UL,3298183234UL,1184848810UL,3644926330UL,3923635459UL,1627046213UL,3677876759UL,969772772UL,1160524753UL,1522441192UL,452369933UL,1527502551UL,832490847UL,