Commit graph

30 commits

Author SHA1 Message Date
google-labs-jules[bot]
14b6c09e3f feat: Add failure mode tests and fix WASM smoke test panic
This commit introduces a suite of tests for failure modes in the k-d tree library and resolves a persistent panic in the WebAssembly (WASM) smoke test.

Key changes:
- Adds `kdtree_failure_test.go` to test error conditions like empty inputs, dimension mismatches, and duplicate IDs.
- Fixes a `panic: ValueOf: invalid value` in the WASM module by ensuring Go slices are converted to `[]any` before being passed to JavaScript.
- Makes the JavaScript loader (`loader.js`) isomorphic, allowing it to run in both Node.js and browser environments.
- Updates the WASM `nearest` function and the corresponding JS loader to handle the "not found" case more gracefully.
- Corrects the smoke test (`smoke.mjs`) to align with the API changes and use the correct build process.
2025-11-04 11:55:03 +00:00
1a6ab5bf49
Merge pull request #2 from Snider/kd-tree-peer-finding
Kd tree peer finding
2025-11-04 10:51:22 +00:00
fa42914681
Merge pull request #3 from Snider/increase-test-coverage
feat: Increase test coverage to over 90%
2025-11-04 10:47:09 +00:00
google-labs-jules[bot]
590dd7e019 feat: Increase test coverage to over 90%
This commit introduces a comprehensive test suite for the `gonum` backend, which was previously untested. It also adds tests for the `kdtree_helpers` package, specifically for the `ComputeNormStats3D` and `BuildND` functions.

The new tests cover a wide range of scenarios, including:
- Basic functionality of `Nearest`, `KNearest`, and `Radius`
- Edge cases such as empty trees, zero/negative inputs, and mismatched dimensions
- Various data configurations, including collinear points and negative coordinates

This commit also includes minor fixes to the existing tests to improve their robustness and accuracy.

As a result of these changes, the overall test coverage of the project has been increased from 80% to over 90%.
2025-11-04 10:37:52 +00:00
Snider
38a6c6aad3 Add KDTree normalization helpers and TypeScript demo with Vite 2025-11-04 02:15:04 +00:00
Snider
3c83fc38e4 Add dual-backend support for KDTree with benchmarks and documentation updates 2025-11-04 01:44:16 +00:00
Snider
5d1ee3f0ea Refactor CI configuration and documentation; improve error handling in KDTree functions 2025-11-04 00:38:18 +00:00
Snider
8e62b4e51d Update golangci-lint installation to use version 2 in CI configuration 2025-11-03 20:26:30 +00:00
Snider
b876c31881 WebAssembly build and add TypeScript definitions for KDTree API 2025-11-03 20:15:55 +00:00
Snider
c54a6ccd3a Fix fuzz testing command in Makefile to correctly match fuzz targets 2025-11-03 19:54:37 +00:00
Snider
34101cf686 Enhance CI workflow with coverage options and add tests for KDTree functionality 2025-11-03 19:50:05 +00:00
Snider
054c9af39e Enhance CI workflow with coverage options and add tests for KDTree functionality 2025-11-03 19:46:38 +00:00
Snider
3a67ba031b Add maintainer Makefile for local CI parity and update .gitignore and CI configuration 2025-11-03 19:33:28 +00:00
Snider
6f63ef9cc4 Add fuzz testing step to CI workflow 2025-11-03 19:09:40 +00:00
Snider
4ccccc97f5 Fix example function names, stabilize tests, and relax floating-point comparisons 2025-11-03 19:07:08 +00:00
Snider
6247c3de83 Add GoReleaser configuration for GitHub Releases and update CI workflow 2025-11-03 18:58:44 +00:00
Snider
3886724129 Add Cosine and Weighted Cosine distance metrics, enhance KDTree helpers, and update version to 0.3.0 2025-11-03 18:51:23 +00:00
Snider
ca6f89a99c Add examples for KDTree and enable errcheck linter in CI 2025-11-03 18:41:28 +00:00
Snider
3ba2b4fce3 Add normalization stats helpers and builders for KDTree 2025-11-03 18:36:09 +00:00
Snider
f106261216 Enhance CI workflow with coverage and benchmark reporting for KDTree 2025-11-03 18:26:40 +00:00
Snider
dad508de31 Add lint configuration, benchmarks, and documentation for KDTree 2025-11-03 18:19:12 +00:00
Snider
ec61d6afde Add CI workflow and update documentation for KDTree version 2025-11-03 18:10:49 +00:00
Snider
43c37f900f document KDTree helper functions for building normalised, weighted multidimensional points (performance weighted route discovery) 2025-11-03 18:00:33 +00:00
Snider
5da17d8b61 Add multi-dimensional KDTree example and update documentation 2025-11-03 17:33:37 +00:00
Snider
736ce911e0 Add KDTree implementation and example for finding the best DHT peer by ping 2025-11-03 16:49:31 +00:00
Snider
dbcad82d6b
Merge pull request #1 from Snider/copilot/fix-631881-1088881000-1ebcc534-1620-4cc1-a3b4-d4aabc78c0dc
Bootstrap Go library with EUPL-1.2, goreleaser, mkdocs-material, and sorting utilities
2025-11-03 15:53:11 +00:00
copilot-swe-agent[bot]
94aeaf4730 Fix GitHub Actions permissions for test workflow
Co-authored-by: Snider <631881+Snider@users.noreply.github.com>
2025-11-03 15:40:12 +00:00
copilot-swe-agent[bot]
195924fb9e Bootstrap Go library with EUPL-1.2, goreleaser, mkdocs, and sorting functions
Co-authored-by: Snider <631881+Snider@users.noreply.github.com>
2025-11-03 15:37:45 +00:00
copilot-swe-agent[bot]
fc74550e7c Initial plan 2025-11-03 15:29:57 +00:00
Snider
b8fe1a9eea
Initial commit 2025-11-03 15:29:53 +00:00