summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandy.boot <bootandy@gmail.com>2024-04-28 11:30:26 +0100
committerandy.boot <bootandy@gmail.com>2024-04-28 11:30:26 +0100
commit65d2fd7f8d8e76b26c00ac5ce1d6de8e5b9bd4f4 (patch)
tree67aed4fa9c88b1918a3502a79aed2e51e23c9bc1
parente6851cb562f768943f125cb4fad132de38f5c0ec (diff)
fix: si detection - single digits are binaryfix_si
-rw-r--r--src/config.rs3
-rw-r--r--src/display.rs4
2 files changed, 5 insertions, 2 deletions
diff --git a/src/config.rs b/src/config.rs
index 5ea34da..afec281 100644
--- a/src/config.rs
+++ b/src/config.rs
@@ -185,7 +185,8 @@ mod tests {
assert_eq!(convert_min_size("95RUBBISH"), None);
assert_eq!(convert_min_size("10Ki"), Some(10 * 1024));
assert_eq!(convert_min_size("10MiB"), Some(10 * 1024usize.pow(2)));
- assert_eq!(convert_min_size("10M"), Some(10 * 1000usize.pow(2)));
+ assert_eq!(convert_min_size("10M"), Some(10 * 1024usize.pow(2)));
+ assert_eq!(convert_min_size("10Mb"), Some(10 * 1000usize.pow(2)));
assert_eq!(convert_min_size("2Gi"), Some(2 * 1024usize.pow(3)));
}
diff --git a/src/display.rs b/src/display.rs
index 154c985..ae03863 100644
--- a/src/display.rs
+++ b/src/display.rs
@@ -415,7 +415,7 @@ pub fn get_type_of_thousand(output_str: &str) -> u64 {
1024
} else if output_str == "si" {
1000
- } else if output_str.contains('i') {
+ } else if output_str.contains('i') || output_str.len() == 1 {
1024
} else {
1000
@@ -555,12 +555,14 @@ mod tests {
assert_eq!(human_readable_number(1024 * 100, "si"), "102K");
}
+ // Refer to https://en.wikipedia.org/wiki/Byte#Multiple-byte_units
#[test]
fn test_human_readable_number_kb() {
let hrn = human_readable_number;
assert_eq!(hrn(1023, "b"), "1023B");
assert_eq!(hrn(1000 * 1000, "bytes"), "1000000B");
assert_eq!(hrn(1023, "kb"), "1K");
+ assert_eq!(hrn(1023, "k"), "0K");
assert_eq!(hrn(1023, "kib"), "0K");
assert_eq!(hrn(1024, "kib"), "1K");
assert_eq!(hrn(1024 * 512, "kib"), "512K");