From c7320bf91fd8fd8cd5555b444078a430e2b512cb Mon Sep 17 00:00:00 2001 From: miles-grant-ibigroup Date: Mon, 27 Apr 2026 17:17:42 -0400 Subject: [PATCH 1/9] remove broken implementation --- .gitignore | 4 ++- .../conveyal/gtfs/loader/JdbcTableWriter.java | 27 +++++-------------- 2 files changed, 10 insertions(+), 21 deletions(-) diff --git a/.gitignore b/.gitignore index dc693fe79..7a707e02d 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,6 @@ .idea/ target/ -lambda$*.json \ No newline at end of file +lambda$*.json + +.DS_Store \ No newline at end of file diff --git a/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java b/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java index f7300661d..4771bbf22 100644 --- a/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java +++ b/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java @@ -854,7 +854,6 @@ private int updateStopTimesForPatternStops(List patternStops, boole for (String tripId : timesForTripIds.keySet()) { // Initialize travel time with previous stop time value. int cumulativeTravelTime = timesForTripIds.get(tripId); - int cumulativeInterpolatedTime = cumulativeTravelTime; int timepointNumber = 0; double previousShapeDistTraveled = 0; // Used for calculating timepoint speed for interpolation for (PatternStop patternStop : patternStops) { @@ -870,26 +869,14 @@ private int updateStopTimesForPatternStops(List patternStops, boole if (!isTimepoint) travelTime = interpolateTimesFromTimepoints(patternStop, timepoints, timepointNumber, previousShapeDistTraveled); previousShapeDistTraveled += patternStop.shape_dist_traveled; } - int dwellTime = patternStop.default_dwell_time == Entity.INT_MISSING ? 0 : patternStop.default_dwell_time; - int oneBasedIndex = 1; + int dwellTime = patternStop.default_dwell_time == Entity.INT_MISSING || interpolateStopTimes ? 0 : patternStop.default_dwell_time; // Increase travel time by current pattern stop's travel and dwell times (and set values for update). - if (!isTimepoint && interpolateStopTimes) { - // We don't want to increment the true cumulative travel time because that adjusts the timepoint - // times later in the pattern. - // Dwell times are ignored right now as they do not fit the typical use case for interpolation. - // They may be incorporated by accounting for all dwell times in intermediate stops when calculating - // the timepoint speed. - cumulativeInterpolatedTime += travelTime; - updateStopTimeStatement.setInt(oneBasedIndex++, cumulativeInterpolatedTime); - updateStopTimeStatement.setInt(oneBasedIndex++, cumulativeInterpolatedTime); - } else { - cumulativeTravelTime += travelTime; - updateStopTimeStatement.setInt(oneBasedIndex++, cumulativeTravelTime); - cumulativeTravelTime += dwellTime; - updateStopTimeStatement.setInt(oneBasedIndex++, cumulativeTravelTime); - } - updateStopTimeStatement.setString(oneBasedIndex++, tripId); - updateStopTimeStatement.setInt(oneBasedIndex++, patternStop.stop_sequence); + cumulativeTravelTime += travelTime; + updateStopTimeStatement.setInt(1, cumulativeTravelTime); + cumulativeTravelTime += dwellTime; + updateStopTimeStatement.setInt(2, cumulativeTravelTime); + updateStopTimeStatement.setString(3, tripId); + updateStopTimeStatement.setInt(4, patternStop.stop_sequence); stopTimesTracker.addBatch(); } } From 26eeafde727f7383d3da88744de19c339e336617 Mon Sep 17 00:00:00 2001 From: miles-grant-ibigroup Date: Mon, 27 Apr 2026 17:26:52 -0400 Subject: [PATCH 2/9] correct math --- src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java b/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java index 4771bbf22..ec87767f6 100644 --- a/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java +++ b/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java @@ -806,7 +806,7 @@ private int interpolateTimesFromTimepoints( } double timepointSpeed = (nextTimepoint.shape_dist_traveled - lastTimepoint.shape_dist_traveled) / nextTimepoint.default_travel_time; - return (int) Math.round((patternStop.shape_dist_traveled - previousShapeDistTraveled) / timepointSpeed); + return (int) Math.round(Math.abs(patternStop.shape_dist_traveled - lastTimepoint.shape_dist_traveled) / timepointSpeed); } /** From ad78a7ff568ca344bfaf8534cda1b38e6a890eba Mon Sep 17 00:00:00 2001 From: miles-grant-ibigroup Date: Mon, 27 Apr 2026 17:41:03 -0400 Subject: [PATCH 3/9] protect timepoint times --- src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java b/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java index ec87767f6..1033533a6 100644 --- a/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java +++ b/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java @@ -870,6 +870,12 @@ private int updateStopTimesForPatternStops(List patternStops, boole previousShapeDistTraveled += patternStop.shape_dist_traveled; } int dwellTime = patternStop.default_dwell_time == Entity.INT_MISSING || interpolateStopTimes ? 0 : patternStop.default_dwell_time; + + // In interpolation mode, don't write changes to db for timepoints + if (interpolateStopTimes && isTimepoint) { + cumulativeTravelTime = cumulativeTravelTime + travelTime + dwellTime; + continue; + } // Increase travel time by current pattern stop's travel and dwell times (and set values for update). cumulativeTravelTime += travelTime; updateStopTimeStatement.setInt(1, cumulativeTravelTime); From 91c58993b96411fffe9af6e3041fb1821ab2e366 Mon Sep 17 00:00:00 2001 From: miles-grant-ibigroup Date: Mon, 27 Apr 2026 17:48:00 -0400 Subject: [PATCH 4/9] correct even more math --- .../java/com/conveyal/gtfs/loader/JdbcTableWriter.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java b/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java index 1033533a6..13b7839ec 100644 --- a/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java +++ b/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java @@ -787,8 +787,7 @@ private int updateStopTimesForPatternStop(ObjectNode patternStop, int previousTr private int interpolateTimesFromTimepoints( PatternStop patternStop, List timepoints, - Integer timepointNumber, - double previousShapeDistTraveled + Integer timepointNumber ) { if (timepointNumber == 0 || timepoints.size() == 1 || timepointNumber >= timepoints.size()) { throw new IllegalStateException("Issue in pattern stops which prevents interpolation (e.g. less than 2 timepoints)"); @@ -805,7 +804,7 @@ private int interpolateTimesFromTimepoints( throw new IllegalStateException("Error with stop time interpolation: timepoint or shape_dist_traveled is null"); } - double timepointSpeed = (nextTimepoint.shape_dist_traveled - lastTimepoint.shape_dist_traveled) / nextTimepoint.default_travel_time; + double timepointSpeed = nextTimepoint.shape_dist_traveled / nextTimepoint.default_travel_time; return (int) Math.round(Math.abs(patternStop.shape_dist_traveled - lastTimepoint.shape_dist_traveled) / timepointSpeed); } @@ -855,7 +854,6 @@ private int updateStopTimesForPatternStops(List patternStops, boole // Initialize travel time with previous stop time value. int cumulativeTravelTime = timesForTripIds.get(tripId); int timepointNumber = 0; - double previousShapeDistTraveled = 0; // Used for calculating timepoint speed for interpolation for (PatternStop patternStop : patternStops) { boolean isTimepoint = patternStop.timepoint == 1; if (isTimepoint) timepointNumber++; @@ -866,8 +864,7 @@ private int updateStopTimesForPatternStops(List patternStops, boole throw new IllegalStateException("Shape_dist_traveled must be defined for all stops in order to perform interpolation"); } // Override travel time if we're interpolating between timepoints. - if (!isTimepoint) travelTime = interpolateTimesFromTimepoints(patternStop, timepoints, timepointNumber, previousShapeDistTraveled); - previousShapeDistTraveled += patternStop.shape_dist_traveled; + if (!isTimepoint) travelTime = interpolateTimesFromTimepoints(patternStop, timepoints, timepointNumber); } int dwellTime = patternStop.default_dwell_time == Entity.INT_MISSING || interpolateStopTimes ? 0 : patternStop.default_dwell_time; From 8deeea98d14212b14a63c351a332716a83f7de79 Mon Sep 17 00:00:00 2001 From: miles-grant-ibigroup Date: Mon, 27 Apr 2026 18:01:16 -0400 Subject: [PATCH 5/9] tweak timepoint interpolation math --- .../java/com/conveyal/gtfs/loader/JdbcTableWriter.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java b/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java index 13b7839ec..7fc40981f 100644 --- a/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java +++ b/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java @@ -793,19 +793,19 @@ private int interpolateTimesFromTimepoints( throw new IllegalStateException("Issue in pattern stops which prevents interpolation (e.g. less than 2 timepoints)"); } PatternStop nextTimepoint = timepoints.get(timepointNumber); - PatternStop lastTimepoint = timepoints.get(timepointNumber-1); + PatternStop prevTimepoint = timepoints.get(timepointNumber-1); if ( nextTimepoint == null || nextTimepoint.default_travel_time == Entity.INT_MISSING || nextTimepoint.shape_dist_traveled == Entity.DOUBLE_MISSING || - lastTimepoint.shape_dist_traveled == Entity.DOUBLE_MISSING + prevTimepoint.shape_dist_traveled == Entity.DOUBLE_MISSING ) { throw new IllegalStateException("Error with stop time interpolation: timepoint or shape_dist_traveled is null"); } - double timepointSpeed = nextTimepoint.shape_dist_traveled / nextTimepoint.default_travel_time; - return (int) Math.round(Math.abs(patternStop.shape_dist_traveled - lastTimepoint.shape_dist_traveled) / timepointSpeed); + double timepointSpeed = (nextTimepoint.shape_dist_traveled - prevTimepoint.shape_dist_traveled) / nextTimepoint.default_travel_time; + return (int) Math.round(patternStop.shape_dist_traveled / timepointSpeed); } /** From 9eb127bfc915bfef0e08efd4a5bcc7b60a2d9de7 Mon Sep 17 00:00:00 2001 From: miles-grant-ibigroup Date: Mon, 27 Apr 2026 18:08:41 -0400 Subject: [PATCH 6/9] simplify interpolation math --- src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java b/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java index 7fc40981f..a05742668 100644 --- a/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java +++ b/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java @@ -804,7 +804,8 @@ private int interpolateTimesFromTimepoints( throw new IllegalStateException("Error with stop time interpolation: timepoint or shape_dist_traveled is null"); } - double timepointSpeed = (nextTimepoint.shape_dist_traveled - prevTimepoint.shape_dist_traveled) / nextTimepoint.default_travel_time; + // TODO: average with the previous timepoint's time? + double timepointSpeed = nextTimepoint.shape_dist_traveled / nextTimepoint.default_travel_time; return (int) Math.round(patternStop.shape_dist_traveled / timepointSpeed); } From fa9767f044572e2d5c75fb737c9880e0fce208f3 Mon Sep 17 00:00:00 2001 From: miles-grant-ibigroup Date: Tue, 28 Apr 2026 09:54:26 -0400 Subject: [PATCH 7/9] correct interpolation behavior --- .../conveyal/gtfs/loader/JdbcTableWriter.java | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java b/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java index a05742668..3826b4e50 100644 --- a/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java +++ b/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java @@ -787,7 +787,8 @@ private int updateStopTimesForPatternStop(ObjectNode patternStop, int previousTr private int interpolateTimesFromTimepoints( PatternStop patternStop, List timepoints, - Integer timepointNumber + Integer timepointNumber, + PatternStop prevPatternStop ) { if (timepointNumber == 0 || timepoints.size() == 1 || timepointNumber >= timepoints.size()) { throw new IllegalStateException("Issue in pattern stops which prevents interpolation (e.g. less than 2 timepoints)"); @@ -799,14 +800,16 @@ private int interpolateTimesFromTimepoints( nextTimepoint == null || nextTimepoint.default_travel_time == Entity.INT_MISSING || nextTimepoint.shape_dist_traveled == Entity.DOUBLE_MISSING || - prevTimepoint.shape_dist_traveled == Entity.DOUBLE_MISSING + prevTimepoint.shape_dist_traveled == Entity.DOUBLE_MISSING || + (prevPatternStop != null && prevPatternStop.shape_dist_traveled == Entity.DOUBLE_MISSING) ) { throw new IllegalStateException("Error with stop time interpolation: timepoint or shape_dist_traveled is null"); } - // TODO: average with the previous timepoint's time? - double timepointSpeed = nextTimepoint.shape_dist_traveled / nextTimepoint.default_travel_time; - return (int) Math.round(patternStop.shape_dist_traveled / timepointSpeed); + double prevSdt = prevPatternStop == null ? 0 : prevPatternStop.shape_dist_traveled; + + double timepointSpeed = (nextTimepoint.shape_dist_traveled - prevTimepoint.shape_dist_traveled) / nextTimepoint.default_travel_time; + return (int) Math.round((patternStop.shape_dist_traveled - prevSdt) / timepointSpeed); } /** @@ -854,7 +857,9 @@ private int updateStopTimesForPatternStops(List patternStops, boole for (String tripId : timesForTripIds.keySet()) { // Initialize travel time with previous stop time value. int cumulativeTravelTime = timesForTripIds.get(tripId); + int timepointCumulativeTravelTime = cumulativeTravelTime; int timepointNumber = 0; + PatternStop prevPatternStop = null; for (PatternStop patternStop : patternStops) { boolean isTimepoint = patternStop.timepoint == 1; if (isTimepoint) timepointNumber++; @@ -865,13 +870,16 @@ private int updateStopTimesForPatternStops(List patternStops, boole throw new IllegalStateException("Shape_dist_traveled must be defined for all stops in order to perform interpolation"); } // Override travel time if we're interpolating between timepoints. - if (!isTimepoint) travelTime = interpolateTimesFromTimepoints(patternStop, timepoints, timepointNumber); + if (!isTimepoint) travelTime = interpolateTimesFromTimepoints(patternStop, timepoints, timepointNumber, prevPatternStop); } - int dwellTime = patternStop.default_dwell_time == Entity.INT_MISSING || interpolateStopTimes ? 0 : patternStop.default_dwell_time; + int dwellTime = patternStop.default_dwell_time == Entity.INT_MISSING || (interpolateStopTimes && !isTimepoint) ? 0 : patternStop.default_dwell_time; // In interpolation mode, don't write changes to db for timepoints + // We don't write the travel time, since it is interpolated if (interpolateStopTimes && isTimepoint) { - cumulativeTravelTime = cumulativeTravelTime + travelTime + dwellTime; + timepointCumulativeTravelTime = timepointCumulativeTravelTime + travelTime + dwellTime; + // Reset the cumulativeTravelTime to the schedule truth + cumulativeTravelTime = timepointCumulativeTravelTime; continue; } // Increase travel time by current pattern stop's travel and dwell times (and set values for update). @@ -882,6 +890,8 @@ private int updateStopTimesForPatternStops(List patternStops, boole updateStopTimeStatement.setString(3, tripId); updateStopTimeStatement.setInt(4, patternStop.stop_sequence); stopTimesTracker.addBatch(); + + prevPatternStop = patternStop; } } return stopTimesTracker.executeRemaining(); @@ -1612,7 +1622,7 @@ private String[] parseExceptionListField(int id, String namespace, Table table, return parsedString.replaceAll("[{}]", "").split("[,]", 0); } - private String getResultSetString(int column, ResultSet resultSet) throws java.sql.SQLException { + private String getResultSetString(int column, ResultSet resultSet) throws SQLException { String resultSetString = resultSet.getString(column); return resultSetString == null ? "" : resultSetString; } From c55925cc3f518a1f2691190612b2642dec2e68ef Mon Sep 17 00:00:00 2001 From: miles-grant-ibigroup Date: Mon, 4 May 2026 12:31:05 -0400 Subject: [PATCH 8/9] support non-blank stoptime ignore --- .../conveyal/gtfs/loader/JdbcTableWriter.java | 49 ++++++++++++++++--- 1 file changed, 43 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java b/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java index 3826b4e50..90fd66728 100644 --- a/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java +++ b/src/main/java/com/conveyal/gtfs/loader/JdbcTableWriter.java @@ -262,7 +262,7 @@ public String update(Integer id, String json, boolean autoCommit) throws SQLExce * false for interpolation. */ public int normalizeStopTimesForPattern(int id, int beginWithSequence) throws SQLException { - return normalizeStopTimesForPattern(id, beginWithSequence, false); + return normalizeStopTimesForPattern(id, beginWithSequence, false, false); } /** @@ -271,7 +271,7 @@ public int normalizeStopTimesForPattern(int id, int beginWithSequence) throws SQ * * @return number of stop times updated */ - public int normalizeStopTimesForPattern(int id, int beginWithSequence, boolean interpolateStopTimes) throws SQLException { + public int normalizeStopTimesForPattern(int id, int beginWithSequence, boolean interpolateStopTimes, boolean ignoreNonBlankStopTimes) throws SQLException { try { JDBCTableReader patternStops = new JDBCTableReader( Table.PATTERN_STOP, @@ -288,7 +288,7 @@ public int normalizeStopTimesForPattern(int id, int beginWithSequence, boolean i patternStopsToNormalize.add(patternStop); } } - int stopTimesUpdated = updateStopTimesForPatternStops(patternStopsToNormalize, interpolateStopTimes); + int stopTimesUpdated = updateStopTimesForPatternStops(patternStopsToNormalize, interpolateStopTimes, ignoreNonBlankStopTimes); connection.commit(); return stopTimesUpdated; } catch (Exception e) { @@ -812,6 +812,22 @@ private int interpolateTimesFromTimepoints( return (int) Math.round((patternStop.shape_dist_traveled - prevSdt) / timepointSpeed); } + private boolean checkIfArrivalTimeExists(int stopSequence, String trip_id) throws SQLException { + String sql = String.format( + "select st.trip_id, arrival_time from %s.stop_times st where stop_sequence = ? " + + "and st.trip_id = ?", + tablePrefix + ); + PreparedStatement statement = connection.prepareStatement(sql); + statement.setInt(1, stopSequence); + statement.setString(2, trip_id); + ResultSet resultSet = statement.executeQuery(); + while (resultSet.next()) { + int arrivalTime = resultSet.getInt(2); + if (arrivalTime <= 0) return false; + } + return true; + } /** * Normalizes all stop times' arrivals and departures for an ordered set of pattern stops. This set can be the full * set of stops for a pattern or just a subset. Typical usage for this method would be to overwrite the arrival and @@ -821,8 +837,9 @@ private int interpolateTimesFromTimepoints( * @throws SQLException * * TODO? add param Set serviceIdFilters service_id values to filter trips on + * TODO: Simply logic, avoid use of continue */ - private int updateStopTimesForPatternStops(List patternStops, boolean interpolateStopTimes) throws SQLException { + private int updateStopTimesForPatternStops(List patternStops, boolean interpolateStopTimes, boolean ignoreNonBlankStopTimes) throws SQLException { PatternStop firstPatternStop = patternStops.iterator().next(); List timepoints = patternStops.stream().filter(ps -> ps.timepoint == 1).collect(Collectors.toList()); int firstStopSequence = firstPatternStop.stop_sequence; @@ -863,23 +880,43 @@ private int updateStopTimesForPatternStops(List patternStops, boole for (PatternStop patternStop : patternStops) { boolean isTimepoint = patternStop.timepoint == 1; if (isTimepoint) timepointNumber++; + boolean hasStopTime = ignoreNonBlankStopTimes ? checkIfArrivalTimeExists(patternStop.stop_sequence, tripId) : true; // Gather travel/dwell time for pattern stop (being sure to check for missing values). int travelTime = patternStop.default_travel_time == Entity.INT_MISSING ? 0 : patternStop.default_travel_time; - if (interpolateStopTimes) { + if (interpolateStopTimes || ignoreNonBlankStopTimes) { if (patternStop.shape_dist_traveled == Entity.DOUBLE_MISSING) { throw new IllegalStateException("Shape_dist_traveled must be defined for all stops in order to perform interpolation"); } // Override travel time if we're interpolating between timepoints. - if (!isTimepoint) travelTime = interpolateTimesFromTimepoints(patternStop, timepoints, timepointNumber, prevPatternStop); + if (!isTimepoint && !ignoreNonBlankStopTimes) travelTime = interpolateTimesFromTimepoints(patternStop, timepoints, timepointNumber, prevPatternStop); + + if (ignoreNonBlankStopTimes && !hasStopTime &&patternStop.stop_sequence != 0) travelTime = interpolateTimesFromTimepoints(patternStop, timepoints, timepointNumber, prevPatternStop); } int dwellTime = patternStop.default_dwell_time == Entity.INT_MISSING || (interpolateStopTimes && !isTimepoint) ? 0 : patternStop.default_dwell_time; + // In non-blank stop time mode, only update if our stoptime is blank + if (ignoreNonBlankStopTimes) { + if (hasStopTime) { + cumulativeTravelTime = cumulativeTravelTime + travelTime + dwellTime; + prevPatternStop = patternStop; + continue; + } + + updateStopTimeStatement.setInt(1, cumulativeTravelTime + travelTime); + updateStopTimeStatement.setInt(2, cumulativeTravelTime + travelTime); + updateStopTimeStatement.setString(3, tripId); + updateStopTimeStatement.setInt(4, patternStop.stop_sequence); + stopTimesTracker.addBatch(); + } + + // In interpolation mode, don't write changes to db for timepoints // We don't write the travel time, since it is interpolated if (interpolateStopTimes && isTimepoint) { timepointCumulativeTravelTime = timepointCumulativeTravelTime + travelTime + dwellTime; // Reset the cumulativeTravelTime to the schedule truth cumulativeTravelTime = timepointCumulativeTravelTime; + prevPatternStop = patternStop; continue; } // Increase travel time by current pattern stop's travel and dwell times (and set values for update). From bf392d854df302f323a6c23d90660637c1abf4a1 Mon Sep 17 00:00:00 2001 From: miles-grant-ibigroup Date: Mon, 4 May 2026 12:34:46 -0400 Subject: [PATCH 9/9] update tests for new method signature --- src/test/java/com/conveyal/gtfs/loader/JDBCTableWriterTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/com/conveyal/gtfs/loader/JDBCTableWriterTest.java b/src/test/java/com/conveyal/gtfs/loader/JDBCTableWriterTest.java index 171278a18..f5d949e66 100644 --- a/src/test/java/com/conveyal/gtfs/loader/JDBCTableWriterTest.java +++ b/src/test/java/com/conveyal/gtfs/loader/JDBCTableWriterTest.java @@ -874,7 +874,7 @@ private static String normalizeStopsForPattern( LOG.info("Updated pattern output: {}", updatedPatternOutput); // Normalize stop times. JdbcTableWriter updateTripWriter = createTestTableWriter(tripsTable); - updateTripWriter.normalizeStopTimesForPattern(pattern.id, 0, interpolateStopTimes); + updateTripWriter.normalizeStopTimesForPattern(pattern.id, 0, interpolateStopTimes, false); return createdTrip.trip_id; }