()
| 233 | |
| 234 | #[test] |
| 235 | fn test_struct_array_reader() { |
| 236 | let array_reader_1 = make_int32_page_reader(&[4], &[0, 1, 2, 3, 1], &[0, 1, 1, 1, 1], 3, 1); |
| 237 | |
| 238 | let array_reader_2 = make_int32_page_reader(&[3], &[0, 1, 3, 1, 2], &[0, 1, 1, 1, 1], 3, 1); |
| 239 | |
| 240 | let struct_type = ArrowType::Struct(Fields::from(vec![ |
| 241 | Field::new("f1", ArrowType::Int32, true), |
| 242 | Field::new("f2", ArrowType::Int32, true), |
| 243 | ])); |
| 244 | |
| 245 | let mut struct_array_reader = StructArrayReader::new( |
| 246 | struct_type, |
| 247 | vec![array_reader_1, array_reader_2], |
| 248 | 1, |
| 249 | 1, |
| 250 | true, |
| 251 | ); |
| 252 | |
| 253 | let struct_array = struct_array_reader.next_batch(5).unwrap(); |
| 254 | let struct_array = struct_array.as_struct(); |
| 255 | |
| 256 | assert_eq!(5, struct_array.len()); |
| 257 | assert_eq!( |
| 258 | vec![true, false, false, false, false], |
| 259 | (0..5) |
| 260 | .map(|idx| struct_array.is_null(idx)) |
| 261 | .collect::<Vec<bool>>() |
| 262 | ); |
| 263 | assert_eq!( |
| 264 | Some(vec![0, 1, 2, 3, 1].as_slice()), |
| 265 | struct_array_reader.get_def_levels() |
| 266 | ); |
| 267 | assert_eq!( |
| 268 | Some(vec![0, 1, 1, 1, 1].as_slice()), |
| 269 | struct_array_reader.get_rep_levels() |
| 270 | ); |
| 271 | } |
| 272 | |
| 273 | #[test] |
| 274 | fn test_struct_array_reader_list() { |
nothing calls this directly
no test coverage detected