%description: Check that rng seeding works properly. IMPORTANT: FOR (b),(c),... VERSIONS OF THIS TEST, take the (a), change the runs-to-execute parameter -- result should be the same, only in different order. %activity: for (int i=0; igetNumRNGs(); i++) { // note: the intRand() calls cannot be put into the EV<< statement directly, because // different compilers evaluate them in different order (see c++-evalorder_1.test) unsigned long r1 = getRNG(i)->intRand(); unsigned long r2 = getRNG(i)->intRand(); EV << "ev.rng-" << i << ": "; EV << r2 << " " << r1 << ", drawn " << getRNG(i)->getNumbersDrawn() << "\n"; } %inifile: test.ini [General] network = Test cmdenv-express-mode = false num-rngs = 3 repeat = 3 seed-0-mt = ${873,793,434!repetition} seed-1-mt = ${885,717,467!repetition} seed-2-mt = ${848,745,497!repetition} # Runs occurring more than once should get the same seeds every time. # Also, Run 2 and Run 4 must have the same seeds because they both use [General]. cmdenv-runs-to-execute = 2,1,1,0 %contains-regex: stdout .*General, run #2.* ev.rng-0: 1485903282 1518241553, drawn 2 ev.rng-1: 2355297642 3233577405, drawn 2 ev.rng-2: 762090162 3944582764, drawn 2 .*General, run #1.* ev.rng-0: 1773256507 3374371453, drawn 2 ev.rng-1: 345413299 2799562883, drawn 2 ev.rng-2: 227844297 4101779991, drawn 2 .*General, run #1.* ev.rng-0: 1773256507 3374371453, drawn 2 ev.rng-1: 345413299 2799562883, drawn 2 ev.rng-2: 227844297 4101779991, drawn 2 .*General, run #0.* ev.rng-0: 2254393713 1261982705, drawn 2 ev.rng-1: 1858543364 225661242, drawn 2 ev.rng-2: 741472848 1938224766, drawn 2