mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-02-19 01:53:57 +08:00
* timing test
* test
* fix
* print
* loop
* clean up
* wider range
* Update selfdrive/car/tests/test_models.py
* Apply suggestions from code review
* run many times
* Update selfdrive/car/tests/test_models.py
* run for many its
* run with unittest and print as list
* Update .github/workflows/selfdrive_tests.yaml
* Update .github/workflows/selfdrive_tests.yaml
* total time is super inconsistent (body)
* Update selfdrive/car/tests/test_models.py
* clean up
* clean up
* clean up
* this works!
* draft
* test suite not as modular
* try something like this
* can do kb, but not too representative
* clean up
* remove kb? it depends on signals
* clean up
* more clean up
* rename
* just measure all CANParsers
* can do all this manually
* but this is way simpler
* comment
* fix mypy
* this is correct too
* 3 seconds instead of 1.5
old-commit-hash: e2910d0720
38 lines
1.0 KiB
Python
Executable File
38 lines
1.0 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
import numpy as np
|
|
import time
|
|
from tqdm import tqdm
|
|
|
|
from cereal import car
|
|
from selfdrive.car.tests.routes import CarTestRoute
|
|
from selfdrive.car.tests.test_models import TestCarModelBase
|
|
from tools.plotjuggler.juggle import DEMO_ROUTE
|
|
|
|
N_RUNS = 10
|
|
|
|
|
|
class CarModelTestCase(TestCarModelBase):
|
|
test_route = CarTestRoute(DEMO_ROUTE, None)
|
|
ci = False
|
|
|
|
|
|
if __name__ == '__main__':
|
|
# Get CAN messages and parsers
|
|
tm = CarModelTestCase()
|
|
tm.setUpClass()
|
|
tm.setUp()
|
|
|
|
CC = car.CarControl.new_message()
|
|
ets = []
|
|
for _ in tqdm(range(N_RUNS)):
|
|
start_t = time.process_time_ns()
|
|
for msg in tm.can_msgs:
|
|
for cp in tm.CI.can_parsers:
|
|
if cp is not None:
|
|
cp.update_strings((msg.as_builder().to_bytes(),))
|
|
ets.append((time.process_time_ns() - start_t) * 1e-6)
|
|
|
|
print(f'{len(tm.can_msgs)} CAN packets, {N_RUNS} runs')
|
|
print(f'{np.mean(ets):.2f} mean ms, {max(ets):.2f} max ms, {min(ets):.2f} min ms, {np.std(ets):.2f} std ms')
|
|
print(f'{np.mean(ets) / len(tm.can_msgs):.4f} mean ms / CAN packet')
|