def test_is_pressed(self): i = ev3_interpreter() touch = i.evaluate_internal("touch 1 on #1").value self.assertEqual(touch.is_pressed, True) touch.is_pressed = False value = i.evaluate("touch 1 is_pressed") self.assertEqual(value, 'value boolean False')
def test_list(self): i = ev3_interpreter() self.assertEqual(i.evaluate_internal('list_sensors').value, [ {'address': 'in1', 'driver_name': 'lego-ev3-touch'}, {'address': 'in2', 'driver_name': 'lego-ev3-ir'}, {'address': 'in3', 'driver_name': 'lego-ev3-color'}, ])
def test_angle(self): i = ev3_interpreter() gyro = i.evaluate_internal("gyro 1 on #1").value self.assertEqual(gyro.angle, 45) gyro.angle = 90 value = i.evaluate("gyro 1 angle") self.assertEqual(value, 'value int 90')
def test_get_value(self): i = ev3_interpreter() color = i.evaluate_internal("color 1 on #1").value self.assertEqual(color.color, 0) color.color = 9 color_value = i.evaluate("color 1 color") self.assertEqual(color_value, 'value int 9')
def test_bg(self): i = ev3_interpreter() i.evaluate_internal("bg sleep 0.1") i.evaluate_internal("bg speak Hello World") i.evaluate_internal("bg sleep 0.1") i.evaluate_internal("bg speak The End") i.evaluate_internal("bg") self.assertEqual(sound.get_spoken(), ["Hello World", "The End"])
def test_list(self): i = ev3_interpreter() self.assertEqual( i.evaluate_internal('list_motors').value, [ { 'address': 'outA', 'driver_name': 'lego-ev3-m-motor' }, { 'address': 'outB', 'driver_name': 'lego-ev3-l-motor' }, { 'address': 'outC', 'driver_name': 'lego-ev3-l-motor' }, ])
def test_on_for_rotations(self): i = ev3_interpreter() move_tank = i.evaluate_internal("tank 1 on #A #B").value self.assertEqual(move_tank.left_motor_port, 'outA') self.assertEqual(move_tank.right_motor_port, 'outB') i.evaluate("tank 1 on_for_rotations 10 10 1") self.assertEqual(move_tank.log, [('on_for_rotations', 'SpeedPercent(10)', 'SpeedPercent(10)', 1)]) # test run in background self.assertEqual(False, i.evaluate_internal("tank 1 run_in_background").value) i.evaluate_internal("tank 1 run_in_background true") self.assertEqual(True, i.evaluate_internal("tank 1 run_in_background").value) i.evaluate("tank 1 on_for_rotations 20 20 2") i.evaluate_internal("tank 1 run_in_background false") self.assertEqual(move_tank.log, [ ('on_for_rotations', 'SpeedPercent(10)', 'SpeedPercent(10)', 1), ('on_for_rotations', 'SpeedPercent(20)', 'SpeedPercent(20)', 2) ])
def test_nested_bg(self): i = ev3_interpreter() self.assertRaises(NestedBackgroundError, i.evaluate_internal, "bg bg sleep 0.1")
def test_speak(self): i = ev3_interpreter() i.evaluate_internal("speak Hello World") self.assertEqual(sound.get_spoken(), ["Hello World"])
def test_hello(self): i = ev3_interpreter() self.assertEqual(i.evaluate("hello"), "ok")
def test_close(self): i = ev3_interpreter() self.assertRaises(CloseException, i.evaluate, "close")
def test_get_value_with_channel(self): i = ev3_interpreter() i.evaluate_internal("infrared 1 on #1") ir_value = i.evaluate("infrared 1 distance 2") self.assertEqual(ir_value, 'value int 46')
def test_on_for_rotations(self): i = ev3_interpreter() mm = i.evaluate_internal("medium_motor 1 on #A").value self.assertEqual(mm.address, 'outA') i.evaluate("medium_motor 1 on_for_rotations 10 1") self.assertEqual(mm.log, [('on_for_rotations', 'SpeedPercent(10)', 1)])
def test_on_for_rotations(self): i = ev3_interpreter() lm = i.evaluate_internal("large_motor 2 on #D").value self.assertEqual(lm.address, 'outD') i.evaluate("large_motor 2 on_for_rotations 10 2") self.assertEqual(lm.log, [('on_for_rotations', 'SpeedPercent(10)', 2)])