|
|
@@ -30,6 +30,8 @@ class TestLeidenOefenopgave(TestCase):
|
|
|
'(xx + x * 1 + 1x + 1 * 1)(x + 1)',
|
|
|
'(x ^ (1 + 1) + x * 1 + 1x + 1 * 1)(x + 1)',
|
|
|
'(x ^ 2 + x * 1 + 1x + 1 * 1)(x + 1)',
|
|
|
+ '(x ^ 2 + x + 1x + 1 * 1)(x + 1)',
|
|
|
+ '(x ^ 2 + x + x + 1 * 1)(x + 1)',
|
|
|
'(x ^ 2 + (1 + 1)x + 1 * 1)(x + 1)',
|
|
|
'(x ^ 2 + 2x + 1 * 1)(x + 1)',
|
|
|
'(x ^ 2 + 2x + 1)(x + 1)',
|
|
|
@@ -40,9 +42,11 @@ class TestLeidenOefenopgave(TestCase):
|
|
|
'x ^ 3 + x ^ (1 + 1) * 2 + (x ^ 2 + 2x) * 1 + 1x + 1 * 1',
|
|
|
'x ^ 3 + x ^ 2 * 2 + (x ^ 2 + 2x) * 1 + 1x + 1 * 1',
|
|
|
'x ^ 3 + x ^ 2 * 2 + 1 * x ^ 2 + 1 * 2x + 1x + 1 * 1',
|
|
|
+ 'x ^ 3 + x ^ 2 * 2 + x ^ 2 + 1 * 2x + 1x + 1 * 1',
|
|
|
'x ^ 3 + (2 + 1) * x ^ 2 + 1 * 2x + 1x + 1 * 1',
|
|
|
'x ^ 3 + 3 * x ^ 2 + 1 * 2x + 1x + 1 * 1',
|
|
|
'x ^ 3 + 3 * x ^ 2 + 2x + 1x + 1 * 1',
|
|
|
+ 'x ^ 3 + 3 * x ^ 2 + 2x + x + 1 * 1',
|
|
|
'x ^ 3 + 3 * x ^ 2 + (2 + 1)x + 1 * 1',
|
|
|
'x ^ 3 + 3 * x ^ 2 + 3x + 1 * 1',
|
|
|
'x ^ 3 + 3 * x ^ 2 + 3x + 1',
|
|
|
@@ -56,6 +60,8 @@ class TestLeidenOefenopgave(TestCase):
|
|
|
'xx + x * 1 + 1x + 1 * 1',
|
|
|
'x ^ (1 + 1) + x * 1 + 1x + 1 * 1',
|
|
|
'x ^ 2 + x * 1 + 1x + 1 * 1',
|
|
|
+ 'x ^ 2 + x + 1x + 1 * 1',
|
|
|
+ 'x ^ 2 + x + x + 1 * 1',
|
|
|
'x ^ 2 + (1 + 1)x + 1 * 1',
|
|
|
'x ^ 2 + 2x + 1 * 1',
|
|
|
'x ^ 2 + 2x + 1'],
|
|
|
@@ -76,15 +82,32 @@ class TestLeidenOefenopgave(TestCase):
|
|
|
self.assertRewrite(chain)
|
|
|
|
|
|
def test_1_4_1(self):
|
|
|
- self.assertRewrite(['x * -1 + 1x', '(-1 + 1)x', '0x', '0'])
|
|
|
+ self.assertRewrite(['x * -1 + 1x',
|
|
|
+ '-x * 1 + 1x',
|
|
|
+ '-x + 1x',
|
|
|
+ '-x + x',
|
|
|
+ '(-1 + 1)x',
|
|
|
+ '0x',
|
|
|
+ '0'])
|
|
|
|
|
|
def test_1_4_2(self):
|
|
|
- # FIXME: self.assertRewrite(['x * -1 - 1x', '(-1 + -1)x', '-2x'])
|
|
|
- pass
|
|
|
+ self.assertRewrite(['x * -1 - 1x',
|
|
|
+ '-x * 1 - 1x',
|
|
|
+ '-x - 1x',
|
|
|
+ '-x - x',
|
|
|
+ '(1 + 1) * -x',
|
|
|
+ '2 * -x',
|
|
|
+ '-2x'])
|
|
|
|
|
|
def test_1_4_3(self):
|
|
|
- # FIXME: self.assertRewrite(['x * -1 + x * -1', '(-1 + -1)x', '-2x'])
|
|
|
- pass
|
|
|
+ self.assertRewrite(['x * -1 + x * -1',
|
|
|
+ '-x * 1 + x * -1',
|
|
|
+ '-x + x * -1',
|
|
|
+ '-x - x * 1',
|
|
|
+ '-x - x',
|
|
|
+ '(1 + 1) * -x',
|
|
|
+ '2 * -x',
|
|
|
+ '-2x'])
|
|
|
|
|
|
def test_1_5(self):
|
|
|
self.assertRewrite(['(2x + x)x', '(2 + 1)xx', '3xx',
|
|
|
@@ -113,18 +136,25 @@ class TestLeidenOefenopgave(TestCase):
|
|
|
def test_3(self):
|
|
|
pass
|
|
|
|
|
|
- def test_4(self):
|
|
|
- for exp, solution in [
|
|
|
- ('2/15 + 1/4', '8 / 60 + 15 / 60'),
|
|
|
- ('8/60 + 15/60', '(8 + 15) / 60'),
|
|
|
- ('(8 + 15) / 60', '23 / 60'),
|
|
|
- ('2/7 - 4/11', '22 / 77 - 28 / 77'),
|
|
|
- ('22/77 - 28/77', '(22 - 28) / 77'),
|
|
|
- ('(22 - 28)/77', '-6 / 77'),
|
|
|
- # FIXME: ('(7/3) * (3/5)', '7 / 5'),
|
|
|
- # FIXME: ('(3/4) / (5/6)', '9 / 10'),
|
|
|
- # FIXME: ('1/4 * 1/x', '1 / (4x)'),
|
|
|
- # FIXME: ('(3/x^2) / (x/7)', '21 / x^3'),
|
|
|
- # FIXME: ('1/x + 2/(x+1)', '(3x + 1) / (x * (x + 1))'),
|
|
|
- ]:
|
|
|
- self.assertEqual(str(rewrite(exp)), solution)
|
|
|
+ def test_4_1(self):
|
|
|
+ self.assertRewrite(['2/15 + 1/4', '8 / 60 + 15 / 60', '(8 + 15) / 60',
|
|
|
+ '23 / 60'])
|
|
|
+
|
|
|
+ def test_4_2(self):
|
|
|
+ self.assertRewrite(['2/7 - 4/11', '22 / 77 - 28 / 77',
|
|
|
+ '(22 - 28) / 77', '-6 / 77'])
|
|
|
+
|
|
|
+ #def test_4_3(self):
|
|
|
+ # self.assertRewrite(['(7/3) * (3/5)', '7 / 5'])
|
|
|
+
|
|
|
+ #def test_4_4(self):
|
|
|
+ # self.assertRewrite(['(3/4) / (5/6)', '9 / 10'])
|
|
|
+
|
|
|
+ #def test_4_5(self):
|
|
|
+ # self.assertRewrite(['1/4 * 1/x', '1 / (4x)'])
|
|
|
+
|
|
|
+ #def test_4_6(self):
|
|
|
+ # self.assertRewrite(['(3/x^2) / (x/7)', '21 / x^3'])
|
|
|
+
|
|
|
+ #def test_4_7(self):
|
|
|
+ # self.assertRewrite(['1/x + 2/(x+1)', '(3x + 1) / (x * (x + 1))'])
|