vortex_array/
test_harness.rs1use std::io::Write;
5
6use goldenfile::Mint;
7use goldenfile::differs::binary_diff;
8use itertools::Itertools;
9use vortex_error::VortexResult;
10
11use crate::LEGACY_SESSION;
12use crate::VortexSessionExecute;
13use crate::arrays::BoolArray;
14use crate::arrays::bool::BoolArrayExt;
15
16#[expect(clippy::unwrap_used)]
20pub fn check_metadata(name: &str, metadata: &[u8]) {
21 let mut mint = Mint::new("goldenfiles/");
22 let mut f = mint
23 .new_goldenfile_with_differ(name, Box::new(binary_diff))
24 .unwrap();
25 f.write_all(metadata).unwrap();
26}
27
28pub fn to_int_indices(indices_bits: BoolArray) -> VortexResult<Vec<u64>> {
30 let buffer = indices_bits.to_bit_buffer();
31 let mask = indices_bits.as_ref().validity()?.to_mask(
32 indices_bits.as_ref().len(),
33 &mut LEGACY_SESSION.create_execution_ctx(),
34 )?;
35 Ok(buffer
36 .iter()
37 .enumerate()
38 .filter_map(|(idx, v)| (v && mask.value(idx)).then_some(idx as u64))
39 .collect_vec())
40}