Tests: Added subtractRanges test

This commit is contained in:
Paul Beckingham 2016-05-07 00:15:11 -04:00
parent 33827a2da0
commit 64f0f3666b

View file

@ -31,7 +31,7 @@
////////////////////////////////////////////////////////////////////////////////
int main (int, char**)
{
UnitTest t (36);
UnitTest t (41);
// std::vector <Interval> collapse (const Interval&, std::vector <Range>&);
Interval i1;
@ -142,6 +142,19 @@ int main (int, char**)
t.ok (r1.start == Datetime (2016, 5, 1, 0, 0, 0), "getFullDay 2016-05-01T20:31:23 -> start 2016-05-01T00:00:00");
t.ok (r1.end == Datetime (2016, 5, 1, 23, 59, 59), "getFullDay 2016-05-01T20:31:23 -> end 2016-05-01T23:59:59");
// std::vector <Range> subtractRanges (const Range&, const std::vector <Range>&, const std::vector <Range>&);
// Subtract three non-overlapping ranges from a full day, yielding two resultant rangeṡ.
Range limit (Datetime ("20160101T000000"), Datetime ("20160101T235959"));
exclusions = {Range (Datetime ("20160101T000000"), Datetime ("20160101T080000")),
Range (Datetime ("20160101T120000"), Datetime ("20160101T130000")),
Range (Datetime ("20160101T173000"), Datetime ("20160101T235959"))};
auto subtracted = subtractRanges (limit, {limit}, exclusions);
t.ok (subtracted.size () == 2, "subtractRanges: all_day - 3 non-adjacent ranges = 2 ranges");
t.ok (subtracted[0].start == Datetime (2016, 1, 1, 8, 0, 0), "subtractRanges: results[0].start = 20160101T080000");
t.ok (subtracted[0].end == Datetime (2016, 1, 1, 12, 0, 0), "subtractRanges: results[0].end = 20160101T120000");
t.ok (subtracted[1].start == Datetime (2016, 1, 1, 13, 0, 0), "subtractRanges: results[1].start = 20160101T130000");
t.ok (subtracted[1].end == Datetime (2016, 1, 1, 17, 30, 0), "subtractRanges: results[1].end = 20160101T173000");
return 0;
}