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.
For historical reasons, unit tests exercising search and its various flavors (range, multihop filtered etc) live outside of the core
diskanncrate and instead live indiskann-providersin the largediskann_async.rsand 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
diskannand all future such tests should be written there instead ofdiskann-providers. Ideally, I'd like thediskanncrate on its own to have high test coverage and not be dependent ondiskann-providersfor its testing needs.Any infrastructure developed within the
diskanncrate to achieve this can likely be reused to make writing future tests even easier.