MobilityData / gtfs-validator

Canonical GTFS Validator project for schedule (static) files.
https://gtfs-validator.mobilitydata.org/
Apache License 2.0
288 stars 101 forks source link

feat: new booking_rules.txt validation notices #1866

Closed cka-y closed 1 month ago

cka-y commented 1 month ago

Summary:

This pull request enhances the BookingRulesEntityValidator by adding new validation checks and corresponding notices. It also updates the test cases to cover these new validations.

Added missing_prior_notice_durantion_min, missing_prior_day_bokking_field_value, forbidden_prior_notice_start_time and missing_prior_notice_start_time notices to the validator

image

Please make sure these boxes are checked before submitting your pull request - thanks!

github-actions[bot] commented 1 month ago

📝 Acceptance Test Report

📋 Summary

✅ The rule acceptance has passed for commit de49dd12c857c2ac801709cff70968f60eefada0 Download the full acceptance test report here (report will disappear after 90 days).

📊 Notices Comparison

New Errors (6 out of 1588 datasets, ~0%) ✅

Details of new errors due to code change, which is less than the provided threshold of 1%.

| Dataset | Notice Code | |---------|-------------| | us-colorado-eco-transit-gtfs-2045 | forbidden_prior_notice_start_time | | us-colorado-gunnison-valley-rta-gtfs-2048 | forbidden_prior_notice_start_time | | us-colorado-prowers-area-transit-gtfs-2049 | forbidden_prior_notice_start_time | | us-colorado-avon-transit-gtfs-2040 | missing_prior_day_booking_field_value | | us-colorado-eco-transit-gtfs-2045 | missing_prior_day_booking_field_value | | us-colorado-envida-gtfs-2044 | missing_prior_day_booking_field_value | | us-colorado-estes-transit-gtfs-2047 | missing_prior_day_booking_field_value | | us-colorado-prowers-area-transit-gtfs-2049 | missing_prior_day_booking_field_value |
Dropped Errors (0 out of 1588 datasets, ~0%) ✅

No changes were detected due to the code change.

New Warnings (0 out of 1588 datasets, ~0%) ✅

No changes were detected due to the code change.

Dropped Warnings (0 out of 1588 datasets, ~0%) ✅

No changes were detected due to the code change.

🛡️ Corruption Check

0 out of 1588 sources (~0 %) are corrupted.

⏱️ Performance Assessment

📈 Validation Time

Assess the performance in terms of seconds taken for the validation process.

| Time Metric | Dataset ID | Reference (s) | Latest (s) | Difference (s) | |-----------------------------|-------------------|----------------|----------------|----------------| | Average | -- | 4.44 | 4.27 | ⬇️-0.18 | | Median | -- | 1.43 | 1.48 | ⬆️+0.05 | | Standard Deviation | -- | 14.52 | 12.26 | ⬇️-2.26 | | Minimum in References Reports | us-michigan-detroit-people-mover-gtfs-417 | 0.52 | 0.61 | ⬆️+0.09 | | Maximum in Reference Reports | gb-unknown-uk-aggregate-feed-gtfs-2014 | 289.47 | 294.15 | ⬆️+4.67 | | Minimum in Latest Reports | us-california-city-of-wasco-gtfs-1788 | 0.56 | 0.56 | ⬇️-0.01 | | Maximum in Latest Reports | gb-unknown-uk-aggregate-feed-gtfs-2014 | 289.47 | 294.15 | ⬆️+4.67 |
tzujenchanmbd commented 1 month ago

@cka-y 1 question for the missing_prior_notice_start_time notice in the screenshot -

The notice should be triggered when there is no prior_notice_start_time value AND prior_notice_start_day value exists. It's odd that we still have a priorNoticeStartTime value 00:00:00 there?

github-actions[bot] commented 1 month ago

📝 Acceptance Test Report

📋 Summary

✅ The rule acceptance has passed for commit 738e3fbbea68e8dd9cd488c5a443a162811d75bf Download the full acceptance test report here (report will disappear after 90 days).

📊 Notices Comparison

New Errors (6 out of 1588 datasets, ~0%) ✅

Details of new errors due to code change, which is less than the provided threshold of 1%.

| Dataset | Notice Code | |---------|-------------| | us-colorado-eco-transit-gtfs-2045 | forbidden_prior_notice_start_time | | us-colorado-gunnison-valley-rta-gtfs-2048 | forbidden_prior_notice_start_time | | us-colorado-prowers-area-transit-gtfs-2049 | forbidden_prior_notice_start_time | | us-colorado-avon-transit-gtfs-2040 | missing_prior_day_booking_field_value | | us-colorado-eco-transit-gtfs-2045 | missing_prior_day_booking_field_value | | us-colorado-envida-gtfs-2044 | missing_prior_day_booking_field_value | | us-colorado-estes-transit-gtfs-2047 | missing_prior_day_booking_field_value | | us-colorado-prowers-area-transit-gtfs-2049 | missing_prior_day_booking_field_value |
Dropped Errors (0 out of 1588 datasets, ~0%) ✅

No changes were detected due to the code change.

New Warnings (0 out of 1588 datasets, ~0%) ✅

No changes were detected due to the code change.

Dropped Warnings (0 out of 1588 datasets, ~0%) ✅

No changes were detected due to the code change.

🛡️ Corruption Check

0 out of 1588 sources (~0 %) are corrupted.

⏱️ Performance Assessment

📈 Validation Time

Assess the performance in terms of seconds taken for the validation process.

| Time Metric | Dataset ID | Reference (s) | Latest (s) | Difference (s) | |-----------------------------|-------------------|----------------|----------------|----------------| | Average | -- | 4.03 | 4.11 | ⬆️+0.08 | | Median | -- | 1.41 | 1.49 | ⬆️+0.08 | | Standard Deviation | -- | 11.40 | 11.44 | ⬆️+0.04 | | Minimum in References Reports | us-california-city-of-wasco-gtfs-1788 | 0.50 | 0.52 | ⬆️+0.02 | | Maximum in Reference Reports | gb-unknown-uk-aggregate-feed-gtfs-2014 | 291.32 | 295.24 | ⬆️+3.91 | | Minimum in Latest Reports | us-california-city-of-wasco-gtfs-1788 | 0.50 | 0.52 | ⬆️+0.02 | | Maximum in Latest Reports | gb-unknown-uk-aggregate-feed-gtfs-2014 | 291.32 | 295.24 | ⬆️+3.91 |
cka-y commented 1 month ago

@tzujenchanmbd Great catch! The 00:00:00 value is the default for null GtfsTime. I’ve replaced priorNoticeStartTime with priorNoticeStartDay in the notice and updated the screenshot accordingly. Let me know what you think!

github-actions[bot] commented 1 month ago

📝 Acceptance Test Report

📋 Summary

✅ The rule acceptance has passed for commit 4f311d9061707fdbc5ac3d756250757f895aa1e7 Download the full acceptance test report here (report will disappear after 90 days).

📊 Notices Comparison

New Errors (6 out of 1588 datasets, ~0%) ✅

Details of new errors due to code change, which is less than the provided threshold of 1%.

| Dataset | Notice Code | |---------|-------------| | us-colorado-eco-transit-gtfs-2045 | forbidden_prior_notice_start_time | | us-colorado-gunnison-valley-rta-gtfs-2048 | forbidden_prior_notice_start_time | | us-colorado-prowers-area-transit-gtfs-2049 | forbidden_prior_notice_start_time | | us-colorado-avon-transit-gtfs-2040 | missing_prior_day_booking_field_value | | us-colorado-eco-transit-gtfs-2045 | missing_prior_day_booking_field_value | | us-colorado-envida-gtfs-2044 | missing_prior_day_booking_field_value | | us-colorado-estes-transit-gtfs-2047 | missing_prior_day_booking_field_value | | us-colorado-prowers-area-transit-gtfs-2049 | missing_prior_day_booking_field_value |
Dropped Errors (0 out of 1588 datasets, ~0%) ✅

No changes were detected due to the code change.

New Warnings (0 out of 1588 datasets, ~0%) ✅

No changes were detected due to the code change.

Dropped Warnings (0 out of 1588 datasets, ~0%) ✅

No changes were detected due to the code change.

🛡️ Corruption Check

0 out of 1588 sources (~0 %) are corrupted.

⏱️ Performance Assessment

📈 Validation Time

Assess the performance in terms of seconds taken for the validation process.

| Time Metric | Dataset ID | Reference (s) | Latest (s) | Difference (s) | |-----------------------------|-------------------|----------------|----------------|----------------| | Average | -- | 4.01 | 4.07 | ⬆️+0.06 | | Median | -- | 1.42 | 1.47 | ⬆️+0.05 | | Standard Deviation | -- | 11.36 | 11.46 | ⬆️+0.10 | | Minimum in References Reports | us-california-catalina-express-gtfs-299 | 0.50 | 0.60 | ⬆️+0.10 | | Maximum in Reference Reports | gb-unknown-uk-aggregate-feed-gtfs-2014 | 288.57 | 296.03 | ⬆️+7.47 | | Minimum in Latest Reports | us-massachusetts-massachusetts-area-express-max-gtfs-431 | 0.54 | 0.52 | ⬇️-0.02 | | Maximum in Latest Reports | gb-unknown-uk-aggregate-feed-gtfs-2014 | 288.57 | 296.03 | ⬆️+7.47 |