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