From 8560b83c83f88ab6296340170d277288d5902f0f Mon Sep 17 00:00:00 2001 From: Paul Kim Date: Wed, 27 Sep 2023 10:23:50 -0400 Subject: [PATCH] Revert "suppress terminal and reverse predictions for RL (#683)" This reverts commit 097ea6c2eb187bda01ee288a8eece642529ec2ca. --- lib/predictions/predictions.ex | 13 +++-- test/predictions/predictions_test.exs | 68 ++++++++++++++++++++++++++- 2 files changed, 76 insertions(+), 5 deletions(-) diff --git a/lib/predictions/predictions.ex b/lib/predictions/predictions.ex index 4079109a7..fb2377f34 100644 --- a/lib/predictions/predictions.ex +++ b/lib/predictions/predictions.ex @@ -151,11 +151,16 @@ defmodule Predictions.Predictions do end @spec sufficient_certainty?(map(), String.t()) :: boolean() - defp sufficient_certainty?(stop_time_event, route_id) when route_id in ["Red"] do - is_nil(stop_time_event["uncertainty"]) or stop_time_event["uncertainty"] < 120 + defp sufficient_certainty?(_stop_time_event, route_id) + when route_id in ["Mattapan", "Green-B", "Green-C", "Green-D", "Green-E"] do + true end - defp sufficient_certainty?(_stop_time_event, _route_id) do - true + defp sufficient_certainty?(stop_time_event, _route_id) do + if Application.get_env(:realtime_signs, :filter_uncertain_predictions?) do + is_nil(stop_time_event["uncertainty"]) or stop_time_event["uncertainty"] <= 300 + else + true + end end end diff --git a/test/predictions/predictions_test.exs b/test/predictions/predictions_test.exs index 1a573cf94..b66e5c4ca 100644 --- a/test/predictions/predictions_test.exs +++ b/test/predictions/predictions_test.exs @@ -882,7 +882,7 @@ defmodule Predictions.PredictionsTest do "timestamp" => nil, "trip" => %{ "direction_id" => 0, - "route_id" => "Red", + "route_id" => "Blue", "schedule_relationship" => "SCHEDULED", "start_date" => "20170329", "start_time" => nil, @@ -909,6 +909,72 @@ defmodule Predictions.PredictionsTest do assert predictions_map == %{} end + test "doesn't filter predictions with high uncertainty when feature is off" do + reassign_env(:filter_uncertain_predictions?, false) + + feed_message = %{ + "entity" => [ + %{ + "alert" => nil, + "id" => "1490783458_32568935", + "is_deleted" => false, + "trip_update" => %{ + "delay" => nil, + "stop_time_update" => [ + %{ + "arrival" => %{ + "delay" => nil, + "time" => 1_491_570_110, + "uncertainty" => 360 + }, + "departure" => %{ + "delay" => nil, + "time" => 1_491_570_120, + "uncertainty" => 360 + }, + "schedule_relationship" => "SCHEDULED", + "stop_id" => "70063", + "stop_sequence" => 1, + "stops_away" => 1, + "stopped?" => true, + "boarding_status" => "Stopped 1 stop away" + } + ], + "timestamp" => nil, + "trip" => %{ + "direction_id" => 0, + "route_id" => "Red", + "schedule_relationship" => "SCHEDULED", + "start_date" => "20170329", + "start_time" => nil, + "trip_id" => "32568935" + }, + "vehicle" => %{ + "id" => "R-54639F6C", + "label" => "1631", + "license_plate" => nil + } + }, + "vehicle" => nil + } + ], + "header" => %{ + "gtfs_realtime_version" => "1.0", + "incrementality" => "FULL_DATASET", + "timestamp" => 1_490_783_458 + } + } + + assert {%{ + {"70063", 0} => [ + %Predictions.Prediction{ + seconds_until_arrival: 110, + seconds_until_departure: 120 + } + ] + }, _} = get_all(feed_message, @current_time) + end + test "doesn't filter out uncertain light rail predictions" do reassign_env(:filter_uncertain_predictions?, true)