@@ -141,7 +141,7 @@ fn validate_demand_slices(
141141#[ cfg( test) ]
142142mod 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