final TestRoadUser tru = new TestRoadUser(); model.addObjectAt(tru, SW); model.moveTo(tru, NW, hour(1)); model.moveTo(tru, NE, hour(1)); final MoveProgress mp = model.moveTo(tru, NE, hour(38)); assertEquals(38d, mp.distance().getValue().doubleValue(), GraphRoadModelImpl.DELTA); assertEquals(asList(NW, SW, SE, NE), mp.travelledNodes()); model.moveTo(tru, SE, hour(1)); model.moveTo(tru, SW, hour(1)); graph.addConnection(SW, X, LengthData.create(1d)); final MoveProgress mp2 = model.moveTo(tru, SW, hour(10)); assertEquals(SW, model.getPosition(tru)); model.moveTo(tru, NW, hour(10)); model.moveTo(tru, SW, hour(1)); model.moveTo(tru, SE, hour(1)); final MoveProgress mp3 = model.moveTo(tru, SE, hour(18));
/** * Tests the removal of a connection which was previously occupied. */ @Test public void testRemovePrevOccupiedCon() { final MovingRoadUser user = new TestRoadUser(); model.addObjectAt(user, SW); model.moveTo(user, NW, hour(1)); assertTrue(model.hasRoadUserOn(SW, NW)); model.moveTo(user, NE, hour(10)); assertFalse(model.hasRoadUserOn(SW, NW)); assertTrue(model.hasRoadUserOn(NW, NE)); model.getGraph().removeConnection(SW, NW); }
model.moveTo(car, NW, hour(1)); assertThat(model.hasRoadUserOn(SW, NW)).isTrue(); assertThat(model.getRoadUsersOn(SW, NW)).containsExactly(car);
/** * Tests removals when a connection is occupied. */ @Test public void testRemoveConnectionOccupied() { final MovingRoadUser user = new TestRoadUser(); model.addObjectAt(user, SW); model.moveTo(user, NW, hour(1)); // remove everything except the connection with the user on it model.getGraph().removeConnection(NW, SW); model.getGraph().removeNode(NE); model.getGraph().removeNode(SE); assertEquals(1, model.getGraph().getConnections().size()); assertEquals(2, model.getGraph().getNodes().size()); // attempt removal of occupied conn, should fail boolean fail = false; try { model.getGraph().removeConnection(SW, NW); } catch (final IllegalStateException e) { fail = true; } assertThat(fail).isEqualTo(isGraphModCheckEnabled); }