@Override public long setProperties(double speed, boolean forward, boolean backward) { long flags = super.setProperties(speed, forward, backward); if (backward) return setReverseSpeed(flags, speed); return flags; }
@Test public void testFlags() { graph = createGHStorage(); graph.edge(0, 1).setDistance(10).setFlags(carEncoder.setProperties(100, true, true)); graph.edge(2, 3).setDistance(10).setFlags(carEncoder.setProperties(10, true, false)); EdgeIterator iter = carAllExplorer.setBaseNode(0); assertTrue(iter.next()); assertEquals(carEncoder.setProperties(100, true, true), iter.getFlags()); iter = carAllExplorer.setBaseNode(2); assertTrue(iter.next()); assertEquals(carEncoder.setProperties(10, true, false), iter.getFlags()); try { graph.edge(0, 1).setDistance(-1); assertTrue(false); } catch (IllegalArgumentException ex) { } }
@Test public void testSetAccess() { assertTrue(encoder.isForward(encoder.setProperties(0, true, true))); assertTrue(encoder.isBackward(encoder.setProperties(0, true, true))); assertTrue(encoder.isForward(encoder.setProperties(0, true, false))); assertFalse(encoder.isBackward(encoder.setProperties(0, true, false))); assertFalse(encoder.isForward(encoder.setProperties(0, false, true))); assertTrue(encoder.isBackward(encoder.setProperties(0, false, true))); assertTrue(encoder.isForward(encoder.flagsDefault(true, true))); assertTrue(encoder.isBackward(encoder.flagsDefault(true, true))); assertTrue(encoder.isForward(encoder.flagsDefault(true, false))); assertFalse(encoder.isBackward(encoder.flagsDefault(true, false))); long flags = encoder.flagsDefault(true, true); // disable access assertFalse(encoder.isForward(encoder.setAccess(flags, false, false))); assertFalse(encoder.isBackward(encoder.setAccess(flags, false, false))); }
@Test public void testEdgeReturn() { graph = createGHStorage(); EdgeIteratorState iter = graph.edge(4, 10).setDistance(100).setFlags(carEncoder.setProperties(10, true, false)); assertEquals(4, iter.getBaseNode()); assertEquals(10, iter.getAdjNode()); iter = graph.edge(14, 10).setDistance(100).setFlags(carEncoder.setProperties(10, true, false)); assertEquals(14, iter.getBaseNode()); assertEquals(10, iter.getAdjNode()); }
@Test public void testSetSpeed0_issue367() { long flags = encoder.setProperties(10, true, true); flags = encoder.setSpeed(flags, encoder.speedFactor * 0.49); assertEquals(0, encoder.getSpeed(flags), .1); assertEquals(0, encoder.getReverseSpeed(flags), .1); assertFalse(encoder.isForward(flags)); assertFalse(encoder.isBackward(flags)); }
@Test public void testFootMix() { graph = createGHStorage(); graph.edge(0, 1).setDistance(10).setFlags(footEncoder.setProperties(10, true, true)); graph.edge(0, 2).setDistance(10).setFlags(carEncoder.setProperties(10, true, true)); graph.edge(0, 3).setDistance(10).setFlags(footEncoder.setProperties(10, true, true) | carEncoder.setProperties(10, true, true)); EdgeExplorer footOutExplorer = graph.createEdgeExplorer(DefaultEdgeFilter.outEdges(footEncoder)); assertEquals(GHUtility.asSet(3, 1), GHUtility.getNeighbors(footOutExplorer.setBaseNode(0))); assertEquals(GHUtility.asSet(3, 2), GHUtility.getNeighbors(carOutExplorer.setBaseNode(0))); }
GraphHopperStorage ghStorage = new GraphBuilder(encodingManager).setCHGraph(weighting).create(); CHGraph g = ghStorage.getGraph(CHGraph.class, weighting); g.edge(0, 1).setDistance(12).setFlags(carFlagEncoder.setProperties(10, true, true)); g.edge(0, 2).setDistance(13).setFlags(carFlagEncoder.setProperties(20, true, true)); ghStorage.freeze(); EdgeIteratorState iter = GHUtility.getEdge(g, 0, 1); assertEquals(1, iter.getAdjNode()); assertEquals(carFlagEncoder.setProperties(10, true, true), iter.getFlags()); iter.setFlags(carFlagEncoder.setProperties(20, true, false)); assertEquals(12, iter.getDistance(), 1e-4); assertEquals(0, GHUtility.count(g.createEdgeExplorer(carOutFilter).setBaseNode(1))); iter = GHUtility.getEdge(g, 0, 1); assertEquals(carFlagEncoder.setProperties(20, true, false), iter.getFlags()); assertEquals(10, iter.getDistance(), 1e-4); assertEquals(1, GHUtility.getNeighbors(g.createEdgeExplorer().setBaseNode(1)).size());
@Test public void testSimpleShortcutCreationAndTraversal() { graph = createGHStorage(); graph.edge(1, 3, 10, true); graph.edge(3, 4, 10, true); graph.freeze(); CHGraph lg = graph.getGraph(CHGraph.class); lg.shortcut(1, 4).setWeight(3).setFlags(carEncoder.setProperties(10, true, true)); EdgeExplorer vehicleOutExplorer = lg.createEdgeExplorer(DefaultEdgeFilter.outEdges(carEncoder)); // iteration should result in same nodes even if reusing the iterator assertEquals(GHUtility.asSet(3, 4), GHUtility.getNeighbors(vehicleOutExplorer.setBaseNode(1))); assertEquals(GHUtility.asSet(3, 4), GHUtility.getNeighbors(vehicleOutExplorer.setBaseNode(1))); }
long flags = carEncoder.setProperties(10, true, true); CHEdgeIteratorState sc1 = g.shortcut(0, 1); assertTrue(sc1.isShortcut()); assertTrue(sc1.isBackward(carEncoder)); flags = carEncoder.setProperties(10, false, true); sc1.setFlags(flags); sc1.setWeight(100.123);
@Test public void testDifferentVehicles() { final EncodingManager encodingManager = new EncodingManager("car,foot"); Graph g = AbstractLocationIndexTester.this.createGHStorage(encodingManager); initSimpleGraph(g); idx = createIndex(g, -1); assertEquals(1, findID(idx, 1, -1)); // now make all edges from node 1 accessible for CAR only EdgeIterator iter = g.createEdgeExplorer().setBaseNode(1); CarFlagEncoder carEncoder = (CarFlagEncoder) encodingManager.getEncoder("car"); while (iter.next()) { iter.setFlags(carEncoder.setProperties(50, true, true)); } idx.close(); idx = createIndex(g, -1); FootFlagEncoder footEncoder = (FootFlagEncoder) encodingManager.getEncoder("foot"); assertEquals(2, idx.findClosest(1, -1, DefaultEdgeFilter.allEdges(footEncoder)).getClosestNode()); Helper.close((Closeable) g); } }
graph.edge(0, 4).setDistance(100).setFlags(carEncoder.setProperties(10, true, false)).setWayGeometry(pointList); pointList = Helper.createPointList(1, 5, 1, 6, 1, 7, 1, 8, 1, 9); graph.edge(4, 10).setDistance(100).setFlags(carEncoder.setProperties(10, true, false)).setWayGeometry(pointList); pointList = Helper.createPointList(1, 13, 1, 12, 1, 11); graph.edge(14, 0).setDistance(100).setFlags(carEncoder.setProperties(10, true, false)).setWayGeometry(pointList);
long flags = carEncoder.setProperties(60, true, true); long flags2 = carEncoder.setProperties(60, true, false); lg.edge(4, 1, 30, true); graph.freeze();
@Override public long setProperties(double speed, boolean forward, boolean backward) { long flags = super.setProperties(speed, forward, backward); if (backward) return setReverseSpeed(flags, speed); return flags; }
@Override public long setProperties(double speed, boolean forward, boolean backward) { long flags = super.setProperties(speed, forward, backward); if (backward) return setReverseSpeed(flags, speed); return flags; }
@Override public long setProperties( double speed, boolean forward, boolean backward ) { long flags = super.setProperties(speed, forward, backward); if (backward) return setReverseSpeed(flags, speed); return flags; }
graph = createGHStorage(); graph.edge(0, 1, 2, true); long flags = carEncoder.setProperties(10, true, false); graph.edge(0, 2, 2, true).setWayGeometry(Helper.createPointList(1, 2, 3, 4)).setFlags(flags); graph.edge(1, 2, 2, true);
void initUnpackingGraph(GraphHopperStorage ghStorage, CHGraph g, Weighting w) { final long flags = carEncoder.setProperties(30, true, false); double dist = 1; g.edge(10, 0).setDistance(dist).setFlags(flags);