mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-07-26 11:42:06 +08:00
39 lines
2.0 KiB
Python
39 lines
2.0 KiB
Python
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_relaxes_at_highway_speed():
|
|
values = get_accel_profile_curve_values(ACCELERATION_PROFILES["STANDARD"], ev_tuning=False, truck_tuning=True)
|
|
|
|
assert 0.5 <= interpolate_accel_profile(20.0, values) <= 0.6
|
|
assert interpolate_accel_profile(25.0, values) == 0.45
|
|
assert 0.35 < interpolate_accel_profile(30.0, values) < 0.45
|
|
|
|
|
|
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
|
|
assert any(e < s for e, s in zip(eco, standard, strict=True))
|
|
assert any(s < sp for s, sp in zip(standard, sport, strict=True))
|
|
assert any(sp < spp for sp, spp in zip(sport, sport_plus, strict=True))
|