mirror of
https://github.com/bootandy/dust.git
synced 2026-06-08 11:29:05 +03:00
fix: bug: Si detection was backwards.
kB - means kilobyte 10**3 KiB - means kibibyte 1024 / 2**10 https://en.wikipedia.org/wiki/Byte#Multiple-byte_units
This commit is contained in:
+8
-8
@@ -183,23 +183,23 @@ mod tests {
|
|||||||
assert_eq!(convert_min_size("55"), Some(55));
|
assert_eq!(convert_min_size("55"), Some(55));
|
||||||
assert_eq!(convert_min_size("12344321"), Some(12344321));
|
assert_eq!(convert_min_size("12344321"), Some(12344321));
|
||||||
assert_eq!(convert_min_size("95RUBBISH"), None);
|
assert_eq!(convert_min_size("95RUBBISH"), None);
|
||||||
assert_eq!(convert_min_size("10K"), Some(10 * 1024));
|
assert_eq!(convert_min_size("10Ki"), Some(10 * 1024));
|
||||||
assert_eq!(convert_min_size("10M"), Some(10 * 1024usize.pow(2)));
|
assert_eq!(convert_min_size("10MiB"), Some(10 * 1024usize.pow(2)));
|
||||||
assert_eq!(convert_min_size("10MiB"), Some(10 * 1000usize.pow(2)));
|
assert_eq!(convert_min_size("10M"), Some(10 * 1000usize.pow(2)));
|
||||||
assert_eq!(convert_min_size("2G"), Some(2 * 1024usize.pow(3)));
|
assert_eq!(convert_min_size("2Gi"), Some(2 * 1024usize.pow(3)));
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_min_size_from_config_applied_or_overridden() {
|
fn test_min_size_from_config_applied_or_overridden() {
|
||||||
let c = Config {
|
let c = Config {
|
||||||
min_size: Some("1K".to_owned()),
|
min_size: Some("1KiB".to_owned()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
};
|
};
|
||||||
assert_eq!(c._get_min_size(None), Some(1024));
|
assert_eq!(c._get_min_size(None), Some(1024));
|
||||||
assert_eq!(c._get_min_size(Some(&"2K".into())), Some(2048));
|
assert_eq!(c._get_min_size(Some(&"2KiB".into())), Some(2048));
|
||||||
|
|
||||||
assert_eq!(c._get_min_size(Some(&"1kib".into())), Some(1000));
|
assert_eq!(c._get_min_size(Some(&"1kb".into())), Some(1000));
|
||||||
assert_eq!(c._get_min_size(Some(&"2KiB".into())), Some(2000));
|
assert_eq!(c._get_min_size(Some(&"2KB".into())), Some(2000));
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|||||||
+15
-12
@@ -411,11 +411,14 @@ fn get_pretty_name(
|
|||||||
|
|
||||||
// If we are working with SI units or not
|
// If we are working with SI units or not
|
||||||
pub fn get_type_of_thousand(output_str: &str) -> u64 {
|
pub fn get_type_of_thousand(output_str: &str) -> u64 {
|
||||||
let is_si = output_str.contains('i'); // si, KiB, MiB, etc
|
if output_str.is_empty() {
|
||||||
if is_si {
|
|
||||||
1000
|
|
||||||
} else {
|
|
||||||
1024
|
1024
|
||||||
|
} else if output_str == "si" {
|
||||||
|
1000
|
||||||
|
} else if output_str.contains('i') {
|
||||||
|
1024
|
||||||
|
} else {
|
||||||
|
1000
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -557,14 +560,14 @@ mod tests {
|
|||||||
let hrn = human_readable_number;
|
let hrn = human_readable_number;
|
||||||
assert_eq!(hrn(1023, "b"), "1023B");
|
assert_eq!(hrn(1023, "b"), "1023B");
|
||||||
assert_eq!(hrn(1000 * 1000, "bytes"), "1000000B");
|
assert_eq!(hrn(1000 * 1000, "bytes"), "1000000B");
|
||||||
assert_eq!(hrn(1023, "kb"), "0K");
|
assert_eq!(hrn(1023, "kb"), "1K");
|
||||||
assert_eq!(hrn(1023, "kib"), "1K");
|
assert_eq!(hrn(1023, "kib"), "0K");
|
||||||
assert_eq!(hrn(1024, "kb"), "1K");
|
assert_eq!(hrn(1024, "kib"), "1K");
|
||||||
assert_eq!(hrn(1024 * 512, "kb"), "512K");
|
assert_eq!(hrn(1024 * 512, "kib"), "512K");
|
||||||
assert_eq!(hrn(1024 * 1024, "kb"), "1024K");
|
assert_eq!(hrn(1024 * 1024, "kib"), "1024K");
|
||||||
assert_eq!(hrn(1024 * 1000 * 1000 * 20, "kb"), "20000000K");
|
assert_eq!(hrn(1024 * 1000 * 1000 * 20, "kib"), "20000000K");
|
||||||
assert_eq!(hrn(1024 * 1024 * 1000 * 20, "mb"), "20000M");
|
assert_eq!(hrn(1024 * 1024 * 1000 * 20, "mib"), "20000M");
|
||||||
assert_eq!(hrn(1024 * 1024 * 1024 * 20, "gb"), "20G");
|
assert_eq!(hrn(1024 * 1024 * 1024 * 20, "gib"), "20G");
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
|
|||||||
Reference in New Issue
Block a user