variable_test.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  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_indexer(self):
  22. variable = variables['battery_percentage']
  23. self.assertEqual('battery_percentage', variable.name)
  24. variable = variables.get('battery_percentage')
  25. self.assertEqual('battery_percentage', variable.name)
  26. self.assertIsNotNone(variables.items())
  27. def test_slice(self):
  28. x = variables[4:12]
  29. self.assertEqual(8, len(x))
  30. if __name__ == "__main__":
  31. unittest.main()