From f8e645164f5827b3a18bcf07ba3f9c4c4e7c4ac4 Mon Sep 17 00:00:00 2001
From: Romain BERNARD <romain.bernard@uca.fr>
Date: Thu, 19 Sep 2024 18:03:32 +0200
Subject: [PATCH] fix max condition application for entries and exits

---
 .../Multimodal/Heuristics/MultimodalModularHeuristic.cpp      | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/algorithm/Multimodal/Heuristics/MultimodalModularHeuristic.cpp b/src/algorithm/Multimodal/Heuristics/MultimodalModularHeuristic.cpp
index df97c77..588ca10 100644
--- a/src/algorithm/Multimodal/Heuristics/MultimodalModularHeuristic.cpp
+++ b/src/algorithm/Multimodal/Heuristics/MultimodalModularHeuristic.cpp
@@ -20,7 +20,7 @@ std::vector<TransitAccess> MultimodalModularHeuristic::getBestTransitEntriesList
             const auto& lineStop : bestStationNode.getPTLinesSet()) {
             //Find the next passage lower or equal to our max entry time constraint
             auto iterator = lineStop.findNextScheduledPassage(getMaxEntryConstraint(baseRequest, bestStationNodeIdx));
-            if(iterator != lineStop.getSchedule().cbegin() && iterator != lineStop.getSchedule().cend()) { //Iterator is invalid if it points to schedule end (no result) or begin (no result lower than our constraint)
+            if(iterator != lineStop.getSchedule().cbegin()) { //Iterator is invalid if it points to schedule beginning (no result lower than our constraint)
                 --iterator; //Move iterator to the value that's under our max entry constraint
                 if(*iterator > maxDepartureTime //If we've found a valid time that's superior to our current max time
                 && *iterator > getMinEntryConstraint(baseRequest, bestStationNodeIdx)) { //and respects min entry time, replace old value
@@ -221,7 +221,7 @@ MultimodalModularHeuristic::getBestTransitExitsList(size_t baseRequestId, const
     for(const auto& shortestTransitPath : shortestTransitPaths) {
         //Check valid transit path + arrival node != starting point
         if(shortestTransitPath.getArrivalTime() >= 0 && shortestTransitPath.getArrivalNode() != entryNodeIdx
-        && shortestTransitPath.getArrivalTime() < getMaxExitConstraint(baseRequestId, entrySubRequestOriginKP, shortestTransitPath.getArrivalNode())) {
+        && shortestTransitPath.getArrivalTime() <= getMaxExitConstraint(baseRequestId, entrySubRequestOriginKP, shortestTransitPath.getArrivalNode())) {
             TransitAccess exit{shortestTransitPath.getArrivalNode(),  (uint) shortestTransitPath.getArrivalTime()};
             scoredTransitExits.emplace_back(exit, getTransitExitScore(baseRequest, exit));
         }
-- 
GitLab