2 Commits
0.2.7 ... 0.2.8

Author SHA1 Message Date
44f3d58db4 0.2.8 2022-03-01 19:14:46 +01:00
551da30a7e Fix functions without parameters. 2022-03-01 19:13:57 +01:00
3 changed files with 31 additions and 7 deletions

View File

@@ -241,6 +241,19 @@ namespace VAR.ExpressionEvaluator.Tests
Assert.Equal(4m, result); Assert.Equal(4m, result);
} }
[Fact]
public void Functions__ZeroParameters()
{
EvaluationContext evaluationContex = new EvaluationContext();
evaluationContex.SetFunction("constant", (parameters) =>
{
return 9m;
});
string expression = "constant()";
object result = Parser.EvaluateString(expression, evaluationContex);
Assert.Equal(9m, result);
}
#endregion Functions #endregion Functions
#region Strings #region Strings
@@ -253,6 +266,14 @@ namespace VAR.ExpressionEvaluator.Tests
Assert.Equal("Hello World", result); Assert.Equal("Hello World", result);
} }
[Fact]
public void Strings__Contatenate_Hello_World_SimpleQuotes()
{
string expression = "'Hello' + ' ' +'World'";
object result = Parser.EvaluateString(expression);
Assert.Equal("Hello World", result);
}
[Fact] [Fact]
public void Strings__Contatenate_Hello_World_WithVariables() public void Strings__Contatenate_Hello_World_WithVariables()
{ {

View File

@@ -239,6 +239,8 @@ namespace VAR.ExpressionEvaluator
{ {
_tokenizer.NextToken(); _tokenizer.NextToken();
var parameters = new List<IExpressionNode>(); var parameters = new List<IExpressionNode>();
if (_tokenizer.Token != Token.ParenthesisEnd)
{
while (true) while (true)
{ {
parameters.Add(ParseBooleanOp()); parameters.Add(ParseBooleanOp());
@@ -249,6 +251,7 @@ namespace VAR.ExpressionEvaluator
} }
break; break;
} }
}
if (_tokenizer.Token != Token.ParenthesisEnd) if (_tokenizer.Token != Token.ParenthesisEnd)
{ {
throw new MissingCloseParenthesisException(); throw new MissingCloseParenthesisException();

View File

@@ -8,7 +8,7 @@
<PropertyGroup> <PropertyGroup>
<PackageId>VAR.ExpressionEvaluator</PackageId> <PackageId>VAR.ExpressionEvaluator</PackageId>
<Title>VAR.ExpressionEvaluator</Title> <Title>VAR.ExpressionEvaluator</Title>
<Version>0.2.7</Version> <Version>0.2.8</Version>
<Description>Expression Evaluation Library</Description> <Description>Expression Evaluation Library</Description>
<Authors>VAR</Authors> <Authors>VAR</Authors>
<Company>VAR</Company> <Company>VAR</Company>