1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
#! /usr/bin/env python
"""
This script tests some of the base functionalities of MORSE.
"""
import sys
import math
from morse.testing.testing import MorseTestCase
from pymorse import Morse
# Include this import to be able to use your test file as a regular
# builder script, ie, usable with: 'morse [run|exec] base_testing.py
try:
from morse.builder import *
except ImportError:
pass
class LevelsTest(MorseTestCase):
def setUpEnv(self):
""" Defines the test scenario, using the Builder API.
"""
robot = ATRV()
odo = Odometry() # odometry level default to 'differential'
robot.append(odo)
odo.add_stream('socket')
diff_odo = Odometry()
diff_odo.level("differential")
robot.append(diff_odo)
diff_odo.add_stream('socket')
raw_odo = Odometry()
raw_odo.level("raw")
robot.append(raw_odo)
raw_odo.add_stream('socket')
integ_odo = Odometry()
integ_odo.level("integrated")
robot.append(integ_odo)
integ_odo.add_stream("socket")
env = Environment('empty', fastmode = True)
env.add_service('socket')
def test_levels(self):
with Morse() as morse:
odo = morse.robot.odo.get()
diff_odo = morse.robot.diff_odo.get()
raw_odo = morse.robot.raw_odo.get()
integ_odo = morse.robot.integ_odo.get()
self.assertEquals(set(['timestamp', 'dS']), set(raw_odo.keys()))
self.assertEquals(set(['timestamp',
'x', 'y', 'z', 'yaw', 'pitch', 'roll',
'vx', 'vy', 'vz', 'wz', 'wy', 'wx']),
set(integ_odo.keys()))
self.assertEquals(set(['timestamp', 'dx', 'dy', 'dz', 'dyaw', 'dpitch', 'droll']),
set(diff_odo.keys()))
self.assertEquals(set(integ_odo.keys()), set(odo.keys()))
########################## Run these tests ##########################
if __name__ == "__main__":
from morse.testing.testing import main
main(LevelsTest)
|