summaryrefslogtreecommitdiff
path: root/rust/schist_models
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2024-12-04 23:00:05 +0000
committerJoe Carstairs <me@joeac.net>2024-12-05 08:32:53 +0000
commitd6492ede69d5dc001ef90f94528e1bf222c52c4a (patch)
tree11528ca23bf7b8b30e8066a162a9d15cc0642a12 /rust/schist_models
parenta675c5f68b42f1cef7574287451f91ecbc1288fb (diff)
Tests first_day_in_month() methods
Diffstat (limited to 'rust/schist_models')
-rw-r--r--rust/schist_models/src/date_utc.rs173
1 files changed, 166 insertions, 7 deletions
diff --git a/rust/schist_models/src/date_utc.rs b/rust/schist_models/src/date_utc.rs
index d3a1d2e..2b36ec0 100644
--- a/rust/schist_models/src/date_utc.rs
+++ b/rust/schist_models/src/date_utc.rs
@@ -372,17 +372,176 @@ mod test {
}
#[test]
- fn test_first_day_in_month() {
- todo!();
+ fn when_any_date_in_2024_then_first_day_in_month_is_correct() {
+ let jan_1_2024: DateUtc = "2024-01-01".parse().unwrap();
+ for date in get_dates_in_jan_2024() {
+ assert_eq!(jan_1_2024, date.first_day_in_month());
+ }
+
+ let feb_1_2024: DateUtc = "2024-02-01".parse().unwrap();
+ for date in get_dates_in_feb_2024() {
+ assert_eq!(feb_1_2024, date.first_day_in_month());
+ }
+
+ let mar_1_2024: DateUtc = "2024-03-01".parse().unwrap();
+ for date in get_dates_in_mar_2024() {
+ assert_eq!(mar_1_2024, date.first_day_in_month());
+ }
+
+ let apr_1_2024: DateUtc = "2024-04-01".parse().unwrap();
+ for date in get_dates_in_apr_2024() {
+ assert_eq!(apr_1_2024, date.first_day_in_month());
+ }
+
+ let may_1_2024: DateUtc = "2024-05-01".parse().unwrap();
+ for date in get_dates_in_may_2024() {
+ assert_eq!(may_1_2024, date.first_day_in_month());
+ }
+
+ let jun_1_2024: DateUtc = "2024-06-01".parse().unwrap();
+ for date in get_dates_in_jun_2024() {
+ assert_eq!(jun_1_2024, date.first_day_in_month());
+ }
+
+ let jul_1_2024: DateUtc = "2024-07-01".parse().unwrap();
+ for date in get_dates_in_jul_2024() {
+ assert_eq!(jul_1_2024, date.first_day_in_month());
+ }
+
+ let aug_1_2024: DateUtc = "2024-08-01".parse().unwrap();
+ for date in get_dates_in_aug_2024() {
+ assert_eq!(aug_1_2024, date.first_day_in_month());
+ }
+
+ let sep_1_2024: DateUtc = "2024-09-01".parse().unwrap();
+ for date in get_dates_in_sep_2024() {
+ assert_eq!(sep_1_2024, date.first_day_in_month());
+ }
+
+ let oct_1_2024: DateUtc = "2024-10-01".parse().unwrap();
+ for date in get_dates_in_oct_2024() {
+ assert_eq!(oct_1_2024, date.first_day_in_month());
+ }
+
+ let nov_1_2024: DateUtc = "2024-11-01".parse().unwrap();
+ for date in get_dates_in_nov_2024() {
+ assert_eq!(nov_1_2024, date.first_day_in_month());
+ }
+
+ let dec_1_2024: DateUtc = "2024-12-01".parse().unwrap();
+ for date in get_dates_in_dec_2024() {
+ assert_eq!(dec_1_2024, date.first_day_in_month());
+ }
}
#[test]
- fn test_first_day_in_next_month() {
- todo!();
+ fn when_any_date_in_2024_then_first_day_in_next_month_is_correct() {
+ let feb_1_2024: DateUtc = "2024-02-01".parse().unwrap();
+ for date in get_dates_in_jan_2024() {
+ assert_eq!(feb_1_2024, date.first_day_in_next_month());
+ }
+
+ let mar_1_2024: DateUtc = "2024-03-01".parse().unwrap();
+ for date in get_dates_in_feb_2024() {
+ assert_eq!(mar_1_2024, date.first_day_in_next_month());
+ }
+
+ let apr_1_2024: DateUtc = "2024-04-01".parse().unwrap();
+ for date in get_dates_in_mar_2024() {
+ assert_eq!(apr_1_2024, date.first_day_in_next_month());
+ }
+
+ let may_1_2024: DateUtc = "2024-05-01".parse().unwrap();
+ for date in get_dates_in_apr_2024() {
+ assert_eq!(may_1_2024, date.first_day_in_next_month());
+ }
+
+ let jun_1_2024: DateUtc = "2024-06-01".parse().unwrap();
+ for date in get_dates_in_may_2024() {
+ assert_eq!(jun_1_2024, date.first_day_in_next_month());
+ }
+
+ let jul_1_2024: DateUtc = "2024-07-01".parse().unwrap();
+ for date in get_dates_in_jun_2024() {
+ assert_eq!(jul_1_2024, date.first_day_in_next_month());
+ }
+
+ let aug_1_2024: DateUtc = "2024-08-01".parse().unwrap();
+ for date in get_dates_in_jul_2024() {
+ assert_eq!(aug_1_2024, date.first_day_in_next_month());
+ }
+
+ let sep_1_2024: DateUtc = "2024-09-01".parse().unwrap();
+ for date in get_dates_in_aug_2024() {
+ assert_eq!(sep_1_2024, date.first_day_in_next_month());
+ }
+
+ let oct_1_2024: DateUtc = "2024-10-01".parse().unwrap();
+ for date in get_dates_in_sep_2024() {
+ assert_eq!(oct_1_2024, date.first_day_in_next_month());
+ }
+
+ let nov_1_2024: DateUtc = "2024-11-01".parse().unwrap();
+ for date in get_dates_in_oct_2024() {
+ assert_eq!(nov_1_2024, date.first_day_in_next_month());
+ }
+
+ let dec_1_2024: DateUtc = "2024-12-01".parse().unwrap();
+ for date in get_dates_in_nov_2024() {
+ assert_eq!(dec_1_2024, date.first_day_in_next_month());
+ }
+
+ let jan_1_2025: DateUtc = "2025-01-01".parse().unwrap();
+ for date in get_dates_in_dec_2024() {
+ assert_eq!(jan_1_2025, date.first_day_in_next_month());
+ }
}
- #[test]
- fn test_days_in_month() {
- todo!();
+ fn get_dates_in_jan_2024() -> Vec<DateUtc> {
+ (1..31).map(|day| format!("2024-01-{:02}", day).parse::<DateUtc>().unwrap()).collect::<Vec<DateUtc>>()
+ }
+
+ fn get_dates_in_feb_2024() -> Vec<DateUtc> {
+ (1..29).map(|day| format!("2024-02-{:02}", day).parse::<DateUtc>().unwrap()).collect::<Vec<DateUtc>>()
+ }
+
+ fn get_dates_in_mar_2024() -> Vec<DateUtc> {
+ (1..31).map(|day| format!("2024-03-{:02}", day).parse::<DateUtc>().unwrap()).collect::<Vec<DateUtc>>()
+ }
+
+ fn get_dates_in_apr_2024() -> Vec<DateUtc> {
+ (1..30).map(|day| format!("2024-04-{:02}", day).parse::<DateUtc>().unwrap()).collect::<Vec<DateUtc>>()
+ }
+
+ fn get_dates_in_may_2024() -> Vec<DateUtc> {
+ (1..31).map(|day| format!("2024-05-{:02}", day).parse::<DateUtc>().unwrap()).collect::<Vec<DateUtc>>()
+ }
+
+ fn get_dates_in_jun_2024() -> Vec<DateUtc> {
+ (1..30).map(|day| format!("2024-06-{:02}", day).parse::<DateUtc>().unwrap()).collect::<Vec<DateUtc>>()
+ }
+
+ fn get_dates_in_jul_2024() -> Vec<DateUtc> {
+ (1..31).map(|day| format!("2024-07-{:02}", day).parse::<DateUtc>().unwrap()).collect::<Vec<DateUtc>>()
+ }
+
+ fn get_dates_in_aug_2024() -> Vec<DateUtc> {
+ (1..31).map(|day| format!("2024-08-{:02}", day).parse::<DateUtc>().unwrap()).collect::<Vec<DateUtc>>()
+ }
+
+ fn get_dates_in_sep_2024() -> Vec<DateUtc> {
+ (1..30).map(|day| format!("2024-09-{:02}", day).parse::<DateUtc>().unwrap()).collect::<Vec<DateUtc>>()
+ }
+
+ fn get_dates_in_oct_2024() -> Vec<DateUtc> {
+ (1..31).map(|day| format!("2024-10-{:02}", day).parse::<DateUtc>().unwrap()).collect::<Vec<DateUtc>>()
+ }
+
+ fn get_dates_in_nov_2024() -> Vec<DateUtc> {
+ (1..30).map(|day| format!("2024-11-{:02}", day).parse::<DateUtc>().unwrap()).collect::<Vec<DateUtc>>()
+ }
+
+ fn get_dates_in_dec_2024() -> Vec<DateUtc> {
+ (1..31).map(|day| format!("2024-12-{:02}", day).parse::<DateUtc>().unwrap()).collect::<Vec<DateUtc>>()
}
}