refactor!: remove MinimumLoad() option (#17)
All checks were successful
CI / Check PR Title (push) Has been skipped
CI / Go Lint (push) Successful in 38s
CI / Makefile Lint (push) Successful in 36s
CI / Markdown Lint (push) Successful in 21s
CI / Unit Tests (push) Successful in 37s
CI / Fuzz Tests (push) Successful in 1m9s
CI / Mutation Tests (push) Successful in 1m18s
All checks were successful
CI / Check PR Title (push) Has been skipped
CI / Go Lint (push) Successful in 38s
CI / Makefile Lint (push) Successful in 36s
CI / Markdown Lint (push) Successful in 21s
CI / Unit Tests (push) Successful in 37s
CI / Fuzz Tests (push) Successful in 1m9s
CI / Mutation Tests (push) Successful in 1m18s
## Description The `cuckoo.MinimumLoad()` option was not a very useful option, and prone to error. By removing the ability to modify it, and setting it to something reasonable (like 5%), we can remove a whole set of errors that the user may stumble into. ## Changes - Remove `MinimumLoad()` option. - Privated `DefaultMinimumLoad`. ### Design Decisions - `DefaultMinimumLoad` should be privated because it is no longer an option. The user should not need to interact with it. ## Checklist - [x] Tests pass - [x] Docs updated Reviewed-on: #17
This commit was merged in pull request #17.
This commit is contained in:
@@ -3,7 +3,6 @@ package cuckoo_test
|
||||
import (
|
||||
"fmt"
|
||||
"maps"
|
||||
"math"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
@@ -30,7 +29,6 @@ type fuzzStep struct {
|
||||
type fuzzScenario struct {
|
||||
seedA, seedB uint32
|
||||
capacity, growthFactor uint8
|
||||
load float64
|
||||
steps []fuzzStep
|
||||
}
|
||||
|
||||
@@ -48,7 +46,6 @@ func FuzzInsertLookup(f *testing.F) {
|
||||
seedA, seedB := scenario.seedA, scenario.seedB
|
||||
growthFactor := max(2, int(scenario.growthFactor))
|
||||
capacity := int(scenario.capacity)
|
||||
minimumLoad := math.Abs(math.Mod(scenario.load, 1.0))
|
||||
|
||||
// If they are the same number, the hashes will clash, always causing an
|
||||
// error.
|
||||
@@ -56,14 +53,8 @@ func FuzzInsertLookup(f *testing.F) {
|
||||
t.Skip()
|
||||
}
|
||||
|
||||
// If the load is too high, the hashs will not be able to allocate
|
||||
// properly.
|
||||
if minimumLoad > 0.20 {
|
||||
t.Skip()
|
||||
}
|
||||
|
||||
fmt.Fprintf(os.Stderr, "seedA=%d seedB=%d capacity=%d growthFactor=%d minimumLoad=%f\n",
|
||||
seedA, seedB, capacity, growthFactor, minimumLoad)
|
||||
fmt.Fprintf(os.Stderr, "seedA=%d seedB=%d capacity=%d growthFactor=%d\n",
|
||||
seedA, seedB, capacity, growthFactor)
|
||||
|
||||
actual := cuckoo.NewCustomTable[uint32, uint32](
|
||||
offsetHash(seedA),
|
||||
@@ -71,7 +62,6 @@ func FuzzInsertLookup(f *testing.F) {
|
||||
func(a, b uint32) bool { return a == b },
|
||||
cuckoo.Capacity(capacity),
|
||||
cuckoo.GrowthFactor(growthFactor),
|
||||
cuckoo.MinimumLoad(minimumLoad),
|
||||
)
|
||||
|
||||
expected := map[uint32]uint32{}
|
||||
|
||||
Reference in New Issue
Block a user