Add integer serialization tests
Add some negative integer unit tests and remove the TODO. Note, this is not really that necessary because we are going to move to using the stdlib `to_le_bytes` methods so we don't really need any of these test except to test that we are calling the correct be/le method. They do no harm however.
This commit is contained in:
parent
a8f9e8ad96
commit
08e4b28dd0
|
@ -1009,14 +1009,31 @@ mod tests {
|
||||||
let failure16: Result<u16, _> = deserialize(&[1u8]);
|
let failure16: Result<u16, _> = deserialize(&[1u8]);
|
||||||
assert!(failure16.is_err());
|
assert!(failure16.is_err());
|
||||||
|
|
||||||
|
// i16
|
||||||
|
assert_eq!(deserialize(&[0x32_u8, 0xF4]).ok(), Some(-0x0bce_i16));
|
||||||
|
assert_eq!(deserialize(&[0xFF_u8, 0xFE]).ok(), Some(-0x0101_i16));
|
||||||
|
assert_eq!(deserialize(&[0x00_u8, 0x00]).ok(), Some(-0_i16));
|
||||||
|
assert_eq!(deserialize(&[0xFF_u8, 0xFA]).ok(), Some(-0x0501_i16));
|
||||||
|
|
||||||
// u32
|
// u32
|
||||||
assert_eq!(deserialize(&[0xABu8, 0xCD, 0, 0]).ok(), Some(0xCDABu32));
|
assert_eq!(deserialize(&[0xABu8, 0xCD, 0, 0]).ok(), Some(0xCDABu32));
|
||||||
assert_eq!(deserialize(&[0xA0u8, 0x0D, 0xAB, 0xCD]).ok(), Some(0xCDAB0DA0u32));
|
assert_eq!(deserialize(&[0xA0u8, 0x0D, 0xAB, 0xCD]).ok(), Some(0xCDAB0DA0u32));
|
||||||
|
|
||||||
let failure32: Result<u32, _> = deserialize(&[1u8, 2, 3]);
|
let failure32: Result<u32, _> = deserialize(&[1u8, 2, 3]);
|
||||||
assert!(failure32.is_err());
|
assert!(failure32.is_err());
|
||||||
// TODO: test negative numbers
|
|
||||||
|
// i32
|
||||||
assert_eq!(deserialize(&[0xABu8, 0xCD, 0, 0]).ok(), Some(0xCDABi32));
|
assert_eq!(deserialize(&[0xABu8, 0xCD, 0, 0]).ok(), Some(0xCDABi32));
|
||||||
assert_eq!(deserialize(&[0xA0u8, 0x0D, 0xAB, 0x2D]).ok(), Some(0x2DAB0DA0i32));
|
assert_eq!(deserialize(&[0xA0u8, 0x0D, 0xAB, 0x2D]).ok(), Some(0x2DAB0DA0i32));
|
||||||
|
|
||||||
|
assert_eq!(deserialize(&[0, 0, 0, 0]).ok(), Some(-0_i32));
|
||||||
|
assert_eq!(deserialize(&[0, 0, 0, 0]).ok(), Some(0_i32));
|
||||||
|
|
||||||
|
assert_eq!(deserialize(&[0xFF, 0xFF, 0xFF, 0xFF]).ok(), Some(-1_i32));
|
||||||
|
assert_eq!(deserialize(&[0xFE, 0xFF, 0xFF, 0xFF]).ok(), Some(-2_i32));
|
||||||
|
assert_eq!(deserialize(&[0x01, 0xFF, 0xFF, 0xFF]).ok(), Some(-255_i32));
|
||||||
|
assert_eq!(deserialize(&[0x02, 0xFF, 0xFF, 0xFF]).ok(), Some(-254_i32));
|
||||||
|
|
||||||
let failurei32: Result<i32, _> = deserialize(&[1u8, 2, 3]);
|
let failurei32: Result<i32, _> = deserialize(&[1u8, 2, 3]);
|
||||||
assert!(failurei32.is_err());
|
assert!(failurei32.is_err());
|
||||||
|
|
||||||
|
@ -1025,11 +1042,18 @@ mod tests {
|
||||||
assert_eq!(deserialize(&[0xA0u8, 0x0D, 0xAB, 0xCD, 0x99, 0, 0, 0x99]).ok(), Some(0x99000099CDAB0DA0u64));
|
assert_eq!(deserialize(&[0xA0u8, 0x0D, 0xAB, 0xCD, 0x99, 0, 0, 0x99]).ok(), Some(0x99000099CDAB0DA0u64));
|
||||||
let failure64: Result<u64, _> = deserialize(&[1u8, 2, 3, 4, 5, 6, 7]);
|
let failure64: Result<u64, _> = deserialize(&[1u8, 2, 3, 4, 5, 6, 7]);
|
||||||
assert!(failure64.is_err());
|
assert!(failure64.is_err());
|
||||||
// TODO: test negative numbers
|
|
||||||
|
// i64
|
||||||
assert_eq!(deserialize(&[0xABu8, 0xCD, 0, 0, 0, 0, 0, 0]).ok(), Some(0xCDABi64));
|
assert_eq!(deserialize(&[0xABu8, 0xCD, 0, 0, 0, 0, 0, 0]).ok(), Some(0xCDABi64));
|
||||||
assert_eq!(deserialize(&[0xA0u8, 0x0D, 0xAB, 0xCD, 0x99, 0, 0, 0x99]).ok(), Some(-0x66ffff663254f260i64));
|
assert_eq!(deserialize(&[0xA0u8, 0x0D, 0xAB, 0xCD, 0x99, 0, 0, 0x99]).ok(), Some(-0x66ffff663254f260i64));
|
||||||
|
assert_eq!(deserialize(&[0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]).ok(), Some(-1_i64));
|
||||||
|
assert_eq!(deserialize(&[0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]).ok(), Some(-2_i64));
|
||||||
|
assert_eq!(deserialize(&[0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]).ok(), Some(-255_i64));
|
||||||
|
assert_eq!(deserialize(&[0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]).ok(), Some(-254_i64));
|
||||||
|
|
||||||
let failurei64: Result<i64, _> = deserialize(&[1u8, 2, 3, 4, 5, 6, 7]);
|
let failurei64: Result<i64, _> = deserialize(&[1u8, 2, 3, 4, 5, 6, 7]);
|
||||||
assert!(failurei64.is_err());
|
assert!(failurei64.is_err());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -1145,6 +1169,5 @@ mod tests {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue