You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
881 B
23 lines
881 B
from opendbc.car.rivian.fingerprints import FW_VERSIONS
|
|
from opendbc.car.rivian.values import CAR, FW_QUERY_CONFIG, WMI, ModelLine, ModelYear
|
|
|
|
|
|
class TestRivian:
|
|
def test_custom_fuzzy_fingerprinting(self, subtests):
|
|
for platform in CAR:
|
|
with subtests.test(platform=platform.name):
|
|
for wmi in WMI:
|
|
for line in ModelLine:
|
|
for year in ModelYear:
|
|
for bad in (True, False):
|
|
vin = ["0"] * 17
|
|
vin[:3] = wmi
|
|
vin[3] = line.value
|
|
vin[9] = year.value
|
|
if bad:
|
|
vin[3] = "Z"
|
|
vin = "".join(vin)
|
|
|
|
matches = FW_QUERY_CONFIG.match_fw_to_car_fuzzy({}, vin, FW_VERSIONS)
|
|
should_match = year != ModelYear.S_2025 and not bad
|
|
assert (matches == {platform}) == should_match, "Bad match"
|
|
|