|
@@ -4,10 +4,10 @@ from tests.rulestestcase import RulesTestCase as TestCase, rewrite
|
|
|
class TestLeidenOefenopgave(TestCase):
|
|
class TestLeidenOefenopgave(TestCase):
|
|
|
def test_1_1(self):
|
|
def test_1_1(self):
|
|
|
for chain in [['-5(x2 - 3x + 6)', '-5(x ^ 2 - 3x) - 5 * 6',
|
|
for chain in [['-5(x2 - 3x + 6)', '-5(x ^ 2 - 3x) - 5 * 6',
|
|
|
- '-5 * x ^ 2 - 5 * -3x - 5 * 6',
|
|
|
|
|
- '-5 * x ^ 2 - -15x - 5 * 6',
|
|
|
|
|
- '-5 * x ^ 2 + 15x - 5 * 6',
|
|
|
|
|
- '-5 * x ^ 2 + 15x - 30',
|
|
|
|
|
|
|
+ '-5x ^ 2 - 5 * -3x - 5 * 6',
|
|
|
|
|
+ '-5x ^ 2 - -15x - 5 * 6',
|
|
|
|
|
+ '-5x ^ 2 + 15x - 5 * 6',
|
|
|
|
|
+ '-5x ^ 2 + 15x - 30',
|
|
|
],
|
|
],
|
|
|
]:
|
|
]:
|
|
|
self.assertRewrite(chain)
|
|
self.assertRewrite(chain)
|
|
@@ -15,11 +15,11 @@ class TestLeidenOefenopgave(TestCase):
|
|
|
return
|
|
return
|
|
|
|
|
|
|
|
for exp, solution in [
|
|
for exp, solution in [
|
|
|
- ('-5(x2 - 3x + 6)', '-30 + 15 * x - 5 * x ^ 2'),
|
|
|
|
|
- ('(x+1)^2', 'x ^ 2 + 2 * x + 1'),
|
|
|
|
|
- ('(x-1)^2', 'x ^ 2 - 2 * x + 1'),
|
|
|
|
|
- ('(2x+x)*x', '3 * x ^ 2'),
|
|
|
|
|
- ('-2(6x-4)^2*x', '-72 * x^3 + 96 * x ^ 2 + 32 * x'),
|
|
|
|
|
|
|
+ ('-5(x2 - 3x + 6)', '-30 + 15x - 5x ^ 2'),
|
|
|
|
|
+ ('(x+1)^2', 'x ^ 2 + 2x + 1'),
|
|
|
|
|
+ ('(x-1)^2', 'x ^ 2 - 2x + 1'),
|
|
|
|
|
+ ('(2x+x)*x', '3x ^ 2'),
|
|
|
|
|
+ ('-2(6x-4)^2*x', '-72x ^ 3 + 96x ^ 2 + 32x'),
|
|
|
('(4x + 5) * -(5 - 4x)', '16x^2 - 25'),
|
|
('(4x + 5) * -(5 - 4x)', '16x^2 - 25'),
|
|
|
]:
|
|
]:
|
|
|
self.assertEqual(str(rewrite(exp)), solution)
|
|
self.assertEqual(str(rewrite(exp)), solution)
|
|
@@ -36,20 +36,21 @@ class TestLeidenOefenopgave(TestCase):
|
|
|
'(x ^ 2 + 2x + 1 * 1)(x + 1)',
|
|
'(x ^ 2 + 2x + 1 * 1)(x + 1)',
|
|
|
'(x ^ 2 + 2x + 1)(x + 1)',
|
|
'(x ^ 2 + 2x + 1)(x + 1)',
|
|
|
'(x ^ 2 + 2x)x + (x ^ 2 + 2x) * 1 + 1x + 1 * 1',
|
|
'(x ^ 2 + 2x)x + (x ^ 2 + 2x) * 1 + 1x + 1 * 1',
|
|
|
- 'x * x ^ 2 + x * 2x + (x ^ 2 + 2x) * 1 + 1x + 1 * 1',
|
|
|
|
|
|
|
+ 'xx ^ 2 + x * 2x + (x ^ 2 + 2x) * 1 + 1x + 1 * 1',
|
|
|
'x ^ (1 + 2) + x * 2x + (x ^ 2 + 2x) * 1 + 1x + 1 * 1',
|
|
'x ^ (1 + 2) + x * 2x + (x ^ 2 + 2x) * 1 + 1x + 1 * 1',
|
|
|
'x ^ 3 + x * 2x + (x ^ 2 + 2x) * 1 + 1x + 1 * 1',
|
|
'x ^ 3 + x * 2x + (x ^ 2 + 2x) * 1 + 1x + 1 * 1',
|
|
|
- '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',
|
|
|
|
|
|
|
+ 'x ^ 3 + 2xx + (x ^ 2 + 2x) * 1 + 1x + 1 * 1',
|
|
|
|
|
+ 'x ^ 3 + 2x ^ (1 + 1) + (x ^ 2 + 2x) * 1 + 1x + 1 * 1',
|
|
|
|
|
+ 'x ^ 3 + 2x ^ 2 + (x ^ 2 + 2x) * 1 + 1x + 1 * 1',
|
|
|
|
|
+ 'x ^ 3 + 2x ^ 2 + 1x ^ 2 + 1 * 2x + 1x + 1 * 1',
|
|
|
|
|
+ 'x ^ 3 + 2x ^ 2 + x ^ 2 + 1 * 2x + 1x + 1 * 1',
|
|
|
|
|
+ 'x ^ 3 + (2 + 1)x ^ 2 + 1 * 2x + 1x + 1 * 1',
|
|
|
|
|
+ 'x ^ 3 + 3x ^ 2 + 1 * 2x + 1x + 1 * 1',
|
|
|
|
|
+ 'x ^ 3 + 3x ^ 2 + 2x + 1x + 1 * 1',
|
|
|
|
|
+ 'x ^ 3 + 3x ^ 2 + 2x + x + 1 * 1',
|
|
|
|
|
+ 'x ^ 3 + 3x ^ 2 + (2 + 1)x + 1 * 1',
|
|
|
|
|
+ 'x ^ 3 + 3x ^ 2 + 3x + 1 * 1',
|
|
|
|
|
+ 'x ^ 3 + 3x ^ 2 + 3x + 1',
|
|
|
]
|
|
]
|
|
|
]:
|
|
]:
|
|
|
self.assertRewrite(chain)
|
|
self.assertRewrite(chain)
|
|
@@ -115,7 +116,7 @@ class TestLeidenOefenopgave(TestCase):
|
|
|
|
|
|
|
|
def test_1_5(self):
|
|
def test_1_5(self):
|
|
|
self.assertRewrite(['(2x + x)x', '(2 + 1)xx', '3xx',
|
|
self.assertRewrite(['(2x + x)x', '(2 + 1)xx', '3xx',
|
|
|
- '3 * x ^ (1 + 1)', '3 * x ^ 2'])
|
|
|
|
|
|
|
+ '3x ^ (1 + 1)', '3x ^ 2'])
|
|
|
|
|
|
|
|
def test_1_7(self):
|
|
def test_1_7(self):
|
|
|
self.assertRewrite(['(4x + 5) * -(5 - 4x)',
|
|
self.assertRewrite(['(4x + 5) * -(5 - 4x)',
|
|
@@ -124,15 +125,15 @@ class TestLeidenOefenopgave(TestCase):
|
|
|
'4x * -5 + 4x * 4x + 5 * -5 + 5 * 4x',
|
|
'4x * -5 + 4x * 4x + 5 * -5 + 5 * 4x',
|
|
|
'-20x + 4x * 4x + 5 * -5 + 5 * 4x',
|
|
'-20x + 4x * 4x + 5 * -5 + 5 * 4x',
|
|
|
'-20x + 16xx + 5 * -5 + 5 * 4x',
|
|
'-20x + 16xx + 5 * -5 + 5 * 4x',
|
|
|
- '-20x + 16 * x ^ (1 + 1) + 5 * -5 + 5 * 4x',
|
|
|
|
|
- '-20x + 16 * x ^ 2 + 5 * -5 + 5 * 4x',
|
|
|
|
|
- '-20x + 16 * x ^ 2 - 25 + 5 * 4x',
|
|
|
|
|
- '-20x + 16 * x ^ 2 - 25 + 20x',
|
|
|
|
|
- '(-20 + 20)x + 16 * x ^ 2 - 25',
|
|
|
|
|
- '0x + 16 * x ^ 2 - 25',
|
|
|
|
|
- '0 + 16 * x ^ 2 - 25',
|
|
|
|
|
- '-25 + 16 * x ^ 2'])
|
|
|
|
|
- # FIXME: '16 * x ^ 2 - 25'])
|
|
|
|
|
|
|
+ '-20x + 16x ^ (1 + 1) + 5 * -5 + 5 * 4x',
|
|
|
|
|
+ '-20x + 16x ^ 2 + 5 * -5 + 5 * 4x',
|
|
|
|
|
+ '-20x + 16x ^ 2 - 25 + 5 * 4x',
|
|
|
|
|
+ '-20x + 16x ^ 2 - 25 + 20x',
|
|
|
|
|
+ '(-20 + 20)x + 16x ^ 2 - 25',
|
|
|
|
|
+ '0x + 16x ^ 2 - 25',
|
|
|
|
|
+ '0 + 16x ^ 2 - 25',
|
|
|
|
|
+ '-25 + 16x ^ 2'])
|
|
|
|
|
+ # FIXME: '16x ^ 2 - 25'])
|
|
|
|
|
|
|
|
def test_2(self):
|
|
def test_2(self):
|
|
|
pass
|
|
pass
|