()
| 8431 | |
| 8432 | #[test] |
| 8433 | fn test_lists_in_struct() { |
| 8434 | let field_a = Arc::new(Field::new("A", DataType::Utf8, false)); |
| 8435 | let field_primitive_list = Arc::new(Field::new( |
| 8436 | "primitive_list", |
| 8437 | DataType::List(Arc::new(Field::new_list_field(DataType::Int32, true))), |
| 8438 | false, |
| 8439 | )); |
| 8440 | |
| 8441 | // Define primitive list scalars |
| 8442 | let l0 = |
| 8443 | ScalarValue::List(Arc::new( |
| 8444 | ListArray::from_iter_primitive::<Int32Type, _, _>(vec![Some(vec![ |
| 8445 | Some(1), |
| 8446 | Some(2), |
| 8447 | Some(3), |
| 8448 | ])]), |
| 8449 | )); |
| 8450 | let l1 = |
| 8451 | ScalarValue::List(Arc::new( |
| 8452 | ListArray::from_iter_primitive::<Int32Type, _, _>(vec![Some(vec![ |
| 8453 | Some(4), |
| 8454 | Some(5), |
| 8455 | ])]), |
| 8456 | )); |
| 8457 | let l2 = ScalarValue::List(Arc::new(ListArray::from_iter_primitive::< |
| 8458 | Int32Type, |
| 8459 | _, |
| 8460 | _, |
| 8461 | >(vec![Some(vec![Some(6)])]))); |
| 8462 | |
| 8463 | // Define struct scalars |
| 8464 | let s0 = ScalarValue::from(vec![ |
| 8465 | ("A", ScalarValue::from("First")), |
| 8466 | ("primitive_list", l0), |
| 8467 | ]); |
| 8468 | |
| 8469 | let s1 = ScalarValue::from(vec![ |
| 8470 | ("A", ScalarValue::from("Second")), |
| 8471 | ("primitive_list", l1), |
| 8472 | ]); |
| 8473 | |
| 8474 | let s2 = ScalarValue::from(vec![ |
| 8475 | ("A", ScalarValue::from("Third")), |
| 8476 | ("primitive_list", l2), |
| 8477 | ]); |
| 8478 | |
| 8479 | // iter_to_array for struct scalars |
| 8480 | let array = |
| 8481 | ScalarValue::iter_to_array(vec![s0.clone(), s1.clone(), s2.clone()]).unwrap(); |
| 8482 | |
| 8483 | let array = as_struct_array(&array).unwrap(); |
| 8484 | let expected = StructArray::from(vec![ |
| 8485 | ( |
| 8486 | Arc::clone(&field_a), |
| 8487 | Arc::new(StringArray::from(vec!["First", "Second", "Third"])) as ArrayRef, |
| 8488 | ), |
| 8489 | ( |
| 8490 | Arc::clone(&field_primitive_list), |
nothing calls this directly
no test coverage detected
searching dependent graphs…