Commit Graph

15 Commits

Author SHA1 Message Date
f636ce8911 chore: go mod tidy
All checks were successful
CI / Go Lint (pull_request) Successful in 49s
CI / Makefile Lint (pull_request) Successful in 38s
CI / Unit Tests (pull_request) Successful in 14s
CI / Fuzz Tests (pull_request) Successful in 1m10s
CI / Mutation Tests (pull_request) Successful in 58s
2026-03-19 21:08:23 -04:00
0c81bc5cae docs: added comments to give context to functions
Some checks failed
CI / Makefile Lint (pull_request) Successful in 21s
CI / Go Lint (pull_request) Failing after 12s
CI / Unit Tests (pull_request) Successful in 14s
CI / Fuzz Tests (pull_request) Successful in 1m14s
CI / Mutation Tests (pull_request) Successful in 53s
2026-03-19 21:06:12 -04:00
bd3f0aad04 chore: removed testdata for fuzz test
Some checks failed
CI / Go Lint (pull_request) Failing after 11s
CI / Makefile Lint (pull_request) Successful in 41s
CI / Unit Tests (pull_request) Successful in 45s
CI / Fuzz Tests (pull_request) Successful in 1m25s
CI / Mutation Tests (pull_request) Successful in 1m17s
2026-03-19 20:54:54 -04:00
cdb5efb4a3 fix: allow 0 capacity for table
- Added guards at the bucket level, to ensure that getting an item in an empty bucket doesn't cause an error.
- Added grow() and shrink() functions to Table, to prevent a capacity of 0 from not being able to grow.
- Updated the fuzz test to use `go_fuzz-utils`.
2026-03-19 20:46:31 -04:00
bb874a2aba test: add Drop to fuzz test, add drop test cases 2026-03-19 20:13:11 -04:00
e2ba398a62 fix: Table.Drop() was not a pointer receiver 2026-03-19 20:05:35 -04:00
c1314f8a3c fix: resize of Table.Drop() now decreases size
- Generalized Table.resize() to accept a capacity size for each bucket.
2026-03-19 20:01:50 -04:00
74ed81761c fix: drop() decrements bucket size 2026-03-19 20:01:14 -04:00
d4acdda95b feat: implement drop functionality
- Added `drop()` function in buckets.
- Implemented `Drop()` function for Table.
2026-03-19 19:54:16 -04: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