checkSampleEvidenceFloor

Measure samples and refuse a list too thin for QuiltedConformanceSuite's laws to have tested anything — fewer than DISTINCT_SAMPLE_FLOOR values distinct by ==.

Separate from the suite, and public, for the reason us.tractat.kuilt.conformance.lattice.LatticeLawHarness.checkVacuityFloors is: a floor that lives only inside a @Test method can be rigged only by subclassing the suite, and a subclass of a suite is itself a test class the framework discovers and runs — so the rig would fail the build it is trying to document. SampleEvidenceFloorRigs in this module's commonTest calls this function, and the suite's QuiltedConformanceSuite.samplesMeetTheEvidenceFloor is a delegation to it. A binding that composes rather than subclasses can check its own list the same way.

Distinct means distinct by ==, and for this suite that is not a choice between two readings — it is the only relation available. Every assertion in QuiltedConformanceSuite compares with ==, so two samples that are == are literally interchangeable in every one of them and the second contributes no comparison the first did not already make. The obvious alternative, distinctness by encoded bytes, is not merely a stricter reading here — it is unavailable: Quilted carries no serializer, and this suite has no codec in it anywhere. It is also not the same measurement, which is worth being explicit about rather than assuming the two agree: the sibling's codec pass counts distinct states and distinct encodings as two separate numbers precisely because a type whose equals is coarser than its wire form is legitimate, and an injectivity law relating them was considered and rejected on those grounds (#2342). A binding whose samples differ only in bytes is, to the four laws here, one sample — so == is not a weaker floor than bytes would be, it is the floor that describes what these laws can see.

Counted in O(n²) against a growing list, deliberately not samples.toSet().size. hashCode is not part of the Quilted contract — a type that overrides equality without it reads every entry as distinct through a Set, so the toSet spelling passes listOf(x, x, x) on exactly the types whose author was least careful, which is the decoration this floor exists to replace. The sibling harness counts its pool the same way and for the same reason.

Return

what was measured, so a caller can print it on a green run too.

Throws

if fewer than DISTINCT_SAMPLE_FLOOR entries are pairwise distinct.