This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user