Added CompleteCode function.
All checks were successful
CI / test (push) Successful in 17s

This commit is contained in:
2026-02-21 04:19:19 +01:00
parent 50e9036400
commit 22ca29b4af
5 changed files with 110 additions and 10 deletions

View File

@@ -192,6 +192,38 @@ func TestEncodeRejectsNonDigitInNumber(t *testing.T) {
}
}
func TestCompleteCodeRoundtrip(t *testing.T) {
original, err := serial.Decode(123456)
if err != nil {
t.Fatalf("Decode failed: %v", err)
}
withoutChecksum := original[:len(original)-1]
full, idx, err := serial.CompleteCode(withoutChecksum)
if err != nil {
t.Fatalf("CompleteCode failed: %v", err)
}
if full != original {
t.Fatalf("completed code mismatch: got %q, want %q", full, original)
}
idx2, err := serial.Encode(full)
if err != nil {
t.Fatalf("Encode failed for completed code %q: %v", full, err)
}
if idx2 != idx {
t.Fatalf("idx mismatch: got %d, want %d", idx, idx2)
}
}
func TestCompleteCodeRejectsInvalidFormat(t *testing.T) {
_, _, err := serial.CompleteCode("AAA-10-A")
if !errors.Is(err, serial.ErrInvalidFormatNoChecksum) {
t.Fatalf("expected invalid no-checksum format error, got: %v", err)
}
}
func TestRandomCodeRoundtrip(t *testing.T) {
for i := 0; i < 100; i++ {
code, idx, err := serial.RandomCode()