use core::time::Duration;
use humfmt::{duration, DurationOptions, Humanize};
#[test]
fn formats_zero_duration() {
assert_eq!(duration(Duration::ZERO).to_string(), "0s");
}
#[test]
fn formats_compound_durations() {
assert_eq!(duration(Duration::from_secs(3661)).to_string(), "1h 1m");
assert_eq!(duration(Duration::from_secs(90061)).to_string(), "1d 1h");
}
#[test]
fn formats_subsecond_durations() {
assert_eq!(
duration(Duration::from_millis(1500)).to_string(),
"1s 500ms"
);
assert_eq!(
duration(Duration::from_nanos(1_500)).to_string(),
"1us 500ns"
);
}
#[test]
fn supports_long_units() {
let opts = DurationOptions::new().long_units();
assert_eq!(
humfmt::duration_with(Duration::from_millis(1500), opts).to_string(),
"1 second 500 milliseconds"
);
}
#[test]
fn supports_max_unit_override() {
let opts = DurationOptions::new().max_units(3);
assert_eq!(
humfmt::duration_with(Duration::from_secs(3665), opts).to_string(),
"1h 1m 5s"
);
}
#[test]
fn supports_extension_trait_usage() {
assert_eq!(
Duration::from_secs(90).human_duration().to_string(),
"1m 30s"
);
}