namespace Nonemm.Spotting.Tests; public class SolarReaderTests { [Theory] [InlineData("WWV de VE7CC <18Z> : SFI=140, A=5, K=2, No Storms -> No Storms\a\a")] [InlineData("WCY de DK0WCY-1 <19> : K=2 expK=2 A=5 R=0 SFI=140 SA=qui GMF=qui Au=no")] [InlineData("WWV: SFI=140 A=5 K=2")] public void AnnouncementLinesAreKeptAsTheNodeSentThem(string line) => Assert.Equal(line.TrimEnd('\a'), new SolarReader().Read(line)); [Fact] public void TheLineUnderAShWwvHeaderIsLabelled() { SolarReader reader = new(); Assert.Null(reader.Read("Date Hour SFI A K Forecast Logger")); Assert.Equal("SFI/A/K: 24-Oct-2026 1200Z 140 5 2 No Storms", reader.Read("24-Oct-2026 1200Z 140 5 2 No Storms")); } [Fact] public void ASpotCancelsTheHeader() { SolarReader reader = new(); reader.Read("Date Hour SFI A K Forecast Logger"); reader.Read("DX de K1TTT: 14025.0 JA1XYZ CW 1205Z"); Assert.Null(reader.Read("some other line")); } [Fact] public void OrdinaryLinesAreNotSolarWeather() => Assert.Null(new SolarReader().Read("DX de K1TTT: 14025.0 JA1XYZ CW 26 dB 1205Z")); }