1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
|
/*
SPDX-FileCopyrightText: 2020 Volker Krause <vkrause@kde.org>
SPDX-License-Identifier: LGPL-2.0-or-later
*/
#include <KOpeningHours/Interval>
#include <QTest>
using namespace KOpeningHours;
class IntervalTest : public QObject
{
Q_OBJECT
private Q_SLOTS:
void testContains()
{
QDateTime dt({2020, 11, 7}, {18, 0});
Interval i;
QVERIFY(i.contains(dt));
i.setBegin(QDateTime({2020, 11, 1}, {0, 0}));
QVERIFY(i.contains(dt));
QVERIFY(!i.contains(QDateTime({2020, 10, 1}, {})));
i.setEnd(QDateTime({2020, 12, 1}, {}));
QVERIFY(i.contains(dt));
QVERIFY(!i.contains(QDateTime({2020, 12, 31}, {})));
i.setBegin({});
QVERIFY(i.contains(dt));
QVERIFY(!i.contains(QDateTime({2020, 12, 31}, {})));
i.setBegin(dt);
QVERIFY(i.contains(dt));
}
void testIntersects()
{
Interval i, j;
QVERIFY(i.intersects(j));
i.setBegin(QDateTime({2020, 11, 7}, {18, 0}));
QVERIFY(i.intersects(j));
QVERIFY(j.intersects(i));
i.setEnd(QDateTime({2020, 11, 7}, {20, 0}));
QVERIFY(i.intersects(j));
QVERIFY(j.intersects(i));
j.setBegin(QDateTime({2020, 11, 7}, {19, 0}));
QVERIFY(i.intersects(j));
QVERIFY(j.intersects(i));
j.setEnd(QDateTime({2020, 11, 7}, {21, 0}));
QVERIFY(i.intersects(j));
QVERIFY(j.intersects(i));
j.setBegin(QDateTime({2020, 11, 7}, {20, 0}));
QVERIFY(!i.intersects(j));
QVERIFY(!j.intersects(i));
}
void testOrder()
{
Interval i, j;
QCOMPARE(i < j, false);
QCOMPARE(j < i, false);
i.setBegin(QDateTime({2020, 11, 7}, {18, 0}));
QCOMPARE(i < j, false);
QCOMPARE(j < i, true);
}
void testZeroLengthOpenEndTime()
{
Interval i;
i.setBegin(QDateTime({2020, 11, 7}, {18, 0}));
i.setEnd(QDateTime({2020, 11, 7}, {18, 0}));
i.setOpenEndTime(true);
i.setState(Interval::Open);
QVERIFY(i.isValid());
QVERIFY(i.contains(QDateTime({2020, 11, 7}, {18, 0})));
}
};
QTEST_GUILESS_MAIN(IntervalTest)
#include "intervaltest.moc"
|