diff --git a/tests/parser_test.cpp b/tests/parser_test.cpp index d2aa3e0..ac8c2dd 100644 --- a/tests/parser_test.cpp +++ b/tests/parser_test.cpp @@ -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( - "+", - std::make_unique( - "+", - std::make_unique( - "-", - std::make_unique( - "+", - std::make_unique( - "*", VariableExprNode("a"), VariableExprNode("a")), - std::make_unique( - "*", VariableExprNode("b"), VariableExprNode("b"))), - std::make_unique("*", VariableExprNode("c"), - VariableExprNode("c"))), - std::make_unique("%", VariableExprNode("x"), - VariableExprNode("m"))), - std::make_unique("/", 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( + "!=", + std::make_unique( + "+", + std::make_unique( + "+", + std::make_unique( + "-", + std::make_unique( + "+", + std::make_unique( + "*", VariableExprNode("a"), + VariableExprNode("a")), + std::make_unique( + "*", VariableExprNode("b"), + VariableExprNode("b"))), + std::make_unique( + "*", VariableExprNode("c"), + VariableExprNode("c"))), + std::make_unique( + "%", VariableExprNode("x"), VariableExprNode("m"))), + std::make_unique("/", VariableExprNode("y"), + VariableExprNode("q"))), + LiteralExprNode(0)), + parsed = parser.parse_expr(); EXPECT_EQ(expected, parsed); }