Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 24 additions & 32 deletions diskann-providers/src/index/diskann_async.rs
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,7 @@ pub(crate) mod tests {
};

use crate::storage::VirtualStorageProvider;
use diskann::graph::test::synthetic::Grid;
use diskann::{
graph::{
self, AdjacencyList, InplaceDeleteMethod, StartPointStrategy,
Expand Down Expand Up @@ -207,7 +208,7 @@ pub(crate) mod tests {
test_utils::{
assert_range_results_exactly_match, assert_top_k_exactly_match, groundtruth, is_match,
},
utils::{self, VectorDataIterator, create_rnd_from_seed_in_tests},
utils::{VectorDataIterator, create_rnd_from_seed_in_tests},
};

// Callbacks for use with `simplified_builder`.
Expand Down Expand Up @@ -278,6 +279,17 @@ pub(crate) mod tests {
}
}

pub(crate) fn grid_from_dim(dim: usize) -> Grid {
Grid::from_dim(dim)
.unwrap_or_else(|| panic!("{dim}-dimensions is not supported for grid-generation"))
Comment thread
JordanMaples marked this conversation as resolved.
}

fn grid_to_vecs<T: Clone>(matrix: &Matrix<T>) -> Vec<Vec<T>> {
(0..matrix.nrows())
.map(|i| matrix.row(i).to_vec())
.collect()
}

// Grid generators for different types //
pub(crate) trait GenerateGrid: Sized {
/// Generate a synthetic dataset that is a hypercube of point beginning at the
Expand All @@ -295,34 +307,19 @@ pub(crate) mod tests {

impl GenerateGrid for f32 {
fn generate_grid(dim: usize, size: usize) -> Vec<Vec<Self>> {
match dim {
1 => utils::generate_1d_grid_vectors_f32(size as u32),
3 => utils::generate_3d_grid_vectors_f32(size as u32),
4 => utils::generate_4d_grid_vectors_f32(size as u32),
_ => panic!("{}-dimensions is not support for grid-generation", size),
}
grid_to_vecs(&grid_from_dim(dim).data(size))
}
}

impl GenerateGrid for i8 {
fn generate_grid(dim: usize, size: usize) -> Vec<Vec<Self>> {
match dim {
1 => utils::generate_1d_grid_vectors_i8(size.try_into().unwrap()),
3 => utils::generate_3d_grid_vectors_i8(size.try_into().unwrap()),
4 => utils::generate_4d_grid_vectors_i8(size.try_into().unwrap()),
_ => panic!("{}-dimensions is not support for grid-generation", size),
}
grid_to_vecs(&grid_from_dim(dim).data_as(size, |v| i8::try_from(v).unwrap()))
}
}

impl GenerateGrid for u8 {
fn generate_grid(dim: usize, size: usize) -> Vec<Vec<Self>> {
match dim {
1 => utils::generate_1d_grid_vectors_u8(size.try_into().unwrap()),
3 => utils::generate_3d_grid_vectors_u8(size.try_into().unwrap()),
4 => utils::generate_4d_grid_vectors_u8(size.try_into().unwrap()),
_ => panic!("{}-dimensions is not support for grid-generation", size),
}
grid_to_vecs(&grid_from_dim(dim).data_as(size, |v| u8::try_from(v).unwrap()))
}
Comment thread
JordanMaples marked this conversation as resolved.
}

Expand Down Expand Up @@ -656,12 +653,7 @@ pub(crate) mod tests {
let (config, parameters) =
simplified_builder(l, max_degree, Metric::L2, dim, num_points, no_modify).unwrap();

let mut adjacency_lists = match dim {
1 => utils::generate_1d_grid_adj_list(grid_size as u32),
3 => utils::genererate_3d_grid_adj_list(grid_size as u32),
4 => utils::generate_4d_grid_adj_list(grid_size as u32),
_ => panic!("Unsupported number of dimensions"),
};
let mut adjacency_lists = grid_from_dim(dim).neighbors(grid_size);
let mut vectors = f32::generate_grid(dim, grid_size);

assert_eq!(adjacency_lists.len(), num_points);
Expand Down Expand Up @@ -1110,7 +1102,7 @@ pub(crate) mod tests {
let (config, parameters) =
simplified_builder(l, max_degree, Metric::L2, dim, num_points, no_modify).unwrap();

let mut adjacency_lists = utils::genererate_3d_grid_adj_list(grid_size as u32);
let mut adjacency_lists = Grid::Three.neighbors(grid_size);
let mut vectors = f32::generate_grid(dim, grid_size);

assert_eq!(adjacency_lists.len(), num_points);
Expand Down Expand Up @@ -1227,7 +1219,7 @@ pub(crate) mod tests {
let (config, parameters) =
simplified_builder(l, max_degree, Metric::L2, dim, num_points, no_modify).unwrap();

let mut adjacency_lists = utils::genererate_3d_grid_adj_list(grid_size as u32);
let mut adjacency_lists = Grid::Three.neighbors(grid_size);
let mut vectors = f32::generate_grid(dim, grid_size);

assert_eq!(adjacency_lists.len(), num_points);
Expand Down Expand Up @@ -1389,7 +1381,7 @@ pub(crate) mod tests {
let (config, parameters) =
simplified_builder(l, max_degree, Metric::L2, dim, num_points, no_modify).unwrap();

let mut adjacency_lists = utils::genererate_3d_grid_adj_list(grid_size as u32);
let mut adjacency_lists = Grid::Three.neighbors(grid_size);
let mut vectors = f32::generate_grid(dim, grid_size);

adjacency_lists.push((num_points as u32 - 1).into());
Expand Down Expand Up @@ -3969,7 +3961,7 @@ pub(crate) mod tests {
let (config, parameters) =
simplified_builder(l, max_degree, Metric::L2, dim, num_points, no_modify).unwrap();

let mut adjacency_lists = utils::genererate_3d_grid_adj_list(grid_size as u32);
let mut adjacency_lists = Grid::Three.neighbors(grid_size);
let mut vectors = f32::generate_grid(dim, grid_size);

adjacency_lists.push((num_points as u32 - 1).into());
Expand Down Expand Up @@ -4032,7 +4024,7 @@ pub(crate) mod tests {
let (config, parameters) =
simplified_builder(l, max_degree, Metric::L2, dim, num_points, no_modify).unwrap();

let mut adjacency_lists = utils::genererate_3d_grid_adj_list(grid_size as u32);
let mut adjacency_lists = Grid::Three.neighbors(grid_size);
let mut vectors = f32::generate_grid(dim, grid_size);

adjacency_lists.push((num_points as u32 - 1).into());
Expand Down Expand Up @@ -4100,7 +4092,7 @@ pub(crate) mod tests {
let (config, parameters) =
simplified_builder(l, max_degree, Metric::L2, dim, num_points, no_modify).unwrap();

let mut adjacency_lists = utils::genererate_3d_grid_adj_list(grid_size as u32);
let mut adjacency_lists = Grid::Three.neighbors(grid_size);
let mut vectors = f32::generate_grid(dim, grid_size);

adjacency_lists.push((num_points as u32 - 1).into());
Expand Down Expand Up @@ -4247,7 +4239,7 @@ pub(crate) mod tests {
let (config, parameters) =
simplified_builder(l, max_degree, Metric::L2, dim, num_points, no_modify).unwrap();

let mut adjacency_lists = utils::genererate_3d_grid_adj_list(grid_size as u32);
let mut adjacency_lists = Grid::Three.neighbors(grid_size);
let mut vectors = f32::generate_grid(dim, grid_size);

adjacency_lists.push((num_points as u32 - 1).into());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,6 @@ mod tests {
use crate::{
index::diskann_async::tests as async_tests,
model::graph::provider::async_::caching::provider::{AsCacheAccessorFor, CachingProvider},
utils as crate_utils,
};

fn test_provider(
Expand Down Expand Up @@ -704,12 +703,7 @@ mod tests {
);
let index = Arc::new(DiskANNIndex::new(index_config, provider, None));

let adjacency_lists = match dim {
1 => crate_utils::generate_1d_grid_adj_list(grid_size as u32),
3 => crate_utils::genererate_3d_grid_adj_list(grid_size as u32),
4 => crate_utils::generate_4d_grid_adj_list(grid_size as u32),
_ => panic!("Unsupported number of dimensions"),
};
let adjacency_lists = async_tests::grid_from_dim(dim).neighbors(grid_size);
assert_eq!(adjacency_lists.len(), num_points);
assert_eq!(vectors.len(), num_points);

Expand Down
197 changes: 0 additions & 197 deletions diskann-providers/src/utils/generate_structured_data.rs

This file was deleted.

Loading
Loading