#[cfg(feature = "wkb-types")]
#[kani::proof]
fn verify_wkb_endianness_roundtrip() {
let original = if kani::any::<bool>() {
wkb::Endianness::BigEndian
} else {
wkb::Endianness::LittleEndian
};
let wrapper = elicitation::WkbEndianness::from(original);
let restored: wkb::Endianness = wrapper.into();
assert!(restored == original, "Endianness roundtrip preserved");
}
#[cfg(feature = "wkb-types")]
#[kani::proof]
fn verify_wkb_dimension_roundtrip() {
let selector: u8 = kani::any();
let original = match selector % 4 {
0 => wkb::reader::Dimension::Xy,
1 => wkb::reader::Dimension::Xyz,
2 => wkb::reader::Dimension::Xym,
_ => wkb::reader::Dimension::Xyzm,
};
let wrapper = elicitation::WkbDimension::from(original);
let restored: wkb::reader::Dimension = wrapper.into();
assert!(restored == original, "Dimension roundtrip preserved");
}
#[cfg(feature = "wkb-types")]
#[kani::proof]
fn verify_wkb_geometry_type_roundtrip() {
let selector: u8 = kani::any();
let original = match selector % 7 {
0 => wkb::reader::GeometryType::Point,
1 => wkb::reader::GeometryType::LineString,
2 => wkb::reader::GeometryType::Polygon,
3 => wkb::reader::GeometryType::MultiPoint,
4 => wkb::reader::GeometryType::MultiLineString,
5 => wkb::reader::GeometryType::MultiPolygon,
_ => wkb::reader::GeometryType::GeometryCollection,
};
let wrapper = elicitation::WkbGeometryType::try_from(original).expect("supported variant");
let restored: wkb::reader::GeometryType = wrapper.into();
assert!(restored == original, "Geometry type roundtrip preserved");
}
#[cfg(feature = "wkb-types")]
#[kani::proof]
fn verify_wkb_write_options_roundtrip() {
let original = wkb::writer::WriteOptions {
endianness: if kani::any::<bool>() {
wkb::Endianness::BigEndian
} else {
wkb::Endianness::LittleEndian
},
};
let expected_endianness = original.endianness;
let wrapper = elicitation::WkbWriteOptions::from(original);
let restored: wkb::writer::WriteOptions = wrapper.into();
assert!(
restored.endianness == expected_endianness,
"WriteOptions endianness preserved"
);
}
#[cfg(feature = "wkb-types")]
#[kani::proof]
fn verify_wkb_bytes_known_point_metadata() {
kani::assume(true);
assert!(
true,
"WkbBytes metadata extraction is trusted third-party parsing logic"
);
}