public void BooleanExpressionEvalTest() { var tests = new BooleanTest[] { new() { Input = "true", Value = true }, new() { Input = "false", Value = false }, new() { Input = "1 < 2", Value = true }, new() { Input = "1 > 2", Value = false }, new() { Input = "1 < 1", Value = false }, new() { Input = "1 > 1", Value = false }, new() { Input = "1 == 1", Value = true }, new() { Input = "1 != 1", Value = false }, new() { Input = "1 == 2", Value = false }, new() { Input = "1 != 2", Value = true }, new() { Input = "true == true", Value = true }, new() { Input = "false == false", Value = true }, new() { Input = "true == false", Value = false }, new() { Input = "true != false", Value = true }, new() { Input = "false != true", Value = true }, new() { Input = "(1 < 2) == true", Value = true }, new() { Input = "(1 < 2) == false", Value = false }, new() { Input = "(1 > 2) == true", Value = false }, new() { Input = "(1 > 2) == false", Value = true } }; foreach (var booleanTest in tests) { var evaluated = StaticTests.TestEval(booleanTest.Input); StaticTests.TestBooleanObject(evaluated, booleanTest.Value); } }
public void RecursionTest() { const string input = @" let recursion = fun(x) { if(x > 100) { return true; } else { recursion(x + 1); } }; recursion(0)"; var evaluated = StaticTests.TestEval(input); StaticTests.TestBooleanObject(evaluated, true); }
public void BangOperatorTest() { var tests = new BooleanTest[] { new() { Input = "!true", Value = false }, new() { Input = "!false", Value = true }, new() { Input = "!5", Value = false }, new() { Input = "!!5", Value = true }, new() { Input = "!!true", Value = true }, new() { Input = "!!false", Value = false } }; foreach (var booleanTest in tests) { var evaluated = StaticTests.TestEval(booleanTest.Input); StaticTests.TestBooleanObject(evaluated, booleanTest.Value); } }