PureYAML/Tests
Mihaela M fc1a6db1dc refactor(validation): fold the tagged validator onto one framework
The tagged-node validator carried its own copy of the validation machinery:
a Tagged.Rule cloning Validation's check type and a Tagged.Context cloning
its context, differing only in subject type. That is the per-layer
duplication the validation idiom exists to prevent (principle 10).

Generalise the type-directed framework over both the subject and the
document: SubjectContext, Check, and AnyCheck now take a Document type
parameter for the validated tree's root. The model layer validates with a
Model.Value document, the tagged layer with a Tagged.Node document, each
truthful rather than forcing one root type to stand in for the other.

The tagged layer keeps only what is genuinely its own: the Node document
type, its built-in check (now Tagged.BuiltinCheck, a Check<Node, Node>), and
its traversal. Tagged.Rule and the tagged Context are removed. The validator
surface is unchanged but validating now takes a Check<Node, Node>.

All 399 tests pass; the coverage gate reconciles to 62 public types.
2026-06-28 10:41:10 +02:00
..
Fixtures test(corpus): add public real yaml seeds 2026-06-06 08:24:12 +02:00
ACMEZephyrFixtureTests.swift
AdditionalCoverageTests.swift test: cover the remaining low-level paths 2026-06-26 08:59:24 +02:00
AliasPropertiesTests.swift fix(parsing): reject an anchor or tag on an alias node 2026-06-27 21:11:10 +02:00
AnchoredIndentedNodeParsingTests.swift
AnchoredMappingKeyTests.swift fix(parsing): allow an anchor or tag on a non-first mapping key 2026-06-27 00:21:38 +02:00
ArbitraryAnyDecisionTests.swift
BareDocumentAfterEndTests.swift fix(parsing): parse a bare document after a document-end marker 2026-06-28 04:23:06 +02:00
BlockEntryAfterFlowTests.swift fix(parsing): reject a block entry after a flow collection on a line 2026-06-28 01:34:55 +02:00
BlockScalarChompingTests.swift fix(parsing): preserve leading blank lines in block scalars 2026-06-26 08:42:16 +02:00
BlockScalarLeadingBlankTests.swift fix(parsing): reject an over-indented leading line in a block scalar 2026-06-28 00:21:57 +02:00
BlockScalarTrailingCommentTests.swift fix(parsing): comments and over-indented blanks ending block scalars 2026-06-27 15:34:13 +02:00
BlockSequenceAfterPropertyTests.swift fix(parsing): reject a block sequence inline after a node property 2026-06-27 23:14:54 +02:00
CodableCompatibilityFixtures.swift
CodableCompatibilityTests.swift
CodableTypeMatrixTests.swift test: round-trip the full scalar type matrix through Codable containers 2026-06-26 09:04:54 +02:00
CodingTests.swift
CollectionCompatibilityFixtures.swift
CommentInPlainScalarTests.swift fix(parsing): reject a comment interrupting a multi-line plain scalar 2026-06-27 19:47:28 +02:00
CommentWhitespaceTests.swift fix(parsing): reject a comment glued to earlier content on its line 2026-06-27 15:53:16 +02:00
ComplexMappingKeyCodableTests.swift
ComplexMappingKeyDumperTests.swift
ComplexMappingKeyParsingTests.swift fix(parsing): an explicit key with no value maps to null 2026-06-26 22:28:13 +02:00
ComplexMappingKeyTestSupport.swift
ComplexMappingKeyValidationTests.swift
DiagnosticValidationReportTests.swift
DirectiveAfterDocumentEndTests.swift fix(parsing): allow a directive after a document-end marker 2026-06-28 02:09:01 +02:00
DirectiveTests.swift fix(parsing): require an explicit document after a directive 2026-06-27 17:18:47 +02:00
DocumentationExampleTests.swift
DocumentEndContentTests.swift fix(parsing): reject content after a document end marker 2026-06-27 17:56:37 +02:00
DocumentMarkerInScalarTests.swift fix(parsing): reject a document marker inside a multi-line scalar 2026-06-27 23:20:52 +02:00
DocumentMarkerNodeTests.swift fix(parsing): fold a document-root plain scalar across column-1 lines 2026-06-26 21:30:49 +02:00
DoubleQuotedEscapeTests.swift fix(parsing): enforce the full YAML 1.2 double-quoted escape table 2026-06-27 16:19:25 +02:00
DoubleQuotedFoldingTests.swift fix(parsing): fold line breaks in multi-line double-quoted scalars 2026-06-26 21:13:13 +02:00
DownstreamDocumentFixtures.swift
DownstreamDocumentTests.swift
DumperEmptyCollectionTests.swift
DumperTests.swift
EmitterCorpusTests.swift
EmptyTaggedNodeTests.swift fix(parsing): treat a dangling anchor or tag as an empty node 2026-06-28 03:21:04 +02:00
EventStreamingParserTests.swift
ExplicitKeyTests.swift fix(parsing): an explicit key with no value maps to null 2026-06-26 22:28:13 +02:00
FlowDashScalarTests.swift fix(parsing): reject a lone dash before a flow indicator 2026-06-28 01:00:57 +02:00
FlowEmptyEntryTests.swift fix(parsing): reject empty entries in flow collections 2026-06-27 16:26:46 +02:00
ImplicitNullKeyTests.swift fix(parsing): parse implicit null mapping keys 2026-06-28 02:53:45 +02:00
InlineBlockSequenceValueTests.swift fix(parsing): reject a block sequence inline as a mapping value 2026-06-27 18:35:58 +02:00
InlineNestedMappingTests.swift fix(parsing): reject inline nested block mappings 2026-06-27 18:28:57 +02:00
JSONCompatibilityTests.swift
KeyedCodingTests.swift
LiteralBlockEmissionFixtures.swift
MergeKeyCompatibilityTests.swift
ModelTests.swift
MultilineImplicitKeyTests.swift fix(parsing): reject a multiline quoted scalar as a block implicit key 2026-06-27 18:43:09 +02:00
NumericCodingLadderTests.swift test: cover numeric ladder, NaN hashing, unkeyed edges, error paths 2026-06-26 07:50:08 +02:00
ParsingAliasTests.swift
ParsingCompatibilityTests.swift
ParsingErrorPathTests.swift fix(parsing): treat a dangling anchor or tag as an empty node 2026-06-28 03:21:04 +02:00
ParsingErrorTests.swift refactor(parsing): remove three unreachable ParseError cases 2026-06-26 08:37:53 +02:00
ParsingEventTests.swift
ParsingIndentationRegressionTests.swift
ParsingMultilineScalarTests.swift fix(parsing): fold a plain scalar value that begins on its own line 2026-06-26 18:52:09 +02:00
ParsingNestingLimitTests.swift fix(parsing): bound nesting depth so pathological input errors instead of crashing 2026-06-23 09:29:45 +02:00
ParsingTests.swift
PerformancePhaseTests.swift
PreflightScannerTests.swift
QuotedKeyTests.swift fix(parsing): allow a space before the colon of a quoted mapping key 2026-06-27 01:19:28 +02:00
RealYAMLCorpusPropertyTests.swift
RealYAMLCorpusTests.swift
RealYAMLFixtureTests.swift
RoundTripDemonstrationTests.swift test: demonstrate yaml/json parsing and generation round-trips 2026-06-08 00:13:56 +02:00
ScalarCompatibilityFixtures.swift
ScannerTests.swift fix(parsing): parse a bare document after a document-end marker 2026-06-28 04:23:06 +02:00
SingleQuotedFoldingTests.swift fix(parsing): fold line breaks in multi-line single-quoted scalars 2026-06-26 21:18:55 +02:00
StreamDumpingTests.swift
StreamParsingTests.swift fix(parsing): parse a bare document after a document-end marker 2026-06-28 04:23:06 +02:00
TaggedCompatibilityTests.swift refactor(validation): fold the tagged validator onto one framework 2026-06-28 10:41:10 +02:00
TaggedConstructorTests.swift
TestSupport.swift
UnkeyedCodingFixtures.swift
UnkeyedCodingTests.swift
UnkeyedContainerEdgeTests.swift test: cover numeric ladder, NaN hashing, unkeyed edges, error paths 2026-06-26 07:50:08 +02:00
UnkeyedEncodingFixtures.swift
UnkeyedFailureFixtures.swift
UnsupportedYAMLGapsFixtures.swift fix(parsing): ignore an unrecognized directive instead of rejecting it 2026-06-26 22:20:18 +02:00
ValidationBuiltinRuleTests.swift
ValidationCheckMachineryTests.swift refactor(validation): fold the tagged validator onto one framework 2026-06-28 10:41:10 +02:00
ValidationCombinatorTests.swift refactor(validation): fold the tagged validator onto one framework 2026-06-28 10:41:10 +02:00
ValidationConfigurationTests.swift feat(validation): configure the validator by rule identity 2026-06-28 05:18:06 +02:00
ValidationCorpusFixtures.swift
ValidationCorpusSupport.swift
ValidationCorpusTests.swift
ValidationCoverageMetaTests.swift test(validation): make finding coverage a tested law 2026-06-28 10:17:48 +02:00
ValidationFailureFixtureTests.swift
ValidationModelTests.swift
ValidationModeTests.swift
ValidationReportTests.swift
ValidationTests.swift
ValidationTestSupport.swift
ValueHashableTests.swift test: cover numeric ladder, NaN hashing, unkeyed edges, error paths 2026-06-26 07:50:08 +02:00
ValuePropertyIndentationTests.swift fix(parsing): reject a later under-indented property on a mapping value 2026-06-28 01:44:48 +02:00
YAMLDirectiveTests.swift fix(parsing): require an explicit document after a directive 2026-06-27 17:18:47 +02:00
YAMLTestSuiteConformanceTests.swift test: add value-level YAML conformance against in.json 2026-06-26 20:18:32 +02:00