MCPcopy Create free account
hub / github.com/apache/datafusion / test_align_array_dimensions

Function test_align_array_dimensions

datafusion/functions-nested/src/utils.rs:288–333  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

286 /// Only test internal functions, array-related sql functions will be tested in sqllogictest `array.slt`
287 #[test]
288 fn test_align_array_dimensions() {
289 let array1d_1: ArrayRef =
290 Arc::new(ListArray::from_iter_primitive::<Int64Type, _, _>(vec![
291 Some(vec![Some(1), Some(2), Some(3)]),
292 Some(vec![Some(4), Some(5)]),
293 ]));
294 let array1d_2: ArrayRef =
295 Arc::new(ListArray::from_iter_primitive::<Int64Type, _, _>(vec![
296 Some(vec![Some(6), Some(7), Some(8)]),
297 ]));
298
299 let array2d_1: ArrayRef = Arc::new(
300 SingleRowListArrayBuilder::new(Arc::clone(&array1d_1)).build_list_array(),
301 );
302 let array2d_2 = Arc::new(
303 SingleRowListArrayBuilder::new(Arc::clone(&array1d_2)).build_list_array(),
304 );
305
306 let res = align_array_dimensions::<i32>(vec![
307 array1d_1.to_owned(),
308 array2d_2.to_owned(),
309 ])
310 .unwrap();
311
312 let expected = as_list_array(&array2d_1).unwrap();
313 let expected_dim = datafusion_common::utils::list_ndims(array2d_1.data_type());
314 assert_ne!(as_list_array(&res[0]).unwrap(), expected);
315 assert_eq!(
316 datafusion_common::utils::list_ndims(res[0].data_type()),
317 expected_dim
318 );
319
320 let array3d_1: ArrayRef =
321 Arc::new(SingleRowListArrayBuilder::new(array2d_1).build_list_array());
322 let array3d_2: ArrayRef =
323 Arc::new(SingleRowListArrayBuilder::new(array2d_2).build_list_array());
324 let res = align_array_dimensions::<i32>(vec![array1d_1, array3d_2]).unwrap();
325
326 let expected = as_list_array(&array3d_1).unwrap();
327 let expected_dim = datafusion_common::utils::list_ndims(array3d_1.data_type());
328 assert_ne!(as_list_array(&res[0]).unwrap(), expected);
329 assert_eq!(
330 datafusion_common::utils::list_ndims(res[0].data_type()),
331 expected_dim
332 );
333 }
334}

Callers

nothing calls this directly

Calls 5

newFunction · 0.85
as_list_arrayFunction · 0.85
list_ndimsFunction · 0.85
build_list_arrayMethod · 0.80
data_typeMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…