M products/BellHybrid/apps/common/CMakeLists.txt => products/BellHybrid/apps/common/CMakeLists.txt +6 -0
@@ 1,3 1,5 @@
+module_is_test_entity(bell-applications-common)
+
add_library(application-bell-common STATIC)
add_library(bell::app-common ALIAS application-bell-common)
@@ 126,3 128,7 @@ target_link_libraries(application-bell-common
module-gui
bell::db
)
+
+if (${ENABLE_TESTS})
+ add_subdirectory(tests)
+endif()
M products/BellHybrid/apps/common/src/LanguageUtils.cpp => products/BellHybrid/apps/common/src/LanguageUtils.cpp +3 -2
@@ 13,9 13,10 @@ namespace
if (val == 1) {
return minuteLower;
}
+ auto core = val % 100;
if (utils::getDisplayLanguage() == "Polski") {
- if (val < 10 || val > 20) {
- if ((val % 10) == 2 || (val % 10) == 3 || (val % 10) == 4) {
+ if (core < 10 || core > 20) {
+ if ((core % 10) == 2 || (core % 10) == 3 || (core % 10) == 4) {
return minutesLower;
}
}
A products/BellHybrid/apps/common/tests/CMakeLists.txt => products/BellHybrid/apps/common/tests/CMakeLists.txt +12 -0
@@ 0,0 1,12 @@
+add_gtest_executable(
+ NAME
+ bell-apps-common-tests
+ SRCS
+ test-LanguageUtils.cpp
+ LIBS
+ bell::app-common
+ module-sys
+ INCLUDE
+ $<TARGET_PROPERTY:bell::app-common,INCLUDE_DIRECTORIES>
+ USE_FS
+)
A products/BellHybrid/apps/common/tests/test-LanguageUtils.cpp => products/BellHybrid/apps/common/tests/test-LanguageUtils.cpp +54 -0
@@ 0,0 1,54 @@
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
+// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
+
+#include <gtest/gtest.h>
+
+#include <i18n/i18n.hpp>
+#include <common/LanguageUtils.hpp>
+
+TEST(MinutesGenitive, Polish)
+{
+
+ using namespace utils::language;
+
+ utils::setDisplayLanguage("Polski");
+
+ EXPECT_EQ(getCorrectMinutesNumeralForm(0), utils::translate("common_minutes_lower_genitive"));
+ EXPECT_EQ(getCorrectMinutesNumeralForm(1), utils::translate("common_minute_lower"));
+ EXPECT_EQ(getCorrectMinutesNumeralForm(2), utils::translate("common_minutes_lower"));
+ EXPECT_EQ(getCorrectMinutesNumeralForm(3), utils::translate("common_minutes_lower"));
+ EXPECT_EQ(getCorrectMinutesNumeralForm(4), utils::translate("common_minutes_lower"));
+ EXPECT_EQ(getCorrectMinutesNumeralForm(5), utils::translate("common_minutes_lower_genitive"));
+ EXPECT_EQ(getCorrectMinutesNumeralForm(10), utils::translate("common_minutes_lower_genitive"));
+ EXPECT_EQ(getCorrectMinutesNumeralForm(11), utils::translate("common_minutes_lower_genitive"));
+ EXPECT_EQ(getCorrectMinutesNumeralForm(15), utils::translate("common_minutes_lower_genitive"));
+ EXPECT_EQ(getCorrectMinutesNumeralForm(20), utils::translate("common_minutes_lower_genitive"));
+ EXPECT_EQ(getCorrectMinutesNumeralForm(22), utils::translate("common_minutes_lower"));
+ EXPECT_EQ(getCorrectMinutesNumeralForm(84), utils::translate("common_minutes_lower"));
+ EXPECT_EQ(getCorrectMinutesNumeralForm(95), utils::translate("common_minutes_lower_genitive"));
+ EXPECT_EQ(getCorrectMinutesNumeralForm(100), utils::translate("common_minutes_lower_genitive"));
+ EXPECT_EQ(getCorrectMinutesNumeralForm(101), utils::translate("common_minutes_lower_genitive"));
+ EXPECT_EQ(getCorrectMinutesNumeralForm(102), utils::translate("common_minutes_lower"));
+ EXPECT_EQ(getCorrectMinutesNumeralForm(1003), utils::translate("common_minutes_lower"));
+ EXPECT_EQ(getCorrectMinutesNumeralForm(9999), utils::translate("common_minutes_lower_genitive"));
+}
+
+TEST(MinutesGenitive, English)
+{
+
+ using namespace utils::language;
+
+ utils::setDisplayLanguage("English");
+
+ EXPECT_EQ(getCorrectMinutesNumeralForm(0), utils::translate("common_minutes_lower"));
+ EXPECT_EQ(getCorrectMinutesNumeralForm(1), utils::translate("common_minute_lower"));
+ EXPECT_EQ(getCorrectMinutesNumeralForm(5), utils::translate("common_minutes_lower"));
+ EXPECT_EQ(getCorrectMinutesNumeralForm(10), utils::translate("common_minutes_lower"));
+ EXPECT_EQ(getCorrectMinutesNumeralForm(11), utils::translate("common_minutes_lower"));
+ EXPECT_EQ(getCorrectMinutesNumeralForm(15), utils::translate("common_minutes_lower"));
+ EXPECT_EQ(getCorrectMinutesNumeralForm(20), utils::translate("common_minutes_lower"));
+ EXPECT_EQ(getCorrectMinutesNumeralForm(95), utils::translate("common_minutes_lower"));
+ EXPECT_EQ(getCorrectMinutesNumeralForm(100), utils::translate("common_minutes_lower"));
+ EXPECT_EQ(getCorrectMinutesNumeralForm(101), utils::translate("common_minutes_lower"));
+ EXPECT_EQ(getCorrectMinutesNumeralForm(9999), utils::translate("common_minutes_lower"));
+}