Files
go-cuckoo/cuckoo_internal_test.go
M.V. Hutz 1f7c64366d
Some checks failed
CI / Check PR Title (pull_request) Successful in 31s
CI / Go Lint (pull_request) Successful in 52s
CI / Markdown Lint (pull_request) Successful in 34s
CI / Makefile Lint (pull_request) Successful in 50s
CI / Unit Tests (pull_request) Successful in 48s
CI / Fuzz Tests (pull_request) Failing after 41s
CI / Mutation Tests (pull_request) Successful in 1m3s
Merge remote-tracking branch 'origin' into feat/safe-put
2026-04-15 23:59:23 -04:00

31 lines
607 B
Go

package cuckoo
import (
"math"
"testing"
"github.com/stretchr/testify/assert"
)
func TestMaxEvictions(t *testing.T) {
assert := assert.New(t)
for i := 16; i < 116; i++ {
table := New[int, bool](Capacity(i / 2))
expectedEvictions := 3 * math.Floor(math.Log2(float64(i)))
assert.Equal(table.maxEvictions(), int(expectedEvictions))
}
}
func TestLoad(t *testing.T) {
assert := assert.New(t)
table := New[int, bool](Capacity(8))
for i := range 16 {
_, err := table.Put(i, true)
assert.NoError(err)
assert.Equal(float64(table.Size())/float64(table.TotalCapacity()), table.load())
}
}