Files
Nonemm/tests/Nonemm.Session.Tests/ContestDefinitionsTests.cs
T
erikbrockoandClaude Opus 5 b5d9f1e21c Name the All Asian multiplier after what it counts
The score window and the stored Contest.Multiplier1Name row both said
"Prefixes" for an Asian entrant, which counts DXCC entities.

Contest.MultiplierNames is now MultiplierNamesFor(StationInfo me), the
same shape as ExchangeFieldsFor. Every other contest returns the same
list it did before; All Asian returns "Countries" from Asia and
"Prefixes" from everywhere else. ContestDefinitions.For takes the
station as well, because that name is written to the log for N1MM.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0157i7PiZyqBkquxS9A6FTdQ
2026-09-10 20:47:51 +00:00

52 lines
1.6 KiB
C#

using Nonemm.Contests.Rules;
using Nonemm.Core;
using Nonemm.Storage;
namespace Nonemm.Session.Tests;
public class ContestDefinitionsTests
{
private static readonly StationInfo Germany = new()
{
Callsign = "DL1ABC",
CqZone = 14,
ItuZone = 28,
Continent = "EU",
CountryPrefix = "DL",
};
[Fact]
public void NamesAndModeComeFromTheContest()
{
ContestDefinition definition = ContestDefinitions.For(new CqWorldWide(ModeCategory.Cw), Germany);
Assert.Equal("CQWWCW", definition.Name);
Assert.Equal("CQ-WW-CW", definition.CabrilloName);
Assert.Equal("CW", definition.Mode);
}
[Fact]
public void MultiplierNamesFillUpToThree()
{
ContestDefinition definition = ContestDefinitions.For(new CqWorldWide(ModeCategory.Cw), Germany);
Assert.Equal("Zones", definition.Multiplier1Name);
Assert.Equal("Countries", definition.Multiplier2Name);
Assert.Equal("N/A", definition.Multiplier3Name);
}
[Theory]
[InlineData(typeof(Sweepstakes), 1)]
[InlineData(typeof(CqWorldWide), 2)]
[InlineData(typeof(IaruHf), 3)]
public void DupeScopeBecomesN1mmsDupeType(Type contest, int expected)
{
object made = contest == typeof(IaruHf)
? new IaruHf()
: Activator.CreateInstance(contest, ModeCategory.Cw)!;
Assert.Equal(expected, ContestDefinitions.For((Contests.Contest)made, Germany).DupeType);
}
[Fact]
public void ContestWithSeveralModesIsBoth() =>
Assert.Equal("BOTH", ContestDefinitions.For(new IaruHf(), Germany).Mode);
}