Parser: Fix recursion bug.

This commit is contained in:
2019-12-02 12:05:56 +01:00
parent db46e7b8d8
commit 2dc0ed7ba3
2 changed files with 26 additions and 3 deletions

View File

@@ -1,6 +1,6 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace VAR.ExpressionEvaluator.Tests
{
@@ -199,6 +199,29 @@ namespace VAR.ExpressionEvaluator.Tests
Assert.AreEqual(10m, result);
}
[TestMethod()]
public void Functions__NestedTest()
{
EvaluationContext evaluationContex = new EvaluationContext();
evaluationContex.SetVariable("linea1", 1);
evaluationContex.SetVariable("linea2", 1);
evaluationContex.SetVariable("linea4", 4);
evaluationContex.SetFunction("iif", (parameters) =>
{
if (((bool)parameters[0]) == true)
{
return parameters[1];
}
else
{
return parameters[2];
}
});
string expression = "iif(linea1>linea2,iif(linea1>linea4, linea1, iif(linea4>linea2,linea4,linea2)),iif(linea2>linea4,linea2,linea4))";
object result = Parser.EvaluateString(expression, evaluationContex);
Assert.AreEqual(4m, result);
}
#endregion Functions
#region Strings