From 71b5cd859472bba370c62bf0d6889c4ee1d8623d Mon Sep 17 00:00:00 2001 From: firestar5683 <168790843+firestar5683@users.noreply.github.com> Date: Sun, 5 Jul 2026 22:48:58 -0500 Subject: [PATCH] twuck --- starpilot/common/accel_profile.py | 8 ++--- starpilot/common/tests/test_accel_profile.py | 35 ++++++++++++++++++++ 2 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 starpilot/common/tests/test_accel_profile.py diff --git a/starpilot/common/accel_profile.py b/starpilot/common/accel_profile.py index d54792e47..d669f0ab1 100644 --- a/starpilot/common/accel_profile.py +++ b/starpilot/common/accel_profile.py @@ -45,10 +45,10 @@ A_CRUISE_MAX_VALS_STANDARD_GAS = [2.00, 1.80, 1.55, 1.30, 1.05, 0.85, 0.55] A_CRUISE_MAX_VALS_SPORT_GAS = [2.50, 2.25, 1.95, 1.60, 1.30, 1.05, 0.75] A_CRUISE_MAX_VALS_SPORT_PLUS_GAS = [3.50, 3.20, 2.80, 2.35, 1.90, 1.55, 1.15] -A_CRUISE_MAX_VALS_ECO_TRUCK = [2.00, 1.50, 1.20, 1.00, 0.82, 0.62, 0.40] -A_CRUISE_MAX_VALS_STANDARD_TRUCK = [2.75, 2.00, 1.65, 1.35, 1.10, 0.88, 0.58] -A_CRUISE_MAX_VALS_SPORT_TRUCK = [3.25, 2.40, 2.00, 1.65, 1.35, 1.10, 0.78] -A_CRUISE_MAX_VALS_SPORT_PLUS_TRUCK = [4.00, 2.80, 2.35, 1.95, 1.60, 1.30, 0.98] +A_CRUISE_MAX_VALS_ECO_TRUCK = [2.00, 1.55, 1.27, 1.07, 0.90, 0.72, 0.46] +A_CRUISE_MAX_VALS_STANDARD_TRUCK = [2.75, 2.05, 1.72, 1.42, 1.18, 0.98, 0.64] +A_CRUISE_MAX_VALS_SPORT_TRUCK = [3.25, 2.45, 2.07, 1.72, 1.43, 1.20, 0.84] +A_CRUISE_MAX_VALS_SPORT_PLUS_TRUCK = [4.00, 2.85, 2.42, 2.02, 1.68, 1.40, 1.04] def akima_interp(x, xp, fp): diff --git a/starpilot/common/tests/test_accel_profile.py b/starpilot/common/tests/test_accel_profile.py new file mode 100644 index 000000000..e2ecc127e --- /dev/null +++ b/starpilot/common/tests/test_accel_profile.py @@ -0,0 +1,35 @@ +from openpilot.starpilot.common.accel_profile import ( + ACCELERATION_PROFILES, + A_CRUISE_MAX_VALS_ECO_TRUCK, + A_CRUISE_MAX_VALS_STANDARD_TRUCK, + A_CRUISE_MAX_VALS_SPORT_PLUS_TRUCK, + A_CRUISE_MAX_VALS_SPORT_TRUCK, + get_accel_profile_curve_values, + interpolate_accel_profile, +) + + +def test_truck_curves_match_expected_values(): + assert get_accel_profile_curve_values(ACCELERATION_PROFILES["ECO"], ev_tuning=False, truck_tuning=True) == A_CRUISE_MAX_VALS_ECO_TRUCK + values = get_accel_profile_curve_values(ACCELERATION_PROFILES["STANDARD"], ev_tuning=False, truck_tuning=True) + assert values == A_CRUISE_MAX_VALS_STANDARD_TRUCK + assert get_accel_profile_curve_values(ACCELERATION_PROFILES["SPORT"], ev_tuning=False, truck_tuning=True) == A_CRUISE_MAX_VALS_SPORT_TRUCK + assert get_accel_profile_curve_values(ACCELERATION_PROFILES["SPORT_PLUS"], ev_tuning=False, truck_tuning=True) == A_CRUISE_MAX_VALS_SPORT_PLUS_TRUCK + + +def test_standard_truck_curve_keeps_mid_high_speed_authority(): + values = get_accel_profile_curve_values(ACCELERATION_PROFILES["STANDARD"], ev_tuning=False, truck_tuning=True) + + assert interpolate_accel_profile(20.0, values) >= 1.18 + assert interpolate_accel_profile(25.0, values) >= 0.98 + assert interpolate_accel_profile(30.0, values) >= 0.90 + + +def test_truck_profiles_remain_ordered(): + eco = get_accel_profile_curve_values(ACCELERATION_PROFILES["ECO"], ev_tuning=False, truck_tuning=True) + standard = get_accel_profile_curve_values(ACCELERATION_PROFILES["STANDARD"], ev_tuning=False, truck_tuning=True) + sport = get_accel_profile_curve_values(ACCELERATION_PROFILES["SPORT"], ev_tuning=False, truck_tuning=True) + sport_plus = get_accel_profile_curve_values(ACCELERATION_PROFILES["SPORT_PLUS"], ev_tuning=False, truck_tuning=True) + + for e, s, sp, spp in zip(eco, standard, sport, sport_plus, strict=True): + assert e < s < sp < spp