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)
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)
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)