Upsilon/UpsilonTests/MathPrecedence.cs

29 lines
798 B
C#

using Upsilon.BaseTypes.Number;
using Upsilon.Evaluator;
using Upsilon.Parser;
using Xunit;
namespace UpsilonTests
{
public class MathPrecedence
{
[Theory]
[InlineData("5 * (10 + 5)", 75)]
[InlineData("(10 + 5) * 5", 75)]
public void Parenthesis(string input, double expectedOutput)
{
var actual = new Script(input).Evaluate<NumberDouble>();
Assert.Equal(expectedOutput, actual, 8);
}
[Theory]
[InlineData("5 * 10 + 5", 55)]
[InlineData("5 + 10 * 5", 55)]
public void MultiplicationBeforeAddition(string input, double expectedOutput)
{
var actual = new Script(input).Evaluate<NumberDouble>();
Assert.Equal(expectedOutput, actual, 8);
}
}
}