Make LuaTypes internal, and only return the actual values

This commit is contained in:
2018-11-17 12:40:28 +01:00
parent f74992e47b
commit a631d3b377
21 changed files with 159 additions and 114 deletions

View File

@@ -1,6 +1,4 @@
using Upsilon.BaseTypes.Number;
using Upsilon.Evaluator;
using Upsilon.Parser;
using Xunit;
namespace UpsilonTests
@@ -17,8 +15,8 @@ namespace UpsilonTests
[InlineData("0.005 + 2.2", 2.205)]
public void Addition(string input, double expectedOutput)
{
var actual = new Script(input).Evaluate<Number>();
Assert.Equal(expectedOutput, (double)actual, 8);
var actual = new Script(input).Evaluate<double>();
Assert.Equal(expectedOutput, actual, 8);
}
[Theory]
@@ -30,8 +28,8 @@ namespace UpsilonTests
[InlineData("10.256-2.8546", 7.4014)]
public void Subtraction(string input, double expectedOutput)
{
var actual = new Script(input).Evaluate<Number>();
Assert.Equal(expectedOutput, (double)actual, 8);
var actual = new Script(input).Evaluate<double>();
Assert.Equal(expectedOutput, actual, 8);
}
[Theory]
@@ -40,8 +38,8 @@ namespace UpsilonTests
[InlineData("21312 * 41684", 888369408)]
public void Multiplication(string input, double expectedOutput)
{
var actual = new Script(input).Evaluate<Number>();
Assert.Equal(expectedOutput, (double)actual, 8);
var actual = new Script(input).Evaluate<double>();
Assert.Equal(expectedOutput, actual, 8);
}
[Theory]
@@ -51,8 +49,8 @@ namespace UpsilonTests
[InlineData("656486 / 5146.0", 127.57209483)]
public void Divison(string input, double expectedOutput)
{
var actual = new Script(input).Evaluate<Number>();
Assert.Equal(expectedOutput, (double)actual, 8);
var actual = new Script(input).Evaluate<double>();
Assert.Equal(expectedOutput, actual, 8);
}
}

View File

@@ -21,10 +21,8 @@ testFunc()
Assert.Empty(script.Diagnostics.Messages);
script.Evaluate();
Assert.Empty(script.Diagnostics.Messages);
Assert.True(script.Scope.TryGet("testFunc", out var func));
Assert.IsType<LuaFunction>(func);
Assert.True(script.Scope.TryGet("a", out var a));
Assert.Equal(100, (long)(NumberLong)a);
var a = script.GetVariable<long>("a");
Assert.Equal(100, a);
}
[Fact]
@@ -41,10 +39,8 @@ testFunc(100)
Assert.Empty(script.Diagnostics.Messages);
script.Evaluate();
Assert.Empty(script.Diagnostics.Messages);
Assert.True(script.Scope.TryGet("testFunc", out var func));
Assert.IsType<LuaFunction>(func);
Assert.True(script.Scope.TryGet("a", out var a));
Assert.Equal(100, (long)(NumberLong)a);
var a = script.GetVariable<long>("a");
Assert.Equal(100, a);
}
[Fact]
@@ -58,10 +54,9 @@ testFunc(100)
";
var script = new Script(input);
Assert.Empty(script.Diagnostics.Messages);
script.Evaluate();
var val = script.Evaluate();
Assert.Single(script.Diagnostics.Messages);
Assert.True(script.Scope.TryGet("testFunc", out var func));
Assert.IsType<LuaFunction>(func);
Assert.True(script.HasVariable("testFunc"));
}
[Fact]
@@ -74,11 +69,9 @@ end
";
var script = new Script(input);
Assert.Empty(script.Diagnostics.Messages);
script.Evaluate();
var val = script.Evaluate();
Assert.Empty(script.Diagnostics.Messages);
Assert.True(script.Scope.TryGet("testFunc", out var func));
var castType = Assert.IsType<LuaFunction>(func);
Assert.NotNull(castType.Block);
Assert.True(script.HasVariable("testFunc"));
}
[Fact]
@@ -94,8 +87,8 @@ a = testFunc()
Assert.Empty(script.Diagnostics.Messages);
script.Evaluate();
Assert.Empty(script.Diagnostics.Messages);
Assert.True(script.Scope.TryGet("a", out var result));
Assert.Equal(5, (long)(NumberLong)result);
var a = script.GetVariable<long>("a");
Assert.Equal(5, a);
}
[Fact]
@@ -112,8 +105,8 @@ a = testFunc()
Assert.Empty(script.Diagnostics.Messages);
script.Evaluate();
Assert.Empty(script.Diagnostics.Messages);
Assert.True(script.Scope.TryGet("a", out var result));
Assert.Equal(5, (long)(NumberLong)result);
var a = script.GetVariable<long>("a");
Assert.Equal(5, a);
}
[Fact]
@@ -132,8 +125,8 @@ a = testFunc()
Assert.Empty(script.Diagnostics.Messages);
script.Evaluate();
Assert.Empty(script.Diagnostics.Messages);
Assert.True(script.Scope.TryGet("a", out var result));
Assert.Equal(5, (long)(NumberLong)result);
var a = script.GetVariable<long>("a");
Assert.Equal(5, a);
}
[Fact]
@@ -146,9 +139,9 @@ a = 87
";
var script = new Script(input);
Assert.Empty(script.Diagnostics.Messages);
var result = script.Evaluate<NumberLong>();
var result = script.Evaluate<long>();
Assert.Empty(script.Diagnostics.Messages);
Assert.Equal(60, (long)(NumberLong)result);
Assert.Equal(60, result);
}
[Fact]
@@ -161,9 +154,9 @@ end
";
var script = new Script(input);
Assert.Empty(script.Diagnostics.Messages);
var result = script.EvaluateFunction<NumberLong>("testFunc");
var result = script.EvaluateFunction<long>("testFunc");
Assert.Empty(script.Diagnostics.Messages);
Assert.Equal(100, (long)result);
Assert.Equal(100, result);
}
[Fact]
@@ -180,12 +173,12 @@ end
";
var script = new Script(input);
Assert.Empty(script.Diagnostics.Messages);
var result = script.EvaluateFunction<NumberLong>("testFunc", new object[] {true});
var result = script.EvaluateFunction<long>("testFunc", new object[] {true});
Assert.Empty(script.Diagnostics.Messages);
Assert.Equal(100, (long)result);
var result2 = script.EvaluateFunction<NumberLong>("testFunc", new object[] {false});
Assert.Equal(100, result);
var result2 = script.EvaluateFunction<long>("testFunc", new object[] {false});
Assert.Empty(script.Diagnostics.Messages);
Assert.Equal(50, (long)result2);
Assert.Equal(50, result2);
}
@@ -199,9 +192,9 @@ end
";
var script = new Script(input);
Assert.Empty(script.Diagnostics.Messages);
var result = script.EvaluateFunction<NumberLong>("add", new object[] {400, 128});
var result = script.EvaluateFunction<long>("add", new object[] {400, 128});
Assert.Empty(script.Diagnostics.Messages);
Assert.Equal(528, (long)result);
Assert.Equal(528, result);
}

View File

@@ -13,7 +13,7 @@ namespace UpsilonTests
var input = "if true then val = true end";
var script = new Script(input);
Assert.Empty(script.Diagnostics.Messages);
var actual = script.Evaluate<LuaBoolean>();
var actual = script.Evaluate<bool>();
Assert.True(actual);
}
@@ -32,7 +32,7 @@ else
end";
var script = new Script(input);
Assert.Empty(script.Diagnostics.Messages);
var actual = (long)(NumberLong)script.Evaluate();
var actual = script.Evaluate<long>();
Assert.Equal(expected, actual);
}
@@ -52,7 +52,7 @@ else
end";
var script = new Script(input);
Assert.Empty(script.Diagnostics.Messages);
var actual = (long)(NumberLong)script.Evaluate();
var actual = script.Evaluate<long>();
Assert.Equal(expected, actual);
}

View File

@@ -12,7 +12,7 @@ namespace UpsilonTests
[InlineData("(10 + 5) * 5", 75)]
public void Parenthesis(string input, double expectedOutput)
{
var actual = new Script(input).Evaluate<NumberLong>();
var actual = new Script(input).Evaluate<long>();
Assert.Equal(expectedOutput, actual, 8);
}
@@ -21,7 +21,7 @@ namespace UpsilonTests
[InlineData("5 + 10 * 5", 55)]
public void MultiplicationBeforeAddition(string input, double expectedOutput)
{
var actual = new Script(input).Evaluate<NumberLong>();
var actual = new Script(input).Evaluate<long>();
Assert.Equal(expectedOutput, actual, 8);
}

View File

@@ -19,8 +19,8 @@ end
Assert.Empty(script.Diagnostics.Messages);
script.Evaluate();
Assert.Empty(script.Diagnostics.Messages);
Assert.True(script.Scope.TryGet("a", out var obj));
Assert.Equal((long)10, (NumberLong)obj);
var a = script.GetVariable<long>("a");
Assert.Equal(10, a);
}
[Fact]
@@ -37,8 +37,8 @@ b = a
Assert.Empty(script.Diagnostics.Messages);
script.Evaluate();
Assert.Empty(script.Diagnostics.Messages);
Assert.True(script.Scope.TryGet("a", out var obj));
Assert.Equal((long)100, (NumberLong)obj);
var a = script.GetVariable<long>("a");
Assert.Equal(100, a);
}
}