jagua_rs/probs/spp/util/
assertions.rs

1use crate::entities::Item;
2use crate::probs::spp::entities::{SPProblem, SPSolution};
3use crate::util::assertions::layouts_match;
4
5pub fn problem_matches_solution(spp: &SPProblem, sol: &SPSolution) -> bool {
6    let SPSolution {
7        strip,
8        layout_snapshot,
9        time_stamp: _,
10    } = sol;
11
12    assert_eq!(*strip, spp.strip);
13    assert_eq!(spp.density(), sol.density(&spp.instance));
14    assert!(layouts_match(&spp.layout, layout_snapshot));
15
16    true
17}
18
19pub fn instance_item_ids_correct(items: &[(Item, usize)]) -> bool {
20    items
21        .iter()
22        .enumerate()
23        .all(|(i, (item, _qty))| item.id == i)
24}