test_rewrite.py 706 B

12345678910111213141516171819202122232425
  1. from unittest import TestCase
  2. from src.parser import Parser
  3. from tests.parser import ParserWrapper
  4. def rewrite(exp, **kwargs):
  5. return ParserWrapper(Parser, **kwargs).run([exp, '@'])
  6. class TestRewrite(TestCase):
  7. def assertRewrite(self, rewrite_chain):
  8. try:
  9. for i, exp in enumerate(rewrite_chain[:-1]):
  10. self.assertEqual(str(rewrite(exp)), str(rewrite_chain[i+1]))
  11. except AssertionError:
  12. print exp, '->', rewrite_chain[i+1]
  13. raise
  14. def test_addition_rewrite(self):
  15. self.assertRewrite(['2 + 3 + 4', '5 + 4', '9'])
  16. def test_addition_identifiers_rewrite(self):
  17. self.assertRewrite(['2 + 3a + 4', '6 + 3a'])