Expand description
Conformance suite every MeshBoolean provider must pass (ADR 0017 §6).
§Why this is library code, not a test file
Before this existed, all provider tests bound the concrete BoolmeshBoolean
type, so they tested that provider, not the contract. A second provider
inherited zero obligations. This suite is generic over impl MeshBoolean
and exported, so an out-of-tree provider can run the identical checks.
§Usage
let report = conformance::run(provider);
assert!(report.is_conformant(), "{report}");§What it does and does not prove
It checks contract obligations: operand algebra, admissibility, evidence,
empty-result handling, and determinism. It does not check that geometry is
numerically correct – that is what differential testing against
axiolid-reference’s oracle is for. A provider passing this suite is
well-behaved, not necessarily accurate.
§Skips are not passes
A provider may legitimately refuse work (Unsupported). Such a case is
recorded as Outcome::Skipped with its reason and reported separately,
so a provider cannot reach “conformant” by refusing everything: callers can
see exactly what was actually exercised.
Structs§
- Check
- One named obligation and how the provider answered it.
- Conformance
Report - Full conformance result for one provider.
Enums§
- Outcome
- Result of one conformance check.