| 1234567891011121314151617181920212223242526272829303132333435 |
- from unittest import TestCase
- from src.validation import validate, REWRITE_SUCCESS, REWRITE_FAILURE, \
- REWRITE_INVALID, REWRITE_CHECKED
- class TestValidation(TestCase):
- # TODO: test REWRITE_INVALID (because a BisonSyntaxError is thrown now).
- #def test_INVALID(self):
- # self.assertEqual(validate('3a +', '3a'), REWRITE_INVALID)
- def test_simple_CHECKED(self):
- self.assertEqual(validate('3a + a', '4a'), (REWRITE_CHECKED, 0))
- def test_simple_failure(self):
- self.assertEqual(validate('3a + a', '4a + 1'), (REWRITE_FAILURE, 0))
- def test_intermediate_success(self):
- self.assertEqual(validate('3a + a + b + 2b', '4a + 3b'),
- (REWRITE_CHECKED, 0))
- self.assertEqual(validate('a / b / (c / d)', '(ad) / (bc)'),
- (REWRITE_CHECKED, 0))
- def test_intermediate_failure(self):
- self.assertEqual(validate('3a + a + b + 2b', '4a + 4b'),
- (REWRITE_FAILURE, 0))
- # TODO: this test fails due 'maximum recursion depth exceeded'.
- def test_indefinite_integral(self):
- self.assertEqual(validate('int_2^4 x^2', '4^3/3 - 2^3/3'),
- (REWRITE_SUCCESS, 0))
- def test_advanced_failure(self):
- self.assertEqual(validate('(x-1)^3+(x-1)^3', '4a+4b'),
- (REWRITE_FAILURE, 0))
|