using Nonemm.Core; using Nonemm.Session; namespace Nonemm.Session.Tests; /// A mode typed into the callsign box. public class ModeEntryTests { private static readonly Frequency Twenty = Frequency.FromKilohertz(14_080); private static readonly Frequency Forty = Frequency.FromKilohertz(7_040); [Theory] [InlineData("CW", "CW")] [InlineData("rtty", "RTTY")] [InlineData("FT8", "FT8")] [InlineData("USB", "USB")] public void AModeNameIsTakenWhateverItsCase(string typed, string expected) => Assert.Equal(expected, ModeEntry.Parse(typed, Twenty)?.Name); /// SSB names no sideband, so the band decides, the way the band panel does. [Theory] [InlineData("SSB")] [InlineData("PH")] [InlineData("PHONE")] public void PhoneTakesTheSidebandTheBandCallsFor(string typed) { Assert.Equal("USB", ModeEntry.Parse(typed, Twenty)?.Name); Assert.Equal("LSB", ModeEntry.Parse(typed, Forty)?.Name); } [Theory] [InlineData("OM5M")] [InlineData("14080")] [InlineData("")] [InlineData(" ")] public void AnythingThatIsNotAModeIsLeftAlone(string typed) => Assert.Null(ModeEntry.Parse(typed, Twenty)); }