From f63e0ffb06445fb5243544066caaa46399d88269 Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup Date: Thu, 9 Jul 2026 18:25:38 -0400 Subject: [PATCH 1/2] fix(RemoveNonRev...): Fix criterion for non-rev trips. --- .../RemoveNonRevenueTripsTransformation.java | 2 +- .../RemoveNonRevenueTripsTransformationTest.java | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/conveyal/datatools/manager/models/transform/RemoveNonRevenueTripsTransformation.java b/src/main/java/com/conveyal/datatools/manager/models/transform/RemoveNonRevenueTripsTransformation.java index a4269860d..972f8f227 100644 --- a/src/main/java/com/conveyal/datatools/manager/models/transform/RemoveNonRevenueTripsTransformation.java +++ b/src/main/java/com/conveyal/datatools/manager/models/transform/RemoveNonRevenueTripsTransformation.java @@ -231,7 +231,7 @@ private boolean isRevenueStopTime( private boolean isRevenuePickupDropOff(CsvReader csvReader, Map fieldIndexes) throws IOException { String pickup = csvReader.get(fieldIndexes.get(PICKUP_FIELD_NAME)); String dropOff = csvReader.get(fieldIndexes.get(DROP_OFF_FIELD_NAME)); - return !"1".equals(pickup) && !"1".equals(dropOff); + return !"1".equals(pickup) || !"1".equals(dropOff); } /** diff --git a/src/test/java/com/conveyal/datatools/manager/models/transform/RemoveNonRevenueTripsTransformationTest.java b/src/test/java/com/conveyal/datatools/manager/models/transform/RemoveNonRevenueTripsTransformationTest.java index ab738dfb6..cae5496f0 100644 --- a/src/test/java/com/conveyal/datatools/manager/models/transform/RemoveNonRevenueTripsTransformationTest.java +++ b/src/test/java/com/conveyal/datatools/manager/models/transform/RemoveNonRevenueTripsTransformationTest.java @@ -107,15 +107,16 @@ static Stream createNonRevenueCases() { return Stream.of( Arguments.of( List.of( - "non-revenue-trip1,1,", "non-revenue-trip1,1,1", "non-revenue-trip1,1,1", - "non-revenue-trip1,1," + "non-revenue-trip1,1,1", + "non-revenue-trip1,1,1" ), List.of( "revenue-trip,0,0", "revenue-trip,1,1", - "revenue-trip,1,1", + "revenue-trip,2,1", + "revenue-trip,1,2", "revenue-trip,0,0" ), fieldIndexes @@ -131,8 +132,8 @@ static Stream createNonRevenueCases() { List.of( "revenue-trip,0,0,2,2", "revenue-trip,0,0,1,1", - "revenue-trip,0,0,2,2", - "revenue-trip,0,0,2,2" + "revenue-trip,0,0,2,1", + "revenue-trip,0,0,1,2" ), allFieldIndexes ) From 00dfb8b69e5dcb8534f904eba9708c18b7ff67da Mon Sep 17 00:00:00 2001 From: binh-dam-ibigroup Date: Tue, 14 Jul 2026 11:16:19 -0400 Subject: [PATCH 2/2] improvement(RemoveNonRev...): Report changes only if rows are deleted. --- .../RemoveNonRevenueTripsTransformation.java | 34 +++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/conveyal/datatools/manager/models/transform/RemoveNonRevenueTripsTransformation.java b/src/main/java/com/conveyal/datatools/manager/models/transform/RemoveNonRevenueTripsTransformation.java index 972f8f227..b3a05cfb1 100644 --- a/src/main/java/com/conveyal/datatools/manager/models/transform/RemoveNonRevenueTripsTransformation.java +++ b/src/main/java/com/conveyal/datatools/manager/models/transform/RemoveNonRevenueTripsTransformation.java @@ -95,21 +95,27 @@ public void transform(FeedTransformZipTarget zipTarget, MonitorableJob.Status st LOG.warn("No revenue trips! All trips and related stop times will be removed."); } - writeToFile( - zipTarget, - "stop_times.txt", - revenueStopTimes.getStopTimeRows().values().stream().flatMap(List::stream).collect(Collectors.toList()), - headersForStopTime, - revenueStopTimes.getDeletedRowCount() - ); + // Only update tables and report change if rows are removed. - writeToFile( - zipTarget, - "trips.txt", - revenueTrips.tripRows, - headersForTrips, - revenueTrips.getDeletedRowCount() - ); + if (revenueStopTimes.getDeletedRowCount() != 0) { + writeToFile( + zipTarget, + "stop_times.txt", + revenueStopTimes.getStopTimeRows().values().stream().flatMap(List::stream).collect(Collectors.toList()), + headersForStopTime, + revenueStopTimes.getDeletedRowCount() + ); + } + + if (revenueTrips.getDeletedRowCount() != 0) { + writeToFile( + zipTarget, + "trips.txt", + revenueTrips.tripRows, + headersForTrips, + revenueTrips.getDeletedRowCount() + ); + } } catch (Exception e) { LOG.error("Unknown error encountered while attempting to remove non revenue trip from zip file.", e); }