Skip to content

Commit f71a57e

Browse files
committed
Test changing boolean kernels to use new bit op function
1 parent 9308e61 commit f71a57e

File tree

3 files changed

+13
-4
lines changed

3 files changed

+13
-4
lines changed

arrow-buffer/src/buffer/immutable.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1013,7 +1013,8 @@ mod tests {
10131013

10141014
let assert_preserved = |offset: usize, len: usize| {
10151015
let new_buf = buf.bit_slice(offset, len);
1016-
assert_eq!(new_buf.len(), bit_util::ceil(len, 8));
1016+
println!("assert_preserved: offset: {offset}, len: {len}, new_buf_len: {}", new_buf.len());
1017+
assert_eq!(new_buf.len(), bit_util::ceil(len, 8), "Expected len {} but got {}", bit_util::ceil(len, 8), new_buf.len());
10171018

10181019
// if the offset is not byte-aligned, we have to create a deep copy to a new buffer
10191020
// (since the `offset` value inside a Buffer is byte-granular, not bit-granular), so
@@ -1034,6 +1035,7 @@ mod tests {
10341035
for l in (o..=64).map(|l| l - o) {
10351036
// and we just want to make sure every one of these keeps its offset and length
10361037
// when neeeded
1038+
println!("testing offset {o}, len {l}");
10371039
assert_preserved(o, l);
10381040
}
10391041
}

arrow-buffer/src/buffer/ops.rs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,8 @@ pub fn bitwise_bin_op_helper<F>(
7272
where
7373
F: FnMut(u64, u64) -> u64,
7474
{
75-
let mut result = left.as_slice().to_vec();
75+
let len_bytes = ceil(len_in_bits + left_offset_in_bits, 8);
76+
let mut result = left[0..len_bytes].to_vec();
7677
bitwise_binary_op(
7778
&mut result,
7879
left_offset_in_bits,
@@ -96,7 +97,13 @@ pub fn bitwise_unary_op_helper<F>(
9697
where
9798
F: FnMut(u64) -> u64,
9899
{
99-
let mut result = left.to_vec();
100+
println!("------ bitwise_unary_op_helper ----");
101+
println!("offset_in_bits: {}", offset_in_bits);
102+
println!("len_in_bits: {}", len_in_bits);
103+
let len_bytes = ceil(len_in_bits + offset_in_bits, 8);
104+
println!("len_bytes: {}", len_bytes);
105+
106+
let mut result = left[0..len_bytes].to_vec();
100107

101108
bitwise_unary_op(&mut result, offset_in_bits, len_in_bits, op);
102109
result.into()

arrow-buffer/src/util/bit_util.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -503,7 +503,7 @@ impl<'a> U64UnalignedSlice<'a> {
503503
// 1. Prepare the buffers
504504
let left_buffer_mut: &mut [u8] = {
505505
let last_offset = self::ceil(offset_in_bits + len_in_bits, 8);
506-
assert!(last_offset <= buffer.len());
506+
assert!(last_offset <= buffer.len(), "last_offset {last_offset} exceeds buffer length {}", buffer.len());
507507

508508
let byte_offset = offset_in_bits / 8;
509509

0 commit comments

Comments
 (0)