Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions unique_string.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,7 @@ func murmurHash64(data []byte) uint64 {
o := size - i

if o > 0 {
h1 := uint32(uint32(data[i]) | (uint32(data[i+1]) << 8) | (uint32(data[i+2]) << 16) | (uint32(data[i+3]) << 24))

var h1 uint32 = 0
if o < 4 {
switch o {
case 2:
Expand All @@ -64,6 +63,8 @@ func murmurHash64(data []byte) uint64 {
default:
h1 = uint32(data[i])
}
} else {
h1 = uint32(uint32(data[i]) | (uint32(data[i+1]) << 8) | (uint32(data[i+2]) << 16) | (uint32(data[i+3]) << 24))
}

h1 *= uint32(c4)
Expand Down
19 changes: 19 additions & 0 deletions unique_string_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,25 @@ func TestGenerateUniqueString(t *testing.T) {
}
}

func TestGenerateUniqueString_shortString(t *testing.T) {
prev := GenerateUniqueString("t")
if prev != "fsnwonksnm7cy" {
t.Fatalf("GenerateUniqueString(\"t\") should = fsnwonksnm7cy")
}
prev = GenerateUniqueString("te")
if prev != "o57ehhbytctgs" {
t.Fatalf("GenerateUniqueString(\"te\") should = o57ehhbytctgs")
}
prev = GenerateUniqueString("tes")
if prev != "ebse57jls4qbc" {
t.Fatalf("GenerateUniqueString(\"tes\") should = ebse57jls4qbc")
}
prev = GenerateUniqueString("t", "e")
if prev != "d5ykh7yoidm2a" {
t.Fatalf("GenerateUniqueString(\"t\", \"e\") should = d5ykh7yoidm2a")
}
}

func BenchmarkGenerateUniqueString(b *testing.B) {
for n := 0; n < b.N; n++ {
_ = GenerateUniqueString("test")
Expand Down