IQ.Pilot Prebuilt Release @ 27f668a
This commit is contained in:
43
iqpilot/selfdrive/locationd/test/test_helpers.py
Normal file
43
iqpilot/selfdrive/locationd/test/test_helpers.py
Normal file
@@ -0,0 +1,43 @@
|
||||
import numpy as np
|
||||
import pytest
|
||||
|
||||
from iqpilot.selfdrive.locationd.helpers import ParameterEstimator, PointBuckets, fft_next_good_size
|
||||
|
||||
|
||||
class ScalarBuckets(PointBuckets):
|
||||
def add_point(self, x, y):
|
||||
for bounds, bucket in self.buckets.items():
|
||||
if bounds[0] <= x < bounds[1]:
|
||||
bucket.append([x, y])
|
||||
return
|
||||
raise ValueError(x)
|
||||
|
||||
|
||||
def test_fft_next_good_size_small_input():
|
||||
assert fft_next_good_size(6) == 6
|
||||
|
||||
|
||||
def test_point_buckets_base_requires_an_insertion_policy():
|
||||
buckets = PointBuckets([(0, 1)], [1], 1, 2, 2)
|
||||
with pytest.raises(NotImplementedError):
|
||||
buckets.add_point(0.5, 1.0)
|
||||
|
||||
|
||||
def test_point_buckets_load_and_retrieve():
|
||||
buckets = ScalarBuckets([(0, 1), (1, 2)], [1, 1], 2, 3, 2)
|
||||
points = [[0.25, 10.0], [1.25, 20.0], [0.75, 30.0]]
|
||||
buckets.load_points(points)
|
||||
assert buckets.is_valid()
|
||||
assert buckets.is_calculable()
|
||||
np.testing.assert_allclose(buckets.get_points(), [[0.25, 10.0], [0.75, 30.0], [1.25, 20.0]])
|
||||
assert buckets.get_points(2).shape == (2, 2)
|
||||
|
||||
|
||||
@pytest.mark.parametrize("method,args", [
|
||||
("reset", ()),
|
||||
("handle_log", (0, "carState", None)),
|
||||
("get_msg", (True, False)),
|
||||
])
|
||||
def test_parameter_estimator_requires_an_implementation(method, args):
|
||||
with pytest.raises(NotImplementedError):
|
||||
getattr(ParameterEstimator(), method)(*args)
|
||||
Reference in New Issue
Block a user