static void Main(string[] args) { TafDecoder.SetStrictParsing(true); var options = new Options(); if (Parser.Default.ParseArguments(args, options)) { var decodedTaf = TafDecoder.ParseWithMode(options.Taf); Display(decodedTaf); } }
public void Setup() { DecodedTafs = TestTafSource.Select(taf => TafDecoder.ParseWithMode(taf)).ToList(); }
public void TestParseSecond() { var rawTaf = "TAF TAF LIRU 032244Z 0318/0406 23010KT P6SM +TSRA FG BKN020CB TX05/0318Z TNM03/0405Z"; var decoderTaf = TafDecoder.ParseWithMode(rawTaf); Assert.True(decoderTaf.IsValid); Assert.AreEqual("TAF TAF LIRU 032244Z 0318/0406 23010KT P6SM +TSRA FG BKN020CB TX05/0318Z TNM03/0405Z", decoderTaf.RawTaf); Assert.AreEqual(TafType.TAF, decoderTaf.Type); Assert.AreEqual("LIRU", decoderTaf.Icao); Assert.AreEqual(3, decoderTaf.Day); Assert.AreEqual("22:44 UTC", decoderTaf.Time); var forecastPeriod = decoderTaf.ForecastPeriod; Assert.AreEqual(3, forecastPeriod.FromDay); Assert.AreEqual(18, forecastPeriod.FromHour); Assert.AreEqual(4, forecastPeriod.ToDay); Assert.AreEqual(6, forecastPeriod.ToHour); var surfaceWind = decoderTaf.SurfaceWind; Assert.False(surfaceWind.VariableDirection); Assert.AreEqual(230, surfaceWind.MeanDirection.ActualValue); Assert.AreEqual(Value.Unit.Degree, surfaceWind.MeanDirection.ActualUnit); Assert.Null(surfaceWind.DirectionVariations); Assert.AreEqual(10, surfaceWind.MeanSpeed.ActualValue); Assert.AreEqual(Value.Unit.Knot, surfaceWind.MeanSpeed.ActualUnit); Assert.Null(surfaceWind.SpeedVariations); var visibility = decoderTaf.Visibility; Assert.AreEqual(6, visibility.ActualVisibility.ActualValue); Assert.AreEqual(Value.Unit.StatuteMile, visibility.ActualVisibility.ActualUnit); Assert.True(visibility.Greater); var weatherPhenomenons = decoderTaf.WeatherPhenomenons; Assert.AreEqual("+", weatherPhenomenons[0].IntensityProximity); Assert.AreEqual("TS", weatherPhenomenons[0].Descriptor); var phenomena = weatherPhenomenons[0].Phenomena; Assert.AreEqual("RA", phenomena[0]); phenomena = weatherPhenomenons[1].Phenomena; Assert.AreEqual("FG", phenomena[0]); var cloud = decoderTaf.Clouds[0]; Assert.AreEqual(CloudLayer.CloudAmount.BKN, cloud.Amount); Assert.AreEqual(2000, cloud.BaseHeight.ActualValue); Assert.AreEqual(Value.Unit.Feet, cloud.BaseHeight.ActualUnit); Assert.AreEqual(CloudLayer.CloudType.CB, cloud.Type); var minimumTemperature = decoderTaf.MinimumTemperature; Assert.AreEqual(-3, minimumTemperature.TemperatureValue.ActualValue); Assert.AreEqual(Value.Unit.DegreeCelsius, minimumTemperature.TemperatureValue.ActualUnit); Assert.AreEqual(4, minimumTemperature.Day); Assert.AreEqual(5, minimumTemperature.Hour); var maximumTemperature = decoderTaf.MaximumTemperature; Assert.AreEqual(5, maximumTemperature.TemperatureValue.ActualValue); Assert.AreEqual(Value.Unit.DegreeCelsius, maximumTemperature.TemperatureValue.ActualUnit); Assert.AreEqual(3, maximumTemperature.Day); Assert.AreEqual(18, maximumTemperature.Hour); }