Commit decffc5c authored by Vít Starý Novotný's avatar Vít Starý Novotný
Browse files

Added relation expression tests for the LLVM compiler.

parent b7826f0a
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
@@ -404,3 +404,30 @@ TEST(Phase03_LLVMParser, boolExpressions)
    EXPECT_EQ(0, string_to_integer(compile_and_run("if not [false or true] then return 1; fi; return 0;")));
    EXPECT_EQ(1, string_to_integer(compile_and_run("if not [false or false] then return 1; fi; return 0;")));
}

TEST(Phase03_LLVMParser, relationExpressions)
{
    EXPECT_EQ(1, string_to_integer(compile_and_run("if 1 < 2 then return 1; fi; return 0;")));
    EXPECT_EQ(0, string_to_integer(compile_and_run("if 1 = 2 then return 1; fi; return 0;")));
    EXPECT_EQ(0, string_to_integer(compile_and_run("if 1 > 2 then return 1; fi; return 0;")));

    EXPECT_EQ(0, string_to_integer(compile_and_run("if 2 < 2 then return 1; fi; return 0;")));
    EXPECT_EQ(1, string_to_integer(compile_and_run("if 2 = 2 then return 1; fi; return 0;")));
    EXPECT_EQ(0, string_to_integer(compile_and_run("if 2 > 2 then return 1; fi; return 0;")));

    EXPECT_EQ(0, string_to_integer(compile_and_run("if 2 < 1 then return 1; fi; return 0;")));
    EXPECT_EQ(0, string_to_integer(compile_and_run("if 2 = 1 then return 1; fi; return 0;")));
    EXPECT_EQ(1, string_to_integer(compile_and_run("if 2 > 1 then return 1; fi; return 0;")));

    EXPECT_EQ(1, string_to_integer(compile_and_run("if 1.0 < 2.0 then return 1; fi; return 0;")));
    EXPECT_EQ(0, string_to_integer(compile_and_run("if 1.0 = 2.0 then return 1; fi; return 0;")));
    EXPECT_EQ(0, string_to_integer(compile_and_run("if 1.0 > 2.0 then return 1; fi; return 0;")));

    EXPECT_EQ(0, string_to_integer(compile_and_run("if 2.0 < 2.0 then return 1; fi; return 0;")));
    EXPECT_EQ(1, string_to_integer(compile_and_run("if 2.0 = 2.0 then return 1; fi; return 0;")));
    EXPECT_EQ(0, string_to_integer(compile_and_run("if 2.0 > 2.0 then return 1; fi; return 0;")));

    EXPECT_EQ(0, string_to_integer(compile_and_run("if 2.0 < 1.0 then return 1; fi; return 0;")));
    EXPECT_EQ(0, string_to_integer(compile_and_run("if 2.0 = 1.0 then return 1; fi; return 0;")));
    EXPECT_EQ(1, string_to_integer(compile_and_run("if 2.0 > 1.0 then return 1; fi; return 0;")));
}