From 5ba786a70d2146e6af383b026867836cf86749ce Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 24 Feb 2023 23:38:46 +0100 Subject: [PATCH] Tests: add tests for quantities --- tests/src/Base/CMakeLists.txt | 1 + tests/src/Base/Units.cpp | 56 +++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 tests/src/Base/Units.cpp diff --git a/tests/src/Base/CMakeLists.txt b/tests/src/Base/CMakeLists.txt index 3582ab3076..3e104cc952 100644 --- a/tests/src/Base/CMakeLists.txt +++ b/tests/src/Base/CMakeLists.txt @@ -2,4 +2,5 @@ target_sources( Tests_run PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/tst_Tools.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/Units.cpp ) diff --git a/tests/src/Base/Units.cpp b/tests/src/Base/Units.cpp new file mode 100644 index 0000000000..7466a72f90 --- /dev/null +++ b/tests/src/Base/Units.cpp @@ -0,0 +1,56 @@ +#include "gtest/gtest.h" +#include +#include +#include +#include + +class Quantity : public ::testing::Test { +protected: + void SetUp() override { + QLocale loc(QLocale::C); + QLocale::setDefault(loc); + } + void TearDown() override { + } +}; + +TEST_F(Quantity, TestSchemeImperialTwo) +{ + Base::UnitsSchemaImperialDecimal scheme; + Base::Quantity quantity{1.0, Base::Unit::Length}; + + double factor; + QString unitString; + QString result = scheme.schemaTranslate(quantity, factor, unitString); + EXPECT_EQ(result.toStdString(), "0.04 in"); +} + +TEST_F(Quantity, TestSchemeImperialOne) +{ + Base::UnitsSchemaImperialDecimal scheme; + Base::Quantity quantity{1.0, Base::Unit::Length}; + + Base::QuantityFormat format = quantity.getFormat(); + format.precision = 1; + quantity.setFormat(format); + + double factor; + QString unitString; + QString result = scheme.schemaTranslate(quantity, factor, unitString); + + EXPECT_EQ(result.toStdString(), "0.0 in"); +} + +TEST_F(Quantity, TestSafeUserString) +{ + Base::UnitsApi::setSchema(Base::UnitSystem::ImperialDecimal); + + Base::Quantity quantity{1.0, Base::Unit::Length}; + Base::QuantityFormat format = quantity.getFormat(); + format.precision = 1; + quantity.setFormat(format); + + QString result = quantity.getSafeUserString(); + + EXPECT_EQ(result.toStdString(), "1 mm"); +}