Search in sources :

Example 16 with GHIntHashSet

use of com.graphhopper.coll.GHIntHashSet in project graphhopper by graphhopper.

the class TunnelElevationInterpolatorTest method interpolatesElevationOfTunnelWithSingleOuterNode.

@Test
public void interpolatesElevationOfTunnelWithSingleOuterNode() {
    // @formatter:off
    /*
		 * Graph structure:
		 * 0--T--1--T--2-----3--T--4
         */
    // @formatter:on
    NodeAccess na = graph.getNodeAccess();
    na.setNode(0, 0, 0, 0);
    na.setNode(1, 10, 0, 00);
    na.setNode(2, 20, 0, 10);
    na.setNode(3, 30, 0, 20);
    na.setNode(4, 40, 0, 00);
    EdgeIteratorState edge01 = graph.edge(0, 1, 10, true);
    EdgeIteratorState edge12 = graph.edge(1, 2, 10, true);
    EdgeIteratorState edge23 = graph.edge(2, 3, 10, true);
    EdgeIteratorState edge34 = graph.edge(3, 4, 10, true);
    edge01.setFlags(dataFlagEncoder.handleWayTags(interpolatableWay, 1, 0));
    edge12.setFlags(dataFlagEncoder.handleWayTags(interpolatableWay, 1, 0));
    edge23.setFlags(dataFlagEncoder.handleWayTags(normalWay, 1, 0));
    edge34.setFlags(dataFlagEncoder.handleWayTags(interpolatableWay, 1, 0));
    final GHIntHashSet outerNodeIds = new GHIntHashSet();
    final GHIntHashSet innerNodeIds = new GHIntHashSet();
    gatherOuterAndInnerNodeIdsOfStructure(edge01, outerNodeIds, innerNodeIds);
    assertEquals(GHIntHashSet.from(2), outerNodeIds);
    assertEquals(GHIntHashSet.from(0, 1), innerNodeIds);
    edgeElevationInterpolator.execute();
    assertEquals(10, na.getElevation(0), PRECISION);
    assertEquals(10, na.getElevation(1), PRECISION);
    assertEquals(10, na.getElevation(2), PRECISION);
    assertEquals(20, na.getElevation(3), PRECISION);
    assertEquals(20, na.getElevation(4), PRECISION);
}
Also used : NodeAccess(com.graphhopper.storage.NodeAccess) GHIntHashSet(com.graphhopper.coll.GHIntHashSet) EdgeIteratorState(com.graphhopper.util.EdgeIteratorState) Test(org.junit.Test)

Example 17 with GHIntHashSet

use of com.graphhopper.coll.GHIntHashSet in project graphhopper by graphhopper.

the class TunnelElevationInterpolatorTest method doesNotInterpolateElevationOfTunnelWithZeroOuterNodes.

@Test
public void doesNotInterpolateElevationOfTunnelWithZeroOuterNodes() {
    // @formatter:off
    /*
         * Graph structure:
		 * 0--T--1--T--2     3--T--4
		 * Tunnel 0-1-2 has a single outer node 2.
         */
    // @formatter:on
    NodeAccess na = graph.getNodeAccess();
    na.setNode(0, 0, 0, 0);
    na.setNode(1, 10, 0, 0);
    na.setNode(2, 20, 0, 10);
    na.setNode(3, 30, 0, 20);
    na.setNode(4, 40, 0, 0);
    EdgeIteratorState edge01 = graph.edge(0, 1, 10, true);
    EdgeIteratorState edge12 = graph.edge(1, 2, 10, true);
    EdgeIteratorState edge34 = graph.edge(3, 4, 10, true);
    edge01.setFlags(dataFlagEncoder.handleWayTags(interpolatableWay, 1, 0));
    edge12.setFlags(dataFlagEncoder.handleWayTags(interpolatableWay, 1, 0));
    edge34.setFlags(dataFlagEncoder.handleWayTags(interpolatableWay, 1, 0));
    final GHIntHashSet outerNodeIds = new GHIntHashSet();
    final GHIntHashSet innerNodeIds = new GHIntHashSet();
    gatherOuterAndInnerNodeIdsOfStructure(edge01, outerNodeIds, innerNodeIds);
    assertEquals(GHIntHashSet.from(), outerNodeIds);
    assertEquals(GHIntHashSet.from(0, 1, 2), innerNodeIds);
    edgeElevationInterpolator.execute();
    assertEquals(0, na.getElevation(0), PRECISION);
    assertEquals(0, na.getElevation(1), PRECISION);
    assertEquals(10, na.getElevation(2), PRECISION);
    assertEquals(20, na.getElevation(3), PRECISION);
    assertEquals(0, na.getElevation(4), PRECISION);
}
Also used : NodeAccess(com.graphhopper.storage.NodeAccess) GHIntHashSet(com.graphhopper.coll.GHIntHashSet) EdgeIteratorState(com.graphhopper.util.EdgeIteratorState) Test(org.junit.Test)

Example 18 with GHIntHashSet

use of com.graphhopper.coll.GHIntHashSet in project graphhopper by graphhopper.

the class TunnelElevationInterpolatorTest method interpolatesElevationOfTunnelWithTwoOuterNodes.

@Test
public void interpolatesElevationOfTunnelWithTwoOuterNodes() {
    // @formatter:off
    /*
		 * Graph structure:
		 * 0-----1--T--2--T--3-----4
         */
    // @formatter:on
    NodeAccess na = graph.getNodeAccess();
    na.setNode(0, 0, 0, 0);
    na.setNode(1, 10, 0, 10);
    na.setNode(2, 20, 0, 1000);
    na.setNode(3, 30, 0, 30);
    na.setNode(4, 40, 0, 40);
    EdgeIteratorState edge01 = graph.edge(0, 1, 10, true);
    EdgeIteratorState edge12 = graph.edge(1, 2, 10, true);
    EdgeIteratorState edge23 = graph.edge(2, 3, 10, true);
    EdgeIteratorState edge34 = graph.edge(3, 4, 10, true);
    edge01.setFlags(dataFlagEncoder.handleWayTags(normalWay, 1, 0));
    edge12.setFlags(dataFlagEncoder.handleWayTags(interpolatableWay, 1, 0));
    edge23.setFlags(dataFlagEncoder.handleWayTags(interpolatableWay, 1, 0));
    edge34.setFlags(dataFlagEncoder.handleWayTags(normalWay, 1, 0));
    final GHIntHashSet outerNodeIds = new GHIntHashSet();
    final GHIntHashSet innerNodeIds = new GHIntHashSet();
    gatherOuterAndInnerNodeIdsOfStructure(edge12, outerNodeIds, innerNodeIds);
    assertEquals(GHIntHashSet.from(1, 3), outerNodeIds);
    assertEquals(GHIntHashSet.from(2), innerNodeIds);
    edgeElevationInterpolator.execute();
    assertEquals(0, na.getElevation(0), PRECISION);
    assertEquals(10, na.getElevation(1), PRECISION);
    assertEquals(20, na.getElevation(2), PRECISION);
    assertEquals(30, na.getElevation(3), PRECISION);
    assertEquals(40, na.getElevation(4), PRECISION);
}
Also used : NodeAccess(com.graphhopper.storage.NodeAccess) GHIntHashSet(com.graphhopper.coll.GHIntHashSet) EdgeIteratorState(com.graphhopper.util.EdgeIteratorState) Test(org.junit.Test)

Aggregations

GHIntHashSet (com.graphhopper.coll.GHIntHashSet)18 Test (org.junit.Test)12 EdgeIteratorState (com.graphhopper.util.EdgeIteratorState)8 NodeAccess (com.graphhopper.storage.NodeAccess)6 GHPoint (com.graphhopper.util.shapes.GHPoint)4 Graph (com.graphhopper.storage.Graph)3 ArrayList (java.util.ArrayList)3 IntSet (com.carrotsearch.hppc.IntSet)2 IntPredicate (com.carrotsearch.hppc.predicates.IntPredicate)2 GHBitSet (com.graphhopper.coll.GHBitSet)2 GHTBitSet (com.graphhopper.coll.GHTBitSet)2 DefaultEdgeFilter (com.graphhopper.routing.util.DefaultEdgeFilter)2 Circle (com.graphhopper.util.shapes.Circle)2 Shape (com.graphhopper.util.shapes.Shape)2 IntArrayList (com.carrotsearch.hppc.IntArrayList)1 IntCursor (com.carrotsearch.hppc.cursors.IntCursor)1 IntProcedure (com.carrotsearch.hppc.procedures.IntProcedure)1 GHIntObjectHashMap (com.graphhopper.coll.GHIntObjectHashMap)1 CarFlagEncoder (com.graphhopper.routing.util.CarFlagEncoder)1 EdgeFilter (com.graphhopper.routing.util.EdgeFilter)1