Commit 7d186db7 authored by Taddeus Kroes's avatar Taddeus Kroes

Implemented use of Scope class in multiply_numerics.

parent d1eb149c
...@@ -147,13 +147,12 @@ def multiply_numerics(root, args): ...@@ -147,13 +147,12 @@ def multiply_numerics(root, args):
else: else:
substitution = -Leaf(-value) substitution = -Leaf(-value)
for n in Scope(root): scope = Scope(root)
if hash(n) == hash(n0):
# Replace the left node with the new expression # Replace the left node with the new expression
scope.append(substitution) scope.remove(n0, substitution)
#scope.append(n)
elif hash(n) != hash(n1):
# Remove the right node # Remove the right node
scope.append(n) scope.remove(n1)
return nary_node('*', scope) return scope.as_nary_node()
...@@ -96,7 +96,19 @@ class TestRulesNumerics(RulesTestCase): ...@@ -96,7 +96,19 @@ class TestRulesNumerics(RulesTestCase):
a * 6 * b) a * 6 * b)
def test_multiply_numerics_negation(self): def test_multiply_numerics_negation(self):
#a, b = root = tree('1 - 5 * -3x - 5 * 6') l1_neg, l2 = root = tree('-1 * 2')
l1, l2 = tree('-1 * 2') self.assertEqualNodes(multiply_numerics(root, (l1_neg, l2, -1, 2)), -l2)
self.assertEqual(multiply_numerics(l1 * l2, (l1, l2, -1, 2)), -l2) root, l6 = tree('1 - 2 * 3,6')
l1, neg = root
l2, l3 = mul = neg[0]
self.assertEqualNodes(multiply_numerics(mul, (l2, l3, 2, 3)), l6)
l1, mul = root = tree('1 + -2 * 3')
l2_neg, l3 = mul
self.assertEqualNodes(multiply_numerics(mul, (l2_neg, l3, -2, 3)), -l6)
root, l30 = tree('-5 * x ^ 2 - -15x - 5 * 6,30')
rest, mul_neg = root
l5_neg, l6 = mul = mul_neg[0]
self.assertEqualNodes(multiply_numerics(mul, (l5_neg, l6, 5, 6)), l30)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment