From 94374cf35969db742bd46661f0d8f5cb10c3eed5 Mon Sep 17 00:00:00 2001 From: Eric Sheppard Date: Thu, 9 Jun 2022 20:16:29 +1000 Subject: [PATCH] make sure add/sub_assign_local tests cross a DST transition if relevant --- src/datetime/tests.rs | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/datetime/tests.rs b/src/datetime/tests.rs index 362adbd79c..998c9068b4 100644 --- a/src/datetime/tests.rs +++ b/src/datetime/tests.rs @@ -433,13 +433,16 @@ fn test_datetime_add_assign() { #[test] #[cfg(feature = "clock")] fn test_datetime_add_assign_local() { - let naivedatetime = NaiveDate::from_ymd(2000, 1, 1).and_hms(0, 0, 0); + let naivedatetime = NaiveDate::from_ymd(2022, 1, 1).and_hms(0, 0, 0); let datetime = Local.from_utc_datetime(&naivedatetime); - let mut datetime_add = datetime; + let mut datetime_add = Local.from_utc_datetime(&naivedatetime); - datetime_add += Duration::seconds(60); - assert_eq!(datetime_add, datetime + Duration::seconds(60)); + // ensure we cross a DST transition + for i in 1..=365 { + datetime_add += Duration::days(1); + assert_eq!(datetime_add, datetime + Duration::days(i)) + } } #[test] @@ -467,11 +470,14 @@ fn test_datetime_sub_assign() { #[test] #[cfg(feature = "clock")] fn test_datetime_sub_assign_local() { - let naivedatetime = NaiveDate::from_ymd(2000, 1, 1).and_hms(12, 0, 0); + let naivedatetime = NaiveDate::from_ymd(2022, 1, 1).and_hms(0, 0, 0); let datetime = Local.from_utc_datetime(&naivedatetime); - let mut datetime_sub = datetime; + let mut datetime_sub = Local.from_utc_datetime(&naivedatetime); - datetime_sub -= Duration::minutes(90); - assert_eq!(datetime_sub, datetime - Duration::minutes(90)); + // ensure we cross a DST transition + for i in 1..=365 { + datetime_sub -= Duration::days(1); + assert_eq!(datetime_sub, datetime - Duration::days(i)) + } }