package hash import ( "fmt" "testing" ) func TestHash(t *testing.T) { hash := HashCardUid(0x000000000F0AD2301) if hash != "a6d9ba36ecb5f8e6312f40ee260ad59e9cca3c6ce073bf072df3324c0072886196e6823a7c758ab567fc53e91fbbda297a4efe0072e41316c56446ef126a5180" { t.Errorf("WRONG Key generated: %q", hash) } hash = HashCardUid(0x3CBB5AAD) if hash != "1e7bbc1aeeff4bfe58ea8d97df7cd0f97599fa31633d3a1f57d138549b3968c20affb186fe0b85570d34718b273d269bcd28b2be59faf8122451d91a2cdc5f18" { t.Errorf("WRONG Key generated: %q", hash) } } func TestBits(t *testing.T) { bits := make([]bool, 64) trueBits := []int{0, 1, 2, 3, 8, 10, 12, 13, 15, 18, 22, 23, 31} for _, i := range trueBits { bits[i] = true } var card uint64 = 0 for i := 63; i >= 0; i-- { if bits[i] == true { card |= 1 << (63 - i) } } cardId := fmt.Sprintf("%x", card) fmt.Println(cardId) if card != 0xF0AD230100000000 { panic(fmt.Errorf("WROOONG: %x", card)) } }