using Nonemm.Contests.Rules; using Nonemm.Core; namespace Nonemm.Contests.Tests; public class ArrlDxTests { private static ContestLog LogFor(StationInfo me) => new(new ArrlDx(ModeCategory.Cw), me, TestLog.CountryFile); [Fact] public void DxWorkingWvieScoresThree() { ContestLog log = LogFor(TestLog.Germany); Assert.Equal(3, log.Judge(TestLog.Contact("K1ABC", exchange: "CT")).Points); } [Fact] public void DxWorkingDxScoresNothing() { ContestLog log = LogFor(TestLog.Germany); Assert.Equal(0, log.Judge(TestLog.Contact("JA1XYZ", exchange: "5W")).Points); } [Fact] public void WvieWorkingWvieScoresNothing() { ContestLog log = LogFor(TestLog.UnitedStates); Assert.Equal(0, log.Judge(TestLog.Contact("VE3XYZ", exchange: "ON")).Points); } [Fact] public void DxCountsStatesAndProvinces() { ContestLog log = LogFor(TestLog.Germany); Assert.Equal("CT", log.Judge(TestLog.Contact("K1ABC", exchange: "CT")).NewMultipliers.Single().Value); Assert.Empty(log.Judge(TestLog.Contact("K1ABC", exchange: "XX")).NewMultipliers); } [Fact] public void WvieCountsCountries() { ContestLog log = LogFor(TestLog.UnitedStates); Assert.Equal("DL", log.Judge(TestLog.Contact("DL9XYZ", exchange: "100")).NewMultipliers.Single().Value); } [Fact] public void MultipliersCountOncePerBand() { ContestLog log = LogFor(TestLog.Germany); log.Add(TestLog.Contact("K1ABC", exchange: "CT")); Assert.Empty(log.Judge(TestLog.Contact("K2ABC", exchange: "CT")).NewMultipliers); Assert.Single(log.Judge(TestLog.Contact("K2ABC", 7_025, exchange: "CT")).NewMultipliers); } }