core/core-rs/tests/test_vault.rs
Shay df9ced7104
Activate and verify Rust backend
Add Rust backend CLI controls, fix core-rs build/test configuration, align Rust Cl(4,1)/CGA conventions with Python, and validate core_rs activation.
2026-05-13 22:23:48 -07:00

43 lines
1.3 KiB
Rust

use core_rs::vault::vault_recall_raw;
use core_rs::cga::embed_point_raw;
fn sample_point(seed: u64) -> [f32; 32] {
let x = ((seed * 17 + 3) % 101) as f32 / 10.0;
let y = ((seed * 23 + 7) % 101) as f32 / 10.0;
let z = ((seed * 31 + 11) % 101) as f32 / 10.0;
embed_point_raw(&[x, y, z])
}
#[test]
fn test_recall_self() {
let versors: Vec<[f32; 32]> = (0..20).map(|i| sample_point(i as u64)).collect();
for (i, query) in versors.iter().enumerate() {
let results = vault_recall_raw(&versors, query, 1).unwrap();
assert_eq!(results[0].0, i);
}
}
#[test]
fn test_empty_vault() {
let query = sample_point(0);
let results = vault_recall_raw(&[], &query, 5).unwrap();
assert!(results.is_empty());
}
#[test]
fn test_top_k_count() {
let versors: Vec<[f32; 32]> = (0..10).map(|i| sample_point(i as u64)).collect();
let query = sample_point(99);
let results = vault_recall_raw(&versors, &query, 3).unwrap();
assert_eq!(results.len(), 3);
}
#[test]
fn test_scores_descending() {
let versors: Vec<[f32; 32]> = (0..10).map(|i| sample_point(i as u64)).collect();
let query = sample_point(99);
let results = vault_recall_raw(&versors, &query, 5).unwrap();
for w in results.windows(2) {
assert!(w[0].1 >= w[1].1);
}
}