Commit 24dc157d authored by Taddeus Kroes's avatar Taddeus Kroes

Node.contains() now ignores negation in the compared node during comparison.

parent f5a7c1cd
......@@ -252,7 +252,7 @@ class ExpressionBase(object):
"""
Check if a node equal to the specified one exists within this node.
"""
if include_self and self == node:
if include_self and negate(self, 0) == node:
return True
if not self.is_leaf:
......
......@@ -212,13 +212,14 @@ class TestNode(RulesTestCase):
self.assertEqualNodes(Scope(-n).as_nary_node(), -n)
def test_contains(self):
a, ab, bc, ln0, ln1 = tree('a, ab, bc, ln(a) + 1, ln(b) + 1')
a, ab, bc, ln0, ln1, ma = tree('a, ab, bc, ln(a) + 1, ln(b) + 1, -a')
self.assertTrue(a.contains(a))
self.assertTrue(ab.contains(a))
self.assertFalse(bc.contains(a))
self.assertTrue(ln0.contains(a))
self.assertFalse(ln1.contains(a))
self.assertTrue(ma.contains(a))
def test_construct_function_derivative(self):
self.assertEqual(str(tree('der(x ^ 2)')), '[x ^ 2]\'')
......
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