public static MASConfiguration testConfig(String name) { return MASConfiguration.pdptwBuilder() .setName(name) .addEventHandler(AddVehicleEvent.class, ExperimentTestUtil.randomVehicle()) .build(); }
@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"); } }
@Test public void composite() { final Experiment.Builder builder = Experiment.builder() .addScenario(scenario) .computeDistributed() .setCompositeTaskSize(2) .addConfiguration(ExperimentTestUtil.testConfig("test")) .usePostProcessor(ExperimentTestUtil.testPostProcessor()) .repeat(3) .withRandomSeed(123); final ExperimentResults er = builder.perform(); assertThat(er.getResults()).hasSize(3); }
/** * Set up the experiment builder and create the CLI menu. */ @Before public void setUp() { TestUtil.testEnum(ExperimentCli.ConfigToName.class); configA = ExperimentTestUtil.testConfig("A"); configB = ExperimentTestUtil.testConfig("B"); configC = ExperimentTestUtil.testConfig("C"); builder = Experiment.builder() .addScenario(ScenarioTestUtil.createRandomScenario(1655L)) .addConfiguration(configA) .addConfiguration(configB) .addConfiguration(configC) .setScenarioReader(ScenarioIO.reader()); menu = ExperimentCli.createMenu(builder); }
/** * Checks determinism of two subsequent identical JPPF experiments. */ @Test public void determinismJppfVsJppf() { final List<Integer> ints = asList(1, 2, 5, 10); final List<ExperimentResults> allResults = newArrayList(); final Experiment.Builder experimentBuilder = Experiment.builder() .computeDistributed() .addScenario(scenario) .withRandomSeed(123) .repeat(10) .addConfiguration(ExperimentTestUtil.testConfig("A")); for (final int i : ints) { allResults.add( experimentBuilder.numBatches(i) .perform()); } assertEquals(4, allResults.size()); for (int i = 0; i < allResults.size() - 1; i++) { assertEquals(allResults.get(i), allResults.get(i + 1)); } }
.addConfiguration(ExperimentTestUtil.testConfig("test")) .usePostProcessor(ExperimentTestUtil.testPostProcessor()) .withWarmup(100L) .withRandomSeed(123);
@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(); }
final Scenario s0 = ScenarioTestUtil.createRandomScenario(123L); final Scenario s1 = ScenarioTestUtil.createRandomScenario(456L); final MASConfiguration c0 = ExperimentTestUtil.testConfig("c0"); final Experiment.Builder builder = Experiment.builder() .addScenario(s0)
/** * 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); }
final Scenario s0 = ScenarioTestUtil.createRandomScenario(123L); final Scenario s1 = ScenarioTestUtil.createRandomScenario(456L); final MASConfiguration c0 = ExperimentTestUtil.testConfig("c0"); final MASConfiguration c1 = ExperimentTestUtil.testConfig("c1"); final Experiment.Builder builder = Experiment.builder() .addScenario(s0)
@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()); }
/** * 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"); }
.withRandomSeed(123) .repeat(1) .usePostProcessor(ExperimentTestUtil.testPostProcessor()) .addConfiguration(ExperimentTestUtil.testConfig("A"));
/** * 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(); }
/** * Tests a post processor that returns objects that does not implement * {@link Serializable}. */ @Test(expected = IllegalArgumentException.class) public void testFaultyPostProcessor() { Experiment.builder() .computeDistributed() .addScenario(scenario) .withRandomSeed(123) .repeat(1) .usePostProcessor(new TestFaultyPostProcessor()) .addConfiguration(ExperimentTestUtil.testConfig("A")) .perform(); }