/** * Allows to adapt the default reader ({@link #reader()}) by converting all * read scenarios. {@link ScenarioConverters} contains functions that can be * used for this. * @param converter A converter that transforms a scenario. * @return A new reader function. */ public static Function<Path, Scenario> readerAdapter( Function<Scenario, Scenario> converter) { return Functions.compose(converter, reader()); }
/** * Tests {@link ScenarioIO#readerAdapter(com.google.common.base.Function)}. * @throws IOException When IO fails. */ @Test public void testReaderAdapter() throws IOException { final Scenario s = Scenario.builder() .addModel(TimeModel.builder().withTickLength(7L)) .build(); final Path tmpDir = Files.createTempDirectory("rinsim-scenario-io-test"); final Path file = Paths.get(tmpDir.toString(), "test.scen"); ScenarioIO.write(s, file); final Scenario out = ScenarioIO.reader().apply(file); final Scenario convertedOut = verifyNotNull(ScenarioIO.readerAdapter(ScenarioConverters.toRealtime()) .apply(file)); assertThat(s).isEqualTo(out); assertThat(s).isNotEqualTo(convertedOut); assertThat(convertedOut.getModelBuilders()) .contains(TimeModel.builder() .withRealTime() .withStartInClockMode(ClockMode.SIMULATED) .withTickLength(7L)); Files.delete(file); Files.delete(tmpDir); }
/** * Allows to adapt the default reader ({@link #reader()}) by converting all * read scenarios. {@link ScenarioConverters} contains functions that can be * used for this. * @param converter A converter that transforms a scenario. * @return A new reader function. */ public static Function<Path, Scenario> readerAdapter( Function<Scenario, Scenario> converter) { return Functions.compose(converter, reader()); }
Builder() { configurationsSet = newLinkedHashSet(); scenariosBuilder = ImmutableSet.builder(); scenarioProviderBuilder = Optional.absent(); fileReader = ScenarioIO.reader(); resultListeners = newArrayList(); showGui = false; repetitions = 1; seedRepetitions = 1; masterSeed = 0L; numThreads = Runtime.getRuntime().availableProcessors(); numBatches = 1; compositeTaskSize = 1; computerType = Computers.LOCAL; postProc = PostProcessors.defaultPostProcessor(); experimentOrdering = DEFAULT_EXPERIMENT_ORDERING; }
Builder() { configurationsSet = newLinkedHashSet(); scenariosBuilder = ImmutableSet.builder(); scenarioProviderBuilder = Optional.absent(); fileReader = ScenarioIO.reader(); resultListeners = newArrayList(); showGui = false; repetitions = 1; seedRepetitions = 1; masterSeed = 0L; numThreads = Runtime.getRuntime().availableProcessors(); numBatches = 1; compositeTaskSize = 1; computerType = Computers.LOCAL; postProc = PostProcessors.defaultPostProcessor(); experimentOrdering = DEFAULT_EXPERIMENT_ORDERING; }
/** * 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); }