public void DivideOperationNodeTest(int left, int right) { var leftNode = new ConstNode(left); var rightNode = new ConstNode(right); var node = new OperationNode(leftNode, rightNode, (a, b) => a / b); var calculatedValue = node.CalculateValue(); calculatedValue.Should().Be((double)left / right); }
public void AddOperationNodeTest(int left, int right) { var leftNode = new ConstNode(left); var rightNode = new ConstNode(right); var node = new OperationNode(leftNode, rightNode, (a, b) => a + b); var calculatedValue = node.CalculateValue(); calculatedValue.Should().Be(left + right); }
public void LeftNestedExpressionTest(int a, int b, int c) { var aNode = new ConstNode(a); var bNode = new ConstNode(b); var cNode = new ConstNode(c); var leftNode = new OperationNode(aNode, bNode, (x, y) => x + y); var node = new OperationNode(leftNode, cNode, (x, y) => x*y); var calculatedValue = node.CalculateValue(); calculatedValue.Should().Be((a + b)*c); }
public void RightLeftNestedExpressionTest(int a, int b, int c, int d) { var aNode = new ConstNode(a); var bNode = new ConstNode(b); var cNode = new ConstNode(c); var dNode = new ConstNode(d); var leftNode = new OperationNode(aNode, bNode, (x, y) => x + y); var rightNode = new OperationNode(cNode, dNode, (x, y) => x - y); var node = new OperationNode(leftNode, rightNode, (x, y) => x * y); var calculatedValue = node.CalculateValue(); calculatedValue.Should().Be((a + b) * (c - d)); }