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);
}
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);
}
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);
}
Aggregations