Fix unit tests

This commit is contained in:
2023-03-08 14:34:19 +01:00
parent 2e07459336
commit 5d29369bd7
2 changed files with 53 additions and 81 deletions

View File

@ -24,7 +24,7 @@ private slots:
QTest::addColumn<std::string>("expected");
QTest::addRow("monday") << espchrono::DateTime{
10_d/October/2020,
.date = 10_d/October/2020,
.hour=10,
.minute=20,
.second=30,
@ -32,7 +32,7 @@ private slots:
} << "2020-10-10T10:20:30.000"s;
QTest::addRow("tuesday") << espchrono::DateTime{
10_d/October/2020,
.date = 10_d/October/2020,
.hour=10,
.minute=20,
.second=30,
@ -40,7 +40,7 @@ private slots:
} << "2020-10-10T10:20:30.000"s;
QTest::addRow("wednesday") << espchrono::DateTime{
10_d/October/2020,
.date = 10_d/October/2020,
.hour=10,
.minute=20,
.second=30,
@ -48,7 +48,7 @@ private slots:
} << "2020-10-10T10:20:30.000"s;
QTest::addRow("thursday") << espchrono::DateTime{
10_d/October/2020,
.date = 10_d/October/2020,
.hour=10,
.minute=20,
.second=30,
@ -56,31 +56,31 @@ private slots:
} << "2020-10-10T10:20:30.000"s;
QTest::addRow("friday") << espchrono::DateTime{
10_d/October/2020,
.date = 10_d/October/2020,
.hour=10,
.minute=20,
.second=30,
.dayOfWeek=espchrono::DateTime::DayOfWeek::Friday
} << "2020-10-10T10:20:30.000"s;
QTest::addRow("aturday") << espchrono::DateTime{
10_d/October/2020,
.hour=10,
.minute=20,
.second=30,
.dayOfWeek=espchrono::DateTime::DayOfWeek::Saturday
} << "2020-10-10T10:20:30.000"s;
QTest::addRow("saturday") << espchrono::DateTime{
.date = 10_d/October/2020,
.hour=10,
.minute=20,
.second=30,
.dayOfWeek=espchrono::DateTime::DayOfWeek::Saturday
} << "2020-10-10T10:20:30.000"s;
QTest::addRow("unday") << espchrono::DateTime{
10_d/October/2020,
.hour=10,
.minute=20,
.second=30,
.dayOfWeek=espchrono::DateTime::DayOfWeek::Sunday
} << "2020-10-10T10:20:30.000"s;
QTest::addRow("sunday") << espchrono::DateTime{
.date = 10_d/October/2020,
.hour=10,
.minute=20,
.second=30,
.dayOfWeek=espchrono::DateTime::DayOfWeek::Sunday
} << "2020-10-10T10:20:30.000"s;
QTest::addRow("leading_zeros") << espchrono::DateTime{
1_d/January/2020,
.date = 1_d/January/2020,
.hour=1,
.minute=2,
.second=3,
@ -101,29 +101,21 @@ private slots:
QTest::addColumn<espchrono::LocalDateTime>("dateTime");
QTest::addColumn<std::string>("expected");
QTest::addRow("leading_zeros") << espchrono::LocalDateTime{
espchrono::DateTime {
1_d/January/2020,
.hour = 1,
.minute = 2,
.second = 3,
.dayOfWeek = espchrono::DateTime::DayOfWeek::Monday,
},
.timezone = testTimeZone,
.dst = false
} << "2020-01-01T01:02:03.000 +01:00"s;
constexpr const auto makeLocalDateTime = [](auto date, auto hour, auto minute, auto second, auto dayOfWeek, auto timezone, auto dst){
espchrono::LocalDateTime localDateTime;
localDateTime.date = date;
localDateTime.hour = hour;
localDateTime.minute = minute;
localDateTime.second = second;
localDateTime.dayOfWeek = dayOfWeek;
localDateTime.timezone = timezone;
localDateTime.dst = dst;
return localDateTime;
};
QTest::addRow("leading_zeros_dst") << espchrono::LocalDateTime{
espchrono::DateTime {
1_d/January/2020,
.hour = 1,
.minute = 2,
.second = 3,
.dayOfWeek = espchrono::DateTime::DayOfWeek::Monday,
},
.timezone = testTimeZone,
.dst = true
} << "2020-01-01T01:02:03.000 +02:00"s;
QTest::addRow("leading_zeros") << makeLocalDateTime(1_d/January/2020, 1, 2, 3, espchrono::DateTime::DayOfWeek::Monday, testTimeZone, false) << "2020-01-01T01:02:03.000 +01:00"s;
QTest::addRow("leading_zeros_dst") << makeLocalDateTime(1_d/January/2020, 1, 2, 3, espchrono::DateTime::DayOfWeek::Monday, testTimeZone, true) << "2020-01-01T01:02:03.000 +02:00"s;
}
void test_dateTimeLocalToString()
@ -140,21 +132,21 @@ private slots:
QTest::addColumn<espchrono::DateTime>("expected");
QTest::addRow("random") << espchrono::utc_clock::time_point{123456s} << espchrono::DateTime{
2_d/January/1970,
.date = 2_d/January/1970,
.hour=10, .minute=17, .second=36,
.dayOfWeek=espchrono::DateTime::DayOfWeek::Friday
};
QTest::addRow("leap_year") << espchrono::utc_clock::time_point{1582934400s}
<< espchrono::DateTime{
29_d/February/2020,
.date = 29_d/February/2020,
.hour=0, .minute=0, .second=0,
.dayOfWeek=espchrono::DateTime::DayOfWeek::Saturday
};
QTest::addRow("normal_year") << espchrono::utc_clock::time_point{1614556800s}
<< espchrono::DateTime{
1_d/March/2021,
.date = 1_d/March/2021,
.hour=0, .minute=0, .second=0,
.dayOfWeek=espchrono::DateTime::DayOfWeek::Monday
};
@ -173,26 +165,22 @@ private slots:
QTest::addColumn<espchrono::local_clock::time_point>("time_point");
QTest::addColumn<espchrono::LocalDateTime>("expected");
constexpr const auto makeLocalDateTime = [](auto date, auto hour, auto minute, auto second, auto dayOfWeek, auto timezone, auto dst){
espchrono::LocalDateTime localDateTime;
localDateTime.date = date;
localDateTime.hour = hour;
localDateTime.minute = minute;
localDateTime.second = second;
localDateTime.dayOfWeek = dayOfWeek;
localDateTime.timezone = timezone;
localDateTime.dst = dst;
return localDateTime;
};
QTest::addRow("no_dst") << espchrono::local_clock::time_point(123456s, testTimeZone, false)
<< espchrono::LocalDateTime{
espchrono::DateTime{
2_d/January/1970,
.hour=10, .minute=17, .second=36,
.dayOfWeek=espchrono::DateTime::DayOfWeek::Friday
},
.timezone = testTimeZone,
.dst = false
};
<< makeLocalDateTime(2_d/January/1970, 10, 17, 36, espchrono::DateTime::DayOfWeek::Friday, testTimeZone, false);
QTest::addRow("with_dst") << espchrono::local_clock::time_point(123456s, testTimeZone, true)
<< espchrono::LocalDateTime{
espchrono::DateTime{
2_d/January/1970,
.hour=10, .minute=17, .second=36,
.dayOfWeek=espchrono::DateTime::DayOfWeek::Friday
},
.timezone = testTimeZone,
.dst = true
};
<< makeLocalDateTime(2_d/January/1970, 10, 17, 36, espchrono::DateTime::DayOfWeek::Friday, testTimeZone, true);
}
void test_toDateTimeLocal()

View File

@ -3,7 +3,8 @@ TEMPLATE = app
QT += core testlib
QT -= gui widgets
CONFIG += c++17 qt console warn_on depend_includepath testcase
CONFIG += c++23 qt console warn_on depend_includepath testcase
QMAKE_CXXFLAGS += -std=c++2b
CONFIG -= app_bundle
SOURCES += \
@ -53,23 +54,6 @@ equals(CLONE_DATE, 1) {
include($$DATE_DIR/date.pri)
equals(CLONE_EXPECTED, 1) {
EXPECTED_DIR = $$PWD/expected
message("Checking out expected...")
exists($$EXPECTED_DIR/.git): {
system("git -C $$EXPECTED_DIR pull")
} else {
system("git clone https://github.com/0xFEEDC0DE64/expected.git $$EXPECTED_DIR")
}
} else: exists($$PWD/../../expected/include) {
EXPECTED_DIR = $$PWD/../../expected
} else {
error("expected not found, please run git submodule update --init")
}
include($$EXPECTED_DIR/expected.pri)
equals(CLONE_FMT, 1) {
FMT_DIR = $$PWD/fmt