Skip to content
Snippets Groups Projects
Commit 24dc157d authored by Taddeus Kroes's avatar Taddeus Kroes
Browse files

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

parent f5a7c1cd
No related branches found
No related tags found
No related merge requests found
......@@ -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]\'')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment