public void valid_equals_comparison_using_strings() { // "abc" = "abc" var target = new LogicalBinaryOperationExpression { Left = new StringLiteralExpression("abc"), Right = new StringLiteralExpression("abc"), Operator = TigerOperator.Equal }; AstHelper helper = Mother.CreateRuntime(); var result = target.Compile(helper).Eval <bool>(); Assert.IsTrue(result); }
public void compare_integer_with_string() { // "abc" = "abc" var target = new LogicalBinaryOperationExpression { Left = new IntLiteralExpression(1), Right = new StringLiteralExpression("abc"), Operator = TigerOperator.Equal }; AstHelper helper = Mother.CreateRuntime(); var result = target.Compile(helper).Eval <bool>(); Assert.IsFalse(result); }
public void nil_equals_integer() { // nil = 1 var target = new LogicalBinaryOperationExpression { Left = new NullLiteralExpression(), Right = new IntLiteralExpression(1), Operator = TigerOperator.Equal }; AstHelper helper = Mother.CreateRuntime(); var result = target.Compile(helper).Eval <bool>(); Assert.IsFalse(result); }
public void nil_and_also_integer() { // nil && 1 var target = new LogicalBinaryOperationExpression { Left = new ToBooleanExpression(new NullLiteralExpression()), Right = new ToBooleanExpression(new IntLiteralExpression(1)), Operator = TigerOperator.AndAlso }; AstHelper helper = Mother.CreateRuntime(); var result = target.Compile(helper).Eval <bool>(); Assert.IsFalse(result); }
public void integer_or_else_nil() { // 1 || nil var target = new LogicalBinaryOperationExpression { Left = new ToBooleanExpression(new IntLiteralExpression(1)), Right = new ToBooleanExpression(new NullLiteralExpression()), Operator = TigerOperator.OrElse }; AstHelper helper = Mother.CreateRuntime(); var result = target.Compile(helper).Eval <bool>(); Assert.IsTrue(result); }
public void logical_binary_comparation_nil_with_string() { // nil=(nil="pepe") var target = new LogicalBinaryOperationExpression { Left = new NullLiteralExpression(), Right = new LogicalBinaryOperationExpression { Left = new NullLiteralExpression(), Right = new StringLiteralExpression("pepe"), Operator = TigerOperator.Equal }, Operator = TigerOperator.Equal }; AstHelper helper = Mother.CreateRuntime(); var result = target.Compile(helper).Eval <bool>(); Assert.IsFalse(result); }
public void nil_equals_nil() { // nil = nil var target = new LogicalBinaryOperationExpression { Left = new NullLiteralExpression(), Right = new NullLiteralExpression(), Operator = TigerOperator.Equal }; AstHelper helper = Mother.CreateRuntime(); try { target.Compile(helper); } catch (SemanticException e) { var error = e.Errors.First() as CanNotInferTypeError; Assert.IsNotNull(error); Assert.Pass(); } Assert.Fail(); }