Source code for simulation.src.simulation_evaluation.src.speaker.speakers.test.test_speed_speaker

import unittest

from gazebo_simulation.msg import CarState as CarStateMsg
from simulation_evaluation.msg import Speaker as SpeakerMsg

from simulation.src.simulation_evaluation.src.speaker.speakers import SpeedSpeaker
from simulation.utils.geometry import Point


[docs]class ModuleTest(unittest.TestCase):
[docs] def test_speed_speaker(self): speed_speaker = SpeedSpeaker(time=0) car_msg = CarStateMsg() speeds = [] # speed, (time_before, time_after), expected result speeds.append((0, (0, 2), SpeakerMsg.SPEED_HALTED)) speeds.append((0, (0, 4), SpeakerMsg.SPEED_STOPPED)) speeds.append((0, (0, 0), SpeakerMsg.SPEED_0)) speeds.append((3, (0, 0), SpeakerMsg.SPEED_1_10)) speeds.append((13, (0, 0), SpeakerMsg.SPEED_11_20)) speeds.append((25, (0, 0), SpeakerMsg.SPEED_21_30)) speeds.append((32, (0, 0), SpeakerMsg.SPEED_31_40)) speeds.append((44, (0, 0), SpeakerMsg.SPEED_41_50)) speeds.append((55, (0, 0), SpeakerMsg.SPEED_51_60)) speeds.append((65, (0, 0), SpeakerMsg.SPEED_61_70)) speeds.append((73, (0, 0), SpeakerMsg.SPEED_71_80)) speeds.append((83, (0, 0), SpeakerMsg.SPEED_81_90)) speeds.append((99, (0, 0), SpeakerMsg.SPEED_91_)) for speed, time, expected in speeds: speed_speaker.listen(car_msg) speed_speaker.speak(current_time=time[0]) car_msg.twist.linear = Point(speed / 3.6 / 10, 0, 0).to_geometry_msg() # 1 m/s speed_speaker.listen(car_msg) response = speed_speaker.speak(current_time=time[1]) self.assertEqual(response[0].type, expected)
if __name__ == "__main__": unittest.main()