Skip to content

Commit a7d2679

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

File tree

1 file changed

+39
-2
lines changed

1 file changed

+39
-2
lines changed

vortex-compute/src/expand/buffer.rs

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@ mod tests {
216216

217217
use super::*;
218218

219+
// Tests for Buffer<T>
219220
#[test]
220221
fn test_expand_scattered() {
221222
let buf = buffer![100u32, 200, 300];
@@ -278,7 +279,7 @@ mod tests {
278279
buf.expand(&mask);
279280
}
280281

281-
// Tests for &Buffer<T> impl
282+
// Tests for &Buffer<T>
282283
#[test]
283284
fn test_expand_ref_scattered() {
284285
let buf = buffer![100u32, 200, 300];
@@ -300,7 +301,7 @@ mod tests {
300301
assert_eq!(result, buffer![10u32, 20, 30]);
301302
}
302303

303-
// Tests for &mut BufferMut<T> impl
304+
// Tests for &mut BufferMut<T>
304305
#[test]
305306
fn test_expand_mut_scattered() {
306307
let mut buf = buffer_mut![100u32, 200, 300];
@@ -374,4 +375,40 @@ mod tests {
374375
let mask = Mask::from_iter([true, true, true, false]);
375376
(&mut buf).expand(&mask);
376377
}
378+
379+
#[test]
380+
fn test_expand_into_new_buffer() {
381+
let src = [10u32, 20, 30, 40, 50];
382+
// Alternating pattern with gaps: [T, F, T, F, T, F, T, F, T, F]
383+
let mask = Mask::from_iter([
384+
true, false, true, false, true, false, true, false, true, false,
385+
]);
386+
387+
let result = expand_into_new_buffer(&src, &mask);
388+
assert_eq!(result.len(), 10);
389+
assert_eq!(result.as_slice()[0], 10);
390+
assert_eq!(result.as_slice()[2], 20);
391+
assert_eq!(result.as_slice()[4], 30);
392+
assert_eq!(result.as_slice()[6], 40);
393+
assert_eq!(result.as_slice()[8], 50);
394+
}
395+
396+
#[test]
397+
fn test_scatter_into_slice_from() {
398+
let src = [1u32, 2, 3, 4, 5];
399+
let mut dest = vec![0u32; 8];
400+
let mask = Mask::from_iter([true, true, false, true, true, false, true, false]);
401+
402+
let mask_values = match &mask {
403+
Mask::Values(mv) => mv,
404+
_ => panic!("Expected Mask::Values"),
405+
};
406+
407+
scatter_into_slice_from(&src, &mut dest, mask_values);
408+
assert_eq!(dest[0], 1);
409+
assert_eq!(dest[1], 2);
410+
assert_eq!(dest[3], 3);
411+
assert_eq!(dest[4], 4);
412+
assert_eq!(dest[6], 5);
413+
}
377414
}

0 commit comments

Comments
 (0)