use frankensearch_core::SearchResult;
use std::path::PathBuf;
use std::fs;
use crate::{VectorIndex, TwoTierConfig, Quantization};
use std::time::{SystemTime, UNIX_EPOCH};
fn temp_index_path(name: &str) -> PathBuf {
let now = SystemTime::now()
.duration_since(UNIX_EPOCH)
.unwrap_or_default()
.as_nanos();
std::env::temp_dir().join(format!("test-wal-shadow-{name}-{now}"))
}
#[test]
fn stale_main_entry_leaks() {
let path = temp_index_path("stale-leak");
let mut writer = VectorIndex::create_with_revision(&path, "test", "r1", 2, Quantization::F32).unwrap();
writer.write_record("doc-a", &[1.0, 0.0]).unwrap();
writer.finish().unwrap();
let mut index = VectorIndex::open(&path).unwrap();
index.append("doc-a", &[0.0, 1.0]).unwrap();
let hits = index.search_top_k(&[1.0, 0.0], 1, None).unwrap();
assert_eq!(hits[0].score, 0.0, "Expected score 0.0 from WAL entry, but got leaked score {}", hits[0].score);
}