mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-02-18 21:14:01 +08:00
* Add calPerc field and torque progress * Fix torqued test style and CarParams usage * test: remove unused numpy import * move here * trying all combinations to see what's most linear * clean up with best method * no no * epic * clean up * last min not needed * doesn't hurt * list comp
26 lines
976 B
Python
26 lines
976 B
Python
from cereal import car
|
|
from openpilot.selfdrive.locationd.torqued import TorqueEstimator
|
|
|
|
|
|
def test_cal_percent():
|
|
est = TorqueEstimator(car.CarParams())
|
|
msg = est.get_msg()
|
|
assert msg.liveTorqueParameters.calPerc == 0
|
|
|
|
for (low, high), min_pts in zip(est.filtered_points.buckets.keys(),
|
|
est.filtered_points.buckets_min_points.values(), strict=True):
|
|
for _ in range(int(min_pts)):
|
|
est.filtered_points.add_point((low + high) / 2.0, 0.0)
|
|
|
|
# enough bucket points, but not enough total points
|
|
msg = est.get_msg()
|
|
assert msg.liveTorqueParameters.calPerc == (len(est.filtered_points) / est.min_points_total * 100 + 100) / 2
|
|
|
|
# add enough points to bucket with most capacity
|
|
key = list(est.filtered_points.buckets)[0]
|
|
for _ in range(est.min_points_total - len(est.filtered_points)):
|
|
est.filtered_points.add_point((key[0] + key[1]) / 2.0, 0.0)
|
|
|
|
msg = est.get_msg()
|
|
assert msg.liveTorqueParameters.calPerc == 100
|