@Override public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof Experiment.SimulationResult) { Experiment.SimulationResult that = (Experiment.SimulationResult) o; return (this.simArgs.equals(that.getSimArgs())) && (this.resultObject.equals(that.getResultObject())); } return false; }
@Override public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof Experiment.SimulationResult) { Experiment.SimulationResult that = (Experiment.SimulationResult) o; return (this.simArgs.equals(that.getSimArgs())) && (this.resultObject.equals(that.getResultObject())); } return false; }
@Override public void receive(SimulationResult result) { if (result.getResultObject() instanceof FailureStrategy) { failures++; } else { received++; } final Duration dur = new Duration(startTime, System.currentTimeMillis()); printStream.println(Joiner.on("") .join(received, SLASH, total, " (failures: ", failures, ", duration: ", PeriodFormat.getDefault().print(dur.toPeriod()), ", memory free/total/max (M): ", memorySummary(), ")")); }
sr.getSimArgs().getRandomSeed() + " " + sr.getResultObject());
sr.getSimArgs().getRandomSeed() + " " + sr.getResultObject());
final StatisticsDTO stats = (StatisticsDTO) sr.getResultObject(); assertThat(stats.timeUnit).isEqualTo(SI.MILLI(SI.SECOND)); assertThat(stats.distanceUnit).isEqualTo(SI.KILOMETER);
.getResultObject()), objValInMinutes, 0.2);
(StatisticsDTO) er.getResults().asList().get(0).getResultObject()); assertThat(objVal).isWithin(0.0001).of(495.4718);
static StatisticsDTO simulate(Scenario scenario) { final ExperimentResults results = Experiment.builder() .addScenario(scenario) .addConfiguration(Central.solverConfiguration( StochasticSuppliers.constant(TestSolvers.lazyInsertion()))) .withThreads(1) .usePostProcessor(PostProcessors.statisticsPostProcessor(OBJ_FUNC)) .showGui(View.builder() .withAutoPlay() // .withAutoClose() .withSpeedUp(4) // .withFullScreen() .withTitleAppendix("AAMAS 2016 Experiment") .with(RoadUserRenderer.builder() .withToStringLabel()) .with(PDPModelRenderer.builder()) .with(RouteRenderer.builder()) .with(PlaneRoadModelRenderer.builder()) .with(TimeLinePanel.builder()) .withResolution(1280, 1024)) .showGui(false) .perform(); final SimulationResult res = results.getResults().iterator().next(); final StatisticsDTO stats = (StatisticsDTO) res.getResultObject(); return stats; }
/** * Checks determinism of a local experiment and a JPPF experiment, both with * identical settings. Using a Gendreau scenario. */ @SuppressWarnings("unchecked") @Test public void determinismLocalVsJppf() { final Experiment.Builder experimentBuilder = Experiment.builder() .computeDistributed() .addScenario(scenario) .withRandomSeed(123) .repeat(1) .usePostProcessor(ExperimentTestUtil.testPostProcessor()) .addConfiguration(ExperimentTestUtil.testConfig("A")); final ExperimentResults results3 = experimentBuilder.perform(); experimentBuilder.computeLocal(); final ExperimentResults results4 = experimentBuilder.perform(); assertEquals(results3, results4); assertThat(results3.getResults().asList().get(0).getResultObject()) .isInstanceOf(ImmutableList.class); assertThat( (List<Point>) results3.getResults().asList().get(0).getResultObject()) .hasSize(10); }
@Override public void onSuccess(@Nullable SimulationResult result) { final SimulationResult res = verifyNotNull(result); for (final ResultListener rl : resultListeners) { try { rl.receive(res); } catch (final RuntimeException e) { System.err .println("ResultListener " + rl + " failed to receive result."); e.printStackTrace(System.err); } } if (res.getResultObject() == FailureStrategy.RETRY) { final ExperimentRunner newRunner = new ExperimentRunner(res.getSimArgs()); Futures.addCallback(executor.submit(newRunner), this); } else { results.add(result); } } }
@Override public void onSuccess(@Nullable SimulationResult result) { final SimulationResult res = verifyNotNull(result); for (final ResultListener rl : resultListeners) { try { rl.receive(res); } catch (final RuntimeException e) { System.err .println("ResultListener " + rl + " failed to receive result."); e.printStackTrace(System.err); } } if (res.getResultObject() == FailureStrategy.RETRY) { final ExperimentRunner newRunner = new ExperimentRunner(res.getSimArgs()); Futures.addCallback(executor.submit(newRunner), this); } else { results.add(result); } } }
/** * 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 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()); }
@Test public void testRetryPostProcessor() { final Experiment.Builder builder = Experiment.builder() .addScenario(scenario) .computeDistributed() .addConfiguration(ExperimentTestUtil.testConfig("test")) .usePostProcessor(ExperimentTestUtil.retryOncePostProcessor()) .repeat(3) .withRandomSeed(123); final ExperimentResults er = builder.perform(); for (int i = 0; i < er.getResults().size(); i++) { assertThat(er.getResults().asList().get(0).getResultObject()) .isEqualTo("SUCCESS"); } }
@Override public void receive(SimulationResult result) { if (result.getResultObject() instanceof FailureStrategy) { failures++; } else { received++; } final Duration dur = new Duration(startTime, System.currentTimeMillis()); printStream.println(Joiner.on("") .join(received, SLASH, total, " (failures: ", failures, ", duration: ", PeriodFormat.getDefault().print(dur.toPeriod()), ", memory free/total/max (M): ", memorySummary(), ")")); }
public static StatisticsDTO singleRun(Scenario scenario, MASConfiguration c, long seed, ObjectiveFunction objFunc, boolean showGui) { return (StatisticsDTO) Experiment .singleRun(scenario, c, seed, showGui, PostProcessors.statisticsPostProcessor(objFunc), null) .getResultObject(); }