コード例 #1
0
    def test_turn_motor_backwards(self):
        mock_parallel = mock.Mock()
        stepper = StepperMotor(self.MOTOR_INPUTS)
        stepper.parallel_interface = mock_parallel

        # turn -2.5 x rotation (24) == 60 x steps
        new_state = stepper.turn_motor(-2.5)
        self.assertEqual(new_state, 12)
        self.assertEqual(mock_parallel.setData.call_count, 60)
        # check last few steps were correct, going backwards to half a turn
        self.assertEqual([c[0][0] for c in mock_parallel.setData.call_args_list[-3:]], [0x09, 0x0B, 0x0A])
コード例 #2
0
 def test_stepper_generator_forward_rollover(self):
     # test going over the end
     stepper = StepperMotor(self.MOTOR_INPUTS, state=21)
     gen1 = stepper.stepper_generator(10)
     self.assertEqual(gen1.next(), 0x09)
     self.assertEqual(stepper.state, 22)
     self.assertEqual(gen1.next(), 0x0D)
     self.assertEqual(stepper.state, 23)
     self.assertEqual(gen1.next(), 0x05)
     self.assertEqual(stepper.state, 0)
     self.assertEqual(gen1.next(), 0x07)
     self.assertEqual(stepper.state, 1)
コード例 #3
0
    def test_turn_motor_nowhere(self):
        "Ensure that 0 cycles doens't break!"
        mock_parallel = mock.Mock()
        stepper = StepperMotor(self.MOTOR_INPUTS, state=11)
        stepper.parallel_interface = mock_parallel

        # turn 0 x rotation == 0 x steps
        new_state = stepper.turn_motor(0)
        # stayed at offset 11
        self.assertEqual(new_state, 11)
        self.assertEqual(mock_parallel.setData.call_count, 0)
        self.assertEqual(mock_parallel.setData.call_args, None)
コード例 #4
0
 def test_stepper_generator_forward_rollover(self):
     # test going over the end
     stepper = StepperMotor(self.MOTOR_INPUTS, state=21)
     gen1 = stepper.stepper_generator(10)
     self.assertEqual(gen1.next(), 0x09)
     self.assertEqual(stepper.state, 22)
     self.assertEqual(gen1.next(), 0x0D)
     self.assertEqual(stepper.state, 23)
     self.assertEqual(gen1.next(), 0x05)
     self.assertEqual(stepper.state, 0)
     self.assertEqual(gen1.next(), 0x07)
     self.assertEqual(stepper.state, 1)
コード例 #5
0
    def test_turn_motor_nowhere(self):
        "Ensure that 0 cycles doens't break!"
        mock_parallel = mock.Mock()
        stepper = StepperMotor(self.MOTOR_INPUTS, state=11)
        stepper.parallel_interface = mock_parallel

        # turn 0 x rotation == 0 x steps
        new_state = stepper.turn_motor(0)
        # stayed at offset 11
        self.assertEqual(new_state, 11)
        self.assertEqual(mock_parallel.setData.call_count, 0)
        self.assertEqual(mock_parallel.setData.call_args, None)
コード例 #6
0
 def test_stepper_generator_forward(self):
     stepper = StepperMotor(self.MOTOR_INPUTS, state=0)
     gen1 = stepper.stepper_generator(4)
     self.assertEqual(gen1.next(), 0x07)
     self.assertEqual(stepper.state, 1)
     self.assertEqual(gen1.next(), 0x06)
     self.assertEqual(stepper.state, 2)
     self.assertEqual(gen1.next(), 0x0E)
     self.assertEqual(stepper.state, 3)
     self.assertEqual(gen1.next(), 0x0A)
     self.assertEqual(stepper.state, 4)
     # generator has now expired
     self.assertRaises(StopIteration, gen1.next)
コード例 #7
0
    def test_turn_motor_backwards(self):
        mock_parallel = mock.Mock()
        stepper = StepperMotor(self.MOTOR_INPUTS)
        stepper.parallel_interface = mock_parallel

        # turn -2.5 x rotation (24) == 60 x steps
        new_state = stepper.turn_motor(-2.5)
        self.assertEqual(new_state, 12)
        self.assertEqual(mock_parallel.setData.call_count, 60)
        # check last few steps were correct, going backwards to half a turn
        self.assertEqual(
            [c[0][0] for c in mock_parallel.setData.call_args_list[-3:]],
            [0X09, 0X0B, 0x0A])
コード例 #8
0
 def test_stepper_generator_forward(self):
     stepper = StepperMotor(self.MOTOR_INPUTS, state=0)
     gen1 = stepper.stepper_generator(4)
     self.assertEqual(gen1.next(), 0x07)
     self.assertEqual(stepper.state, 1)
     self.assertEqual(gen1.next(), 0x06)
     self.assertEqual(stepper.state, 2)
     self.assertEqual(gen1.next(), 0x0E)
     self.assertEqual(stepper.state, 3)
     self.assertEqual(gen1.next(), 0x0A)
     self.assertEqual(stepper.state, 4)
     # generator has now expired
     self.assertRaises(StopIteration, gen1.next)
コード例 #9
0
    def test_turn_motor(self):
        mock_parallel = mock.Mock()
        stepper = StepperMotor(self.MOTOR_INPUTS, state=2)
        stepper.parallel_interface = mock_parallel

        # turn 1 x rotation == 24 x steps
        new_state = stepper.turn_motor(1)
        # returned to state 2 (starting point)
        self.assertEqual(new_state, 2)
        # called parallel 24 times for full cycle
        self.assertEqual(mock_parallel.setData.call_count, 24)
        # test the last few commands were forwards
        ##mock_parallel.setData.assert_has_calls(self.MOTOR_INPUTS[3:] + self.MOTOR_INPUTS[:3])
        self.assertEqual([c[0][0] for c in mock_parallel.setData.call_args_list[-4:]], [0x0D, 0x05, 0x07, 0x06])
コード例 #10
0
    def test_turn_motor(self):
        mock_parallel = mock.Mock()
        stepper = StepperMotor(self.MOTOR_INPUTS, state=2)
        stepper.parallel_interface = mock_parallel

        # turn 1 x rotation == 24 x steps
        new_state = stepper.turn_motor(1)
        # returned to state 2 (starting point)
        self.assertEqual(new_state, 2)
        # called parallel 24 times for full cycle
        self.assertEqual(mock_parallel.setData.call_count, 24)
        # test the last few commands were forwards
        ##mock_parallel.setData.assert_has_calls(self.MOTOR_INPUTS[3:] + self.MOTOR_INPUTS[:3])
        self.assertEqual(
            [c[0][0] for c in mock_parallel.setData.call_args_list[-4:]],
            [0x0D, 0X05, 0X07, 0x06])
コード例 #11
0
    def test_stepper_generator_reverse(self):
        stepper = StepperMotor(self.MOTOR_INPUTS, state=3)
        gen1 = stepper.stepper_generator(-6)
        self.assertEqual(gen1.next(), 0x06)
        self.assertEqual(stepper.state, 2)
        self.assertEqual(gen1.next(), 0x07)
        self.assertEqual(stepper.state, 1)
        self.assertEqual(gen1.next(), 0x05)
        self.assertEqual(stepper.state, 0)

        self.assertEqual(gen1.next(), 0x0D)  # end of 24 positions
        self.assertEqual(stepper.state, 23)
        self.assertEqual(gen1.next(), 0x09)
        self.assertEqual(stepper.state, 22)
        self.assertEqual(gen1.next(), 0x0B)
        self.assertEqual(stepper.state, 21)

        # generator has now expired
        self.assertRaises(StopIteration, gen1.next)
コード例 #12
0
    def test_stepper_generator_reverse(self):
        stepper = StepperMotor(self.MOTOR_INPUTS, state=3)
        gen1 = stepper.stepper_generator(-6)
        self.assertEqual(gen1.next(), 0x06)
        self.assertEqual(stepper.state, 2)
        self.assertEqual(gen1.next(), 0x07)
        self.assertEqual(stepper.state, 1)
        self.assertEqual(gen1.next(), 0x05)
        self.assertEqual(stepper.state, 0)

        self.assertEqual(gen1.next(), 0x0D)  # end of 24 positions
        self.assertEqual(stepper.state, 23)
        self.assertEqual(gen1.next(), 0x09)
        self.assertEqual(stepper.state, 22)
        self.assertEqual(gen1.next(), 0x0B)
        self.assertEqual(stepper.state, 21)

        # generator has now expired
        self.assertRaises(StopIteration, gen1.next)