use wasm4pm_compat::law::SoundnessState;
use wasm4pm_compat::petri::{SeparableWfNet, WfNetConst};
#[test]
fn declaring_separable_preserves_the_unknown_soundness_state() {
let net = WfNetConst::<{ SoundnessState::Unknown }>::new();
let sep = SeparableWfNet::declare_separable(net);
assert_eq!(
sep.net.soundness_state(),
SoundnessState::Unknown,
"separability is orthogonal to soundness — state preserved"
);
}
#[test]
fn declaring_separable_preserves_a_claimed_state() {
let claimed = WfNetConst::<{ SoundnessState::Unknown }>::new().claim_sound();
let sep = SeparableWfNet::declare_separable(claimed);
assert_eq!(
sep.net.soundness_state(),
SoundnessState::Claimed,
"a claimed-but-unproven net stays Claimed after separability declaration"
);
}