MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / distance_non_negative_finite

Function distance_non_negative_finite

nodedb-codec/src/vector_quant/bbq.rs:430–454  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

428
429 #[test]
430 fn distance_non_negative_finite() {
431 let dim = 32;
432 let vecs: Vec<Vec<f32>> = (0..8).map(|i| rand_vec(i, dim)).collect();
433 let refs: Vec<&[f32]> = vecs.iter().map(|v| v.as_slice()).collect();
434 let codec = BbqCodec::calibrate(&refs, dim, 3);
435
436 for i in 0..vecs.len() {
437 for j in 0..vecs.len() {
438 let qi = codec.encode(&vecs[i]);
439 let qj = codec.encode(&vecs[j]);
440 let sym = codec.fast_symmetric_distance(&qi, &qj);
441 assert!(
442 sym.is_finite() && sym >= 0.0,
443 "fast_symmetric_distance({i},{j}) = {sym}"
444 );
445
446 let query = codec.prepare_query(&vecs[i]);
447 let asym = codec.exact_asymmetric_distance(&query, &qj);
448 assert!(
449 asym.is_finite() && asym >= 0.0,
450 "exact_asymmetric_distance({i},{j}) = {asym}"
451 );
452 }
453 }
454 }
455
456 #[test]
457 fn oversample_default_is_three() {

Callers

nothing calls this directly

Calls 9

collectMethod · 0.80
rand_vecFunction · 0.70
iterMethod · 0.45
as_sliceMethod · 0.45
lenMethod · 0.45
encodeMethod · 0.45
prepare_queryMethod · 0.45

Tested by

no test coverage detected