()
| 391 | |
| 392 | #[test] |
| 393 | fn encode_decode_roundtrip() { |
| 394 | let vecs = make_clustered_data(); |
| 395 | let refs: Vec<&[f32]> = vecs.iter().map(|v| v.as_slice()).collect(); |
| 396 | let codec = PqCodec::train(&refs, 4, 2, 16, 10); |
| 397 | |
| 398 | for v in &vecs { |
| 399 | let code = codec.encode(v); |
| 400 | assert_eq!(code.len(), 2); // M=2 bytes |
| 401 | let decoded = codec.decode(&code).unwrap(); |
| 402 | assert_eq!(decoded.len(), 4); |
| 403 | } |
| 404 | } |
| 405 | |
| 406 | #[test] |
| 407 | fn distance_table_gives_correct_ordering() { |