Make LuaTypes internal, and only return the actual values
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user