.withDistanceUnit(SI.METER) .withSpeedUnit(NonSI.KILOMETERS_PER_HOUR) .withCollisionAvoidance()) .addModel(DefaultPDPModel.builder()) .addModel(
.withDistanceUnit(SI.METER) .withSpeedUnit(NonSI.KILOMETERS_PER_HOUR) .withCollisionAvoidance()) .addModel(DefaultPDPModel.builder()) .addModel(
.withCollisionAvoidance() .withDistanceUnit(SI.METER) .withVehicleLength(2d)
.withCollisionAvoidance() .withDistanceUnit(SI.METER)) .addModel(
.withCollisionAvoidance() .withDistanceUnit(SI.METER)) .addModel(
final CollisionGraphRMB coll = dynamicGraph( new ListenableGraph<>(new TableGraph<>())) .withCollisionAvoidance(); final CachedGraphRMB cach = staticGraph(new TableGraph<>()) .withCache(); .withCollisionAvoidance() .withVehicleLength(7d)); assertThat(coll).isNotEqualTo( dynamicGraph(new ListenableGraph<>(new TableGraph<>())) .withCollisionAvoidance() .withDistanceUnit(NonSI.YARD));
public void testBuilderMinDistance() { assertEquals(0d, RoadModelBuilders.dynamicGraph(graph) .withCollisionAvoidance() .withMinDistance(0d) .withDistanceUnit(SI.METER) .withCollisionAvoidance() .withMinDistance(2d) .build(mock(DependencyProvider.class)) try { RoadModelBuilders.dynamicGraph(graph) .withCollisionAvoidance() .withVehicleLength(1d) .withMinDistance(2.000000001) @SuppressWarnings("unused") final CollisionGraphRMB b = RoadModelBuilders.dynamicGraph(graph) .withCollisionAvoidance() .withMinDistance(-1d); } catch (final IllegalArgumentException e) {
.addModel( RoadModelBuilders.dynamicGraph(GraphCreator.createSimpleGraph()) .withCollisionAvoidance() .withDistanceUnit(SI.METER) .withVehicleLength(VEHICLE_LENGTH))
@SuppressWarnings("unused") final CollisionGraphRMB b = RoadModelBuilders.dynamicGraph(graph) .withCollisionAvoidance() .withVehicleLength(0d); } catch (final IllegalArgumentException e) { @SuppressWarnings("unused") final CollisionGraphRMB b = RoadModelBuilders.dynamicGraph(graph) .withCollisionAvoidance() .withVehicleLength(Double.POSITIVE_INFINITY); } catch (final IllegalArgumentException e) { .withCollisionAvoidance() .withDistanceUnit(SI.METER) .withVehicleLength(5d)
.addModel( RoadModelBuilders.dynamicGraph(GraphCreator.createSimpleGraph()) .withCollisionAvoidance() .withDistanceUnit(SI.METER) .withVehicleLength(VEHICLE_LENGTH))
/** * Sets up a simple environment. */ @Before public void setUp() { final ListenableGraph<LengthData> graph = new ListenableGraph<>( new TableGraph<LengthData>()); NW = new Point(0, 0); NE = new Point(10, 0); SE = new Point(10, 10); SW = new Point(0, 10); Graphs.addBiPath(graph, NW, NE, SE, SW, NW); assertEquals(8, graph.getNumberOfConnections()); assertEquals(4, graph.getNumberOfNodes()); simulator = Simulator.builder() .setTickLength(1) .setTimeUnit(SI.SECOND) .addModel( RoadModelBuilders.dynamicGraph(graph) .withCollisionAvoidance() .withVehicleLength(1d) .withDistanceUnit(SI.METER) .withMinDistance(0) .withSpeedUnit(SI.METERS_PER_SECOND)) .addModel(DefaultPDPModel.builder()) .build(); rm = simulator.getModelProvider().getModel(CollisionGraphRoadModelImpl.class); pm = simulator.getModelProvider().getModel(DefaultPDPModel.class); }
/** * Some graphs are not compatible with {@link CollisionGraphRoadModelImpl}. */ @Test public void testDetectInvalidConnAtConstruction() { final ListenableGraph<?> g = new ListenableGraph<>( new TableGraph<LengthData>()); // this connection is allowed: g.addConnection(new Point(0, 0), new Point(1, 0)); // this connection is not allowed: g.addConnection(new Point(0, 0), new Point(.99, 0)); boolean fail = false; try { RoadModelBuilders.dynamicGraph(g) .withCollisionAvoidance() .withVehicleLength(1d) .withMinDistance(.25) .build(mock(DependencyProvider.class)); } catch (final IllegalArgumentException e) { fail = true; } assertTrue(fail); }
/** * Tests that vehicle length and min distance are set correctly (important * because they are both doubles). */ @Test @Ignore public void testCollisionGraphRMB() { final CollisionGraphRMB b = RoadModelBuilders .dynamicGraph(new ListenableGraph<>( new TableGraph<>())) .withCollisionAvoidance() .withVehicleLength(78d) .withMinDistance(3d); final double precision = 0.0000001; assertThat(b.getMinDistance()).isWithin(precision).of(3d); assertThat(b.getVehicleLength()).isWithin(precision).of(78d); final CollisionGraphRoadModel m = b.build(mock(DependencyProvider.class)); assertThat(m.getMinConnLength()).isWithin(precision) .of(b.getMinDistance()); assertThat(m.getVehicleLength()).isWithin(precision) .of(b.getVehicleLength()); }
/** * Set up a simple squared graph. */ @Before public void setUp() { graph = new ListenableGraph<>(new TableGraph<LengthData>()); model = RoadModelBuilders.dynamicGraph(graph) .withCollisionAvoidance() .withDistanceUnit(SI.METER) .withVehicleLength(1d) .withMinDistance(0) .build(mock(DependencyProvider.class)); NW = new Point(0, 0); NE = new Point(10, 0); SE = new Point(10, 10); SW = new Point(0, 10); Graphs.addBiPath(graph, NW, NE, SE, SW, NW); assertEquals(8, graph.getNumberOfConnections()); assertEquals(4, graph.getNumberOfNodes()); }
@Test public void testPDPCollisionGraphRoadModel() { final Scenario.Builder sb = Scenario .builder(Scenario.DEFAULT_PROBLEM_CLASS); sb.addModel( PDPCollisionGraphRoadModel.builderForCollisionGraphRm( RoadModelBuilders.dynamicGraph( ListenableGraph.supplier( DotGraphIO.getLengthDataGraphSupplier("fake.path"))) .withCollisionAvoidance())); ScenarioTestUtil.assertScenarioIO(sb.build()); }