File tree Expand file tree Collapse file tree
metrics-cache/src/section Expand file tree Collapse file tree Original file line number Diff line number Diff 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+ }
You can’t perform that action at this time.
0 commit comments