private List <TimeStampedValue> GetUserValues(List <Reading> items) { var userValues = new List <TimeStampedValue>(items.Count); switch (State.UserGraphAttribute) { case PersistentState.UserCalculatedAttribute.DewPoint: { var tempConverter = ReadingValuesConverterCache <Reading> .TemperatureCache .Get(TemperatureUnit, TemperatureUnit.Celsius); foreach (var curItem in items) { var temperature = curItem.Temperature; if (Double.IsNaN(temperature)) { continue; } temperature = tempConverter.Convert(temperature); userValues.Add(new TimeStampedValue( curItem.TimeStamp, DewPointCalculator.DewPoint(temperature, curItem.Humidity) )); } return(userValues); } case PersistentState.UserCalculatedAttribute.AirDensity: { var airDensityCalc = new AirDensityCalculator(HeightAboveSeaLevel); var tempConverter = ReadingValuesConverterCache <Reading> .TemperatureCache .Get(TemperatureUnit, TemperatureUnit.Celsius); var pressConverter = ReadingValuesConverterCache <Reading> .PressCache .Get(PressureUnit, PressureUnit.Pascals); foreach (var curItem in items) { var temperature = curItem.Temperature; if (Double.IsNaN(temperature)) { continue; } temperature = tempConverter.Convert(temperature); var pressure = curItem.Pressure; pressure = Double.IsNaN(pressure) ? airDensityCalc.EstimatedPressure : pressConverter.Convert(pressure); userValues.Add(new TimeStampedValue( curItem.TimeStamp, AirDensityCalculator.AirDensity(temperature, curItem.Humidity, pressure) )); } return(userValues); } } return(userValues); }
public void SampleTest1() { Assert.AreEqual(9, DewPointCalculator.DewPoint(20, 0.50), 0.5); Assert.AreEqual(13, DewPointCalculator.DewPoint(56, 0.09), 0.5); Assert.AreEqual(-17, DewPointCalculator.DewPoint(-16.5, 0.94), 0.5); }