in math/src/field/f128/tests.rs [196:233]
fn read_elements_from() {
let bytes: Vec<u8> = vec![
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
];
let expected = vec![
BaseElement::new(1),
BaseElement::new(2),
BaseElement::new(3),
BaseElement::new(4),
];
// fill whole target
let mut reader = SliceReader::new(&bytes[..64]);
let result = BaseElement::read_batch_from(&mut reader, 4);
assert!(result.is_ok());
assert_eq!(expected, result.unwrap());
assert_eq!(false, reader.has_more_bytes());
// partial number of elements
let mut reader = SliceReader::new(&bytes[..65]);
let result = BaseElement::read_batch_from(&mut reader, 4);
assert!(result.is_ok());
assert_eq!(expected, result.unwrap());
assert_eq!(true, reader.has_more_bytes());
// invalid element
let mut reader = SliceReader::new(&bytes[16..]);
let result = BaseElement::read_batch_from(&mut reader, 4);
assert!(result.is_err());
match result {
Err(err) => {
assert!(matches!(err, DeserializationError::InvalidValue(_)));
}
_ => (),
}
}