//go:build ignore // +build ignore package main import ( "fmt" "log" "testing" "github.com/cespare/xxhash/v2" ) const ( in = "Call me Ishmael. Some years ago--never mind how long precisely-" want = uint64(0x02a2e85470d6fd96) ) func TestSum(t *testing.T) { got := xxhash.Sum64String(in) if got != want { t.Fatalf("Sum64String: got 0x%x; want 0x%x", got, want) } } func TestDigest(t *testing.T) { for chunkSize := 1; chunkSize <= len(in); chunkSize++ { name := fmt.Sprintf("[chunkSize=%d]", chunkSize) t.Run(name, func(t *testing.T) { d := xxhash.New() for i := 0; i < len(in); i += chunkSize { chunk := in[i:] if len(chunk) > chunkSize { chunk = chunk[:chunkSize] } n, err := d.WriteString(chunk) if err != nil || n != len(chunk) { t.Fatalf("Digest.WriteString: got (%d, %v); want (%d, nil)", n, err, len(chunk)) } } if got := d.Sum64(); got != want { log.Fatalf("Digest.Sum64: got 0x%x; want 0x%x", got, want) } }) } }