package bambunfc import ( "encoding/hex" "errors" "testing" ) func TestKeysAGolden11223344(t *testing.T) { t.Parallel() uid, err := hex.DecodeString("11223344") if err != nil { t.Fatal(err) } want := []string{ "0729F3B2D37A", "2027210D85E7", "D77B2E7C92BC", "29126A53A2EE", "E49850F62778", "9A9128B882BD", "45F69B980786", "90DD67095D6B", "EB994746CD69", "B4AEB23473E3", "445E850D699C", "5C9BD5BD9FD7", "1062AFE9F5F5", "81EE5259CF6B", "0920CEEEE2BC", "BAF630CCBFD3", } got, err := KeysA(uid) if err != nil { t.Fatal(err) } for i, w := range want { if h := hex.EncodeToString(got[i][:]); h != toLower(w) { t.Errorf("key[%d] = %s; want %s", i, h, toLower(w)) } } } func toLower(s string) string { b := []byte(s) for i, c := range b { if c >= 'A' && c <= 'F' { b[i] = c + ('a' - 'A') } } return string(b) } func TestKeysAEmpty(t *testing.T) { t.Parallel() _, err := KeysA(nil) if !errors.Is(err, ErrUID) { t.Errorf("KeysA(nil) err = %v; want ErrUID", err) } }