Antlr is not parsing specific numbers correctly
rexcfnghk opened this issue · 0 comments
rexcfnghk commented
This unit test fails unexpectedly:
[Fact]
public void IfTest()
{
// Arrange
const long expected = 9999999999L;
var expression = $"if(true, {expected}, 0)";
var e = new Expression(expression);
// Act
var actual = e.Evaluate();
// Assert
Assert.Equal(expected, actual);
}
Xunit.Sdk.EqualException
Assert.Equal() Failure
Expected: 9999999999
Actual: 1E+10
Strangely the test passes if you remove one 9
from the long
constant. The same thing happens for the lambda version:
[Fact]
public void IfTest2()
{
// Arrange
const long expected = 9999999999L;
var expression = $"if(true, {expected}, 0)";
var e = new Expression(expression);
var context = new object();
var lambda = e.ToLambda<object, long>();
// Act
var actual = lambda(context);
// Assert
Assert.Equal(expected, actual);
}