()
| 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 | } |
nothing calls this directly
no test coverage detected
searching dependent graphs…