@Override public ImmutableSet<ModelBuilder<?, ?>> getModelBuilders() { return ImmutableSet.<ModelBuilder<?, ?>>builder() .add( TimeModel.builder() .withTickLength(1L) .withTimeUnit(NonSI.MINUTE)) .add( RoadModelBuilders.plane() .withMinPoint(getMin()) .withMaxPoint(getMax()) .withDistanceUnit(SI.KILOMETER) .withMaxSpeed(MAX_SPEED) .withSpeedUnit( SI.KILOMETRE.divide(NonSI.MINUTE).asType(Velocity.class))) .add( DefaultPDPModel.builder() .withTimeWindowPolicy(TimeWindowPolicies.TARDY_ALLOWED)) .add( StatsTracker.builder()) .build(); }
/** * Test for illegal max speed. */ @Test public void builderIllegalMaxSpeed() { boolean fail = false; try { RoadModelBuilders.plane() .withMaxSpeed(0d) .build(mock(DependencyProvider.class)); } catch (final IllegalArgumentException e) { fail = true; } assertTrue(fail); }
/** * Tests that units are correctly set. */ @Test public void testAbstractRMBUnits() { final PlaneRoadModel prm = RoadModelBuilders.plane() .withDistanceUnit(NonSI.LIGHT_YEAR) .withSpeedUnit(NonSI.C) .build(mock(DependencyProvider.class)); assertThat(prm.getDistanceUnit()).isEqualTo(NonSI.LIGHT_YEAR); assertThat(prm.getSpeedUnit()).isEqualTo(NonSI.C); }
@Override public void doSetUp() { model = RoadModelBuilders.plane() .withMinPoint(new Point(0, 0)) .withMaxPoint(new Point(10, 10)) .withMaxSpeed(10d) .build(mock(DependencyProvider.class)); }
@Test public void testPDPRoadModel() { final Scenario.Builder sb = Scenario .builder(Scenario.DEFAULT_PROBLEM_CLASS); sb.addModel(PDPRoadModel.builder(RoadModelBuilders.plane())); ScenarioTestUtil.assertScenarioIO(sb.build()); }
/** * Tests that min and max points are correctly set (important because they are * both points). */ @Test public void testPlaneRMB() { final PlaneRMB b = RoadModelBuilders.plane() .withMinPoint(new Point(1, 1)) .withMaxPoint(new Point(2, 2)); assertThat(b.getMin()).isEqualTo(new Point(1, 1)); assertThat(b.getMax()).isEqualTo(new Point(2, 2)); final PlaneRoadModel prm = b.build(mock(DependencyProvider.class)); assertThat(prm.min).isEqualTo(b.getMin()); assertThat(prm.max).isEqualTo(b.getMax()); }
/** * Supplying the builder with illegal points should yield an exception. */ @Test public void builderIllegalPoints() { boolean fail = false; try { RoadModelBuilders.plane() .withMinPoint(new Point(1, 0)) .withMaxPoint(new Point(0, 1)) .build(mock(DependencyProvider.class)); } catch (final IllegalArgumentException e) { fail = true; } assertTrue(fail); fail = false; try { RoadModelBuilders.plane() .withMinPoint(new Point(0, 1)) .withMaxPoint(new Point(1, 0)) .build(mock(DependencyProvider.class)); } catch (final IllegalArgumentException e) { fail = true; } assertTrue(fail); }
/** * Creates a snapshot of a {@link PlaneRoadModel}. * @param minimum The minimum bound of the plane. * @param maximum The maximum bound of the plane. * @param planeDistanceUnit The distance unit of the model. * @return A snapshot with the desired properties. */ public static RoadModelSnapshot createPlaneRoadModelSnapshot( Point minimum, Point maximum, Unit<Length> planeDistanceUnit) { return new AutoValue_PlaneRoadModelSnapshot( new PlaneRoadModel(RoadModelBuilders.plane().withMinPoint(minimum) .withMaxPoint(maximum).withDistanceUnit(planeDistanceUnit))); }
@Override public GenericRoadModel create(ForwardingRoadModelTest testClass) { return new ForwardingRoadModel( RoadModelBuilders.plane() .withMinPoint(new Point(0, 0)) .withMaxPoint(new Point(10, 10)) .withDistanceUnit(SI.METER) .withSpeedUnit(SI.METERS_PER_SECOND) .withMaxSpeed(10d) .build(mock(DependencyProvider.class))); } }}, {new Creator() {
/** * Set up a simulator. */ @Before public void setUp() { sim = Simulator.builder() .addModel(DefaultPDPModel.builder()) .addModel(PDPRoadModel.builder(RoadModelBuilders.plane())) .addModel(SolverModel.builder()) .build(); }
/** * Tests the removal of model builders. */ @Test public void testRemoveModelsOfType() { final Scenario.Builder builder = Scenario.builder(); builder.addModel(TimeModel.builder()) .addModel(TimeModel.builder().withRealTime()) .addModel(RoadModelBuilders.plane()) .addModel(CommModel.builder()); assertThat(builder.modelBuilders).hasSize(4); builder.removeModelsOfType(RoadModelBuilders.PlaneRMB.class); assertThat(builder.modelBuilders).hasSize(3); assertThat(builder.modelBuilders).containsExactly(TimeModel.builder(), TimeModel.builder().withRealTime(), CommModel.builder()); builder.removeModelsOfType(RoadModelBuilders.AbstractGraphRMB.class); builder.removeModelsOfType(TimeModel.AbstractBuilder.class); assertThat(builder.modelBuilders).hasSize(1); assertThat(builder.modelBuilders).containsExactly(CommModel.builder()); builder.removeModelsOfType(CommModel.Builder.class); assertThat(builder.modelBuilders).isEmpty(); }
@Test public void createPlaneScenarioGeneratorTest() { final ModelBuilder<? extends RoadModel, ? extends RoadUser> roadModelBuilder = RoadModelBuilders .plane() .withSpeedUnit(NonSI.KILOMETERS_PER_HOUR) .withDistanceUnit(SI.METER); final ScenarioGenerator sg = ScenarioGenerator.builder().addModel( roadModelBuilder) .build(); assertEquals(SI.METER, sg.getDistanceUnit()); assertEquals(NonSI.KILOMETERS_PER_HOUR, sg.getSpeedUnit()); } }
/** * Setup an environment with three vehicles and three parcels. */ @Before public void setUp() { final DependencyProvider dp = mock(DependencyProvider.class); rm = PDPRoadModel.builder( RoadModelBuilders.plane() .withMaxSpeed(300d)) .withAllowVehicleDiversion(false) .build(dp); when(dp.get(RoadModel.class)).thenReturn(rm); pm = DefaultPDPModel.builder() .withTimeWindowPolicy(TimeWindowPolicies.TARDY_ALLOWED) .build(dp); mp = new TestModelProvider(new ArrayList<>( Arrays.<Model<?>>asList(rm, pm))); rm.registerModelProvider(mp); v1 = new TestVehicle(new Point(0, 1)); v2 = new TestVehicle(new Point(0, 2)); v3 = new TestVehicle(new Point(0, 3)); p1 = createParcel(new Point(3, 0), new Point(0, 3)); p2 = createParcel(new Point(6, 9), new Point(2, 9)); p3 = createParcel(new Point(2, 8), new Point(8, 2)); ss = rm.getSnapshot(); }
/** * Tests that the {@link PDPRoadModel} supports serialization and * deserialization. */ @Test public void testIO() { final Scenario.Builder sb = Scenario .builder(Scenario.DEFAULT_PROBLEM_CLASS) .addModel(PDPRoadModel.builder( RoadModelBuilders.plane() .withSpeedUnit(NonSI.MILES_PER_HOUR) .withMaxSpeed(7)) .withAllowVehicleDiversion(true)); final Scenario s = sb.problemClass(TestProblemClass.TEST).build(); ScenarioTestUtil.assertScenarioIO(s); }
@Before public void setUp() { model = RoadModelBuilders.plane() .withCollisionAvoidance() .withMinPoint(new Point(0, 0)) .withMaxPoint(new Point(100, 100)) .withDistanceUnit(SI.METER) .withSpeedUnit(SI.METERS_PER_SECOND) .withMaxSpeed(1) .withObjectRadius(.5d) .build(FakeDependencyProvider.builder() .add(TimeModel.builder() .withTickLength(tickLength)) .build()); }
/** * Simple GUI test. */ @Test public void testRenderer() { final Simulator sim = Simulator.builder() .addModel(RoadModelBuilders.plane()) .addModel(View.builder() .withTitleAppendix("ViewTest") .withAutoClose() .withAutoPlay() .withSimulatorEndTime(10000) .with(PlaneRoadModelRenderer.builder()) .with(TestRenderer.builder())) .build(); sim.start(); }
/** * Test for ui with real time clock. */ @Test public void testRealtime() { final Simulator sim = Simulator.builder() .addModel(TimeModel.builder() .withRealTime() .withTickLength(100L)) .addModel(RoadModelBuilders.plane()) .addModel(View.builder() .withTitleAppendix("ViewTest") .withAutoClose() .withAutoPlay() .withSimulatorEndTime(1000) .with(PlaneRoadModelRenderer.builder()) .with(TestRenderer.builder())) .build(); sim.start(); }
@Before public void setUp() { sim = Simulator.builder() .addModel(TimeModel.builder() .withRealTime() .withTickLength(100L) .withTimeUnit(SI.MILLI(SI.SECOND))) .addModel(PDPRoadModel.builder(RoadModelBuilders.plane())) .addModel(DefaultPDPModel.builder()) .addModel(RtSolverModel.builder() .withSingleMode() .withThreadGrouping(useThreadGrouping)) .build(); model = sim.getModelProvider().getModel(RtSolverModel.class); rtClock = sim.getModelProvider().getModel(TimeModel.class) .get(RealtimeClockController.class); sim.register(new Depot(new Point(5, 5))); sim.register(new RouteFollowingVehicle(VehicleDTO.builder().build(), true)); }
@Before public void setUp() { sim = Simulator.builder() .addModel( PDPRoadModel.builder( RoadModelBuilders.plane() .withMaxSpeed(300d)) .withAllowVehicleDiversion(false)) .addModel( DefaultPDPModel.builder() .withTimeWindowPolicy(TimeWindowPolicies.TARDY_ALLOWED)) .build(); rm = sim.getModelProvider().getModel(PDPRoadModel.class); pm = sim.getModelProvider().getModel(PDPModel.class); depot = new Depot(new Point(5, 5)); sim.register(depot); p1 = createParcel(new Point(3, 0), new Point(0, 3)); p2 = createParcel(new Point(6, 9), new Point(2, 9)); p3 = createParcel(new Point(2, 8), new Point(8, 2)); TestUtil.testPrivateConstructor(Central.class); TestUtil.testPrivateConstructor(Solvers.class); TestUtil.testEnum(VehicleCreator.class); }
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()); }