use super::*;
#[test]
fn build_reproject_offsets_extracts_extra_bits() {
let fine_codes = vec![0b0000usize, 0b0100, 0b1000, 0b1100];
let pb_cells = vec![vec![0usize], vec![1], vec![2], vec![3]];
let dims = vec![4usize, 2];
let off = build_reproject_offsets(&fine_codes, &pb_cells, &dims, 0);
assert_eq!(off.len(), 2);
assert_eq!(off[0], vec![0, 1, 2, 3]);
assert!(off[1].is_empty());
}
#[test]
fn build_reproject_offsets_bounded_by_extra_bit_width() {
let fine_codes = vec![0b00000usize, 0b00111, 0b01000, 0b01011, 0b11111];
let pb_cells: Vec<Vec<usize>> = (0..5).map(|i| vec![i]).collect();
let dims = vec![5usize, 3];
let off = build_reproject_offsets(&fine_codes, &pb_cells, &dims, 0);
assert_eq!(off[0], vec![0, 0, 1, 1, 3]);
assert!(off[0].iter().all(|&x| x < 4));
}