test_rules_utils.py 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. from src.node import ExpressionNode as N
  2. from src.rules.utils import nary_node, is_prime, least_common_multiple
  3. from tests.test_rules_poly import tree
  4. from tests.rulestestcase import RulesTestCase
  5. class TestRulesUtils(RulesTestCase):
  6. def test_nary_node(self):
  7. a, b, c, d = tree('a,b,c,d')
  8. self.assertEqualNodes(nary_node('+', [a]), a)
  9. self.assertEqualNodes(nary_node('+', [a, b]), N('+', a, b))
  10. self.assertEqualNodes(nary_node('+', [a, b, c]),
  11. N('+', N('+', a, b), c))
  12. self.assertEqualNodes(nary_node('+', [a, b, c, d]),
  13. N('+', N('+', N('+', a, b), c), d))
  14. def test_is_prime(self):
  15. self.assertTrue(is_prime(2))
  16. self.assertTrue(is_prime(3))
  17. self.assertTrue(is_prime(647))
  18. self.assertFalse(is_prime(0))
  19. self.assertFalse(is_prime(1))
  20. self.assertFalse(is_prime(4))
  21. self.assertFalse(is_prime(9))
  22. self.assertFalse(is_prime(100))
  23. def test_least_common_multiple(self):
  24. self.assertEqual(least_common_multiple(5, 6), 30)
  25. self.assertEqual(least_common_multiple(5, 6, 15), 30)
  26. self.assertEqual(least_common_multiple(2, 4), 4)