Explorar o código

Added unit tests for utils.py.

Taddeus Kroes %!s(int64=14) %!d(string=hai) anos
pai
achega
0e7541cf99
Modificáronse 1 ficheiros con 33 adicións e 0 borrados
  1. 33 0
      tests/test_rules_utils.py

+ 33 - 0
tests/test_rules_utils.py

@@ -0,0 +1,33 @@
+from src.node import ExpressionNode as N
+from src.rules.utils import nary_node, is_prime, least_common_multiple
+from tests.test_rules_poly import tree
+from tests.rulestestcase import RulesTestCase
+
+
+class TestRulesUtils(RulesTestCase):
+
+    def test_nary_node(self):
+        a, b, c, d = tree('a,b,c,d')
+
+        self.assertEqualNodes(nary_node('+', [a]), a)
+        self.assertEqualNodes(nary_node('+', [a, b]), N('+', a, b))
+        self.assertEqualNodes(nary_node('+', [a, b, c]),
+                              N('+', N('+', a, b), c))
+        self.assertEqualNodes(nary_node('+', [a, b, c, d]),
+                              N('+', N('+', N('+', a, b), c), d))
+
+    def test_is_prime(self):
+        self.assertTrue(is_prime(2))
+        self.assertTrue(is_prime(3))
+        self.assertTrue(is_prime(647))
+
+        self.assertFalse(is_prime(0))
+        self.assertFalse(is_prime(1))
+        self.assertFalse(is_prime(4))
+        self.assertFalse(is_prime(9))
+        self.assertFalse(is_prime(100))
+
+    def test_least_common_multiple(self):
+        self.assertEqual(least_common_multiple(5, 6), 30)
+        self.assertEqual(least_common_multiple(5, 6, 15), 30)
+        self.assertEqual(least_common_multiple(2, 4), 4)