diff --git a/tests/src/App/Expression.cpp b/tests/src/App/Expression.cpp index 2072796c32..8a7c1a50fb 100644 --- a/tests/src/App/Expression.cpp +++ b/tests/src/App/Expression.cpp @@ -1,25 +1,52 @@ #include "gtest/gtest.h" +#include "App/ExpressionParser.h" #include "App/ExpressionTokenizer.h" +// clang-format off TEST(Expression, tokenize) { EXPECT_EQ(App::ExpressionTokenizer().perform(QString::fromUtf8(""), 10), QString()); // 0.0000 deg- EXPECT_EQ(App::ExpressionTokenizer().perform(QString::fromUtf8("0.00000 \xC2\xB0-"), 10), QString()); - EXPECT_EQ(App::ExpressionTokenizer().perform(QString::fromUtf8("0.00000 \xC2\xB0-s"), 11), QString("s")); - EXPECT_EQ(App::ExpressionTokenizer().perform(QString::fromUtf8("0.00000 \xC2\xB0-ss"), 12), QString("ss")); + EXPECT_EQ(App::ExpressionTokenizer().perform(QString::fromUtf8("0.00000 \xC2\xB0-s"), 11), QString::fromLatin1("s")); + EXPECT_EQ(App::ExpressionTokenizer().perform(QString::fromUtf8("0.00000 \xC2\xB0-ss"), 12), QString::fromLatin1("ss")); EXPECT_EQ(App::ExpressionTokenizer().perform(QString::fromUtf8("0.00000 deg"), 5), QString()); - EXPECT_EQ(App::ExpressionTokenizer().perform(QString::fromUtf8("0.00000 deg"), 11), QString("deg")); + EXPECT_EQ(App::ExpressionTokenizer().perform(QString::fromUtf8("0.00000 deg"), 11), QString::fromLatin1("deg")); } TEST(Expression, tokenizePi) { - EXPECT_EQ(App::ExpressionTokenizer().perform(QString("p"), 1), QString("p")); - EXPECT_EQ(App::ExpressionTokenizer().perform(QString("pi"), 2), QString()); - EXPECT_EQ(App::ExpressionTokenizer().perform(QString("pi "), 3), QString()); - EXPECT_EQ(App::ExpressionTokenizer().perform(QString("pi r"), 4), QString("r")); - EXPECT_EQ(App::ExpressionTokenizer().perform(QString("pi ra"), 5), QString("ra")); - EXPECT_EQ(App::ExpressionTokenizer().perform(QString("pi rad"), 6), QString("rad")); - EXPECT_EQ(App::ExpressionTokenizer().perform(QString("pi rad"), 2), QString()); + EXPECT_EQ(App::ExpressionTokenizer().perform(QString::fromLatin1("p"), 1), QString::fromLatin1("p")); + EXPECT_EQ(App::ExpressionTokenizer().perform(QString::fromLatin1("pi"), 2), QString()); + EXPECT_EQ(App::ExpressionTokenizer().perform(QString::fromLatin1("pi "), 3), QString()); + EXPECT_EQ(App::ExpressionTokenizer().perform(QString::fromLatin1("pi r"), 4), QString::fromLatin1("r")); + EXPECT_EQ(App::ExpressionTokenizer().perform(QString::fromLatin1("pi ra"), 5), QString::fromLatin1("ra")); + EXPECT_EQ(App::ExpressionTokenizer().perform(QString::fromLatin1("pi rad"), 6), QString::fromLatin1("rad")); + EXPECT_EQ(App::ExpressionTokenizer().perform(QString::fromLatin1("pi rad"), 2), QString()); } + +TEST(Expression, toString) +{ + App::UnitExpression expr{nullptr, Base::Quantity{}, "pi rad"}; + EXPECT_EQ(expr.toString(), "pi rad"); +} + +TEST(Expression, test_pi_rad) +{ + auto constant = std::make_unique(nullptr, "pi"); + auto unit = std::make_unique(nullptr, Base::Quantity{}, "rad"); + auto op = std::make_unique(nullptr, constant.get(), App::OperatorExpression::UNIT, unit.get()); + EXPECT_EQ(op->toString(), "pi rad"); + op.release(); +} + +TEST(Expression, test_e_rad) +{ + auto constant = std::make_unique(nullptr, "e"); + auto unit = std::make_unique(nullptr, Base::Quantity{}, "rad"); + auto op = std::make_unique(nullptr, constant.get(), App::OperatorExpression::UNIT, unit.get()); + EXPECT_EQ(op->toString(), "e rad"); + op.release(); +} +// clang-format on