@Test public void testSimpleGraph() { Graph g = AbstractLocationIndexTester.this.createGHStorage(new EncodingManager("car")); initSimpleGraph(g); idx = createIndex(g, -1); assertEquals(4, findID(idx, 5, 2)); assertEquals(3, findID(idx, 1.5, 2)); assertEquals(0, findID(idx, -1, -1)); if (hasEdgeSupport()) // now get the edge 1-4 and not node 6 { assertEquals(4, findID(idx, 4, 0)); } else { assertEquals(6, findID(idx, 4, 0)); } Helper.close((Closeable) g); }
@Test public void testSinglePoints32() { Graph g = createSampleGraph(new EncodingManager("car")); idx = createIndex(g, -1); // 10 or 6 assertEquals(10, findID(idx, 3.649, 1.375)); assertEquals(10, findID(idx, 3.8465748, 0.021762699)); if (hasEdgeSupport()) { assertEquals(4, findID(idx, 2.485, 1.373)); } else { assertEquals(6, findID(idx, 2.485, 1.373)); } assertEquals(0, findID(idx, 0.64628404, 0.53006625)); Helper.close((Closeable) g); }
@Test public void testSinglePoints120() { Graph g = createSampleGraph(new EncodingManager("car")); idx = createIndex(g, -1); assertEquals(1, findID(idx, 1.637, 2.23)); assertEquals(10, findID(idx, 3.649, 1.375)); assertEquals(9, findID(idx, 3.3, 2.2)); assertEquals(6, findID(idx, 3.0, 1.5)); assertEquals(10, findID(idx, 3.8, 0)); assertEquals(10, findID(idx, 3.8466, 0.021)); Helper.close((Closeable) g); }
@Test public void testNoErrorOnEdgeCase_lastIndex() { final EncodingManager encodingManager = new EncodingManager("car"); int locs = 10000; Graph g = AbstractLocationIndexTester.this.createGHStorage(new MMapDirectory(location), encodingManager, false); NodeAccess na = g.getNodeAccess(); Random rand = new Random(12); for (int i = 0; i < locs; i++) { na.setNode(i, (float) rand.nextDouble() * 10 + 10, (float) rand.nextDouble() * 10 + 10); } idx = createIndex(g, 200); Helper.close((Closeable) g); }
GraphHopperStorage createGHStorage(EncodingManager encodingManager) { return AbstractLocationIndexTester.this.createGHStorage(new RAMDirectory(), encodingManager, false); }
public Graph createSampleGraph(EncodingManager encodingManager) { Graph graph = AbstractLocationIndexTester.this.createGHStorage(encodingManager);
@Test public void testSimpleGraph2() { Graph g = AbstractLocationIndexTester.this.createGHStorage(new EncodingManager("car")); initSimpleGraph(g); idx = createIndex(g, -1); assertEquals(4, findID(idx, 5, 2)); assertEquals(3, findID(idx, 1.5, 2)); assertEquals(0, findID(idx, -1, -1)); assertEquals(6, findID(idx, 4.5, -0.5)); if (hasEdgeSupport()) { assertEquals(4, findID(idx, 4, 1)); assertEquals(4, findID(idx, 4, 0)); } else { assertEquals(6, findID(idx, 4, 1)); assertEquals(6, findID(idx, 4, 0)); } assertEquals(6, findID(idx, 4, -2)); assertEquals(5, findID(idx, 3, 3)); Helper.close((Closeable) g); }
@Test public void testGrid() { Graph g = createSampleGraph(new EncodingManager("car")); int locs = g.getNodes(); idx = createIndex(g, -1); double lat = na.getLatitude(i); double lon = na.getLongitude(i); assertEquals("nodeId:" + i + " " + (float) lat + "," + (float) lon, i, findID(idx, lat, lon)); if (hasEdgeSupport()) fullIndex = new Location2IDFullWithEdgesIndex(g); else double lat = rand.nextDouble() * 5; double lon = rand.nextDouble() * 5; int fullId = findID(fullIndex, lat, lon); double fullLat = na.getLatitude(fullId); double fullLon = na.getLongitude(fullId); float fullDist = (float) dist.calcDist(lat, lon, fullLat, fullLon); int newId = findID(idx, lat, lon); double newLat = na.getLatitude(newId); double newLon = na.getLongitude(newId); float newDist = (float) dist.calcDist(lat, lon, newLat, newLon); if (testGridIgnore(i)) { continue;
@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); } }