mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-29 12:07:46 +00:00
uucore: add more tests to parse_size
This commit is contained in:
parent
84f2bff778
commit
a3e047ff16
1 changed files with 18 additions and 14 deletions
|
@ -53,14 +53,14 @@ pub fn parse_size(size: &str) -> Result<usize, ParseSizeError> {
|
||||||
let (base, exponent): (u128, u32) = match unit {
|
let (base, exponent): (u128, u32) = match unit {
|
||||||
"" => (1, 0),
|
"" => (1, 0),
|
||||||
"b" => (512, 1), // (`head` and `tail` use "b")
|
"b" => (512, 1), // (`head` and `tail` use "b")
|
||||||
"KiB" | "K" | "k" => (1024, 1),
|
"KiB" | "kiB" | "K" | "k" => (1024, 1),
|
||||||
"MiB" | "M" | "m" => (1024, 2),
|
"MiB" | "miB" | "M" | "m" => (1024, 2),
|
||||||
"GiB" | "G" | "g" => (1024, 3),
|
"GiB" | "giB" | "G" | "g" => (1024, 3),
|
||||||
"TiB" | "T" | "t" => (1024, 4),
|
"TiB" | "tiB" | "T" | "t" => (1024, 4),
|
||||||
"PiB" | "P" | "p" => (1024, 5),
|
"PiB" | "piB" | "P" | "p" => (1024, 5),
|
||||||
"EiB" | "E" | "e" => (1024, 6),
|
"EiB" | "eiB" | "E" | "e" => (1024, 6),
|
||||||
"ZiB" | "Z" | "z" => (1024, 7),
|
"ZiB" | "ziB" | "Z" | "z" => (1024, 7),
|
||||||
"YiB" | "Y" | "y" => (1024, 8),
|
"YiB" | "yiB" | "Y" | "y" => (1024, 8),
|
||||||
"KB" | "kB" => (1000, 1),
|
"KB" | "kB" => (1000, 1),
|
||||||
"MB" | "mB" => (1000, 2),
|
"MB" | "mB" => (1000, 2),
|
||||||
"GB" | "gB" => (1000, 3),
|
"GB" | "gB" => (1000, 3),
|
||||||
|
@ -152,19 +152,23 @@ mod tests {
|
||||||
|
|
||||||
for &(c, exp) in &suffixes {
|
for &(c, exp) in &suffixes {
|
||||||
let s = format!("2{}B", c); // KB
|
let s = format!("2{}B", c); // KB
|
||||||
assert_eq!(Ok((2 * (1000 as u128).pow(exp)) as usize), parse_size(&s));
|
assert_eq!(Ok((2 * (1000_u128).pow(exp)) as usize), parse_size(&s));
|
||||||
let s = format!("2{}", c); // K
|
let s = format!("2{}", c); // K
|
||||||
assert_eq!(Ok((2 * (1024 as u128).pow(exp)) as usize), parse_size(&s));
|
assert_eq!(Ok((2 * (1024_u128).pow(exp)) as usize), parse_size(&s));
|
||||||
let s = format!("2{}iB", c); // KiB
|
let s = format!("2{}iB", c); // KiB
|
||||||
assert_eq!(Ok((2 * (1024 as u128).pow(exp)) as usize), parse_size(&s));
|
assert_eq!(Ok((2 * (1024_u128).pow(exp)) as usize), parse_size(&s));
|
||||||
|
let s = format!("2{}iB", c.to_lowercase()); // kiB
|
||||||
|
assert_eq!(Ok((2 * (1024_u128).pow(exp)) as usize), parse_size(&s));
|
||||||
|
|
||||||
// suffix only
|
// suffix only
|
||||||
let s = format!("{}B", c); // KB
|
let s = format!("{}B", c); // KB
|
||||||
assert_eq!(Ok(((1000 as u128).pow(exp)) as usize), parse_size(&s));
|
assert_eq!(Ok(((1000_u128).pow(exp)) as usize), parse_size(&s));
|
||||||
let s = format!("{}", c); // K
|
let s = format!("{}", c); // K
|
||||||
assert_eq!(Ok(((1024 as u128).pow(exp)) as usize), parse_size(&s));
|
assert_eq!(Ok(((1024_u128).pow(exp)) as usize), parse_size(&s));
|
||||||
let s = format!("{}iB", c); // KiB
|
let s = format!("{}iB", c); // KiB
|
||||||
assert_eq!(Ok(((1024 as u128).pow(exp)) as usize), parse_size(&s));
|
assert_eq!(Ok(((1024_u128).pow(exp)) as usize), parse_size(&s));
|
||||||
|
let s = format!("{}iB", c.to_lowercase()); // kiB
|
||||||
|
assert_eq!(Ok(((1024_u128).pow(exp)) as usize), parse_size(&s));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue