|
@@ -1,6 +1,7 @@
|
|
|
import unittest
|
|
import unittest
|
|
|
|
|
|
|
|
from src.possibilities import MESSAGES, Possibility as P, filter_duplicates
|
|
from src.possibilities import MESSAGES, Possibility as P, filter_duplicates
|
|
|
|
|
+from src.rules.numerics import add_numerics
|
|
|
from tests.test_rules_poly import tree
|
|
from tests.test_rules_poly import tree
|
|
|
|
|
|
|
|
|
|
|
|
@@ -36,7 +37,22 @@ class TestPossibilities(unittest.TestCase):
|
|
|
assert self.p0 != self.p1
|
|
assert self.p0 != self.p1
|
|
|
|
|
|
|
|
def test_filter_duplicates(self):
|
|
def test_filter_duplicates(self):
|
|
|
|
|
+ a, b = ab = tree('a + b')
|
|
|
|
|
+ p0 = P(a, dummy_handler, (1, 2))
|
|
|
|
|
+ p1 = P(ab, dummy_handler, (1, 2))
|
|
|
|
|
+ p2 = P(ab, dummy_handler, (1, 2, 3))
|
|
|
|
|
+ p3 = P(ab, dummy_handler_msg, (1, 2))
|
|
|
|
|
+
|
|
|
self.assertEqual(filter_duplicates([]), [])
|
|
self.assertEqual(filter_duplicates([]), [])
|
|
|
- self.assertEqual(filter_duplicates([1, 2]), [1, 2])
|
|
|
|
|
- self.assertEqual(filter_duplicates([1, 2, 2]), [1, 2])
|
|
|
|
|
- self.assertEqual(filter_duplicates([1, 2, 3, 2]), [1, 2, 3])
|
|
|
|
|
|
|
+ self.assertEqual(filter_duplicates([p0, p1]), [p1])
|
|
|
|
|
+ self.assertEqual(filter_duplicates([p1, p2]), [p1, p2])
|
|
|
|
|
+ self.assertEqual(filter_duplicates([p1, p3]), [p1, p3])
|
|
|
|
|
+ self.assertEqual(filter_duplicates([p0, p1, p2, p3]), [p1, p2, p3])
|
|
|
|
|
+
|
|
|
|
|
+ # Docstrings example
|
|
|
|
|
+ (l1, l2), l3 = left, l3 = right = tree('1 + 2 + 3')
|
|
|
|
|
+ p0 = P(left, add_numerics, (1, 2, 1, 2))
|
|
|
|
|
+ p1 = P(right, add_numerics, (1, 2, 1, 2))
|
|
|
|
|
+ p2 = P(right, add_numerics, (1, 3, 1, 3))
|
|
|
|
|
+ p3 = P(right, add_numerics, (2, 3, 2, 3))
|
|
|
|
|
+ self.assertEqual(filter_duplicates([p0, p1, p2, p3]), [p1, p2, p3])
|