test_possibilities.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import unittest
  2. from src.possibilities import MESSAGES, Possibility as P, filter_duplicates
  3. from tests.test_rules_poly import tree
  4. def dummy_handler(root, args): # pragma: nocover
  5. pass
  6. def dummy_handler_msg(root, args): # pragma: nocover
  7. pass
  8. MESSAGES[dummy_handler_msg] = 'foo {1} + {2} bar'
  9. class TestPossibilities(unittest.TestCase):
  10. def setUp(self):
  11. self.l1, self.l2 = self.n = tree('1 + 2')
  12. self.p0 = P(self.n, dummy_handler, (self.l1, self.l2))
  13. self.p1 = P(self.n, dummy_handler_msg, (self.l1, self.l2))
  14. def test___str__(self):
  15. self.assertEqual(str(self.p0),
  16. '<Possibility root="1 + 2" handler=dummy_handler args=(1, 2)>')
  17. self.assertEqual(str(self.p1), 'foo 1 + 2 bar')
  18. def test___repr__(self):
  19. self.assertEqual(repr(self.p0),
  20. '<Possibility root="1 + 2" handler=dummy_handler args=(1, 2)>')
  21. def test___eq__(self):
  22. assert self.p0 == P(self.n, dummy_handler, (self.l1, self.l2))
  23. assert self.p0 != self.p1
  24. def test_filter_duplicates(self):
  25. self.assertEqual(filter_duplicates([]), [])
  26. self.assertEqual(filter_duplicates([1, 2]), [1, 2])
  27. self.assertEqual(filter_duplicates([1, 2, 2]), [1, 2])
  28. self.assertEqual(filter_duplicates([1, 2, 3, 2]), [1, 2, 3])