Skip to content

Commit

Permalink
Merge pull request #96 from daniel-heppner-ibigroup/main
Browse files Browse the repository at this point in the history
Remove default values for reluctances
  • Loading branch information
leonardehrenfried authored Jan 24, 2025
2 parents 23d3aa3 + cabb5e5 commit 6b3749e
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 24 deletions.
8 changes: 4 additions & 4 deletions src/main/java/org/opentripplanner/client/OtpApiClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,10 @@ public TripPlan plan(TripPlanParameters req) throws IOException {
req.time().toLocalTime().truncatedTo(ChronoUnit.SECONDS).toString(),
req.searchDirection().isArriveBy(),
req.searchWindow().map(sw -> "searchWindow : %d".formatted(sw.toSeconds())).orElse(""),
req.walkReluctance(),
req.carReluctance(),
req.bikeReluctance(),
req.bikeWalkingReluctance(),
req.walkReluctance().map(Object::toString).orElse("null"),
req.carReluctance().map(Object::toString).orElse("null"),
req.bikeReluctance().map(Object::toString).orElse("null"),
req.bikeWalkingReluctance().map(Object::toString).orElse("null"),
req.wheelchair(),
req.banned().map(banned -> "banned : %s".formatted(banned)).orElse(""),
req.optimize(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ public final class TripPlanParameters {
private final Set<RequestMode> modes;
private final SearchDirection searchDirection;
@Nullable private final Duration searchWindow;
private final float walkReluctance;
private final float carReluctance;
private final float bikeReluctance;
private final float bikeWalkingReluctance;
@Nullable private final Float walkReluctance;
@Nullable private final Float carReluctance;
@Nullable private final Float bikeReluctance;
@Nullable private final Float bikeWalkingReluctance;
private final boolean wheelchair;
@Nullable private final InputBanned banned;
private final OptimizeType optimize;
Expand All @@ -36,10 +36,10 @@ public TripPlanParameters(
Set<RequestMode> modes,
SearchDirection searchDirection,
@Nullable Duration searchWindow,
float walkReluctance,
float carReluctance,
float bikeReluctance,
float bikeWalkingReluctance,
@Nullable Float walkReluctance,
@Nullable Float carReluctance,
@Nullable Float bikeReluctance,
@Nullable Float bikeWalkingReluctance,
boolean wheelchair,
@Nullable InputBanned banned,
OptimizeType optimize,
Expand Down Expand Up @@ -110,20 +110,20 @@ public SearchDirection searchDirection() {
return searchDirection;
}

public float walkReluctance() {
return walkReluctance;
public Optional<Float> walkReluctance() {
return Optional.ofNullable(walkReluctance);
}

public float carReluctance() {
return carReluctance;
public Optional<Float> carReluctance() {
return Optional.ofNullable(carReluctance);
}

public float bikeReluctance() {
return bikeReluctance;
public Optional<Float> bikeReluctance() {
return Optional.ofNullable(bikeReluctance);
}

public float bikeWalkingReluctance() {
return bikeWalkingReluctance;
public Optional<Float> bikeWalkingReluctance() {
return Optional.ofNullable(bikeWalkingReluctance);
}

public boolean wheelchair() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ public class TripPlanParametersBuilder {
private Set<RequestMode> modes;
private SearchDirection searchDirection = SearchDirection.DEPART_AT;
private Duration searchWindow;
private float walkReluctance = 1.4f;
private float carReluctance = 3.0f;
private float bikeReluctance = 2.0f;
private float bikeWalkingReluctance = 5.0f;
private Float walkReluctance;
private Float carReluctance;
private Float bikeReluctance;
private Float bikeWalkingReluctance;
private OptimizeType optimize = OptimizeType.QUICK;
private InputTriangle triangle;
private int numItineraries = 5;
Expand Down
26 changes: 26 additions & 0 deletions src/test/java/org/opentripplanner/IntegrationTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import java.util.function.Predicate;
import org.junit.jupiter.api.Disabled;
Expand Down Expand Up @@ -214,6 +215,31 @@ public void planPlaceToPlaceWithTriangle() throws IOException {
assertTrue(fastLeg.duration().getSeconds() < saveLeg.duration().getSeconds());
}

@Test
public void planWithReluctance() throws IOException {
TripPlanParametersBuilder builder =
TripPlanParameters.builder()
.withFrom(OSLO_WEST)
.withTo(OSLO_EAST)
.withTime(LocalDateTime.now())
.withModes(Set.of(RequestMode.WALK, RequestMode.TRANSIT));

assertEquals(Optional.empty(), builder.build().walkReluctance());
assertEquals(Optional.empty(), builder.build().bikeReluctance());
assertEquals(Optional.empty(), builder.build().carReluctance());
assertEquals(Optional.empty(), builder.build().bikeWalkingReluctance());

// Plan with high walk reluctance - should prefer transit
builder.withWalkReluctance(5.0f);
builder.withBikeReluctance(4.0f);
builder.withCarReluctance(3.0f);
builder.withBikeWalkingReluctance(2.0f);
assertEquals(Optional.of(5.0f), builder.build().walkReluctance());
assertEquals(Optional.of(4.0f), builder.build().bikeReluctance());
assertEquals(Optional.of(3.0f), builder.build().carReluctance());
assertEquals(Optional.of(2.0f), builder.build().bikeWalkingReluctance());
}

@Test
public void arriveByPlan() throws IOException {

Expand Down

0 comments on commit 6b3749e

Please sign in to comment.