openpilot is an open source driver assistance system. openpilot performs the functions of Automated Lane Centering and Adaptive Cruise Control for over 200 supported car makes and models.
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.

70 lines
2.5 KiB

import os
from common.basedir import BASEDIR
with open(os.path.join(BASEDIR, 'docs/CARS.md'), 'r') as f:
orig = f.read()
with open(os.path.join(BASEDIR, 'docs/CARS_generated.md'), 'r') as f:
generated = f.read()
def get_cars(md_raw, is_orig=False):
cars = {}
for line in md_raw.splitlines():
if line.strip().startswith('|') and 'Supported Package' not in line and '---' not in line:
line = [i.strip() for i in line.strip().split('|') if len(i.strip())]
car = line[0] + ' ' + line[1]
if '<sup>' in car:
idx = car.index('<sup>')
car = car[0:idx]
if is_orig: # use new conventions so we don't get false positives
car = car.replace('-2018', '-18').replace('-2019', '-19').replace('-2020', '-20').replace('-2021', '-21').replace('-2022', '-22').replace('-2023', '-23')
car = car.replace('PHEV', 'Plug-In Hybrid').replace('Plug-in', 'Plug-In').replace('EV', 'Electric')
car = car.replace('Rav4', 'RAV4')
stars = line[-3:]
else:
stars = line[-5:]
# print(stars)
# print('---')
cars[car + ' ' + line[2]] = stars
return cars
orig_cars = get_cars(orig, is_orig=True)
gen_cars = get_cars(generated)
# Test for missing cars either way
# Civic "missing" here is fine
for car in orig_cars:
if car not in gen_cars:
print('{} not in generated cars doc!'.format(car))
print('-----')
for car in gen_cars:
if car not in orig_cars:
print('{} not in original cars doc!'.format(car))
print('-----')
# Test for incorrect car stars
for car in gen_cars:
if car in orig_cars:
gen_op_long = 'full' in gen_cars[car][0] or 'half' in gen_cars[car][0]
orig_op_long = 'openpilot' in orig_cars[car][0] or "<sup>3<" in orig_cars[car][0]
if gen_op_long != orig_op_long:
print('{} openpilot long doesn\'t match! {} vs {}'.format(car, orig_op_long, gen_op_long))
orig_full_range_acc = orig_cars[car][1].lower().replace(' ', '').startswith('0mph')
gen_full_range_acc = 'full' in gen_cars[car][1].lower()
if orig_full_range_acc != gen_full_range_acc:
print('{} openpilot FSR long doesn\'t match! {} vs {}'.format(car, orig_full_range_acc, gen_full_range_acc))
orig_full_range_steer = orig_cars[car][2].lower().replace(' ', '').startswith('0mph')
gen_full_range_steer = 'full' in gen_cars[car][2].lower()
if orig_full_range_steer != gen_full_range_steer:
print('{} openpilot FSR steer doesn\'t match! {} vs {}'.format(car, orig_full_range_steer, gen_full_range_steer))