public void ProduceMeanValues_Test() { //arrange Program p = new Program(); DataSet input = new DataSet(); input.Data = new DataItem[] { new DataItem(3843, 20, 180, DateTime.Parse("2018-03-26 13:00:00"), 3), new DataItem(3846, 18, 180, DateTime.Parse("2018-03-26 13:00:01"), 3), new DataItem(3849, 18, 180, DateTime.Parse("2018-03-26 13:00:02"), 3), new DataItem(3852, 19, 180, DateTime.Parse("2018-03-26 13:00:03"), 3), new DataItem(3856, 21, 180, DateTime.Parse("2018-03-26 13:00:04"), 3), new DataItem(3858, 18, 180, DateTime.Parse("2018-03-26 13:00:05"), 3), new DataItem(3861, 20, 180, DateTime.Parse("2018-03-26 13:00:06"), 3), new DataItem(3864, 18, 180, DateTime.Parse("2018-03-26 13:00:07"), 3), new DataItem(3867, 19, 180, DateTime.Parse("2018-03-26 13:00:08"), 3), new DataItem(3870, 18, 180, DateTime.Parse("2018-03-26 13:00:09"), 3), new DataItem(3873, 16, 180, DateTime.Parse("2018-03-26 13:00:10"), 3) }; DataSet expected = new DataSet(); expected.AddDataItem(new DataItem(18.63, DateTime.Parse("2018-03-26 13:00:00"))); //act DataSet actual = p.ProduceMeanValues(input); //assert Assert.AreEqual(actual.SensorID, expected.SensorID); Assert.AreEqual(expected.Data.Length, actual.Data.Length); Assert.AreEqual(actual.Data[0].Reading, expected.Data[0].Reading, 0.05); Assert.AreEqual(actual.Data[0].Timestamp, expected.Data[0].Timestamp); }