Module conformance

Source
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.
ConformanceReport
Full conformance result for one provider.

Enums§

Outcome
Result of one conformance check.

Functions§

box_at
Outward-oriented axis-aligned box.
run
Run every conformance obligation against provider.
volume
Enclosed volume by the divergence theorem.