macro_rules! duration_test {
($($name:ident: $duration:expr, $rough:expr, $precise:expr,)+) => {
$(#[test]
fn $name() {
let ht = HumanTime::from($duration);
let rough = ht.to_text_en(Accuracy::Rough, Tense::Present);
let precise = ht.to_text_en(Accuracy::Precise, Tense::Present);
assert_eq!($rough, rough);
assert_eq!($precise, precise);
})+
}
}
#[cfg(test)]
mod duration {
use std::time::Duration;
use time_humanize::{Accuracy, HumanTime, Tense};
duration_test! {
now: Duration::from_secs(0), "now", "0 seconds",
plus_1s: Duration::from_secs(1), "now", "1 second",
plus_5s: Duration::from_secs(5), "now", "5 seconds",
plus_15s: Duration::from_secs(15), "15 seconds", "15 seconds",
plus_95s: Duration::from_secs(95), "2 minutes", "1 minute and 35 seconds",
plus_125s: Duration::from_secs(125), "2 minutes", "2 minutes and 5 seconds",
plus_31m: Duration::from_secs(60 * 31), "31 minutes", "31 minutes",
plus_45m: Duration::from_secs(60 * 45), "45 minutes", "45 minutes",
plus_46m: Duration::from_secs(60 * 46), "an hour", "46 minutes",
}
}