示例#1
0
 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)
示例#2
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')
示例#3
0
 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)
示例#4
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)
示例#5
0
from expression import Node

with open("input.txt", "r") as f:
    lines = f.read().splitlines()

print(sum(Node(line).evaluate(op_precedence=["+", "*"]) for line in lines))
示例#6
0
 def test_value_in_point(self):
     node = Node(Operations.MINUS,
             left=Node(Operations.IDENTITY, value='x'),
             right=Node(Operations.IDENTITY, value='y'))
     result = node.value_in_point({'x': 2, 'y': 1})
     self.assertEqual(result, 1.0)
示例#7
0
from expression import Node

with open("input.txt", "r") as f:
    lines = f.read().splitlines()

print(sum(Node(line).evaluate() for line in lines))