mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-01-12 07:47:59 -05:00
135 lines
6.3 KiB
C++
135 lines
6.3 KiB
C++
// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
|
|
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
|
|
|
|
#include <catch2/catch.hpp>
|
|
|
|
#include <time/TimeRangeParser.hpp>
|
|
#include <time/dateCommon.hpp>
|
|
|
|
#include <cstdint>
|
|
#include <cstring>
|
|
#include <iostream>
|
|
|
|
TEST_CASE("Time display parser")
|
|
{
|
|
using utils::time::Version;
|
|
SECTION("After noon time input (mode12h)")
|
|
{
|
|
TimePoint date_from = TimePointFromString("2020-10-10 14:24:00");
|
|
TimePoint date_till = TimePointFromString("2020-10-10 15:36:00");
|
|
|
|
auto returnString =
|
|
utils::time::TimeRangeParser().getCalendarTimeString(date_from, date_till, Version::normal, false);
|
|
REQUIRE("2020-10-10 14:24:00" == TimePointToString(date_from));
|
|
REQUIRE("2020-10-10 15:36:00" == TimePointToString(date_till));
|
|
REQUIRE("2" == TimePointToHourString12H(date_from));
|
|
REQUIRE("24" == TimePointToMinutesString(date_from));
|
|
REQUIRE("3" == TimePointToHourString12H(date_till));
|
|
REQUIRE("36" == TimePointToMinutesString(date_till));
|
|
REQUIRE(returnString == "2:24 - 3:36 " + utils::translate(utils::time::Locale::getPM()));
|
|
}
|
|
|
|
SECTION("Before noon time input (mode12h)")
|
|
{
|
|
TimePoint date_from = TimePointFromString("2020-12-31 05:59:00");
|
|
TimePoint date_till = TimePointFromString("2020-12-31 07:45:00");
|
|
|
|
auto returnString =
|
|
utils::time::TimeRangeParser().getCalendarTimeString(date_from, date_till, Version::normal, false);
|
|
REQUIRE("2020-12-31 05:59:00" == TimePointToString(date_from));
|
|
REQUIRE("2020-12-31 07:45:00" == TimePointToString(date_till));
|
|
REQUIRE("5" == TimePointToHourString12H(date_from));
|
|
REQUIRE("59" == TimePointToMinutesString(date_from));
|
|
REQUIRE("7" == TimePointToHourString12H(date_till));
|
|
REQUIRE("45" == TimePointToMinutesString(date_till));
|
|
REQUIRE(returnString == "5:59 - 7:45 " + utils::translate(utils::time::Locale::getAM()));
|
|
}
|
|
|
|
SECTION("Mixed time input (mode12h)")
|
|
{
|
|
TimePoint date_from = TimePointFromString("2021-01-01 01:05:00");
|
|
TimePoint date_till = TimePointFromString("2021-01-01 19:55:00");
|
|
|
|
auto returnString =
|
|
utils::time::TimeRangeParser().getCalendarTimeString(date_from, date_till, Version::normal, false);
|
|
REQUIRE("2021-01-01 01:05:00" == TimePointToString(date_from));
|
|
REQUIRE("2021-01-01 19:55:00" == TimePointToString(date_till));
|
|
REQUIRE("1" == TimePointToHourString12H(date_from));
|
|
REQUIRE("05" == TimePointToMinutesString(date_from));
|
|
REQUIRE("7" == TimePointToHourString12H(date_till));
|
|
REQUIRE("55" == TimePointToMinutesString(date_till));
|
|
REQUIRE(returnString == "1:05 " + utils::translate(utils::time::Locale::getAM()) + " - 7:55 " +
|
|
utils::translate(utils::time::Locale::getPM()));
|
|
}
|
|
|
|
SECTION("Before noon time input - short version (mode12h)")
|
|
{
|
|
TimePoint date_from = TimePointFromString("2020-12-31 00:05:00");
|
|
TimePoint date_till = TimePointFromString("2020-12-31 19:55:00");
|
|
|
|
auto returnString =
|
|
utils::time::TimeRangeParser().getCalendarTimeString(date_from, date_till, Version::abbrev, false);
|
|
REQUIRE("2020-12-31 00:05:00" == TimePointToString(date_from));
|
|
REQUIRE("2020-12-31 19:55:00" == TimePointToString(date_till));
|
|
REQUIRE("12" == TimePointToHourString12H(date_from));
|
|
REQUIRE("05" == TimePointToMinutesString(date_from));
|
|
REQUIRE(returnString == "12:05 " + utils::translate(utils::time::Locale::getAM()));
|
|
}
|
|
|
|
SECTION("After noon time input - short version (mode12h)")
|
|
{
|
|
TimePoint date_from = TimePointFromString("2020-12-31 12:05:00");
|
|
TimePoint date_till = TimePointFromString("2020-12-31 19:55:00");
|
|
|
|
auto returnString =
|
|
utils::time::TimeRangeParser().getCalendarTimeString(date_from, date_till, Version::abbrev, false);
|
|
REQUIRE("2020-12-31 12:05:00" == TimePointToString(date_from));
|
|
REQUIRE("2020-12-31 19:55:00" == TimePointToString(date_till));
|
|
REQUIRE("12" == TimePointToHourString12H(date_from));
|
|
REQUIRE("05" == TimePointToMinutesString(date_from));
|
|
REQUIRE(returnString == "12:05 " + utils::translate(utils::time::Locale::getPM()));
|
|
}
|
|
|
|
SECTION("Time input (mode24h)")
|
|
{
|
|
TimePoint date_from = TimePointFromString("2021-01-01 01:05:00");
|
|
TimePoint date_till = TimePointFromString("2021-01-01 19:55:00");
|
|
|
|
auto returnString =
|
|
utils::time::TimeRangeParser().getCalendarTimeString(date_from, date_till, Version::normal, true);
|
|
REQUIRE("2021-01-01 01:05:00" == TimePointToString(date_from));
|
|
REQUIRE("2021-01-01 19:55:00" == TimePointToString(date_till));
|
|
REQUIRE("1" == TimePointToHourString24H(date_from));
|
|
REQUIRE("05" == TimePointToMinutesString(date_from));
|
|
REQUIRE("19" == TimePointToHourString24H(date_till));
|
|
REQUIRE("55" == TimePointToMinutesString(date_till));
|
|
REQUIRE(returnString == "1:05 - 19:55");
|
|
}
|
|
|
|
SECTION("Time input - short version (mode24h)")
|
|
{
|
|
TimePoint date_from = TimePointFromString("2021-01-01 18:05:00");
|
|
TimePoint date_till = TimePointFromString("2021-01-01 19:55:00");
|
|
|
|
auto returnString =
|
|
utils::time::TimeRangeParser().getCalendarTimeString(date_from, date_till, Version::abbrev, true);
|
|
REQUIRE("2021-01-01 18:05:00" == TimePointToString(date_from));
|
|
REQUIRE("2021-01-01 19:55:00" == TimePointToString(date_till));
|
|
REQUIRE("18" == TimePointToHourString24H(date_from));
|
|
REQUIRE("05" == TimePointToMinutesString(date_from));
|
|
REQUIRE(returnString == "18:05");
|
|
}
|
|
|
|
SECTION("All day time input")
|
|
{
|
|
TimePoint date_from = TimePointFromString("2020-10-20 00:00:00");
|
|
TimePoint date_till = TimePointFromString("2020-10-20 23:59:00");
|
|
|
|
auto returnString =
|
|
utils::time::TimeRangeParser().getCalendarTimeString(date_from, date_till, Version::normal, false);
|
|
REQUIRE("2020-10-20 00:00:00" == TimePointToString(date_from));
|
|
REQUIRE("2020-10-20 23:59:00" == TimePointToString(date_till));
|
|
REQUIRE(returnString == utils::translate("app_calendar_all_day"));
|
|
}
|
|
}
|