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

Function test_alignment_struct

arrow-data/src/data.rs:2660–2695  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

2658
2659 #[test]
2660 fn test_alignment_struct() {
2661 let buffer = Buffer::from_vec(vec![1_i32, 2_i32, 3_i32]);
2662 let sliced = buffer.slice(1);
2663
2664 let child_data = ArrayData {
2665 data_type: DataType::Int32,
2666 len: 0,
2667 offset: 0,
2668 buffers: vec![buffer],
2669 child_data: vec![],
2670 nulls: None,
2671 };
2672
2673 let schema = DataType::Struct(Fields::from(vec![Field::new("a", DataType::Int32, false)]));
2674 let mut data = ArrayData {
2675 data_type: schema,
2676 len: 0,
2677 offset: 0,
2678 buffers: vec![],
2679 child_data: vec![child_data],
2680 nulls: None,
2681 };
2682 data.validate_full().unwrap();
2683
2684 // break alignment in child data
2685 data.child_data[0].buffers[0] = sliced;
2686 let err = data.validate().unwrap_err();
2687
2688 assert_eq!(
2689 err.to_string(),
2690 "Invalid argument error: Misaligned buffers[0] in array of type Int32, offset from expected alignment of 4 by 1"
2691 );
2692
2693 data.align_buffers();
2694 data.validate_full().unwrap();
2695 }
2696
2697 #[test]
2698 fn test_null_view_types() {

Callers

nothing calls this directly

Calls 4

validate_fullMethod · 0.80
align_buffersMethod · 0.80
sliceMethod · 0.45
validateMethod · 0.45

Tested by

no test coverage detected