pub fn parse_duration(duration: &str) -> Result<Quantity, ParsingError>
Expand description

Parse a duration

extern crate nyx_space as nyx;

use nyx::io::quantity::parse_duration;
use std::f64::EPSILON;

assert!((parse_duration("1 * days").unwrap().v() - 86_400.0).abs() < EPSILON);
assert!((parse_duration("1 days").unwrap().v() - 86_400.0).abs() < EPSILON);
assert!((parse_duration("1* day").unwrap().v() - 86_400.0).abs() < EPSILON);
assert!((parse_duration("1 *d").unwrap().v() - 86_400.0).abs() < EPSILON);
assert!((parse_duration("1 * h").unwrap().v() - 3_600.0).abs() < EPSILON);
assert!((parse_duration("1 h").unwrap().v() - 3_600.0).abs() < EPSILON);
assert!((parse_duration("1.0000 * hour").unwrap().v() - 3_600.0).abs() < EPSILON);
assert!((parse_duration("1.0000 * hours").unwrap().v() - 3_600.0).abs() < EPSILON);
assert!((parse_duration("1.0 * min").unwrap().v() - 60.0).abs() < EPSILON);
assert!((parse_duration("1. * s").unwrap().v() - 1.0).abs() < EPSILON);
assert!((parse_duration("1 * s").unwrap().v() - 1.0).abs() < EPSILON);
assert!((parse_duration("1 s").unwrap().v() - 1.0).abs() < EPSILON);