Skip to content

Commit

Permalink
Fix BooleanBufferBuilder::resize
Browse files Browse the repository at this point in the history
  • Loading branch information
tustvold committed Jan 16, 2022
1 parent bc506a7 commit c7396ff
Showing 1 changed file with 22 additions and 1 deletion.
23 changes: 22 additions & 1 deletion arrow/src/array/builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -372,7 +372,8 @@ impl BooleanBufferBuilder {
#[inline]
pub fn resize(&mut self, len: usize) {
let len_bytes = bit_util::ceil(len, 8);
self.buffer.resize(len_bytes, 0)
self.buffer.resize(len_bytes, 0);
self.len = len;
}

#[inline]
Expand Down Expand Up @@ -2939,6 +2940,26 @@ mod tests {
assert_eq!(arr1, arr2);
}

#[test]
fn test_boolean_array_builder_resize() {
let mut builder = BooleanBufferBuilder::new(20);
builder.append_n(4, true);
builder.append_n(7, false);
builder.append_n(2, true);
builder.resize(20);

assert_eq!(builder.len, 20);
assert_eq!(builder.buffer.as_slice(), &[0b00001111, 0b00011000, 0b00000000]);

builder.resize(5);
assert_eq!(builder.len, 5);
assert_eq!(builder.buffer.as_slice(), &[0b00001111]);

builder.append_n(4, true);
assert_eq!(builder.len, 9);
assert_eq!(builder.buffer.as_slice(), &[0b11101111, 0b00000001]);
}

#[test]
fn test_boolean_builder_increases_buffer_len() {
// 00000010 01001000
Expand Down

0 comments on commit c7396ff

Please sign in to comment.