9 Commits

Author SHA1 Message Date
41b09ae680 fix: remove redundant test TestRemove (#8)
All checks were successful
CI / Makefile Lint (push) Successful in 24s
CI / Go Lint (push) Successful in 28s
CI / Markdown Lint (push) Successful in 20s
CI / Unit Tests (push) Successful in 23s
CI / Fuzz Tests (push) Successful in 54s
CI / Mutation Tests (push) Successful in 50s
This test offers the same functionality as `TestAddItem`.

Reviewed-on: #8
Co-authored-by: M.V. Hutz <git@maximhutz.me>
Co-committed-by: M.V. Hutz <git@maximhutz.me>
2026-03-21 16:24:52 +00:00
e00e6fcb1b docs: add logo for project, expand readme (#7)
All checks were successful
CI / Makefile Lint (push) Successful in 22s
CI / Go Lint (push) Successful in 26s
CI / Markdown Lint (push) Successful in 9s
CI / Unit Tests (push) Successful in 21s
CI / Fuzz Tests (push) Successful in 53s
CI / Mutation Tests (push) Successful in 1m23s
Reviewed-on: #7
Co-authored-by: M.V. Hutz <git@maximhutz.me>
Co-committed-by: M.V. Hutz <git@maximhutz.me>
2026-03-21 01:14:17 +00:00
56b1982f8a 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>
v0.1.0
2026-03-20 01:59:54 +00:00
2bfaede2d4 ci: add lint makefile job (#5)
All checks were successful
CI / Makefile Lint (push) Successful in 15s
CI / Go Lint (push) Successful in 19s
CI / Unit Tests (push) Successful in 32s
CI / Fuzz Tests (push) Successful in 46s
CI / Mutation Tests (push) Successful in 51s
Currently, there is no CI job to lint the Makefile. This adds one.

Reviewed-on: #5
Co-authored-by: M.V. Hutz <git@maximhutz.me>
Co-committed-by: M.V. Hutz <git@maximhutz.me>
2026-03-19 00:24:25 +00:00
ece10585a5 style: restructure makefile (#4)
All checks were successful
CI / Unit Tests (push) Successful in 13s
CI / Go Lint (push) Successful in 17s
CI / Mutation Tests (push) Successful in 33s
CI / Fuzz Tests (push) Successful in 58s
Currently, the `Makefile` is not well structured, and does not follow best practices. With the help of [`checkmake`](https://github.com/checkmake/checkmake), the Makefile can be forced to follow them.

### Decisions

- Added CI job `lint-makefile`, which forces the Makefile to conform to standards.
- The `make help` was set as the default target. This is common practice in the industry.
- The `make help` uses `grep` | `awk` to create a command table from `##` comments after each target. It seems a bit icky, but it is something that Docker, Kubernetes, and Helm all do.

Reviewed-on: #4
Co-authored-by: M.V. Hutz <git@maximhutz.me>
Co-committed-by: M.V. Hutz <git@maximhutz.me>
2026-03-19 00:14:54 +00:00
0017a33f12 ci: clean up workflow (#3)
All checks were successful
CI / Unit Tests (push) Successful in 35s
CI / Golang Lint (push) Successful in 1m1s
CI / Fuzz Tests (push) Successful in 1m18s
CI / Mutation Tests (push) Successful in 1m12s
## Description

The current CI workflow was auto-generated by Claude, and is really not intuitive. Fixing it up to make it work better.

- Add names for jobs in workflow.
- Rename workflow to `ci.yml`.
- Added `go mod tidy` as a tasks in the `lint` job.

### Decisions

- Chose not to use emojis for workflow or job names. While they look nice, they are unprofessional, and harder to `grep`.

Reviewed-on: #3
Co-authored-by: M.V. Hutz <git@maximhutz.me>
Co-committed-by: M.V. Hutz <git@maximhutz.me>
v0.0.1
2026-03-18 00:47:02 +00:00
ea805b28e4 fix: EqualFunc not deterministic (#2)
All checks were successful
CI / lint (push) Successful in 51s
CI / unit-test (push) Successful in 25s
CI / fuzz-test (push) Successful in 1m2s
CI / mutation-test (push) Successful in 41s
The `ExampleEqualFunc_badEqualFunc` was non-deterministic, because the hashes used in the `CustomTable` could (by chance) map "Rob" and "Robert" to the same slot.

- Updated the test to use a deterministic hash.

Reviewed-on: #2
Co-authored-by: M.V. Hutz <git@maximhutz.me>
Co-committed-by: M.V. Hutz <git@maximhutz.me>
2026-03-17 01:54:24 +00:00
717408239b chore: move from tools/dsa (#1)
Some checks failed
CI / lint (push) Successful in 51s
CI / unit-test (push) Failing after 25s
CI / fuzz-test (push) Successful in 1m1s
CI / mutation-test (push) Successful in 42s
Moved the implementation of this hash table from `tools/dsa` #1.

Reviewed-on: #1
Co-authored-by: M.V. Hutz <git@maximhutz.me>
Co-committed-by: M.V. Hutz <git@maximhutz.me>
2026-03-17 01:22:42 +00:00
553117cb30 Initial commit 2026-03-17 00:59:15 +00:00