Score the last three cases the way N1MM scores them

The three differences left after replaying the log were ours on purpose. A log
has to score the same in both programs, so they now follow N1MM:

- ARRL DX and CQ WW RTTY count the 14 Canadian areas N1MM lists as `48SDC14P`,
  which keeps Newfoundland apart from Labrador. A station sending the postal
  code is counted as the area the contest names.
- A maritime mobile is scored from the call it signs. CQ WW says it counts for
  the zone alone; N1MM gives it the country, and so do we.
- A callsign the country file cannot place counts as a multiplier with an empty
  value, so every unplaceable call worked on a band shares one multiplier.

29 of the 37 contest instances in the log now agree with N1MM on every contact
and on the totals. What is left is the country file of the day and rows whose
cached points N1MM never worked out again after a call was corrected.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RoGtneMQaz4M9w7Kk49AVD
This commit is contained in:
2026-08-31 08:36:44 +00:00
parent 04568d0ca3
commit 5c0ca558c1
8 changed files with 69 additions and 60 deletions

View File

@@ -103,14 +103,16 @@ public class WaeTests
Assert.Equal("UA0", multiplier.Value);
}
/// N1MM counts a callsign it cannot place as a multiplier with an empty
/// value, which inflates the score. A call with no country is no
/// multiplier here.
/// A callsign the country file cannot place still counts, with an empty
/// value, so the log scores the same here as in N1MM. All the unplaceable
/// calls worked on a band share the one multiplier between them.
[Fact]
public void ACallWithNoCountryIsNoMultiplier()
public void ACallWithNoCountryCountsOncePerBand()
{
ContestLog log = LogFor(Cw, TestLog.Germany);
Assert.Empty(log.Judge(On("D1M", 14_025)).NewMultipliers);
Assert.Equal("", Assert.Single(log.Judge(On("D1M", 14_025)).NewMultipliers).Value);
log.Add(On("D1M", 14_025));
Assert.Empty(log.Judge(On("D2X", 14_025)).NewMultipliers);
}
[Fact]