Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
            }
        }