46 lines
1.2 KiB
Rust
46 lines
1.2 KiB
Rust
|
|
#![allow(non_snake_case)]
|
||
|
|
|
||
|
|
macro_rules! test {
|
||
|
|
($($name:ident($value:expr, $expected:expr))*) => {
|
||
|
|
$(
|
||
|
|
#[test]
|
||
|
|
fn $name() {
|
||
|
|
let mut buffer = itoa::Buffer::new();
|
||
|
|
let s = buffer.format($value);
|
||
|
|
assert_eq!(s, $expected);
|
||
|
|
}
|
||
|
|
)*
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
test! {
|
||
|
|
test_u64_0(0u64, "0")
|
||
|
|
test_u64_half(u64::from(u32::MAX), "4294967295")
|
||
|
|
test_u64_max(u64::MAX, "18446744073709551615")
|
||
|
|
test_i64_min(i64::MIN, "-9223372036854775808")
|
||
|
|
|
||
|
|
test_i16_0(0i16, "0")
|
||
|
|
test_i16_min(i16::MIN, "-32768")
|
||
|
|
|
||
|
|
test_u128_0(0u128, "0")
|
||
|
|
test_u128_max(u128::MAX, "340282366920938463463374607431768211455")
|
||
|
|
test_i128_min(i128::MIN, "-170141183460469231731687303715884105728")
|
||
|
|
test_i128_max(i128::MAX, "170141183460469231731687303715884105727")
|
||
|
|
}
|
||
|
|
|
||
|
|
#[test]
|
||
|
|
fn test_max_str_len() {
|
||
|
|
use itoa::Integer as _;
|
||
|
|
|
||
|
|
assert_eq!(i8::MAX_STR_LEN, 4);
|
||
|
|
assert_eq!(u8::MAX_STR_LEN, 3);
|
||
|
|
assert_eq!(i16::MAX_STR_LEN, 6);
|
||
|
|
assert_eq!(u16::MAX_STR_LEN, 5);
|
||
|
|
assert_eq!(i32::MAX_STR_LEN, 11);
|
||
|
|
assert_eq!(u32::MAX_STR_LEN, 10);
|
||
|
|
assert_eq!(i64::MAX_STR_LEN, 20);
|
||
|
|
assert_eq!(u64::MAX_STR_LEN, 20);
|
||
|
|
assert_eq!(i128::MAX_STR_LEN, 40);
|
||
|
|
assert_eq!(u128::MAX_STR_LEN, 39);
|
||
|
|
}
|