in safetensors/src/tensor.rs [991:1007]
fn test_roundtrip(metadata in arbitrary_metadata()) {
let data: Vec<u8> = (0..data_size(&metadata)).map(|x| x as u8).collect();
let before = SafeTensors { metadata, data: &data };
let tensors = before.tensors();
let bytes = serialize(tensors.iter().map(|(name, view)| (name.to_string(), view)), None).unwrap();
let after = SafeTensors::deserialize(&bytes).unwrap();
// Check that the tensors are the same after deserialization.
assert_eq!(before.names().len(), after.names().len());
for name in before.names() {
let tensor_before = before.tensor(name).unwrap();
let tensor_after = after.tensor(name).unwrap();
assert_eq!(tensor_after.data().as_ptr() as usize % tensor_after.dtype().bitsize().div_ceil(8), 0);
assert_eq!(tensor_before, tensor_after);
}
}