public void ReadingValuesConverterTestA() { var converter = new ReadingValuesConverter <ReadingValues, ReadingValues>( new TemperatureConverter(TemperatureUnit.Celsius, TemperatureUnit.Fahrenheit), new SpeedConverter(SpeedUnit.MetersPerSec, SpeedUnit.MetersPerSec), new PressureConverter(PressureUnit.Millibar, PressureUnit.KiloPascals) ); var inputA = new ReadingValues(0, 0, 0, 0, 0); var expectedA = new ReadingValues(32, 0, 0, 0, 0); Assert.AreEqual(expectedA, converter.Convert(inputA)); var inputB = new ReadingValues(30, 1000, .9, 98, 14); var expectedB = new ReadingValues(86, 100, .9, 98, 14); Assert.AreEqual(expectedB, converter.Convert(inputB)); }
public void ReadingValuesConverterTestA() { var converter = new ReadingValuesConverter<ReadingValues, ReadingValues>( new TemperatureConverter(TemperatureUnit.Celsius,TemperatureUnit.Fahrenheit), new SpeedConverter(SpeedUnit.MetersPerSec, SpeedUnit.MetersPerSec), new PressureConverter(PressureUnit.Millibar, PressureUnit.KiloPascals) ); var inputA = new ReadingValues(0, 0, 0, 0, 0); var expectedA = new ReadingValues(32, 0, 0, 0, 0); Assert.AreEqual(expectedA, converter.Convert(inputA)); var inputB = new ReadingValues(30, 1000, .9, 98, 14); var expectedB = new ReadingValues(86, 100, .9, 98, 14); Assert.AreEqual(expectedB, converter.Convert(inputB)); }
public void SetValues(ISensor sensor, IReadingValues reading) { ReadingValuesConverter <IReadingValues, ReadingValues> converter = null; if (null != sensor) { int n; sensorNameLabel.Text = (Int32.TryParse(sensor.Name, out n) && 0 <= n && n < 26) ? ((char)((byte)('A') + (byte)n)).ToString() : sensor.Name; if (null != ConverterCache && sensor is ISensorInfo) { var si = sensor as ISensorInfo; converter = ConverterCache.Get( si.TemperatureUnit, TemperatureUnit, si.SpeedUnit, SpeedUnit, si.PressureUnit, PressureUnit ); } } else { sensorNameLabel.Text = "Sensor"; } const string na = "N/A"; if (null != reading && reading.IsValid) { var data = null == converter ? reading : converter.Convert(reading) ; string tempText; if (data.IsTemperatureValid) { tempText = data.Temperature.ToString("F1") + ' ' + UnitUtility.GetFriendlyName(TemperatureUnit); } else { tempText = na; } string presText; if (data.IsPressureValid) { var presUnit = PressureUnit; presText = Math.Round(data.Pressure, presUnit == PressureUnit.Millibar ? 1 : 2).ToString() + ' ' + UnitUtility.GetFriendlyName(presUnit) ; } else { presText = na; } string speedText; if (data.IsWindSpeedValid) { speedText = data.WindSpeed.ToString("F2") + ' ' + UnitUtility.GetFriendlyName(SpeedUnit); } else { speedText = na; } string dirText; if (data.IsWindDirectionValid) { dirText = Math.Round(data.WindDirection).ToString() + "\xb0 " + Vector2D.CardinalDirection.DegreesToBestCardinalName(reading.WindDirection) ; } else { dirText = na; } tempValue.Text = tempText; pressureValue.Text = presText; humidityValue.Text = data.IsHumidityValid ? (Math.Round(data.Humidity * 100.0, 1).ToString() + '%') : na ; windSpeedValue.Text = speedText; windDirValue.Text = dirText; } else { tempValue.Text = na; pressureValue.Text = na; humidityValue.Text = na; windSpeedValue.Text = na; windDirValue.Text = na; } }