()
| 215 | |
| 216 | #[test] |
| 217 | fn top_k_truncation() { |
| 218 | let mut merger = VectorMerger::new(1); |
| 219 | merger.add_shard_result(&ShardSearchResult { |
| 220 | shard_id: 0, |
| 221 | hits: (0..100) |
| 222 | .map(|i| VectorHit { |
| 223 | vector_id: i, |
| 224 | distance: i as f32 * 0.01, |
| 225 | shard_id: 0, |
| 226 | doc_id: None, |
| 227 | }) |
| 228 | .collect(), |
| 229 | success: true, |
| 230 | error: None, |
| 231 | }); |
| 232 | |
| 233 | let top5 = merger.top_k(5); |
| 234 | assert_eq!(top5.len(), 5); |
| 235 | // Nearest 5 by distance. |
| 236 | for (i, hit) in top5.iter().enumerate() { |
| 237 | assert_eq!(hit.vector_id, i as u32); |
| 238 | } |
| 239 | } |
| 240 | |
| 241 | #[test] |
| 242 | fn over_fetch_no_filter() { |
nothing calls this directly
no test coverage detected