Duration to String enhanced with tests
Adds checks for if a bit in a u8 is set or clear
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
use std::time::Duration;
|
||||
use crate::duration_to_string::duration_to_string::duration_to_string;
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use super::*;
|
||||
use crate::duration_to_string::duration_to_string::*;
|
||||
|
||||
#[test]
|
||||
fn multi_duration_to_string() {
|
||||
let params: Vec<(&str, Duration, Option<bool>)> = vec![
|
||||
("1 second", Duration::from_secs(1), Some(false)),
|
||||
("4 seconds", Duration::from_secs(4), Some(false)),
|
||||
("1 minute", Duration::from_secs(SECONDS_IN_MINUTE as u64), Some(false)),
|
||||
("4 minutes", Duration::from_secs((SECONDS_IN_MINUTE * 4) as u64), Some(false)),
|
||||
("1 hour", Duration::from_secs(SECONDS_IN_HOUR as u64), Some(false)),
|
||||
("4 hours", Duration::from_secs((SECONDS_IN_HOUR * 4) as u64), Some(false)),
|
||||
("4 hours 5 minutes", Duration::from_secs((SECONDS_IN_HOUR * 4 + SECONDS_IN_MINUTE * 5) as u64), Some(false)),
|
||||
("1 day", Duration::from_secs(SECONDS_IN_DAY as u64), Some(false)),
|
||||
("0 days 0 hours 0 minutes 1 second", Duration::from_secs(1), Some(true)),
|
||||
("0 days 0 hours 0 minutes 4 seconds", Duration::from_secs(4), Some(true)),
|
||||
("0 days 0 hours 1 minute 0 seconds", Duration::from_secs(SECONDS_IN_MINUTE as u64), Some(true)),
|
||||
("0 days 0 hours 4 minutes 0 seconds", Duration::from_secs((SECONDS_IN_MINUTE * 4) as u64), Some(true)),
|
||||
("0 days 1 hour 0 minutes 0 seconds", Duration::from_secs(SECONDS_IN_HOUR as u64), Some(true)),
|
||||
("0 days 4 hours 0 minutes 0 seconds", Duration::from_secs((SECONDS_IN_HOUR * 4) as u64), Some(true)),
|
||||
("0 days 4 hours 5 minutes 0 seconds", Duration::from_secs((SECONDS_IN_HOUR * 4 + SECONDS_IN_MINUTE * 5) as u64), Some(true)),
|
||||
("1 day 0 hours 0 minutes 0 seconds", Duration::from_secs(SECONDS_IN_DAY as u64), Some(true)),
|
||||
("1 day 0 hours 0 minutes 1 second", Duration::from_secs((SECONDS_IN_DAY + 1) as u64), Some(true)),
|
||||
("1 second", Duration::from_secs(1), None),
|
||||
("4 seconds", Duration::from_secs(4), None),
|
||||
("1 minute", Duration::from_secs(SECONDS_IN_MINUTE as u64), None),
|
||||
("4 minutes", Duration::from_secs((SECONDS_IN_MINUTE * 4) as u64), None),
|
||||
("1 hour", Duration::from_secs(SECONDS_IN_HOUR as u64), None),
|
||||
("4 hours", Duration::from_secs((SECONDS_IN_HOUR * 4) as u64), None),
|
||||
("4 hours 5 minutes", Duration::from_secs((SECONDS_IN_HOUR * 4 + SECONDS_IN_MINUTE * 5) as u64), None),
|
||||
("1 day", Duration::from_secs(SECONDS_IN_DAY as u64), None),
|
||||
];
|
||||
|
||||
for (expected, actual, show) in params {
|
||||
assert_eq!(expected, duration_to_string(actual, show));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user