Skip to content

Commit ad6ae19

Browse files
committed
tests
Signed-off-by: Alexander Droste <[email protected]>
1 parent 18e1219 commit ad6ae19

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

vortex-compute/src/expand/buffer.rs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,4 +374,40 @@ mod tests {
374374
let mask = Mask::from_iter([true, true, true, false]);
375375
(&mut buf).expand(&mask);
376376
}
377+
378+
#[test]
379+
fn test_expand_into_new_buffer() {
380+
let src = [10u32, 20, 30, 40, 50];
381+
// Alternating pattern with gaps: [T, F, T, F, T, F, T, F, T, F]
382+
let mask = Mask::from_iter([
383+
true, false, true, false, true, false, true, false, true, false,
384+
]);
385+
386+
let result = expand_into_new_buffer(&src, &mask);
387+
assert_eq!(result.len(), 10);
388+
assert_eq!(result.as_slice()[0], 10);
389+
assert_eq!(result.as_slice()[2], 20);
390+
assert_eq!(result.as_slice()[4], 30);
391+
assert_eq!(result.as_slice()[6], 40);
392+
assert_eq!(result.as_slice()[8], 50);
393+
}
394+
395+
#[test]
396+
fn test_scatter_into_slice_from() {
397+
let src = [1u32, 2, 3, 4, 5];
398+
let mut dest = vec![0u32; 8];
399+
let mask = Mask::from_iter([true, true, false, true, true, false, true, false]);
400+
401+
let mask_values = match &mask {
402+
Mask::Values(mv) => mv,
403+
_ => panic!("Expected Mask::Values"),
404+
};
405+
406+
scatter_into_slice_from(&src, &mut dest, mask_values);
407+
assert_eq!(dest[0], 1);
408+
assert_eq!(dest[1], 2);
409+
assert_eq!(dest[3], 3);
410+
assert_eq!(dest[4], 4);
411+
assert_eq!(dest[6], 5);
412+
}
377413
}

0 commit comments

Comments
 (0)