Tests: Added matchesFilter

This commit is contained in:
Paul Beckingham 2016-04-30 10:18:51 -04:00
parent 08dbdaae8b
commit 9778884f75

View file

@ -31,9 +31,9 @@
////////////////////////////////////////////////////////////////////////////////
int main (int, char**)
{
UnitTest t (15);
UnitTest t (34);
// std::vector <Interval> splitInterval (const Interval&, std::vector <Range>&);
// std::vector <Interval> collapse (const Interval&, std::vector <Range>&);
Interval i1;
i1.range = Range (Datetime ("20160427T000000Z"), Datetime ("20160428T000000Z"));
i1.tag ("foo");
@ -71,6 +71,74 @@ int main (int, char**)
t.is (results[0].range.start.toISO (), "20160427T160000Z", "splitInterval i3 --> results[0].range.start 20160427T160000Z");
t.is (results[0].range.end.toISO (), "20160427T173000Z", "splitInterval i3 --> results[0].range.end 20160427T173000Z");
// bool matchesFilter (const Interval& interval, const Interval& filter);
Interval refOpen;
refOpen.range = Range (Datetime (2016, 6, 1), Datetime (0));
refOpen.tag ("tag1");
refOpen.tag ("tag2");
Interval refClosed;
refClosed.range = Range (Datetime (2016, 6, 1), Datetime (2016, 6, 30));
refClosed.tag ("tag1");
refClosed.tag ("tag2");
t.ok (matchesFilter (refOpen, refClosed), "matchesFilter 2016-06-01- tag1 tag2 <=> 2016-06-01-2016-06-30 tag1 tag2");
// this [--------)
// A [--------)
// B [--------)
// C [----)
// D [--------)
// E [--------)
// F [-------------)
// G [...
// H [...
// I [...
Range testA; testA.start = Datetime (2016, 4, 1); testA.end = Datetime (2016, 4, 30);
Range testB; testB.start = Datetime (2016, 5, 15); testB.end = Datetime (2016, 6, 15);
Range testC; testC.start = Datetime (2016, 6, 10); testC.end = Datetime (2016, 6, 20);
Range testD; testD.start = Datetime (2016, 6, 15); testD.end = Datetime (2016, 7, 15);
Range testE; testE.start = Datetime (2016, 8, 1); testE.end = Datetime (2016, 8, 31);
Range testF; testF.start = Datetime (2016, 5, 15); testF.end = Datetime (2016, 7, 15);
Range testG; testG.start = Datetime (2016, 5, 15);
Range testH; testH.start = Datetime (2016, 6, 15);
Range testI; testI.start = Datetime (2016, 7, 15);
Interval i;
i.tag ("tag1");
i.tag ("tag2");
i.range = testA; t.notok (matchesFilter (i, refClosed), "matchesFilter A <!> refClosed");
i.range = testB; t.ok (matchesFilter (i, refClosed), "matchesFilter B <=> refClosed");
i.range = testC; t.ok (matchesFilter (i, refClosed), "matchesFilter C <=> refClosed");
i.range = testD; t.ok (matchesFilter (i, refClosed), "matchesFilter D <=> refClosed");
i.range = testE; t.notok (matchesFilter (i, refClosed), "matchesFilter E <!> refClosed");
i.range = testF; t.ok (matchesFilter (i, refClosed), "matchesFilter F <=> refClosed");
i.range = testG; t.ok (matchesFilter (i, refClosed), "matchesFilter G <=> refClosed");
i.range = testH; t.ok (matchesFilter (i, refClosed), "matchesFilter H <=> refClosed");
i.range = testI; t.notok (matchesFilter (i, refClosed), "matchesFilter I <!> refClosed");
// this [...
// A [--------)
// B [--------)
// C [----)
// D [--------)
// E [--------)
// F [-------------)
// G [...
// H [...
// I [...
i.range = testA; t.notok (matchesFilter (i, refOpen), "matchesFilter A <!> refOpen");
i.range = testB; t.ok (matchesFilter (i, refOpen), "matchesFilter B <=> refOpen");
i.range = testC; t.ok (matchesFilter (i, refOpen), "matchesFilter C <=> refOpen");
i.range = testD; t.ok (matchesFilter (i, refOpen), "matchesFilter D <=> refOpen");
i.range = testE; t.ok (matchesFilter (i, refOpen), "matchesFilter E <=> refOpen");
i.range = testF; t.ok (matchesFilter (i, refOpen), "matchesFilter F <=> refOpen");
i.range = testG; t.ok (matchesFilter (i, refOpen), "matchesFilter G <=> refOpen");
i.range = testH; t.ok (matchesFilter (i, refOpen), "matchesFilter H <=> refOpen");
i.range = testI; t.ok (matchesFilter (i, refOpen), "matchesFilter I <=> refOpen");
// TODO Now repeat with missing tags.
return 0;
}