/** * Get access to the main random generator used in the simulator. * @return the random generator of the simulator */ @Override public RandomGenerator getRandomGenerator() { return rand.get(RandomProvider.class).masterInstance(); }
@Override public void setRandomGenerator(RandomProvider provider) { final RandomGenerator rng = provider.masterInstance(); assertSame(model.masterRandomGenerator, rng); testUnmodifiable(rng); } });
/** * Test that requesting something from the {@link RandomProvider} after the * {@link RandomUser#setRandomGenerator(RandomProvider)} is complete results * in an {@link IllegalStateException}. */ @Test public void testTooLateUsage() { final List<RandomProvider> rp = new ArrayList<>(); model.register(new RandomUser() { @Override public void setRandomGenerator(RandomProvider provider) { rp.add(provider); } }); boolean fail = false; try { rp.get(0).masterInstance(); } catch (final IllegalStateException e) { fail = true; } assertTrue(fail); }
@Override public CentralModel build(DependencyProvider dependencyProvider) { final Clock clock = dependencyProvider.get(Clock.class); final PDPRoadModel rm = dependencyProvider.get(PDPRoadModel.class); final PDPModel pm = dependencyProvider.get(PDPModel.class); final RandomProvider rnd = dependencyProvider.get(RandomProvider.class); final Solver solver = getSolverSupplier().get(rnd.masterInstance().nextLong()); return new CentralModel(clock, rm, pm, solver); }
@Override public RtCentralModel build( DependencyProvider dependencyProvider) { final RandomProvider rnd = dependencyProvider.get(RandomProvider.class); final RealtimeSolver solver = getSolverSupplier() .get(rnd.masterInstance().nextLong()); final RtSimSolver s = dependencyProvider.get(RtSimSolverBuilder.class) .build(solver); final RealtimeClockController clock = dependencyProvider .get(RealtimeClockController.class); final PDPRoadModel rm = dependencyProvider.get(PDPRoadModel.class); final PDPModel pm = dependencyProvider.get(PDPModel.class); return new RtCentral.RtCentralModel(clock, s, rm, pm, getOptions()); }
fail = false; try { provider.masterInstance(); } catch (final IllegalStateException e) { fail = true;