public void WhenSumIsCalledItCalculatesTheSameAsTheIndividualResolutionTest() { // arrange const string serialNumber = "Interval"; const int counter = 2421; var start = DateTime.Today.AddDays(-14); using (var target = new kWhStorage(serialNumber, BaseDir, counter, Precision.Wh)) { var totalMinutes = (ulong)(DateTime.Now - start).TotalMinutes; for (ulong i = 0; i < totalMinutes; i++) { target.SetValue(start.AddMinutes(i), (5 + (i * 2)), 1000, 10m); } // act target.GetValue(start); // assert var thisWeek = PeriodBuilder.LastWeek(); var thisWeekSeries = SeriesValueListBuilder.BuildSeries(thisWeek.From, thisWeek.To, SeriesResolution.Hour); target.GetRecords(thisWeek.From, thisWeek.To, Unit.M3, thisWeekSeries, false); var thisWeekSeriesSum = thisWeekSeries.Sum(s => s.Value); var thisWeekSum = target.Sum(thisWeek.From, thisWeek.To, Unit.M3); Assert.AreEqual(thisWeekSum, thisWeekSeriesSum); } }
public void WhenSumIsCalledItCalculatesTheSameAsTheIndividualResolutionTest() { // arrange _dataStorageContext.SerialNumber = "Interval"; _dataStorageContext.CounterId = 2421; var start = DateTime.Today.AddDays(-14); using (var target = new kWhStorage(new LoggerFactory(), _options, _dataStorageContext)) { var totalMinutes = (ulong)(DateTime.Now - start).TotalMinutes; for (ulong i = 0; i < totalMinutes; i++) { target.SetValue(start.AddMinutes(i), (5 + (i * 2)), 1000, 10m); } // act target.GetValue(start); // assert var thisWeek = PeriodBuilder.LastWeek(); var thisWeekSeries = SeriesValueListBuilder.BuildSeries(thisWeek.From, thisWeek.To, SeriesResolution.Hour); target.GetRecords(thisWeek.From, thisWeek.To, Unit.M3, thisWeekSeries, false); var thisWeekSeriesSum = Enumerable.Sum <SeriesValue>(thisWeekSeries, s => s.Value); var thisWeekSum = target.Sum(thisWeek.From, thisWeek.To, Unit.M3); Assert.AreEqual(thisWeekSum, thisWeekSeriesSum); } }