@Test public void testNextDouble() { RandomTester tester = new SimpleRandomTester(); MersenneTwister r = new MersenneTwister(Rand.nextLong()); for (int i = 0; i < 100000; ++i) { double d = r.nextDouble(); assertTrue("Random value out of range", 0 <= d && d < 1); tester.addSample(d); } assertTrue("Samples are not random", tester.hasRandomSamples()); }
public Integer roll() { int ret = 0; for (int i = 0; i < getnThrows(); i++) { ret += random.next(1, getnFaces()); } if (hasModifier()) { ret = getModifierOperator().doOperation(ret, getModifier()); } return ret; }
/** TODO: check the number of digits after the decimal point.... should it be more? */ @Test public void sequence() { MersenneTwister r = new MersenneTwister(5489L); Assert.assertEquals(0.81472369, r.nextDouble(), 0.00000001); Assert.assertEquals(0.13547700, r.nextDouble(), 0.00000001); Assert.assertEquals(0.90579193, r.nextDouble(), 0.00000001); Assert.assertEquals(0.83500858, r.nextDouble(), 0.00000001); Assert.assertEquals(0.12698681, r.nextDouble(), 0.00000001); Assert.assertEquals(0.96886777, r.nextDouble(), 0.00000001); Assert.assertEquals(0.91337586, r.nextDouble(), 0.00000001); Assert.assertEquals(0.22103404, r.nextDouble(), 0.00000001); Assert.assertEquals(0.63235925, r.nextDouble(), 0.00000001); Assert.assertEquals(0.30816705, r.nextDouble(), 0.00000001); Assert.assertEquals(0.09754040, r.nextDouble(), 0.00000001); Assert.assertEquals(0.54722060, r.nextDouble(), 0.00000001); Assert.assertEquals(0.27849822, r.nextDouble(), 0.00000001); }