Skip to content

Commit

Permalink
test(parser): add neq operator to test input
Browse files Browse the repository at this point in the history
  • Loading branch information
sohnryang committed Aug 2, 2023
1 parent a2d9a6d commit d02eb63
Showing 1 changed file with 26 additions and 21 deletions.
47 changes: 26 additions & 21 deletions tests/parser_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,27 +44,32 @@ TEST(ParserTest, Prototype) {
}

TEST(ParserTest, Expr) {
Parser parser("a*a + b*b - c*c + x%m + y/q");
ExprNode
expected = std::make_unique<BinaryExprNode>(
"+",
std::make_unique<BinaryExprNode>(
"+",
std::make_unique<BinaryExprNode>(
"-",
std::make_unique<BinaryExprNode>(
"+",
std::make_unique<BinaryExprNode>(
"*", VariableExprNode("a"), VariableExprNode("a")),
std::make_unique<BinaryExprNode>(
"*", VariableExprNode("b"), VariableExprNode("b"))),
std::make_unique<BinaryExprNode>("*", VariableExprNode("c"),
VariableExprNode("c"))),
std::make_unique<BinaryExprNode>("%", VariableExprNode("x"),
VariableExprNode("m"))),
std::make_unique<BinaryExprNode>("/", VariableExprNode("y"),
VariableExprNode("q"))),
parsed = parser.parse_expr();
Parser parser("a*a + b*b - c*c + x%m + y/q != 0");
ExprNode expected = std::make_unique<BinaryExprNode>(
"!=",
std::make_unique<BinaryExprNode>(
"+",
std::make_unique<BinaryExprNode>(
"+",
std::make_unique<BinaryExprNode>(
"-",
std::make_unique<BinaryExprNode>(
"+",
std::make_unique<BinaryExprNode>(
"*", VariableExprNode("a"),
VariableExprNode("a")),
std::make_unique<BinaryExprNode>(
"*", VariableExprNode("b"),
VariableExprNode("b"))),
std::make_unique<BinaryExprNode>(
"*", VariableExprNode("c"),
VariableExprNode("c"))),
std::make_unique<BinaryExprNode>(
"%", VariableExprNode("x"), VariableExprNode("m"))),
std::make_unique<BinaryExprNode>("/", VariableExprNode("y"),
VariableExprNode("q"))),
LiteralExprNode<int>(0)),
parsed = parser.parse_expr();
EXPECT_EQ(expected, parsed);
}

Expand Down

0 comments on commit d02eb63

Please sign in to comment.