.withDistanceUnit(SI.METER) .withVehicleLength(2d) .withMinDistance(.25) .build(mock(DependencyProvider.class));
/** * 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()); }
assertEquals(0d, RoadModelBuilders.dynamicGraph(graph) .withCollisionAvoidance() .withMinDistance(0d) .withDistanceUnit(SI.METER) .build(mock(DependencyProvider.class)) .withDistanceUnit(SI.METER) .withCollisionAvoidance() .withMinDistance(2d) .build(mock(DependencyProvider.class)) .withCollisionAvoidance() .withVehicleLength(1d) .withMinDistance(2.000000001) .build(mock(DependencyProvider.class)); } catch (final IllegalArgumentException e) { final CollisionGraphRMB b = RoadModelBuilders.dynamicGraph(graph) .withCollisionAvoidance() .withMinDistance(-1d); } catch (final IllegalArgumentException e) { fail = true;
/** * 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); }
/** * 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()); }