File indexing completed on 2024-04-21 04:40:43

0001 /*
0002     SPDX-FileCopyrightText: 2020 Volker Krause <vkrause@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include <KOpeningHours/Interval>
0008 
0009 #include <QTest>
0010 
0011 using namespace KOpeningHours;
0012 
0013 class IntervalTest : public QObject
0014 {
0015     Q_OBJECT
0016 private Q_SLOTS:
0017     void testContains()
0018     {
0019         QDateTime dt({2020, 11, 7}, {18, 0});
0020         Interval i;
0021         QVERIFY(i.contains(dt));
0022         i.setBegin(QDateTime({2020, 11, 1}, {0, 0}));
0023         QVERIFY(i.contains(dt));
0024         QVERIFY(!i.contains(QDateTime({2020, 10, 1}, {})));
0025         i.setEnd(QDateTime({2020, 12, 1}, {}));
0026         QVERIFY(i.contains(dt));
0027         QVERIFY(!i.contains(QDateTime({2020, 12, 31}, {})));
0028         i.setBegin({});
0029         QVERIFY(i.contains(dt));
0030         QVERIFY(!i.contains(QDateTime({2020, 12, 31}, {})));
0031 
0032         i.setBegin(dt);
0033         QVERIFY(i.contains(dt));
0034     }
0035 
0036     void testIntersects()
0037     {
0038         Interval i, j;
0039         QVERIFY(i.intersects(j));
0040         i.setBegin(QDateTime({2020, 11, 7}, {18, 0}));
0041         QVERIFY(i.intersects(j));
0042         QVERIFY(j.intersects(i));
0043         i.setEnd(QDateTime({2020, 11, 7}, {20, 0}));
0044         QVERIFY(i.intersects(j));
0045         QVERIFY(j.intersects(i));
0046 
0047         j.setBegin(QDateTime({2020, 11, 7}, {19, 0}));
0048         QVERIFY(i.intersects(j));
0049         QVERIFY(j.intersects(i));
0050         j.setEnd(QDateTime({2020, 11, 7}, {21, 0}));
0051         QVERIFY(i.intersects(j));
0052         QVERIFY(j.intersects(i));
0053 
0054         j.setBegin(QDateTime({2020, 11, 7}, {20, 0}));
0055         QVERIFY(!i.intersects(j));
0056         QVERIFY(!j.intersects(i));
0057     }
0058 
0059     void testOrder()
0060     {
0061         Interval i, j;
0062         QCOMPARE(i < j, false);
0063         QCOMPARE(j < i, false);
0064         i.setBegin(QDateTime({2020, 11, 7}, {18, 0}));
0065         QCOMPARE(i < j, false);
0066         QCOMPARE(j < i, true);
0067     }
0068 
0069     void testZeroLengthOpenEndTime()
0070     {
0071         Interval i;
0072         i.setBegin(QDateTime({2020, 11, 7}, {18, 0}));
0073         i.setEnd(QDateTime({2020, 11, 7}, {18, 0}));
0074         i.setOpenEndTime(true);
0075         i.setState(Interval::Open);
0076 
0077         QVERIFY(i.isValid());
0078         QVERIFY(i.contains(QDateTime({2020, 11, 7}, {18, 0})));
0079     }
0080 };
0081 
0082 QTEST_GUILESS_MAIN(IntervalTest)
0083 
0084 #include "intervaltest.moc"