From 86ff9189bdd53ab5e12ce15439f5ad0f45088127 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Tue, 10 May 2016 19:57:45 -0400 Subject: [PATCH] data: Renamed 'collapse' to 'flatten', for accuracy --- src/commands/CmdStart.cpp | 2 +- src/commands/CmdTrack.cpp | 2 +- src/data.cpp | 4 ++-- src/timew.h | 2 +- test/data.t.cpp | 41 ++++++++++++++++++++++----------------- 5 files changed, 28 insertions(+), 23 deletions(-) diff --git a/src/commands/CmdStart.cpp b/src/commands/CmdStart.cpp index ae187b35..a48c3bd7 100644 --- a/src/commands/CmdStart.cpp +++ b/src/commands/CmdStart.cpp @@ -52,7 +52,7 @@ int CmdStart ( // Update database. database.deleteInterval (latest); - for (auto& interval : collapse (modified, exclusions)) + for (auto& interval : flatten (modified, exclusions)) database.addInterval (interval); // TODO intervalSummarїze needs to operate on a vector of similar intervals. diff --git a/src/commands/CmdTrack.cpp b/src/commands/CmdTrack.cpp index c24fb754..cd45ac95 100644 --- a/src/commands/CmdTrack.cpp +++ b/src/commands/CmdTrack.cpp @@ -45,7 +45,7 @@ int CmdTrack ( auto holidays = subset (filter.range, getHolidays (rules)); auto exclusions = getAllExclusions (rules, filter.range); - for (auto& interval : collapse (filter, exclusions)) + for (auto& interval : flatten (filter, exclusions)) database.addInterval (interval); if (rules.getBoolean ("verbose")) diff --git a/src/data.cpp b/src/data.cpp index 9808c39c..a0429ffb 100644 --- a/src/data.cpp +++ b/src/data.cpp @@ -404,7 +404,7 @@ std::vector subset ( } //////////////////////////////////////////////////////////////////////////////// -std::vector collapse ( +std::vector flatten ( const Interval& interval, const std::vector & exclusions) { @@ -639,7 +639,7 @@ std::vector getTrackedIntervals ( std::vector intervals; for (auto& inclusion : subset (filter, inclusions)) - for (auto& interval : collapse (clip (inclusion, filter.range), exclusions)) + for (auto& interval : flatten (clip (inclusion, filter.range), exclusions)) intervals.push_back (interval); return intervals; diff --git a/src/timew.h b/src/timew.h index cce893e1..ce266949 100644 --- a/src/timew.h +++ b/src/timew.h @@ -45,7 +45,7 @@ std::vector getAllInclusions (Database&); std::vector subset (const Interval&, const std::vector &); std::vector subset (const Range&, const std::vector &); std::vector subset (const Range&, const std::vector &); -std::vector collapse (const Interval&, const std::vector &); +std::vector flatten (const Interval&, const std::vector &); std::vector addRanges (const Range&, const std::vector &, const std::vector &); std::vector subtractRanges (const Range&, const std::vector &, const std::vector &); Range outerRange (const std::vector &); diff --git a/test/data.t.cpp b/test/data.t.cpp index 9f097212..c2c17d42 100644 --- a/test/data.t.cpp +++ b/test/data.t.cpp @@ -31,9 +31,9 @@ //////////////////////////////////////////////////////////////////////////////// int main (int, char**) { - UnitTest t (45); + UnitTest t (50); - // std::vector collapse (const Interval&, std::vector &); + // std::vector flatten (const Interval&, std::vector &); Interval i1; i1.range = Range (Datetime ("20160427T000000Z"), Datetime ("20160428T000000Z")); i1.tag ("foo"); @@ -42,23 +42,27 @@ int main (int, char**) Range (Datetime ("20160427T120000Z"), Datetime ("20160427T130000Z")), Range (Datetime ("20160427T173000Z"), Datetime ("20160428T000000Z"))}; - auto results = collapse (i1, exclusions); - t.ok (results.size () == 2, "collapse i1 --> 2 fragments"); - t.is (results[0].range.start.toISO (), "20160427T000000Z", "collapse i1 --> results[0].range.start 20160427T000000Z"); - t.is (results[0].range.end.toISO (), "20160427T120000Z", "collapse i1 --> results[0].range.end 20160427T120000Z"); - t.is (results[1].range.start.toISO (), "20160427T130000Z", "collapse i1 --> results[1].range.start 20160427T130000Z"); - t.is (results[1].range.end.toISO (), "20160428T000000Z", "collapse i1 --> results[1].range.end 20160428T000000Z"); + auto results = flatten (i1, exclusions); + t.ok (results.size () == 2, "flatten i1 --> 2 fragments"); + t.is (results[0].range.start.toISO (), "20160427T080000Z", "flatten i1 --> results[0].range.start 20160427T080000Z"); + t.is (results[0].range.end.toISO (), "20160427T120000Z", "flatten i1 --> results[0].range.end 20160427T120000Z"); + t.ok (results[0].hasTag ("foo"), "flatten i1 --> results[0].hasTag foo"); + t.is (results[1].range.start.toISO (), "20160427T130000Z", "flatten i1 --> results[1].range.start 20160427T130000Z"); + t.is (results[1].range.end.toISO (), "20160427T173000Z", "flatten i1 --> results[1].range.end 20160428T173000Z"); + t.ok (results[1].hasTag ("foo"), "flatten i1 --> results[1].hasTag foo"); Interval i2; i2.range = Range (Datetime ("20160427T115500Z"), Datetime ("20160427T130500Z")); i2.tag ("foo"); - results = collapse (i2, exclusions); - t.ok (results.size () == 2, "collapse i2 --> 2 fragments"); - t.is (results[0].range.start.toISO (), "20160427T115500Z", "collapse i2 --> results[0].range.start 20160427T115500Z"); - t.is (results[0].range.end.toISO (), "20160427T120000Z", "collapse i2 --> results[0].range.end 20160427T120000Z"); - t.is (results[1].range.start.toISO (), "20160427T130000Z", "collapse i2 --> results[1].range.start 20160427T130000Z"); - t.is (results[1].range.end.toISO (), "20160427T130500Z", "collapse i2 --> results[1].range.end 20160427T130500Z"); + results = flatten (i2, exclusions); + t.ok (results.size () == 2, "flatten i2 --> 2 fragments"); + t.is (results[0].range.start.toISO (), "20160427T115500Z", "flatten i2 --> results[0].range.start 20160427T115500Z"); + t.is (results[0].range.end.toISO (), "20160427T120000Z", "flatten i2 --> results[0].range.end 20160427T120000Z"); + t.ok (results[0].hasTag ("foo"), "flatten i2 --> results[0].hasTag foo"); + t.is (results[1].range.start.toISO (), "20160427T130000Z", "flatten i2 --> results[1].range.start 20160427T130000Z"); + t.is (results[1].range.end.toISO (), "20160427T130500Z", "flatten i2 --> results[1].range.end 20160427T130500Z"); + t.ok (results[1].hasTag ("foo"), "flatten i2 --> results[1].hasTag foo"); Interval i3; i3.range = Range (Datetime ("20160427T160000Z"), Datetime (0)); @@ -66,10 +70,11 @@ int main (int, char**) t.ok (i3.range.started (), "i3 range started"); t.notok (i3.range.ended (), "i3 range not ended"); - results = collapse (i3, exclusions); - t.ok (results.size () == 2, "collapse i3 --> 2 fragments"); - t.ok (results[0].range.start.toISO () == "20160427T160000Z", "collapse i3 --> results[0].range.start 20160427T160000Z"); - t.ok (results[0].range.end.toEpoch () == 0, "collapse i3 --> results[0].range.end -"); + results = flatten (i3, exclusions); + t.ok (results.size () == 1, "flatten i3 --> 1 fragment"); + t.ok (results[0].range.start.toISO () == "20160427T160000Z", "flatten i3 --> results[0].range.start 20160427T160000Z"); + t.ok (results[0].range.end.toEpoch () == 0, "flatten i3 --> results[0].range.end -"); + t.ok (results[0].hasTag ("foo"), "flatten i3 --> results[0].hasTag foo"); // bool matchesFilter (const Interval& interval, const Interval& filter); Interval refOpen;