Skip to content

Spec cleanup - #17

Merged
rabbitism merged 5 commits into
mainfrom
spec-cleanup
Jul 19, 2026
Merged

Spec cleanup#17
rabbitism merged 5 commits into
mainfrom
spec-cleanup

Conversation

@rabbitism

Copy link
Copy Markdown
Member

No description provided.

…pec)

- Cover all valid examples: objects, nested, primitive/tabular arrays, delimiters
- Cover invalid: length mismatch (detected), delimiter mismatch (gap), multiple root (partial)
- Known gaps documented: key folding not expanded, delimiter mismatch not validated,
  list format unsupported, strict mode root-primitive detection
- 498 tests pass
- ToonReaderOptions.ExpandPaths: enables dotted-key expansion (spec §13.4)
- ParseObjectLine: detect '.' in keys, split into segments
- Read(): emit path segments as sequential PropertyName + StartObject tokens
- Quoted keys remain literal (e.g. "user.first-name")
- 8-segment max, zero heap allocation
- 498 tests pass, spec conformance: key-folding now supported
- ParseArrayHeader: when delim != ',' and field list contains ',', throw
- Add ToonUtf8Constants.DelimiterName helper
- Update spec tests: delimiter-mismatch now detected
- 500 tests pass (498 + 2 skip)
- Add _rootScalarSeen flag, throw ToonReaderException on second bare scalar
- Only triggers in Strict mode at root depth
- Update spec tests: from KnownGap to validated Invalid_ test
- 499 tests pass (497 + 2 skip)
- Bug: path segment emission ran before pending StartObject, overwriting it
- Fix: emit pending StartObject first (Phase 0a), then next path segment (Phase 0a.5)
- Also fix _pathIdx not advanced after ParseObjectLine emits first segment
- key-folding-mixed test now passes (mixed standard nesting + folded keys)
- 499 tests pass
@github-actions

Copy link
Copy Markdown

Code Coverage

Package Line Rate Branch Rate Complexity Health
AspNetCoreWebDemo 47% 0% 21
Irihi.AspNetCore.Mvc.Toon 87% 50% 12
Irihi.Extensions.Configuration.Toon 98% 86% 28
Irihi.Text.Toon 87% 79% 2177
Summary 86% (2506 / 2909) 79% (1527 / 1927) 2238

@rabbitism
rabbitism merged commit 16795e6 into main Jul 19, 2026
2 checks passed
@rabbitism
rabbitism deleted the spec-cleanup branch July 24, 2026 04:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant