rulestestcase.py 718 B

1234567891011121314151617181920212223242526
  1. import unittest
  2. from src.node import ExpressionNode
  3. class RulesTestCase(unittest.TestCase):
  4. def assertEqualPos(self, possibilities, expected):
  5. self.assertEqual(len(possibilities), len(expected))
  6. for p, e in zip(possibilities, expected):
  7. self.assertEqual(p.root, e.root)
  8. for pair in zip(p.args, e.args):
  9. self.assertEqual(*pair)
  10. self.assertEqual(p, e)
  11. def assertEqualNodes(self, a, b):
  12. if not isinstance(a, ExpressionNode):
  13. return self.assertEqual(a, b)
  14. self.assertIsInstance(b, ExpressionNode)
  15. self.assertEqual(a.op, b.op)
  16. for ca, cb in zip(a, b):
  17. self.assertEqualNodes(ca, cb)