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(0.1157, AirDensityCalculator.AirDensity(17, .5, 10000), 0.01); }