test_rules_negation.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. from src.rules.negation import match_negated_division, \
  2. single_negated_division, double_negated_division
  3. from src.possibilities import Possibility as P
  4. from tests.rulestestcase import RulesTestCase, tree
  5. class TestRulesNegation(RulesTestCase):
  6. def test_match_negated_division_none(self):
  7. self.assertEqual(match_negated_division(tree('1 / 2')), [])
  8. def test_match_negated_division_single(self):
  9. l1, l2 = root = tree('-1 / 2')
  10. possibilities = match_negated_division(root)
  11. self.assertEqualPos(possibilities,
  12. [P(root, single_negated_division, (+l1, l2))])
  13. l1, l2 = root = tree('1 / -2')
  14. possibilities = match_negated_division(root)
  15. self.assertEqualPos(possibilities,
  16. [P(root, single_negated_division, (l1, +l2))])
  17. def test_match_negated_division_double(self):
  18. root = tree('-1 / -2')
  19. possibilities = match_negated_division(root)
  20. self.assertEqualPos(possibilities,
  21. [P(root, double_negated_division, (root,))])
  22. def test_single_negated_division(self):
  23. l1, l2 = root = tree('-1 / 2')
  24. self.assertEqualNodes(single_negated_division(root, (+l1, l2)),
  25. -(+l1 / l2))
  26. l1, l2 = root = tree('1 / -2')
  27. self.assertEqualNodes(single_negated_division(root, (l1, +l2)),
  28. -(l1 / +l2))
  29. def test_double_negated_division(self):
  30. l1, l2 = root = tree('-1 / -2')
  31. self.assertEqualNodes(double_negated_division(root, (root,)),
  32. +l1 / +l2)