~aleteoryx/muditaos

36af5120f3b59b63e33d14232500923e7e8b57bd — Paweł Joński 3 years ago 1c2e19f
[BH-1472] Fix minutes form above hundred

Fix minutes form above hundred
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"));
}