public static void PublishReading(Reading reading) { Logger.Debug("Enqueuing reding " + GetReadingInfo(reading)); lock (PublishReadingLock) { Readings.Enqueue(reading); } }
public void Aggregate_AddsUpTheValuesFromTwoDatapoints() { var reading1 = new Reading() { FeatureName = "test", Data = new DoubleReadingData(10.5) }; var reading2 = new Reading() { FeatureName = "test", Data = new DoubleReadingData(1.1) }; reading1.Data.Aggregate(reading2.Data); Assert.That(reading1.Data.GetValue(), Is.EqualTo(10.5 + 1.1)); }
public void Aggregate_ReturnsTheMinOfTwoValues() { var reading1 = new Reading() { FeatureName = "test", Data = new MinReadingData(10.5) }; var reading2 = new Reading() { FeatureName = "test", Data = new MinReadingData(1.1) }; reading1.Data.Aggregate(reading2.Data); Assert.That(reading1.Data.GetValue(), Is.EqualTo(1.1)); }
protected void AddReading(ReadingData data) { if (string.IsNullOrEmpty(data.Name)) data.Name = ReadingName; FeatureDescriptor descriptor = GetFeatureDescriptor(); var newReading = new Reading { FeatureName = descriptor.Name, FeatureGroup = descriptor.Group, Data = data }; ReadingPublisher.PublishReading(newReading); }
public void Aggregate_ReturnsTheAvegareOfAllAggregatedValues() { var reading1 = new Reading() { FeatureName = "test", Data = new AvgReadingData(10.0) }; var reading2 = new Reading() { FeatureName = "test", Data = new AvgReadingData(1.0) }; var reading3 = new Reading() { FeatureName = "test", Data = new AvgReadingData(4.0) }; reading1.Data.Aggregate(reading2.Data); reading1.Data.Aggregate(reading3.Data); Assert.That(reading1.Data.GetValue(), Is.EqualTo(5.0)); }
private static string GetReadingInfo(Reading reading) { if (reading != null) return String.Format("FeatureName: {0}, group: {1}, reading; {2}, value: {3}", reading.FeatureName, reading.FeatureGroup, reading.Data.Name, reading.Data.GetValue()); return "Null reading"; }
static void ProcessReading(ICollection<FeatureStatistics> dataPoints, Reading reading) { var dataPoint = dataPoints.FirstOrDefault(data => data.Name == reading.FeatureName && data.Group == reading.FeatureGroup); if (dataPoint == null) { dataPoint = new FeatureStatistics { Name = reading.FeatureName, Group = reading.FeatureGroup }; dataPoint.Readings.Add(reading.Data); dataPoints.Add(dataPoint); } else { var readingData = dataPoint.Readings.FirstOrDefault(rd => rd.Name == reading.Data.Name); if (readingData == null) dataPoint.Readings.Add(reading.Data); else readingData.Aggregate(reading.Data); } }