variable_test.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. from itertools import groupby
  2. import unittest
  3. import sys
  4. sys.path.append("..")
  5. from src.variables import variables
  6. class TestVariables(unittest.TestCase):
  7. def test_multiplier_func_exclusion(self):
  8. for variable in variables:
  9. if variable.multiplier and variable.func:
  10. result = variable.func(0)
  11. self.assertTrue(isinstance(result, (int, float)))
  12. def test_func_32_bit_exclusion(self):
  13. for variable in variables:
  14. if variable.is_32_bit:
  15. self.assertIsNone(variable.func)
  16. def test_common_lengths(self):
  17. for key, group in groupby(variables, lambda x: x.address):
  18. is_32_bit = next(group).is_32_bit
  19. for variable in group:
  20. self.assertEqual(variable.is_32_bit, is_32_bit)
  21. def test_overlap(self):
  22. for variable in variables:
  23. if variable.is_32_bit:
  24. vs = [v for v in variables if v.address == variable.address + 1]
  25. self.assertEqual([], vs)
  26. def test_indexer(self):
  27. variable = variables['battery_percentage']
  28. self.assertEqual('battery_percentage', variable.name)
  29. variable = variables.get('battery_percentage')
  30. self.assertEqual('battery_percentage', variable.name)
  31. self.assertIsNotNone(variables.items())
  32. def test_slice(self):
  33. x = variables[4:12]
  34. self.assertEqual(8, len(x))
  35. if __name__ == "__main__":
  36. unittest.main()