예제 #1
0
 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')
예제 #2
0
 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'},
     ])
예제 #3
0
 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')
예제 #4
0
 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')
예제 #5
0
 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"])
예제 #6
0
 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'
             },
         ])
예제 #7
0
    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)
        ])
예제 #8
0
 def test_nested_bg(self):
     i = ev3_interpreter()
     self.assertRaises(NestedBackgroundError, i.evaluate_internal,
                       "bg bg sleep 0.1")
예제 #9
0
 def test_speak(self):
     i = ev3_interpreter()
     i.evaluate_internal("speak Hello World")
     self.assertEqual(sound.get_spoken(), ["Hello World"])
예제 #10
0
 def test_hello(self):
     i = ev3_interpreter()
     self.assertEqual(i.evaluate("hello"), "ok")
예제 #11
0
 def test_close(self):
     i = ev3_interpreter()
     self.assertRaises(CloseException, i.evaluate, "close")
예제 #12
0
 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')
예제 #13
0
 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)])
예제 #14
0
 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)])