static Optional<TimeModel.AbstractBuilder<?>> getTimeModel(Scenario scen) { final List<TimeModel.AbstractBuilder<?>> timeModels = new ArrayList<>(); for (final ModelBuilder<?, ?> mb : scen.getModelBuilders()) { if (mb instanceof TimeModel.AbstractBuilder) { timeModels.add((AbstractBuilder<?>) mb); } } if (timeModels.isEmpty()) { return Optional.absent(); } checkArgument(timeModels.size() == 1, "More than one time model is not supported."); return Optional.<TimeModel.AbstractBuilder<?>>of(timeModels.get(0)); } }
static Optional<TimeModel.AbstractBuilder<?>> getTimeModel(Scenario scen) { final List<TimeModel.AbstractBuilder<?>> timeModels = new ArrayList<>(); for (final ModelBuilder<?, ?> mb : scen.getModelBuilders()) { if (mb instanceof TimeModel.AbstractBuilder) { timeModels.add((AbstractBuilder<?>) mb); } } if (timeModels.isEmpty()) { return Optional.absent(); } checkArgument(timeModels.size() == 1, "More than one time model is not supported."); return Optional.<TimeModel.AbstractBuilder<?>>of(timeModels.get(0)); } }
@Override public ImmutableSet<ModelBuilder<?, ?>> getChildren() { return ImmutableSet.<ModelBuilder<?, ?>>builder() .addAll(getScenario().getModelBuilders()) .add(getStopModelBuilder()) .build(); }
@Override public ImmutableSet<ModelBuilder<?, ?>> getChildren() { return ImmutableSet.<ModelBuilder<?, ?>>builder() .addAll(getScenario().getModelBuilders()) .add(getStopModelBuilder()) .build(); }
@Override public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof Scenario) { Scenario that = (Scenario) o; return (this.events.equals(that.getEvents())) && (this.modelBuilders.equals(that.getModelBuilders())) && (this.timeWindow.equals(that.getTimeWindow())) && (this.stopCondition.equals(that.getStopCondition())) && (this.problemClass.equals(that.getProblemClass())) && (this.problemInstanceId.equals(that.getProblemInstanceId())); } return false; }
@Override public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof Scenario) { Scenario that = (Scenario) o; return (this.events.equals(that.getEvents())) && (this.modelBuilders.equals(that.getModelBuilders())) && (this.timeWindow.equals(that.getTimeWindow())) && (this.stopCondition.equals(that.getStopCondition())) && (this.problemClass.equals(that.getProblemClass())) && (this.problemInstanceId.equals(that.getProblemInstanceId())); } return false; }
for (final ModelBuilder<?, ?> mb : s.getModelBuilders()) { if (RoadModel.class.isAssignableFrom(mb.getModelType())) { roadModels.add((RoadModel) mb.build(null));
@Override public Builder copyProperties(Scenario scenario) { return super.copyProperties(scenario) .addEvents(scenario.getEvents()) .problemClass(scenario.getProblemClass()) .instanceId(scenario.getProblemInstanceId()) .addModels(scenario.getModelBuilders()); }
@Override public Builder copyProperties(Scenario scenario) { return super.copyProperties(scenario) .addEvents(scenario.getEvents()) .problemClass(scenario.getProblemClass()) .instanceId(scenario.getProblemInstanceId()) .addModels(scenario.getModelBuilders()); }
/** * Tests that when no time model is available, a default is added. */ @Test public void testEmpty() { final Scenario empty = Scenario.builder().build(); assertThat(empty.getModelBuilders()).isEmpty(); final Scenario convertedEmpty = verifyNotNull(ScenarioConverters.toRealtime().apply(empty)); assertThat(convertedEmpty.getModelBuilders()) .contains(TimeModel.builder() .withRealTime() .withStartInClockMode(ClockMode.SIMULATED)); }
/** * 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); }
/** * Tests that when a time model already exists, its properties are copied. */ @Test public void testCopyProperties() { final Scenario s = Scenario.builder() .addModel(TimeModel.builder() .withTickLength(754L) .withTimeUnit(NonSI.DAY)) .addModel(CommModel.builder()) .build(); final Scenario converted = verifyNotNull(ScenarioConverters.toRealtime().apply(s)); assertThat(converted.getModelBuilders()) .contains(TimeModel.builder() .withRealTime() .withStartInClockMode(ClockMode.SIMULATED) .withTickLength(754L) .withTimeUnit(NonSI.DAY)); }
/** * Test the default settings of a scenario. */ @Test public void testDefaults() { final Scenario.Builder builder = Scenario .builder(Scenario.DEFAULT_PROBLEM_CLASS); assertThat(builder.getTimeWindow()) .isEqualTo(TimeWindow.create(0, 8 * 60 * 60 * 1000)); assertThat(builder.getStopCondition()) .isEqualTo(StopConditions.alwaysFalse()); final Scenario scenario = builder.build(); assertTrue(scenario.getModelBuilders().isEmpty()); assertSame(Scenario.DEFAULT_PROBLEM_CLASS, scenario.getProblemClass()); assertEquals("", scenario.getProblemInstanceId()); assertThat(scenario.getStopCondition()).isEqualTo( StopConditions.alwaysFalse()); assertEquals(TimeWindow.create(0, 8 * 60 * 60 * 1000), scenario.getTimeWindow()); }
.addModels(deserialized.getModelBuilders()) .build();
assertEquals(1, scenario.getModelBuilders().size()); assertThat(scenario.getModelBuilders().iterator().next() .getAssociatedType()).isSameAs(RoadUser.class);