MobilityData / gtfs-realtime-validator

Java-based tool that validates General Transit Feed Specification (GTFS)-realtime feeds
Other
41 stars 10 forks source link

E023 issue wrongly raised for DUPLICATED trips #187

Open laurentg opened 2 hours ago

laurentg commented 2 hours ago

Summary:

E023 error (start_time does not match GTFS initial arrival_time) is wrongly raised for schedule_relationship=DUPLICATED trips.

Steps to reproduce:

Validate a GTFS-RT with a schedule_relationship=DUPLICATED trip, linked to a trip where the start time does not match RT.

Expected behavior:

Ignore E023 for DUPLICATED trips.

Observed behavior:

E023 error is raised. Example of live data:

trip start_time does not match first GTFS arrival_time [E023] _For normal scheduled trips (i.e., not defined in frequencies.txt), the GTFS-realtime trip start_time must match the first GTFS arrival_time in stoptimes.txt for this trip

Platform:

N/A

Relevant section of the code is TripDescriptorValidator::checkE023. The code never checks for duplicated schedule_relationship.

laurentg commented 2 hours ago

Relevant specification of DUPLICATED trips: https://gtfs.org/documentation/realtime/reference/#enum-schedulerelationship_1

DUPLICATED A new trip that is the same as an existing scheduled trip except for service start date and time. Used with TripUpdate.TripProperties.trip_id, TripUpdate.TripProperties.start_date, and TripUpdate.TripProperties.start_time to copy an existing trip from static GTFS but start at a different service date and/or time. [...]

(highlighted the relevant section)