def test_simplify_unary_and_number(self): node = Node(Operations.SIN, left=Node(Operations.NUMBER, value=0)) result = node.simplify() self.assertEqual(result, True) self.assertEqual(node.left, None) self.assertEqual(node.value, 0.0)
def test_simplify_multiply_by_one_left(self): node = Node(Operations.MULTIPLICATION, left=Node(Operations.NUMBER, value=1), right=Node(Operations.IDENTITY, value='x')) result = node.simplify() self.assertEqual(result, True) self.assertEqual(node.operation, Operations.IDENTITY) self.assertEqual(node.value, 'x')
def test_simplify_identical_variables_division(self): node = Node(Operations.DIVISION, left=Node(Operations.IDENTITY, value='x'), right=Node(Operations.IDENTITY, value='x')) result = node.simplify() self.assertEqual(result, True) self.assertEqual(node.left, None) self.assertEqual(node.right, None) self.assertEqual(node.value, 1.0)
def test_simplify_two_numbers(self): node = Node(Operations.MINUS, left=Node(Operations.NUMBER, value=2), right=Node(Operations.NUMBER, value=2)) result = node.simplify() self.assertEqual(result, True) self.assertEqual(node.left, None) self.assertEqual(node.right, None) self.assertEqual(node.value, 0.0)