Skip to content

Commit e0c1376

Browse files
committed
clean up tests
Signed-off-by: Alexander Droste <[email protected]>
1 parent 12da8f2 commit e0c1376

File tree

1 file changed

+55
-86
lines changed

1 file changed

+55
-86
lines changed

encodings/pco/src/pipeline.rs

Lines changed: 55 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -216,15 +216,14 @@ mod tests {
216216
const PAGE_SIZE: usize = 128;
217217

218218
#[rstest]
219-
#[case(50, 64)]
220-
#[case(100, 128)]
221-
#[case(1024, 1024)]
222-
#[case(1025, 512)]
223-
#[case(2048, 512)]
224-
#[case(3000, 1000)]
225-
#[case(5120, 256)]
226-
#[case(10000, 2048)]
227-
fn test_pco_pipeline_roundtrip(#[case] array_size: usize, #[case] page_size: usize) {
219+
#[case(50)]
220+
#[case(100)]
221+
#[case(1024)]
222+
#[case(1025)]
223+
#[case(2048)]
224+
#[case(3000)]
225+
#[case(5120)]
226+
fn test_pco_pipeline_roundtrip(#[case] array_size: usize) {
228227
let values: Vec<i32> = (0..array_size).map(|i| i32::try_from(i).unwrap()).collect();
229228
let primitive = PrimitiveArray::from_iter(values);
230229

@@ -240,29 +239,21 @@ mod tests {
240239
let result = pco_array.to_array().execute_with_selection(&mask).unwrap();
241240
assert_eq!(result.len(), array_size);
242241

243-
let pvector_i32 = result.as_primitive().into_i32();
244-
let elements = pvector_i32.elements().as_slice();
245-
246-
for idx in 0..array_size {
247-
assert_eq!(
248-
elements[idx],
249-
i32::try_from(idx).unwrap(),
250-
"Mismatch at index {} for array_size={}, page_size={}",
251-
idx,
252-
array_size,
253-
page_size
254-
);
255-
}
242+
let pvector = result.as_primitive().into_i32();
243+
let result_vec: Vec<i32> = pvector.elements().to_vec();
244+
let expected_vec: Vec<i32> = primitive.as_slice::<i32>().to_vec();
245+
assert_eq!(result_vec, expected_vec);
256246
}
257247

258248
#[rstest]
259-
#[case(50, 64)]
260-
#[case(100, 128)]
261-
#[case(1024, 1024)]
262-
#[case(1025, 512)]
263-
#[case(2048, 512)]
264-
#[case(3000, 1000)]
265-
fn test_pco_pipeline_with_mixed_mask(#[case] array_size: usize, #[case] page_size: usize) {
249+
#[case(50)]
250+
#[case(100)]
251+
#[case(1024)]
252+
#[case(1025)]
253+
#[case(2048)]
254+
#[case(3000)]
255+
#[case(5120)]
256+
fn test_pco_pipeline_with_mixed_mask(#[case] array_size: usize) {
266257
let values: Vec<i32> = (0..array_size).map(|i| i32::try_from(i).unwrap()).collect();
267258
let primitive = PrimitiveArray::from_iter(values);
268259

@@ -283,21 +274,23 @@ mod tests {
283274
assert_eq!(result.len(), expected_len);
284275
let pvector_i32 = result.as_primitive().into_i32();
285276

286-
for (idx, &value) in pvector_i32.elements().iter().enumerate() {
287-
let expected = i32::try_from(idx * 2).unwrap();
288-
assert_eq!(
289-
value, expected,
290-
"Mismatch at result index {} for array_size={}, page_size={}",
291-
idx, array_size, page_size
292-
);
293-
}
277+
let expected_values: Vec<i32> = (0..array_size)
278+
.filter(|i| i % 2 == 0)
279+
.map(|i| i32::try_from(i).unwrap())
280+
.collect();
281+
let result_vec: Vec<i32> = pvector_i32.elements().to_vec();
282+
assert_eq!(result_vec, expected_values);
294283
}
295284

296285
#[rstest]
297-
#[case(10, 64)]
298-
#[case(50, 128)]
299-
#[case(100, 256)]
300-
fn test_pco_pipeline_with_validity(#[case] array_size: usize, #[case] page_size: usize) {
286+
#[case(50)]
287+
#[case(100)]
288+
#[case(1024)]
289+
#[case(1025)]
290+
#[case(2048)]
291+
#[case(3000)]
292+
#[case(5120)]
293+
fn test_pco_pipeline_with_validity(#[case] array_size: usize) {
301294
// Create array with alternating null values: [0, null, 2, null, 4, null, ...]
302295
let values: Vec<Option<i32>> = (0..array_size)
303296
.map(|i| (i % 2 == 0).then(|| i32::try_from(i).unwrap()))
@@ -316,39 +309,27 @@ mod tests {
316309
let result = pco_array.to_array().execute_with_selection(&mask).unwrap();
317310
assert_eq!(result.len(), array_size);
318311

319-
let pvector_i32 = result.as_primitive().into_i32();
320-
let elements = pvector_i32.elements().as_slice();
321-
let validity = pvector_i32.validity();
322-
323-
for idx in 0..array_size {
324-
if idx % 2 == 0 {
325-
assert!(validity.value(idx), "Position {} should be valid", idx);
326-
assert_eq!(
327-
elements[idx],
328-
i32::try_from(idx).unwrap(),
329-
"Mismatch at valid position {} for array_size={}, page_size={}",
330-
idx,
331-
array_size,
332-
page_size
333-
);
334-
} else {
335-
assert!(!validity.value(idx), "Position {} should be null", idx);
336-
}
337-
}
312+
let pvector = result.as_primitive().into_i32();
313+
let result_slice = pvector.elements();
314+
let expected_slice = primitive.as_slice::<i32>();
315+
316+
assert_eq!(result_slice.as_slice(), expected_slice);
338317
}
339318

340319
#[rstest]
341-
#[case(100, 128, 10, 50)]
342-
#[case(100, 128, 0, 50)]
343-
#[case(100, 128, 50, 100)]
344-
#[case(256, 64, 20, 100)]
345-
#[case(512, 256, 100, 300)]
346-
#[case(1024, 256, 0, 256)]
347-
#[case(1024, 256, 512, 768)]
348-
#[case(1024, 256, 768, 1024)]
320+
#[case(100, 10, 50)]
321+
#[case(100, 0, 50)]
322+
#[case(100, 50, 100)]
323+
#[case(256, 20, 100)]
324+
#[case(512, 100, 300)]
325+
#[case(1024, 0, 256)]
326+
#[case(1024, 512, 768)]
327+
#[case(1024, 768, 1024)]
328+
#[case(4000, 0, 256)]
329+
#[case(4000, 512, 768)]
330+
#[case(4000, 768, 1024)]
349331
fn test_pco_pipeline_with_slice_offsets(
350332
#[case] array_size: usize,
351-
#[case] page_size: usize,
352333
#[case] slice_start: usize,
353334
#[case] slice_end: usize,
354335
) {
@@ -369,22 +350,10 @@ mod tests {
369350
let decompressed = sliced_pco_array.to_primitive();
370351
assert_eq!(decompressed.len(), slice_end - slice_start);
371352

372-
for (result_idx, &value) in decompressed.as_slice::<i32>().iter().enumerate() {
373-
let expected_idx = slice_start + result_idx;
374-
let expected_value = i32::try_from(expected_idx).unwrap();
375-
assert_eq!(
376-
value,
377-
expected_value,
378-
"Mismatch at result index {}: got {}, expected {} (original index {}) for array_size={}, page_size={}, slice=[{}..{}]",
379-
result_idx,
380-
value,
381-
expected_value,
382-
expected_idx,
383-
array_size,
384-
page_size,
385-
slice_start,
386-
slice_end
387-
);
388-
}
353+
let expected_values: Vec<i32> = (slice_start..slice_end)
354+
.map(|i| i32::try_from(i).unwrap())
355+
.collect();
356+
let result_slice = decompressed.as_slice::<i32>();
357+
assert_eq!(result_slice, expected_values.as_slice());
389358
}
390359
}

0 commit comments

Comments
 (0)