Skip to content

Commit

Permalink
Add test for mode-specific transfers.
Browse files Browse the repository at this point in the history
  • Loading branch information
VillePihlava committed Nov 29, 2024
1 parent 4c882f4 commit 44e4d31
Showing 1 changed file with 57 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ public void testMultipleRequestsWithoutPatterns() {
reqWalk.journey().transfer().setMode(StreetMode.WALK);

var reqBike = new RouteRequest();
reqWalk.journey().transfer().setMode(StreetMode.BIKE);
reqBike.journey().transfer().setMode(StreetMode.BIKE);

var transferRequests = List.of(reqWalk, reqBike);

Expand All @@ -223,7 +223,7 @@ public void testMultipleRequestsWithPatterns() {
reqWalk.journey().transfer().setMode(StreetMode.WALK);

var reqBike = new RouteRequest();
reqWalk.journey().transfer().setMode(StreetMode.BIKE);
reqBike.journey().transfer().setMode(StreetMode.BIKE);

var transferRequests = List.of(reqWalk, reqBike);

Expand All @@ -250,6 +250,61 @@ public void testMultipleRequestsWithPatterns() {
);
}

@Test
public void testPathTransfersWithModesForMultipleRequestsWithPatterns() {
var reqWalk = new RouteRequest();
reqWalk.journey().transfer().setMode(StreetMode.WALK);

var reqBike = new RouteRequest();
reqBike.journey().transfer().setMode(StreetMode.BIKE);

var transferRequests = List.of(reqWalk, reqBike);

TestOtpModel model = model(true);
var graph = model.graph();
graph.hasStreets = true;
var timetableRepository = model.timetableRepository();

new DirectTransferGenerator(
graph,
timetableRepository,
DataImportIssueStore.NOOP,
MAX_TRANSFER_DURATION,
transferRequests
)
.buildGraph();

var walkTransfers = timetableRepository
.getAllPathTransfers()
.stream()
.filter(pathTransfer -> pathTransfer.getModes().contains(StreetMode.WALK))
.toList();
var bikeTransfers = timetableRepository
.getAllPathTransfers()
.stream()
.filter(pathTransfer -> pathTransfer.getModes().contains(StreetMode.BIKE))
.toList();
var carTransfers = timetableRepository
.getAllPathTransfers()
.stream()
.filter(pathTransfer -> pathTransfer.getModes().contains(StreetMode.CAR))
.toList();

assertTransfers(
walkTransfers,
tr(S0, 100, List.of(V0, V11), S11),
tr(S0, 100, List.of(V0, V21), S21),
tr(S11, 100, List.of(V11, V21), S21)
);
assertTransfers(
bikeTransfers,
tr(S0, 100, List.of(V0, V11), S11),
tr(S0, 100, List.of(V0, V21), S21),
tr(S11, 110, List.of(V11, V22), S22)
);
assertTransfers(carTransfers);
}

@Test
public void testTransferOnIsolatedStations() {
var otpModel = model(true, false, true);
Expand Down

0 comments on commit 44e4d31

Please sign in to comment.