@Override public ImmutableSet<ModelBuilder<?, ?>> getModelBuilders() { return ImmutableSet.<ModelBuilder<?, ?>>builder() .add( TimeModel.builder() .withTickLength(1L) .withTimeUnit(NonSI.MINUTE)) .add( RoadModelBuilders.plane() .withMinPoint(getMin()) .withMaxPoint(getMax()) .withDistanceUnit(SI.KILOMETER) .withMaxSpeed(MAX_SPEED) .withSpeedUnit( SI.KILOMETRE.divide(NonSI.MINUTE).asType(Velocity.class))) .add( DefaultPDPModel.builder() .withTimeWindowPolicy(TimeWindowPolicies.TARDY_ALLOWED)) .add( StatsTracker.builder()) .build(); }
@Override public StatisticsDTO collectResults(Simulator sim, SimArgs args) { final StatisticsDTO stats = sim.getModelProvider().getModel(StatsTracker.class).getStatistics(); final boolean isValidResult = objectiveFunction.isValidResult(stats); // if we are going to include failures anyway, we shouldn't throw an // exception if (failureStrategy == FailureStrategy.INCLUDE) { return stats; } checkState(isValidResult, "The simulation did not result in a valid result: %s, SimArgs: %s.", stats, args); return stats; }
@Override public StatsTracker build(DependencyProvider dependencyProvider) { final ScenarioController ctrl = dependencyProvider.get(ScenarioController.class); final Clock clck = dependencyProvider.get(Clock.class); final RoadModel rm = dependencyProvider.get(RoadModel.class); final PDPModel pm = dependencyProvider.get(PDPModel.class); return new StatsTracker(ctrl, clck, rm, pm); } }
.addModel(StatsTracker.builder()) .addModel(View.builder().withAutoPlay() .with(PlaneRoadModelRenderer.builder()) .getStatistics());
.addModel(StatsTracker.builder()) .addModel(View.builder().withAutoPlay() .with(PlaneRoadModelRenderer.builder()) .getStatistics());
.withTimeWindowPolicy(TimeWindowPolicies.TARDY_ALLOWED)) .add( StatsTracker.builder()) .build();
@Override public StatisticsDTO collectResults(Simulator sim, SimArgs args) { final StatisticsDTO stats = sim.getModelProvider().getModel(StatsTracker.class).getStatistics(); final boolean isValidResult = objectiveFunction.isValidResult(stats); // if we are going to include failures anyway, we shouldn't throw an // exception if (failureStrategy == FailureStrategy.INCLUDE) { return stats; } checkState(isValidResult, "The simulation did not result in a valid result: %s, SimArgs: %s.", stats, args); return stats; }
@Override public StatsTracker build(DependencyProvider dependencyProvider) { final ScenarioController ctrl = dependencyProvider.get(ScenarioController.class); final Clock clck = dependencyProvider.get(Clock.class); final RoadModel rm = dependencyProvider.get(RoadModel.class); final PDPModel pm = dependencyProvider.get(PDPModel.class); return new StatsTracker(ctrl, clck, rm, pm); } }
simBuilder.addModel(StatsTracker.builder());
sim.start(); return sim.getModelProvider().getModel(StatsTracker.class).getStatistics();
simBuilder.addModel(StatsTracker.builder());
/** * Starts the JPPF driver. */ @BeforeClass public static void setUp() { JPPFConfiguration.getProperties().setBoolean("jppf.local.node.enabled", true); JPPFDriver.main(new String[] {"noLauncher"}); driver = JPPFDriver.getInstance(); scenario = ScenarioTestUtil.createRandomScenario(123L, StatsTracker.builder()); }
.addModel(StatsTracker.builder()) .build())
.addModel(StatsTracker.builder()) .build())
/** * Tests default processor. */ @Test public void testDefaultPostProcessor() { final Scenario scenario = ScenarioTestUtil.createRandomScenario(123L, StatsTracker.builder()); final Experiment.Builder builder = Experiment .builder() .addScenario(scenario) .addConfiguration(ExperimentTestUtil.testConfig("test")) .withRandomSeed(123); final ExperimentResults er = builder.perform(); assertThat(er.getResults().asList().get(0).getResultObject()) .isInstanceOf(String.class); assertThat(er.getResults().asList().get(0).getResultObject()) .isEqualTo("simulation duration: 10801000"); }
/** * Test correct handling of failure during simulation. */ @Test public void testDefaultPostProcessorFailure() { final Scenario scenario = ScenarioTestUtil.createRandomScenario(123L, StatsTracker.builder(), FailureModel.builder()); final Experiment.Builder builder = Experiment.builder() .addScenario(scenario) .addConfiguration(ExperimentTestUtil.testConfig("test")) .withThreads(1) .repeat(3) .withRandomSeed(123); boolean fail = false; try { builder.perform(); } catch (final AbortExperimentException e) { assertThat(e.getCause().getMessage()).contains("FailureModel"); fail = true; } assertThat(fail).isTrue(); }
StatsTracker.builder(), cmb);
@Test public void testRetryPostProcessor() { final Scenario scenario = ScenarioTestUtil.createRandomScenario(123L, StatsTracker.builder()); final Experiment.Builder builder = Experiment.builder() .addScenario(scenario) .addConfiguration(ExperimentTestUtil.testConfig("test")) .withThreads(1) .usePostProcessor(ExperimentTestUtil.retryOncePostProcessor()) .repeat(3) .withRandomSeed(123); builder.perform(); }
@Test public void testCustomPostProcessor() { TestUtil.testEnum(Experiment.Computers.class); final Scenario scenario = ScenarioTestUtil.createRandomScenario(123L, StatsTracker.builder()); final Experiment.Builder builder = Experiment.builder() .addScenario(scenario) .addConfiguration(ExperimentTestUtil.testConfig("test")) .usePostProcessor(ExperimentTestUtil.testPostProcessor()) .addResultListener(new CommandLineProgress(System.out)) .withRandomSeed(123); final ExperimentResults er = builder.perform(); assertEquals(123, er.getMasterSeed()); assertEquals(123, er.getResults().asList().get(0).getSimArgs().getRandomSeed()); @SuppressWarnings("unchecked") final List<Point> positions = (List<Point>) er.getResults().asList().get(0).getResultObject(); assertEquals(10, positions.size()); }
static Simulator.Builder init( TimedEventHandler<AddVehicleEvent> vehicleHandler, Iterable<? extends TimedEvent> events) { final Scenario scenario = Scenario.builder() .addEvent(AddDepotEvent.create(-1, new Point(5, 5))) .addEvent(AddVehicleEvent.create(-1, VehicleDTO.builder().build())) .addEvent(AddVehicleEvent.create(-1, VehicleDTO.builder().build())) .addEvents(events) .build(); final ScenarioController.Builder sb = ScenarioController.builder(scenario) .withEventHandler(AddParcelEvent.class, AddParcelEvent.defaultHandler()) .withEventHandler(AddVehicleEvent.class, vehicleHandler) .withEventHandler(AddDepotEvent.class, AddDepotEvent.defaultHandler()) .withEventHandler(TimeOutEvent.class, TimeOutEvent.ignoreHandler()) .withOrStopCondition(StatsStopConditions.vehiclesDoneAndBackAtDepot()) .withOrStopCondition(StatsStopConditions.timeOutEvent()); return Simulator.builder() .addModel(PDPRoadModel.builder(RoadModelBuilders.plane()) .withAllowVehicleDiversion(true)) .addModel(DefaultPDPModel.builder()) .addModel(TimeModel.builder() .withRealTime() .withStartInClockMode(ClockMode.SIMULATED) .withTickLength(100)) .addModel(sb) .addModel(StatsTracker.builder()); }