Skip to content

Commit b318293

Browse files
Add BooleanArray tests for null and slice behavior (#9013)
This PR adds unit tests for BooleanArray to improve coverage of: - new_null behavior - Slicing behavior when null values are present There are no functional or API changes. Tests run: - cargo test -p arrow-array --------- Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
1 parent 240cbf4 commit b318293

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

arrow-array/src/array/boolean_array.rs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -829,4 +829,32 @@ mod tests {
829829
assert_eq!(values.values(), &[0b1000_0000]);
830830
assert!(nulls.is_none());
831831
}
832+
833+
#[test]
834+
fn test_new_null_array() {
835+
let arr = BooleanArray::new_null(5);
836+
837+
assert_eq!(arr.len(), 5);
838+
assert_eq!(arr.null_count(), 5);
839+
assert_eq!(arr.true_count(), 0);
840+
assert_eq!(arr.false_count(), 0);
841+
842+
for i in 0..5 {
843+
assert!(arr.is_null(i));
844+
assert!(!arr.is_valid(i));
845+
}
846+
}
847+
848+
#[test]
849+
fn test_slice_with_nulls() {
850+
let arr = BooleanArray::from(vec![Some(true), None, Some(false)]);
851+
let sliced = arr.slice(1, 2);
852+
853+
assert_eq!(sliced.len(), 2);
854+
assert_eq!(sliced.null_count(), 1);
855+
856+
assert!(sliced.is_null(0));
857+
assert!(sliced.is_valid(1));
858+
assert!(!sliced.value(1));
859+
}
832860
}

0 commit comments

Comments
 (0)