jagua_rs/probs/spp/util/
assertions.rs

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