From f7e30e38f5af51f7703b6d04bdacd6452feff978 Mon Sep 17 00:00:00 2001 From: Ian Rees Date: Tue, 27 Feb 2024 14:27:32 -0800 Subject: [PATCH 1/3] [WIP] Infinite travel speed warning --- rules/fast_travel.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rules/fast_travel.go b/rules/fast_travel.go index 62f0f3ae..96085e81 100644 --- a/rules/fast_travel.go +++ b/rules/fast_travel.go @@ -2,6 +2,7 @@ package rules import ( "fmt" + "math" "github.com/interline-io/transitland-lib/internal/xy" "github.com/interline-io/transitland-lib/tl" @@ -113,6 +114,9 @@ func (e *StopTimeFastTravelCheck) Validate(ent tl.Entity) []error { } dt := trip.StopTimes[i].ArrivalTime.Seconds - t.Seconds speed := (dx / 1000.0) / (float64(dt) / 3600.0) + if dt <= 30 && dx > 0 && (speed > maxspeed || math.IsInf(speed, 0)) { + errs = append(errs, newFastTravelError(trip.TripID, trip.StopTimes[i].StopSequence, s1, s2, dt, dx, speed, maxspeed)) + } if dt > 30 && speed > maxspeed { errs = append(errs, newFastTravelError(trip.TripID, trip.StopTimes[i].StopSequence, s1, s2, dt, dx, speed, maxspeed)) } From 60a58fdcf993f12f9914b00b6c71fd7eac83c11d Mon Sep 17 00:00:00 2001 From: Ian Rees Date: Thu, 31 Oct 2024 14:11:28 -0400 Subject: [PATCH 2/3] Fix --- rules/fast_travel.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rules/fast_travel.go b/rules/fast_travel.go index 1f201510..647812e6 100644 --- a/rules/fast_travel.go +++ b/rules/fast_travel.go @@ -117,7 +117,7 @@ func (e *StopTimeFastTravelCheck) Validate(ent tt.Entity) []error { dt := trip.StopTimes[i].ArrivalTime.Int() - t.Int() speed := (dx / 1000.0) / (float64(dt) / 3600.0) if dt <= 30 && dx > 0 && (speed > maxspeed || math.IsInf(speed, 0)) { - errs = append(errs, newFastTravelError(trip.TripID, trip.StopTimes[i].StopSequence, s1, s2, dt, dx, speed, maxspeed)) + errs = append(errs, newFastTravelError(trip.TripID.Val, trip.StopTimes[i].StopSequence.Int(), s1, s2, dt, dx, speed, maxspeed)) } if dt > 30 && speed > maxspeed { errs = append(errs, newFastTravelError(trip.TripID.Val, trip.StopTimes[i].StopSequence.Int(), s1, s2, dt, dx, speed, maxspeed)) From 29ccac9264b2a553befaa06703bb61c4abe6cbbc Mon Sep 17 00:00:00 2001 From: Ian Rees Date: Thu, 31 Oct 2024 14:25:36 -0400 Subject: [PATCH 3/3] Tests --- .../best-practices/stop-time-fast-travel-error/stop_times.txt | 4 ++++ .../best-practices/stop-time-fast-travel-error/trips.txt | 2 ++ 2 files changed, 6 insertions(+) create mode 100644 testdata/validator/best-practices/stop-time-fast-travel-error/stop_times.txt create mode 100644 testdata/validator/best-practices/stop-time-fast-travel-error/trips.txt diff --git a/testdata/validator/best-practices/stop-time-fast-travel-error/stop_times.txt b/testdata/validator/best-practices/stop-time-fast-travel-error/stop_times.txt new file mode 100644 index 00000000..b0ff296f --- /dev/null +++ b/testdata/validator/best-practices/stop-time-fast-travel-error/stop_times.txt @@ -0,0 +1,4 @@ +trip_id,arrival_time,departure_time,stop_id,stop_sequence,stop_headsign,pickup_type,drop_off_type,shape_dist_traveled,timepoint,expect_error +2230435WKDY,05:00:00,05:00:00,19TH,8,Fremont,,,,1 +2230435WKDY,05:02:00,05:02:00,12TH,9,Fremont,,,,1 +2230435WKDY,05:02:00,05:02:00,LAKE,10,Fremont,,,,1 diff --git a/testdata/validator/best-practices/stop-time-fast-travel-error/trips.txt b/testdata/validator/best-practices/stop-time-fast-travel-error/trips.txt new file mode 100644 index 00000000..41ed4505 --- /dev/null +++ b/testdata/validator/best-practices/stop-time-fast-travel-error/trips.txt @@ -0,0 +1,2 @@ +route_id,service_id,trip_id,trip_headsign,direction_id,block_id,shape_id,wheelchair_accessible,bikes_allowed,expect_error +03,WKDY,2230435WKDY,Fremont,0,,04_shp,1,1,FastTravelError \ No newline at end of file