mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-10-01 03:43:46 +08:00
53 lines
1.6 KiB
Python
53 lines
1.6 KiB
Python
import json
|
|
from pathlib import Path
|
|
|
|
|
|
_LAYOUT_PATH = Path(__file__).resolve().parents[1] / "assets/device_settings_layout.json"
|
|
|
|
|
|
def _sections():
|
|
layout = json.loads(_LAYOUT_PATH.read_text(encoding="utf-8"))
|
|
return {
|
|
section["name"]: {param["key"]: param for param in section["params"]}
|
|
for section in layout
|
|
}
|
|
|
|
|
|
def test_lane_centering_is_only_in_galaxy_developer_section():
|
|
sections = _sections()
|
|
keys = {"LaneCentering", "LaneCenterOffset", "LaneCenteringPauseOnSignal", "LaneCenteringE2EAuthority"}
|
|
|
|
assert keys <= sections["Developer"].keys()
|
|
for name, params in sections.items():
|
|
if name != "Developer":
|
|
assert keys.isdisjoint(params)
|
|
|
|
for key in keys:
|
|
assert sections["Developer"][key]["settings_tier"] == "advanced"
|
|
|
|
|
|
def test_lane_centering_galaxy_controls():
|
|
developer = _sections()["Developer"]
|
|
centering = developer["LaneCentering"]
|
|
offset = developer["LaneCenterOffset"]
|
|
pause_on_signal = developer["LaneCenteringPauseOnSignal"]
|
|
e2e_authority = developer["LaneCenteringE2EAuthority"]
|
|
|
|
assert centering["ui_type"] == "toggle"
|
|
assert centering["is_parent_toggle"] is True
|
|
|
|
assert pause_on_signal["ui_type"] == "toggle"
|
|
assert pause_on_signal["parent_key"] == "LaneCentering"
|
|
|
|
assert offset["parent_key"] == "LaneCentering"
|
|
assert offset["min"] == -0.3
|
|
assert offset["max"] == 0.3
|
|
assert offset["step"] == 0.01
|
|
|
|
assert e2e_authority["parent_key"] == "LaneCentering"
|
|
assert e2e_authority["min"] == 0.0
|
|
assert e2e_authority["max"] == 1.0
|
|
assert e2e_authority["step"] == 0.05
|
|
assert e2e_authority["control"] == "slider"
|
|
assert len(e2e_authority["description_steps"]) == 5
|