Skip to content

Commit b45f2ed

Browse files
committed
metrics-cache parse_quantity: add tests
CMK-36936
1 parent 79d79c8 commit b45f2ed

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

metrics-cache/src/section/common.rs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,3 +58,35 @@ pub fn parse_quantity(quantity: &str) -> Option<f64> {
5858
}
5959
}
6060
}
61+
62+
#[cfg(test)]
63+
mod tests {
64+
use super::*;
65+
66+
#[test]
67+
fn parse_quantity_binary_units() {
68+
assert_eq!(parse_quantity("1Ki"), Some(1024.0));
69+
assert_eq!(parse_quantity("2Mi"), Some(2.0 * 1024.0 * 1024.0));
70+
}
71+
72+
#[test]
73+
fn parse_quantity_small_si_units() {
74+
assert_eq!(parse_quantity("3G"), Some(3.0 * 1e9));
75+
assert_eq!(parse_quantity("3u"), Some(3.0 * 1e-6));
76+
assert_eq!(parse_quantity("4n"), Some(4.0 * 1e-9));
77+
}
78+
79+
#[test]
80+
fn parse_quantity_bare_numbers() {
81+
assert_eq!(parse_quantity("1"), Some(1.0));
82+
assert_eq!(parse_quantity("2.2"), Some(2.2));
83+
}
84+
85+
#[test]
86+
fn parse_quantity_invalid_is_none() {
87+
assert!(parse_quantity("hello").is_none());
88+
assert!(parse_quantity("").is_none());
89+
assert!(parse_quantity(" 45").is_none());
90+
assert!(parse_quantity("Ki").is_none());
91+
}
92+
}

0 commit comments

Comments
 (0)