Files
OpenNest/OpenNest.Tests/Data/NestNamesTests.cs
T
ajandClaude Opus 5.5 86b0370a8f fix(names): drop S from generated nest names
S reads too much like 5 on labels and screens, so the sequence alphabet is
now base-29. Already-issued names keep their numbers: the server's stored
counter stays authoritative and a base-29 name can never equal an earlier
base-30 one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 09:46:42 -04:00

35 lines
1004 B
C#

using OpenNest.Data;
namespace OpenNest.Tests.Data;
public class NestNamesTests
{
[Theory]
[InlineData(0, "N26-222")]
[InlineData(1, "N26-223")]
[InlineData(28, "N26-22Z")]
[InlineData(29, "N26-232")]
[InlineData(841, "N26-322")]
[InlineData(24389, "N26-3222")]
public void NamesUseTwoDigitYearAndPaddedBase29Sequence(int number, string expected)
{
Assert.Equal(expected, NestNames.Format(2026, number));
Assert.True(NestNames.TryParse(expected, 2026, out var parsed));
Assert.Equal(number, parsed);
}
[Theory]
[InlineData(null)]
[InlineData("")]
[InlineData("N25-223")]
[InlineData("N26-23")]
[InlineData("N26-2223")]
[InlineData("N26-22B")]
[InlineData("N26-22S")]
[InlineData("n26-223")]
[InlineData("N26-223 copy")]
[InlineData("N26-ZZZZZZZZZ")]
public void TryParse_RejectsOtherYearsAndNonCanonicalNames(string? name) =>
Assert.False(NestNames.TryParse(name, 2026, out _));
}