()
| 450 | |
| 451 | #[test] |
| 452 | fn distance_non_negative_finite() { |
| 453 | let dim = 64; |
| 454 | let vecs: Vec<Vec<f32>> = (0..8).map(|i| random_vec(i as u64, dim)).collect(); |
| 455 | let refs: Vec<&[f32]> = vecs.iter().map(|v| v.as_slice()).collect(); |
| 456 | let codec = RaBitQCodec::calibrate(&refs, dim, 7); |
| 457 | let v1 = codec.encode(&random_vec(100, dim)); |
| 458 | let v2 = codec.encode(&random_vec(200, dim)); |
| 459 | let sym = codec.fast_symmetric_distance(&v1, &v2); |
| 460 | assert!(sym.is_finite() && sym >= 0.0, "sym distance: {sym}"); |
| 461 | let q = codec.prepare_query(&random_vec(300, dim)); |
| 462 | let asym = codec.exact_asymmetric_distance(&q, &v2); |
| 463 | assert!(asym.is_finite() && asym >= 0.0, "asym distance: {asym}"); |
| 464 | } |
| 465 | |
| 466 | #[test] |
| 467 | fn calibrate_identical_vectors_zero_residual() { |
nothing calls this directly
no test coverage detected