@@ -99,6 +99,54 private slots: | |||
|
99 | 99 | QCOMPARE(initial*zoom, expected); |
|
100 | 100 | } |
|
101 | 101 | |
|
102 | void testRangeContains_data() | |
|
103 | { | |
|
104 | QTest::addColumn<DateTimeRange>("range"); | |
|
105 | QTest::addColumn<DateTimeRange>("range2"); | |
|
106 | QTest::addColumn<bool>("contains"); | |
|
107 | auto now = QDateTime::currentDateTime(); | |
|
108 | auto yestd = QDateTime::currentDateTime().addDays(-1); | |
|
109 | auto range = DateTimeRange::fromDateTime(yestd, now); | |
|
110 | QTest::newRow("Same range") << range << range << true; | |
|
111 | QTest::newRow("Smaller range") << range << range * 0.8 << true; | |
|
112 | QTest::newRow("Bigger range") << range << range * 1.2 << false; | |
|
113 | QTest::newRow("Shifted range with overlap") << range << range + Seconds<double>{1000.} << false; | |
|
114 | QTest::newRow("Shifted range without overlap") << range << range + Seconds<double>{24.*60.*60.*10} << false; | |
|
115 | ||
|
116 | } | |
|
117 | void testRangeContains() | |
|
118 | { | |
|
119 | QFETCH(DateTimeRange,range); | |
|
120 | QFETCH(DateTimeRange,range2); | |
|
121 | QFETCH(bool,contains); | |
|
122 | QCOMPARE(range.contains(range2), contains); | |
|
123 | } | |
|
124 | ||
|
125 | void testRangeIntersect_data() | |
|
126 | { | |
|
127 | QTest::addColumn<DateTimeRange>("range"); | |
|
128 | QTest::addColumn<DateTimeRange>("range2"); | |
|
129 | QTest::addColumn<bool>("contains"); | |
|
130 | auto now = QDateTime::currentDateTime(); | |
|
131 | auto yestd = QDateTime::currentDateTime().addDays(-1); | |
|
132 | auto tomorrow = QDateTime::currentDateTime().addDays(1); | |
|
133 | auto range = DateTimeRange::fromDateTime(yestd, now); | |
|
134 | auto range2 = DateTimeRange::fromDateTime(now, tomorrow); | |
|
135 | QTest::newRow("Same range") << range << range << true; | |
|
136 | QTest::newRow("Smaller range") << range << range * 0.8 << true; | |
|
137 | QTest::newRow("Bigger range") << range << range * 1.2 << true; | |
|
138 | QTest::newRow("Shifted range with overlap") << range << range + Seconds<double>{1000.} << true; | |
|
139 | QTest::newRow("Shifted range with overlaping boundary") << range << range2 << true; | |
|
140 | QTest::newRow("Shifted range without overlap") << range << range + Seconds<double>{24.*60.*60.*10} << false; | |
|
141 | ||
|
142 | } | |
|
143 | void testRangeIntersect() | |
|
144 | { | |
|
145 | QFETCH(DateTimeRange,range); | |
|
146 | QFETCH(DateTimeRange,range2); | |
|
147 | QFETCH(bool,contains); | |
|
148 | QCOMPARE(range.intersect(range2), contains); | |
|
149 | } | |
|
102 | 150 | }; |
|
103 | 151 | QTEST_MAIN(TestDateTimeRange) |
|
104 | 152 |
General Comments 0
You need to be logged in to leave comments.
Login now