import numpy as np
import unittest
from openpilot . common . numpy_fast import interp
class InterpTest ( unittest . TestCase ) :
def test_correctness_controls ( self ) :
_A_CRUISE_MIN_BP = np . asarray ( [ 0. , 5. , 10. , 20. , 40. ] )
_A_CRUISE_MIN_V = np . asarray ( [ - 1.0 , - .8 , - .67 , - .5 , - .30 ] )
v_ego_arr = [ - 1 , - 1e-12 , 0 , 4 , 5 , 6 , 7 , 10 , 11 , 15.2 , 20 , 21 , 39 ,
39.999999 , 40 , 41 ]
expected = np . interp ( v_ego_arr , _A_CRUISE_MIN_BP , _A_CRUISE_MIN_V )
actual = interp ( v_ego_arr , _A_CRUISE_MIN_BP , _A_CRUISE_MIN_V )
np . testing . assert_equal ( actual , expected )
for v_ego in v_ego_arr :
expected = np . interp ( v_ego , _A_CRUISE_MIN_BP , _A_CRUISE_MIN_V )
actual = interp ( v_ego , _A_CRUISE_MIN_BP , _A_CRUISE_MIN_V )
np . testing . assert_equal ( actual , expected )
if __name__ == " __main__ " :
unittest . main ( )