public void Basic_ListAtom_GroupedDataFormat_ByDay() { DateTime date = new DateTime(2012, 1, 1, 1, 1, 1); List <DataAtom> list = new List <DataAtom>() { new DataAtom() { Time = date.AddHours(1).AddDays(1), Process = "Foo", // activity Title = "Foo title", // not bubbled yet Frequency = 10 // aggregated }, new DataAtom() { Time = date.AddDays(1), Process = "Bar", // activity Title = "Foo title", // not bubbled yet Frequency = 20 // aggregated }, new DataAtom() { Time = date.AddDays(2), Process = "Qux", // activity Title = "Foo title", // not bubbled yet Frequency = 30 // aggregated } }; List <GroupedDataFormat> expected = new List <GroupedDataFormat>() { new GroupedDataFormat() { GroupBy = date.AddDays(1), Activity = new[] { "Bar", "Foo" }, TimeSpan = new long[] { 20, 10 } // aggregated over start - end, but grouped by group by }, new GroupedDataFormat() { GroupBy = date.AddDays(2), Activity = new[] { "Qux" }, TimeSpan = new long[] { 30 } // aggregated over start - end, but grouped by group by } }; var actual = new DataFormatConvertor(list).ToGroupedDataFormat(); Assert.AreEqual(expected.Count, actual.Count()); var zipped = expected.Zip(actual, (e, a) => new { Expected = e, Actual = a }); foreach (var item in zipped) { CollectionAssert.AreEqual(item.Expected.Activity, item.Actual.Activity); CollectionAssert.AreEqual(item.Expected.TimeSpan, item.Actual.TimeSpan); Assert.AreEqual(item.Expected.GroupBy.Year, item.Actual.GroupBy.Year); Assert.AreEqual(item.Expected.GroupBy.Month, item.Actual.GroupBy.Month); Assert.AreEqual(item.Expected.GroupBy.Day, item.Actual.GroupBy.Day); } }
public void ToRankedDataFormat_AssignedMultipleTimes_RankDoesntChange() { #region Setup List <DataAtom> list = new List <DataAtom>() { new DataAtom() { Time = DateTime.Now.AddDays(1), Process = "Foo", Frequency = 10 }, new DataAtom() { Time = DateTime.Now.AddDays(-1), Process = "Bar", Frequency = 20 } }; List <RankedDataFormat> expected = new List <RankedDataFormat>() { new RankedDataFormat() { Rank = 1, Activity = "Bar", TimeSpan = 20 }, new RankedDataFormat() { Rank = 2, Activity = "Foo", TimeSpan = 10 } }; #endregion var actual = new DataFormatConvertor(list).ToRankedDataFormat(); var actual2 = actual; RDFAssertAsExpected(expected, new List <RankedDataFormat>(actual)); RDFAssertAsExpected(expected, new List <RankedDataFormat>(actual2)); }
public void ToGroupedDataFormat_ByDay_SameActivityOnSameDayAggregated() { DateTime date = new DateTime(2012, 1, 1, 1, 1, 1); List <DataAtom> list = new List <DataAtom>() { new DataAtom() { Process = "a", Time = date.AddHours(1), Frequency = 10, }, new DataAtom() { Process = "b", Time = date.AddHours(2), Frequency = 10 }, new DataAtom() { Process = "a", Time = date.AddHours(3), Frequency = 10, }, new DataAtom() { Process = "a", Time = date.AddDays(1), Frequency = 10, }, new DataAtom() { Process = "b", Time = date.AddDays(2), Frequency = 10, } }; List <GroupedDataFormat> expected = new List <GroupedDataFormat>() { new GroupedDataFormat() { GroupWindow = GroupWindowType.Day, GroupBy = date, Activity = new string[] { "a", "b" }, TimeSpan = new long[] { 20, 10 } }, new GroupedDataFormat() { GroupWindow = GroupWindowType.Day, GroupBy = date.AddDays(1), Activity = new string[] { "a" }, TimeSpan = new long[] { 10 } }, new GroupedDataFormat() { GroupWindow = GroupWindowType.Day, GroupBy = date.AddDays(2), Activity = new string[] { "b" }, TimeSpan = new long[] { 10 } } }; var actual = new DataFormatConvertor(list).ToGroupedDataFormat(); Assert.AreEqual(expected.Count, actual.Count()); var zipped = expected.Zip(actual, (e, a) => new { Expected = e, Actual = a }); foreach (var item in zipped) { CollectionAssert.AreEqual(item.Expected.Activity, item.Actual.Activity); CollectionAssert.AreEqual(item.Expected.TimeSpan, item.Actual.TimeSpan); Assert.AreEqual(item.Expected.GroupBy.Year, item.Actual.GroupBy.Year); Assert.AreEqual(item.Expected.GroupBy.Month, item.Actual.GroupBy.Month); Assert.AreEqual(item.Expected.GroupBy.Day, item.Actual.GroupBy.Day); } }