Specification
Cases, corpus version 1
All 111 cases, in seven groups. Each row gives the level the case proves, the operation it runs, the sections it tests and its expected result.
How a case is compared, and what version 1 does not test: How conformance works
The case files are not part of this publication; each case is listed below by name, level and expected outcome.
- Outside the corpus Outside the corpus: the case reads a pack kept outside the corpus directory. 19 cases.
- Four cases are listed by row number.
Group negative
Inputs that must fail, each with exactly one error kind.
| Case | Level | Operation | Specification | Expected |
|---|---|---|---|---|
neg- | Reader-Core | open | §9 step 5 | fails with appendix_ |
neg- | Reader-Appendix | appendix | §7.2, §7.3 | fails with appendix_ |
neg- | Reader-Appendix | appendix | §7.2, §7.3 | fails with appendix_ |
neg- | Reader-Appendix | appendix | §7.2, §7.3 | fails with appendix_ |
neg- | Reader-Appendix | appendix | §7.2, §7.3 | fails with appendix_ |
neg- | Reader-Appendix | appendix | §7.2, §7.3 | fails with appendix_ |
neg- | Reader-Appendix | appendix | §7.2, §7.3 | fails with appendix_ |
neg- | Reader-Appendix | appendix | §7.2, §7.3 | fails with appendix_ |
neg- | Reader-Appendix | appendix | §7.2, §7.3 | fails with appendix_ |
neg- | Reader-Appendix | appendix | §7.2, §7.3 | fails with appendix_ |
neg- | Reader-Appendix | bind | §9 step 10 | fails with dangling_ |
neg- | Reader-Appendix | bind | §9 step 10 | fails with dangling_ |
neg- | Reader-Appendix | bind | §9 step 10 | fails with dangling_ |
neg- | Reader-Appendix | bind | §9 step 10 | fails with dangling_ |
neg- | Reader-Appendix | bind | §9 step 10 | fails with section_ |
neg- Outside the corpus | Reader-Appendix | bind | §9 step 10 | fails with section_ |
neg- Outside the corpus | Reader-Appendix | bind | §9 step 10 | fails with section_ |
neg- | Reader-Core | open | §4.1, §9 step 7 | fails with invalid_ |
neg- | Reader-Core | open | §9 step 8 | fails with record_ |
neg- Outside the corpus | Reader-Appendix | appendix | §7.3 | fails with appendix_ |
neg- | Reader-Appendix | appendix | §7.2, §7.3 | fails with appendix_ |
neg- | Reader-Core | open | §10.0, §9 step 3 | fails with invalid_ |
neg- | Reader-Core | open | §9 step 5 | fails with invalid_ |
neg- | Reader-Core | open | §2 rule 4, §9 step 5 | fails with invalid_ |
neg- | Reader-Core | open | §10.0, §9 step 3 | fails with invalid_ |
neg- | Reader-Core | open | §9 step 5 | fails with invalid_ |
neg- | Reader-Core | open | §9 step 5 | fails with invalid_ |
neg- | Reader-Core | open | §9 step 5 | fails with invalid_ |
neg- | Reader-Core | open | §9 step 3 | fails with unsupported_ |
neg- | Reader-Core | open | §3.1, §9 step 2 | fails with invalid_ |
neg- | Reader-Core | open | §9 step 2 | fails with invalid_ |
neg- | Reader-Core | open | §3.1 | fails with invalid_ |
neg- | Reader-Core | open | §2 rule 2, §9 step 1 | fails with invalid_ |
neg- | Reader-Core | open | §3.2, §9 step 2 | fails with unsupported_ |
neg- | Reader-Core | open | §3.3 | fails with header_ |
neg- | Reader-Core | open | §9 step 4 | fails with header_ |
neg- | Reader-Core | open | §3.3, §9 step 4 | fails with header_ |
neg- | Reader-Core | open | — | fails with io |
neg- | Reader-Core | open | §10.2 | fails with json |
neg- | Reader-Core | open | §4.1 | fails with json |
neg- | Reader-Core | open | §4.3 | fails with json |
neg- | Reader-Core | open | §11 | fails with limit_ |
neg- | Reader-Core | open | — | fails with limit_ |
neg- | Merger | merge | §7.2, §8.1 precondition 2 | fails with appendix_ |
neg- Outside the corpus | Merger | merge | §8.1 precondition 3 | fails with merge_ |
neg- | Merger | merge | §8.1 precondition 4 | fails with merge_ |
neg- | Reader-Core | open | §2 rule 4, §9 step 7 | fails with invalid_ |
neg- | Reader-Core | open | §4.1, §9 step 7 | fails with invalid_ |
neg- | Reader-Core | open | §4.2 | fails with invalid_ |
neg- | Reader-Core | open | §4.2, §9 step 7 | fails with invalid_ |
neg- Outside the corpus | Reader-Core | open | §6, §9 step 6 | fails with checksum_ |
neg- Outside the corpus | Reader-Core | open | §6, §9 step 6 | fails with checksum_ |
neg- | Reader-Appendix | appendix | §7.4 | fails with unsupported |
Group positive
Well-formed packs and the record lines a reader emits for them: one pack per typed kind, number spelling, member order, an unknown kind, a reserved kind, and a typed kind at a higher version.
| Case | Level | Operation | Specification | Expected |
|---|---|---|---|---|
pos- Outside the corpus | Reader-Core | open | §2, §4, §6, §9 steps 1-8 | passes |
| — Outside the corpus | Reader-Core | open | §2, §4, §6, §9 steps 1-8 | passes |
| — Outside the corpus | Reader-Core | open | §2, §4, §6, §9 steps 1-8 | passes |
| — Outside the corpus | Reader-Core | open | §2, §4, §6, §9 steps 1-8 | passes |
pos- | Writer | records | §4.3, §5.1, §5.3 | passes |
pos- | Writer | records | §4.3, §5.1, §5.3 | passes |
pos- | Writer | records | §4.3, §5.1, §5.3 | passes |
pos- | Writer | records | §4.3, §5.1, §5.3 | passes |
pos- | Writer | records | §4.3, §5.1, §5.3 | passes |
pos- | Writer | records | §4.3, §5.1, §5.3 | passes |
pos- | Writer | records | §4.3, §5.1, §5.3 | passes |
pos- | Writer | records | §4.3, §5.1, §5.3 | passes |
pos- | Writer | records | §4.3, §5.1, §5.3 | passes |
pos- | Writer | records | §4.3, §5.1, §5.3 | passes |
pos- | Writer | records | §4.3, §5.1, §5.3 | passes |
pos- | Writer | records | §4.3, §5.1, §5.3 | passes |
pos- | Writer | records | §4.3, §5.1, §5.3 | passes |
pos- | Writer | records | §4.3, §5.1, §5.3 | passes |
pos- | Writer | records | §4.3, §5.1, §5.3 | passes |
pos- | Writer | records | §4.3, §5.1, §5.3 | passes |
pos- | Writer | records | §4.3, §5.1, §5.3 | passes |
pos- | Writer | records | §4.3, §5.1, §5.3 | passes |
pos- | Writer | records | §4.3, §5.1, §5.3 | passes |
pos- | Writer | records | §10.1, §10.3 | passes |
pos- | Writer | records | §10.2, §10.4 | passes |
pos- | Writer | records | §10.2 | passes |
pos- | Writer | records | §4.4 rule 1, §5.3 | passes |
| — | Writer | records | §5.2 | passes |
pos- | Writer | records | §4.4 rule 2, §5.3 note | passes |
Group graph
Whole packs: empty, without an appendix, gzip, with a placeholder header, with an appendix, and the verify reports for them.
| Case | Level | Operation | Specification | Expected |
|---|---|---|---|---|
graph- Outside the corpus | Reader-Appendix | appendix | §7.4 | passes |
graph- | Reader-Appendix | appendix | §7.2 | passes |
graph- Outside the corpus | Reader-Appendix | bind | §9 step 10 | passes |
graph- | Reader-Core | open | §2 | passes |
graph- | Reader-Core | open | §11 | passes |
graph- | Reader-Core | open | §2 rule 3 | passes |
graph- Outside the corpus | Reader-Core | verify | §9 step 6 | passes |
graph- | Reader-Core | open | §3.3 | passes |
graph- Outside the corpus | Reader-Appendix | appendix | §7.3, §7.4 | passes |
graph- Outside the corpus | Reader-Appendix | verify | §9 steps 1-10 | passes |
graph- | Reader-Appendix | verify | §9 step 10 | passes |
graph- | Reader-Appendix | verify | §7.3, §9 step 9 | passes |
graph- Outside the corpus | Reader-Appendix | verify | §9 step 10 | passes |
Group merge
One case per merge strategy, stub resolution, the same pair merged in both orders, and a key shared by two different records.
| Case | Level | Operation | Specification | Expected |
|---|---|---|---|---|
merge- | Merger | merge | §8.1 property 1 | passes |
merge- | Merger | merge | §8.1 property 1 | passes |
merge- | Merger | merge | §8.1 | passes |
merge- | Merger | merge | §5.3, §8.1 rule 5 | passes |
merge- | Merger | merge | §8.1 | passes |
merge- | Merger | merge | §8.1 | passes |
merge- | Merger | merge | §8.1 rule 4 | passes |
merge- | Merger | merge | §8.1 | passes |
Group diff
Added, removed and changed records, duplicate keys, a changed appendix section, and a difference in member order only.
Group filter
Selecting records by kind and by primary-id prefix.
| Case | Level | Operation | Specification | Expected |
|---|---|---|---|---|
filter- Outside the corpus | Reader-Core | filter | §5.3 | passes |
filter- Outside the corpus | Reader-Core | filter | §5.3 | passes |
Group write
Writing a pack without an appendix, and an opaque record through a write and a read.