From 869407fed7a20b25f1bb148cd783624f4af4a633 Mon Sep 17 00:00:00 2001 From: Nicole Qiu Date: Sun, 20 Oct 2024 11:49:40 -0400 Subject: [PATCH 1/5] add logic for final time delay bug --- src/utils/RouteUtilsV3.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/utils/RouteUtilsV3.js b/src/utils/RouteUtilsV3.js index 46c78a10..b7873387 100644 --- a/src/utils/RouteUtilsV3.js +++ b/src/utils/RouteUtilsV3.js @@ -254,6 +254,30 @@ async function getSectionedRoutes( isArriveBy, ); + LogUtils.log('new testing delay 1'); + LogUtils.log(finalBusRoutes.length); + + // finalBusRoutes.forEach((route) => { + // let totalDelay = 0; + // const { directions } = route; + // LogUtils.log('testing delay'); + // for (let i = 0; i < directions.length; i++) { + // const segment = directions[i]; + // const { delay } = segment; + // LogUtils.log('heres the delay'); + // LogUtils.log(delay); + // if (delay !== null) { + // totalDelay += delay; + // } + // } + // if (directions[-1].type === 'walk') { + // directions[-1].delay = totalDelay; + // } + // }); + + LogUtils.log('testing'); + LogUtils.log(finalBusRoutes); + finalBusRoutes.forEach((route) => { if (originBusStopName !== null && route.directions From 839c6c8b8e2e3dfd05c59ba262f0b7408a89757a Mon Sep 17 00:00:00 2001 From: Nicole Qiu Date: Sun, 20 Oct 2024 11:52:00 -0400 Subject: [PATCH 2/5] edit --- src/utils/RouteUtilsV3.js | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/utils/RouteUtilsV3.js b/src/utils/RouteUtilsV3.js index b7873387..25eea3fe 100644 --- a/src/utils/RouteUtilsV3.js +++ b/src/utils/RouteUtilsV3.js @@ -257,23 +257,23 @@ async function getSectionedRoutes( LogUtils.log('new testing delay 1'); LogUtils.log(finalBusRoutes.length); - // finalBusRoutes.forEach((route) => { - // let totalDelay = 0; - // const { directions } = route; - // LogUtils.log('testing delay'); - // for (let i = 0; i < directions.length; i++) { - // const segment = directions[i]; - // const { delay } = segment; - // LogUtils.log('heres the delay'); - // LogUtils.log(delay); - // if (delay !== null) { - // totalDelay += delay; - // } - // } - // if (directions[-1].type === 'walk') { - // directions[-1].delay = totalDelay; - // } - // }); + finalBusRoutes.forEach((route) => { + let totalDelay = 0; + const { directions } = route; + LogUtils.log('testing delay'); + for (let i = 0; i < directions.length; i++) { + const segment = directions[i]; + const { delay } = segment; + LogUtils.log('heres the delay'); + LogUtils.log(delay); + if (delay !== null) { + totalDelay += delay; + } + } + if (directions[-1].type === 'walk') { + directions[-1].delay = totalDelay; + } + }); LogUtils.log('testing'); LogUtils.log(finalBusRoutes); From 14517f5c720e56674636203c5a665ca95e1d9e58 Mon Sep 17 00:00:00 2001 From: Nicole Qiu Date: Wed, 23 Oct 2024 10:29:25 -0400 Subject: [PATCH 3/5] add logic to return final delay --- src/utils/RouteUtilsV3.js | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/src/utils/RouteUtilsV3.js b/src/utils/RouteUtilsV3.js index 25eea3fe..f73ed584 100644 --- a/src/utils/RouteUtilsV3.js +++ b/src/utils/RouteUtilsV3.js @@ -254,30 +254,23 @@ async function getSectionedRoutes( isArriveBy, ); - LogUtils.log('new testing delay 1'); - LogUtils.log(finalBusRoutes.length); - + // For each bus route, accumulate the total delay from all segments, and if the final segment is a 'walk' type, + // assign the total delay to the last 'walk' segment. finalBusRoutes.forEach((route) => { let totalDelay = 0; - const { directions } = route; - LogUtils.log('testing delay'); + const directions = route.directions; for (let i = 0; i < directions.length; i++) { const segment = directions[i]; - const { delay } = segment; - LogUtils.log('heres the delay'); - LogUtils.log(delay); + const delay = segment.delay; if (delay !== null) { totalDelay += delay; } } - if (directions[-1].type === 'walk') { - directions[-1].delay = totalDelay; + if (directions[directions.length - 1].type === 'walk' && totalDelay > 0) { + directions[directions.length - 1].delay = totalDelay; } }); - LogUtils.log('testing'); - LogUtils.log(finalBusRoutes); - finalBusRoutes.forEach((route) => { if (originBusStopName !== null && route.directions From 2987c5856f7691480bf2553f0c1a474cbdb9d7f0 Mon Sep 17 00:00:00 2001 From: Nicole Qiu Date: Wed, 23 Oct 2024 11:44:46 -0400 Subject: [PATCH 4/5] fix logic --- src/utils/RouteUtilsV3.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/utils/RouteUtilsV3.js b/src/utils/RouteUtilsV3.js index f73ed584..12026de0 100644 --- a/src/utils/RouteUtilsV3.js +++ b/src/utils/RouteUtilsV3.js @@ -254,21 +254,22 @@ async function getSectionedRoutes( isArriveBy, ); - // For each bus route, accumulate the total delay from all segments, and if the final segment is a 'walk' type, - // assign the total delay to the last 'walk' segment. + // Iterates over each route in finalBusRoutes, calculates total delay from bus segments, + // and applies this delay to the 'walk' segment if it follows a delayed bus segment. finalBusRoutes.forEach((route) => { let totalDelay = 0; - const directions = route.directions; + const { directions } = route; + for (let i = 0; i < directions.length; i++) { const segment = directions[i]; - const delay = segment.delay; - if (delay !== null) { + const { delay } = segment; + + if (segment.type === 'walk' && totalDelay > 0) { + segment.delay = totalDelay; + } else if (delay !== null) { totalDelay += delay; } } - if (directions[directions.length - 1].type === 'walk' && totalDelay > 0) { - directions[directions.length - 1].delay = totalDelay; - } }); finalBusRoutes.forEach((route) => { From c22a769b60aa3ddbcb22d82db3b26511d8d73592 Mon Sep 17 00:00:00 2001 From: Nicole Qiu Date: Wed, 6 Nov 2024 17:41:46 -0500 Subject: [PATCH 5/5] add time delay for segments before first delay --- src/utils/RouteUtilsV3.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/utils/RouteUtilsV3.js b/src/utils/RouteUtilsV3.js index 12026de0..083b709c 100644 --- a/src/utils/RouteUtilsV3.js +++ b/src/utils/RouteUtilsV3.js @@ -258,11 +258,20 @@ async function getSectionedRoutes( // and applies this delay to the 'walk' segment if it follows a delayed bus segment. finalBusRoutes.forEach((route) => { let totalDelay = 0; + let firstDelay = null; + let foundFirstDelay = false; + let firstDelayIndex = 0; + const { directions } = route; for (let i = 0; i < directions.length; i++) { const segment = directions[i]; const { delay } = segment; + if (!foundFirstDelay && delay !== null) { + firstDelay = delay; + foundFirstDelay = true; + firstDelayIndex = i; + } if (segment.type === 'walk' && totalDelay > 0) { segment.delay = totalDelay; @@ -270,6 +279,15 @@ async function getSectionedRoutes( totalDelay += delay; } } + + // assign delay to walking route before first bus delay + let i = 0; + if (foundFirstDelay) { + while (directions[i].type === 'walk' && firstDelay != null && i < firstDelayIndex) { + directions[i].delay = firstDelay; + i += 1; + } + } }); finalBusRoutes.forEach((route) => {