MCPcopy Create free account
hub / github.com/apache/arrow-rs / test_struct_array_reader

Function test_struct_array_reader

parquet/src/arrow/array_reader/struct_array.rs:235–271  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

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() {

Callers

nothing calls this directly

Calls 3

make_int32_page_readerFunction · 0.85
as_structMethod · 0.80
next_batchMethod · 0.45

Tested by

no test coverage detected