feat: add drop key functionality (#6)
All checks were successful
CI / Makefile Lint (push) Successful in 16s
CI / Go Lint (push) Successful in 21s
CI / Unit Tests (push) Successful in 15s
CI / Fuzz Tests (push) Successful in 49s
CI / Mutation Tests (push) Successful in 55s

Currently, the `Table.Drop()` function is deprecated because it is not implemented yet. Let's add that functionality.

- Adds true drop functionality to the table, through `Table.Drop()`.
- Adds tests for functionality.
- Rewrites fuzz test using `go_fuzz_utils`, to test arbitrary usage patterns.
- Rewrite `bucket` to allow a capacity of zero.
- Rename `Table.Capacity()` to `Table.TotalCapacity()`, to reflect to different between the capacity of the buckets vs. the whole table.
- Enforce 100% mutation test coverage.

Reviewed-on: #6
Co-authored-by: M.V. Hutz <git@maximhutz.me>
Co-committed-by: M.V. Hutz <git@maximhutz.me>
This commit was merged in pull request #6.
This commit is contained in:
2026-03-20 01:59:54 +00:00
committed by Maxim Hutz
parent 2bfaede2d4
commit 56b1982f8a
9 changed files with 262 additions and 40 deletions

View File

@@ -16,10 +16,12 @@ test-unit: ## Run unit tests with coverage
test-mutation: ## Run mutation tests with gremlins
gremlins unleash
FUZZ_TIME ?= 30
test-fuzz: ## Run all fuzz tests for 30s each
@for func in $$(grep -r --include='*_test.go' -oh 'func Fuzz\w*' . | sed 's/func //'); do \
echo "Fuzzing $$func..."; \
go test ./... -fuzz="^$$func$$" -fuzztime=30s; \
go test ./... -fuzz="^$$func$$" -fuzztime=$(FUZZ_TIME)s; \
done
test: test-unit test-mutation test-fuzz ## Run all tests