Skip to content

The conformance suite.

Every check in the specifications is held to cases: 418 of them in 5 sections, each naming the diagnostics an implementation must report for one repository. They are published as data, for implementations that are not this one.

npm install --save-dev @intentset/conformance-suite
pnpm add --save-dev @intentset/conformance-suite

The package holds the cases, the schemas and the worked example they are built from, and no code an implementation must use. A case's diagnostics are compared as a multiset of codes, errors and warnings alike; messages, locations and remediation are the implementation's own. The canonical copy is tests/ in the repository, where the reference implementation runs every case.

Sections

Section Cases Valid Invalid Codes
core.json 187 42 145 10
vsa.json 100 36 64 29
evidence.json 76 28 48 8
export.json 18 14 4 6
publication.json 37 12 25 7

Every code a case expects

The number of cases that expect each code at least once. The specifications define what each code means.

Code Sections Cases
AMP001 vsa 4
AMP002 vsa 2
AMP004 vsa 2
AMP006 vsa 2
AMP007 vsa 2
AMP008 vsa 2
AMP009 vsa 3
AMP010 vsa 1
AMP011 vsa 2
CFG001 core, vsa 7
CFG002 core 2
COLUMNS_SINGLE core 1
CORE001 core, export, publication 88
CORE002 core, export 3
CORE003 core, export 26
CORE004 core 10
CORE005 core, publication 20
CORE006 core, vsa 5
CORE007 evidence, export 40
CORE008 publication 17
CORE009 core, vsa, export 14
EVID001 evidence 11
EVID002 evidence 2
EVID003 evidence 1
EVID004 evidence, export 2
EVID005 evidence 1
EVID006 evidence 1
EVID007 evidence 1
PUB001 publication 5
PUB002 publication 2
PUB003 publication 1
PUB004 publication 1
REG001 vsa 3
TS001 vsa 1
TS002 vsa 1
TS003 vsa 6
TS004 vsa 2
TS006 vsa 1
TS007 vsa 3
TS008 vsa 1
VSA001 vsa 2
VSA002 vsa 4
VSA003 vsa 10
VSA004 vsa 5
VSA005 vsa 6
VSA006 vsa 6
VSA009 vsa 10
VSA013 vsa 3
VSA014 vsa 1

Testing a consumer of the export

A tool that imports an export rather than producing one is checked against 23 envelopes for intentset/export/0.4: 10 it must accept and 13 it must reject. Every rejected envelope is an accepted one with one deliberate defect, and several are valid against the schema, so a schema validator alone is not a consumer. The export contract says what a consumer checks.