Skip to content

Commit ac9cbd9

Browse files
committed
better elevatorprocessor tests
1 parent 64d5208 commit ac9cbd9

File tree

3 files changed

+60
-4
lines changed

3 files changed

+60
-4
lines changed

application/src/main/java/org/opentripplanner/street/model/edge/ElevatorHopEdge.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,10 @@ public StreetTraversalPermission getPermission() {
9898
return permission;
9999
}
100100

101+
public int getTravelTime() {
102+
return travelTime;
103+
}
104+
101105
@Override
102106
public State[] traverse(State s0) {
103107
RoutingPreferences preferences = s0.getPreferences();

application/src/test/java/org/opentripplanner/graph_builder/module/osm/moduletests/_support/TestOsmProvider.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import java.util.Arrays;
66
import java.util.List;
77
import java.util.concurrent.atomic.AtomicLong;
8+
import java.util.function.Consumer;
89
import org.opentripplanner._support.time.ZoneIds;
910
import org.opentripplanner.graph_builder.module.osm.OsmDatabase;
1011
import org.opentripplanner.osm.OsmProvider;
@@ -131,6 +132,18 @@ public Builder addWayFromNodes(long id, List<OsmNode> nodes) {
131132
return this;
132133
}
133134

135+
public Builder addWayFromNodes(Consumer<OsmWay> wayConsumer, OsmNode... nodes) {
136+
this.nodes.addAll(Arrays.stream(nodes).toList());
137+
var nodeIds = Arrays.stream(nodes).map(OsmEntity::getId).toList();
138+
var way = new OsmWay();
139+
way.setId(counter.incrementAndGet());
140+
way.addTag("highway", "pedestrian");
141+
wayConsumer.accept(way);
142+
way.getNodeRefs().addAll(nodeIds);
143+
this.ways.add(way);
144+
return this;
145+
}
146+
134147
public Builder addRelation(OsmRelation relation) {
135148
this.relations.add(relation);
136149
return this;

application/src/test/java/org/opentripplanner/street/model/edge/ElevatorHopEdgeTest.java

Lines changed: 43 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import static org.opentripplanner.graph_builder.module.osm.moduletests._support.NodeBuilder.node;
88
import static org.opentripplanner.street.model._data.StreetModelForTest.intersectionVertex;
99

10-
import java.util.List;
1110
import java.util.stream.Stream;
1211
import org.junit.jupiter.api.Test;
1312
import org.junit.jupiter.params.ParameterizedTest;
@@ -117,10 +116,50 @@ void testDuration() {
117116
osmModule.buildGraph();
118117
var edges = graph.getEdgesOfType(ElevatorHopEdge.class);
119118
assertThat(edges).hasSize(2);
120-
var edge = (ElevatorHopEdge) edges.getFirst();
121-
var from = edge.getFromVertex();
119+
for (var edge : edges) {
120+
assertThat(edge.getTravelTime()).isEqualTo(62);
121+
}
122+
}
123+
124+
@Test
125+
void testMultilevelNodeDuration() {
126+
var node0 = node(0, new WgsCoordinate(0, 0));
127+
var node1 = node(1, new WgsCoordinate(2, 0));
128+
var node = node(2, new WgsCoordinate(1, 0));
129+
node.addTag("duration", "00:01:02");
130+
node.addTag("highway", "elevator");
131+
node.addTag("level", "1;2");
132+
var provider = TestOsmProvider.of()
133+
.addWayFromNodes(way -> way.addTag("level", "1"), node0, node)
134+
.addWayFromNodes(way -> way.addTag("level", "2"), node1, node)
135+
.build();
136+
var graph = new Graph(new Deduplicator());
137+
var osmModule = OsmModule.of(
138+
provider,
139+
graph,
140+
new DefaultOsmInfoGraphBuildRepository(),
141+
new DefaultVehicleParkingRepository()
142+
).build();
143+
osmModule.buildGraph();
144+
var edges = graph.getEdgesOfType(ElevatorHopEdge.class);
145+
assertThat(edges).hasSize(2);
146+
for (var edge : edges) {
147+
assertThat(edge.getTravelTime()).isEqualTo(62);
148+
}
149+
}
150+
151+
@Test
152+
void testTraversal() {
153+
var edge = ElevatorHopEdge.createElevatorHopEdge(
154+
from,
155+
to,
156+
StreetTraversalPermission.ALL,
157+
null,
158+
2,
159+
62
160+
);
122161
var req = StreetSearchRequest.of().withMode(StreetMode.WALK);
123162
var res = edge.traverse(new State(from, req.build()))[0];
124-
assertEquals(62_000, res.getTimeDeltaMilliseconds());
163+
assertThat(res.getTimeDeltaMilliseconds()).isEqualTo(62_000);
125164
}
126165
}

0 commit comments

Comments
 (0)