test_timed_phase_enum.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import unittest
  2. from utils.timed_phase_enum import TimedPhaseEnum
  3. class MyEnum(TimedPhaseEnum):
  4. RED = 1
  5. GREEN = 2
  6. BLUE = 3
  7. class BakeOvenSteps(TimedPhaseEnum):
  8. IDLE = ('IDLE' , float('inf'))
  9. DETECTION = ('DETECTION', 0.2)
  10. OPEN_DOORS = ('OPEN_DOORS', 1.0)
  11. SLIDE_ENTER = ('SLIDE_ENTER', 0.5)
  12. CLOSE_DOORS = ('CLOSE_DOORS', 1.0)
  13. BAKE = ('BAKE', 5.0)
  14. OPEN_DOORS_EXIT = ('OPEN_DOORS_EXIT', 1.0)
  15. SLIDE_EXIT = ('SLIDE_EXIT', 0.5)
  16. CLOSE_DOORS_EXIT = ('CLOSE_DOORS_EXIT', 1.0)
  17. AWAIT_PICKUP = ('AWAIT_PICKUP', float('inf'))
  18. class TestColorEnum(unittest.TestCase):
  19. def test_enum_baseline(self):
  20. color = MyEnum.RED
  21. self.assertEqual(color, MyEnum.RED)
  22. self.assertEqual(color.value, 1)
  23. def test_incremental_enum(self):
  24. color = MyEnum.RED
  25. self.assertEqual(color, MyEnum.RED)
  26. color = color.next()
  27. self.assertEqual(color, MyEnum.GREEN)
  28. color = color.next()
  29. self.assertEqual(color, MyEnum.BLUE)
  30. def test_bake_oven_steps_enum(self):
  31. step = BakeOvenSteps.IDLE
  32. self.assertEqual(step, BakeOvenSteps.IDLE)
  33. step = step.next()
  34. self.assertEqual(step, BakeOvenSteps.DETECTION)
  35. step = step.next()
  36. self.assertEqual(step, BakeOvenSteps.OPEN_DOORS)
  37. step = step.next()
  38. self.assertEqual(step, BakeOvenSteps.SLIDE_ENTER)
  39. step = step.next()
  40. self.assertEqual(step, BakeOvenSteps.CLOSE_DOORS)
  41. step = step.next()
  42. self.assertEqual(step, BakeOvenSteps.BAKE)
  43. step = step.next()
  44. self.assertEqual(step, BakeOvenSteps.OPEN_DOORS_EXIT)
  45. step = step.next()
  46. self.assertEqual(step, BakeOvenSteps.SLIDE_EXIT)
  47. step = step.next()
  48. self.assertEqual(step, BakeOvenSteps.CLOSE_DOORS_EXIT)
  49. step = step.next()
  50. self.assertEqual(step, BakeOvenSteps.AWAIT_PICKUP)
  51. step = step.next()
  52. self.assertEqual(step, BakeOvenSteps.IDLE)
  53. def test_bake_oven_steps_enum_timing(self):
  54. step = BakeOvenSteps.IDLE
  55. self.assertEqual(step.timing, float('inf'))
  56. step = BakeOvenSteps.BAKE
  57. self.assertEqual(step.timing, 5.0)
  58. if __name__ == '__main__':
  59. unittest.main()