@Nonnull @Override public Scenario apply(@Nullable Scenario input) { final Scenario in = verifyNotNull(input); return Scenario.builder(in) .clearEvents() .addEvents( FluentIterable.from(in.getEvents()).transform(converter)) .build(); } };
@Nonnull @Override public Scenario apply(@Nullable Scenario input) { final Scenario in = verifyNotNull(input); return Scenario.builder(in) .clearEvents() .addEvents( FluentIterable.from(in.getEvents()).transform(converter)) .build(); } };
return Scenario.builder(builder, builder.problemClass) .addModels(modelBuilders) .addEvents(b.build()) .instanceId(id) .build();
PDPGraphRoadModel.builderForGraphRm(RoadModelBuilders.staticGraph(g))) .addModel(DefaultPDPModel.builder()) .addEvents( Collections .nCopies(
.addModel(DefaultPDPModel.builder()) .addModels(asList(models)) .addEvents( Collections .nCopies(
.withStartInClockMode(ClockMode.SIMULATED)) .clearEvents() .addEvents(events) .addEvent(TimeOutEvent.create(3 * 60 * 60 * 1000)) .build();
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()); }
/** * Tests whether events are sorted by time. */ @Test public void testSorting() { final List<TimedEvent> events = new ArrayList<>(10); final AddObjectEvent A1 = AddObjectEvent.create(0, new Point(1, 0)); final AddObjectEvent A2 = AddObjectEvent.create(0, new Point(2, 0)); final AddObjectEvent B = AddObjectEvent.create(1, new Point(1, 1)); final AddObjectEvent C = AddObjectEvent.create(2, new Point(1, 0)); final AddObjectEvent D1 = AddObjectEvent.create(3, new Point(1, 2)); final AddObjectEvent D2 = AddObjectEvent.create(3, new Point(1, 3)); final AddObjectEvent E = AddObjectEvent.create(4, new Point(2, 0)); final AddObjectEvent F = AddObjectEvent.create(5, new Point(4, 0)); events.addAll(asList(A1, A2, B, C, D1, D2, E, F)); Collections.reverse(events); final Scenario s = Scenario.builder().addEvents(events).build(); final List<TimedEvent> res = newArrayList(s.getEvents()); assertEquals(asList(A2, A1, B, C, D2, D1, E, F), res); assertFalse(res.equals(events)); assertEquals(events.size(), res.size()); }
/** * Test equals method with differing events. */ @Test public void testEqualsEvents() { final List<EventA> events1 = asList(EventA.create(0)); final List<EventA> events2 = asList(EventA.create(0)); final List<EventA> events3 = asList(EventA.create(1)); final List<EventA> events4 = asList(EventA.create(1), EventA.create(2)); final Scenario s1 = Scenario.builder().addEvents(events1).build(); final Scenario s2 = Scenario.builder().addEvents(events2).build(); final Scenario s3 = Scenario.builder().addEvents(events3).build(); final Scenario s4 = Scenario.builder().addEvents(events4).build(); assertNotEquals(s1, new Object()); assertEquals(s1, s2); assertNotEquals(s1, s3); assertNotEquals(s1, s4); }
/** * Test correct ordering of events. */ @Test public void testAddEvents() { final TimedEvent ev0 = EventA.create(0); final TimedEvent ev1 = EventB.create(205); final TimedEvent ev2 = EventB.create(7); final TimedEvent ev3 = EventB.create(203); final Scenario scenario = Scenario .builder(Scenario.DEFAULT_PROBLEM_CLASS) .addEvent(ev0) .addEvent(ev1) .addEvents(asList(ev2, ev3)) .build(); assertEquals(asList(ev0, ev2, ev3, ev1), scenario.getEvents()); }
@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()); }