Tests: add unit tests for expression tokenizer

This commit is contained in:
wmayer
2023-02-24 17:21:27 +01:00
committed by wwmayer
parent 972329be99
commit b55a5682ad
2 changed files with 26 additions and 0 deletions

View File

@@ -2,6 +2,7 @@ target_sources(
Tests_run
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/Branding.cpp
${CMAKE_CURRENT_SOURCE_DIR}/Expression.cpp
${CMAKE_CURRENT_SOURCE_DIR}/License.cpp
${CMAKE_CURRENT_SOURCE_DIR}/Metadata.cpp
)

View File

@@ -0,0 +1,25 @@
#include "gtest/gtest.h"
#include "App/ExpressionTokenizer.h"
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 deg"), 5), QString());
EXPECT_EQ(App::ExpressionTokenizer().perform(QString::fromUtf8("0.00000 deg"), 11), QString("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());
}