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"