tests: use direct duration value comparisons for parse_duration tests

This commit is contained in:
2025-07-10 16:45:44 -05:00
parent b1ea1b3957
commit a6fe3995c5

View File

@@ -157,18 +157,23 @@ mod tests {
fn parse_composite() { fn parse_composite() {
assert_eq!( assert_eq!(
parse_duration("1y2mon3w4d5h6m7s"), parse_duration("1y2mon3w4d5h6m7s"),
Ok(Duration::hours(365 * 24 + 6) Ok(Duration::days(365)
+ Duration::hours(6) // leap year compensation
+ Duration::months(2) + Duration::months(2)
+ Duration::days(3 * 7 + 4) + Duration::weeks(3)
+ Duration::days(4)
+ Duration::hours(5) + Duration::hours(5)
+ Duration::minutes(6) + Duration::minutes(6)
+ Duration::seconds(7)) + Duration::seconds(7)),
"1y2mon3w4d5h6m7s"
); );
assert_eq!( assert_eq!(
parse_duration("19year33weeks4d9min"), parse_duration("19year33weeks4d9min"),
Ok(Duration::hours((365 * 24 + 6) * 19) Ok(Duration::days(365 * 19)
+ Duration::hours(6 * 19)
+ Duration::days(33 * 7 + 4) + Duration::days(33 * 7 + 4)
+ Duration::minutes(9)) + Duration::minutes(9)),
"19year33weeks4d9min"
); );
} }
@@ -190,49 +195,55 @@ mod tests {
#[test] #[test]
fn parse_month() { fn parse_month() {
assert_eq!(0, parse_duration("0mon").unwrap().num_minutes()); assert_eq!(Duration::zero(), parse_duration("0mon").unwrap());
assert_eq!(131490, parse_duration("3mon").unwrap().num_minutes()); assert_eq!(Duration::months(3), parse_duration("3mon").unwrap());
assert_eq!(-613620, parse_duration("-14mon").unwrap().num_minutes()); assert_eq!(Duration::months(-14), parse_duration("-14mon").unwrap());
assert_eq!(6311520, parse_duration("+144months").unwrap().num_minutes()); assert_eq!(Duration::months(144), parse_duration("+144months").unwrap());
} }
#[test] #[test]
fn parse_week() { fn parse_week() {
assert_eq!(parse_duration("0w"), Ok(Duration::zero())); assert_eq!(Duration::zero(), parse_duration("0w").unwrap());
assert_eq!(parse_duration("7w"), Ok(Duration::days(7 * 7))); assert_eq!(Duration::weeks(7), parse_duration("7w").unwrap());
assert_eq!(parse_duration("19week"), Ok(Duration::days(7 * 19))); assert_eq!(Duration::weeks(19), parse_duration("19week").unwrap());
assert_eq!(parse_duration("433weeks"), Ok(Duration::days(7 * 433))); assert_eq!(Duration::weeks(433), parse_duration("433weeks").unwrap());
} }
#[test] #[test]
fn parse_day() { fn parse_day() {
assert_eq!(parse_duration("0d"), Ok(Duration::zero())); assert_eq!(Duration::zero(), parse_duration("0d").unwrap());
assert_eq!(parse_duration("9d"), Ok(Duration::days(9))); assert_eq!(Duration::days(9), parse_duration("9d").unwrap());
assert_eq!(parse_duration("43day"), Ok(Duration::days(43))); assert_eq!(Duration::days(43), parse_duration("43day").unwrap());
assert_eq!(parse_duration("969days"), Ok(Duration::days(969))); assert_eq!(Duration::days(969), parse_duration("969days").unwrap());
} }
#[test] #[test]
fn parse_hour() { fn parse_hour() {
assert_eq!(parse_duration("0h"), Ok(Duration::zero())); assert_eq!(Duration::zero(), parse_duration("0h").unwrap());
assert_eq!(parse_duration("4h"), Ok(Duration::hours(4))); assert_eq!(Duration::hours(4), parse_duration("4h").unwrap());
assert_eq!(parse_duration("150hour"), Ok(Duration::hours(150))); assert_eq!(Duration::hours(150), parse_duration("150hour").unwrap());
assert_eq!(parse_duration("777hours"), Ok(Duration::hours(777))); assert_eq!(Duration::hours(777), parse_duration("777hours").unwrap());
} }
#[test] #[test]
fn parse_minute() { fn parse_minute() {
assert_eq!(parse_duration("0m"), Ok(Duration::zero())); assert_eq!(Duration::zero(), parse_duration("0m").unwrap());
assert_eq!(parse_duration("5m"), Ok(Duration::minutes(5))); assert_eq!(Duration::minutes(5), parse_duration("5m").unwrap());
assert_eq!(parse_duration("60min"), Ok(Duration::minutes(60))); assert_eq!(Duration::minutes(60), parse_duration("60min").unwrap());
assert_eq!(parse_duration("999minutes"), Ok(Duration::minutes(999))); assert_eq!(
Duration::minutes(999),
parse_duration("999minutes").unwrap()
);
} }
#[test] #[test]
fn parse_second() { fn parse_second() {
assert_eq!(parse_duration("0s"), Ok(Duration::zero())); assert_eq!(Duration::zero(), parse_duration("0s").unwrap());
assert_eq!(parse_duration("6s"), Ok(Duration::seconds(6))); assert_eq!(Duration::seconds(6), parse_duration("6s").unwrap());
assert_eq!(parse_duration("60sec"), Ok(Duration::minutes(1))); assert_eq!(Duration::minutes(1), parse_duration("60sec").unwrap());
assert_eq!(parse_duration("999seconds"), Ok(Duration::seconds(999))); assert_eq!(
Duration::seconds(999),
parse_duration("999seconds").unwrap()
);
} }
} }