Skip to content

Commit e6261a7

Browse files
committed
demand_slicing.rs: Check actual error messages in tests
1 parent 87e59d0 commit e6261a7

1 file changed

Lines changed: 75 additions & 57 deletions

File tree

src/input/commodity/demand_slicing.rs

Lines changed: 75 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ fn validate_demand_slices(
141141
#[cfg(test)]
142142
mod tests {
143143
use super::*;
144-
use crate::fixture::{commodity_ids, time_slice_info};
144+
use crate::fixture::{assert_error, commodity_ids, time_slice_info};
145145
use rstest::{fixture, rstest};
146146
use std::iter;
147147

@@ -301,13 +301,15 @@ mod tests {
301301
time_slice_info: TimeSliceInfo,
302302
) {
303303
// Empty CSV file
304-
assert!(read_demand_slices_from_iter(
305-
iter::empty(),
306-
&commodity_ids,
307-
&region_ids,
308-
&time_slice_info,
309-
)
310-
.is_err());
304+
assert_error!(
305+
read_demand_slices_from_iter(
306+
iter::empty(),
307+
&commodity_ids,
308+
&region_ids,
309+
&time_slice_info,
310+
),
311+
"Demand slice missing for time slice winter.day (commodity: commodity1, region GBR)"
312+
);
311313
}
312314

313315
#[rstest]
@@ -323,13 +325,15 @@ mod tests {
323325
time_slice: "winter.day".into(),
324326
fraction: 1.0,
325327
};
326-
assert!(read_demand_slices_from_iter(
327-
iter::once(demand_slice.clone()),
328-
&commodity_ids,
329-
&region_ids,
330-
&time_slice_info,
331-
)
332-
.is_err());
328+
assert_error!(
329+
read_demand_slices_from_iter(
330+
iter::once(demand_slice.clone()),
331+
&commodity_ids,
332+
&region_ids,
333+
&time_slice_info,
334+
),
335+
"Can only provide demand slice data for SVD commodities. Found entry for 'commodity2'"
336+
);
333337
}
334338

335339
#[rstest]
@@ -345,13 +349,15 @@ mod tests {
345349
time_slice: "winter.day".into(),
346350
fraction: 1.0,
347351
};
348-
assert!(read_demand_slices_from_iter(
349-
iter::once(demand_slice.clone()),
350-
&commodity_ids,
351-
&region_ids,
352-
&time_slice_info,
353-
)
354-
.is_err());
352+
assert_error!(
353+
read_demand_slices_from_iter(
354+
iter::once(demand_slice.clone()),
355+
&commodity_ids,
356+
&region_ids,
357+
&time_slice_info,
358+
),
359+
"Unknown ID FRA found"
360+
);
355361
}
356362

357363
#[rstest]
@@ -367,13 +373,15 @@ mod tests {
367373
time_slice: "summer".into(),
368374
fraction: 1.0,
369375
};
370-
assert!(read_demand_slices_from_iter(
371-
iter::once(demand_slice.clone()),
372-
&commodity_ids,
373-
&region_ids,
374-
&time_slice_info,
375-
)
376-
.is_err());
376+
assert_error!(
377+
read_demand_slices_from_iter(
378+
iter::once(demand_slice.clone()),
379+
&commodity_ids,
380+
&region_ids,
381+
&time_slice_info,
382+
),
383+
"'summer' is not a valid season"
384+
);
377385
}
378386

379387
#[rstest]
@@ -410,13 +418,15 @@ mod tests {
410418
time_slice: "winter".into(),
411419
fraction: 1.0,
412420
};
413-
assert!(read_demand_slices_from_iter(
414-
iter::once(demand_slice.clone()),
415-
&commodity_ids,
416-
&region_ids,
417-
&time_slice_info,
418-
)
419-
.is_err());
421+
assert_error!(
422+
read_demand_slices_from_iter(
423+
iter::once(demand_slice.clone()),
424+
&commodity_ids,
425+
&region_ids,
426+
&time_slice_info,
427+
),
428+
"Demand slice missing for time slice summer.day (commodity: commodity1, region GBR)"
429+
);
420430
}
421431

422432
#[rstest]
@@ -432,13 +442,16 @@ mod tests {
432442
time_slice: "winter.day".into(),
433443
fraction: 0.5,
434444
};
435-
assert!(read_demand_slices_from_iter(
436-
iter::repeat_n(demand_slice.clone(), 2),
437-
&commodity_ids,
438-
&region_ids,
439-
&time_slice_info,
440-
)
441-
.is_err());
445+
assert_error!(
446+
read_demand_slices_from_iter(
447+
iter::repeat_n(demand_slice.clone(), 2),
448+
&commodity_ids,
449+
&region_ids,
450+
&time_slice_info,
451+
),
452+
"Duplicate demand slicing entry (or same time slice covered by more than one entry) \
453+
(commodity: commodity1, region: GBR, time slice: winter.day)"
454+
);
442455
}
443456

444457
#[rstest]
@@ -460,13 +473,16 @@ mod tests {
460473
time_slice: "winter".into(),
461474
fraction: 0.5,
462475
};
463-
assert!(read_demand_slices_from_iter(
464-
[demand_slice, demand_slice_season].into_iter(),
465-
&commodity_ids,
466-
&region_ids,
467-
&time_slice_info,
468-
)
469-
.is_err());
476+
assert_error!(
477+
read_demand_slices_from_iter(
478+
[demand_slice, demand_slice_season].into_iter(),
479+
&commodity_ids,
480+
&region_ids,
481+
&time_slice_info,
482+
),
483+
"Duplicate demand slicing entry (or same time slice covered by more than one entry) \
484+
(commodity: commodity1, region: GBR, time slice: winter.day)"
485+
);
470486
}
471487

472488
#[rstest]
@@ -482,12 +498,14 @@ mod tests {
482498
time_slice: "winter".into(),
483499
fraction: 0.5,
484500
};
485-
assert!(read_demand_slices_from_iter(
486-
iter::once(demand_slice),
487-
&commodity_ids,
488-
&region_ids,
489-
&time_slice_info,
490-
)
491-
.is_err());
501+
assert_error!(
502+
read_demand_slices_from_iter(
503+
iter::once(demand_slice),
504+
&commodity_ids,
505+
&region_ids,
506+
&time_slice_info,
507+
),
508+
"Invalid demand fractions"
509+
);
492510
}
493511
}

0 commit comments

Comments
 (0)