jagua_rs/probs/spp/util/
assertions.rs1use 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}