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

Function test_with_values_field

arrow-array/src/builder/map_builder.rs:380–435  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

378
379 #[test]
380 fn test_with_values_field() {
381 let value_field = Arc::new(Field::new("bars", DataType::Int32, false));
382 let mut builder = MapBuilder::new(None, Int32Builder::new(), Int32Builder::new())
383 .with_values_field(value_field.clone());
384 builder.keys().append_value(1);
385 builder.values().append_value(2);
386 builder.append(true).unwrap();
387 builder.append(false).unwrap(); // This is fine as nullability refers to nullability of values
388 builder.keys().append_value(3);
389 builder.values().append_value(4);
390 builder.append(true).unwrap();
391 let map = builder.finish();
392
393 assert_eq!(map.len(), 3);
394 assert_eq!(
395 map.data_type(),
396 &DataType::Map(
397 Arc::new(Field::new(
398 "entries",
399 DataType::Struct(
400 vec![
401 Arc::new(Field::new("keys", DataType::Int32, false)),
402 value_field.clone()
403 ]
404 .into()
405 ),
406 false,
407 )),
408 false
409 )
410 );
411
412 builder.keys().append_value(5);
413 builder.values().append_value(6);
414 builder.append(true).unwrap();
415 let map = builder.finish();
416
417 assert_eq!(map.len(), 1);
418 assert_eq!(
419 map.data_type(),
420 &DataType::Map(
421 Arc::new(Field::new(
422 "entries",
423 DataType::Struct(
424 vec![
425 Arc::new(Field::new("keys", DataType::Int32, false)),
426 value_field
427 ]
428 .into()
429 ),
430 false,
431 )),
432 false
433 )
434 );
435 }
436
437 #[test]

Callers

nothing calls this directly

Calls 7

with_values_fieldMethod · 0.80
cloneMethod · 0.45
append_valueMethod · 0.45
keysMethod · 0.45
valuesMethod · 0.45
appendMethod · 0.45
finishMethod · 0.45

Tested by

no test coverage detected