Indexing unit tests should go in `diskann`
@harsha-simhadri is already working on this.
Since Mar 19, 2026.
- Dominant language
- Rust
- Stars
- 1.9k
- Forks
- 454
- Avg merge
- 3d 22h
- Merged PRs (30d)
- 35
Description
For historical reasons, unit tests exercising search and its various flavors (range, multihop filtered etc) live outside of the core diskann crate and instead live in diskann-providers in the large diskann_async.rs and are implemented using the inmem providers.
Further, these tests perform basic recall checks, but do not provide much visibility into more useful metrics like exact neighbors returned, number of get-vector calls etc.
These tests should be ported to the baseline testing infrastructure in diskann and all future such tests should be written there instead of diskann-providers. Ideally, I'd like the diskann crate on its own to have high test coverage and not be dependent on diskann-providers for its testing needs.
Any infrastructure developed within the diskann crate to achieve this can likely be reused to make writing future tests even easier.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.