Files
VAR.ExpressionEvaluator/VAR.ExpressionEvaluator.Tests/ExpressionBinaryNodeTests.cs

64 lines
1.8 KiB
C#

using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace VAR.ExpressionEvaluator.Tests
{
[TestClass()]
public class ExpressionBinaryNodeTests
{
[TestMethod()]
public void ExpressionBinaryNode__Plus()
{
var expr = new ExpressionBinaryNode(
leftNode: new ExpressionNumberNode(10),
rightNode: new ExpressionNumberNode(20),
operation: (a, b) => (decimal)a + (decimal)b
);
var result = expr.Eval();
Assert.AreEqual(30m, result);
}
[TestMethod()]
public void ExpressionBinaryNode__Minus()
{
var expr = new ExpressionBinaryNode(
leftNode: new ExpressionNumberNode(10),
rightNode: new ExpressionNumberNode(20),
operation: (a, b) => (decimal)a - (decimal)b
);
var result = expr.Eval();
Assert.AreEqual(-10m, result);
}
[TestMethod()]
public void ExpressionBinaryNode__Multiply()
{
var expr = new ExpressionBinaryNode(
leftNode: new ExpressionNumberNode(10),
rightNode: new ExpressionNumberNode(20),
operation: (a, b) => (decimal)a * (decimal)b
);
var result = expr.Eval();
Assert.AreEqual(200m, result);
}
[TestMethod()]
public void ExpressionBinaryNode__Division()
{
var expr = new ExpressionBinaryNode(
leftNode: new ExpressionNumberNode(10),
rightNode: new ExpressionNumberNode(5),
operation: (a, b) => (decimal)a / (decimal)b
);
var result = expr.Eval();
Assert.AreEqual(2m, result);
}
}
}