@Test
public void moveToHeuristicTest() {
final MovingRoadUser fastestPathAgent = new SpeedyRoadUser(10);
final MovingRoadUser shortestPathAgent = new SpeedyRoadUser(10);
final Point origin = new Point(0, 0);
final Point destination = new Point(0, 10);
final Point midway = new Point(5, 5);
final Graph<MultiAttributeData> graph = new TableGraph<>();
graph.addConnection(origin, destination,
MultiAttributeData.builder().setLength(10).setMaxSpeed(1).build());
graph.addConnection(origin, midway,
MultiAttributeData.builder().setLength(10).setMaxSpeed(10).build());
graph.addConnection(midway, destination,
MultiAttributeData.builder().setLength(10).setMaxSpeed(10).build());
final RoadModel moveModel = RoadModelBuilders.staticGraph(graph)
.withDistanceUnit(SI.KILOMETER).withSpeedUnit(NonSI.KILOMETERS_PER_HOUR)
.build(mock(DependencyProvider.class));
moveModel.addObjectAt(fastestPathAgent, origin);
moveModel.addObjectAt(shortestPathAgent, origin);
moveModel.moveTo(fastestPathAgent, destination, hour(1),
GeomHeuristics.time(10));
moveModel.moveTo(shortestPathAgent, destination, hour(1),
GeomHeuristics.euclidean());
assertEquals(midway, moveModel.getPosition(fastestPathAgent));
assertEquals(new Point(0, 1), moveModel.getPosition(shortestPathAgent));
}