/** Test that two (Pseudo)Random Number Generators are equil by * drawing a series of random numbers and comparing those. * * @param rng1 first random number generator * @param rng2 second random number generator */ private void assertEqualRandomNumberGenerators(final Random rng1, final Random rng2) { for (int i = 0; i < 10; i++) { assertEquals("different element at position " + i, rng1.nextDouble(), rng2.nextDouble(), EPSILON); } } }
/** * Tests that resetting the RandomObject creates the same random numbers again. */ public void testReset() { MatsimRandom.reset(); int value1 = MatsimRandom.getRandom().nextInt(); MatsimRandom.reset(); int value2 = MatsimRandom.getRandom().nextInt(); assertEquals(value1, value2); }
/** * Tests that the same number of random numbers is generated if a custom seed * is used, and that these numbers are different with different seeds. */ public void testSeedReset() { final long seed1 = 123L; final long seed2 = 234L; MatsimRandom.reset(seed1); double value1 = MatsimRandom.getRandom().nextDouble(); MatsimRandom.reset(seed1); double value2 = MatsimRandom.getRandom().nextDouble(); assertEquals(value1, value2, EPSILON); MatsimRandom.reset(seed2); double value3 = MatsimRandom.getRandom().nextInt(); assertTrue(Math.abs(value1 - value3) > EPSILON); }