| 457 | |
| 458 | #[test] |
| 459 | fn length_null_list_view() { |
| 460 | // Create a ListViewArray with nulls: [], null, [1, 2, 3, 4], [0] |
| 461 | let field = Arc::new(Field::new_list_field(DataType::Int32, true)); |
| 462 | let values = Int32Array::from(vec![1, 2, 3, 4, 0]); |
| 463 | let offsets = ScalarBuffer::from(vec![0i32, 0, 0, 4]); |
| 464 | let sizes = ScalarBuffer::from(vec![0i32, 0, 4, 1]); |
| 465 | let nulls = NullBuffer::from(vec![true, false, true, true]); |
| 466 | let list_array = ListViewArray::new(field, offsets, sizes, Arc::new(values), Some(nulls)); |
| 467 | |
| 468 | let result = length(&list_array).unwrap(); |
| 469 | let result = result.as_any().downcast_ref::<Int32Array>().unwrap(); |
| 470 | let expected: Int32Array = vec![Some(0), None, Some(4), Some(1)].into(); |
| 471 | assert_eq!(&expected, result); |
| 472 | } |
| 473 | |
| 474 | #[test] |
| 475 | fn length_null_large_list_view() { |