@Test public void testSpeed0() { Weighting instance = new FastestWeighting(encoder); assertEquals(1.0 / 0, instance.calcWeight(createMockedEdgeIteratorState(10, encoder.setProperties(0, true, true)), false, EdgeIterator.NO_EDGE), 1e-8); // 0 / 0 returns NaN but calcWeight should not return NaN! assertEquals(1.0 / 0, instance.calcWeight(createMockedEdgeIteratorState(0, encoder.setProperties(0, true, true)), false, EdgeIterator.NO_EDGE), 1e-8); }
@Test public void testCircularJunction() { ReaderWay osmWay = new ReaderWay(0); osmWay.setTag("highway", "unclassified"); osmWay.setTag("junction", "circular"); long flags = encoder.handleWayTags(osmWay, 1, 0); EdgeIteratorState edge = GHUtility.createMockedEdgeIteratorState(0, flags); assertTrue(encoder.isRoundabout(edge)); }
@Test public void testMinWeightHasSameUnitAs_getWeight() { Weighting instance = new FastestWeighting(encoder); long flags = encoder.setProperties(encoder.getMaxSpeed(), true, true); assertEquals(instance.getMinWeight(10), instance.calcWeight(createMockedEdgeIteratorState(10, flags), false, EdgeIterator.NO_EDGE), 1e-8); }
@Test public void testLargeMaxspeed() { ReaderWay osmWay = new ReaderWay(0); osmWay.setTag("highway", "primary"); osmWay.setTag("maxspeed", "145"); long flags = encoder.handleWayTags(osmWay, 1, 0); EdgeIteratorState edge = GHUtility.createMockedEdgeIteratorState(0, flags); assertEquals(140, encoder.getMaxspeed(edge, motorVehicleInt, false), .1); assertEquals(140, encoder.getMaxspeed(edge, motorVehicleInt, true), .1); osmWay = new ReaderWay(0); osmWay.setTag("highway", "primary"); osmWay.setTag("maxspeed", "1000"); flags = encoder.handleWayTags(osmWay, 1, 0); edge = GHUtility.createMockedEdgeIteratorState(0, flags); assertEquals(140, encoder.getMaxspeed(edge, motorVehicleInt, false), .1); assertEquals(140, encoder.getMaxspeed(edge, motorVehicleInt, true), .1); }
@Test public void testFord() { ReaderWay osmWay = new ReaderWay(0); osmWay.setTag("highway", "unclassified"); osmWay.setTag("ford", "yes"); long flags = encoder.handleWayTags(osmWay, 1, 0); EdgeIteratorState edge = GHUtility.createMockedEdgeIteratorState(0, flags); assertEquals("ford", encoder.getTransportModeAsString(edge)); assertTrue(encoder.isTransportModeFord(edge.getFlags())); assertTrue(encoder.getAnnotation(edge.getFlags(), TranslationMapTest.SINGLETON.get("en")).getMessage().contains("ford")); }
@Test public void testMaxspeed() { ReaderWay osmWay = new ReaderWay(0); osmWay.setTag("highway", "primary"); osmWay.setTag("maxspeed", "10"); long flags = encoder.handleWayTags(osmWay, 1, 0); EdgeIteratorState edge = GHUtility.createMockedEdgeIteratorState(0, flags); assertEquals(10, encoder.getMaxspeed(edge, motorVehicleInt, false), .1); assertEquals(10, encoder.getMaxspeed(edge, motorVehicleInt, true), .1); osmWay = new ReaderWay(0); osmWay.setTag("highway", "primary"); osmWay.setTag("maxspeed:forward", "10"); flags = encoder.handleWayTags(osmWay, 1, 0); edge = GHUtility.createMockedEdgeIteratorState(0, flags); assertEquals(10, encoder.getMaxspeed(edge, motorVehicleInt, false), .1); assertEquals(-1, encoder.getMaxspeed(edge, motorVehicleInt, true), .1); osmWay = new ReaderWay(0); osmWay.setTag("highway", "primary"); osmWay.setTag("maxspeed:forward", "50"); osmWay.setTag("maxspeed:backward", "50"); osmWay.setTag("maxspeed", "60"); flags = encoder.handleWayTags(osmWay, 1, 0); edge = GHUtility.createMockedEdgeIteratorState(0, flags); assertEquals(50, encoder.getMaxspeed(edge, motorVehicleInt, false), .1); assertEquals(50, encoder.getMaxspeed(edge, motorVehicleInt, true), .1); }
@Test public void testHighway() { ReaderWay osmWay = new ReaderWay(0); osmWay.setTag("highway", "primary"); osmWay.setTag("surface", "sand"); osmWay.setTag("tunnel", "yes"); long flags = encoder.handleWayTags(osmWay, 1, 0); EdgeIteratorState edge = GHUtility.createMockedEdgeIteratorState(0, flags); assertEquals("primary", encoder.getHighwayAsString(edge)); assertEquals("sand", encoder.getSurfaceAsString(edge)); assertEquals("tunnel", encoder.getTransportModeAsString(edge)); assertTrue(encoder.isForward(edge, motorVehicleInt)); assertTrue(encoder.isBackward(edge, motorVehicleInt)); osmWay = new ReaderWay(0); osmWay.setTag("highway", "primary"); osmWay.setTag("oneway", "yes"); flags = encoder.handleWayTags(osmWay, 1, 0); edge = GHUtility.createMockedEdgeIteratorState(0, flags); assertTrue(encoder.isForward(edge, motorVehicleInt)); assertFalse(encoder.isBackward(edge, motorVehicleInt)); osmWay = new ReaderWay(0); osmWay.setTag("highway", "unknownX"); flags = encoder.handleWayTags(osmWay, 1, 0); edge = GHUtility.createMockedEdgeIteratorState(0, flags); assertEquals("_default", encoder.getHighwayAsString(edge)); }
@Test public void testTime() { FlagEncoder tmpEnc = new Bike2WeightFlagEncoder(); GraphHopperStorage g = new GraphBuilder(new EncodingManager(tmpEnc)).create(); Weighting w = new FastestWeighting(tmpEnc); long flags = tmpEnc.setSpeed(tmpEnc.setReverseSpeed(tmpEnc.setAccess(0, true, true), 10), 15); EdgeIteratorState edge = GHUtility.createMockedEdgeIteratorState(100000, flags); assertEquals(375 * 60 * 1000, w.calcMillis(edge, false, EdgeIterator.NO_EDGE)); assertEquals(600 * 60 * 1000, w.calcMillis(edge, true, EdgeIterator.NO_EDGE)); g.close(); } }
@Test public void testBridge() { ReaderWay osmWay = new ReaderWay(0); osmWay.setTag("highway", "primary"); osmWay.setTag("bridge", "yes"); long flags = encoder.handleWayTags(osmWay, 1, 0); EdgeIteratorState edge = GHUtility.createMockedEdgeIteratorState(0, flags); assertEquals("primary", encoder.getHighwayAsString(edge)); assertEquals("bridge", encoder.getTransportModeAsString(edge)); assertFalse(encoder.isTransportModeTunnel(edge)); assertTrue(encoder.isTransportModeBridge(edge)); osmWay = new ReaderWay(0); osmWay.setTag("highway", "primary"); osmWay.setTag("bridge", "yes"); osmWay.setTag("tunnel", "yes"); flags = encoder.handleWayTags(osmWay, 1, 0); edge = GHUtility.createMockedEdgeIteratorState(0, flags); assertEquals("bridge", encoder.getTransportModeAsString(edge)); assertFalse(encoder.isTransportModeTunnel(edge)); assertTrue(encoder.isTransportModeBridge(edge)); }
@Test public void testTunnel() { ReaderWay osmWay = new ReaderWay(0); osmWay.setTag("highway", "primary"); osmWay.setTag("tunnel", "yes"); long flags = encoder.handleWayTags(osmWay, 1, 0); EdgeIteratorState edge = GHUtility.createMockedEdgeIteratorState(0, flags); assertEquals("primary", encoder.getHighwayAsString(edge)); assertEquals("tunnel", encoder.getTransportModeAsString(edge)); assertTrue(encoder.isTransportModeTunnel(edge)); assertFalse(encoder.isTransportModeBridge(edge)); osmWay = new ReaderWay(0); osmWay.setTag("highway", "primary"); osmWay.setTag("tunnel", "yes"); osmWay.setTag("bridge", "yes"); flags = encoder.handleWayTags(osmWay, 1, 0); edge = GHUtility.createMockedEdgeIteratorState(0, flags); assertEquals("bridge", encoder.getTransportModeAsString(edge)); assertFalse(encoder.isTransportModeTunnel(edge)); assertTrue(encoder.isTransportModeBridge(edge)); }