#[cfg(feature = "rstar-types")]
#[kani::proof]
fn verify_rstar_aabb_roundtrip() {
let wrapper = elicitation::RstarAabb {
lower: [1.0_f64, 2.0_f64],
upper: [3.0_f64, 4.0_f64],
};
let inner: rstar::AABB<[f64; 2]> = wrapper.into();
let roundtrip = elicitation::RstarAabb::from(inner);
assert!(
roundtrip.lower == [1.0_f64, 2.0_f64],
"lower corner preserved"
);
assert!(
roundtrip.upper == [3.0_f64, 4.0_f64],
"upper corner preserved"
);
}
#[cfg(feature = "rstar-types")]
#[kani::proof]
fn verify_rstar_rectangle_roundtrip() {
let wrapper = elicitation::RstarRectangle {
lower: [0.0_f64, 1.0_f64],
upper: [2.0_f64, 3.0_f64],
};
let inner: rstar::primitives::Rectangle<[f64; 2]> = wrapper.into();
let roundtrip = elicitation::RstarRectangle::from(inner);
assert!(
roundtrip.lower == [0.0_f64, 1.0_f64],
"lower corner preserved"
);
assert!(
roundtrip.upper == [2.0_f64, 3.0_f64],
"upper corner preserved"
);
}
#[cfg(feature = "rstar-types")]
#[kani::proof]
fn verify_rstar_rectangle_envelope_bounds() {
let wrapper = elicitation::RstarRectangle {
lower: [1.0_f64, 2.0_f64],
upper: [4.0_f64, 6.0_f64],
};
let envelope = rstar::RTreeObject::envelope(&wrapper);
assert!(
envelope.lower() == [1.0_f64, 2.0_f64],
"envelope lower preserved"
);
assert!(
envelope.upper() == [4.0_f64, 6.0_f64],
"envelope upper preserved"
);
}
#[cfg(feature = "rstar-types")]
#[kani::proof]
fn verify_rstar_line_roundtrip() {
let wrapper = elicitation::RstarLine {
from: [5.0_f64, 1.0_f64],
to: [2.0_f64, 4.0_f64],
};
let inner: rstar::primitives::Line<[f64; 2]> = wrapper.into();
let roundtrip = elicitation::RstarLine::from(inner);
assert!(
roundtrip.from == [5.0_f64, 1.0_f64],
"start point preserved"
);
assert!(roundtrip.to == [2.0_f64, 4.0_f64], "end point preserved");
}
#[cfg(feature = "rstar-types")]
#[kani::proof]
fn verify_rstar_line_envelope_bounds() {
let wrapper = elicitation::RstarLine {
from: [5.0_f64, 1.0_f64],
to: [2.0_f64, 4.0_f64],
};
let envelope = rstar::RTreeObject::envelope(&wrapper);
assert!(
envelope.lower() == [2.0_f64, 1.0_f64],
"envelope lower normalized"
);
assert!(
envelope.upper() == [5.0_f64, 4.0_f64],
"envelope upper normalized"
);
}