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

Function test_unaligned

arrow-ipc/src/reader.rs:2986–3026  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

2984
2985 #[test]
2986 fn test_unaligned() {
2987 let batch = RecordBatch::try_from_iter(vec![(
2988 "i32",
2989 Arc::new(Int32Array::from(vec![1, 2, 3, 4])) as _,
2990 )])
2991 .unwrap();
2992
2993 let r#gen = IpcDataGenerator {};
2994 let mut dict_tracker = DictionaryTracker::new(false);
2995 let (_, encoded) = r#gen
2996 .encode(
2997 &batch,
2998 &mut dict_tracker,
2999 &Default::default(),
3000 &mut Default::default(),
3001 )
3002 .unwrap();
3003
3004 let message = root_as_message(&encoded.ipc_message).unwrap();
3005
3006 // Construct an unaligned buffer
3007 let mut buffer = MutableBuffer::with_capacity(encoded.arrow_data.len() + 1);
3008 buffer.push(0_u8);
3009 buffer.extend_from_slice(&encoded.arrow_data);
3010 let b = Buffer::from(buffer).slice(1);
3011 assert_ne!(b.as_ptr().align_offset(8), 0);
3012
3013 let ipc_batch = message.header_as_record_batch().unwrap();
3014 let roundtrip = RecordBatchDecoder::try_new(
3015 &b,
3016 ipc_batch,
3017 batch.schema(),
3018 &Default::default(),
3019 &message.version(),
3020 )
3021 .unwrap()
3022 .with_require_alignment(false)
3023 .read_record_batch()
3024 .unwrap();
3025 assert_eq!(batch, roundtrip);
3026 }
3027
3028 #[test]
3029 fn test_unaligned_throws_error_with_require_alignment() {

Callers

nothing calls this directly

Calls 13

defaultFunction · 0.85
root_as_messageFunction · 0.85
try_newFunction · 0.85
extend_from_sliceMethod · 0.80
read_record_batchMethod · 0.80
encodeMethod · 0.45
lenMethod · 0.45
pushMethod · 0.45
sliceMethod · 0.45
schemaMethod · 0.45

Tested by

no test coverage detected