@Test
public void testDifferentEdgeFilter() {
GraphHopperStorage g = new GraphBuilder(encodingManager).setCHGraph(new FastestWeighting(carEncoder)).create();
g.edge(4, 3, 10, true);
g.edge(3, 6, 10, true);
g.edge(4, 5, 10, true);
g.edge(5, 6, 10, true);
DijkstraOneToMany algo = (DijkstraOneToMany) createAlgo(g);
algo.setEdgeFilter(new EdgeFilter() {
@Override
public boolean accept(EdgeIteratorState iter) {
return iter.getAdjNode() != 5;
}
});
Path p = algo.calcPath(4, 6);
assertEquals(IntArrayList.from(new int[]{4, 3, 6}), p.calcNodes());
algo.clear();
algo.setEdgeFilter(new EdgeFilter() {
@Override
public boolean accept(EdgeIteratorState iter) {
return iter.getAdjNode() != 3;
}
});
p = algo.calcPath(4, 6);
assertEquals(IntArrayList.from(new int[]{4, 5, 6}), p.calcNodes());
}