示例#1
0
        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);
            }
        }
示例#2
0
        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));
        }
示例#3
0
        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);
            }
        }