diff --git a/CHANGELOG.md b/CHANGELOG.md index 4582474..bed5007 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - §7.1 ABNF `unescaped-char`: supplementary scalars (`%x10000-10FFFF`) included explicitly. - §13: option names and value tokens are concept handles; implementations MAY use language-idiomatic spellings or types. - Appendix F.5: informative Java mapping section. +- Tests: decode fixtures for ambiguous leading-plus tokens, matching reference behavior. ### Changed diff --git a/tests/fixtures/decode/numbers.json b/tests/fixtures/decode/numbers.json index a4d4e3c..22708b7 100644 --- a/tests/fixtures/decode/numbers.json +++ b/tests/fixtures/decode/numbers.json @@ -89,6 +89,25 @@ "specSection": "4", "note": "Exponent +00 results in the integer 5" }, + { + "name": "treats leading plus integer as string", + "input": "value: +1", + "expected": { + "value": "+1" + }, + "specSection": "4", + "note": "The spec is silent on leading-plus tokens; the reference implementation treats them as strings" + }, + { + "name": "treats leading plus numeric-looking tokens as strings", + "input": "values[3]: +1,+1.5,+1e2\nexponent: 1e+2", + "expected": { + "values": ["+1", "+1.5", "+1e2"], + "exponent": 100 + }, + "specSection": "4", + "note": "Reference behavior: exponent plus signs are numeric, but leading-plus tokens remain strings" + }, { "name": "parses zero with exponent as number", "input": "value: 0e1",